Turn an unmanageable pile of 179 markdown plan and doc files into a clean, navigable library: relocate stray developer docs, archive every shipped plan after checking it for reusable knowledge, convert the keepers to template-styled HTML, normalize statuses, and stand up a repeatable six-month retention process so the mess never comes back. Scope is markdown only — the 18 existing HTML plans are left untouched.
Read and implement all steps in the plan at docs/plans/clean-up-docs-and-plans.md — Clean up and make docs/plans manageable. Verify against the plan's Tests, Verification, and Acceptance Criteria before reporting done. If everything passed, mark completion in docs/plans/clean-up-docs-and-plans.md — tick each step's [x] marker and each criterion's - [x], set status: completed — and re-render the HTML from the spec. If any check failed, leave status: in-progress and say which.
More ways to run this plan — goal & workflow prompts, file path
Achieve this goal: Clean up and make docs/plans manageable. The plan at docs/plans/clean-up-docs-and-plans.md describes one approach — use it as reference, but optimize for the outcome. Verify against the plan's Tests, Verification, and Acceptance Criteria before reporting done. If everything passed, mark completion in docs/plans/clean-up-docs-and-plans.md — tick each step's [x] marker and each criterion's - [x], set status: completed — and re-render the HTML from the spec. If any check failed, leave status: in-progress and say which.
clean-up-docs-and-plans.html
docs/plans/clean-up-docs-and-plans.html
docs/plans/clean-up-docs-and-plans.md
Context
The story behind this plan — what prompted the work and why it matters now.
The docs/ tree has grown unmanageable. Markdown is the problem; there are two in-scope piles plus excluded sets:
60 loose .md files at docs/ root — these are generated developer docs (they carry <!-- generated:start --> markers from the documenting-plans skill). They are valuable reference material but they clutter the repo root and are not organized.
119 markdown plans inside docs/plans/ — status frontmatter is inconsistent: 49 in-progress , 23 todo , 6 draft , plus stray completed , implemented , superseded , proposed , ready , and planned values.
18 HTML plans inside docs/plans/ — out of scope . This cleanup targets *.md only; existing .html plans are left exactly as they are (other than newly-created twins from Step 4).
82 files in docs/plans/archive/ — already-archived plans, organized under standard/ , artifact/ , fix/ , docs/ , and enhancement/ . Out of scope — left untouched per the repo's archive search-exclusion rule.
Decisions locked in during planning: scope = *.md files only, in docs/plans/ + the loose docs/ root (HTML plans and archive excluded); deliverable = a one-time cleanup pass and a scheduled retention routine; delete rule = retire plans whose status is completed , implemented , or superseded (verified shipped); preservation = convert developer-useful keepers to HTML using the implementation-plan template styles (deleting the .md after the twin verifies), and git-mv the rest to archive/ rather than hard-deleting so nothing is lost.
Note on the six-month rule: today is 2026-06-04 and the oldest plan's created: date is 2026-01-19, so nothing currently qualifies for age-based deletion (the cutoff is 2025-12-04). The six-month retention work is therefore forward-looking — we build the mechanism now and it will start retiring plans once they age past the threshold.
Steps
The step-by-step work, in order — each step says what to do, why it matters, and how to check it worked.
Definition of done
The plan counts as done when every statement below is true — check each one off as you verify it.
Final check
One last pass to confirm the whole change works end to end.
End-to-end, the cleanup is correct when a fresh checkout shows: a clean docs/ root (no loose .md ), a populated docs/guides/ , a lean docs/plans/ containing only active HTML plans plus the gallery and policy README, a grown docs/plans/archive/ holding every retired shipped plan, and a uniform status vocabulary throughout.
Run the full sweep: find docs -maxdepth 1 -name '*.md' | wc -l → 0; grep -rh '^status:' docs/plans/*.md | sort -u → only canonical values; the retention mechanism's dry-run → "0 eligible (cutoff 2025-12-04)"; and the regenerated gallery opens with a card count matching find docs/plans -maxdepth 1 -name '*.html' ! -name 'index.html' | wc -l . Confirm git status shows the moves as renames (not delete+add) so history survives, and that git log can still reach every archived plan.
Wrapping up
Three gates that must all pass before this plan is marked completed.
Completion Report
No items to report — all requirements met.