New to Claude Skills? Learn how to install them →

paperclipai on GitHub

Doc Maintenance

Free

Keep documentation accurate and up-to-date with minimal effort.

Get this skill

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 source

1. Install with the skills CLI

npx skills add paperclipai/paperclip/doc-maintenance --agent claude-code

2. 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 paperclipai

Doc 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

DocumentPathWhat matters
READMEREADME.mdFeatures table, roadmap, quickstart, "what is" accuracy, "works with" table
SPECdoc/SPEC.mdNo false "not supported" claims, major model/schema accuracy
PRODUCTdoc/PRODUCT.mdCore 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:

  1. False negatives — major shipped features not mentioned at all
  2. False positives — features listed as "coming soon" / "roadmap" / "planned" / "not supported" / "TBD" that already shipped
  3. Quickstart accuracy — install commands, prereqs, and startup instructions still correct (README only)
  4. Feature table accuracy — does the features section reflect current capabilities? (README only)
  5. 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

SignalCategoryDoc update needed?
feat:, add, implement, support in messageFeatureYes if user-facing
remove, drop, breaking, !: in messageBreakingYes
New top-level directory or config fileStructuralMaybe
fix:, bugfixFixNo (unless it changes behavior described in docs)
refactor:, chore:, ci:, test:MaintenanceNo
docs:Doc changeNo (already handled)
Dependency bumps onlyMaintenanceNo

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