Claude
Skills
Sign in
Back

document-release

Included with Lifetime
$97 forever

Post-ship documentation update. Reads all project docs, cross-references the diff, updates README/ARCHITECTURE/CONTRIBUTING/CLAUDE.md to match what shipped, polishes CHANGELOG voice, cleans up TODOS, and optionally bumps VERSION. Use when asked to "update the docs", "sync documentation", or "post-ship docs". Proactively suggest after a PR is merged or code is shipped.

Image & Video

What this skill does


## Step 0: Prerequisites & Base Branch Detection

Before doing anything else, verify the environment can support this workflow. These checks
prevent confusing failures mid-run.

1. **Git repo check:** Run `git rev-parse --git-dir`. If it fails, abort: "Not a git repository."
2. **gh CLI check:** Run `gh auth status`. If it fails, warn: "gh CLI is not authenticated —
   PR-related steps (body update, base branch detection via PR) will be skipped. Falling back to
   git-only detection." Continue the workflow but skip PR body updates in Step 9.
3. **Clean working tree check:** Run `git status --porcelain` (never use `-uall`). If there are
   uncommitted changes to documentation files (`.md`, `VERSION`, `CHANGELOG*`), warn the user:
   "You have uncommitted changes to doc files that may conflict with this workflow. Continue
   anyway?" via AskUserQuestion.

Then determine which branch this PR targets. Use the result as "the base branch" in all
subsequent steps.

4. Check if a PR already exists for this branch:
   `gh pr view --json baseRefName -q .baseRefName`
   If this succeeds, use the printed branch name as the base branch.

5. If no PR exists (command fails), detect the repo's default branch:
   `gh repo view --json defaultBranchRef -q .defaultBranchRef.name`

6. If both commands fail, fall back to `main`.

---

# Document Release: Post-Ship Documentation Update

You are running the `/document-release` workflow. This runs **after `/ship`** (code committed, PR
exists or about to exist) but **before the PR merges**. Your job: ensure every documentation file
in the project is accurate, up to date, and written in a friendly, user-forward voice.

You are mostly automated. Make obvious factual updates directly. Stop and ask only for risky or
subjective decisions.

**Dry-run mode:** If the user says "dry run", "preview", or "what would change", run Steps 0–2
in full (analysis and audit) but do NOT apply any edits. Instead, output a structured preview of
every planned change — organized by file, with each change classified as auto-update or
ask-user. Then stop and ask: "Ready to apply these changes, or do you want to adjust the plan?"
If the user approves, continue from Step 3 onward using the plan. If they adjust, incorporate
their feedback and re-preview.

**Only stop for:**
- Risky/questionable doc changes (narrative, philosophy, security, removals, large rewrites)
- VERSION bump decision (if not already bumped)
- New TODOS items to add
- Cross-doc contradictions that are narrative (not factual)

**Never stop for:**
- Factual corrections clearly from the diff
- Adding items to tables/lists
- Updating paths, counts, version numbers
- Fixing stale cross-references
- CHANGELOG voice polish (minor wording adjustments)
- Marking TODOS complete
- Cross-doc factual inconsistencies (e.g., version number mismatch)

**NEVER do:**
- Overwrite, replace, or regenerate CHANGELOG entries — polish wording only, preserve all content
- Bump VERSION without asking — always use AskUserQuestion for version changes
- Use `Write` tool on CHANGELOG.md — always use `Edit` with exact `old_string` matches

---

## Step 1: Pre-flight & Diff Analysis

1. Check the current branch. If on the base branch, **abort**: "You're on the base branch. Run from a feature branch."

2. Gather context about what changed:

```bash
git diff <base>...HEAD --stat
git log <base>..HEAD --oneline
git diff <base>...HEAD --name-only
```

3. Discover all documentation files in the repo using the Glob tool (not `find`):

   - `**/*.md` at the project root, then filter out `.git/`, `node_modules/`, and `vendor/` paths.
   - Focus on top-level and one-level-deep files first — those are the primary docs. Deeper files
     are usually auto-generated or less critical.

4. Classify the changes into categories relevant to documentation:
   - **New features** — new files, new commands, new skills, new capabilities
   - **Changed behavior** — modified services, updated APIs, config changes
   - **Removed functionality** — deleted files, removed commands
   - **Infrastructure** — build system, test infrastructure, CI

5. Output a brief summary: "Analyzing N files changed across M commits. Found K documentation files to review."

---

## Step 2: Per-File Documentation Audit

Read each documentation file and cross-reference it against the diff:

**README.md:**
- Does it describe all features and capabilities visible in the diff?
- Are install/setup instructions consistent with the changes?
- Are examples, demos, and usage descriptions still valid?
- Are troubleshooting steps still accurate?

**ARCHITECTURE.md:**
- Do ASCII diagrams and component descriptions match the current code?
- Are design decisions and "why" explanations still accurate?
- Be conservative — only update things clearly contradicted by the diff.

**CONTRIBUTING.md — New contributor smoke test:**
- Walk through the setup instructions as if you are a brand new contributor.
- Are the listed commands accurate? Would each step succeed?
- Flag anything that would fail or confuse a first-time contributor.

**CLAUDE.md / AGENTS.md / project instructions:**
- Does the project structure section match the actual file tree?
- Are listed commands and scripts accurate?
- Do build/test instructions match what's in config files?

**Any other .md files:**
- Read the file, determine its purpose and audience.
- Cross-reference against the diff to check if it contradicts anything the file says.

**Inline and generated documentation:**
Code-level documentation often falls out of sync with markdown docs. When the diff includes
changes to public APIs, check for staleness in:
- **PHPDoc / JSDoc / docblocks** — If a function signature, return type, or behavior changed in
  the diff, verify the accompanying docblock still matches. Use Grep to search for `@param`,
  `@return`, `@throws` in the changed files.
- **OpenAPI / Swagger specs** — If API endpoints were added, changed, or removed, check whether
  an `openapi.yaml`, `swagger.json`, or similar spec file exists and needs updating. Use Glob
  to find `**/openapi.*`, `**/swagger.*`.
- **README badges / auto-generated sections** — If the repo uses badges (coverage, version,
  build status), verify they still reference correct values. If sections are marked as
  auto-generated (e.g., `<!-- AUTO-GENERATED -->`), flag them rather than editing — they should
  be regenerated by their tooling, not hand-edited.

These are supplementary checks — don't deep-dive into every source file. Focus on files that
appear in the diff and have public-facing documentation implications.

For each file, classify needed updates as:

- **Auto-update** — Factual corrections clearly warranted by the diff: adding an item to a
  table, updating a file path, fixing a count, updating a project structure tree.
- **Ask user** — Narrative changes, section removal, security model changes, large rewrites
  (more than ~10 lines in one section), ambiguous relevance, adding entirely new sections.

---

## Step 3: Apply Auto-Updates

Make all clear, factual updates directly using the Edit tool.

For each file modified, output a one-line summary describing **what specifically changed** — not
just "Updated README.md" but "README.md: added /new-skill to skills table, updated skill count
from 9 to 10."

**Never auto-update:**
- README introduction or project positioning
- ARCHITECTURE philosophy or design rationale
- Security model descriptions
- Do not remove entire sections from any document

---

## Step 4: Ask About Risky/Questionable Changes

For each risky or questionable update identified in Step 2, use AskUserQuestion with:
- Context: project name, branch, which doc file, what we're reviewing
- The specific documentation decision
- `RECOMMENDATION: Choose [X] because [one-line reason]`
- Options including C) Skip — leave as-is

Apply approved changes immediately after each answer.

---

## Step 5: VERSION Bump Question

VERSION comes before CHANGELOG polish 

Related in Image & Video