plans
Skill0 starsChanged 4 months agoMITView on GitHub
Archive finalized Claude Code implementation plans to named, project-local files with a global index at ~/.claude/plans/INDEX.md. Use this skill whenever the user says "archive this plan", "save this plan", "/plans", "/plans archive", "finalize plan", or "this plan is done". Also use for "what plans do I have", "show archived plans", "plans list", "find the plan for [project]". Trigger proactively at the end of any plan-mode session that produced a finalized implementation plan — suggest archiving before the session ends. Works globally across all projects — not tied to any specific repo or git workflow.
6 other projects use a version of this.
Adopted by
Most recently taken up by
- futex-ai/skillstheir own version, first seen Oct 25, 2026
- PanPanFR/oh-my-openkilotheir own version, first seen Oct 22, 2026
- agentstation/skillstheir own version, first seen Oct 13, 2026
- Ezra144israel/agent-teamwork-kittheir own version, first seen Sep 17, 2026
- Ezra144israel/governed-agent-skillstheir own version, first seen Sep 17, 2026
- brettatoms/agent-skillstheir own version, first seen Jan 30, 2026
Other versions6 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 6
- Ezra144israel/agent-teamwork-kit★ 24same name
- Ezra144israel/governed-agent-skills★ 24same name
- PanPanFR/oh-my-openkilo★ 9same name
- brettatoms/agent-skills★ 3same name
- agentstation/skills★ 1same name
- futex-ai/skills★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repositoryOne other file it gives its agents.
- SKILL.mdSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
21 rules. 0 are common, 12 are distinctive, and 9 are very specific to this project.
0
Common
Most of the 6 edited versions we read keep these.
12
Distinctive
This author's own choices. Worth a look.
9
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 88
Do NOT trigger proactively for exploratory or in-progress plans, partial outlines, or plans explicitly marked as drafts.
- Distinctive: line 129
Never write files before user confirms.
- Very specific: line 133
Create <project>/plans/ directory if it doesn't exist.
- Distinctive: line 134
Write plan content to the local plan file.
- Very specific: line 149
If the source was a random-slug file, include the full slug name (e.g., misty-conjuring-hammock) — this is the fun part, keep it.
- Very specific: line 151
Read existing ~/.claude/plans/INDEX.md (create it if it doesn't exist).
- Distinctive: line 159
No git commit. No push.
- Distinctive: line 165
When the user asks "what plans do I have" / "plans list" / "show archived plans":
- Distinctive: line 175
Read INDEX.md and find matching rows (case-insensitive, partial match OK)
- Distinctive: line 178
No match: report not found, offer to search by date or keywords
- Distinctive: line 198
Update INDEX.md: change the plan's status column.
- Very specific: line 199
Update the plan file's > Status: header line to match (e.g., > Status: \executed\`).
- Distinctive: line 207
When a session begins on a known project:
- Very specific: line 208
Check INDEX.md for an active plan for this project.
- Distinctive: line 209
If found, read it silently — let it inform your work.
- Distinctive: line 210
If the match is uncertain, ask: "I found a recent plan that might be for this project — [title] from [date].
- Very specific: line 211
Do NOT read plans with status executed, superseded, archived, or rejected at session start.
- Distinctive: line 215
When you encounter a plan file path in a devlog entry, roadmap reference, conversation, or any other context:
- Very specific: line 218
If status is executed, superseded, archived, or rejected: note the status and do not treat this as the current approach.
- Very specific: line 219
If status is active: treat as the current plan.
- Very specific: line 220
If no > Status: line exists (legacy plan file without the marker): check INDEX.md for the plan's status before acting on it.
“Common” is measured: kept by at least 6 in 10 of the 6 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Plans Archive Skill
This skill archives finalized Claude Code implementation plans to project-local plans/ directories with a global index at ~/.claude/plans/INDEX.md. Plans stay with their projects. The index is the cross-project lookup.
This skill is global — it works across all projects and requires no Git repo or commit workflow.
Why This Matters
Claude Code auto-saves plan mode output to ~/.claude/plans/<random-slug>.md. These files accumulate with no project association, no index, and no way to retrieve "what was the plan for project X last month?" Plans capture the full rationale and constraints of an implementation effort. They pair naturally with DEVLOG.md: plans capture the "how before execution," devlog captures the "what was decided and why."
File Layout
~/.claude/plans/
INDEX.md — Global lookup: slug ↔ project-local plan file
misty-conjuring-hammock.md — Claude Code auto-generated plan (random slug, do not modify)
vast-coalescing-cookie.md — Another auto-generated plan
...
<project-directory>/plans/
2026-03-21-marketing-messaging.md — Named plan copy, references slug file
2026-03-21-product-analysis.md — Another named plan
...~/.claude/plans/<slug>.md— Claude's auto-generated plans. Never modify these.<project>/plans/<date-name>.md— Named, project-local copies with a reference back to the slug file.~/.claude/plans/INDEX.md— Master lookup table mapping slugs to project-local files.
INDEX.md Format
Lives at ~/.claude/plans/INDEX.md.
# Plans Index
| Date | Slug | Project | Title | Local Plan | Status |
|---|---|---|---|---|---|
| 2026-03-21 | `misty-conjuring-hammock` | code-katz | Marketing & Messaging Plan | `code-katz/plans/2026-03-21-marketing-messaging.md` | `active` |
| 2026-03-21 | `misty-conjuring-hammock` | d20m | Product Analysis & Roadmap | `d20m/plans/2026-03-21-product-analysis.md` | `active` |Newest row first. Multiple plans can reference the same slug (when one slug file contains plans for multiple projects). Status values:
| Status | Meaning |
active | Current plan for this project, being executed against |
archived | Superseded by a newer plan after execution work began |
superseded | Replaced before execution started |
executed | Fully implemented and delivered |
rejected | Created but never acted on; no longer relevant |
Local Plan Filename Format
YYYY-MM-DD-plan-slug.md — date of archiving, 3-5 word lowercase-hyphenated slug derived from the plan title.
Examples:
2026-03-21-marketing-messaging.md2026-03-21-product-analysis.md2026-02-10-auth-redesign.md
Trigger Conditions
Explicit
- "archive this plan" / "save this plan" / "plans save"
/plans//plans archive- "finalize plan" / "this plan is done" / "this plan is final"
- "plans list" / "what plans do I have" / "show archived plans"
- "find the plan for [project]" / "show me the plan for [project]"
Proactive
At the end of a plan-mode session that produced a finalized implementation plan — before the user moves to execution — suggest: "This plan looks finalized — want me to archive it to <project>/plans/?"
Do NOT trigger proactively for exploratory or in-progress plans, partial outlines, or plans explicitly marked as drafts.
Workflow: Archiving a Plan
Step 1: Locate Plan Content
In order:
- Random-slug file — If the current plan slug is known, read
~/.claude/plans/<slug>.mddirectly. Preferred. - Conversation extraction — Extract the most recent structured implementation plan from the thread.
- Ask — "Where is the plan? I can read
~/.claude/plans/<slug>.mdif you have the filename, or extract it from this conversation."
Step 2: Determine Project and Title
Extract the plan title from the first H1 heading. Derive:
- Project directory — the project root where the plan will be saved (e.g.,
code-katz/,d20m/) - Project name — short human-readable identifier for INDEX.md (e.g., "code-katz", "d20m")
- Short slug — lowercase-hyphenated, 3-5 words from the title, for the filename
Suggest and confirm: "I'll save this as code-katz/plans/2026-03-21-marketing-messaging.md — correct?"
Step 3: Show the User (before writing anything)
Here's what I'm about to do:
1. Create <project>/plans/ directory (if needed)
2. Write plan to <project>/plans/YYYY-MM-DD-plan-slug.md
3. Update ~/.claude/plans/INDEX.md
— New row: date | slug | project | title | local path | active
— Previous active plan for this project (if any) → archived
Plan starts with:
---
[first 8-10 lines of plan content]
---
Proceed?Never write files before user confirms.
Step 4: Write Files
- Create
<project>/plans/directory if it doesn't exist. - Write plan content to the local plan file. Prepend a header block:
> Source: `~/.claude/plans/<random-slug-name>.md`
> Archived: YYYY-MM-DD · Project: [project name]
> Status: `active`
> Maintained by [claude-plans-skill](https://github.com/code-katz/claude-plans-skill).
---
[verbatim plan content]The > Status: line is the in-file status marker. It must always match the plan's status in INDEX.md. When a plan's status changes, update both INDEX.md and this header line. This ensures that if Claude reads a plan file directly (via a path in a devlog, roadmap, or conversation), the status is immediately visible without consulting INDEX.md.
If the source was a random-slug file, include the full slug name (e.g., misty-conjuring-hammock) — this is the fun part, keep it. If the plan was extracted from conversation with no slug, use Source: conversation instead.
- Read existing
~/.claude/plans/INDEX.md(create it if it doesn't exist). Update the previously-active row for this project toarchivedorsuperseded. Update the corresponding plan file's> Status:header line to match. Prepend new row with statusactive. - Review other active plans for this project. Scan INDEX.md for any other
activeplans for the same project. If found, flag them to the user: "There are N other active plans for [project]. Should any of these be marked as executed, superseded, or rejected?" List the plans with their titles and dates. User decides per-plan; update both INDEX.md and file headers accordingly. This prevents staleactiveplans from accumulating.
Step 5: Confirm
"Saved to <project>/plans/YYYY-MM-DD-plan-slug.md and indexed in ~/.claude/plans/INDEX.md."
No git commit. No push.
Workflow: Listing Plans
When the user asks "what plans do I have" / "plans list" / "show archived plans":
- Read
~/.claude/plans/INDEX.md - Display the full table — never truncate
- Offer to load any plan: "Want me to read any of these?"
Workflow: Retrieving a Plan
- Read INDEX.md and find matching rows (case-insensitive, partial match OK)
- One match: read and display the local plan file
- Multiple matches: show matching rows and ask which
- No match: report not found, offer to search by date or keywords
Workflow: Changing Plan Status
Any plan's status can be changed at any time. Both INDEX.md and the plan file's > Status: header line must be updated together.
Triggers
| User says | New status |
| "mark the plan executed" / "we shipped it" / "the plan is done" | executed |
| "this plan is superseded" / "we replaced this plan" | superseded |
| "reject this plan" / "we're not doing this" / "this plan is dead" | rejected |
| "archive this plan" (when a newer plan exists) | archived |
Steps
- Identify the plan (by title, slug, or context). If ambiguous, ask.
- Update INDEX.md: change the plan's status column.
- Update the plan file's
> Status:header line to match (e.g.,> Status: \executed`). If the plan file has no> Status:line (legacy file), add one after the> Archived:` line. - Confirm: "Marked
[title]as[new status](was[old status])." - For
executedstatus specifically, suggest a devlog entry: "Want to log a devlogmilestoneentry referencing this plan?"
Session Start Behavior
When a session begins on a known project:
- Check INDEX.md for an
activeplan for this project. - If found, read it silently — let it inform your work. Do not summarize unless the user asks.
- If the match is uncertain, ask: "I found a recent plan that might be for this project — [title] from [date]. Should I load it as context?"
- Do NOT read plans with status
executed,superseded,archived, orrejectedat session start. These are historical context only.
Reading Plan Files Directly
When you encounter a plan file path in a devlog entry, roadmap reference, conversation, or any other context:
- Check the
> Status:line in the file header first. This is the authoritative in-file status marker. - If status is
executed,superseded,archived, orrejected: note the status and do not treat this as the current approach. It is historical context only. If the user is asking about it for research purposes, provide it with the status clearly noted. - If status is
active: treat as the current plan. - If no
> Status:line exists (legacy plan file without the marker): check INDEX.md for the plan's status before acting on it. If it appears in INDEX.md as non-active, treat accordingly. If it does not appear in INDEX.md, ask the user.
Error Handling
- Slug file not found — Fall back to conversation extraction. Notify the user.
- INDEX.md missing — Create it fresh.
- INDEX.md unexpected format — Show the user and ask whether to overwrite or manually merge.
- Title/project ambiguous — Always ask before archiving with incorrect metadata.
- Project directory unclear — Ask the user: "Which project directory should this plan live in?"
Style Guidelines
- Local plan filenames use the date of archiving (not plan creation or delivery date)
- Short-title slugs should be meaningful when scanning
<project>/plans/— not generic - INDEX.md is always newest-first
- Preserve plan content verbatim — no reformatting, no summarizing
- Project names in INDEX.md should be consistent across rows
- One slug can map to multiple project-local plans (when a plan file covers multiple projects)
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

