plannotator-compound Skill for Claude Code: Learn From Denied Plans
Reads the plans you denied in Plannotator, finds patterns in your feedback and writes an HTML report with a corrective prompt.
- Installs
- 12.2K
- on skills.sh
- Stars
- 9.8K
- on GitHub
- Files
- 3
- besides SKILL.md
- Updated
- Nov 2026
- last repo commit
plannotator-compound makes Claude read every *-denied.md plan in your Plannotator archive and sort your feedback into categories with counts and real quotes. It then writes a single HTML report with the patterns, how your expectations changed over time, your most-used phrases and a set of numbered instructions you can paste into future planning prompts. It is set to not start on its own, so you call it by name.
It reads your whole plan archive, uses parallel sub-agents (Haiku for extraction, Sonnet for the analysis) and takes a while on a big archive. If you have no Plannotator archive, it falls back to the denial reasons in your Claude Code transcripts under ~/.claude/projects/, using a bundled Python script. At the end it offers to save the instructions as a file that Plannotator injects into every future planning session.
Good for
- Plannotator users with a pile of denied plans and recurring feedback
- Claude Code users who deny plans in plan mode and want agents to stop repeating the same mistakes
- Developers who want a standing instruction file built from their own review history
Install plannotator-compound
Claude Code
- 1
Copy this prompt.
Install the plannotator-compound skill in Claude Code. Run this command: npx skills add backnotprop/plannotator/apps/skills/extra --global Then check that it loaded and tell me how to use it.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires Node.js.
The first command installs the three extra skills in that folder (compound, setup-goal and visual-explainer). The Plannotator installer adds the plannotator binary, hooks and slash commands for the agents it detects, and can offer the extras. Add --minimal to install the binary only. Call the skill by name; it never starts on its own.
From the vendor's docs. Source.
What's in the skill
When it loads
Analyze a user's Plannotator plan archive to extract denial patterns, feedback taxonomy, evolution over time, and actionable prompt improvements — then produce a polished HTML dashboard report. Falls back to Claude Code ExitPlanMode denial reasons when Plannotator data is unavailable.
Sections in SKILL.md
- Source Selection
- Phase 0: Locate Plans & Check for Previous Reports
- Previous Report Detection
- Phase 1: Inventory
- Phase 2: Map — Parallel Extraction
- Batching Strategy
- Output Files
- Extraction Prompt
- While Agents Run
- Phase 3: Reduce — Pattern Analysis
- Reduction Strategy
- Reduction Prompt
- 1. Denial Reason Taxonomy
- 2. Top Feedback Patterns (ranked by frequency)
- 3. Recurring Phrases
- 4. What the Reviewer Values (implicit preferences)
Key facts
- Installs on skills.sh
- 12,151 (Nov 2, 2026)
- GitHub stars
- 9,810 (repo, Nov 2, 2026)
- Last commit
- Nov 1, 2026 (repo)
What it includes
Finds your Plannotator data folder, or falls back to Claude Code transcripts.
Runs plannotator data-dir, checks plans/ for *-denied.md files, and otherwise reads ~/.claude/projects/. If neither exists it asks you for a path.
Runs code ·
Source selectionFinds earlier reports and asks whether to analyze only new plans or everything.
Looks for compound-planning-report*.html, uses the latest file's date as a cutoff and asks you to pick incremental or full.
Files ·
Phase 0: previous reportsCounts approved and denied plans, the date range and the revision rate.
Counts files by name and line counts of approved plans, without reading approved plan contents.
Read ·
Phase 1: inventoryHaiku sub-agents read every denied plan and write structured notes.
One entry per denied file, written to /tmp/compound-planning/extraction-*.md. Small sets of 10 files or fewer are read directly.
Write ·
Phase 2: parallel extractionA Sonnet sub-agent builds the taxonomy, phrases and corrective instructions.
Produces eight sections: denial taxonomy, top patterns, recurring phrases, what you value, what agents get wrong, structural requests, evolution over time and prompt instructions.
Write ·
Phase 3: pattern analysisWrites a self-contained report with seven sections to your plans folder.
Saved as compound-planning-report.html, with -v2, -v3 and so on for later runs. The report includes a copy button for the corrective prompt.
Write ·
Phase 4: HTML dashboardTells you counts, top three patterns, coverage estimate and where the file is.
A chat summary of what was analyzed and the most useful prompt change.
Phase 5: summaryOn your yes, saves the instructions to a file Plannotator injects into planning.
Writes <data-dir>/hooks/compound/enterplanmode-improve-hook.txt. If one exists, you choose replace, merge or keep.
Write ·
Phase 6: improvement hookParses Claude Code transcripts for plan denial reasons in fallback mode.
Run with python3 on ~/.claude/projects/ and writes JSON to /tmp/compound-planning/.
Runs code ·
scripts/extract_exit_plan_mode_outcomes.py
From the official docs
Permissions
Medium risk
It reads your plan archive or Claude Code transcripts, writes files, and can add a file that is injected into every future planning session. Say no to the improvement hook unless you have read the instructions it would save.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
It can add a file injected into every plan
After the report, it asks before saving <data-dir>/hooks/compound/enterplanmode-improve-hook.txt, which Plannotator's EnterPlanMode hook injects into future planning. Read the instructions first and answer no if unsure. github.com
It reads your plans and transcripts
Every denied plan is read by sub-agents, or in fallback mode your Claude Code transcripts are parsed. Those contain your plans and feedback, so use it only where that content may go to your model provider. github.com
It writes working files to /tmp
Extraction and analysis files go to /tmp/compound-planning/ and the report to your plans folder. Delete the /tmp files when done. github.com
Technical details
| Talks to | fonts.googleapis.com (Google Fonts, used by the report design) |
|---|---|
| Scopes |
|
Questions
What does plannotator-compound do?
It reads the plans you denied in Plannotator and groups your feedback into categories with counts and quotes. It then writes an HTML report and a numbered list of instructions you can add to planning prompts.
How do I install plannotator-compound?
Use the install box above. The skills CLI command installs the three extra Plannotator skills. The Plannotator installer adds the plannotator binary and its hooks as well.
Do I need Plannotator?
Plannotator is the first-class source. If your archive has no denied plans, SKILL.md falls back to denial reasons in ~/.claude/projects/ with a bundled Python script. If neither exists, it asks you for a folder.
How do I start it?
Call it by name. Its frontmatter sets disable-model-invocation, so Claude does not start it on its own. In Codex the README says Plannotator skills use the $plannotator-* form.
Is it safe to run?
It reads every denied plan or your Claude Code transcripts, writes files to /tmp and your plans folder, and runs sub-agents on that content. It also asks before saving a file that is injected into future planning sessions. Say no to that step unless you want it.
Does it need an API key?
SKILL.md names none. It runs sub-agents, one for each batch of plans.
Information
updated Nov 2, 2026
- Repository
- backnotprop/plannotator
- Folder
apps/skills/extra/plannotator-compound
Sources
Docs, issue trackers and discussions this page is built from.
Show all 6Hide
- Plannotator README · github.com
- Plannotator install.sh · github.com
- plannotator-compound SKILL.md · github.com
- claude-code-fallback.md · github.com
- plannotator-compound on skills.sh · skills.sh
- backnotprop/plannotator · github.com