Skip to content
cccskills
FreePublished on GitHub

technical-changelog

Generate a diff-grounded, one-page technical changelog for a release — from the actual code changes between the last production tag and HEAD (the next, still-unreleased version). Asks for the next version number, since HEAD is not yet in package.json.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md5.4 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Produce a one-page technical report of what changed for a release, stored in docs/technical-changelog/<base>-<next>.md. The report must be grounded in the real diff — added/modified/removed code, API/flag/dep deltas — not commit messages or the requirements docs (those describe the end state and the whole feature history, so they routinely credit the range with work that predates it, or describe posture that was already true). Every claim is a verified delta between the base tag and HEAD.

The two facts that make this skill necessary

  1. HEAD is the next, unreleased version. package.json still holds the last released version, so the release number can't be read from the repo — you must ask the user what the next planned version is.
  2. The base is always the most recent production release tag (e.g. v1.0.1), and the range is <base>..HEAD. Pre-release tags (-beta, -rc) are never the base.

Steps

  1. Ask for the next release number first. Use AskUserQuestion (or ask in prose): "What's the next planned release version for this changelog?" Do not guess and do not read it from package.json (that's the previous release). Accept e.g. 1.2.0 / v1.2.0.

  2. Run the analysis script — it does the deterministic git work:

    node scripts/changelog-analysis.mjs --next <version>
    

    It auto-detects the base as the newest production vX.Y.Z tag that is an ancestor of HEAD, buckets the line delta by area (product vs docs vs agent/skill scaffolding vs generated assets), gives a product-only total, lists added/removed files and candidate new subsystems, and extracts the API-export, CLI-flag, and dependency deltas. Override the base with --base <tag> only if the user asks (it warns if a newer production tag exists than the one it picked).

  3. Read the real diffs — do not stop at the script. The script tells you where to look; the narrative comes from the actual changes. For each non-trivial area:

    git diff <base>..HEAD -- <path>          # what actually changed
    

    And verify every "new" claim against the base tree rather than trusting a commit subject:

    git cat-file -e <base>:<file>            # non-zero exit → file is genuinely new
    git show <base>:<file> | grep -c <sym>   # 0 → the symbol/behavior was added in range
    git ls-tree -r --name-only <base> -- src/   # what the tree looked like at the base
    

    Classic traps to check: a subsystem that looks new but existed at the base; a feature added and removed within the same range (nets to zero at HEAD — say so); posture like "no network" / "zero deps" that was already true at the base (baseline, not a change); a dependency bumped in two hops (report the full base→HEAD delta).

  4. Write the report to docs/technical-changelog/<base>-<next>.md (the script prints the exact suggested path). Keep it to ~one page. It must contain, in this spirit:

    • Header: the range (<base>..HEAD), commit count, and a note that HEAD is untagged / the "next" number is a label. State it's derived from the diff, not commit prose.
    • Honest size: the area-by-area split from the script, and the product-only +/- total called out separately from the raw total (which is inflated by docs and .claude/.agents/.hotsheet scaffolding — never present the raw number as engineering effort).
    • Baseline note: one line on what already shipped at the base (so nothing pre-existing reads as new).
    • Per-change sections for the genuine deltas, each carrying its diff evidence (new files, the export/flag/dep delta, 0-hits → present for behavior). Order by significance (a net-new subsystem before a doc sync).
    • Mermaid diagrams as needed (not gratuitously): a component/flow diagram for a new subsystem, a sequence diagram for a new round-trip/interaction. Use <br/> for line breaks in node labels (not \n) and quote labels containing spaces/punctuation.
  5. Validate + finish.

    • Sanity-check the mermaid blocks (balanced []/quotes; standard flowchart / sequenceDiagram syntax). If a renderer is available, render to confirm; otherwise a structural check is fine.
    • Re-read the draft against the script output and your git show <base>:… probes: is every claim a real delta? Cut or re-label anything that describes the baseline.
    • Committing is optional and follows the repo's git rules (commit when it's a clean unit; never git push without explicit permission).

Guardrails

  • Diff over prose. If a claim isn't backed by a file/line change you actually read, don't make it. Commit subjects and docs/ are leads to verify, not sources to quote.
  • Never inflate. Lead with product-only line counts; label docs and agent/skill scaffolding as non-engineering.
  • Attribute to the range only. When unsure whether something is new, run the git cat-file -e <base>:<file> / git show <base>:<file> probe before writing it up.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Run all available tests and linters, check for anti-patterns, and generate a comprehensive code quality report

The English summary is being prepared. Showing the original description.

brianwestphal/apple-fm7Updated Jul 22, 2026

Check code for standardization, readability, maintenance complexity, and defensive coding practices

The English summary is being prepared. Showing the original description.

brianwestphal/apple-fm7Updated Jul 22, 2026

Check requirements docs against implementation and report discrepancies

The English summary is being prepared. Showing the original description.

brianwestphal/apple-fm7Updated Jul 22, 2026

Read the latest Glassbox code review and apply all feedback annotations

The English summary is being prepared. Showing the original description.

brianwestphal/apple-fm7Updated Jul 22, 2026

Read the Hot Sheet worklist and work through the current priority items

The English summary is being prepared. Showing the original description.

brianwestphal/apple-fm7Updated Jul 22, 2026

Run as a distributed worker — continuously claim, work, and release Up Next tickets

The English summary is being prepared. Showing the original description.

brianwestphal/apple-fm7Updated Jul 22, 2026

See all skills by brianwestphal

Report a problem with this skill