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 skills add chicken-noodle-chris/tome --skill write-a-plangit clone --depth 1 https://github.com/chicken-noodle-chris/tomeWrote 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/chicken-noodle-chris/tome/write-a-plan)<a href="https://agentmods.dev/skills/chicken-noodle-chris/tome/write-a-plan"><img src="https://agentmods.dev/badge/skills/chicken-noodle-chris/tome/write-a-plan/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/chicken-noodle-chris/tome/write-a-plan"><img src="https://agentmods.dev/badge/skills/chicken-noodle-chris/tome/write-a-plan.svg" alt="Reviewed on agentmods" width="80" 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.1 | $0.00021 | $0.00788 |
| Opus 5 | $0.00010 | $0.00394 |
| Sonnet 5 | $0.00004 | $0.00158 |
| Haiku 4.5 | $0.00002 | $0.00079 |
Grade A, and why
write-a-plan 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 10d 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.
What it actually says
Optional input: A description of the task that the plan should accomplish.
The flow: understand the goal, design the plan, author it directly as a vault page, and present it for approval. One approval gate: the plan itself. Iterate on the page in place until the user is happy; don't stop to ask "what do I do next?" between steps.
Conventions (frontmatter, placement, body style, linking, status vocabulary) live in
wiki/SCHEMA.md and are enforced by scripts/tome.py — run tome help and lean on it
rather than hand-executing mechanics. tome is on PATH in Bash (the plugin's SessionStart
hook puts it there) — just run tome <cmd>; if it's ever not found, fall back to python "$TOME_PLUGIN_ROOT/scripts/tome.py" <cmd>. It resolves which vault to act on via
--vault / walking up from cwd / VAULT_ROOT, and bare paths like wiki/SCHEMA.md
are relative to the vault root, not the plugin root.
-
Understand the goal. If the user didn't describe the task, interview them: ask what the plan should accomplish, then any clarifying questions on intent and scope. Explore the relevant code as needed so the plan is concrete and grounded.
-
Prime yourself on the vault. Run
tome syncto pull, thentome prime --full(skip if already primed this session). -
Design and author the plan page (with its task).
tome new plan <slug> --project <name> --title "T" --desc "..." --with-task "<task title>" [--priority high|medium|low] [--ac "<criterion>" ...]scaffolds both in one command — the task is optional (the plan'sstatus, not a task, is the source of truth; omit--with-taskfor a plan with none), and its hub listing is generated automatically (the project folder must already exist —tome new project <name> ...first if not). Judge--priority/ACs yourself when unspecified. If the work clearly wants a particular executor tier — stronger for greenfield/precedent-setting design, weaker for mechanical work not worth premium tokens — add an agent-tier label:-l agent:<haiku|sonnet|opus|fable>— pickup-task halts a mismatched executor (either direction) for user direction; omit when any tier can do it. Then write the plan body directly — timeless prose describing what the work is, not its current status. New work isstatus: proposed(ortome set-status <slug> doneif it's already implemented — close its task separately withtome done, since--with-taskonly covers creation).tome log plan "..."for the log entry. -
Present for approval — the one gate. Summarize the approach, key decisions, and any task fields you judged on the user's behalf. Iterate on the page (and task) in place until they approve — no separate draft.
-
Sync.
tome sync -m "..."once approved. No separate commit approval needed — step 4's approval covered the plan's content, not its mechanics.
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.
- 10d ago First seen · 51 lines · 21 tokens per session scan A 72d105a3acc1
write-a-plan is a skill published in the GitHub repository chicken-noodle-chris/tome (6 stars, last pushed 1mo ago), licensed MIT. It adds 21 tokens to every session and 788 once invoked, about $0.0001 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
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
local-ai-agents
Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
insight-error-page
Write or audit an insight-kind error page for the Next.js dev overlay. Use when creating a new errors/ .mdx page, auditing an existing one, or checking that a page matches the framework fix cards. Covers page structure, title alignment, FixCard cards with Copy prompt button, code snippets, terminology verification…
next-cache-components-optimizer
Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route at a time; the shipped test then…
next-partial-prefetching-adoption
Turn on Partial Prefetching in a Next.js app and work through the insights it surfaces. Use when the user wants to enable or adopt Partial Prefetching, flip the partialPrefetching flag, opt routes in with export const prefetch = 'partial', audit Link prefetch={true} behavior, preserve existing prefetched UI with…