Hotfix
Nyann (ငြမ်း) is Burmese for scaffolding. Nyann is a Claude Code plugin that sets up and maintains project governance.
npx -y skills add thettwe/nyann --skill hotfixAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 6 stars6 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Set up the branch topology for a patch release against a previously tagged version: ensures release/<major>.<minor> exists from the source tag, then creates hotfix/<slug> off it. TRIGGER when the user says "hotfix v1.0.0", "patch the release", "I need to fix something in the v2 line", "create a hotfix branch", "/nyann:hotfix". Match phrases like "fix this for the previous release" or "backport this fix to v1.0". Do NOT trigger on "fix this bug" without a target tag — that's a regular feature branch via `/nyann:branch fix <slug>`. Do NOT trigger on "release a hotfix" if the user already has the branch set up — they're after `/nyann:release` directly.
SKILL.md
3.7 KB, as published. Nobody here has run it
hotfix
Wraps bin/hotfix.sh. Creates the two branches a patch-release
flow needs:
release/<major>.<minor>— long-lived, branched from the source tag. Idempotent: reused if it already exists. Future patches on the same minor go on the same branch.hotfix/<slug>— short-lived, branched off the release branch. The user commits the actual fix here.
After this skill: the user makes the fix, commits, then runs
/nyann:release from the hotfix branch.
1. Resolve the source tag
Before invoking, confirm the source tag with the user:
- "I want to patch v1.2.0" →
--from v1.2.0. - "I want to fix something in the previous minor" → ask which tag exactly.
- If they said "patch the latest release" without naming a tag,
list
git tag --sort=-v:refname | head -5and ask.
2. Pick a slug
Ask: "what's the change?" Convert their answer to a slug:
- "Fix the broken auth callback" →
fix-auth-callback - "Patch the SQLi in the user-search endpoint" →
patch-sqli-user-search
The script enforces lowercase + alphanumeric + hyphen; it'll reject anything else.
3. Invoke
bin/hotfix.sh --target <cwd> --from <tag> --slug <slug> --checkout
--checkout switches to the hotfix branch immediately. Skip it
when the user has uncommitted work in the current branch (the
script will warn about a dirty tree if checkout fails — don't
let it half-finish).
4. Hand back the next-steps
The output JSON includes a next_steps[] array with the exact
commands to run next:
- (skip if --checkout was used)
git checkout hotfix/<slug> - Make the fix, commit it (use
/nyann:commitfor a Conventional Commits message). - Merge the hotfix into the release branch:
git checkout release/<m>.<n> && git merge --no-ff hotfix/<slug>. - Run
/nyann:release --version <patch> --pushfrom the release branch. The script suggests the patch version (source-tag + 1 in the patch slot) — confirm with the user before passing it through.release.shoperates on the current branch (HEAD), so the merge step in (3) is what puts the right commits on the lineage that gets tagged.
5. After the release
- The release tag (e.g.
v1.2.4) is added onrelease/1.2. - The release branch should be merged back into
mainso the fix isn't lost on the next minor cut. nyann doesn't do this for the user; suggestgit checkout main && git merge --no-ff release/1.2 && git push. - Consider deleting the
hotfix/<slug>branch via/nyann:cleanup-branchesonce the merge lands.
When to hand off
- "Just create a feature branch" →
/nyann:branch fix <slug>(no release-branch ceremony). - "I already have the hotfix branch — just release it" → merge it
into the release branch first (
git checkout <release> && git merge --no-ff <hotfix>), then/nyann:release --version <patch>from that branch. - "Pre-release, not patch" →
/nyann:release --version <stable>-rc.1on the regular feature branch; release.sh's prerelease detection handles it.