skills/meta-project-docs-maintenance/SKILL.md
Maintain project documentation under docs/ as one current source of truth across README, living specs, implementation plans, and decision records. Use when the user asks to organize, update, split, prune, archive, or clean up docs/specs, docs/plan, docs/decisions, README content, docs language or naming policy, ADRs, implemented plans, README-vs-spec boundaries, spec bloat, or post-implementation documentation. Do not use this as a general code-review or implementation planning skill unless the requested output is documentation maintenance.
npx skillsauth add plimeor/agent-skills meta-project-docs-maintenanceInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Maintain docs as the current operational memory for the repo. Each active fact should have one owner:
A good docs-maintenance result:
When establishing policy, propose the smallest policy that solves the current problem. Treat a full docs-system migration as a separate task unless the user explicitly requests it.
Do not update specs for changes that do not affect public behavior, shared contracts, state, package boundaries, install/sync/publish behavior, or current usage.
Do not make documentation cleanup look like implementation evidence. Only claim tests, commands, logs, measurements, or smoke runs that were actually observed.
Before editing docs, read the directly relevant docs and repo-local rules:
AGENTS.md or CLAUDE.mddocs/specs/, docs/plan/, and docs/decisions/ shape when the
task concerns docs organizationRead source code, package metadata, CLI help, schema files, or command output only when a documentation claim depends on executable behavior, command syntax, schema shape, package boundaries, or the user asks for verification.
Scan all of docs/ only when the user asks for comprehensive cleanup,
migration, archive, or policy work. Stop once the current fact ownership and
required edits are supported. Do not keep searching to improve phrasing.
README is the public entrypoint. Continue using the language the current README already uses. Do not translate README as drive-by cleanup.
Put this in README:
Default away from putting one-feature implementation details, internal debates, long design alternatives, repo-local policy, or duplicated living specs in README. Keep those only when README is intentionally the sole public doc and the user asks for that shape.
Use docs/specs/<english-topic>.md for living implementation specs.
Specs describe the current effective contract:
Do not use specs for superseded alternatives, chronological logs of failed attempts, step-by-step implementation plans, or rationale that only explains why a major choice was made.
When old context is still valuable, move it instead of deleting it silently:
docs/decisions/.docs/plan/.Use docs/plan/YYYY-MM-DD-<english-description>.md for one-time implementation
plans.
Plans are temporary. They should contain the requested outcome, non-goals,
dependencies, ordering, risks, decision points, verification steps, and a status
marker such as Planned, In Progress, Implemented, Superseded, or
Abandoned.
After implementation:
Use docs/decisions/YYYY-MM-DD-<english-description>.md for historical decision
records.
Decision records are for choices that are significant, traceable, and expensive to reverse: package boundaries, runtime or framework choices, schema and state-file commitments, public API or CLI direction, migration strategy, security, publishing, or deployment posture.
Keep decision records thin:
Do not write a decision record for small internal refactors, obvious cleanup, or temporary research.
Use the user's primary working language for internal docs under docs/. Infer
the language from the current conversation and surrounding repo docs. If the
signal is mixed, prefer the language that lets the user review design defects
most accurately.
Continue using the README's current language for README and other established public entrypoints. Do not change their language unless the user explicitly asks for a translation or public-language migration.
Use English for filenames, package names, command names, options, schema fields, error codes, and code identifiers.
Do not create two canonical versions of the same doc in different languages. If outside readers need help, add a short English summary or README link instead of maintaining parallel full documents.
Use English kebab-case filenames.
Default naming:
docs/specs/<topic>.md: no date prefix because the file is a living spec.docs/plan/YYYY-MM-DD-<description>.md: date prefix because the file is tied
to one implementation episode.docs/decisions/YYYY-MM-DD-<description>.md: date prefix because the file is a
historical record.docs/ideas/YYYY-MM-DD-<description>.md: date prefix if the repo uses an
ideas folder for snapshots.Use the event or decision date when it is known. Do not use today's date just because the cleanup is happening today.
If the current repo already uses a different naming policy, do not rename files as drive-by cleanup. State the mismatch and ask whether the user wants a separate migration.
Living specs should become more accurate over time, not just larger.
Split a spec when it covers multiple independent packages, commands, or public contracts; when readers need only one section most of the time; or when new changes repeatedly touch one subsection without touching the rest.
Prune a spec when a paragraph only explains a superseded plan, the same contract is stated in multiple places, README and spec both contain the same long usage block, examples no longer add contract detail, or historical rationale interrupts current behavior.
Prefer links over duplication. The deeper doc owns the detailed contract; the higher-level doc summarizes and links.
For docs-only prose cleanup, run git diff --check -- docs when docs/ exists.
If the repo has no docs/ or the command is not applicable, say why.
When deleting or moving a plan/spec, check old path and title references in
README.md, docs/, and project rules, for example:
rg '<old-path>|<old-title>' README.md docs AGENTS.md
When editing commands, schema descriptions, CLI output, or executable examples, validate with source code, existing tests, CLI help, or the actual command. If you cannot validate, label the fact as unverified.
Do not run code tests by default for docs cleanup unless the doc change claims executable behavior or the user asks.
When reporting completion, include:
Stop once the requested documentation ownership, edits, validation state, and out-of-scope follow-ups are clear.
Do not keep an implemented plan synchronized with later code. Extract the value, then remove it or mark it as historical according to repo policy.
Do not create new documentation layers when the existing README/spec/plan/decision split is enough.
tools
Decide whether and how to use authorized sub-agents, then coordinate delegated work while preserving the main agent's context. Use when the user asks for orchestration, parallel agents, delegation, background workers, context isolation, or when another skill needs delegated research, review, implementation, or verification. Owns host-policy checks, delegation packets, non-overlap, report verification, and stop rules. Do not use to bypass tool policy, infer user authorization, or add coordination overhead to simple single-threaded tasks.
development
Use before finalizing a non-trivial answer, recommendation, review, or decision to reconsider it and raise its quality, especially when shallow reasoning, context inertia, false framing, overconfidence, unfit analogy transfer, or an obvious-but-missed defect could distort the result. Trigger especially before applying external evidence, familiar frameworks, or comparisons to the user's specific request, and when the user asks to reconsider, double-check, take a second look, or sanity-check an answer. Reconsider the draft against its most likely failure mode, and use independent scrutiny only when it is useful and authorized.
development
Review concrete code plan drafts, specs, diffs, and implementation shapes. Use for code-review requests, serious code-plan design critique, and judging whether a proposed direction is sound. Prioritize solution direction, premise validity, logic chain, constraints, alternatives, design shape, contracts, tests, local fit, and actionable findings. Near miss: use code-plan to create or revise plans; use code-scope-gate for pre-spec scope shaping.
development
Write evidence-backed coding plans for implementation, debugging, refactoring, migrations, design parity work, and long-running agent tasks. Use when defining, clarifying, refining, or validating a development plan, /goal prompt, implementation approach, scope and non-goals, work sequence, acceptance criteria, regression evidence, verification strategy, or stop condition. Near miss: use code-review when judging an existing diff, spec, or already drafted plan rather than drafting or revising a plan. Also use when the user says `design twice` after a plan and wants an APOSD-style second-design pass over the completed plan.