planwork
Skill2 starsChanged 3 months agoMITView on GitHub
Plan and execute non-trivial work through the taskman plan ledger. Use to turn a goal, PRD, or brainstorm into a grounded, self-contained plan a fresh agent can implement, then work it task-by-task with drift checks and verification gates. Harness-agnostic — state lives in the taskman plan ledger (default `.taskman/plans/`, discover with `taskman root`), not in editor-specific todo files. Use when the user says plan, plan it, write a plan, implement a plan, execute a plan, or work a plan.
In this repository16 other files it gives its agents.
- _global/AGENTS.mdAGENTS.md
- adhd-modeSkill
- browserSkill
- code-reviewerSkill
- commitSkill
- context7Skill
- datadogSkill
- discordSkill
- firestoreSkill
- handoffSkill
- linear-cliSkill
- slackSkill
- taskmanSkill
- workflowsSkill
- write-an-adrSkill
- write-prSkill
The file
We split this skill into the rules it gives an agent
9 rules. About 0 are common, 5 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Very specific: line 50
Read the public API — exported functions/classes/types and exact signatures.
- Distinctive: line 51
Read state shape, components, and the server/API layer as relevant.
- Distinctive: line 52
Check the dependency manifest for what's available.
- Distinctive: line 54
Never guess from file names.
- Very specific: line 57
If the work changes how anything looks or behaves visually, load references/visual-prototype.md and write an HTML prototype to …
- Very specific: line 99
Read <root>/<plan-name>/HANDOFF.md in full (and INITIATIVE.md if linked) — taskman root prints the ledger root.
- Very specific: line 108
Before writing code, read every file the HANDOFF cites under Patterns to follow and Files to modify, plus any referenced README/ADR/PRD.
- Distinctive: line 116
Run the task's verification gate.
- Distinctive: line 134
After all tasks are done or blocked, run the project's typecheck, lint, and test commands.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
planwork
Two phases. Plan turns intent into a grounded, self-contained plan in the taskman ledger. Execute works that plan top-to-bottom with drift checks and verification gates. Read the phase you need; you rarely need both in one turn.
Plan and task state is durable and harness-agnostic: it lives in the plan
ledger and is driven by the taskman CLI, never by an editor's native todo
panel or an improvised .plan.md file. Any agent with a shell produces the
same ledger. The ledger root defaults to .taskman/plans/ and can be moved by
a .taskmanrc — run taskman root once to discover it, and read <root>
below as that folder.
Requires the
taskmanCLI on PATH (taskman --version). If missing, prefix commands withnpx @dreki-gg/taskman. See thetaskmanskill for the full command and flag inventory.
Modes (references bridge)
SKILL.md is the router. Load a mode file only when its trigger fires — keep the
entry point small.
| Load this | When |
references/planning-context.md | The moment you form an opinion in Phase 1 — maintain context.md deliberation. |
references/visual-prototype.md | The work changes UI / layout / styling — force-write an HTML prototype. |
references/handoff-template.md | You are about to write a plan's HANDOFF.md. |
references/execution-discipline.md | You are executing or delegating tasks, or closing out a plan — gates, scoping, reconcile, discovered work. |
Phase 1 — Plan
Reach shared understanding before writing a plan. Do not write product code in this phase — the only files you may create or modify are under the ledger root (context.md, prototypes) until the plan is approved. Where the harness has a native planning mode (Cursor's Plan mode, Claude Code's plan mode), run Phase 1 inside it so the read-only discipline is enforced, not just promised.
1. Understand intent
Clarify the goal through dialogue. Push back on weak assumptions, name trade-offs, ask focused questions when a real choice exists. Batch clarifications: at most 5 questions in one message, each with enumerated options (and a free-form escape) so the user can answer in seconds — never drip one question per turn. As soon as you form
an opinion, start a deliberation record — load references/planning-context.md
and keep <root>/<plan>/context.md current.
2. Investigate the codebase (read-only)
Highest-leverage step. A plan that describes what should exist instead of what does exist will mislead the implementer. For every module the work touches:
- Map the real file tree — actual files, not assumptions.
- Read the public API — exported functions/classes/types and exact signatures.
- Read state shape, components, and the server/API layer as relevant.
- Check the dependency manifest for what's available.
Never guess from file names. Read the real files.
3. Prototype, if visual
If the work changes how anything looks or behaves visually, load
references/visual-prototype.md and write an HTML prototype to
<root>/_prototypes/<slug>.html before finalizing. Get a reaction first.
4. Write the plan into the ledger
Distill context.md into a HANDOFF.md (load references/handoff-template.md)
and create the plan with taskman. Tasks live in the ledger, not in markdown
frontmatter:
taskman create-plan --name <plan-name> --title "Title" \
--handoff-file <root>/<plan-name>/HANDOFF.md \
--tasks '[{"description":"<concrete task>"},{"description":"<next task>"}]'The HANDOFF must be grounded (real codebase, real signatures), self-contained (the implementer never sees this conversation), and carry a verification gate per task archetype. Tasks are ordered — earlier ones build foundations for later.
5. Size the work
- Bounded change, one session → a single flat plan.
- Large / multi-subsystem with dependencies → split into several plans under
one initiative; order them by dependency. Use
taskman initiative-status <name>to see which plans are ready (all dependencies done). Keep cross-plan reasoning in the initiative'sINITIATIVE.md; each plan keeps its owncontext.md.
6. Present
List the plans with name, overview, and task count (taskman status --plan
<name>). Flag parallel vs sequential dependencies. Get sign-off before execution.
Phase 2 — Execute
Work a plan from the ledger. Your only job is to work the tasks — don't explore beyond what each task needs, and don't deviate silently.
1. Orient
taskman list # plans in this repo
taskman status --plan <plan-name> # task ids + progressRead <root>/<plan-name>/HANDOFF.md in full (and INITIATIVE.md if linked) —
taskman root prints the ledger root. The first pending task is the start.
2. Drift check (do this FIRST)
Plans go stale. If the HANDOFF records a base commit, run git rev-parse HEAD;
if it differs, run git diff <base> --stat, re-read the files the current task
touches, and adapt to what the code actually looks like now. Warning, not a stop.
3. Read referenced context
Before writing code, read every file the HANDOFF cites under Patterns to follow and Files to modify, plus any referenced README/ADR/PRD. Trust the code, not the plan — if signatures disagree, the code wins.
4. Work each task, in order
For each pending task:
- Re-read the files you're about to modify; confirm the HANDOFF's assumptions hold.
- Implement — follow the cited patterns, not generic conventions.
- Run the task's verification gate.
- Mark done only after the gate passes:
taskman update-task --plan <plan-name> t-00N done --notes "brief proof: lint/typecheck/test"
Blocked (missing dep, ambiguous requirement, design decision needed):
taskman update-task --plan <plan-name> t-00N blocked --notes "why + what decision is needed"Then move to the next unblocked task.
Discovered work outside the plan — defer it, don't do it now:
taskman add-task --plan <plan-name> "short label" --reason "gap found while doing t-00N"5. Final verification
After all tasks are done or blocked, run the project's typecheck, lint, and test commands. Fix anything you broke before declaring done. Then taskman reconcile (read-only) to confirm registry and task state agree — see references/execution-discipline.md before ever passing --apply.
6. Report
taskman status --plan <plan-name>Tell the user: N/M done, which tasks are blocked and why, any deviations and the reason.
Key principles
- Grounded, not aspirational — read real files first; a plan against imagined code fails.
- Self-contained — the implementer sees only the HANDOFF and the ledger.
- Harness-agnostic state — plan/task lifecycle lives in the taskman ledger
(
taskman rootshows where), never an editor's native todo file. - Encode the API surface — the biggest time sink is discovering signatures; spell them out in the HANDOFF.
- Ordered — earlier tasks build foundations for later ones; don't skip ahead.
- Patterns, not principles — cite
src/components/FooBar.tsx:40-85, not "match conventions". - Read before writing — never modify a file you haven't read this session.
- Gate before done — a task is
doneonly after its verification gate passes.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

