acquire-codebase-knowl…
Use this skill when the user explicitly asks to map, document, or onboard into an existing codebase. Trigger for prompts like "map this codebase", "document…
Guides IA through releasing a new version of a GitHub library end-to-end. Handles SemVer versioning and Keep a Changelog formatting automatically.
$ npx -y skills add github/awesome-copilot --skill github-release --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/github-releaseContext preview
The summary Claude sees to decide when to auto-load this skill.
Guides IA through releasing a new version of a GitHub library end-to-end. Handles SemVer versioning and Keep a Changelog formatting automatically.
name: github-release description: > Guides IA through releasing a new version of a GitHub library end-to-end. Handles SemVer versioning and Keep a Changelog formatting automatically. compatibility: "requires: gh CLI and git"
This skill automates the full release workflow for a single-package GitHub repository, from analysis through changelog authoring and PR creation. It relies exclusively on `gh` (GitHub CLI) and `git` no other tools needed.
Steps 1 - 4 are **read-only reconnaissance** nothing is written to the repo until Step 5, once the version number is confirmed.
Use this skill whenever the user wants to cut a new release, publish a new version, bump a version, create a release branch, generate a changelog, or open a release PR on a GitHub repository. Trigger even if the user says something casual like "let's ship a new version" or "time to release".
---
Examples below include both Bash and PowerShell variants; Windows users should prefer the PowerShell blocks.
Before starting, verify the environment:
gh auth status # must be authenticated gh repo view --json nameWithOwner # must be inside a GitHub repo git status # working tree should be clean
If any check fails, stop and tell the user what to fix before continuing.
Then ask the user one question:
> *"Which directory contains your library's public-facing source code? > (e.g. `src/`, `lib/`, `pkg/` - used to focus the diff on what consumers > actually see. Press Enter to scan the whole repo.)"*
Store the answer as `PUBLIC_PATH`. If empty, `PUBLIC_PATH` is `.` (repo root). Exclude these paths from all diffs regardless: `tests/`, `test/`, `spec/`, `__tests__/`, `docs/`, `*.lock`, `*-lock.json`, `*.sum`, generated files (files with a "do not edit" header comment), and build artefacts.
---
Work through every step in order. Show the user what command you're about to run and its output. Pause and ask for confirmation only when explicitly noted.
---
git checkout main git pull origin main
Stay on `main` for now. The release branch is created in Step 5, after the version is confirmed.
---
> **Why not `gh release list`?** GitHub Releases are an optional layer on top of Git > tags. Many repos tag releases with `git tag` without ever creating a GitHub Release, > so `gh release list` can return empty even when version tags exist. Reading tags > directly from git is the reliable source of truth.
# Fetch all tags from remote to ensure local view is current git fetch --tags # Find the latest version tag, sorted semantically # --sort=-version:refname handles 1.10.0 > 1.9.0 correctly (unlike alphabetical) PREV_TAG=$(git tag --sort=-version:refname | grep -E '^v?[0-9]+\.[0-9]+\.[0-9]+' | head -1) echo "Latest tag: $PREV_TAG"
# Fetch all tags from remote to ensure local view is current
git fetch --tags
# Find the latest version tag, sorted semantically
# --sort=-version:refname handles 1.10.0 > 1.9.0 correctly (unlike alphabetical)
$prevTag = git tag --sort='-version:refname' | `
Select-String '^[vV]?\d+\.\d+\.\d+' | `
Select-Object -First 1 -ExpandProperty Line
if ($prevTag) {
$prevSha = git rev-list -n 1 $prevTag
} else {
$prevSha = git rev-list --max-parents=0 HEAD
}
Write-Output "Latest tag: $prevTag"Then verify the tag exists on the remote (not just locally):
git ls-remote --tags origin | grep "refs/tags/$PREV_TAG$"
If the remote check returns nothing, warn the user that the tag appears to be local-only and hasn't been pushed - they may want to push it before continuing.
when doing arithmetic; preserve it when naming things.
first commit, and default the new version to `1.0.0` (skip Step 4 versioning logic; go straight to Step 5).
`git rev-list --max-parents=0 HEAD` and warn the user.
PREV_SHA=$(git rev-list -n 1 "$PREV_TAG" 2>/dev/null || git rev-list --max-parents=0 HEAD)
---
This step uses **two complementary signals**. The code diff is the primary source of truth; commit messages provide supporting context about intent.
# Focused diff on the public source path, excluding noise git diff "$PREV_SHA"..HEAD -- "$PUBLIC_PATH" \ ':(exclude)tests/' ':(exclude)test/' ':(exclude)spec/' \ ':(exclude)__tests__/' ':(exclude)docs/' \ ':(exclude)*.lock' ':(exclude)*-lock.json' ':(exclude)*.sum'
# Focused diff on the public source path, excluding noise git diff "$($prevSha)..HEAD" -- $publicPath ` ':(exclude)tests/' ':(exclude)test/' ':(exclude)spec/' ` ':(exclude)__tests__/' ':(exclude)docs/' ` ':(exclude)*.lock' ':(exclude)*-lock.json' ':(exclude)*.sum'
Read the full diff output. For each changed file, identify:
1. **Removed symbols** - functions, classes, methods, constants, exported names that existed before and are now gone. ? Strong signal for MAJOR. 2. **Changed signatures** - functions that exist in both versions but with different parameters, return types, or thrown errors. ? Strong signal for MAJOR. 3. **New exported symbols** - public functions, classes, constants that didn't exist before. ? Signal for MINOR. 4. **Internal-only changes** - modifications that don't touch any public interface (private helpers, unexported functions, algorithm internals). ? PATCH. 5. **Bug fixes** - corrections to logic that was provably wrong (e.g. off-by-one, null check, wrong condition), without changing t
A community-created collection of custom agents, instructions, skills, hooks, workflows, and plugins to supercharge your GitHub Copilot experience.
Repo: github/awesome-copilot
Use this skill when the user explicitly asks to map, document, or onboard into an existing codebase. Trigger for prompts like "map this codebase", "document…
Run the AgentRC readiness assessment on the current repository and produce a static HTML dashboard at reports/index.html. Wraps `npx github:microsoft/agentrc…
Generate tailored AI agent instruction files via AgentRC instructions command. Produces .github/copilot-instructions.md (default, recommended for Copilot in VS…
Help the user pick, write, or apply an AgentRC policy. Policies customise readiness scoring by disabling irrelevant checks, overriding impact/level, setting…
Use this skill when the user shares ad campaign performance data and asks what to cut, scale, or test. Trigger for prompts like "analyze my ad campaigns",…
Add educational comments to the file specified, or prompt asking for file to comment if one is not provided.