CC Changelog
Show recent Claude Code changes, scored by relevance to the user's installed skills, commands, plugins, hooks, and usage patterns.
Workflow
- Run the data collection script:
${CLAUDE_SKILL_DIR}/scripts/cc-changelog.ts 2>/dev/null
To force a date-based lookback (ignoring lastVersion state), pass --lookback-days=N:
${CLAUDE_SKILL_DIR}/scripts/cc-changelog.ts --lookback-days=14 2>/dev/null
Use --lookback-days when the user asks for changes from a specific time period (e.g. "last 14 days", "last week" = 7 days).
- Parse the JSON output and present a concise, themed summary:
Format rules
- Rank all items, then keep top 50%. Score each candidate bullet by combined weight (high → low):
- Personal relevance — matches user's installed skills, commands, plugins, hooks, usage patterns
- User-facing surface changes — visible message/UI text, prompts, output format, defaults the user reads or types
- Parameter / flag / config / API / schema changes — anything the user invokes or configures (CLI flags, settings keys, hook events, tool schemas, command args)
- New features / capabilities — net-new things user can do
- Behavioral changes — different output for same input, removed/changed defaults, breaking changes
- Internal / perf / refactor — deprioritize unless user-observable. A perf win that doesn't change behavior or UX ranks low. Sort all candidates by this combined score, drop bottom half. Round up on odd counts. Mention dropped count at bottom.
- Drop cosmetic items and routine bug fixes entirely (before the 50% cut). Skip typo/wording tweaks, UI polish, and fixes for bugs the user never hit. Include a bug fix only with strong evidence it affects the user — e.g. their CLAUDE.md/settings/hooks mention a workaround for it, or it breaks a feature they demonstrably use.
- No duplicates. Each item appears exactly once in the whole report — never in two themes. Before finishing, reread the output and remove any repeated bullets or repeated sections.
- Group surviving items by theme, not by version. Cluster into categories (e.g. "Startup & Performance", "Plugins & Skills", "Agent Teams", "Bash & Permissions").
- Each item = 1 short line. Rewrite verbose changelog entries into punchy summaries (5-15 words). Append version+date tag:
(2.1.47, Feb 18) - Lead with a 1-2 sentence TL;DR of the most impactful changes for this user.
- Explain WHY it's relevant by referencing what the user uses. Don't just say "matches: Bash" - say things like "you use hooks" or "affects your StatusLine setup".
## Claude Code changelog - {version range} ({date range})
{1-2 sentence TL;DR of biggest changes relevant to user}
### {Theme name}
- {Punchy summary} (2.1.47, Feb 18) — {why it matters to you}
- ...
### {Theme name}
- ...
### System prompt
{Summarize the diff concisely - see rules below}
{N} lower-ranked items skipped. [Full changelog]({url})
-
If the
versionsarray is empty, say: "You're up to date! No new changes since {currentVersion}." Do NOT advance the watermark. -
After presenting results to the user, advance the watermark so the same changes aren't shown again:
${CLAUDE_SKILL_DIR}/scripts/cc-changelog-advance.ts 2>/dev/null
Only run this AFTER the changelog summary is fully rendered. Never run it if the versions array was empty.
System prompt diff rules
When systemPromptDiff.prompt or systemPromptDiff.flags is non-null, summarize the unified diff into actionable bullet points. Categorize changes:
Prompt changes - summarize each meaningful hunk as one bullet:
- New sections/blocks added (e.g. "New
currentDatecontext block added") - Instructions changed (e.g. "Auto memory guidelines expanded with what to/not to save")
- Tool schema changes (e.g. "AskUserQuestion got
markdownpreview field") - Model/version bumps (e.g. "Knowledge cutoff Jan 2025 -> Aug 2025")
- Removed content (e.g. "Agent Teams 'not available' disclaimer removed")
Flag changes - list added/removed flags:
- Added:
flag_name - Removed:
flag_name
Skip cosmetic changes (typo fixes, whitespace, path changes in test environments). Focus on behavioral changes that affect how Claude works.
Notes
- The script handles all data fetching, parsing, and relevance scoring
- State is persisted at
~/.claude/custom-cache/cc-changelog-state.json - First run uses a 14-day lookback window; subsequent runs check from last version
- Requires
ghCLI authenticated with GitHub