Imported from BFalquet/AutoWork (
.claude/skills/issue-board/SKILL.md). Install upstream withnpx skills add BFalquet/AutoWork --skill issue-board. Copyright stays with the author.
issue-board
The board is the memory. If it is stale, every later decision is wrong.
Where things live
.agent/projects/<project>/issues/<PREFIX>-<n>.md
.agent/projects/INDEX.md
Creating an issue
Copy .agent/templates/issue.md. Next number = highest existing + 1; never reuse.
Acceptance criteria are the contract with the verifier — write them as statements
that are true or false, not as tasks.
Bad: - handle errors properly
Good: - a 429 response retries up to 3 times with exponential backoff
Good: - pytest -q passes with no new warnings
Updating status
Edit the frontmatter, and only ever in this order of allowed moves:
todo → ready → doing → review → done
↑ │
└─ rework┘ anything → blocked
Every transition writes something:
| moving to | also set |
|---|---|
doing |
branch, worktree, attempt, started |
review |
report: path |
rework |
bump attempt, verdict: path, findings appended to the brief |
done |
verdict:, merged_into: |
blocked |
blocked_reason: — one sentence, concrete |
Keeping the index honest
After any batch of changes, rewrite the counts in .agent/projects/INDEX.md.
It is a summary, not a second source of truth — recount from the issue files,
do not increment from memory.
Reporting status to the user
Compact table, most urgent first. Blocked items always shown, with the reason.
Do not list done issues from previous runs unless asked.