mirror of
https://github.com/Donchitos/Claude-Code-Game-Studios.git
synced 2026-10-16 01:37:05 +00:00
Release 1.1.2 — the default path works end to end
Fix release for 1.1.1: the minimal path end to end, engine commands that run on Godot, Unity and Unreal, hook warnings you can see, and verdicts that say when they could not check. Details in CHANGELOG.md; upgrade steps in UPGRADING.md (v1.1.1 → v1.1.2). Fixes #67 Fixes #131 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WuJn2FdynEybfL5KC697nJ
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
7ed2c3e9c4
commit
b21fa0f7f2
@@ -3,10 +3,10 @@ name: launch-checklist
|
||||
description: "Launch readiness across every department: code, content, store, marketing, community, infrastructure, legal, go/no-go sign-offs."
|
||||
argument-hint: "[launch-date or 'dry-run']"
|
||||
user-invocable: true
|
||||
allowed-tools: Read, Glob, Grep, Write, Bash(bash "*/.claude/skills/launch-checklist/../../hooks/yaml-helper.sh" resolve_config *)
|
||||
allowed-tools: Read, Glob, Grep, Write, AskUserQuestion, Bash(bash "*/.claude/skills/launch-checklist/../../hooks/yaml-helper.sh" resolve_config *)
|
||||
model: sonnet
|
||||
---
|
||||
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys rigor,project.stage,cert_tier,automation`
|
||||
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys rigor,workflow,project.stage,cert_tier,automation`
|
||||
|
||||
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
||||
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
||||
@@ -26,12 +26,14 @@ trains the reader to skip the list, which defeats the gate:
|
||||
- **`platform.cert_tier`** — emit certification items **only** for the tier the
|
||||
project targets. If it is **unset**, **ask which platforms are in scope**
|
||||
rather than emitting all of them — an unset value is a question, not a licence
|
||||
to emit every certification track. If it cannot be determined, mark the section
|
||||
to emit every certification track. The answer, mapped onto the four values
|
||||
below, is the tier for this run. If it cannot be determined, mark the section
|
||||
**`NOT ASSESSED — cert tier unknown`**. **Unset is not `none`:** `none` is a
|
||||
decision, unset is a missing one, and they must not produce the same output.
|
||||
Branch on the **four values this key takes** — `none | itch | steam | console` —
|
||||
and not on platform names; `.claude/docs/effects-map.md` holds the full
|
||||
requirement table and is the source, so read it rather than restating it.
|
||||
and not on platform names. The full requirement table is the `## platform.cert_tier`
|
||||
section of `.claude/docs/effects-map.md` — read **only that section** (Grep its
|
||||
heading, then a bounded Read); the file as a whole is not a runtime input.
|
||||
- `none` — **emit no certification section at all.** Internal release, alpha or
|
||||
jam game. Say the section was omitted and why; do not leave it blank.
|
||||
- `itch` — itch.io upload requirements only: build size, page setup, age tags.
|
||||
@@ -60,7 +62,7 @@ ratings, of which ~140 are unassessable.
|
||||
|
||||
## Phase 1: Parse Arguments
|
||||
|
||||
Read the argument for the launch date or `dry-run` mode. Dry-run mode generates the checklist without creating sign-off entries or writing files.
|
||||
Read the argument for the launch date or `dry-run` mode. Dry-run mode generates the checklist without creating sign-off entries or writing files. With no argument the run is a normal one with the target date unset (`Target Launch: not set`) — dry-run only when the argument says `dry-run`.
|
||||
|
||||
---
|
||||
|
||||
@@ -82,15 +84,18 @@ Read the argument for the launch date or `dry-run` mode. Dry-run mode generates
|
||||
>
|
||||
> **Establish the denominator before every scan below, and report it.** Each line
|
||||
> reads either `scanned [N] files, [M] hits` or
|
||||
> `NOT ASSESSED — [no src/ | no assets/ | directory empty]`. Never a bare tick.
|
||||
> `NOT ASSESSED — [code root unresolved | no source files | no asset folder | directory empty]`.
|
||||
> Never a bare tick. The code root is `src/`, `Assets/` or `Source/` by engine
|
||||
> (resolve per `.claude/docs/code-root-resolution.md`); assets live in
|
||||
> `assets/`, `Assets/` or `Content/`.
|
||||
>
|
||||
> This is written once, over the whole phase, rather than under **one** of the
|
||||
> four bullets. All four search `src/` the same way — for placeholder assets,
|
||||
> four bullets. All four search the code root the same way — for placeholder assets,
|
||||
> TODOs, debug output and hardcoded test values — so if only one carries the
|
||||
> warning, an empty or absent `src/` returns zero
|
||||
> hits three times and read as three clean results. The original
|
||||
> instance shipped: with no `assets/` directory the scan returned zero hits and
|
||||
> "All placeholder art replaced" was ticked green.
|
||||
> warning, an empty or absent code root returns zero
|
||||
> hits three times and read as three clean results. With no `assets/` directory,
|
||||
> for example, the placeholder scan returns zero hits, and "All placeholder art
|
||||
> replaced" would be ticked green.
|
||||
|
||||
- Count `TODO`, `FIXME`, `HACK` comments and their locations
|
||||
- Check for any `console.log`, `print()`, or debug output left in production code
|
||||
@@ -179,8 +184,8 @@ Generated: [Date]
|
||||
### Testing
|
||||
- [ ] Full regression test suite passed
|
||||
- [ ] Zero S1 (Critical) bugs open
|
||||
- [ ] Zero S2 (Major) bugs open (or documented exceptions)
|
||||
- [ ] Soak test passed (8+ hours continuous play)
|
||||
- [ ] Zero S2 (High) bugs open (or documented exceptions) — at `workflow: full` instead: zero S2 (High) and S3 (Medium) bugs open, no exceptions
|
||||
- [ ] Soak test passed (the longest soak `/soak-test` runs, or longer by hand if a play session lasts longer)
|
||||
- [ ] Multiplayer stress test passed (if applicable)
|
||||
- [ ] All critical user paths tested on every platform
|
||||
- [ ] Edge cases tested (full storage, no network, suspend/resume)
|
||||
@@ -312,13 +317,27 @@ do not fall back to emitting all of them.
|
||||
|
||||
## Go / No-Go Decision
|
||||
|
||||
**Overall Status**: [READY / NOT READY / CONDITIONAL]
|
||||
**Overall Status**: [READY / CONDITIONAL / NOT ASSESSED / NOT READY]
|
||||
|
||||
First match wins: **NOT READY** if Blocking Items is not empty; else **NOT
|
||||
ASSESSED** if any item is `- [?]`, any section came out `NOT ASSESSED`, or any
|
||||
item is still unconfirmed — neither ticked on evidence or on a Phase 4b answer,
|
||||
nor marked N/A, nor listed below (name each; group by section when there are
|
||||
many); else **CONDITIONAL** if Conditional
|
||||
Items is not empty; else **READY**. NOT ASSESSED outranks CONDITIONAL and READY —
|
||||
an item nobody could check is not a passed one — and ranks below NOT READY, so a
|
||||
known blocker is never buried behind it.
|
||||
|
||||
### Blocking Items
|
||||
[List any items that must be resolved before launch]
|
||||
[Every FAIL or unresolved finding: a check that found a problem — FIXMEs, debug
|
||||
output, placeholder assets, hardcoded dev values, an open S1 bug, a failing
|
||||
build or test — with no documented workaround and no explicitly accepted risk]
|
||||
|
||||
### Conditional Items
|
||||
[List items that have documented workarounds or accepted risk]
|
||||
[Every shortfall with a documented workaround or an explicitly accepted risk —
|
||||
e.g. a HACK with its documented justification, an S2 with a documented
|
||||
exception (below `workflow: full`, which allows none). Name the workaround, or
|
||||
who accepted the risk]
|
||||
|
||||
### Sign-Offs Required
|
||||
- [ ] Creative Director — Content and experience quality
|
||||
@@ -330,17 +349,47 @@ do not fall back to emitting all of them.
|
||||
|
||||
---
|
||||
|
||||
## Phase 4b: Confirm What Only a Person Can
|
||||
|
||||
Most items above cannot be settled from the repository — the on-call schedule,
|
||||
the EULA, press keys, pricing, a soak test someone ran. Left unasked, every one
|
||||
of them stays unconfirmed and the Overall Status can only be NOT ASSESSED, so ask.
|
||||
|
||||
For each of the seven sections, collect the items no scan or file settled (the
|
||||
Phase 3 counts and anything read in Phase 2 are not asked again) and ask **one
|
||||
`AskUserQuestion` per section**, listing those items numbered. Each item's
|
||||
answer is **yes / no / not yet / N/A**. Options: `Yes — all of them` /
|
||||
`Not yet — none of them` / `N/A — this section does not apply` /
|
||||
`Some differ — I'll answer per item` (the user then gives each numbered item its
|
||||
answer). Skip a section with nothing left to ask.
|
||||
|
||||
- **yes** → ticked `- [x]`, marked `(confirmed by the user)`
|
||||
- **no** or **not yet** → a failed item: under Blocking Items, or under
|
||||
Conditional Items when the user names a workaround or accepts the risk
|
||||
- **N/A** → written `- N/A — [item]` and left out of the Overall Status
|
||||
- an item left unanswered stays unconfirmed, and the status names it
|
||||
|
||||
These are questions of fact only the user can answer, so they are asked in
|
||||
`collaborative` and `guided` alike and never answered on the user's behalf. In
|
||||
`autonomous` mode and in `dry-run`, skip this phase and say so: the items it
|
||||
would have asked stay unconfirmed, and the Overall Status is NOT ASSESSED.
|
||||
|
||||
Then fill in the Go / No-Go section from the answers.
|
||||
|
||||
---
|
||||
|
||||
## Phase 5: Save Checklist
|
||||
|
||||
Present the completed checklist and summary to the user (total items, blocking items count, conditional items count, departments with incomplete sections).
|
||||
Present the completed checklist and summary to the user (Overall Status, total items, blocking items count, conditional items count, not-assessed items count, departments with incomplete sections).
|
||||
|
||||
If not in dry-run mode, ask: "May I write this to `production/releases/launch-checklist-[date].md`?"
|
||||
|
||||
If yes, write the file, creating directories as needed.
|
||||
Create nothing before the answer — not even the `production/releases/` directory.
|
||||
If yes, write the file; the write creates the directory with it.
|
||||
|
||||
---
|
||||
|
||||
## Phase 6: Next Steps
|
||||
|
||||
- Run `/gate-check` to get a formal PASS/CONCERNS/FAIL verdict before launch.
|
||||
- Coordinate sign-offs via `/team-release`.
|
||||
- If `project.stage` is not `Release` (`Polish`, an earlier stage, or unset), run `/gate-check release` first — it is the readiness gate before launch.
|
||||
- Coordinate sign-offs and the deployment via `/team-release`.
|
||||
|
||||
Reference in New Issue
Block a user