doc-maintenance
Keeps project documentation updated with code changes. It detects differences and updates pages without rewriting everything.
What it does
This tool helps keep a project's documentation up-to-date with recent code changes. It detects when the documentation no longer reflects the program's actual behavior and suggests or makes necessary corrections.
When to use it
- ✓When a project's code is updated and the documentation might be outdated.
- ✓Before releasing a new project version to ensure the documentation is accurate.
- ✓When a bug was caused by incorrect information in the documentation.
Example of what to ask your AI
“Keep the documentation for project X aligned with the latest code changes.”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
The tool compares recent code with existing documentation to find inconsistencies. It then updates the affected pages to match the current code behavior, without rewriting what is already correct.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add paperclipai/paperclip --skill doc-maintenanceOr download just the file:
curl -L https://raw.githubusercontent.com/paperclipai/paperclip/master/packages/skills-catalog/catalog/bundled/docs/doc-maintenance/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
Doc Maintenance
Keep the documentation honest with minimum churn. The goal is alignment between docs and behavior, not stylistic rewrites or cosmetic re-organization. Reviewers should be able to read a diff and see "this updates docs to match recent behavior changes".
When to use
- A PR or recent set of merges changed user-visible behavior: CLI flags, API shapes, default values, configuration keys, endpoints, environment variables, supported versions.
- A user-reported bug traced back to outdated documentation.
- A release is being cut and the docs need a pass against the merged commits.
- A new feature shipped but only the engineer's PR description describes how to use it.
When not to use
- The change is internal-only (private helper rename, refactor) with no user-visible impact.
- You want to "improve the docs" without a behavior anchor. That is a separate scoped project, not maintenance — make a plan first.
The pass
- Establish the baseline. Get the commit range you are documenting against (since last release tag, since last merged-doc commit, or since a specific PR).
- Enumerate user-visible changes. Read commits and PR descriptions. List, for each change, what a user can now do differently.
- Map changes to docs. For each change, find every page that mentions the affected concept. Common targets: README, CLI reference, API reference, configuration reference, migration guide, FAQ, examples.
- Update precisely. Edit only the lines that need to change. Do not rewrap paragraphs you did not modify — it pollutes the diff.
- Add new entries where needed. New CLI flag → CLI reference entry. New env var → configuration reference entry. New endpoint → API reference entry. Don't only add it to the changelog.
- Update examples and snippets. Code blocks in docs are wrong faster than prose. Re-run any example that touches new behavior.
- Write the release note. One sentence per user-visible change. Group by Added / Changed / Fixed / Deprecated / Removed. Link to the relevant PRs and docs section.
- Cross-check. Search the docs for the old behavior wording and remove or update stragglers.
Style baseline
- Voice: second person ("you can pass
--jsonto ..."). Avoid "we" except in narrative pages. - Tense: present, not future. The behavior exists once shipped.
- Headings: imperative ("Configure the cache") or noun-phrase ("Cache configuration"), match the surrounding page.
- Code blocks: include the language tag so syntax highlighting works.
- Cross-links: link the first mention of a concept on each page; do not link every occurrence.
- Avoid promising future behavior. If something is unreleased, mark it
experimentalor omit it.
Drift detection
A doc page is drifting if any of these are true:
- It documents a flag, key, or endpoint that no longer exists.
- An example does not run as written.
- A default value in the docs does not match the code.
- A supported-versions list excludes a version the project actually supports, or includes one it dropped.
- A "Coming soon" section references a feature that shipped or was cancelled.
When you find drift, fix it in the same pass and note it in the release note's Fixed group.
Release-note rules
- One sentence per item. If two sentences are needed, the item is likely two items.
- User impact first, internal cause second.
Faster cold start (avoid full bundle download on first run)beatsRefactor bootstrap loader. - Link the PR for engineering readers and the docs page for users.
- Mark breaking changes explicitly:
**Breaking:**prefix. Include migration steps inline or via link.
Anti-patterns
- Massive doc PRs that bundle stylistic rewrites with real updates. Reviewers cannot tell which lines reflect actual behavior changes.
- "Updated docs" commit messages with no detail. Make the commit say what changed and why.
- Adding to the changelog without updating the reference docs the changelog points to.
- Marking a feature as available before its code lands. Documentation must follow behavior, not promise it.
FAQ
What is documentation 'drift'?
'Drift' occurs when the documentation no longer reflects the actual code behavior, such as documenting a removed function or a changed default value.
Do I need to rewrite the entire documentation?
No, the goal is only to update the parts that are incorrect or outdated due to code changes. Sections that were not affected do not need to be altered.
Does the tool write release notes?
Yes, it can help create concise release notes by summarizing user-visible changes and noting the documentation updates made.
Details
Original description by the author
Keep project docs aligned with recent code and feature changes — detect drift, update affected pages, and add release-relevant notes without rewriting unchanged sections.
repo: paperclipai/paperclip
Popularity
- GitHub stars
- 103k
- Ranking position
- #375
- License
- MIT
- Updated
- 10/16/2026
Comments
- …
More skills from this repository
delegate-work
Helps your agent delegate work to another agent. It's useful for breaking down complex tasks and tracking progress in an organized way.
paperclipai/paperclip
follow-up-results
Has your agent check results from previous work. It's useful for tracking task progress and adding human feedback.
paperclipai/paperclip
review-my-team
Helps your agent review the connected team. It's useful for getting a summary of the team, tasks, blockers, and pending approvals.
paperclipai/paperclip
paperclip-task-bridge
Has your agent create and manage tasks on another platform. It's useful for interacting with project management systems directly.
paperclipai/paperclip
Similar skills
architecture-decision-records
Has your agent record important project structure decisions. It helps to understand the reasoning behind choices and maintain a clear history of changes.
affaan-m/ECC
code-tour
Lets your agent create step-by-step code walkthroughs with exact file and line anchors. It's useful for project introductions, code explanations, or change reviews. Helps understand how a system works.
affaan-m/ECC
codebase-onboarding
Helps your agent analyze unfamiliar code and create an onboarding guide. It includes an architecture map, entry points, and conventions. Ideal for starting on a new project.
affaan-m/ECC