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
## 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)
Converted and distributed by TomeVault — claim your Tome and manage your conversions.