
Doc Maintenance
FreeKeep documentation accurate and up-to-date with minimal effort.
Free · Opens the source repo
What Doc Maintenance does
The Doc Maintenance skill is designed to help developers and teams maintain the accuracy of their documentation by detecting drift and applying necessary updates through a streamlined process. It focuses on three primary documents: README, SPEC, and PRODUCT, ensuring that they reflect the most current state of the codebase after significant changes, such as feature merges or scheduled reviews. This skill automates the process of auditing these documents against the latest git history, allowing teams to focus on development while ensuring their documentation remains reliable.
When invoked, the skill first identifies the last reviewed commit using a cursor file, which helps track changes made since the last audit. It then gathers all relevant commits and classifies them into categories such as features, breaking changes, and structural modifications. By ignoring non-impactful changes like refactors and style updates, the skill zeroes in on what truly affects the documentation.
Once changes are identified, the skill audits the target documents against a structured checklist, checking for inaccuracies and ensuring that all major features are accurately represented. The process culminates in creating a new branch where only minimal edits are applied to correct inaccuracies, preserving the original tone and style of the documents. Finally, it opens a pull request for review, making it easy for teams to integrate these updates into their workflow without unnecessary churn.
This skill is ideal for teams that regularly update their software and need to ensure their documentation evolves alongside their code. It is particularly useful after major releases or during scheduled documentation reviews, providing a systematic approach to maintaining high-quality documentation.
When to use it
Use this skill during regular documentation reviews, after major feature merges, or whenever there's a need to verify the accuracy of your documentation.
When not to use it
This skill is not suitable for rewriting large sections of documentation or for addressing cosmetic changes. It focuses strictly on factual accuracy and minimal edits.
What you can build with it
Post-Release Documentation Review
After releasing a new version, use the skill to ensure all documentation reflects the latest features and changes.
Scheduled Documentation Audits
Set a regular schedule to run the skill, keeping documentation consistently accurate and up-to-date.
Feature Merge Verification
After merging significant features, run the skill to audit the documentation for any necessary updates.
How to install Doc Maintenance
View source1. Install with the skills CLI
npx skills add paperclipai/paperclip/doc-maintenance --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by paperclipaiDoc Maintenance Skill
Detect documentation drift and fix it via PR — no rewrites, no churn.
When to Use
- Periodic doc review (e.g. weekly or after releases)
- After major feature merges
- When asked "are our docs up to date?"
- When asked to audit README / SPEC / PRODUCT accuracy
Target Documents
| Document | Path | What matters |
|---|---|---|
| README | README.md | Features table, roadmap, quickstart, "what is" accuracy, "works with" table |
| SPEC | doc/SPEC.md | No false "not supported" claims, major model/schema accuracy |
| PRODUCT | doc/PRODUCT.md | Core concepts, feature list, principles accuracy |
Out of scope: DEVELOPING.md, DATABASE.md, CLI.md, doc/plans/, skill files, release notes. These are dev-facing or ephemeral — lower risk of user-facing confusion.
Workflow
Step 1 — Detect what changed
Find the last review cursor:
# Read the last-reviewed commit SHA
CURSOR_FILE=".doc-review-cursor"
if [ -f "$CURSOR_FILE" ]; then
LAST_SHA=$(cat "$CURSOR_FILE" | head -1)
else
# First run: look back 60 days
LAST_SHA=$(git log --format="%H" --after="60 days ago" --reverse | head -1)
fi
Then gather commits since the cursor:
git log "$LAST_SHA"..HEAD --oneline --no-merges
Step 2 — Classify changes
Scan commit messages and changed files. Categorize into:
- Feature — new capabilities (keywords:
feat,add,implement,support) - Breaking — removed/renamed things (keywords:
remove,breaking,drop,rename) - Structural — new directories, config changes, new adapters, new CLI commands
Ignore: refactors, test-only changes, CI config, dependency bumps, doc-only changes, style/formatting commits. These don't affect doc accuracy.
For borderline cases, check the actual diff — a commit titled "refactor: X" that adds a new public API is a feature.
Step 3 — Build a change summary
Produce a concise list like:
Since last review (<sha>, <date>):
- FEATURE: Plugin system merged (runtime, SDK, CLI, slots, event bridge)
- FEATURE: Project archiving added
- BREAKING: Removed legacy webhook adapter
- STRUCTURAL: New .agents/skills/ directory convention
If there are no notable changes, skip to Step 7 (update cursor and exit).
Step 4 — Audit each target doc
For each target document, read it fully and cross-reference against the change summary. Check for:
- False negatives — major shipped features not mentioned at all
- False positives — features listed as "coming soon" / "roadmap" / "planned" / "not supported" / "TBD" that already shipped
- Quickstart accuracy — install commands, prereqs, and startup instructions still correct (README only)
- Feature table accuracy — does the features section reflect current capabilities? (README only)
- Works-with accuracy — are supported adapters/integrations listed correctly?
Use references/audit-checklist.md as the structured checklist.
Use references/section-map.md to know where to look for each feature area.
Step 5 — Create branch and apply minimal edits
# Create a branch for the doc updates
BRANCH="docs/maintenance-$(date +%Y%m%d)"
git checkout -b "$BRANCH"
Apply only the edits needed to fix drift. Rules:
- Minimal patches only. Fix inaccuracies, don't rewrite sections.
- Preserve voice and style. Match the existing tone of each document.
- No cosmetic changes. Don't fix typos, reformat tables, or reorganize sections unless they're part of a factual fix.
- No new sections. If a feature needs a whole new section, note it in the PR description as a follow-up — don't add it in a maintenance pass.
- Roadmap items: Move shipped features out of Roadmap. Add a brief mention in the appropriate existing section if there isn't one already. Don't add long descriptions.
Step 6 — Open a PR
Commit the changes and open a PR:
git add README.md doc/SPEC.md doc/PRODUCT.md .doc-review-cursor
git commit -m "docs: update documentation for accuracy
- [list each fix briefly]
Co-Authored-By: Paperclip <noreply@paperclip.ing>"
git push -u origin "$BRANCH"
gh pr create \
--title "docs: periodic documentation accuracy update" \
--body "$(cat <<'EOF'
## Summary
Automated doc maintenance pass. Fixes documentation drift detected since
last review.
### Changes
- [list each fix]
### Change summary (since last review)
- [list notable code changes that triggered doc updates]
## Review notes
- Only factual accuracy fixes — no style/cosmetic changes
- Preserves existing voice and structure
- Larger doc additions (new sections, tutorials) noted as follow-ups
🤖 Generated by doc-maintenance skill
EOF
)"
Step 7 — Update the cursor
After a successful audit (whether or not edits were needed), update the cursor:
git rev-parse HEAD > .doc-review-cursor
If edits were made, this is already committed in the PR branch. If no edits were needed, commit the cursor update to the current branch.
Change Classification Rules
| Signal | Category | Doc update needed? |
|---|---|---|
feat:, add, implement, support in message | Feature | Yes if user-facing |
remove, drop, breaking, !: in message | Breaking | Yes |
| New top-level directory or config file | Structural | Maybe |
fix:, bugfix | Fix | No (unless it changes behavior described in docs) |
refactor:, chore:, ci:, test: | Maintenance | No |
docs: | Doc change | No (already handled) |
| Dependency bumps only | Maintenance | No |
Patch Style Guide
- Fix the fact, not the prose
- If removing a roadmap item, don't leave a gap — remove the bullet cleanly
- If adding a feature mention, match the format of surrounding entries (e.g. if features are in a table, add a table row)
- Keep README changes especially minimal — it shouldn't churn often
- For SPEC/PRODUCT, prefer updating existing statements over adding new ones (e.g. change "not supported in V1" to "supported via X" rather than adding a new section)
Output
When the skill completes, report:
- How many commits were scanned
- How many notable changes were found
- How many doc edits were made (and to which files)
- PR link (if edits were made)
- Any follow-up items that need larger doc work
Frequently asked questions about Doc Maintenance
Similar skills
Markdown to HTML Conversion
Efficiently convert Markdown documents to HTML.
Code Tour
Create structured walkthroughs for codebases.
Acquire Codebase Knowledge
Streamline onboarding with comprehensive codebase documentation.
Documentation & Modernization
Streamline codebase documentation and modernization planning.
Azure Resource Visualizer
Generate architecture diagrams for Azure resources.
CLAUDE.md Improver
Optimize your CLAUDE.md files for better project context.
