Source profileQuality 91/100

Jamie-BitFlight/claude_skills/.claude/skills/daily-releases/SKILL.md

daily-releases

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.

Source repository stars
64
Declared platforms
0
Static risk flags
0
Last source update
2026-08-25
Source checked
2026-08-25

Decision brief

What it does: where it fits

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.

Best for

  • Use when creating daily release notes, backfilling releases, or generating AI-categorized changelogs per day.

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/Jamie-BitFlight/claude_skills --skill ".claude/skills/daily-releases"
Safe inspection promptEditorial

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

What the source asks the agent to do

  1. 01

    Process

    Requires GITHUBTOKEN for release status checks (list) and publishing.

    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)
  2. 02

    Step 1: List days to process

    This outputs a JSON array. Each entry has:

    This outputs a JSON array. Each entry has:Skip entries where releaseexists: true and needsupdate: false — those are up to date.For --dry-run, print the list and stop.
  3. 03

    Step 2: For each day that needs a release

    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.

    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)
  4. 04

    Step 3: Report

    After processing all days, print a summary:

    After processing all days, print a summary:
  5. 05

    Automatic Invocation

    When this skill is activated, immediately begin processing without asking the user. Parse any arguments from :

    When this skill is activated, immediately begin processing without asking the user. Parse any arguments from :

Permission review

Static risk signals and limitations

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

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score91/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars64SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
Jamie-BitFlight/claude_skills
Skill path
.claude/skills/daily-releases/SKILL.md
Commit
b70ba8737e664d9e2482912e3ddbe7ecb77e0539
License
MIT
Collected
2026-08-25
Default branch
main
View the original SKILL.md

<release_args>$ARGUMENTS</release_args>

Daily Releases

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.

Automatic Invocation

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

Process

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.

Step 1: List days to process

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.

Step 2: For each day that needs a release

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.

2a. Collect dataset

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 counts
  • commits.json — commits with SHA, message, files touched
  • issues.json — GitHub issues/PRs referenced or closed (empty if no token)
  • diffs/<sanitized_path>.diff — per-file unified diff for each source file

Source files: *.py .js .cjs .mjs .ts .tsx .sh .md .json .yaml .yml Excluded: dist/ build/ node_modules/ vendor/ .venv/ and similar build outputs.

2b. Create token-bounded buckets

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 bucket

Prints a summary listing bucket count and token sizes.

2c. Analyse each bucket (delegate — do NOT read bucket files yourself)

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.

2d. Synthesise summaries into analysis.json

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.

2e. Format into release notes

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

2f. Publish the release

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.

Step 3: Report

After processing all days, print a summary:

Processed N days:
  - Created: X new releases
  - Updated: Y existing releases
  - Skipped: Z already up to date

Reference files

Reference paths above are relative to this skill directory; CLI commands use repo-root paths.

Frequently asked questions

What to verify before installation and use

What does the daily-releases source document cover?

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.

How do I install daily-releases?

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

Compare before choosing