development
claude/code-feature-parity-q003hm
claude/elegant-carson-l1menh
claude/sigit-acp-local-chat-cx6380
claude/sigit-cloud-agent-expansion-reox0a
claude/tool-permission-system
claude/zen-feynman-0u78dk
development
feature/agent-tools-multiedit-glob-todos-remember
feature/background-commands
feature/commit-coauthor-attribution
feature/headless-mode
feature/init-command
feature/load-local-model-explicitly
feature/session-persistence-compaction
feature/sigit-code-cloud
feature/subagent-tool
feature/tool-permission-system
feature/tui-repo-tabs
feature/tui-tabs
main
release/v1.3.1
name: sigit-code-release
description: Prepare and verify siGit Code releases. Use when bumping versions, checking Cargo, npm, or PyPI package metadata, validating release notes, confirming CI readiness, or assembling a release checklist for a new siGit Code version.
siGit Code Release
Use this skill when preparing a release for this repository.
Focus areas
- Keep the branded product name as
siGit Codein prose andsigitfor commands, crate names, repo paths, and package identifiers. - Verify version consistency across release surfaces, but respect which files are real sources of truth versus generated or release-time rewritten artifacts.
- Check release-facing docs such as
README.md,CHANGELOG.md, workflow notes, and package metadata for stale version references or incorrect naming. - Validate the local release path pragmatically: formatting, linting, targeted tests, and any repo-specific release checks that matter for the requested version.
Working approach
- Read the files that define the release version and distribution metadata before proposing any changes.
- Treat
Cargo.tomlas the primary release version source for the Rust crate and the PyPI package in this repository. - Check how the release workflows rewrite or derive versions before editing checked-in npm or Python metadata.
- Prefer targeted verification commands that match CI or packaging workflows already present in the repository.
- Report blockers clearly: failed checks, version mismatches, missing changelog entries, or unpublished packaging changes.
Repo-specific release rules
- Bump the crate version in
Cargo.toml. - Update the root
sigitpackage entry inCargo.lockwhen the crate version changes. - Add or update the top changelog entry in
CHANGELOG.mdfor the release being cut. - Do not treat
npm/sigit/package.json0.0.0-devas a bug by default. The npm release workflow rewrites it at publish time usingnpm/scripts/render-main-package.cjsand the release tag. - Do not add a hardcoded version to
pypi/pyproject.tomlfor normal releases. PyPI usesmaturinwithdynamic = ["version"]and derives the published package version fromCargo.toml. - Release workflows are tag-driven.
release-github.yml,release-npm.yml,release-pypi.yml,release-crates.yml, andrelease-homebrew.ymlall deriveRELEASE_VERSIONfrom av*.*.*tag or a manually supplied tag input. - The crate is published to crates.io (
release-crates.yml) and the Homebrew tap is updated (release-homebrew.yml) as part of the tag-driven flow. Per the siGit release flow, Homebrew is auto-triggered — do not dispatch it manually.
Git release flow
Releases are cut from development and shipped on main. The published tags (v1.2.0, v1.2.1) point at the main-side merge commit, never at a release branch or at development. Follow this order:
- Branch
release/v<version>offdevelopment. - Apply the version bump and changelog edits, then commit (e.g.
Release v<version>). - Merge
release/v<version>back intodevelopment. - Merge
developmentintomain(commit message:Merge development into main for v<version> release). - Tag
v<version>on thatmainmerge commit, then pushmainand the tag.
Pushing the v*.*.* tag is what fires every release workflow, so create and push it only after the merge into main has landed. Do not commit, tag, or push until the user explicitly asks — confirm the version and that they want the release to go out first.
Typical files to inspect
Cargo.tomlCargo.lockCHANGELOG.mdREADME.mdnpm/sigit/package.jsonnpm/scripts/render-main-package.cjsnpm/pypi/.github/workflows/(release-github.yml,release-npm.yml,release-pypi.yml,release-crates.yml,release-homebrew.yml)
Release checklist
- Version bump is applied everywhere it needs to be.
Cargo.tomland the root crate entry inCargo.lockmatch.CHANGELOG.mdhas a correct top entry for the new release.npm/sigit/package.jsonis left at0.0.0-devunless the packaging flow itself changed.pypi/pyproject.tomlstill uses dynamic versioning unless there is a deliberate packaging change.- Release workflows still derive their version from the tag as expected.
- Git flow followed: bump committed on
release/v<version>, merged back todevelopment, thendevelopmentmerged intomain, withv<version>tagged on themainmerge commit. - Release notes or changelog entries match the actual changes.
- CI-equivalent local checks pass for the relevant platform or target.
- Package names, install commands, and branding stay consistent.
- Any known release limitations are called out explicitly.