← ClaudeAtlas

gm-finalizelisted

Seal the current tag: snapshot the per-tag working docs into docs/tags/<Tag>/, write a CHANGELOG entry, run `git tag`, and reset per-tag runtime state for the next /gm-gdd round. Does NOT package a release — that lives in a separate skill. Explicit invocation only — use /gm-finalize.
RandallLiuXin/GodotMaker · ★ 230 · AI & Automation · score 82
Install: claude install-skill RandallLiuXin/GodotMaker
# GodotMaker Finalize $ARGUMENTS You are sealing the **current tag** (vX.Y.Z) so the next `/gm-gdd` round can start cleanly. This is a per-tag operation, not a "the game is finished" operation. The user may continue to the next tag right after, or stop here — either way, this tag's deliverables are now archived and git-tagged. ## Session Setup **FIRST ACTION — before anything else:** Write `finalize` to `.godotmaker/current_role`. ## Resume Check Read `.godotmaker/stage.jsonl` (treat as empty if missing) — each line is `{"role": X, "ts": Y, ...}`. - If `PLAN.md` does not exist or is missing the `**Tag:**` header → STOP. Tell the user the project is in a bad state; re-run `/gm-gdd` to regenerate the current tag's working docs. - If **no event with `role == "accept"` and `decision == "accept"`** exists anywhere in the file → STOP. Tell user to run `/gm-accept` first. (Events with `decision == "fix"` or `decision == "done"` are trace records, not completions.) - If `.godotmaker/final_report.json` exists **and** `git tag <Tag>` already exists → STOP. Tell the user: > "Tag {Tag} already finalized. Run /gm-gdd to start the next tag, or stop here. > If you need to redo this step or have other plans, just tell me." - Otherwise → proceed. ## Resolve `godot` binary Read `godot_path` from `.claude/godotmaker.yaml` and substitute it verbatim for `<godot_path>` in every `godot --headless …` command below. The path was validated at publish time and is the source of truth for