hunk-extensions
Maps the `hunkdiff/extension` authoring surface for Hunk, the terminal diff viewer — hiding or reordering reviewed files, docked…
Prepares, publishes, verifies, and curates Hunk releases. Use for release metadata, benchmarks, tags, publishing, release videos, backports, or recovery.
Claude Code
$ npx -y skills add modem-dev/hunk --skill hunk-release --agent claude-code
Codex
$ npx skills add modem-dev/hunk --skill hunk-release -a codex -y
Cursor
$ npx skills add modem-dev/hunk --skill hunk-release -a cursor -y
Gemini CLI
$ npx skills add modem-dev/hunk --skill hunk-release -a gemini-cli -y
GitHub Copilot
$ npx skills add modem-dev/hunk --skill hunk-release -a github-copilot -y
OpenCode
$ npx skills add modem-dev/hunk --skill hunk-release -a opencode -y
Windsurf
$ npx skills add modem-dev/hunk --skill hunk-release -a windsurf -y
name: hunk-release description: Prepares, publishes, verifies, and curates Hunk releases. Use for release metadata, benchmarks, tags, publishing, release videos, backports, or recovery. metadata: internal: true
Maintainer-focused and source-checkout only. The tag workflow publishes `hunkdiff` plus five platform packages, attests the binary archives, and creates the GitHub release.
Record the version, tag, branch, previous tag, and expected channel:
For backports, include only commits present between the previous tag and the release tip on that maintenance branch. Inspect `.changeset/pre.json` before changing prerelease state.
Start from a clean, current release branch:
git status --short --branch git fetch origin --tags --prune git tag --sort=-version:refname | head -10 bun install --frozen-lockfile bun run changeset:status
Read the pending Changesets, then generate metadata and the published release notes:
bun run release:version bun run generate:changelog git diff -- package.json bun.lock packages CHANGELOG.md .changeset website
Verify the intended versions, consumed Changesets, and new changelog section. Do not force a bump by hand-editing generated versions.
`generate:changelog` projects `CHANGELOG.md` into `hunk.dev/changelog`. Never hand-edit its output under `website/src/content/docs/changelog/`, `website/public/changelog/`, `website/releases/dates.json`, or `website/releases/latest.json`. For a minor or major release, add the hand-authored parts to `website/releases/notes.json` under the `major.minor` key and regenerate:
The release tag does not exist yet at this point. A stable version is rendered as `Unreleased` without an install command, while an undated prerelease remains off the site entirely; the tag date is picked up by the next generation. Recorded dates in `website/releases/dates.json` are never recomputed, which is what lets `check:changelog` gate CI without Git tags.
Generate and compare the committed release benchmark:
bun run bench:release bun run bench:release:compare
A material regression blocks the release unless the user approves an `acceptedRegressions` entry following `benchmarks/release/README.md`.
Run the validation required by `AGENTS.md`, plus the release packaging checks:
bun run check:docs bun run check:changelog bun run check:pack bun run build:prebuilt:npm bun run check:prebuilt-pack bun run smoke:prebuilt-install
Commit the generated metadata and `benchmarks/release/bench-X.Y.Z.json`, then follow normal review policy. The Firecracker evidence must come from that reviewed release tip, not the pre-generation commit. Push the reviewed tip before using the manual workflow.
Run the full Firecracker install compatibility suite once from the clean reviewed release tip on a Linux x64 host with working KVM, either locally or through the manually dispatched `install-vm.yml` workflow:
set -euo pipefail mkdir -p tmp/install-vm/runs result_dir=$(mktemp -d tmp/install-vm/runs/release-XXXXXXXX) bun run test:install-vm -- --output "$result_dir" bun run ./test/cli/install-vm/validate-release-result.ts "$result_dir/result.json"
The explicit output directory prevents a failed invocation from falling back to stale evidence. The validator requires the complete checked-in scenario manifest, passing statuses, and the current checkout's source identity. A skipped result does not satisfy release validation. For the manual workflow, dispatch the full suite from the reviewed tip, download its `result.json` beneath the ignored `tmp/install-vm/` directory of a checkout at that exact tip, and run the validator there; a green job alone is insufficient because unsupported runners may use the intentional skip path. Firecracker validates Linux x64 packaging behavior, while the existing native release jobs remain responsible for macOS, Windows, and other architectures. Wait for required CI before continuing.
Immediately before tagging, fail unless the reviewed branch tip is clean and matches its remote:
set -euo pipefail branch=$(git branch --show-current) test -n "$branch" git fetch origin "$branch" --tags test "$(git rev-parse HEAD)" = "$(git rev-parse "origin/$branch")" if [ -n "$(git status --porcelain --untracked-files=all)" ]; then git status --short exit 1 fi git log -1 --format='%H %s'
Present the tag, commit, benchmark result, validation, and release highlights. After explicit confirmation:
version=X.Y.Z tag="v$version" git tag -a "$tag" -m "$tag" git push origin "$tag"
The tag push starts `.github/workflows/release-prebuilt-npm.yml`. Find only the run for that tagged commit and propagate failure:
release_sha=$(git rev-parse "$tag^{}")
run_id=$(
gh run list \
--workflow release-prebuilt-npm.yml \
--event push \
--commit "$release_sha" \
--limit 1 \
--json databaseId \
--jq '.[0].databaseId // empty'
)
test -n "$run_id"
gh run view "$Hunk is an interactive terminal diff viewer for reviewing code changes, built on OpenTUI and Pierre diffs.
Maps the `hunkdiff/extension` authoring surface for Hunk, the terminal diff viewer — hiding or reordering reviewed files, docked…
Interacts with live Hunk diff review sessions via CLI. Inspects review focus, navigates files, hunks, and exact lines, reloads…
Produces Hunk videos by driving the real TUI headlessly in a PTY, compositing captioned 1080p frames in Chromium, and encoding…
Performs AI-powered code review on Git changes using the `ocr` CLI from alibaba/open-code-review. Use when the user asks to…
Address all valid review comments on a PR for the current branch in the streamlit/streamlit repo. Covers both inline review…
Build or update the code review knowledge graph. Run this first to initialize, or let hooks keep it updated automatically.