GitHub Release Analyzer
v0.0.3Analyze GitHub repository releases and summarize release notes. Use when the user asks to analyze, summarize, review, or track the latest release or recent r...
GitHub Release Analyzer
Use this skill as a fixed pipeline:
prepare -> summarize -> render -> deliver -> commit
Only summarize is free-form. prepare, render, and commit are deterministic script steps.
Inputs
- Repo input:
https://github.com/<owner>/<repo>or<owner>/<repo> - Default
stateKey:{owner}__{repo} - Default template:
default - Default behavior:
- manual: latest formal release only, no state read/write
- cron: formal releases only, first run selects latest only, later runs select unprocessed only
Workflow
- Read
references/execution-modes.mdand choosemanualorcron. - Run:
python3 skills/github-release-analyzer/scripts/run.py prepare --repo <repo> --mode <manual|cron>
Useful flags:
--state-key <key>--limit <n>--include-prerelease--output-template default--initial-cron-behavior latest-only
-
If
status=has_updates, readreferences/summary-contract.mdand produce one summary string per selected release. Keep the summary language aligned with the primary language of the invocation instruction. -
Render the final message:
python3 skills/github-release-analyzer/scripts/run.py render --repo <repo> --mode <manual|cron> < payload.json
When building the render payload, preserve the release fields required by render, especially tag_name, published_at, and html_url.
- In cron mode, after successful delivery, commit state:
python3 skills/github-release-analyzer/scripts/run.py commit \
--repo <repo> \
--mode cron \
--processed-tags <comma-separated-tags> \
--latest-release-id <id> \
--latest-published-at <iso8601>
Rules
- Treat
prepareoutput as the source of truth for selection, ordering, first-run behavior, repo normalization, and state path. - The output language must follow the primary language of the invocation instruction.
- The final outgoing message must come from
render. - In cron mode:
- if
status=no_updateorstatus=no_release, reply withNO_REPLY - if
status=has_updates, emit only the final rendered message
- if
- Update processed state only after successful delivery.
Hard prohibitions
- Do not skip
prepare. - Do not bypass
render. - Do not reorder or silently drop releases selected by
prepare. - Do not call
commitin manual mode. - Do not call
commitbefore delivery succeeds in cron mode. - Do not replace the summary contract with ad hoc prose outside the required
summaries[]string-array shape. - In cron mode, when
status=no_updateorstatus=no_release, reply exactlyNO_REPLY. - In cron mode, do not emit progress chatter, intermediate JSON, step labels, or workflow narration.
Files to read
references/execution-modes.mdreferences/summary-contract.mdreferences/templates.mdreferences/state-format.md
Version tags
latest
Runtime requirements
📦 Clawdis
Binspython3
