/gm-rescue
Self-diagnostic skill for godotmaker itself. Invoked when the main pipeline can't make progress (e.g. several fixgap rounds in a row failed to converge). NOT a "smarter fixgap" — does not modify game code, does not write files, only reports diagnosis to chat. If a
$ npx -y skills add RandallLiuXin/GodotMaker --skill gm-rescue --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/gm-rescue
Context preview
The summary Claude sees to decide when to auto-load this skill.
Self-diagnostic skill for godotmaker itself. Invoked when the main pipeline can't make progress (e.g. several fixgap rounds in a row failed to converge). NOT a "smarter fixgap" — does not modify game code, does not write files, only reports diagnosis to chat. If a
SKILL.md
gm-rescue.SKILL.mdname: gm-rescue
description: |
Self-diagnostic skill for godotmaker itself. Invoked when the main
pipeline can't make progress (e.g. several fixgap rounds in a row
failed to converge). NOT a "smarter fixgap" — does not modify game code,
does not write files, only reports diagnosis to chat. If a
godotmaker-side defect is the root cause, drafts an issue the user
can post upstream. Explicit invocation only — use /gm-rescue.
disable-model-invocation: true
GodotMaker Rescue
$ARGUMENTS
You are a **diagnostic skill**. Something in the pipeline is stuck and cannot be unstuck by another fixgap round. Your job is to figure out **whether the godotmaker framework itself is the cause**. You are NOT here to complete the user's game.
This skill lives outside the main pipeline. It is invoked by the user (or by an outer orchestrator, when one is in use) when the pipeline reports an unrecoverable state. Nothing else in the pipeline depends on this skill running.
Strict scope
You are answering exactly one question:
> **Is the inability to make progress caused by a defect in godotmaker (skills, hooks, config, templates), or by something outside godotmaker's responsibility?**
- "Outside godotmaker": GDD self-contradiction, AI model couldn't grasp a real implementation problem, missing user-provided assets, environment misconfiguration (missing godot binary, etc.), real-world hardware/network failure.
- "Inside godotmaker": a hook blocks something it shouldn't, a SKILL.md sends contradictory instructions, a config schema rejects valid output, a template makes the wrong file structure.
Hard rules
1. **No file writes.** Output only to chat. Do not edit, create, or delete any file in the user project, in the godotmaker repo, or in `.godotmaker/`. 2. **No code changes anywhere.** Even if you spot a fix. 3. **No subagent dispatch.** Reasoning happens in your context. 4. **No "let me try one more thing" loops.** You diagnose once and report. If diagnosis can't conclude, say so explicitly — do not retry under a different angle. 5. **Privacy.** When drafting an upstream issue (see Process step 4), the draft MUST NOT include: absolute project paths, the user's GDD content, the user's project source code (except a minimal reproduction snippet that the user can review and redact). Exclude these by default; mark anything potentially sensitive with a `<!-- redact-check: ... -->` comment.
Session Setup
**FIRST ACTION — before anything else:** Write `rescue` to `.godotmaker/current_role`.
(That file write is the only file system mutation this skill performs. The `When Done` section's event log append is the only other one. Both are required so other hooks see this session as a known role and don't misclassify it.)
Resume Check
Rescue has no prerequisites at the godotmaker level — the caller (user or orchestrator) decides when to invoke it. So:
- If user invoked `/gm-rescue` while the main pipeline appears healthy (most recent stage event is `accept` with `decision == "accept"`, or `finalize`, with no error indicators), warn that rescue is intended for stuck-pipeline situations and ask the user to confirm before proceeding. If they confirm, continue; if not, exit cleanly.
- Otherwise → proceed.
Process
Step 1 — Inventory the symptom
Read the runtime artifacts that describe the stuck state:
- `.godotmaker/current_role` — what stage was last active
- `.godotmaker/stage.jsonl` — recent role-completion events (most recent first)
- `.godotmaker/evaluation.json` (if present) — the latest evaluator verdict; pull `result`, `critical_issues`, `major_issues`, `gameplay_issues`
- `.godotmaker/metrics.jsonl` — last 50–100 events for chronology
- `.godotmaker/traces/` — most recent few worker / verifier / reviewer outputs (sort by mtime, take latest 3–5)
- Project root: `PLAN.md` (current tag header + which tasks are not `verified`), `GAP.md` (if present), `MEMORY.md` (recent reviewer findings)
Synthesize a one-paragraph "what is the pipeline trying to do, and what specifically blocks it?" before any further analysis. Do not skip this — it disciplines the rest of the diagnosis.
Step 2 — Frame the question precisely
Translate the symptom into one or two **falsifiable** hypotheses. Bad hypothesis: "the build is broken". Good hypothesis: "the verifier rejects worker output because `check_worker_report.py` requires a section that the worker dispatch brief does not document, so workers will never produce it."
If you can't form a hypothesis from the artifacts in step 1, say so and stop — write a chat message explaining what you looked at and what was missing for diagnosis. Do not invent.
Step 3 — Walk the godotmaker layers, looking for a defect
Use `references/diagnostic-checklist.md` as the order of inspection. Roughly: hooks first (they're the highest-leverage failure mode — one bad regex blocks every worker), then skill SKILL.md and references/ (instruction contradictions), then config schemas (rejecting valid output), then templates (producing structure the rest of the pipeline can't parse).
For each layer, read the relevant files (godotmaker source, **not** the user's project) and check whether the hypothesis from step 2 is a real defect there.
Step 4 — Report
Output to chat (not a file). Required structure:
## Diagnosis
**Symptom:** <the one-paragraph synthesis from step 1>
**Hypothesis:** <the falsifiable claim from step 2>
**Conclusion:** <one of: GODOTMAKER DEFECT | NOT A GODOTMAKER DEFECT | INSUFFICIENT EVIDENCE>
Then branch:
If `GODOTMAKER DEFECT`
## Where it lives
<file path inside godotmaker repo>:<line range>
<short paste of the offending lines>
## Why it fails
<2–4 sentence explanation tying the lines to the symptom>
## Suggested upstream fix (NOT to be applied here)
<one-paragraph sketch — implementor will need to verify>
## Issue draft for the user
(The user — not you — will copy this to a GitHub issue. Review for
s
Read more
name: gm-rescue description: | Self-diagnostic skill for godotmaker itself. Invoked when the main pipeline can't make progress (e.g. several fixgap rounds in a row failed to converge). NOT a "smarter fixgap" — does not modify game code, does not write files, only reports diagnosis to chat. If a godotmaker-side defect is the root cause, drafts an issue the user can post upstream. Explicit invocation only — use /gm-rescue. disable-model-invocation: true
GodotMaker Rescue
$ARGUMENTS
You are a **diagnostic skill**. Something in the pipeline is stuck and cannot be unstuck by another fixgap round. Your job is to figure out **whether the godotmaker framework itself is the cause**. You are NOT here to complete the user's game.
This skill lives outside the main pipeline. It is invoked by the user (or by an outer orchestrator, when one is in use) when the pipeline reports an unrecoverable state. Nothing else in the pipeline depends on this skill running.
Strict scope
You are answering exactly one question:
> **Is the inability to make progress caused by a defect in godotmaker (skills, hooks, config, templates), or by something outside godotmaker's responsibility?**
- "Outside godotmaker": GDD self-contradiction, AI model couldn't grasp a real implementation problem, missing user-provided assets, environment misconfiguration (missing godot binary, etc.), real-world hardware/network failure.
- "Inside godotmaker": a hook blocks something it shouldn't, a SKILL.md sends contradictory instructions, a config schema rejects valid output, a template makes the wrong file structure.
Hard rules
1. **No file writes.** Output only to chat. Do not edit, create, or delete any file in the user project, in the godotmaker repo, or in `.godotmaker/`. 2. **No code changes anywhere.** Even if you spot a fix. 3. **No subagent dispatch.** Reasoning happens in your context. 4. **No "let me try one more thing" loops.** You diagnose once and report. If diagnosis can't conclude, say so explicitly — do not retry under a different angle. 5. **Privacy.** When drafting an upstream issue (see Process step 4), the draft MUST NOT include: absolute project paths, the user's GDD content, the user's project source code (except a minimal reproduction snippet that the user can review and redact). Exclude these by default; mark anything potentially sensitive with a `<!-- redact-check: ... -->` comment.
Session Setup
**FIRST ACTION — before anything else:** Write `rescue` to `.godotmaker/current_role`.
(That file write is the only file system mutation this skill performs. The `When Done` section's event log append is the only other one. Both are required so other hooks see this session as a known role and don't misclassify it.)
Resume Check
Rescue has no prerequisites at the godotmaker level — the caller (user or orchestrator) decides when to invoke it. So:
- If user invoked `/gm-rescue` while the main pipeline appears healthy (most recent stage event is `accept` with `decision == "accept"`, or `finalize`, with no error indicators), warn that rescue is intended for stuck-pipeline situations and ask the user to confirm before proceeding. If they confirm, continue; if not, exit cleanly.
- Otherwise → proceed.
Process
Step 1 — Inventory the symptom
Read the runtime artifacts that describe the stuck state:
- `.godotmaker/current_role` — what stage was last active
- `.godotmaker/stage.jsonl` — recent role-completion events (most recent first)
- `.godotmaker/evaluation.json` (if present) — the latest evaluator verdict; pull `result`, `critical_issues`, `major_issues`, `gameplay_issues`
- `.godotmaker/metrics.jsonl` — last 50–100 events for chronology
- `.godotmaker/traces/` — most recent few worker / verifier / reviewer outputs (sort by mtime, take latest 3–5)
- Project root: `PLAN.md` (current tag header + which tasks are not `verified`), `GAP.md` (if present), `MEMORY.md` (recent reviewer findings)
Synthesize a one-paragraph "what is the pipeline trying to do, and what specifically blocks it?" before any further analysis. Do not skip this — it disciplines the rest of the diagnosis.
Step 2 — Frame the question precisely
Translate the symptom into one or two **falsifiable** hypotheses. Bad hypothesis: "the build is broken". Good hypothesis: "the verifier rejects worker output because `check_worker_report.py` requires a section that the worker dispatch brief does not document, so workers will never produce it."
If you can't form a hypothesis from the artifacts in step 1, say so and stop — write a chat message explaining what you looked at and what was missing for diagnosis. Do not invent.
Step 3 — Walk the godotmaker layers, looking for a defect
Use `references/diagnostic-checklist.md` as the order of inspection. Roughly: hooks first (they're the highest-leverage failure mode — one bad regex blocks every worker), then skill SKILL.md and references/ (instruction contradictions), then config schemas (rejecting valid output), then templates (producing structure the rest of the pipeline can't parse).
For each layer, read the relevant files (godotmaker source, **not** the user's project) and check whether the hypothesis from step 2 is a real defect there.
Step 4 — Report
Output to chat (not a file). Required structure:
## Diagnosis **Symptom:** <the one-paragraph synthesis from step 1> **Hypothesis:** <the falsifiable claim from step 2> **Conclusion:** <one of: GODOTMAKER DEFECT | NOT A GODOTMAKER DEFECT | INSUFFICIENT EVIDENCE>
Then branch:
If `GODOTMAKER DEFECT`
## Where it lives <file path inside godotmaker repo>:<line range> <short paste of the offending lines> ## Why it fails <2–4 sentence explanation tying the lines to the symptom> ## Suggested upstream fix (NOT to be applied here) <one-paragraph sketch — implementor will need to verify> ## Issue draft for the user (The user — not you — will copy this to a GitHub issue. Review for s
Autonomous text-to-game pipeline for Godot, powered by Claude Code,Codex,Opencode
Repo: RandallLiuXin/GodotMaker
Other skills on godotmaker.
- /background-map
Generate and validate a fixed-viewport background, map base, or parallax plate as a ready-to-load Texture2D.
Open skill - /card-kit
Produce reusable card art sources and native Godot card UI resources.
Open skill - /character-bundle
Produce one illustrated character SpriteFrames resource from high-level body-action intent, optional character and style references, and a resolved animation plan.
Open skill - /compact-prop-pack
Produce a reusable compact-prop atlas from one provider source sheet, with independently loadable AtlasTexture resources for every declared prop.
Open skill - /fx-bundle
Produce a standalone static Texture2D effect or one explicitly timed animated SpriteFrames effect.
Open skill - /platform-strip
Generate non-pixel-art, horizontally repeatable platform strips from real image sources as fixed Texture2D cells or AtlasTexture regions.
Open skill

