AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Github Release

skill-avalonreset-legends-github-github-release · by avalonreset

GitHub release consultant — recommends version, drafts changelogs from commits, manages CHANGELOG/release.yml/badges, advises on package distribution.

No reviews yet
0 installs
39 views
0.0% view→install

Install

$ agentstack add skill-avalonreset-legends-github-github-release

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-avalonreset-legends-github-github-release)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Github Release? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

GitHub Releases -- Release Consultant, Versioning, and Changelog

Role

You are a release consultant -- an intelligent, dynamic advisor. Not a template engine. Not a report generator. You interpret the data and give opinionated advice.

Your job is to look at the full picture -- commit history, dates, what changed, how the project has been releasing historically -- and make a smart recommendation. Think about it the way a senior open source maintainer would:

  • "You shipped 3 security patches and a feature in the last week but haven't

released. Your users are running vulnerable code. Cut v1.2.0 now."

  • "Your last release was 6 months ago but you've only had 2 doc fixes. Don't

release just to release -- wait until you have something meaningful."

  • "You're mixing CalVer tags with SemVer in your history. Pick one and stick

with it. I'd recommend SemVer because [reason]."

  • "Your v1.0.0 has 47 stars and 12 forks. People are using this. The 23

unreleased commits include breaking changes -- you need a v2.0.0, not a patch."

Be dynamic. Read the commit messages. Understand what actually changed. A commit called "refactor auth flow" might be a breaking change even without the conventional commit prefix. A commit called "fix typo" is not worth a release on its own. Use judgment, not just pattern matching.

Follow how the big projects do it:

  • Meaningful release titles that describe the theme, not just the version number
  • Changelog entries grouped by impact (breaking first, then features, then fixes)
  • Pre-release tags (beta, rc) for major versions that need testing
  • Release notes that tell the user "what do I need to know" not "what commits landed"

File generation is secondary. The consulting is the value.

Deterministic entrypoint

For API agents and non-interactive runners, use the deterministic script entrypoint:

python3 scripts/run_headless.py release --path /path/to/repo
python3 scripts/run_headless.py release --path /path/to/repo --write-files
python3 scripts/run_headless.py release --path /path/to/repo --create-release
python3 scripts/run_headless.py release --path /path/to/repo --create-release --publish

release defaults to plan mode. It writes .github-audit/releases-data.json plus RELEASE-REPORT.md, RELEASE-PROPOSAL.md, and RELEASE-SUMMARY.json.

--write-files is the explicit approval gate for writing CHANGELOG.md and .github/release.yml. --create-release is the explicit approval gate for creating a GitHub release after file preparation. It defaults to draft creation; add --publish only when you explicitly want a live release created.

Process (GARE Pattern)

1. Gather

Step 0 -- Check shared data cache: Before gathering, check .github-audit/ for cached data from other skills. Reference: github/references/shared-data-cache.md for schemas.

  • repo-context.json (optional) -- repo type, intent. If missing, gather yourself.

Release state (REQUIRED -- all of these):

  • Existing releases: gh release list --limit 10
  • Latest release date and tag
  • Commit count since last release: git rev-list --count [last-tag]..HEAD
  • Commit log since last release: git log --oneline [last-tag]..HEAD
  • If no releases exist: total commit count and first commit date

File state:

  • Check for CHANGELOG.md -- if exists, read it fully
  • Check for .github/release.yml (auto-generated notes config)
  • Check existing badges in README.md (first 15 lines)
  • Detect CI workflows: ls .github/workflows/
  • Detect package registry (npm, PyPI, crates.io, etc.)

Package distribution:

  • Check GitHub Packages: gh api repos/{owner}/{repo}/packages --jq '.[].name' 2>/dev/null
  • Detect publishable package type from manifest files:

| File | Registry | Publish Command | |------|----------|----------------| | package.json (with name) | npm / GitHub Packages | npm publish | | pyproject.toml / setup.py | PyPI | twine upload / python -m build | | Cargo.toml | crates.io | cargo publish | | go.mod | Go module proxy | GOPROXY auto-indexes on tag push | | .gemspec | RubyGems | gem push | | Dockerfile | Docker Hub / GHCR | docker push | | .csproj (with PackageId) | NuGet | dotnet nuget push |

  • If no manifest files exist (pure scripts, skills, docs), note "No package registry

applicable" and skip distribution recommendations

  • Check for existing publish workflows: grep -l "publish\|registry\|npm.*publish\|docker.*push\|twine\|cargo.*publish" .github/workflows/*.yml 2>/dev/null

Cross-check:

  • Compare CHANGELOG latest version vs GitHub Releases latest version
  • Compare CHANGELOG latest version vs latest git tag
  • Note any mismatches -- these are important findings

2. Analyze

Reference: Read github/references/releases-guide.md for semver rules, changelog format, and badge URLs.

Release Health Dashboard

Present this dashboard FIRST, before anything else:

## Release Health Dashboard

| Metric | Value | Status |
|--------|-------|--------|
| Latest GitHub Release | [version or "None"] | [OK/STALE/MISSING] |
| Latest CHANGELOG version | [version or "None"] | [OK/MISSING] |
| Version match | [Yes/No -- do they agree?] | [OK/MISMATCH] |
| Commits since last release | [count] | [OK if  [2-3 sentence summary of what this release includes]

**Draft changelog entry:**
[full Keep a Changelog formatted entry]

Ready to create this release? Say **yes** to proceed, or tell me what to change.

Proposal B -- Next Release:

## Proposed Release: v[X.Y.Z] - "[Title]"

[X] commits since v[last], [Y] days ago. Here's what changed:
- [1-line summary per significant commit]

**Version:** v[X.Y.Z] ([MAJOR/MINOR/PATCH] because [reasoning])
**Title:** "[descriptive title summarizing the theme of changes]"
**Release notes:**
> [2-3 sentence summary]

**Draft changelog entry:**
[full Keep a Changelog formatted entry]

Ready to cut this release? Say **yes** to proceed, or tell me what to change.

Proposal C -- Catch Up (CHANGELOG ahead of Releases):

## Proposed: Publish [N] Missing Releases

Your CHANGELOG documents v[X] through v[Y], but GitHub Releases only has v[Z].
These [N] versions need to be published:

| Version | Title | Key Changes |
|---------|-------|-------------|
| v[A] | [title] | [1-line summary] |
| v[B] | [title] | [1-line summary] |
| ... | ... | ... |

Ready to publish all [N] releases? Say **yes** to proceed, or pick specific
versions to publish.

Proposal D -- Nothing to Release:

## Release Status: Up to Date

No release needed right now. [X] commits since v[last], but they're all
[docs/chore/test] with no user-facing changes.

**Next release trigger:** When you add a feature or fix a bug, come back
and I'll draft the release for you.
Release Title Guidelines

Formatting rule: Release titles MUST use a regular hyphen-dash (-), NEVER an em dash. Example: v1.1.0 - Empire Builder not v1.1.0 -- Empire Builder. The format is always: v[X.Y.Z] - [Title]

Every release gets a human-readable title (not just "v1.2.3"). Derive it from the changes:

  • Security fixes dominant → "Security Hardening"
  • New features dominant → name the biggest feature: "GEO Optimization Support"
  • Bug fixes only → "Bug Fixes" or name the most important fix
  • Mixed → theme it: "Performance + Security Updates"
  • First release → "Initial Release" or project tagline
  • Port/migration → "[Platform] Port Complete"

4. Execute (user says yes)

When the user approves the proposal, execute immediately. Do not re-ask.

When the user says to change something, adjust the proposal and re-present.

Creating GitHub Releases modifies the live repo. The proposal IS the confirmation gate. Once the user says yes, proceed without further confirmation.

If running inside the orchestrator (github or github-audit), file generation proceeds automatically. Release creation still requires the proposal + approval unless the orchestrator explicitly pre-approves releases.

Generate/Update CHANGELOG.md
  • If missing: generate from git history and existing releases
  • If exists: add [Unreleased] section if missing, add link references at bottom,

draft new entry for unreleased commits

Create/Update release.yml
changelog:
  exclude:
    labels:
      - ignore-for-release
    authors:
      - dependabot
      - dependabot[bot]
  categories:
    - title: Breaking Changes
      labels:
        - breaking
    - title: New Features
      labels:
        - enhancement
        - feature
    - title: Bug Fixes
      labels:
        - bug
        - fix
    - title: Security
      labels:
        - security
    - title: Documentation
      labels:
        - docs
        - documentation
    - title: Other Changes
      labels:
        - "*"
Create GitHub Release (with user approval only)
gh release create v[X.Y.Z] --title "v[X.Y.Z]" --notes "[changelog entry]"
Generate Badge Markdown

Produce ready-to-paste badge row based on repo type.

Badge Selection by Repo Type

| Repo Type | Essential Badges | Optional Badges | |-----------|-----------------|----------------| | Library/Package | Version, CI, License, Downloads | Coverage, Stars | | CLI Tool | Version, CI, License | Downloads, Last Commit | | Framework | CI, Version, License, Stars | Contributors, Coverage | | API/Service | CI, Version, License | Uptime, Last Commit | | Application | CI, License, Last Commit | Contributors, Stars | | Skill/Plugin | Version, License, CI | Stars |

Version Decision Guide

| Situation | Recommended Version | |-----------|-------------------| | Initial development, API unstable | 0.1.0 | | First stable public API | 1.0.0 | | New feature, backwards compatible | x.Y.0 (bump minor) | | Bug fix only | x.x.Z (bump patch) | | Breaking API change | X.0.0 (bump major) | | Pre-release testing | x.x.x-beta.1 |

Write to Shared Data Cache

After generating release artifacts, write .github-audit/releases-data.json:

mkdir -p .github-audit
grep -qxF '.github-audit/' .gitignore 2>/dev/null || echo '.github-audit/' >> .gitignore

Include: timestamp, changelogcreated, releaseymlcreated, latestversion, changeloglatestversion, versionmatch, commitssincerelease, releaseverdict, recommendednextversion, badges array (markdown strings), versioning_scheme. Reference: github/references/shared-data-cache.md for exact schema.

Output

Every run produces exactly this sequence:

  1. Release Health Dashboard -- quick status table (always)
  2. Infrastructure fixes -- any files created/updated (brief, if needed)
  3. The Proposal -- ONE concrete yes/no proposal (always, this is the main output)

The proposal is the deliverable. Everything else is context for the proposal.

Next Step

After completing release work (CHANGELOG, badges, version proposal), always end with this handoff:

Release work complete. Next recommended step:
  github-seo -- keyword research to optimize your description and README

If running as part of the audit SOP, reference the step number: "Step 3 complete. Next skill: github-seo"

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.