fix: remove dead STATE.md code, restore matrix notify, targeted git add (Closes #13, Closes #14)

- Remove STATE_FILE variable and all STATE.md references from phase 2
- Restore matrix_send for gap analysis issue creation
- Replace broad `git add -A "*.md"` with targeted `find -name AGENTS.md`

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
johba 2026-03-15 16:53:33 +01:00
parent 3bb75f18be
commit 7f41048aea

View file

@ -4,7 +4,7 @@
# #
# Two-phase planner run: # Two-phase planner run:
# Phase 1: Navigate and update AGENTS.md tree using Claude with tool access # Phase 1: Navigate and update AGENTS.md tree using Claude with tool access
# Phase 2: Compare AGENTS.md + STATE.md vs VISION.md, create backlog issues # Phase 2: Compare AGENTS.md vs VISION.md, create backlog issues for gaps
# #
# Usage: planner-agent.sh (no args — uses env vars from .env / env.sh) # Usage: planner-agent.sh (no args — uses env vars from .env / env.sh)
# ============================================================================= # =============================================================================
@ -18,7 +18,6 @@ source "$FACTORY_ROOT/lib/env.sh"
LOG_FILE="$SCRIPT_DIR/planner.log" LOG_FILE="$SCRIPT_DIR/planner.log"
CLAUDE_TIMEOUT="${CLAUDE_TIMEOUT:-3600}" CLAUDE_TIMEOUT="${CLAUDE_TIMEOUT:-3600}"
STATE_FILE="${PROJECT_REPO_ROOT}/STATE.md"
VISION_FILE="${PROJECT_REPO_ROOT}/VISION.md" VISION_FILE="${PROJECT_REPO_ROOT}/VISION.md"
log() { echo "[$(date -u +%Y-%m-%dT%H:%M:%S)Z] $*" >> "$LOG_FILE"; } log() { echo "[$(date -u +%Y-%m-%dT%H:%M:%S)Z] $*" >> "$LOG_FILE"; }
@ -120,9 +119,7 @@ $(echo -e "$AGENTS_INFO")
git checkout "${PRIMARY_BRANCH}" --quiet 2>/dev/null || true git checkout "${PRIMARY_BRANCH}" --quiet 2>/dev/null || true
else else
# Commit and push # Commit and push
git add -A "*.md" 2>/dev/null || git add -A 2>/dev/null find . -name "AGENTS.md" -not -path "./.git/*" -exec git add {} +
# Only add AGENTS.md files and STATE.md
git diff --cached --name-only | grep -vE '(AGENTS|STATE)\.md$' | xargs -r git reset HEAD -- 2>/dev/null || true
if ! git diff --cached --quiet; then if ! git diff --cached --quiet; then
git commit -m "chore: planner update AGENTS.md tree" --quiet 2>/dev/null git commit -m "chore: planner update AGENTS.md tree" --quiet 2>/dev/null
@ -163,7 +160,7 @@ fi
# ── Phase 2: Gap analysis ─────────────────────────────────────────────── # ── Phase 2: Gap analysis ───────────────────────────────────────────────
log "Phase 2: gap analysis" log "Phase 2: gap analysis"
# Build project state from AGENTS.md tree + STATE.md # Build project state from AGENTS.md tree
PROJECT_STATE="" PROJECT_STATE=""
for f in $(find . -name "AGENTS.md" -not -path "./.git/*" | sort); do for f in $(find . -name "AGENTS.md" -not -path "./.git/*" | sort); do
PROJECT_STATE="${PROJECT_STATE} PROJECT_STATE="${PROJECT_STATE}
@ -171,10 +168,6 @@ for f in $(find . -name "AGENTS.md" -not -path "./.git/*" | sort); do
$(cat "$f") $(cat "$f")
" "
done done
[ -f "$STATE_FILE" ] && PROJECT_STATE="${PROJECT_STATE}
### STATE.md
$(cat "$STATE_FILE")
"
VISION="" VISION=""
[ -f "$VISION_FILE" ] && VISION=$(cat "$VISION_FILE") [ -f "$VISION_FILE" ] && VISION=$(cat "$VISION_FILE")
@ -202,7 +195,7 @@ PHASE2_PROMPT="You are the planner for ${CODEBERG_REPO}. Your job: find gaps bet
## VISION.md (human-maintained goals) ## VISION.md (human-maintained goals)
${VISION} ${VISION}
## Current project state (AGENTS.md tree + STATE.md) ## Current project state (AGENTS.md tree)
${PROJECT_STATE} ${PROJECT_STATE}
## Vision-labeled issues (goal anchors) ## Vision-labeled issues (goal anchors)
@ -219,7 +212,7 @@ For each gap, output a JSON object (one per line, no array wrapper):
## Rules ## Rules
- Max 5 new issues — focus on highest-leverage gaps only - Max 5 new issues — focus on highest-leverage gaps only
- Do NOT create issues for things already documented in AGENTS.md or STATE.md - Do NOT create issues for things already documented in AGENTS.md
- Do NOT create issues that overlap with ANY existing open issue, even partially - Do NOT create issues that overlap with ANY existing open issue, even partially
- Do NOT create issues about vision items, tech-debt, or in-progress work - Do NOT create issues about vision items, tech-debt, or in-progress work
- Each title should be a plain, action-oriented sentence - Each title should be a plain, action-oriented sentence
@ -277,6 +270,7 @@ ${DEPS}"
RESULT=$(codeberg_api POST "/issues" -d "$CREATE_PAYLOAD" 2>/dev/null || true) RESULT=$(codeberg_api POST "/issues" -d "$CREATE_PAYLOAD" 2>/dev/null || true)
ISSUE_NUM=$(echo "$RESULT" | jq -r '.number // "?"' 2>/dev/null || echo "?") ISSUE_NUM=$(echo "$RESULT" | jq -r '.number // "?"' 2>/dev/null || echo "?")
log "Created #${ISSUE_NUM}: ${TITLE}" log "Created #${ISSUE_NUM}: ${TITLE}"
matrix_send "planner" "📋 Gap issue #${ISSUE_NUM}: ${TITLE}" 2>/dev/null || true
CREATED=$((CREATED + 1)) CREATED=$((CREATED + 1))
[ "$CREATED" -ge 5 ] && break [ "$CREATED" -ge 5 ] && break