184 lines
5.4 KiB
Bash
Executable File
184 lines
5.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Drama Ling 報告檢查工具
|
|
# 用途:檢查報告狀態和統計
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
REPORTS_DIR="$SCRIPT_DIR/reports"
|
|
|
|
# 顏色定義
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
RED='\033[0;31m'
|
|
PURPLE='\033[0;35m'
|
|
NC='\033[0m'
|
|
|
|
echo -e "${BLUE}📊 Drama Ling 報告狀態檢查${NC}"
|
|
echo "=============================================="
|
|
|
|
# 檢查報告目錄是否存在
|
|
if [ ! -d "$REPORTS_DIR" ]; then
|
|
echo -e "${RED}❌ 報告目錄不存在: $REPORTS_DIR${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
# 統計報告數量
|
|
echo -e "${PURPLE}📈 1. 報告數量統計${NC}"
|
|
echo "----------------------------------------"
|
|
|
|
analysis_count=$(find "$REPORTS_DIR/analysis" -name "*.md" 2>/dev/null | wc -l | tr -d ' ')
|
|
decisions_count=$(find "$REPORTS_DIR/decisions" -name "*.md" 2>/dev/null | wc -l | tr -d ' ')
|
|
archive_count=$(find "$REPORTS_DIR/archive" -name "*.md" 2>/dev/null | wc -l | tr -d ' ')
|
|
|
|
echo "📊 分析報告: $analysis_count 份"
|
|
echo "📋 決策記錄: $decisions_count 份"
|
|
echo "📦 已歸檔: $archive_count 份"
|
|
echo "📄 總計: $((analysis_count + decisions_count + archive_count)) 份報告"
|
|
|
|
echo ""
|
|
|
|
# 最近的報告
|
|
echo -e "${PURPLE}📅 2. 最近的報告${NC}"
|
|
echo "----------------------------------------"
|
|
|
|
echo -e "${BLUE}分析報告:${NC}"
|
|
if [ $analysis_count -gt 0 ]; then
|
|
find "$REPORTS_DIR/analysis" -name "*.md" -exec basename {} \; 2>/dev/null | sort -r | head -5
|
|
else
|
|
echo " 無分析報告"
|
|
fi
|
|
|
|
echo ""
|
|
echo -e "${BLUE}決策記錄:${NC}"
|
|
if [ $decisions_count -gt 0 ]; then
|
|
find "$REPORTS_DIR/decisions" -name "*.md" -exec basename {} \; 2>/dev/null | sort -r | head -5
|
|
else
|
|
echo " 無決策記錄"
|
|
fi
|
|
|
|
echo ""
|
|
|
|
# 與問題系統的整合狀態
|
|
echo -e "${PURPLE}🔗 3. 問題系統整合狀態${NC}"
|
|
echo "----------------------------------------"
|
|
|
|
if [ -f "$SCRIPT_DIR/ISSUES.md" ]; then
|
|
linked_reports=$(grep -c "📊.*報告.*\.md" "$SCRIPT_DIR/ISSUES.md")
|
|
echo "已連結到問題的報告: $linked_reports 份"
|
|
|
|
# 檢查是否有報告未連結到問題系統
|
|
total_reports=$((analysis_count + decisions_count))
|
|
if [ $total_reports -gt $linked_reports ]; then
|
|
echo -e "${YELLOW}⚠️ 有 $((total_reports - linked_reports)) 份報告尚未連結到問題系統${NC}"
|
|
else
|
|
echo -e "${GREEN}✅ 所有報告都已連結到問題系統${NC}"
|
|
fi
|
|
else
|
|
echo -e "${RED}❌ 找不到 ISSUES.md 檔案${NC}"
|
|
fi
|
|
|
|
echo ""
|
|
|
|
# 報告命名規範檢查
|
|
echo -e "${PURPLE}📝 4. 命名規範檢查${NC}"
|
|
echo "----------------------------------------"
|
|
|
|
naming_issues=0
|
|
|
|
# 檢查分析報告命名
|
|
if [ $analysis_count -gt 0 ]; then
|
|
echo "檢查分析報告命名規範..."
|
|
find "$REPORTS_DIR/analysis" -name "*.md" 2>/dev/null | while read -r file; do
|
|
filename=$(basename "$file")
|
|
if [[ ! $filename =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}_.*-analysis\.md$ ]]; then
|
|
echo -e "${YELLOW}⚠️ 命名不規範: $filename${NC}"
|
|
naming_issues=$((naming_issues + 1))
|
|
fi
|
|
done
|
|
fi
|
|
|
|
# 檢查決策記錄命名
|
|
if [ $decisions_count -gt 0 ]; then
|
|
echo "檢查決策記錄命名規範..."
|
|
find "$REPORTS_DIR/decisions" -name "*.md" 2>/dev/null | while read -r file; do
|
|
filename=$(basename "$file")
|
|
if [[ ! $filename =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}_.*-decision\.md$ ]]; then
|
|
echo -e "${YELLOW}⚠️ 命名不規範: $filename${NC}"
|
|
naming_issues=$((naming_issues + 1))
|
|
fi
|
|
done
|
|
fi
|
|
|
|
if [ $naming_issues -eq 0 ]; then
|
|
echo -e "${GREEN}✅ 所有報告命名規範正確${NC}"
|
|
fi
|
|
|
|
echo ""
|
|
|
|
# 報告健康度評估
|
|
echo -e "${PURPLE}🏥 5. 報告系統健康度${NC}"
|
|
echo "----------------------------------------"
|
|
|
|
health_score=100
|
|
|
|
# 扣分邏輯
|
|
if [ $total_reports -eq 0 ]; then
|
|
health_score=$((health_score - 50))
|
|
echo -e "${RED}📊 無報告: -50分${NC}"
|
|
elif [ $total_reports -lt 3 ]; then
|
|
health_score=$((health_score - 20))
|
|
echo -e "${YELLOW}📊 報告較少: -20分${NC}"
|
|
fi
|
|
|
|
if [ $total_reports -gt $linked_reports ]; then
|
|
missing_links=$((total_reports - linked_reports))
|
|
deduction=$((missing_links * 10))
|
|
health_score=$((health_score - deduction))
|
|
echo -e "${YELLOW}🔗 未連結報告: -${deduction}分${NC}"
|
|
fi
|
|
|
|
# 確保分數不為負數
|
|
if [ $health_score -lt 0 ]; then
|
|
health_score=0
|
|
fi
|
|
|
|
echo ""
|
|
echo "🏆 報告系統健康度: $health_score/100"
|
|
|
|
if [ $health_score -ge 80 ]; then
|
|
echo -e "${GREEN}🎉 狀態: 優秀${NC}"
|
|
elif [ $health_score -ge 60 ]; then
|
|
echo -e "${YELLOW}👍 狀態: 良好${NC}"
|
|
elif [ $health_score -ge 40 ]; then
|
|
echo -e "${YELLOW}⚠️ 狀態: 需要改進${NC}"
|
|
else
|
|
echo -e "${RED}🚨 狀態: 需要緊急處理${NC}"
|
|
fi
|
|
|
|
echo ""
|
|
|
|
# 改進建議
|
|
echo -e "${BLUE}💡 改進建議${NC}"
|
|
echo "----------------------------------------"
|
|
|
|
if [ $total_reports -eq 0 ]; then
|
|
echo "• 開始建立第一份分析報告"
|
|
elif [ $total_reports -lt 3 ]; then
|
|
echo "• 增加報告數量,建立完整的問題分析記錄"
|
|
fi
|
|
|
|
if [ $total_reports -gt $linked_reports ]; then
|
|
echo "• 將 $((total_reports - linked_reports)) 份未連結報告整合到問題系統"
|
|
fi
|
|
|
|
if [ $naming_issues -gt 0 ]; then
|
|
echo "• 修正 $naming_issues 個檔案的命名規範"
|
|
fi
|
|
|
|
if [ $analysis_count -gt 0 ] && [ $decisions_count -eq 0 ]; then
|
|
echo "• 考慮建立技術決策記錄,記錄重要決策過程"
|
|
fi
|
|
|
|
echo ""
|
|
echo -e "${GREEN}✅ 報告檢查完成${NC}" |