Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/dirtybits/agent-skills/plan-writingnpx skills add dirtybits/agent-skills --skill plan-writinggit clone --depth 1 https://github.com/dirtybits/agent-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/dirtybits/agent-skills/plan-writing)<a href="https://agentmods.dev/skills/dirtybits/agent-skills/plan-writing"><img src="https://agentmods.dev/badge/skills/dirtybits/agent-skills/plan-writing.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00088 | $0.01093 |
| Opus 5 | $0.00044 | $0.00547 |
| Sonnet 5 | $0.00018 | $0.00219 |
| Haiku 4.5 | $0.00009 | $0.00109 |
Grade A, and why
plan-writing scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 101 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Plan Writing
Instructions
When writing or reviewing a plan file:
- Use the
.plan.mdextension. - When the user does not specify a location, default to
<repo>/.agents/plans/; if the repo already has an established plans directory such as.cursor/plans/, follow that local convention. - Start with YAML frontmatter containing
name,overview,todos, andisProject. - Make
todosa short execution checklist with stable lowercase hyphenatedidvalues, concretecontent, andstatus: pending. - After frontmatter, write the plan body in Markdown.
- Include enough repo-specific detail that another agent can implement without guessing.
- Separate implementation steps from validation, rollout, and rollback when the work has operational risk.
- Prefer exact files, commands, config keys, target hosts, acceptance criteria, and blockers over broad intent.
- Do not hide open questions. Add an assumptions or blockers section when requirements are uncertain.
- Date design decisions and verified claims (e.g. "verified 2026-06-09"), so a later session knows how stale they might be.
Executing a Plan
A plan file is shared state across sessions and agents: a resumed or parallel session decides what to do next by reading the todo statuses. Stale statuses cause redone or skipped work, so maintain them as part of the implementation itself, not as cleanup afterward.
- Statuses are
pending,in_progress, andcompleted. - Set a todo to
in_progresswhen starting it, and tocompletedas soon as its work is done and verified — not in a batch at the end of the session. If the session dies mid-plan, the file should still show exactly where things stood. - Only mark
completedwhen the step truly finished, including its verification. A step that ended in failing tests or partial work staysin_progress. - If a step turns out to be unnecessary or is superseded, do not leave it
pendingforever and do not silently delete it — mark itcompletedwith a brief note appended to itscontent(e.g. "— superseded by X"), so the record stays honest. - When implementation diverges from the plan body (a design changes, an edge case forces a different approach), update the body with a short dated note at the point of divergence. The plan should describe what was actually built; a plan that lies is worse than no plan.
- When the last todo completes, give the body a final pass: blockers that materialized, follow-ups discovered during implementation, and anything the next reader needs.
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 101 lines · 88 tokens per session scan A 950289283675
plan-writing is a skill published in the GitHub repository dirtybits/agent-skills (2 stars, last pushed 1mo ago), licensed MIT. It adds 88 tokens to every session and 1,093 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
next
One-step rpm orchestrator, or a bounded internal sequence when given a count or scope. Runs preflight maintenance, then starts the next obvious backlog action (or, in direct use, asks for clarification when nothing is clearly next). With no argument it runs one step; with N, blocked, all, or a group name it runs…
research
Exhaustive multi-agent research on any topic. Parallel search, URL fetching, gap analysis, adversarial validation, citation check. TRIGGER whenever the user asks for research, investigation, or an external look-up — phrasings like 'research X', 'look into X', 'investigate X', 'find out about X', 'what's the latest on…
init-rpm
Project setup and verification. First run creates rpm context for a project. Repeat runs verify that an existing rpm setup matches the latest expected layout and apply safe migrations.
audit
On-demand audit. Target quick runs the mechanical scan.sh only (zero-LLM drift check). Target documents scans docs + agent instructions + memory + session drift via the rpm:auditor review agent. Target project runs a full consultant review — code, architecture, inward + outward research, 7-dimension analysis, saved…
backlog
Manage the rpm backlog (long-term project tasks in docs/rpm/future/tasks.org — distinct from Claude's native TaskCreate list, which is session-scoped). Add, list, review, postpone, or complete entries. TRIGGER on natural-language backlog operations — phrasings like "backlog X", "add X to backlog", "add to backlog"…
rpm
Explain the rpm plugin and list its commands. Use when the user asks what rpm is, how /rpm works, which rpm commands are available, or needs an overview of the session-lifecycle / audit / research surface.