cc-changelog
CONTRIBUTOR TOOL - Track CC changelog, extract new versions since last check, analyze impact on plugin (breaking changes, opportunities, deprecations). Run periodically or before releases. NOT part of the distributed plugin.
Install
npx skills add https://github.com/oliver-kriska/claude-elixir-phoenix/tree/main/.claude/skills/cc-changelog
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install oliver-kriska-claude-elixir-phoenix@llmmart
git clone https://github.com/oliver-kriska/claude-elixir-phoenix.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole oliver-kriska/claude-elixir-phoenix collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
Claude Code Changelog Assistant
Tracks Claude Code releases against the plugin. Fetches the CC changelog, extracts entries newer than last check, and analyzes impact on plugin components (agents, skills, hooks, config).
Usage
/cc-changelog # Check for new CC versions, analyze impact
/cc-changelog --full # Re-analyze all versions (ignore last check)
/cc-changelog --set=2.1.85 # Reset last checked version (then re-run)
Execution Flow
Step 1: Fetch & Extract New Entries
bash "${CLAUDE_PROJECT_DIR}/scripts/fetch-cc-changelog.sh"
If output starts with STATUS: UP_TO_DATE → report "No new CC versions" and stop.
If STATUS: NEW_VERSIONS → continue with the changelog content below the header.
For --full: run bash "${CLAUDE_PROJECT_DIR}/scripts/fetch-cc-changelog.sh" --all
For --set=X: run bash "${CLAUDE_PROJECT_DIR}/scripts/fetch-cc-changelog.sh" --set=X, then re-run without flag.
Step 2: Analyze Impact
Read the new changelog entries. For EACH entry, classify into one of:
| Category | Meaning | Action |
|---|---|---|
| BREAKING | May break existing plugin functionality | Immediate fix required |
| OPPORTUNITY | New CC feature the plugin could use | Add to backlog/plan |
| RELEVANT FIX | CC fixed a bug we worked around | Check if workaround can be removed |
| DEPRECATION | CC removing something we use | Plan migration |
| INFO | Good to know, no action needed | Log in memory update |
Cross-reference against plugin components using rules in
${CLAUDE_SKILL_DIR}/references/analysis-rules.md.
Step 3: Generate Report
Output a structured report:
## CC Changelog Analysis: v{last_checked} → v{latest}
### BREAKING (action required)
- [version] description → **Impact**: which plugin file/component
**Fix**: specific action needed
### OPPORTUNITY (new features)
- [version] description → **Use case**: how plugin could benefit
**Files**: which plugin files to update
### RELEVANT FIX (workaround removal)
- [version] description → **Current workaround**: what we do now
**Action**: can we simplify?
### DEPRECATION (migration needed)
- [version] description → **We use this in**: file:line
**Migration**: what to change
### INFO (no action)
- [version] brief summary (collapsed)
Step 4: Update State
After user reviews the report, ask:
"Update last checked version to ? This also updates the CC internals memory file. [Yes/No]"
If yes:
- Run
bash "${CLAUDE_PROJECT_DIR}/scripts/fetch-cc-changelog.sh" --set={latest} - Update memory file
reference_cc_source_internals.mdwith new findings - If BREAKING or DEPRECATION items found, offer to create a plan
Iron Laws
- ALWAYS fetch before analyzing — never analyze stale cache
- NEVER auto-update state — user must confirm after reviewing report
- ALWAYS cross-reference plugin files — don't just summarize, map to impact
- BREAKING changes are BLOCKERS — surface first, prominently
- Track the audit version — state file is the source of truth
Files (claude-elixir-phoenix)
-
references
-
analysis-rules.md 5.6 KB
# CC Changelog Analysis Rules ## Plugin Component Mapping When analyzing CC changelog entries, map them to specific plugin components: ### Hooks System | CC Change Pattern | Plugin Files to Check | |-------------------|-----------------------| | Hook events (new/changed/removed) | `plugins/elixir-phoenix/hooks/hooks.json` | | Hook `if` conditions | All hooks with `"if":` patterns | | Hook output behavior | `plugins/elixir-phoenix/hooks/scripts/*.sh` | | `asyncRewake`, `once`, `timeout` | hooks.json hook definitions | | `additionalContext` changes | SubagentStart, PostToolUseFailure hooks | | `hookSpecificOutput` changes | All hooks using exit 2 + stderr | | New hook types (agent, prompt, http) | Consider new hook opportunities | ### Agent Frontmatter | CC Change Pattern | Plugin Files to Check | |-------------------|-----------------------| | New frontmatter fields | All 26 agents in `plugins/elixir-phoenix/agents/*.md` | | `model:` value changes | Agents using specific model values | | `permissionMode:` changes | None of our plugin agents set it (ignored on plugin agents); `.claude/agents/` contributor agents use `bypassPermissions` | | `effort:` level changes | All agents with effort levels | | `tools:` / `disallowedTools:` | Review agents (read-only enforcement) | | `omitClaudeMd:` behavior | Agents with `omitClaudeMd: true` | | `skills:` preloading | Agents with preloaded skills | | `isolation:` / `background:` | Orchestrator agents | | `maxTurns:` behavior | All agents with maxTurns set | ### Skill System | CC Change Pattern | Plugin Files to Check | |-------------------|-----------------------| | Skill format changes | All 38 skills in `plugins/elixir-phoenix/skills/` | | `description` length limits | All SKILL.md frontmatter (CC cap 1,536 since v2.1.105; plugin targets 250) | | `paths:` field behavior | Skills with `paths:` for auto-loading | | Skill listing/truncation | Skill descriptions and ordering | | Lazy loading behavior | Skills with large references | | `argument-hint:` | Command skills with argument hints | ### Plugin Config | CC Change Pattern | Plugin Files to Check | |-------------------|-----------------------| | `plugin.json` schema | `plugins/elixir-phoenix/.claude-plugin/plugin.json` | | `marketplace.json` schema | `.claude-plugin/marketplace.json` | | `${CLAUDE_PLUGIN_DATA}` | `hooks/scripts/setup-dirs.sh`, `log-progress.sh` | | `${CLAUDE_PLUGIN_ROOT}` | All hooks.json paths | | `userConfig` / `sensitive` | plugin.json (if we use settings) | | Plugin validation (`claude plugin validate`) | CI workflow | ### Tool System | CC Change Pattern | Plugin Files to Check | |-------------------|-----------------------| | Tool parameter changes | Hooks checking tool inputs | | New tools added | Agent `tools:` lists | | Tool deprecation | Agent `tools:` lists, skill instructions | | Permission mode changes | Agent `permissionMode:` | | `SendMessage` / `TaskCreate` / etc. | Orchestrator agents using these tools | ### Compaction & Memory | CC Change Pattern | Plugin Files to Check | |-------------------|-----------------------| | Compaction behavior | `PreCompact` / `PostCompact` hooks | | Context window changes | Agent token budgets, skill sizes | | Memory system changes | Agents with `memory: project` | ## Impact Classification Rules ### BREAKING — Requires Immediate Action Flag as BREAKING when CC changelog says: - "Breaking change" explicitly - "Removed" a feature/parameter we use - "Changed" behavior of a hook event we rely on - "Renamed" an API/tool/parameter we reference - Tool parameter schema changed (affects hook `if` patterns) **Verification**: grep the plugin for the affected term/pattern. ### OPPORTUNITY — New Feature We Could Use Flag as OPPORTUNITY when: - New hook event added (check "Available but NOT used" list in memory) - New agent frontmatter field that could improve our agents - New plugin capability (`userConfig`, new `${}` variables) - New tool that agents could benefit from - Performance improvement that changes best practices **Prioritization**: Score 1-3 based on how many plugin components benefit. ### RELEVANT FIX — CC Fixed Something We Workaround Flag as RELEVANT FIX when: - CC fixed a bug we documented in memory or CLAUDE.md - CC fixed a behavior our hooks explicitly handle - Error mentioned in our compound solutions **Verification**: search memory file and hooks for the bug pattern. ### DEPRECATION — Migration Needed Flag as DEPRECATION when: - CC deprecated a tool/parameter we use - CC will remove something in a future version - CC recommends migrating from X to Y (and we use X) **Urgency**: immediate if removal announced, low if just deprecated. ### INFO — Log Only Everything else: performance improvements, unrelated bug fixes, new features for capabilities we don't use (e.g., Codex CLI, Windows-specific). ## Cross-Reference Checklist For each BREAKING or DEPRECATION item, always: 1. `grep -r "PATTERN" plugins/elixir-phoenix/` — find all usages 2. Check `hooks/hooks.json` — any hook referencing the feature 3. Check memory file — any documented behavior about this 4. Check CLAUDE.md — any instructions referencing this ## Memory Update Template After analysis, update `reference_cc_source_internals.md` with: ```markdown **Last changelog audit: CC v{LATEST} (checked {DATE}, down to v{PREVIOUS})** ``` Add new sections for: - New hook events → "Available but NOT used" list - New agent frontmatter → Agent Frontmatter section - New plugin capabilities → Plugin Capabilities section - Breaking changes → Breaking Changes section - Bug fixes affecting plugin → Bug Fixes section
-
-
SKILL.md 3.4 KB
--- name: cc-changelog description: | CONTRIBUTOR TOOL - Track CC changelog, extract new versions since last check, analyze impact on plugin (breaking changes, opportunities, deprecations). Run periodically or before releases. NOT part of the distributed plugin. argument-hint: "[--full|--set=VERSION]" effort: medium --- # Claude Code Changelog Assistant Tracks Claude Code releases against the plugin. Fetches the CC changelog, extracts entries newer than last check, and analyzes impact on plugin components (agents, skills, hooks, config). ## Usage ```text /cc-changelog # Check for new CC versions, analyze impact /cc-changelog --full # Re-analyze all versions (ignore last check) /cc-changelog --set=2.1.85 # Reset last checked version (then re-run) ``` ## Execution Flow ### Step 1: Fetch & Extract New Entries ```bash bash "${CLAUDE_PROJECT_DIR}/scripts/fetch-cc-changelog.sh" ``` If output starts with `STATUS: UP_TO_DATE` → report "No new CC versions" and stop. If `STATUS: NEW_VERSIONS` → continue with the changelog content below the header. For `--full`: run `bash "${CLAUDE_PROJECT_DIR}/scripts/fetch-cc-changelog.sh" --all` For `--set=X`: run `bash "${CLAUDE_PROJECT_DIR}/scripts/fetch-cc-changelog.sh" --set=X`, then re-run without flag. ### Step 2: Analyze Impact Read the new changelog entries. For EACH entry, classify into one of: | Category | Meaning | Action | |----------|---------|--------| | **BREAKING** | May break existing plugin functionality | Immediate fix required | | **OPPORTUNITY** | New CC feature the plugin could use | Add to backlog/plan | | **RELEVANT FIX** | CC fixed a bug we worked around | Check if workaround can be removed | | **DEPRECATION** | CC removing something we use | Plan migration | | **INFO** | Good to know, no action needed | Log in memory update | Cross-reference against plugin components using rules in `${CLAUDE_SKILL_DIR}/references/analysis-rules.md`. ### Step 3: Generate Report Output a structured report: ```markdown ## CC Changelog Analysis: v{last_checked} → v{latest} ### BREAKING (action required) - [version] description → **Impact**: which plugin file/component **Fix**: specific action needed ### OPPORTUNITY (new features) - [version] description → **Use case**: how plugin could benefit **Files**: which plugin files to update ### RELEVANT FIX (workaround removal) - [version] description → **Current workaround**: what we do now **Action**: can we simplify? ### DEPRECATION (migration needed) - [version] description → **We use this in**: file:line **Migration**: what to change ### INFO (no action) - [version] brief summary (collapsed) ``` ### Step 4: Update State After user reviews the report, ask: > "Update last checked version to {latest}? This also updates the > CC internals memory file. [Yes/No]" If yes: 1. Run `bash "${CLAUDE_PROJECT_DIR}/scripts/fetch-cc-changelog.sh" --set={latest}` 2. Update memory file `reference_cc_source_internals.md` with new findings 3. If BREAKING or DEPRECATION items found, offer to create a plan ## Iron Laws 1. **ALWAYS fetch before analyzing** — never analyze stale cache 2. **NEVER auto-update state** — user must confirm after reviewing report 3. **ALWAYS cross-reference plugin files** — don't just summarize, map to impact 4. **BREAKING changes are BLOCKERS** — surface first, prominently 5. **Track the audit version** — state file is the source of truth
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.