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 ayberkcansever/ai-skills --skill prepare-plangit clone --depth 1 https://github.com/ayberkcansever/ai-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/ayberkcansever/ai-skills/prepare-plan)<a href="https://agentmods.dev/skills/ayberkcansever/ai-skills/prepare-plan"><img src="https://agentmods.dev/badge/skills/ayberkcansever/ai-skills/prepare-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/ayberkcansever/ai-skills/prepare-plan"><img src="https://agentmods.dev/badge/skills/ayberkcansever/ai-skills/prepare-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.00051 | $0.03829 |
| Opus 5.5 | $0.00020 | $0.01532 |
| Sonnet 5.5 | $0.00010 | $0.00766 |
| Haiku 4.5 | $0.00005 | $0.00383 |
Grade A, and why
prepare-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 14d 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 — 330 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Prepare Plan
Interview the user into a spec of provable decisions, then write a plan implement-plan can schedule. Stop for approval after each.
Input: $ARGUMENTS
Reads: the ticket and its linked docs, the code, docs/quirks.md, any
existing spec or plan for the ticket.
Writes: <root>/docs/plans/<plan>/spec.md and plan.md.
Later skills and resumed sessions see only these files, never this chat —
whatever they need goes in a file. <plan> is the plan's name: the name or
ticket key in the input, else the branch's ticket key
(git branch --show-current | grep -oE '[A-Z]+-[0-9]+'), else a short
kebab-case name you propose and the user confirms. Announce it once set:
/implement-plan and /review-build later in this session use it without
arguments. <root> is the main checkout,
root="$(dirname "$(git rev-parse --path-format=absolute --git-common-dir)")",
even when this session runs in a linked worktree — every skill finds the
folder there and it outlives worktree removal. The folder is never
committed: unless already ignored, add docs/plans/ to
"$(git rev-parse --git-common-dir)/info/exclude" (review-build refuses
untracked files; .gitignore is tracked).
Invariants
- Read the ticket and the code before asking. Never ask what they answer; ask only what would change the plan.
- Ask through
AskUserQuestion: up to 4 questions per call whose answers don't depend on each other — a question that reshapes the others goes alone. Each question names its tag and theFound:fact behind it; each has 2–4 concrete options, the recommended one first and labelled(Recommended), with its one-line reason in the description. Free-form answers arrive through the built-in "Other". - An unanswered question stays open. "Probably", "sure", "we'll see" are not decisions — re-ask with a sharper recommendation and force a yes / no.
- Every decision has a
Check:— runnable command, named test, ormanual QA: <step>. Every[product]decision also has anExample:with real values, an edge value included. Cannot write them → the decision is too vague; sharpen it. - Backward compatibility is closed from grep results, never from memory. Every
symbol, path, field, route, or env var the plan names cites
file:lineor was verified during planning. Never guess a name. - Backward compatible by default. During a rolling deploy old and new code
run side by side, and a rollback runs old code over data the new code
wrote — both must keep working. Schema and contract changes are additive
(expand), readers move next, removals (contract) ship later as a
## Releasefollow-up. Anything else is a[compat]decision the user approves explicitly, marked(breaking — approved <date>). - Write to
spec.mdthe moment something is decided, assumed, or asked. Decisions are append-only: a change is a newD<n>markedsupersedes D<m>, with the old one struck. - Approvals live in the spec's
**Status:**line. No plan beforespec-approved(short lane: one approval for both); no code beforeplan-approved. - After a context compaction, re-read the spec and plan — the files are the truth.
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.
- 14d ago First seen · 330 lines · 51 tokens per session scan A d19fcfd1671f
prepare-plan is a skill published in the GitHub repository ayberkcansever/ai-skills (2 stars, last pushed 14d ago), licensed MIT. It adds 51 tokens to every session and 3,829 once invoked, about $0.0002 per session on Opus 5.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-10-03.
Other skills, from other repositories
fetch-url
Fetch a single URL and convert its content to Markdown. Use when you need to read a web page, documentation page, or API reference without indexing it. The content is returned as plain Markdown text on stdout.
firebase-messaging
Use when setting up Firebase Cloud Messaging, managing permissions and tokens, handling background/foreground notification taps, or dispatching messages server-side (HTTP v1).
firebase-cloud-functions
Use when calling callable functions (httpsCallable), passing data to server-side logic, handling function errors/timeouts, configuring regions, or testing with the Emulator Suite.
accessibility
Use when working on accessibility, a11y, WCAG, ARIA, screen readers, keyboard nav, focus order, contrast, alt text, captions, reduced motion, or target sizes; not language/culture/device (see inclusive-design).
karpathy-llm-wiki
Use when building or maintaining a personal LLM-powered knowledge base. Triggers: ingesting sources into a wiki, querying wiki knowledge, linting wiki quality, 'add to wiki', 'what do I know about', or any mention of 'LLM wiki' or 'Karpathy wiki'.
excalidraw-architect
Choose and compose the right Excalidraw diagram - architecture, flowchart, sequence, state, ER, swimlane, process, timeline, quadrant, pyramid, venn, loop, gantt, bar, line, scatter, and more - using the excalidraw-architect-mcp server. Use whenever a reader would learn more from a picture than from prose, or when…