A Claude Code and Codex workflow suite for turning one GitHub spec into one reviewable PR.
This plugin ships the runner layer — implement-spec plus the PR review
helpers. The planning layer (idea → spec → tickets) comes from
Matt Pocock's skills, installed
separately and used as-is; this plugin only adds the repo conventions that make
their output runnable.
The default flow is:
wayfinderorgrill-with-docs(upstream) — clarify the idea. Usewayfinderfor large/foggy efforts; usegrill-with-docsfor focused codebase-backed ideas.to-spec(upstream) — synthesize the discussion into a GitHub spec, following this repo's conventions ([Spec]title,## Success Criteria, agent-ready label only when autosufficient).to-tickets(upstream, optional) — split the spec into tracer-bullet child tickets (native sub-issues + blocked-by relationships) only when it is too large to implement directly./implement-spec <spec>(this plugin) — implement exactly one spec, with independent code review per unit, dependency-wave scheduling, final integration review, and one self-contained PR body containing criteria verdicts, file cohorts by intent, review guardrails, and a GitHub QA checklist. Depending on your install, the command is namespaced:/afk-batch:implement-spec(if a bare/implement-specsays "Unknown command", use the namespaced form).- Human review and merge — the runner opens PRs but never merges them.
/capture is the intake side-entry: turn a bug, feedback, or feature request
into one labeled ticket at any point, without the full planning flow.
pr-rabbit and pr-walkthrough remain available for auditing or explaining an
existing PR. The old /afk-batch backlog-draining command is still shipped for
compatibility, but new work should use /implement-spec.
- Install Matt Pocock's skills (pick one):
npx skills@latest add mattpocock/skills/plugin marketplace add mattpocock/skills
/plugin install mattpocock-skills@mattpocock
- Install this plugin:
/plugin marketplace add 64ix/claude-afk-batch
/plugin install afk-batch@claude-afk-batch
Or cherry-pick the skills (not the runner command/workflows) via skills.sh:
npx skills@latest add 64ix/claude-afk-batch- Per repo, run
/setup-matt-pocock-skills(tracker, labels, domain docs), then/setup-agent-docs(how the repo is tested/built/validated + spec conventions, so the runner can derive its config).
Local Claude development:
claude --plugin-dir ./plugins/afk-batchCodex development uses the repo-local plugin manifest at
plugins/afk-batch/.codex-plugin/plugin.json.
.claude-plugin/marketplace.json
plugins/afk-batch/
├── .claude-plugin/plugin.json
├── .codex-plugin/plugin.json
├── commands/
│ ├── implement-spec.md
│ └── afk-batch.md # legacy backlog runner
├── agents/
│ ├── spec-implementer.md
│ ├── spec-reviewer.md
│ └── spec-final-reviewer.md
├── skills/
│ ├── implement-spec/
│ ├── capture/
│ ├── pr-rabbit, pr-walkthrough/
│ └── setup-agent-docs, NOTICE.md
├── workflows/
│ └── afk-implement.js # legacy backlog workflow
└── README.md
v0.13 — /capture, the intake side-entry: turn a bug, feedback, or feature
request into one labeled ticket, classified and routed with the triage
vocabulary (ready-for-agent, ready-for-human, needs-triage).
How it got here:
- v0.8 — planning skills delegated to upstream mattpocock/skills; this plugin no longer bundles copies.
- v0.9 — no runner config file. The runner derives its config from the project's own docs, CI, and manifests, and echoes what it resolved.
- v0.10 —
implement-specruns on the bundledspec-implementer/spec-reviewer/spec-final-reviewersub-agents instead of a Workflow, so an interrupted run re-dispatches only the agent that died. - v0.11 — worktrees under
.spec-worktrees/are cleared once the PR is published, sogh pr checkoutstops colliding with them. - v0.12 — GitHub-first (
gh, native sub-issues / blocked-by, text fallbacks); the/askrouting skill is gone — the workflow table in the plugin README is the router.