plan-clean

plan-clean is a skill for Claude Code from paulbaranowski/wild-horses. It costs 54 tokens per session (3,027 once invoked), scanned A, original, MIT.

A tool for reviewing a repository's active plans and classifying each as complete, partial, irrelevant, or open. It archives only complete plans and leaves the other plans where they are.

In plain words
What is it for?
Use it to scan backlog, todo, and in-progress plans, archive completed ones, and list the remaining plans by status.
Why use it?
It removes finished plans from the active planning area without accidentally moving unfinished or unrelated work. Each decision must include evidence.

Skill for Claude Code

Written for Claude Code: ${CLAUDE_PLUGIN_ROOT} variable.

Not installable: its command points at a path on the author’s own machine, so it runs nowhere else. The line is /Users/paul/plans/wild-horses/done/2026-05-01-foo--exec-plan.md.

Part of the plan-keeper plugin — 10 skills shipped together

Good fit Use it to scan backlog, todo, and in-progress plans, archive completed ones, and list the remaining plans by status.

Compare 6 skills from other repositories ↓
Install

Getting it into your agent

This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.

Claude Code
/plugin marketplace add paulbaranowski/wild-horses
Claude Code
/plugin install plan-keeper

Made for: Claude Code.

Or install plan-keeper, the plugin that ships this one along with the rest of its 10 skills.

Wrote 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.

agentmods badge for plan-clean

README.md
[![agentmods](https://agentmods.dev/badge/skills/paulbaranowski/wild-horses/plan-clean/github.svg)](https://agentmods.dev/skills/paulbaranowski/wild-horses/plan-clean)
Your own site
<a href="https://agentmods.dev/skills/paulbaranowski/wild-horses/plan-clean"><img src="https://agentmods.dev/badge/skills/paulbaranowski/wild-horses/plan-clean/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.

agentmods 80×15 button for plan-clean

Your own site · 80×15
<a href="https://agentmods.dev/skills/paulbaranowski/wild-horses/plan-clean"><img src="https://agentmods.dev/badge/skills/paulbaranowski/wild-horses/plan-clean.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 54 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,027 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00054 $0.03027
Opus 5.5 $0.00022 $0.01211
Sonnet 5.5 $0.00011 $0.00605
Haiku 4.5 $0.00005 $0.00303

Measured 21d ago against content hash ca6413606b18, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

plan-clean 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 21d 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.

plugins/plan-keeper/skills/plan-clean/SKILL.md · 257 lines

How it starts

The opening of the file, as written. The whole thing — 257 lines — stays where its author put it; the contents beside it link to each section on GitHub.

plan-clean

This skill checks every backlog, todo, and in-progress plan for one repo against the default branch. It gives each plan one verdict: complete, partial, irrelevant, or open. It archives the complete plans to done/ and prints the four lists. Partial, irrelevant, and open plans stay where they are.

The bundled plan_keeper_cli.py does every write. This skill does the judging.

Calling this skill

  • Input. The current repo, or one repo the user names. An optional dry-run phrase.
  • Return. The four lists, with one evidence line per plan. The archived path of each complete plan.
  • Does alone. Reads every backlog, todo, and in-progress plan. Assigns one verdict each. Archives the complete plans with no second confirm.
  • Never. Never scans a second repo. Never edits a plan body. Never moves a partial, irrelevant, or open plan. Never archives on a guess.

Quick reference

  • Scan set: active plans whose Status is backlog, todo, or in-progress. A missing Status counts as backlog.
  • Out of scope: in-review plans, and everything in done/ and deferred/.
  • <repo>: resolved once in step 1 and passed as --override to every list call. See ../../repo-derivation.md.
  • Writes: file-meta set --status done on each complete plan. Nothing else.
  • Pairs: a .md plan and its same-base-name siblings (usually a task-list .json) are one plan. The CLI moves the siblings with the plan, byte for byte.
  • Dry run: "dry run", "just show", or "don't archive yet". The report appears and nothing is written.
  • Kind order: see ../../plan-kinds.md. The order is idea, prd, reqs, design, spec, exec-plan.

Procedure

Write every CLI call with the literal python3 "${CLAUDE_PLUGIN_ROOT}/scripts/plan_keeper_cli.py" prefix. The plugin's approval hook matches only that prefix. A shell variable does not survive to the next Bash call.

1. Determine the repo

Read the full file on GitHub · 257 lines

Files

What ships with it

1 file 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.

Changes

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.

  1. 21d ago First seen · 257 lines · 54 tokens per session scan A ca6413606b18

Subscribe to this mod's changes

plan-clean is a skill published in the GitHub repository paulbaranowski/wild-horses (14 stars, last pushed 10d ago), licensed MIT. It adds 54 tokens to every session and 3,027 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-09-28.