fix: correct newline formatting and sub-issue discovery in architect
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful

- Use $'\n' instead of literal \n in summary comment builder
- Query closed issues in Method 1 to find sub-issues regardless of state
- Document automated vision issue closure lifecycle in AGENTS.md
This commit is contained in:
Claude 2026-04-11 21:52:06 +00:00
parent f037ae1892
commit 1c3e3cd660
2 changed files with 13 additions and 2 deletions

View file

@ -60,6 +60,17 @@ All forks resolved → sub-issue filing (model files implementation issues)
REJECT review → close PR + journal (model processes rejection, bash merges PR)
```
### Vision issue lifecycle
Vision issues decompose into sprint sub-issues tracked via "Decomposed from #N" in sub-issue bodies. The architect automatically closes vision issues when all sub-issues are closed:
1. Before picking new vision issues, the architect checks each open vision issue
2. For each, it queries for sub-issues with "Decomposed from #N" in their body (regardless of state)
3. If all sub-issues are closed, it posts a summary comment listing completed sub-issues
4. The vision issue is then closed automatically
This ensures vision issues transition from `open``closed` once their work is complete, without manual intervention.
### Session management
The agent maintains a global session file at `/tmp/architect-session-{project}.sid`.

View file

@ -430,7 +430,7 @@ get_vision_subissues() {
# Method 1: Find issues with "Decomposed from #N" in body
local issues_json
issues_json=$(curl -sf -H "Authorization: token ${FORGE_TOKEN}" \
"${FORGE_API}/issues?state=open&limit=100" 2>/dev/null) || true
"${FORGE_API}/issues?state=closed&limit=100" 2>/dev/null) || true
if [ -n "$issues_json" ] && [ "$issues_json" != "null" ]; then
while IFS= read -r subissue_num; do
@ -529,7 +529,7 @@ close_vision_issue() {
local sub_title
sub_title=$(curl -sf -H "Authorization: token ${FORGE_TOKEN}" \
"${FORGE_API}/issues/${subissue_num}" 2>/dev/null | jq -r '.title // "Untitled"') || sub_title="Untitled"
summary+="- #${subissue_num}: ${sub_title}\n"
summary+="- #${subissue_num}: ${sub_title}"$'\n'
count=$((count + 1))
done <<< "$subissues"