Claude Code Changelog, personalized overview
This skill produces a personalized Markdown summary of recent Claude Code changes, filtered for relevance to the user's own roles and focus areas, plus an honorable mentions lens for everything else worth knowing.
The skill adapts to whoever is using it via a profile system (see "Profile system" below). The defaults are chosen so that the output is useful even without a profile.
Output language: match the user. Write the summary in the language the user wrote their request in. A German question gets a German summary, an English question gets an English one. An explicit Language in the profile overrides this. Everything below documents the skill in English, that says nothing about the language of the output.
Sources (in this order)
- Primary:
https://code.claude.com/docs/en/changelog
- Fallback:
https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md
- Big-picture context (only if a major release is involved):
https://www.anthropic.com/news
Always fetch source 1 via web_fetch first. Source 2 only if 1 fails. Source 3 only as a cross-reference for larger announcements.
Workflow
Step 0, determine the profile
The profile decides language, lenses, stack focus, honorable-mention topics and drop rules for this user. Resolution order:
Bash available? Try to read, in this order:
.claude/changelog-profile.md (project-local)
~/.claude/changelog-profile.md (global)
If a file is found, load it and use it.
Evaluate context and memory hints: if the skill finds no file but the system context (a project CLAUDE.md, a memory system, the conversation history) holds enough information about the user (role, stack, language), derive an implicit profile from it. Important: the first time, briefly show the user what was derived and get confirmation before storing the profile permanently.
No profile derivable? Start a one-time setup flow, a short interview (max 5 questions):
- Output language? (Default: the language the user wrote in)
- Which roles are relevant? (e.g. "developer + entrepreneur", "backend engineer + tech lead", "solo founder")
- Tech stack focus? (e.g. "Supabase, Vercel, MCP server setups, hooks" or "AWS Bedrock, enterprise setup")
- Platforms/IDEs you do not use, that can go into honorable mentions? (e.g. "Windows, JetBrains, Bedrock")
- Store it? (
.claude/changelog-profile.md local or ~/.claude/changelog-profile.md global?)
Build the profile from the answers and save it. Format in "Profile system" below.
Fallback without a profile: if the user declines the setup questions or Bash is unavailable, continue with these default profile assumptions and mention them as a note at the top of the output:
- Language: whatever the user wrote in
- Lenses: "developer" + "founder/entrepreneur"
- Stack focus: all core features (MCP, sub-agents, hooks, plugins, skills, permissions, commands)
- Honorable mentions: platform-specific items (Bedrock/Vertex/Foundry/JetBrains/Windows), new models, larger refactorings
- Drop: "internal fixes" stubs, cosmetic bugs
Step 2, determine the cut-off
Four modes, depending on what the user says or does not say:
Mode (b), auto-detect the installed version
- If the user says "check my version", "what do I have installed", or similar: try
claude --version via bash_tool.
- The output format is usually
2.1.143 (Claude Code), parse the version number out of it.
- On success, say: "You are currently on version X.Y.Z, I will show everything that landed since."
- On failure (no bash, not installed, unexpected output): fall back to mode (c).
Mode (c), default: the last 7 days
- When the user gives no explicit cut-off and does not ask about "my version".
- Say briefly: "I am taking the last 7 days (since [date]). Tell me if you want a different range."
- Today's date comes from the system prompt.
Mode (d), open cut-off (since X until today)
- The user says "since 2.1.130", "since last week", "the last 3 versions", "since yesterday", etc.
- Use it directly, ask nothing. Lower bound = X, upper bound = the newest available version.
Mode (e), range comparison between two versions or dates
- The user says: "between 2.1.130 and 2.1.138", "from X to Y", "2.1.130..2.1.138", "diff 2.1.130 2.1.138", "compare 2.1.130 with 2.1.138", "what landed between version X and Y", "everything between X and Y", "changelog from X to Y".
- Dates work too: "between May 1 and May 10", "April to May".
- Parsing: lower bound = the lower version / earlier date, upper bound = the higher version / later date. The order in the input does not matter, always take the lower one as the start.
- Inclusive on both sides: items from version X and version Y are included.
- State the range explicitly in the output header (see output structure).
If it is unclear which mode applies, ask one single clarifying sentence, then continue.
Step 3, fetch the changelog
web_fetch the primary source. The page lists versions in reverse chronological order (newest first), with headers like 2.1.143 and dates like May 15, 2026.
When reading for modes (b)/(c)/(d): process versions until the lower bound is reached.
When reading for mode (e): process the versions that fall between the lower and upper bound (both inclusive). Skip versions above the upper bound, stop at versions below the lower bound.
Step 4, filter every entry through the lenses
For each bullet point in each version: check which lens or lenses from the user's profile the item hits. If no lens hits, it goes to honorable mentions or gets dropped.
In this version of the skill the lenses are primarily a classification scheme, not an output layout. For each item, record which lenses it hits. Those lenses appear as a compact tag (For: developer, entrepreneur) on the item itself. Items are no longer grouped by lens in the output.
Multiple hits are allowed and in fact wanted: if an item is equally relevant for a developer and an entrepreneur, tag both lenses. No more artificial "primary lens" decision.
The lens descriptions below are defaults for a typical developer/founder profile. If the user profile defines other lenses or focus areas, use those from the profile, not the defaults.
🛠️ Default lens 1: developer
What gets in (default, overridable by the profile):
- MCP servers (Supabase, Vercel, MongoDB, filesystem): connection, OAuth, permissions, config, reconnect behaviour
- Sub-agents, agent teams,
claude agents, /bg background sessions: isolation, worktrees, lifecycle
- Slash commands, especially custom commands in
.claude/commands/
- Hooks (PreToolUse, PostToolUse, UserPromptSubmit, Stop, SubagentStop, PreCompact, SessionStart)
- Permissions: allow/deny rules,
--dangerously-skip-permissions, wildcards, sandbox, auto mode
- Plugins: install, marketplace, dependencies, validate
- Skills: creation, invocation, frontmatter, plugin-provided
- Resume, compact, context window, effort levels
- Performance and stability of core workflows (Edit, Read, Bash, Grep)
- Anything marked breaking / removed / changed default
- Anything security-relevant
💼 Default lens 2: entrepreneur / founder
What gets in (default, overridable by the profile): anything that touches outward effect, business leverage or visibility.
Business and product leverage:
- New capabilities that enable products or services, related to the stack and business model in the profile
- Pricing-relevant items: effort levels, model defaults, context window expansions, cache TTL, quota changes
- Platform extensions (web, desktop, Chrome, Slack, IDE): capabilities you can sell or offer
- Remote control, scheduling, push notifications, the
claude agents dashboard: backbone for services
- Enterprise and compliance features (managed settings, audit, OTel): relevant for B2B offerings
- Headless / SDK / CI-CD integration: automation inside products
- New models and major capability jumps: they change what you can build
Visibility, content, education:
- Features you can show and demo in talks, sessions, blog posts
- "Wow" features for a non-technical audience (voice mode, push, web/mobile, new IDE integrations)
- Use cases for content (blog, talk, tutorial, newsletter)
- Major version milestones and branded features: marketing hooks
- Tutorial and recipe potential: features with a clear how-to that works as a blog post or video
📋 Default lens 3: honorable mentions
Everything that is new or changed but does not fit one of the main lenses, and is still worth a mention so nothing slips through unnoticed.
What gets in (default, overridable by the profile):
- Platforms the user does not currently use but should know about: Bedrock/Vertex/Foundry (for advising clients), JetBrains and other IDEs, Windows-specific items (for demos and training)
- New models, effort levels, pricing changes, even when the user does not use them directly
- Larger refactorings and architecture changes (e.g. native binary, new renderers)
- Interesting new capabilities without a direct use case
- Notable security fixes, even ones that did not affect the user directly
Format: shorter than the main lenses, usually one sentence. No "why this matters to you" and no use case needed. Just a list with version number and date.
What actually gets dropped (no mention at all)
Only these categories are cut completely (the profile can narrow this further):
- "Internal fixes" entries with no detail whatsoever
- Hyper-specific edge-case fixes for tools or workflows that do not appear in the profile
- Purely cosmetic rendering bugs in one single exotic terminal or IDE
When in doubt: put it in honorable mentions rather than dropping it. The skill must not hide anything relevant from the user.
Step 5, assemble the output
Write a Markdown file to /mnt/user-data/outputs/claude-code-changelog-<YYYY-MM-DD>.md (filename with today's date) and show it via present_files.
Exception: if fewer than 10 items remain after filtering, answer inline instead of writing a file.
Structure
# Claude Code, what is new for you
<Header depending on the mode:>
— Modes (b), (c), (d):
**Range**: <cut-off> to <today's date>
**Versions processed**: <N> (from <oldest> to <newest>)
— Mode (e), range comparison:
**Comparison**: v<lower bound> to v<upper bound>
**Versions processed**: <N> (<date of lower bound> to <date of upper bound>)
---
## 🎯 Executive summary
<1 sentence of framing, optional, e.g. "Three things worth taking away:">
1. **<top item 1>** (v<version>) — <one crisp sentence>
2. **<top item 2>** (v<version>) — <one crisp sentence>
3. **<top item 3>** (v<version>) — <one crisp sentence>
---
## 🆕 New features
- **<feature name>** (v<version>, <date>) · *For:* <lens or lenses from the profile, comma separated>
- *What:* <one sentence, technically what happens>
- *Benefit:* <one sentence, what the user gets out of it: pain point, advantage, time or effort saved>
- *Usage:* <one sentence or a compact code snippet showing how to actually use it: flag, command, setting, hook snippet>
- **<feature name 2>** ...
## ⚠️ Breaking changes and behaviour changes
- **<change>** (v<version>, <date>) · *For:* <lens(es)>
- *Change:* <what concretely changes>
- *Action:* <what the user has to adjust, or "nothing, just be aware">
## 🐛 Notable bugfixes
- **<fix>** (v<version>, <date>) · *For:* <lens(es)>
- *Before:* <what was broken>
- *Now:* <what works now>
- *Noticeable when:* <when and where the fix shows up>
## 📋 Honorable mentions
*New or changed, but not in the main focus:*
- **<item>** (v<version>, <date>) — <one sentence on what it is>. *(For: <lens>)* — optional
- ...
---
*Source: code.claude.com/docs/en/changelog · as of <date>*
If a section is empty (no breaking changes in the range, for instance): leave the section out, do not render it as an empty list.
Ordering within a section
Items inside "new features" / "breaking" / "bugfixes" are prioritized by impact, not chronologically. Top-down readability: the most important first, the peripheral last. When impact is comparable, the item that hits the user's stack directly wins.
For honorable mentions a rough thematic grouping is enough (platform items first, then UX improvements, then configuration options).
Choosing the executive summary
The executive summary is the most important part of the output, many people read only that. Rules:
- 3 items by default, 5 at most. Too few beats too many.
- Prioritization, not chronology: order by impact, not by version number.
- Selection criteria (in this order):
- Items that hit the user's active stack directly (MCP server fixes, agent workflow, hooks, skills)
- Larger new capabilities (new commands, new dashboards, new models)
- Breaking changes the user actually has to adapt to
- Format per item:
**<short name>** (v<version>) — <one sentence>. No second sentence, no "why this matters to you", that is spelled out further down.
- When nothing was truly big: still write an executive summary, but frame it honestly: "Quiet week, the main points:" instead of inflated highlights.
Style rules
Use the language from the profile, and without a profile the language the user wrote in. Stay consistent throughout.
The three-part format per main item is mandatory in the new features, breaking and bugfixes sections:
- New features: What / Benefit / Usage
- Breaking: Change / Action
- Bugfixes: Before / Now / Noticeable when
Each component is one sentence (or a compact code snippet for usage). No padding, no "it is worth noting that...".
What vs benefit, keep them separate:
- What = the technical change ("hooks spawn commands directly without shell wrapping")
- Benefit = the pain point it solves or the advantage it brings ("no more shell escaping bugs on paths with spaces")
- Usage = how to actually apply it, ideally a snippet, flag or setting name (e.g.
args: ["script.sh", "$file"] instead of command: "script.sh '$file'")
Always give the For: tag on main items. Comma-separated list of lens names from the profile. On multiple hits, list every relevant lens (no more "primary lens" decision).
Honorable mentions stay simple: one sentence of description, no three-part scheme. The For: tag is optional, in parentheses at the end, when it adds something.
Phrase it generically, do not personalize by name. The selection of items may use the profile knowledge (stack, roles, projects), but the wording stays generic. Concrete proper nouns from the profile (companies, products, people, internal tools) do not belong in the output. Use generic terms instead: "multi-agent orchestration" rather than a specific product name, "B2B outreach system" rather than an internal tool name, "education platform" rather than a specific community, "your own business" rather than a company name. The reason: the output should not feel like reading over someone's shoulder, it should feel like a professional briefing.
Leave technical terms in English: sub-agent, hook, plugin, MCP, worktree, permission. Do not translate them artificially, not even in non-English output.
Always include version number and date, so the user can look it up.
No emoji in body text, only in section headers (🎯 🆕 ⚠️ 🐛 📋).
When nothing relevant landed: be honest. "Between X and Y there were only maintenance changes, N bugfixes, none of them critical for your stack. Not worth going through in detail."
Example output (small, for orientation)
# Claude Code, what is new for you
**Range**: May 12 to May 18, 2026
**Versions processed**: 4 (2.1.140 to 2.1.143)
---
## 🎯 Executive summary
1. **New flags for `claude agents`** (v2.1.142) — dispatched background sessions can now be preconfigured with `--mcp-config`, `--model`, `--effort` and more.
2. **Fast mode uses Opus 4.7 by default** (v2.1.142) — faster default model, no action needed.
3. **Plugin dependency enforcement** (v2.1.143) — disable checks dependencies, enable pulls them in.
---
## 🆕 New features
- **New flags for `claude agents`** (v2.1.142, May 14) · *For:* developer, entrepreneur
- *What:* dispatched background sessions are now configured via CLI flags: `--add-dir`, `--settings`, `--mcp-config`, `--permission-mode`, `--model`, `--effort`.
- *Benefit:* different MCP configs, permission profiles and effort levels per project, without separate wrapper scripts or setting switches.
- *Usage:* `claude agents --mcp-config production.json --permission-mode strict --effort high --model opus`.
- **Plugin dependency enforcement** (v2.1.143, May 15) · *For:* developer
- *What:* `claude plugin disable` refuses when there are active dependents, `enable` pulls transitive dependencies in automatically.
- *Benefit:* no more accidentally broken plugin stacks when a base plugin that others need gets disabled.
- *Usage:* a normal `claude plugin disable <name>`, the disable chain is checked automatically and printed as a copy-pasteable hint.
- **Fast mode uses Opus 4.7 by default** (v2.1.142, May 14) · *For:* entrepreneur
- *What:* the default model for fast operations (auto-title, small tool calls) is now Opus 4.7 instead of 4.6.
- *Benefit:* a quality jump across all background operations with no setup effort, and a clean education headline at the same time.
- *Usage:* no action needed, active automatically after the upgrade. Opt out via `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1`.
## ⚠️ Breaking changes and behaviour changes
- **PowerShell tool enabled by default on Windows for Bedrock/Vertex/Foundry** (v2.1.143, May 15) · *For:* entrepreneur
- *Change:* on Windows systems using Bedrock/Vertex/Foundry auth, the PowerShell tool is now on by default.
- *Action:* be aware of it when advising Windows clients. Opt out via `CLAUDE_CODE_USE_POWERSHELL_TOOL=0` if unwanted.
## 📋 Honorable mentions
*New or changed, but not in the main focus:*
- **`worktree.bgIsolation: "none"` setting** (v2.1.143, May 15) — lets background sessions edit directly in the working copy without EnterWorktree.
- **Stop hook loop cap** (v2.1.143, May 15) — blocking stop hooks now end the turn automatically after 8 iterations.
- **`/web-setup` warns about GitHub app replacement** (v2.1.142, May 14).
---
*Source: code.claude.com/docs/en/changelog · as of May 18, 2026*
(This example matches a profile with lenses = developer + entrepreneur and stack focus = MCP / sub-agents / hooks / plugins. The same run against a profile with Language: de produces the identical structure in German.)
Profile system
The profile is a Markdown file with a fixed structure. The skill reads it at the start of every triggered run and uses it to determine lenses, language, focus areas and drop rules.
Storage location
- Project-local:
.claude/changelog-profile.md, recommended when the stack varies per project
- Global:
~/.claude/changelog-profile.md, recommended for individuals with a consistent stack
If both exist, project-local wins.
Profile format
# Claude Code Changelog Profile
## Language
<de | en | ...> — language of the output. "de" means German, informal address.
## Tone (optional)
<formal | direct | terse> — default: direct.
## Lenses
List of the lenses that should appear in the output. Each lens has a name, an emoji, and a list of topic focus areas.
### 🛠️ <lens name 1>
- <focus 1, e.g. "MCP servers (Supabase, Vercel)">
- <focus 2, e.g. "sub-agents, agent teams, /bg">
- ...
### 💼 <lens name 2>
- <focus 1>
- ...
(any number of lenses is possible, but 2 to 3 is the ergonomic upper limit)
## Honorable Mentions
- <what belongs here, e.g. "Bedrock/Vertex/Foundry items">
- ...
## Drop (hide completely)
- <what should be cut entirely, e.g. "internal fixes stubs">
- ...
## Context Hints (never appear in the output)
Here the user can note memory and context hints that steer the *selection* but must not end up in the output. For example concrete company, product or people names.
- <e.g. "company: <name>, tools: <name>, colleagues: <name>">
Example profiles
Example A, solo founder on a Supabase/Next.js stack:
# Claude Code Changelog Profile
## Language
de
## Lenses
### 🛠️ Entwickler
- MCP servers (Supabase, Vercel, Stripe)
- Hooks (PreToolUse, PostToolUse for linting)
- Next.js / TypeScript workflows
- Authentication flows (Clerk, Supabase Auth)
- Database tooling (RLS, edge functions)
### 💼 Founder
- B2B SaaS features (multi-tenant, billing)
- Cost-effective AI usage (pricing, cache, effort levels)
- Customer-facing capabilities (voice, web, mobile)
- Headless/CI-CD integration
## Honorable Mentions
- Bedrock/Vertex/Foundry items
- JetBrains, Windows-specific items
- Plugin development (not used actively yet)
## Drop
- Internal fixes stubs
- Hyper-specific terminal rendering bugs
## Context Hints
- Main project: <own product name>
- Stack: Supabase, Next.js, Vercel, Stripe
Example B, backend engineer in an AWS shop:
# Claude Code Changelog Profile
## Language
en
## Lenses
### 🛠️ Backend Engineer
- AWS Bedrock integration (model selection, IAM)
- MCP server config (internal tools)
- Permissions, deny rules, sandboxing
- Hooks for compliance/audit logging
- Performance (resume, compact, cache)
### 🏗️ Tech Lead
- Team capabilities (agent teams, shared configs)
- Managed settings, enterprise features
- OTel/observability
- Skills + plugins for team rollout
## Honorable Mentions
- Vertex AI, Foundry, non-AWS providers
- Voice / mobile / consumer features
- JetBrains-specific items (we're on VSCode)
## Drop
- Internal fixes
- Cosmetic rendering bugs
## Context Hints
- Company runs on AWS Bedrock exclusively
- Team of 12 engineers, all on VSCode
Profile updates
When the user says "update my profile", "my stack has changed", "add another lens" or similar:
- Load the current profile and show it
- Walk through the concrete changes with the user
- Write the updated profile back to the same file
Edge cases
- Several versions on the same day: merge them into one entry, use the newest version as the reference.
- Hotfix-only versions (e.g. "internal fixes"): mention them in honorable mentions only, do not detail them.
- Very large range (>30 days, >20 versions): before filtering, say "That is a big one, should I keep it rough or go through it fully?" and wait for the user's answer.
- Cut-off is after the newest version: "You are up to date." Do not generate a file.
- Range mode with invalid versions: if the lower bound is greater than the upper bound, swap them silently and mention it briefly ("I read that as: from X to Y"). If one of the two versions does not exist in the changelog, tell the user which existing versions are closest and ask.
- Range mode with two identical versions: answer "That is a single version, here is what changed in it:" and process only that version as a special case.
1---2name: cc-changelog3description: Fetches the latest Claude Code release notes and produces a personalized summary filtered for the user's roles, stack, and interests. Adapts to whoever uses it via a profile system, so it works for solo developers, founders, agency consultants, students, anyone. Triggers whenever the user asks about new Claude Code versions, changes, updates, or features, in any language. English phrasings "What's new in Claude Code", "Claude Code changelog", "what changed", "since version X", or a casual "Update?" / "new version?" in a Claude Code context. German phrasings "welche neue Version", "Claude Code Update", "was ist neu in Claude Code", "was hat sich geändert", "seit Version X". Use this skill any time the user mentions Claude Code versions or releases, even if they never say "changelog". The skill handles profile resolution, cut-off detection, source fetching, multi-lens filtering, and Markdown output end to end. It answers in the language the user wrote in.4---56# Claude Code Changelog, personalized overview78This skill produces a personalized Markdown summary of recent Claude Code changes, filtered for relevance to **the user's own roles and focus areas**, plus an **honorable mentions lens** for everything else worth knowing.910The skill **adapts to whoever is using it** via a profile system (see "Profile system" below). The defaults are chosen so that the output is useful even without a profile.1112> **Output language: match the user.** Write the summary in the language the user wrote their request in. A German question gets a German summary, an English question gets an English one. An explicit `Language` in the profile overrides this. Everything below documents the skill in English, that says nothing about the language of the output.1314---1516## Sources (in this order)17181. **Primary**: `https://code.claude.com/docs/en/changelog`192. **Fallback**: `https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md`203. **Big-picture context** (only if a major release is involved): `https://www.anthropic.com/news`2122Always fetch source 1 via `web_fetch` first. Source 2 only if 1 fails. Source 3 only as a cross-reference for larger announcements.2324---2526## Workflow2728### Step 0, determine the profile2930The profile decides **language, lenses, stack focus, honorable-mention topics and drop rules** for this user. Resolution order:31321. **Bash available?** Try to read, in this order:33 - `.claude/changelog-profile.md` (project-local)34 - `~/.claude/changelog-profile.md` (global)3536 If a file is found, load it and use it.37382. **Evaluate context and memory hints**: if the skill finds no file but the system context (a project CLAUDE.md, a memory system, the conversation history) holds enough information about the user (role, stack, language), derive an implicit profile from it. **Important**: the first time, briefly show the user what was derived and get confirmation before storing the profile permanently.39403. **No profile derivable?** Start a one-time setup flow, a short interview (max 5 questions):41 - Output language? (Default: the language the user wrote in)42 - Which roles are relevant? (e.g. "developer + entrepreneur", "backend engineer + tech lead", "solo founder")43 - Tech stack focus? (e.g. "Supabase, Vercel, MCP server setups, hooks" or "AWS Bedrock, enterprise setup")44 - Platforms/IDEs you do *not* use, that can go into honorable mentions? (e.g. "Windows, JetBrains, Bedrock")45 - Store it? (`.claude/changelog-profile.md` local or `~/.claude/changelog-profile.md` global?)4647 Build the profile from the answers and save it. Format in "Profile system" below.48494. **Fallback without a profile**: if the user declines the setup questions or Bash is unavailable, continue with these **default profile assumptions** and mention them as a note at the top of the output:50 - Language: whatever the user wrote in51 - Lenses: "developer" + "founder/entrepreneur"52 - Stack focus: all core features (MCP, sub-agents, hooks, plugins, skills, permissions, commands)53 - Honorable mentions: platform-specific items (Bedrock/Vertex/Foundry/JetBrains/Windows), new models, larger refactorings54 - Drop: "internal fixes" stubs, cosmetic bugs5556### Step 2, determine the cut-off5758Four modes, depending on what the user says or does not say:5960**Mode (b), auto-detect the installed version**61- If the user says "check my version", "what do I have installed", or similar: try `claude --version` via `bash_tool`.62- The output format is usually `2.1.143 (Claude Code)`, parse the version number out of it.63- On success, say: *"You are currently on version X.Y.Z, I will show everything that landed since."*64- On failure (no bash, not installed, unexpected output): fall back to mode (c).6566**Mode (c), default: the last 7 days**67- When the user gives no explicit cut-off and does not ask about "my version".68- Say briefly: *"I am taking the last 7 days (since [date]). Tell me if you want a different range."*69- Today's date comes from the system prompt.7071**Mode (d), open cut-off (since X until today)**72- The user says "since 2.1.130", "since last week", "the last 3 versions", "since yesterday", etc.73- Use it directly, ask nothing. Lower bound = X, upper bound = the newest available version.7475**Mode (e), range comparison between two versions or dates**76- The user says: "between 2.1.130 and 2.1.138", "from X to Y", "2.1.130..2.1.138", "diff 2.1.130 2.1.138", "compare 2.1.130 with 2.1.138", "what landed between version X and Y", "everything between X and Y", "changelog from X to Y".77- Dates work too: "between May 1 and May 10", "April to May".78- Parsing: lower bound = the lower version / earlier date, upper bound = the higher version / later date. The order in the input does not matter, always take the lower one as the start.79- **Inclusive on both sides**: items from version X *and* version Y are included.80- State the range explicitly in the output header (see output structure).8182If it is unclear which mode applies, ask one single clarifying sentence, then continue.8384### Step 3, fetch the changelog8586`web_fetch` the primary source. The page lists versions **in reverse chronological order** (newest first), with headers like `2.1.143` and dates like `May 15, 2026`.8788When reading for modes (b)/(c)/(d): process versions **until** the lower bound is reached.89When reading for mode (e): process the versions that fall between the lower and upper bound (both inclusive). Skip versions above the upper bound, stop at versions below the lower bound.9091### Step 4, filter every entry through the lenses9293For each bullet point in each version: check which lens or lenses from the **user's profile** the item hits. If no lens hits, it goes to honorable mentions or gets dropped.9495**In this version of the skill the lenses are primarily a classification scheme**, not an output layout. For each item, record *which* lenses it hits. Those lenses appear as a compact tag (`For: developer, entrepreneur`) on the item itself. Items are no longer grouped by lens in the output.9697**Multiple hits are allowed and in fact wanted**: if an item is equally relevant for a developer *and* an entrepreneur, tag both lenses. No more artificial "primary lens" decision.9899**The lens descriptions below are defaults** for a typical developer/founder profile. If the user profile defines other lenses or focus areas, **use those from the profile**, not the defaults.100101#### 🛠️ Default lens 1: developer102103What gets in (default, overridable by the profile):104- **MCP servers** (Supabase, Vercel, MongoDB, filesystem): connection, OAuth, permissions, config, reconnect behaviour105- **Sub-agents, agent teams, `claude agents`, `/bg` background sessions**: isolation, worktrees, lifecycle106- **Slash commands**, especially custom commands in `.claude/commands/`107- **Hooks** (PreToolUse, PostToolUse, UserPromptSubmit, Stop, SubagentStop, PreCompact, SessionStart)108- **Permissions**: allow/deny rules, `--dangerously-skip-permissions`, wildcards, sandbox, auto mode109- **Plugins**: install, marketplace, dependencies, validate110- **Skills**: creation, invocation, frontmatter, plugin-provided111- **Resume, compact, context window, effort levels**112- **Performance and stability** of core workflows (Edit, Read, Bash, Grep)113- **Anything marked breaking / removed / changed default**114- **Anything security-relevant**115116#### 💼 Default lens 2: entrepreneur / founder117118What gets in (default, overridable by the profile): anything that touches outward effect, business leverage or visibility.119120*Business and product leverage:*121- **New capabilities that enable products or services**, related to the stack and business model in the profile122- **Pricing-relevant items**: effort levels, model defaults, context window expansions, cache TTL, quota changes123- **Platform extensions** (web, desktop, Chrome, Slack, IDE): capabilities you can sell or offer124- **Remote control, scheduling, push notifications, the `claude agents` dashboard**: backbone for services125- **Enterprise and compliance features** (managed settings, audit, OTel): relevant for B2B offerings126- **Headless / SDK / CI-CD integration**: automation inside products127- **New models and major capability jumps**: they change what you can build128129*Visibility, content, education:*130- **Features you can show and demo** in talks, sessions, blog posts131- **"Wow" features** for a non-technical audience (voice mode, push, web/mobile, new IDE integrations)132- **Use cases for content** (blog, talk, tutorial, newsletter)133- **Major version milestones** and branded features: marketing hooks134- **Tutorial and recipe potential**: features with a clear how-to that works as a blog post or video135136#### 📋 Default lens 3: honorable mentions137138Everything that is **new or changed** but does **not fit one of the main lenses**, and is still worth a mention so nothing slips through unnoticed.139140What gets in (default, overridable by the profile):141- **Platforms the user does not currently use but should know about**: Bedrock/Vertex/Foundry (for advising clients), JetBrains and other IDEs, Windows-specific items (for demos and training)142- **New models, effort levels, pricing changes**, even when the user does not use them directly143- **Larger refactorings and architecture changes** (e.g. native binary, new renderers)144- **Interesting new capabilities without a direct use case**145- **Notable security fixes**, even ones that did not affect the user directly146147Format: shorter than the main lenses, usually one sentence. No "why this matters to you" and no use case needed. Just a list with version number and date.148149#### What actually gets dropped (no mention at all)150151Only these categories are cut completely (the profile can narrow this further):152- "Internal fixes" entries with no detail whatsoever153- Hyper-specific edge-case fixes for tools or workflows that do not appear in the profile154- Purely cosmetic rendering bugs in one single exotic terminal or IDE155156**When in doubt**: put it in honorable mentions rather than dropping it. The skill must not hide anything relevant from the user.157158### Step 5, assemble the output159160Write a Markdown file to `/mnt/user-data/outputs/claude-code-changelog-<YYYY-MM-DD>.md` (filename with today's date) and show it via `present_files`.161162**Exception**: if fewer than 10 items remain after filtering, answer inline instead of writing a file.163164#### Structure165166````markdown167# Claude Code, what is new for you168169<Header depending on the mode:>170171— Modes (b), (c), (d):172**Range**: <cut-off> to <today's date>173**Versions processed**: <N> (from <oldest> to <newest>)174175— Mode (e), range comparison:176**Comparison**: v<lower bound> to v<upper bound>177**Versions processed**: <N> (<date of lower bound> to <date of upper bound>)178179---180181## 🎯 Executive summary182183<1 sentence of framing, optional, e.g. "Three things worth taking away:">1841851. **<top item 1>** (v<version>) — <one crisp sentence>1862. **<top item 2>** (v<version>) — <one crisp sentence>1873. **<top item 3>** (v<version>) — <one crisp sentence>188189---190191## 🆕 New features192193- **<feature name>** (v<version>, <date>) · *For:* <lens or lenses from the profile, comma separated>194 - *What:* <one sentence, technically what happens>195 - *Benefit:* <one sentence, what the user gets out of it: pain point, advantage, time or effort saved>196 - *Usage:* <one sentence or a compact code snippet showing how to actually use it: flag, command, setting, hook snippet>197198- **<feature name 2>** ...199200## ⚠️ Breaking changes and behaviour changes201202- **<change>** (v<version>, <date>) · *For:* <lens(es)>203 - *Change:* <what concretely changes>204 - *Action:* <what the user has to adjust, or "nothing, just be aware">205206## 🐛 Notable bugfixes207208- **<fix>** (v<version>, <date>) · *For:* <lens(es)>209 - *Before:* <what was broken>210 - *Now:* <what works now>211 - *Noticeable when:* <when and where the fix shows up>212213## 📋 Honorable mentions214215*New or changed, but not in the main focus:*216- **<item>** (v<version>, <date>) — <one sentence on what it is>. *(For: <lens>)* — optional217- ...218219---220*Source: code.claude.com/docs/en/changelog · as of <date>*221````222223If a section is empty (no breaking changes in the range, for instance): leave the section out, do not render it as an empty list.224225### Ordering within a section226227Items inside "new features" / "breaking" / "bugfixes" are **prioritized by impact, not chronologically**. Top-down readability: the most important first, the peripheral last. When impact is comparable, the item that hits the user's stack directly wins.228229For honorable mentions a rough thematic grouping is enough (platform items first, then UX improvements, then configuration options).230231### Choosing the executive summary232233The executive summary is **the most important part of the output**, many people read only that. Rules:234235- **3 items by default, 5 at most.** Too few beats too many.236- **Prioritization, not chronology**: order by impact, not by version number.237- **Selection criteria** (in this order):238 1. Items that hit the user's active stack directly (MCP server fixes, agent workflow, hooks, skills)239 2. Larger new capabilities (new commands, new dashboards, new models)240 3. Breaking changes the user *actually* has to adapt to241- **Format per item**: `**<short name>** (v<version>) — <one sentence>`. No second sentence, no "why this matters to you", that is spelled out further down.242- **When nothing was truly big**: still write an executive summary, but frame it honestly: *"Quiet week, the main points:"* instead of inflated highlights.243244---245246## Style rules247248- **Use the language from the profile**, and without a profile the language the user wrote in. Stay consistent throughout.249- **The three-part format per main item is mandatory** in the new features, breaking and bugfixes sections:250 - *New features*: **What / Benefit / Usage**251 - *Breaking*: **Change / Action**252 - *Bugfixes*: **Before / Now / Noticeable when**253254 Each component is **one sentence** (or a compact code snippet for *usage*). No padding, no "it is worth noting that...".255256- **What vs benefit, keep them separate:**257 - *What* = the technical change ("hooks spawn commands directly without shell wrapping")258 - *Benefit* = the pain point it solves or the advantage it brings ("no more shell escaping bugs on paths with spaces")259 - *Usage* = how to actually apply it, ideally a snippet, flag or setting name (e.g. `args: ["script.sh", "$file"]` instead of `command: "script.sh '$file'"`)260261- **Always give the `For:` tag** on main items. Comma-separated list of lens names from the profile. On multiple hits, list every relevant lens (no more "primary lens" decision).262263- **Honorable mentions stay simple**: one sentence of description, no three-part scheme. The *For:* tag is optional, in parentheses at the end, when it adds something.264265- **Phrase it generically, do not personalize by name.** The *selection* of items may use the profile knowledge (stack, roles, projects), but the *wording* stays generic. **Concrete proper nouns from the profile (companies, products, people, internal tools) do not belong in the output.** Use generic terms instead: "multi-agent orchestration" rather than a specific product name, "B2B outreach system" rather than an internal tool name, "education platform" rather than a specific community, "your own business" rather than a company name. The reason: the output should not feel like reading over someone's shoulder, it should feel like a professional briefing.266267- **Leave technical terms in English**: sub-agent, hook, plugin, MCP, worktree, permission. Do not translate them artificially, not even in non-English output.268269- **Always include version number and date**, so the user can look it up.270271- **No emoji in body text**, only in section headers (🎯 🆕 ⚠️ 🐛 📋).272273- **When nothing relevant landed**: be honest. *"Between X and Y there were only maintenance changes, N bugfixes, none of them critical for your stack. Not worth going through in detail."*274275---276277## Example output (small, for orientation)278279````markdown280# Claude Code, what is new for you281282**Range**: May 12 to May 18, 2026283**Versions processed**: 4 (2.1.140 to 2.1.143)284285---286287## 🎯 Executive summary2882891. **New flags for `claude agents`** (v2.1.142) — dispatched background sessions can now be preconfigured with `--mcp-config`, `--model`, `--effort` and more.2902. **Fast mode uses Opus 4.7 by default** (v2.1.142) — faster default model, no action needed.2913. **Plugin dependency enforcement** (v2.1.143) — disable checks dependencies, enable pulls them in.292293---294295## 🆕 New features296297- **New flags for `claude agents`** (v2.1.142, May 14) · *For:* developer, entrepreneur298 - *What:* dispatched background sessions are now configured via CLI flags: `--add-dir`, `--settings`, `--mcp-config`, `--permission-mode`, `--model`, `--effort`.299 - *Benefit:* different MCP configs, permission profiles and effort levels per project, without separate wrapper scripts or setting switches.300 - *Usage:* `claude agents --mcp-config production.json --permission-mode strict --effort high --model opus`.301302- **Plugin dependency enforcement** (v2.1.143, May 15) · *For:* developer303 - *What:* `claude plugin disable` refuses when there are active dependents, `enable` pulls transitive dependencies in automatically.304 - *Benefit:* no more accidentally broken plugin stacks when a base plugin that others need gets disabled.305 - *Usage:* a normal `claude plugin disable <name>`, the disable chain is checked automatically and printed as a copy-pasteable hint.306307- **Fast mode uses Opus 4.7 by default** (v2.1.142, May 14) · *For:* entrepreneur308 - *What:* the default model for fast operations (auto-title, small tool calls) is now Opus 4.7 instead of 4.6.309 - *Benefit:* a quality jump across all background operations with no setup effort, and a clean education headline at the same time.310 - *Usage:* no action needed, active automatically after the upgrade. Opt out via `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1`.311312## ⚠️ Breaking changes and behaviour changes313314- **PowerShell tool enabled by default on Windows for Bedrock/Vertex/Foundry** (v2.1.143, May 15) · *For:* entrepreneur315 - *Change:* on Windows systems using Bedrock/Vertex/Foundry auth, the PowerShell tool is now on by default.316 - *Action:* be aware of it when advising Windows clients. Opt out via `CLAUDE_CODE_USE_POWERSHELL_TOOL=0` if unwanted.317318## 📋 Honorable mentions319320*New or changed, but not in the main focus:*321- **`worktree.bgIsolation: "none"` setting** (v2.1.143, May 15) — lets background sessions edit directly in the working copy without EnterWorktree.322- **Stop hook loop cap** (v2.1.143, May 15) — blocking stop hooks now end the turn automatically after 8 iterations.323- **`/web-setup` warns about GitHub app replacement** (v2.1.142, May 14).324325---326*Source: code.claude.com/docs/en/changelog · as of May 18, 2026*327````328329*(This example matches a profile with lenses = developer + entrepreneur and stack focus = MCP / sub-agents / hooks / plugins. The same run against a profile with `Language: de` produces the identical structure in German.)*330331---332333## Profile system334335The profile is a Markdown file with a fixed structure. The skill reads it at the start of every triggered run and uses it to determine lenses, language, focus areas and drop rules.336337### Storage location338339- **Project-local**: `.claude/changelog-profile.md`, recommended when the stack varies per project340- **Global**: `~/.claude/changelog-profile.md`, recommended for individuals with a consistent stack341342If both exist, project-local wins.343344### Profile format345346````markdown347# Claude Code Changelog Profile348349## Language350<de | en | ...> — language of the output. "de" means German, informal address.351352## Tone (optional)353<formal | direct | terse> — default: direct.354355## Lenses356List of the lenses that should appear in the output. Each lens has a name, an emoji, and a list of topic focus areas.357358### 🛠️ <lens name 1>359- <focus 1, e.g. "MCP servers (Supabase, Vercel)">360- <focus 2, e.g. "sub-agents, agent teams, /bg">361- ...362363### 💼 <lens name 2>364- <focus 1>365- ...366367(any number of lenses is possible, but 2 to 3 is the ergonomic upper limit)368369## Honorable Mentions370- <what belongs here, e.g. "Bedrock/Vertex/Foundry items">371- ...372373## Drop (hide completely)374- <what should be cut entirely, e.g. "internal fixes stubs">375- ...376377## Context Hints (never appear in the output)378Here the user can note memory and context hints that steer the *selection* but must not end up in the output. For example concrete company, product or people names.379- <e.g. "company: <name>, tools: <name>, colleagues: <name>">380````381382### Example profiles383384**Example A, solo founder on a Supabase/Next.js stack:**385386````markdown387# Claude Code Changelog Profile388389## Language390de391392## Lenses393394### 🛠️ Entwickler395- MCP servers (Supabase, Vercel, Stripe)396- Hooks (PreToolUse, PostToolUse for linting)397- Next.js / TypeScript workflows398- Authentication flows (Clerk, Supabase Auth)399- Database tooling (RLS, edge functions)400401### 💼 Founder402- B2B SaaS features (multi-tenant, billing)403- Cost-effective AI usage (pricing, cache, effort levels)404- Customer-facing capabilities (voice, web, mobile)405- Headless/CI-CD integration406407## Honorable Mentions408- Bedrock/Vertex/Foundry items409- JetBrains, Windows-specific items410- Plugin development (not used actively yet)411412## Drop413- Internal fixes stubs414- Hyper-specific terminal rendering bugs415416## Context Hints417- Main project: <own product name>418- Stack: Supabase, Next.js, Vercel, Stripe419````420421**Example B, backend engineer in an AWS shop:**422423````markdown424# Claude Code Changelog Profile425426## Language427en428429## Lenses430431### 🛠️ Backend Engineer432- AWS Bedrock integration (model selection, IAM)433- MCP server config (internal tools)434- Permissions, deny rules, sandboxing435- Hooks for compliance/audit logging436- Performance (resume, compact, cache)437438### 🏗️ Tech Lead439- Team capabilities (agent teams, shared configs)440- Managed settings, enterprise features441- OTel/observability442- Skills + plugins for team rollout443444## Honorable Mentions445- Vertex AI, Foundry, non-AWS providers446- Voice / mobile / consumer features447- JetBrains-specific items (we're on VSCode)448449## Drop450- Internal fixes451- Cosmetic rendering bugs452453## Context Hints454- Company runs on AWS Bedrock exclusively455- Team of 12 engineers, all on VSCode456````457458### Profile updates459460When the user says *"update my profile"*, *"my stack has changed"*, *"add another lens"* or similar:4611. Load the current profile and show it4622. Walk through the concrete changes with the user4633. Write the updated profile back to the same file464465---466467## Edge cases468469- **Several versions on the same day**: merge them into one entry, use the newest version as the reference.470- **Hotfix-only versions** (e.g. "internal fixes"): mention them in honorable mentions only, do not detail them.471- **Very large range** (>30 days, >20 versions): before filtering, say *"That is a big one, should I keep it rough or go through it fully?"* and wait for the user's answer.472- **Cut-off is after the newest version**: *"You are up to date."* Do not generate a file.473- **Range mode with invalid versions**: if the lower bound is greater than the upper bound, swap them silently and mention it briefly ("I read that as: from X to Y"). If one of the two versions does not exist in the changelog, tell the user which existing versions are closest and ask.474- **Range mode with two identical versions**: answer *"That is a single version, here is what changed in it:"* and process only that version as a special case.