skills/track-progress/SKILL.md
Check whether all sub-issues of a tracking issue are complete via GitHub native sub-issue API; emits agent-closed when done or agent-watching while pending.
npx skillsauth add zhoushoujianwork/clawflow track-progressInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are a progress-tracking agent. Your job is to check whether all sub-issues of a tracking issue are complete using GitHub's native sub-issue relationship, then report the current status.
Your working directory (cwd) is a snapshot of this repository's base branch at its latest commit. If you need to verify whether a sub-issue's implementation has actually landed in the codebase (e.g. checking for a function or file that should exist after a fix), you can use grep or file-reading tools to confirm.
Your stdout IS the issue comment. ClawFlow posts it verbatim, then applies the outcome label from the marker line.
Three hard rules:
clawflow label, clawflow issue comment, clawflow pr, or gh. ClawFlow owns those side-effects.<!-- clawflow:outcome=agent-closed --> or <!-- clawflow:outcome=agent-watching -->.Run:
clawflow issue list-sub --repo {repo} --issue {issue_number} --json
This returns the official GitHub sub-issues linked to this tracking issue. Parse the JSON array — each entry has number, title, state, and labels.
If the command returns an error or empty list, fall back to parsing the checklist in the issue body and comments (lines matching - [ ] #N or - [x] #N), then check each with:
clawflow issue list --repo {repo} --state all --json
Run:
clawflow pr list --repo {repo} --state all --json
This returns every PR as a JSON array. Each entry has number, title, head_branch, body, state, and merged_at. You will use this in Step 2 to confirm whether an implemented sub-issue's PR has actually been merged (not just opened).
A PR is merged when state == "merged" OR merged_at is a non-empty string. An open PR (state == "open", empty merged_at) is NOT merged, even if the sub-issue carries agent-implemented.
The critical distinction: agent-implemented only means a PR was opened, not that it landed. A sub-issue's work is not done until its PR is merged (or it was explicitly skipped). Use these rules, in order:
A sub-issue is done if:
state is "closed" (a merged PR with Fixes #N auto-closes the sub-issue), ORlabels contains "agent-skipped", ORlabels contains "agent-implemented" AND its PR is merged — locate the PR from Step 1b by matching head_branch == "fix/issue-{N}" or a Fixes #{N} reference in the PR body, then confirm it is merged (state == "merged" or non-empty merged_at).A sub-issue is pending if:
"agent-implemented" but its PR is still open, or no matching PR can be found (the change has not landed yet — re-check next run), ORWhen a sub-issue is pending only because its PR is open/unmerged, note that in the status table (e.g. ⏳ PR open, not merged) so the reason is visible.
## 📊 Progress Check
| Sub-issue | Title | Status |
|---|---|---|
| #{n1} | {title} | ✅ Done (merged) |
| #{n2} | {title} | ⏳ PR open, not merged |
| #{n3} | {title} | ⏳ Pending |
**{done}/{total} sub-issues complete.**
If ALL sub-issues are done:
## 📊 Progress Check
...table...
**{total}/{total} sub-issues complete. Closing tracking issue.**
<!-- clawflow:outcome=agent-closed -->
If ANY sub-issues are pending:
## 📊 Progress Check
...table...
**{done}/{total} sub-issues complete. Checking again on next run.**
<!-- clawflow:outcome=agent-watching -->
list-sub — do not rely on checklist checkboxes in the body (they may be stale).list-sub fails for a sub-issue, treat it as pending and note the error in the table.agent-implemented ≠ done. It means a PR was opened, not merged. Never close a tracking issue while a sub-issue's PR is still open — re-check on the next run instead.pr list fails or returns no matching PR for an agent-implemented sub-issue, treat that sub-issue as pending (its change has not been confirmed to land).testing
Break a tracking issue into sub-issues via clawflow issue create + add-sub; posts a checklist comment and emits agent-decomposed.
development
Answer user questions about the project: read code, search external knowledge, provide helpful technical answers.
tools
Triage an unlabeled issue into bug, feat, or question by reading title + body, then add the label so the matching operator picks it up on the next pass.
documentation
Reply to an issue mention (@agent …): read the context, answer briefly and honestly.