Best for
- Use when creating daily release notes, backfilling releases, or generating AI-categorized changelogs per day.
Jamie-BitFlight/claude_skills/.claude/skills/daily-releases/SKILL.md
Create GitHub Releases with AI-analyzed changelogs for every calendar day with commits on origin/main. Use when creating daily release notes, backfilling releases, or generating AI-categorized changelogs per day. Uses collect → bucket → analyze → synthesize → publish pipeline via Haiku subagents. Idempotent — skips up-to-date days, updates releases where new commits were added. Accepts optional --start-date, --end-date, --branch, and --dry-run arguments.
Decision brief
Create GitHub Releases with AI-categorized changelogs for every day that had commits. Uses the same pipeline as /create-merge-request-changelog — real AI analysis, not template substitution.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/Jamie-BitFlight/claude_skills --skill ".claude/skills/daily-releases"Inspect the Agent Skill "daily-releases" from https://github.com/Jamie-BitFlight/claude_skills/blob/b70ba8737e664d9e2482912e3ddbe7ecb77e0539/.claude/skills/daily-releases/SKILL.md at commit b70ba8737e664d9e2482912e3ddbe7ecb77e0539. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Requires GITHUBTOKEN for release status checks (list) and publishing.
This outputs a JSON array. Each entry has:
Work through days chronologically. For each day, the pipeline collects data, buckets it by token budget, analyses each bucket with a Haiku subagent, synthesises the results, then formats and publishes. Days with few commits pass through a single bucket with no synthesis overhead.
After processing all days, print a summary:
When this skill is activated, immediately begin processing without asking the user. Parse any arguments from :
Permission review
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 91/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 64 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
<release_args>$ARGUMENTS</release_args>
Create GitHub Releases with AI-categorized changelogs for every day that had commits. Uses the same pipeline as /create-merge-request-changelog — real AI analysis, not template substitution.
When this skill is activated, immediately begin processing without asking the user. Parse any arguments from <release_args/>:
--start-date YYYY-MM-DD Only process days on or after this date
--end-date YYYY-MM-DD Only process days on or before this date (default: today)
--branch BRANCH Git branch (default: origin/main)
--dry-run Preview without creating releases
Requires GITHUB_TOKEN for release status checks (list) and publishing.
Working directory: Run all commands from the repository root. Paths below assume cwd is the repo root.
uv run .claude/skills/daily-releases/scripts/list_daily_ranges.py [--branch BRANCH] [--start-date ...] [--end-date ...] [-R OWNER/REPO]
This outputs a JSON array. Each entry has:
{
"date": "2026-02-21",
"tag": "v2026.02.21",
"base_ref": "<parent-commit-hash>",
"head_ref": "<last-commit-hash-of-day>",
"commit_count": 12,
"release_exists": true,
"needs_update": false
}
Skip entries where release_exists: true and needs_update: false — those are up to date.
For --dry-run, print the list and stop.
Work through days chronologically. For each day, the pipeline collects data, buckets it by token budget, analyses each bucket with a Haiku subagent, synthesises the results, then formats and publishes. Days with few commits pass through a single bucket with no synthesis overhead.
uv run .claude/skills/daily-releases/scripts/collect_day_dataset.py \
<base_ref> <head_ref> ./daily-releases/<date>/ [-R OWNER/REPO]
Writes ./daily-releases/<date>/dataset/:
files.json — changed source files with status and line countscommits.json — commits with SHA, message, files touchedissues.json — GitHub issues/PRs referenced or closed (empty if no token)diffs/<sanitized_path>.diff — per-file unified diff for each source fileSource files: *.py .js .cjs .mjs .ts .tsx .sh .md .json .yaml .yml
Excluded: dist/ build/ node_modules/ vendor/ .venv/ and similar build outputs.
uv run .claude/skills/daily-releases/scripts/bucket_day_data.py \
./daily-releases/<date>/ [--token-limit 100000]
Token limit defaults to env var DAILY_RELEASES_TOKEN_LIMIT or 100000.
Groups source files by directory module, fills buckets greedily keeping each under the token limit (measured with tiktoken cl100k_base as a proxy).
Writes ./daily-releases/<date>/buckets/bucket_NNN/:
manifest.json — {bucket_id, files, token_count, commit_shas}content.txt — file diffs followed by commit messages for this bucketPrints a summary listing bucket count and token sizes.
For each bucket_NNN/ directory found under ./daily-releases/<date>/buckets/:
Agent(
subagent_type="general-purpose",
model="claude-haiku-4-5-20251001",
prompt="""
Read: ./daily-releases/<date>/buckets/bucket_NNN/content.txt
Apply the Per-Bucket Analysis Prompt from:
.claude/skills/daily-releases/references/synthesis_prompt.md
Write the structured JSON output to:
./daily-releases/<date>/summaries/bucket_NNN.json
Report "bucket_NNN.json written" when done.
""",
)
Replace <date> and NNN with actual values before emitting each Agent() call.
Buckets may be processed in parallel — each writes to its own summary file.
After all agents return, verify each summaries/bucket_NNN.json exists. Stop with
an error if any is missing.
If exactly one bucket exists: promote its JSON directly — copy
summaries/bucket_001.json to analysis.json, adding a statistics block from
dataset/files.json counts (commit_count, files_changed, lines_added,
lines_deleted). No synthesis agent needed.
If two or more buckets exist:
Agent(
subagent_type="general-purpose",
model="claude-haiku-4-5-20251001",
prompt="""
Apply the Day Synthesis Prompt from:
.claude/skills/daily-releases/references/synthesis_prompt.md
Read all bucket summary files:
./daily-releases/<date>/summaries/bucket_001.json
./daily-releases/<date>/summaries/bucket_002.json
... (list all that exist)
Also read ./daily-releases/<date>/dataset/files.json for statistics counts.
Write the merged analysis JSON to: ./daily-releases/<date>/analysis.json
Report "analysis.json written" when done.
""",
)
After the agent returns, verify ./daily-releases/<date>/analysis.json exists.
Stop with an error if missing.
uv run .claude/skills/create-merge-request-changelog/scripts/format_mr_description.py \
./daily-releases/<date>/analysis.json \
--no-preview \
--output ./daily-releases/<date>/description.md
uv run .claude/skills/daily-releases/scripts/publish_daily_release.py \
--date <date> \
--tag <tag> \
--head-ref <head_ref> \
--notes-file ./daily-releases/<date>/description.md
Add --keep-existing-tag=false if updating a release that already has the correct
tag commit.
After processing all days, print a summary:
Processed N days:
- Created: X new releases
- Updated: Y existing releases
- Skipped: Z already up to date
dataset/buckets/Reference paths above are relative to this skill directory; CLI commands use repo-root paths.
Frequently asked questions
Create GitHub Releases with AI-categorized changelogs for every day that had commits. Uses the same pipeline as /create-merge-request-changelog — real AI analysis, not template substitution.
The source record exposes this install command: npx skills add https://github.com/Jamie-BitFlight/claude_skills --skill ".claude/skills/daily-releases". Inspect the command and pinned source before running it.
Alternatives
vasilyu1983/AI-Agents-public
Scans public GitHub repos for agent skills, dev practices, and code patterns. Use when enriching skills, setting team policy, or researching a build domain.
drafthq/draft
Decompose project or track into modules with dependency mapping. Project scope updates architecture.md and derives .ai-context.md. Track scope generates hld.md (always) and lld.md (when --lld or High-complexity module triggers it) — design-mandated artifacts that drive implement, deploy-checklist, and upload sign-off.
microsoft/Sico
Execute Android UI workflows on a sandbox device, review results, and produce a structured execution report.
JasonColapietro/suede-creator-skills
Suede-owned Instagram growth operating system for account-specific audits, Reels, carousels, Stories, conversion mapping, calendars, and daily candidate-production loops. Use when the user names Instagram, IG, Reels, Stories, asks to analyze recent posts, grow a handle, run a daily workflow, create or repurpose Instagram content, or distinguish views from follows, leads, and sales. NOT FOR: multi-platform organic strategy (use suede-social), full video rendering or editing (use suede-video), pai