#!/bin/bash # Wöchentlicher Health-Check + Snapshot # Wird automatisch jeden Montag via Cron ausgeführt set -e VAULT="$HOME/Work/claude-vault" DATE=$(date +%Y-%m-%d) SNAPSHOT="$VAULT/memory/snapshots/${DATE}_weekly-health.md" echo "🏥 Erstelle Weekly Health Check..." mkdir -p "$VAULT/memory/snapshots" # Berechne Statistiken TOTAL_SKILLS=$(find "$VAULT/skills" -name "SKILL.md" -type f 2>/dev/null | wc -l | xargs) LP_SKILLS=$(grep -l "^name: lp-" "$VAULT"/skills/*/SKILL.md 2>/dev/null | wc -l | xargs) GENERIC_SKILLS=$((TOTAL_SKILLS - LP_SKILLS)) TOTAL_AGENTS=$(find "$VAULT/agents" -name "*.md" -type f 2>/dev/null | wc -l | xargs) TOTAL_LOGS=$(find "$VAULT/memory/log" -name "*.md" -type f 2>/dev/null | wc -l | xargs) LOGS_LAST_7=$(find "$VAULT/memory/log" -name "*.md" -type f -mtime -7 2>/dev/null | wc -l | xargs) TOTAL_SNAPSHOTS=$(find "$VAULT/memory/snapshots" -name "*.md" -type f 2>/dev/null | wc -l | xargs) PATTERNS_COUNT=$(grep -c "^## " "$VAULT/memory/patterns.md" 2>/dev/null || echo 0) TOTAL_PROPOSALS=$(find "$VAULT/skills/proposals" -name "*.md" -type f 2>/dev/null | wc -l | xargs) # Projekt-Liste PROJECT_LIST="" if [ -d "$VAULT/projects" ]; then PROJECT_LIST=$(find "$VAULT/projects" -mindepth 1 -maxdepth 1 -type d -exec basename {} \; | sed 's/^/- /') fi # Erstelle Snapshot cat > "$SNAPSHOT" <> "$SNAPSHOT" done cat >> "$SNAPSHOT" <> "$SNAPSHOT" done cat >> "$SNAPSHOT" <> "$SNAPSHOT" echo "" >> "$SNAPSHOT" echo "**Problem:** Keine Session-Logs in den letzten 7 Tagen gefunden." >> "$SNAPSHOT" echo "" >> "$SNAPSHOT" echo "**Lösung:** Session-Logging aktivieren:" >> "$SNAPSHOT" echo "\`\`\`bash" >> "$SNAPSHOT" echo "claude-done \"\"" >> "$SNAPSHOT" echo "\`\`\`" >> "$SNAPSHOT" echo "" >> "$SNAPSHOT" RECOMMENDATIONS_FOUND=true fi if [ "$TOTAL_PROPOSALS" -gt 0 ]; then echo "### 💡 Offene Skill-Proposals" >> "$SNAPSHOT" echo "" >> "$SNAPSHOT" echo "**Problem:** ${TOTAL_PROPOSALS} Skill-Proposals warten auf Review/Umsetzung." >> "$SNAPSHOT" echo "" >> "$SNAPSHOT" echo "**Proposals:**" >> "$SNAPSHOT" find "$VAULT/skills/proposals" -name "*.md" -type f -exec basename {} \; | sed 's/^/- /' >> "$SNAPSHOT" echo "" >> "$SNAPSHOT" echo "**Lösung:** Proposals reviewen und entweder umsetzen oder verwerfen." >> "$SNAPSHOT" echo "\`\`\`bash" >> "$SNAPSHOT" echo "vault-proposals # Alias zum Anzeigen aller Proposals" >> "$SNAPSHOT" echo "\`\`\`" >> "$SNAPSHOT" echo "" >> "$SNAPSHOT" RECOMMENDATIONS_FOUND=true fi if [ "$PATTERNS_COUNT" -lt 5 ]; then echo "### 📚 Wenig Patterns extrahiert" >> "$SNAPSHOT" echo "" >> "$SNAPSHOT" echo "**Problem:** Nur ${PATTERNS_COUNT} Patterns in patterns.md dokumentiert." >> "$SNAPSHOT" echo "" >> "$SNAPSHOT" echo "**Lösung:** Memory-Distillation durchführen:" >> "$SNAPSHOT" echo "\`\`\`bash" >> "$SNAPSHOT" echo "/vault-janitor distill" >> "$SNAPSHOT" echo "\`\`\`" >> "$SNAPSHOT" echo "" >> "$SNAPSHOT" RECOMMENDATIONS_FOUND=true fi if ! $RECOMMENDATIONS_FOUND; then echo "✅ **Alles im grünen Bereich!**" >> "$SNAPSHOT" echo "" >> "$SNAPSHOT" echo "Keine dringenden Wartungsaufgaben gefunden." >> "$SNAPSHOT" fi cat >> "$SNAPSHOT" < 5 neue Logs) - [ ] Projekt-MEMORYs synchronisieren (\`vault-sync\`) ### Diesen Monat - [ ] Anti-Patterns aktualisieren (neue Fehler dokumentieren) - [ ] Skill-Usage-Matrix analysieren (welche Skills werden oft genutzt?) - [ ] Obsolete Skills identifizieren (welche Skills werden nie genutzt?) --- ## 🔗 Quick Links - [Dashboard](../dashboard.md) - [Patterns](../patterns.md) - [Skill-Usage-Matrix](../skill-usage-matrix.md) - [Vault-Index](../../vault-index.md) --- **Generiert:** $(date +%Y-%m-%d\ %H:%M:%S) EOF echo "✅ Health-Check erstellt: $SNAPSHOT" echo "" echo "📊 Quick Stats:" echo " - Skills: $TOTAL_SKILLS ($LP_SKILLS lp-*, $GENERIC_SKILLS generic)" echo " - Logs: $TOTAL_LOGS total, $LOGS_LAST_7 letzte 7 Tage" echo " - Proposals: $TOTAL_PROPOSALS offen" echo " - Patterns: $PATTERNS_COUNT extrahiert" echo "" # Zeige Empfehlungen im Terminal if [ "$LOGS_LAST_7" -eq 0 ]; then echo "⚠️ Keine Session-Logs diese Woche → \`claude-done\` nutzen" fi if [ "$TOTAL_PROPOSALS" -gt 0 ]; then echo "💡 $TOTAL_PROPOSALS Skill-Proposals → \`vault-proposals\` reviewen" fi if [ "$PATTERNS_COUNT" -lt 5 ]; then echo "📚 Nur $PATTERNS_COUNT Patterns → \`/vault-janitor distill\` ausführen" fi