Claude Code Release and Update Check
Check the latest information from sources defined in sources.yaml and propose things applicable to your environment.
Configuration
- •
sources.yaml- Repositories/sources to monitor (in this skill directory) - •
sources.example.yaml- Configuration example
State Tracking
- •
state.schema.json- JSON Schema definition (with if/then constraints) - •
state.yaml- Last check state (auto-created, gitignored) - •
state.example.yaml- Example with schema reference
Rules:
- •
last_checkedis Unix epoch seconds (UTC) - •Schema comment (
# yaml-language-server: ...) must be preserved on updates - •Concurrent execution: last write wins (use atomic write: temp file + rename)
- •Orphan keys: remove entries from
state.yamlif source is deleted fromsources.yaml - •Only update
last_checkedfor successfully checked sources
Recovery:
- •If
state.yamlis corrupted, delete it and run/cc-releasesagain
Tasks
- •Read
sources.yamlto get source list - •Read
state.yamlif exists (first run: treat all as new, createsources: {})- •If parse error: warn user and offer to delete and recreate
- •Remove orphan keys from state (sources not in sources.yaml)
- •For each source:
- •If type is
releases:- •Run
gh release list --repo <repo> --exclude-drafts --exclude-pre-releases --limit 10 - •If gh auth error: report and skip this source
- •Compare with
state.yaml.sources.<name>.last_version - •Mark releases newer than last_version as [NEW] (trust gh output order, newest first)
- •If last_version not found in list: warn and mark only latest as [NEW]
- •Run
- •If type is
commits:- •Run
gh api repos/<repo>/commits --paginate --jq '.[].sha'(use since param if last_checked exists) - •If gh auth error: report and skip this source
- •If last_sha not in results: warn and mark latest 5 as [NEW]
- •Otherwise mark commits after last_sha as [NEW]
- •Run
- •If type is
- •Pick up NEW items applicable to your environment
- •Propose specific application methods
- •Add things worth trying to CLAUDE.md "Things to Try" section
- •Ask user: "Update state.yaml to mark these as seen?"
- •If yes, update
state.yaml(atomic write: write to temp file, then rename):- •Preserve schema comment at top
- •Only update successfully checked sources
- •Set last_checked to current Unix epoch
- •For releases: set last_version to newest version
- •For commits: set last_sha to newest commit SHA (lowercase)
Output Format
code
## Update Summary ### Status - claude-code: Last check 1738540800 (3 days ago) - awesome-claude-code: Last check 1738540800 (3 days ago) ### [claude-code] (releases) - [NEW] v2.1.30 - Main changes - [SEEN] v2.1.27 ### [awesome-claude-code] (commits) - [NEW] 2 commits since fe3c03d ### Errors - (none) ## Try Today (pick one) - What - How --- Update state.yaml to mark as seen? (y/n)