feat: Multi-Machine Development Tracking Workflow
Implementiert Session Context Workflow für Cross-Machine Tracking: - WORKLOG.md Template für Projekt-Zustandsdokumentation - Session-Start Hook erweitert: zeigt WORKLOG.md Kontext, Commits, Issues - /session-end Skill: strukturiertes Session-Ende mit Auto-Dokumentation - /session-start Skill: manueller Session-Start mit Planung - /new-project Skill: Projekt-Initialisierung mit Tracking Inspiriert von Boris Cherny's Claude Code Tipps: - Learnings dokumentieren für Fehler/Erkenntnisse - Verification Loops in Skills - Separate Checkouts für parallele Sessions Tea CLI (Gitea) separat installiert in ~/.local/bin Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,22 +1,72 @@
|
||||
#!/bin/bash
|
||||
# Claude Code Session-Start Hook
|
||||
# Prüft auf Updates im Settings-Repo
|
||||
# 1. Prüft auf Updates im Settings-Repo
|
||||
# 2. Zeigt Projekt-Kontext wenn WORKLOG.md vorhanden
|
||||
|
||||
REPO_DIR="$HOME/dotfiles/claude_settings"
|
||||
ORIGINAL_DIR="$(pwd)"
|
||||
|
||||
cd "$REPO_DIR" 2>/dev/null || exit 0
|
||||
# === TEIL 1: Settings-Repo Synchronisierung ===
|
||||
cd "$REPO_DIR" 2>/dev/null || true
|
||||
if [ -d "$REPO_DIR/.git" ]; then
|
||||
git fetch origin --quiet 2>/dev/null || true
|
||||
LOCAL=$(git rev-parse HEAD 2>/dev/null)
|
||||
REMOTE=$(git rev-parse origin/main 2>/dev/null)
|
||||
|
||||
# Fetch ohne Output
|
||||
git fetch origin --quiet 2>/dev/null || exit 0
|
||||
if [ "$LOCAL" != "$REMOTE" ]; then
|
||||
BEHIND=$(git rev-list HEAD..origin/main --count 2>/dev/null)
|
||||
echo "⚠ Claude Settings: $BEHIND neue Commits verfügbar!"
|
||||
echo " → cd ~/dotfiles/claude_settings && git pull"
|
||||
echo ""
|
||||
fi
|
||||
fi
|
||||
|
||||
# Prüfe ob Updates vorhanden
|
||||
LOCAL=$(git rev-parse HEAD 2>/dev/null)
|
||||
REMOTE=$(git rev-parse origin/main 2>/dev/null)
|
||||
# === TEIL 2: Projekt-Kontext anzeigen ===
|
||||
cd "$ORIGINAL_DIR" 2>/dev/null || exit 0
|
||||
|
||||
if [ "$LOCAL" != "$REMOTE" ]; then
|
||||
BEHIND=$(git rev-list HEAD..origin/main --count 2>/dev/null)
|
||||
echo "⚠ Claude Settings: $BEHIND neue Commits verfügbar!"
|
||||
echo " → cd ~/dotfiles/claude_settings && git pull"
|
||||
if [[ -f "WORKLOG.md" ]]; then
|
||||
echo "=== PROJECT CONTEXT ==="
|
||||
|
||||
# Current State anzeigen
|
||||
if grep -q "## Current State" WORKLOG.md; then
|
||||
sed -n '/## Current State/,/## Next Steps/p' WORKLOG.md | head -10 | tail -n +2 | head -6
|
||||
echo ""
|
||||
fi
|
||||
|
||||
# Next Steps anzeigen
|
||||
if grep -q "## Next Steps" WORKLOG.md; then
|
||||
echo "## Next Steps"
|
||||
sed -n '/## Next Steps/,/## Key Decisions/p' WORKLOG.md | grep -E "^- \[" | head -5
|
||||
echo ""
|
||||
fi
|
||||
|
||||
# Learnings anzeigen (falls vorhanden)
|
||||
if grep -q "^\*\*[0-9]" WORKLOG.md; then
|
||||
LEARNINGS=$(sed -n '/## Learnings/,/## Session History/p' WORKLOG.md | grep -E "^\*\*[0-9]" | tail -3)
|
||||
if [ -n "$LEARNINGS" ]; then
|
||||
echo "## Recent Learnings"
|
||||
echo "$LEARNINGS"
|
||||
echo ""
|
||||
fi
|
||||
fi
|
||||
|
||||
# Letzte Commits
|
||||
if [ -d ".git" ]; then
|
||||
echo "=== RECENT COMMITS ==="
|
||||
git log --oneline -5 2>/dev/null || echo "(keine Commits)"
|
||||
echo ""
|
||||
fi
|
||||
|
||||
# Gitea Issues (wenn tea konfiguriert)
|
||||
if command -v tea &>/dev/null; then
|
||||
# Prüfe ob tea login konfiguriert ist
|
||||
if tea login list 2>/dev/null | grep -q "gitea"; then
|
||||
echo "=== OPEN ISSUES ==="
|
||||
tea issues --state open --limit 5 2>/dev/null || echo "(Gitea nicht erreichbar oder kein Gitea-Repo)"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
||||
Reference in New Issue
Block a user