Hotfix logo

Hotfix

CommunityPopular
Donchitos
hotfix

Emergency fix bypassing normal sprint process — hotfix branch, approvals tracked, backport verified, full audit trail.

Overview

PublisherDonchitos
RepositoryClaude-Code-Game-Studios
Skill namehotfix
Stars
25.8K
Forks
3.7K
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by Donchitos on GitHub. Read the source before you install it.

Installation

Install the Hotfix AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/Donchitos/Claude-Code-Game-Studios/tree/main/.claude/skills/hotfix
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/Donchitos/Claude-Code-Game-Studios.git /tmp/Claude-Code-Game-Studios
mkdir -p .claude/skills
cp -r /tmp/Claude-Code-Game-Studios/.claude/skills/hotfix .claude/skills/hotfix
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Hotfix in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Hotfix on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Hotfix is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Explicit invocation only: This skill should only run when the user explicitly requests it with /hotfix. Do not auto-invoke based on context matching.

Phase 1: Assess Severity

Read the bug description or ID. Assess severity on /bug-triage's scale:

  • S1 (Critical): Crash, data loss, or complete feature failure — the game cannot proceed (rate a security issue by that impact)
  • S2 (High): Major feature broken, but the game is still playable
  • S3 or lower: Feature degraded with a workaround, or cosmetic — normal bug fix workflow applies

Confirm with AskUserQuestion:

  • Prompt: "I've assessed this as [assessed severity] — [brief rationale]. Confirm severity to proceed:"
  • Options:
    • [A] S1 (Critical) — crash, data loss, or complete feature failure
    • [B] S2 (High) — major feature broken, game still playable
    • [C] S3 or lower — redirect to normal bug fix workflow

If [C]: stop. Verdict: REDIRECTED — use the normal bug fix workflow for S3 and below.


Phase 2: Create Hotfix Record

Draft the hotfix record:

markdown
## Hotfix: [Short Description]
Date: [Date]
Severity: [S1/S2]
Reporter: [Who found it]
Status: IN PROGRESS

### Problem
[Clear description of what is broken and the player impact]

### Root Cause
[To be filled during investigation]

### Fix
[To be filled during implementation]

### Testing
[What was tested and how]

### Approvals
- [ ] Fix reviewed by lead-programmer
- [ ] Regression test passed (qa-tester)
- [ ] Release approved (producer)

### Rollback Plan
[How to revert if the fix causes new issues]

Ask: "May I write this to production/hotfixes/hotfix-[date]-[short-name].md?"

If yes, write the file, creating the directory if needed.


Phase 3: Create Hotfix Branch

Check whether this is a git repository:

Bash: git rev-parse --is-inside-work-tree 2>/dev/null

If this command fails or returns empty: note "Not a git repository — create the branch manually." and skip branch creation.

[base-ref] is the release the bug is in. Releases are tags on main (the trunk), so it is that release's tag (git tag --list; the newest is usually the live build) — or its release/* branch, if one was cut to stabilise that release (git branch --list 'release/*'). Never the head of main: it may carry work that has not shipped.

If the check passes, use AskUserQuestion before creating the branch:

  • Prompt: "Ready to create hotfix branch 'hotfix/[short-name]' from [base-ref]?"
  • Options:
    • [A] Yes — create branch
    • [B] Use a different base ref — I'll specify it
    • [C] Skip — I'll create the branch myself

Only run git checkout -b hotfix/[short-name] [base-ref] if user selects [A]. If [B]: ask the user for the base ref, then run the command with that ref. If [C]: skip branch creation and proceed to Phase 4.


Phase 4: Investigate and Propose

Find the root cause. Draft the minimal fix: which files change, what the change does, and what it deliberately leaves alone. Do NOT refactor, clean up, or add features alongside the hotfix.

Present the root cause and proposed fix, then ask: "May I implement this fix?" Do not modify any code before this approval — an emergency flow earns its audit trail by approving the change before it exists, not after.


Phase 4b: Implement (only after approval)

Implement the approved minimal change. Validate the fix by running targeted tests for the affected system, with commands.test from project.yaml (narrowed to the affected suite where the runner allows) — never a runner line written from memory, which drops the flags the engine needs (gdUnit4 hangs without --remote-debug tcp://127.0.0.1:0). Check for regressions in adjacent systems. If commands.test is unset, or no test covers the affected system, say so and record Tests: NOT RUN — [reason] in the hotfix record's Testing section; the Phase 5b QA gate then carries the verification.

Update the hotfix record with root cause, fix details, and test results.


Phase 5: Collect Approvals

Use the Agent tool to request sign-off in parallel:

  • subagent_type: lead-programmer — Review the fix for correctness and side effects
  • subagent_type: qa-tester — Run targeted regression tests on the affected system
  • subagent_type: producer — Approve deployment timing and communication plan

All three must return APPROVE before proceeding. If any returns CONCERNS or REJECT, do not deploy — surface the issue and resolve it first.


Phase 5b: QA Re-Entry Gate

After approvals, determine the QA scope required before deploying the hotfix. Spawn qa-lead via Agent with:

  • The hotfix description and affected system
  • The regression test results from Phase 5
  • A list of all systems that touch the changed files (use Grep to find callers)

Ask qa-lead: Is a full smoke check sufficient, or does this fix require a targeted team-qa pass?

Apply the verdict:

  • Smoke check sufficient — run /smoke-check against the hotfix build. If PASS or PASS WITH WARNINGS, proceed to Phase 6 (carry the warnings into the hotfix record). If FAIL, do not deploy: return to Phase 4 with the failing checks, get the revised fix approved there, implement it (Phase 4b), then re-run Phase 5's approvals — qa-tester's regression run among them — and this QA step. A hotfix that breaks the smoke suite is a second incident, not a fix.
  • Targeted QA pass required — run /team-qa feature: [affected-system] scoped to the changed system only. If QA returns APPROVED or APPROVED WITH CONDITIONS, proceed to Phase 6; if NOT APPROVED or BLOCKED, handle it as a smoke-check FAIL above.
  • Full QA required — S1 fixes that touch core systems may require a full /team-qa sprint. This delays deployment but prevents a bad patch.

If the QA step returns NOT ASSESSED, the gate did not run — treat it as unmet, not as met. /smoke-check returns it when the suite never executed and /team-qa when a cycle produced no executed evidence. A NOT ASSESSED result is not a pass — from either skill — and under time pressure the permissive reading is the one that will feel reasonable, which is exactly why it is written down here. Either obtain the missing result — the verdict names what would make it runnable — or take the decision to the producer explicitly, as a decision to deploy an unverified hotfix rather than as a gate that quietly cleared. Log that decision — who made it, and why — in the hotfix record's Testing section.

Do not skip this gate. A hotfix that breaks something else is worse than the original bug.


Phase 6: Update Bug Status and Deploy

STOP — deployment requires explicit approval, unconditionally. Merging a hotfix and tagging the patch release is the one irreversible act in this skill, so it is gated even though branch creation (reversible) already is. Before any merge, tag, or deploy, use AskUserQuestion:

  • Prompt: "Hotfix validated and approved. Merge to [targets], tag [patch tag] and deploy?" — [targets] is main, plus the release's release/* branch only if it has one
  • Options: [A] Yes — merge and deploy / [B] Merge to main only — hold the release / [C] Stop here

This holds regardless of modes.automation, including autonomous. An emergency process is exactly where an unreviewed irreversible step is most likely and least recoverable.

On [A]: merge the hotfix branch to main, and to the release's release/* branch if it has one; tag the patch release (the next patch version, e.g. v1.2.0 → v1.2.1) on the fixed build — the release/* branch head if there is one, else the hotfix branch head — and deploy that tag, not the head of main. On [B]: merge to main only — no release-branch merge, no tag, no deploy. On [C]: stop — no merge, no tag, no deploy and no bug-file update; the hotfix record's Status stays IN PROGRESS, and say so.

Backport is not verified unless you verify it. The frontmatter advertises "backport verified". After merging, confirm the fix is present on main (the trunk) — and on the release's release/* branch, if it has one — and state the result. An unbackported hotfix means the bug returns in the next release tagged from main, which is the single most common hotfix regression.

Update the original bug file if one exists — find it in production/qa/bugs/ by its number, as /bug-report verify does. Ask first: "May I update production/qa/bugs/[bug file] with the fix record below and set its Status to Fixed — Pending Verification?"

markdown
## Fix Record
**Fixed in**: hotfix/[branch-name] — [commit hash or description]
**Fixed date**: [date]
**Status**: Fixed — Pending Verification

Set **Status**: Fixed — Pending Verification in the bug file header.

Output a deployment summary. Its title follows the Phase 6 answer — Hotfix Deployed: [short-name] on [A], Hotfix Merged to main — release held: [short-name] on [B] — and on [B] the closing line omits the Tag, since none was created:

## Hotfix Deployed: [short-name]

**Severity**: [S1/S2]
**Root cause**: [one line]
**Fix**: [one line]
**QA gate**: [Smoke check PASS / Team-QA APPROVED / NOT ASSESSED — [why, and whose
             explicit decision it was to deploy anyway]]
**Approvals**: lead-programmer ✓ / qa-tester ✓ / producer ✓
**Backport**: [verified present on `main` (and the `release/*` branch, if the
              release has one) — or NOT VERIFIED, with what was not checked]
**Rollback plan**: [from Phase 2 record]

Merge to: [targets] · Tag: [patch tag]
Next: /bug-report verify [BUG-ID] after deploy to confirm resolution

Rules

  • Hotfixes must be the MINIMUM change to fix the issue — no cleanup, no refactoring
  • Every hotfix must have a rollback plan documented before deployment
  • A hotfix branch starts from the release it fixes — its tag, or its release/* branch if one exists — and merges to main (the trunk), and to that release/* branch only if it exists; the patch release is tagged
  • All hotfixes require a post-incident review within 48 hours
  • If the fix is complex enough to need more than 4 hours, escalate to technical-director

Phase 7: Post-Deploy Verification

After deploying, run /bug-report verify [BUG-ID] to confirm the fix resolved the issue in the deployed build.

If VERIFIED FIXED: run /bug-report close [BUG-ID] to formally close it. If STILL PRESENT: the hotfix failed — immediately re-open, assess rollback, and escalate. If CANNOT VERIFY: the fix is unconfirmed — do not close the bug; play its reproduction steps in the deployed build, then run /bug-report verify [BUG-ID] again and answer its manual-play question to settle it.

Schedule a post-incident review within 48 hours. /retrospective reviews a sprint or milestone, not an incident: record the review with .claude/docs/templates/incident-response.md, and raise its lessons at the next /retrospective.

Use AskUserQuestion:

  • Prompt: "Hotfix complete. What's the next step?"
  • Options:
    • [A] Run /smoke-check to verify the fix
    • [B] Run /patch-notes to document this hotfix
    • [C] Stop here

Frequently asked questions

What does the Hotfix AI skill do?

Emergency fix bypassing normal sprint process — hotfix branch, approvals tracked, backport verified, full audit trail.

Why use Hotfix on TypingMind?

Because you install it once and use it with any model. Hotfix is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Hotfix in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/Donchitos/Claude-Code-Game-Studios/tree/main/.claude/skills/hotfix. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Hotfix?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Hotfix?

As many as you like. As long as a model supports skills, you can use Hotfix with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Hotfix AI skill free?

Yes. It is published on GitHub by Donchitos under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇