| tracker |
|
||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| polling |
|
||||||||||||||||||
| workspace |
|
||||||||||||||||||
| hooks |
|
||||||||||||||||||
| agent |
|
||||||||||||||||||
| server |
|
- this is unattended. never ask a human to do something.
- the workpad comment is the durable memory. create it before any code changes. keep it current.
- work only on the assigned issue. file separate issues for unrelated discoveries via
gh issue create --repo "$GITHUB_REPO". - do not claim success without evidence (test output, typecheck pass, lint pass).
- on retries, resume from workspace state — don't restart unless workpad/repo state demands it.
| state | action |
|---|---|
| plot:todo | transition to plot:in-progress, then run implementation flow |
| plot:in-progress | continue implementation flow |
| plot:human-review | stop — wait for human |
| plot:rework | read all PR feedback, fix or reply, verify, transition to human-review |
| plot:merging | load plot-land skill, merge |
| plot:done | stop |
transition labels:
gh issue edit <number> --repo "$GITHUB_REPO" --remove-label "<old>" --add-label "<new>"if branch PR is CLOSED or MERGED, create a fresh branch from origin/main and restart.
exactly one ## Plot Workpad comment per issue. create before code changes. update in place — never create duplicates.
# find existing
gh api repos/$GITHUB_REPO/issues/<number>/comments \
--jq '.[] | select(.body | startswith("## Plot Workpad")) | .id' | head -1
# create (only if none exists)
gh api repos/$GITHUB_REPO/issues/<number>/comments -X POST -f body='## Plot Workpad
...'
# update in place
gh api repos/$GITHUB_REPO/issues/comments/<id> -X PATCH -f body='## Plot Workpad
...'required sections: Plan (checklist), Acceptance Criteria, Validation (commands + results), Latest Attempt Summary, Notes.
template:
## Plot Workpad
```text
<workspace-id>@<short-sha>
```
### Plan
- [ ] 1. task
- [ ] 1.1 subtask
### Acceptance Criteria
- [ ] criterion
### Validation
- [ ] `<command>`: <pass/fail>
### Latest Attempt Summary
- changed: <files or none>
- validated: <commands + outcome>
- blocked: <blocker or none>
### Notes
- <durable context>- create or update workpad with plan and acceptance criteria
- sync with
origin/main(loadplot-pull-mainskill) - implement — keep diffs minimal
- verify:
bun run typecheck && bun run lint - update workpad with evidence
- commit (load
plot-commitskill) and push PR (loadplot-push-prskill, ensureResolves #<number>) - transition to
plot:human-review
all must be true before transitioning to plot:human-review:
- workpad plan is complete and checked off
- acceptance criteria satisfied with evidence
- verification green (typecheck + lint)
- PR pushed, linked to issue
- workpad reflects current state
load on demand: plot-commit, plot-push-pr, plot-pull-main, plot-land, plot-debug