feat: planner reads project docs for architectural understanding
Feeds AGENTS.md, PRODUCT-TRUTH.md, ARCHITECTURE.md, UX-DECISIONS.md into the prompt so the planner understands the system at a conceptual level. Rewritten prompt emphasizes describing the system, not the changes. Good/bad examples guide output style.
This commit is contained in:
parent
240ba62b28
commit
ff50d28645
1 changed files with 26 additions and 8 deletions
|
|
@ -65,12 +65,25 @@ else
|
||||||
CURRENT_STATE=""
|
CURRENT_STATE=""
|
||||||
[ -f "$STATE_FILE" ] && CURRENT_STATE=$(cat "$STATE_FILE")
|
[ -f "$STATE_FILE" ] && CURRENT_STATE=$(cat "$STATE_FILE")
|
||||||
|
|
||||||
|
# Read project docs for high-level understanding
|
||||||
|
PROJECT_DOCS=""
|
||||||
|
for doc in AGENTS.md docs/PRODUCT-TRUTH.md docs/ARCHITECTURE.md docs/UX-DECISIONS.md; do
|
||||||
|
[ -f "${PROJECT_REPO_ROOT}/${doc}" ] && \
|
||||||
|
PROJECT_DOCS="${PROJECT_DOCS}
|
||||||
|
### ${doc}
|
||||||
|
$(cat "${PROJECT_REPO_ROOT}/${doc}")
|
||||||
|
"
|
||||||
|
done
|
||||||
|
|
||||||
# Fetch recently closed issues for context
|
# Fetch recently closed issues for context
|
||||||
CLOSED_ISSUES=$(codeberg_api GET "/issues?state=closed&type=issues&limit=30&sort=updated&direction=desc" 2>/dev/null | \
|
CLOSED_ISSUES=$(codeberg_api GET "/issues?state=closed&type=issues&limit=30&sort=updated&direction=desc" 2>/dev/null | \
|
||||||
jq -r '.[] | "#\(.number) \(.title)"' 2>/dev/null || true)
|
jq -r '.[] | "#\(.number) \(.title)"' 2>/dev/null || true)
|
||||||
|
|
||||||
PHASE1_PROMPT="You are maintaining STATE.md — a compact factual snapshot of what ${PROJECT_NAME} currently is and does.
|
PHASE1_PROMPT="You are maintaining STATE.md — a compact factual snapshot of what ${PROJECT_NAME} currently is and does.
|
||||||
|
|
||||||
|
## Project Documentation (read for context — understand the system before writing)
|
||||||
|
${PROJECT_DOCS:-"(no docs found)"}
|
||||||
|
|
||||||
## Current STATE.md
|
## Current STATE.md
|
||||||
${CURRENT_STATE:-"(empty — create from scratch)"}
|
${CURRENT_STATE:-"(empty — create from scratch)"}
|
||||||
|
|
||||||
|
|
@ -84,15 +97,20 @@ ${MERGE_LOG:-"(none)"}
|
||||||
${CLOSED_ISSUES:-"(none)"}
|
${CLOSED_ISSUES:-"(none)"}
|
||||||
|
|
||||||
## Task
|
## Task
|
||||||
Update STATE.md by merging the new commits/issues into the existing snapshot.
|
Update STATE.md to describe what the project IS right now — its architecture, capabilities, and current state.
|
||||||
- Collapse redundant entries, merge related ones, discard superseded facts
|
|
||||||
- Output should read as a description of what the project IS, not a history of changes
|
|
||||||
- Plain bullets, no headers, no dates, no changelog framing
|
|
||||||
- Preserve issue/PR references (e.g. #42) on each line for traceability
|
|
||||||
- No more than 30 bullet points — be concise and factual
|
|
||||||
- If current STATE.md is empty, build the snapshot from scratch using the git log and issues
|
|
||||||
|
|
||||||
IMPORTANT: Output ONLY the updated bullet list. No summary of changes, no meta-commentary, no preamble, no markdown fences, no explanation of what you did. Just the bullets starting with '- '."
|
### Writing style
|
||||||
|
- Describe the SYSTEM, not the changes. Think: 'What would a new developer need to know?'
|
||||||
|
- Lead with what the project does at a high level, then drill into subsystems
|
||||||
|
- Group related capabilities together (e.g. all evolution stuff in one bullet)
|
||||||
|
- Issue/PR references (#42) are good for traceability but should SUPPORT descriptions, not replace them
|
||||||
|
- Bad: 'evolve.sh: auto-incrementing results directory (#752), cleans stale tmpdirs (#750)'
|
||||||
|
- Good: 'Evolution pipeline runs perpetually on a dedicated VPS, breeding Push3 optimizer bytecode through mutation, crossover, and elitism against a revm fitness evaluator'
|
||||||
|
- No dates, no changelog framing, no 'fixed X' or 'added Y' language
|
||||||
|
- No more than 25 bullet points — be concise and architectural
|
||||||
|
- First bullet should be a one-line project description
|
||||||
|
|
||||||
|
IMPORTANT: Output ONLY the bullet list. No summary of changes, no meta-commentary, no preamble, no markdown fences. Just bullets starting with '- '."
|
||||||
|
|
||||||
PHASE1_OUTPUT=$(timeout "$CLAUDE_TIMEOUT" claude -p "$PHASE1_PROMPT" \
|
PHASE1_OUTPUT=$(timeout "$CLAUDE_TIMEOUT" claude -p "$PHASE1_PROMPT" \
|
||||||
--model sonnet \
|
--model sonnet \
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue