Checklist
Run a **repeatable checklist / to-do list** from a markdown file of `- [ ]` items — execute the open items, tick them `[x]`, and write the file back. Re-running resumes only the still-open items, so the file IS the durable, repeatable state. USE for a generic user to-do that should be runnable again and again: "run my TODO.md", "esegui la checklist", "go through CHECKLIST.md", "do the open items in release-steps.md". Each `- [ ]` line is itself the instruction for that item (optionally refined by --prompt). This is thin sugar over /agentflow:foreach with `--checkbox`: same engine, same durability and cross-turn resume, friendlier defaults. For "apply one operation to a JSON list / folder / glob" use /agentflow:foreach directly; to first GENERATE the list use /agentflow:enumerate; for one combined output use /agentflow:reduce.From its SKILL.md
npx -y skills add AleSaiani/agentflow --skill checklistAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 5 stars5 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
3.9 KB, as published. Nobody here has run it
/agentflow:checklist
Make it visible: in one line say you're starting a checklist run (file + run-id).
/agentflow:boardthen lists it on disk — the audit trail. All paths are relative to the workspace root.
You are running a repeatable checklist. This is /agentflow:foreach --checkbox with defaults — follow
the foreach skill's orchestration (${CLAUDE_PLUGIN_ROOT}/skills/foreach/SKILL.md); this file only
fixes the sugar.
Resolve arguments
- File (required): the first positional, else the user's named file, else
TODO.mdin the workspace root if present. It must contain markdown task lines (- [ ] ..., completed ones- [x] ...). - Per-item operation (
--prompt): default is "Complete this checklist task. The task text is in the item'sdata. Do it end-to-end using the available tools, then report concisely what you did and any follow-up. If the task is ambiguous or cannot be completed, say so and leave it for review." Override with--prompt(e.g.--prompt "Draft the section described by each item"). --serial→ run items in list order, one at a time (sequential to-do). Default is parallel chunks.--model/--execution/--dry-runpass through to foreach (--dry-run=--validate-only+ report the open-item count without executing).
Run it (defaults wired)
- Init a run (id like
checklist-<file-stem>-<date>):node "${CLAUDE_PLUGIN_ROOT}/dist/state/foreach.js" init <run-id> --checkbox <file> --prompt "<operation>" [--serial]--checkboxpre-marks existing[x]lines as done, so only open items are scheduled (this is what makes re-runs resume cleanly). For--dry-run, add--validate-onlyand stop here, reportingtotal/pending. - Drive the run exactly as the foreach skill describes:
claima chunk → dispatch each item to a subagent (or do it inline formain-thread) with the operation + the item's task text → record results withcomplete/complete-batch. The state file is the only source of truth; subagents never write state. - Write back: when items reach a terminal state, reflect them onto the file:
Done items becomenode "${CLAUDE_PLUGIN_ROOT}/dist/state/foreach.js" view <run-id> --checkbox <file>- [x]; failed/blocked ones stay- [ ]and are reported for the next run. - Close: print a one-line summary (done / failed / remaining) and the run-id. Re-running
/agentflow:checklist <file>later picks up exactly the still-open items.
Notes
- Repeatable by design: the checkbox file is the state. Nothing else is needed to resume.
- Cross-turn durability and the Stop-hook auto-resume come for free from the foreach engine.
- To stop a long run, create the foreach
--stop-file; to cap cost, pass--max-usd(see foreach).