agentleFS
littlebearappslittlebearapps/pitchdocs/.claude/skills/doc-refresh/SKILL.md

doc-refresh

Skill8 starsChanged 8 months agoMITView on GitHub

Orchestrates documentation updates after version bumps, feature additions, or periodic maintenance. Analyses git history since the last release, identifies which docs are affected, and delegates to existing skills (changelog, feature-benefits, docs-verify, llms-txt, user-guides) for selective refresh. Delegates AI context updates to ContextDocs if installed. Use when releasing a new version or refreshing stale docs.

1 other project uses a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

10 rules. About 0 are common, 3 are distinctive, and 7 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 7

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If no tags exist at all, recommend running /readme and /docs-audit fix instead — a full generation is more appropriate than a refresh for a …

    line 33
  2. Distinctive:

    If the repo does not use conventional commits, fall back to git diff --stat analysis — classify changes by which files they touch (source, …

    line 49
  3. Very specific:

    Run the change detection workflow above.

    line 100
  4. Very specific:

    If ContextDocs is installed ([ -d ".claude/skills/ai-context" ]), delegate to it:

    line 121
  5. Distinctive:

    If ContextDocs is not installed, print an advisory:

    line 130
  6. Very specific:

    If the project has a .claude-plugin/plugin.json, verify the description and keywords fields still match the current README one-liner and …

    line 146
  7. Very specific:

    If release-notes argument was provided or running in full mode, generate a GitHub release body from the CHANGELOG entry for this version.

    line 154
  8. Very specific:

    Timing: Run /doc-refresh before merging the release PR:

    line 171
  9. Very specific:

    Run /doc-refresh to enhance CHANGELOG, update README, guides, context files

    line 173
  10. Distinctive:

    Commit the refreshed docs to the release branch

    line 174

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Doc Refresh

Philosophy

Generation is solved — PitchDocs handles that. Maintenance is the unsolved problem. After the initial docs suite is created, every release needs a coordinated update: CHANGELOG entries enhanced with benefit language, README features refreshed, user guides amended, AI context files synced, and llms.txt kept current.

/doc-refresh closes the maintenance loop. It works alongside release-please: release-please handles version strings and CHANGELOG scaffolding, /doc-refresh handles prose, features, context, and metrics.

Change Detection Workflow

Step 1: Identify the Boundary

# Latest tag (the "since" point for change detection)
git describe --tags --abbrev=0 2>/dev/null

# If no tags exist, fall back to initial commit
git rev-list --max-parents=0 HEAD

# All commits since boundary
git log $(git describe --tags --abbrev=0 2>/dev/null || git rev-list --max-parents=0 HEAD)..HEAD --oneline --no-merges

# If a version argument was provided (e.g., v1.5.0..v1.7.0)
git log v1.5.0..v1.7.0 --oneline --no-merges

If no tags exist at all, recommend running /readme and /docs-audit fix instead — a full generation is more appropriate than a refresh for a brand-new repo.

Step 2: Parse Conventional Commits

Classify each commit into categories that map to documentation impacts:

Commit TypeDoc Impact
feat:CHANGELOG, README features, possibly user guides, release notes
fix:CHANGELOG, possibly troubleshooting guides
docs:Verify existing docs are consistent with changes
refactor:AI context files (if architecture changed)
perf:CHANGELOG, README metrics if benchmarks cited
chore:Usually none, unless dependencies changed significantly
BREAKING CHANGE:CHANGELOG with migration note, README, migration guide, release notes

If the repo does not use conventional commits, fall back to git diff --stat analysis — classify changes by which files they touch (source, tests, config, docs) rather than commit message prefix.

Step 3: Detect File-Level Changes

# Which areas of the project changed?
git diff --name-only $(git describe --tags --abbrev=0 2>/dev/null || git rev-list --max-parents=0 HEAD)..HEAD | head -50

# Specifically check for structural changes (new commands, skills, agents, config)
git diff --name-only $(git describe --tags --abbrev=0 2>/dev/null || git rev-list --max-parents=0 HEAD)..HEAD | grep -E '(commands/|skills/|agents/|rules/|\.config|package\.json|pyproject\.toml)'

Step 4: Build the Refresh Plan

Map detected changes to specific doc files. Output a structured plan before executing:

📋 Documentation Refresh Plan: [project-name]

Boundary: v1.6.0..HEAD (15 commits: 8 feat, 4 fix, 2 docs, 1 chore)

Docs to update:
  → CHANGELOG.md — 8 feat + 4 fix entries to enhance with benefit language
  → README.md — 2 new features detected, metrics need updating
  → docs/guides/getting-started.md — new command added, guide needs amendment
  → AGENTS.md — commands table out of date
  → llms.txt — 2 new files to add
  ⊘ .cursorrules — no drift detected
  ⊘ Package registry — no metadata changes

In plan mode, stop here and report. Otherwise, proceed to execution.

Refresh Actions Table

What ChangedCHANGELOGREADME FeaturesREADME MetricsUser GuidesAI Contextllms.txtRelease Notes
New feature (feat:)AppendUpdate/addUpdate countsAdd/update relevant guideIf architecture changedIf new files addedInclude
Bug fix (fix:)AppendNoNoUpdate troubleshooting if relevantNoNoInclude
New command or skillAppendUpdate tablesUpdate "By the Numbers"Add to guides hubUpdateUpdateInclude
Dependency changeConditionalNoNoNoIf major dependencyNoConditional
Performance improvementAppendUpdate if metrics citedUpdate benchmarksNoNoNoInclude
Breaking changeAppend with migrationUpdateNoAdd migration guideUpdateNoInclude prominently
File renamed/movedNoUpdate if referencedNoUpdate pathsUpdate pathsUpdate pathsNo

Orchestration Workflow

Execute in this order. Each step loads the relevant skill on demand.

Step 1: Analyse (always runs first)

Run the change detection workflow above. Produce the refresh plan. In plan mode, report and stop.

Step 2: CHANGELOG

Load the changelog skill. If release-please has already created CHANGELOG entries for this version, enhance them with benefit language rather than duplicating. If no release-please entries exist, generate from scratch using conventional commits.

Detection: check if a version header (e.g., ## [1.7.0]) or ## [Unreleased] section already exists in CHANGELOG.md with entries for the commits in scope.

Step 3: README

Load the feature-benefits skill. Run a features audit to compare current README features against the codebase. Update:

  • Features section (add new, mark deprecated)
  • "By the Numbers" metrics table (command counts, skill counts, etc.)
  • Badge version references (note: release-please handles the version badge via x-release-please-version — do not duplicate)

Step 4: User Guides

Load the user-guides skill. Identify which guides are affected by checking if changed files relate to documented workflows. Update affected sections. Add new guides if a major new feature warrants one. Update the docs hub page if guides were added.

Step 5: AI Context Files (ContextDocs)

If ContextDocs is installed ([ -d ".claude/skills/ai-context" ]), delegate to it:

# Check if ContextDocs is available
if [ -d ".claude/skills/ai-context" ]; then
  echo "ContextDocs detected — run /contextdocs:ai-context audit to check for drift"
fi

If ContextDocs is not installed, print an advisory:

ℹ AI context file refresh skipped — install ContextDocs for AI context management:
  /plugin install contextdocs@lba-plugins

Step 6: llms.txt

Load the llms-txt skill. Regenerate if files were added, removed, or renamed since the boundary. If no structural changes, skip.

Step 7: Package Registry

Load the package-registry skill. Verify that package.json/pyproject.toml metadata (description, keywords, repository, homepage) is still current. Flag any drift.

Step 7.5: Plugin Manifest (if applicable)

If the project has a .claude-plugin/plugin.json, verify the description and keywords fields still match the current README one-liner and features. CLAUDE.md notes "update on every release" — flag stale descriptions that no longer reflect the project's scope.

Step 8: Verify (always runs last)

Load the docs-verify skill. Run full verification: broken links, stale content, llms.txt sync, heading hierarchy, badge URLs, feature coverage, quality score. Report the score and any issues found.

Step 9: Release Notes (optional)

If release-notes argument was provided or running in full mode, generate a GitHub release body from the CHANGELOG entry for this version. Format with benefit-driven language and include migration notes for breaking changes.

Release Automation Integration

The table below shows the split of responsibilities between your release automation tool and /doc-refresh. release-please (GitHub Actions) is the default; for GitLab use semantic-release with GitLab CI or release-it; for Bitbucket use semantic-release with Bitbucket Pipelines. Load the platform-profiles skill for CI/CD equivalents.

ResponsibilityRelease automation tool/doc-refresh
Version strings in manifestsYesNo
Version badge in READMEYes (e.g. x-release-please-version)No
CHANGELOG scaffoldingYes (from commit messages)Enhance with benefit language
README prose, features, metricsNoYes
User guidesNoYes
AI context filesNoYes
llms.txtNoYes
Release notes bodyBasic (from commits)Enhanced with benefit language

Timing: Run /doc-refresh before merging the release PR:

  1. Your release tool creates a PR with version bumps and CHANGELOG skeleton
  2. Run /doc-refresh to enhance CHANGELOG, update README, guides, context files
  3. Commit the refreshed docs to the release branch
  4. Merge the PR — the release tool creates the platform release

Anti-Patterns

  • Do not run /doc-refresh and /readme in the same session — /doc-refresh updates README surgically (affected sections only), while /readme regenerates from scratch. Choose one.
  • Do not duplicate CHANGELOG entries — if release-please already generated entries, enhance them with benefit language rather than creating parallel entries.
  • Do not update user guides for internal refactors — only update guides when user-facing behaviour changes.
  • Do not regenerate all AI context files — audit first, update only the files with actual drift.
  • Do not manually update the version badge — release-please owns the x-release-please-version marker.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.