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 ndisisnd/msg --skill plan-pmgit clone --depth 1 https://github.com/ndisisnd/msgWrote 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/ndisisnd/msg/plan-pm)<a href="https://agentmods.dev/skills/ndisisnd/msg/plan-pm"><img src="https://agentmods.dev/badge/skills/ndisisnd/msg/plan-pm/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/ndisisnd/msg/plan-pm"><img src="https://agentmods.dev/badge/skills/ndisisnd/msg/plan-pm.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.00119 | $0.02308 |
| Opus 5.5 | $0.00048 | $0.00923 |
| Sonnet 5.5 | $0.00024 | $0.00462 |
| Haiku 4.5 | $0.00012 | $0.00231 |
Grade A, and why
plan-pm 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 1mo 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 — 98 lines — stays where its author put it; the contents beside it link to each section on GitHub.
plan-pm
Usage
Invoke: /plan-pm. With no args it lists the INTAKE.md backlog and asks which row to plan.
- Slash commands:
/plan-pm,/plan-pm #<n>(plan a specific intake row),/plan-pm --sub [parent PRD path | number],/plan-pm --update [prd path | number | --all] - Natural language: "plan this idea", "draft a PRD", "write the PRD for the streaks feature", "turn backlog item 3 into a PRD"
- Natural language (sub-PRD): "create a sub-PRD", "more changes to PRD 2", "follow-up fixes for this PRD", "spin off a sub-PRD" — route to the
--submode in the § Sub-PRD mode section below. - Natural language (update): "migrate this PRD to the new template", "update the PRDs to the new style", "bring PRD 3 up to date with the template" — route to the § Update mode section below.
Modes: default (autonomous top-level PRD from an intake row), --sub (a numbered follow-up nested under an existing parent PRD), and --update (maintenance on PRDs that already exist). When --sub is present — flag or sub-PRD natural-language trigger — read § Sub-PRD mode (--sub) first; all other steps run identically. --update replaces the five-step protocol entirely.
Every PRD comes from an INTAKE.md row — there is no other entry path. Prose handed straight to plan-pm is captured into the ledger first (Step 1 calls /intake in capture mode), then planned from the row that comes back. Nothing is drafted against a row that does not exist.
Hard refusal: a request to skip the PRD and jump straight to engineering. State that plan-em requires a PRD and offer to draft one now (from a backlog row) or accept an existing PRD path for plan-em.
Pre-run — devkit reads
Before Step 1, stat-check and read the following in parallel via Bash. Written to devkit/ by /msg --init; CLAUDE.md stays at project root.
| File | How to apply |
|---|---|
devkit/AHA.md |
Surface relevant entries in the Open questions section; apply self-healing learnings (G5) to the draft so a category-tagged pattern (e.g. [tune:error-cases] …) is avoided this run |
CLAUDE.md |
Extract tech-stack constraints, conventions, architecture notes; validate feasibility of the drafted features and constrain the autonomous draft where the project setup already determines an answer |
devkit/ARCHITECTURE.md |
Load system layers and integration points; validate feasibility and note conflicts in Open questions; source the platform detection in Step 3 |
devkit/OPEN-QUESTIONS.md |
Scan for unresolved decisions that constrain the draft; surface relevant entries in Open questions |
What ships with it
4 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.
- 1mo ago First seen · 98 lines · 119 tokens per session scan A 3bca40998b6c
plan-pm is a skill published in the GitHub repository ndisisnd/msg (6 stars, last pushed 2d ago), licensed MIT. It adds 119 tokens to every session and 2,308 once invoked, about $0.0005 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-08-31.
Other skills, from other repositories
skillspec-migrate
Complete a .agent.partial file by resolving TODO markers.
skill-writer
Review a SkillSpec .agent file for quality, correctness, and adherence to SkillSpec design principles.
skillspec-test
Execute test blocks from a SkillSpec .agent file.
skillspec-backport
Reconcile changes from a modified SKILL.md back into the .agent source file.
build-knowledge-base
Build or update a persistent repo knowledge base graph.
revise-roadmap
Revise an implementation roadmap based on critic feedback.