mirror of
https://github.com/Donchitos/Claude-Code-Game-Studios.git
synced 2026-10-16 01:37:05 +00:00
The skill config line is now one plain command, pre-approved in each skill's own allowed-tools. The 1.1.0 line failed Claude Code's injected-command permission check as "Contains expansion", so outside auto mode 66 skills aborted and game-designer / creative-director could not launch. Fixes #128 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
316 lines
13 KiB
Markdown
316 lines
13 KiB
Markdown
---
|
|
name: release-checklist
|
|
description: "Pre-release checklist — build verification, certification requirements, store metadata, launch readiness."
|
|
argument-hint: "[platform: pc|console|mobile|all]"
|
|
user-invocable: true
|
|
allowed-tools: Read, Glob, Grep, Write, Bash(bash "*/.claude/skills/release-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`
|
|
|
|
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
|
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
|
every file write follows `.claude/docs/automation-modes.md`
|
|
(collaborative asks always · guided major-only · autonomous logs and proceeds;
|
|
`automation_always_ask` categories always prompt).
|
|
|
|
Resolved above — use as-is. No block → defaults in `.claude/docs/config-resolution.md`.
|
|
|
|
**Scope this checklist to the project.** Emitting every item for every platform
|
|
trains the reader to skip the list, which defeats the gate:
|
|
|
|
- **`project.stage`** — items for phases this project has not reached are out of
|
|
scope; say so rather than listing them unchecked.
|
|
- **`modes.rigor`** — at `minimal`, drop items whose only justification is process
|
|
weight this project has opted out of.
|
|
- **`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
|
|
**`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.
|
|
- `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.
|
|
**No console and no Steamworks items.**
|
|
- `steam` — Steamworks: store page, depot build, achievements, system
|
|
requirements, common content rules. **No console certification items.**
|
|
- `console` — full platform certification (TRC / XR / Lotcheck), save-data
|
|
rules, controller-mapping rules, age-rating boards. The heaviest tier.
|
|
|
|
> **Branch on the `cert_tier` values above, not on platform names.** "Emit
|
|
> console/mobile certification items only for the platforms the project targets"
|
|
> is the wrong test: it treats an `itch` project and a `steam` project
|
|
> identically, conflates `none` with unset, and keys on `mobile`, which is not a
|
|
> `cert_tier` value at all. Use the vocabulary the config defines.
|
|
|
|
If an item cannot be scoped because the config is absent, mark it
|
|
**`NOT ASSESSED — platform/stage unknown`**. Do not silently include it: a
|
|
`rigor: standard`, single-platform project would otherwise receive a ~150-item
|
|
checklist demanding PC **and** console **and** mobile certification plus age
|
|
ratings, of which ~140 are unassessable.
|
|
|
|
---
|
|
|
|
|
|
> **Explicit invocation only**: This skill should only run when the user explicitly requests it with `/release-checklist`. Do not auto-invoke based on context matching.
|
|
|
|
## Phase 1: Parse Arguments
|
|
|
|
Read the argument for the target platform (`pc`, `console`, `mobile`, or `all`). If no platform is specified, default to `all`.
|
|
|
|
**The argument selects DEVICE requirements. It never selects the certification
|
|
track.** Certification is decided by `platform.cert_tier`, resolved in the resolved-config block at the top of this skill —
|
|
see the `platform.cert_tier` rule above. The two axes are different lists that
|
|
happen to share one word: `pc`/`console`/`mobile` are hardware shapes, while
|
|
`none|itch|steam|console` are certification regimes. They agree on `console` and
|
|
nowhere else — `itch` and `none` have no device block at all, and `mobile` is not
|
|
a `cert_tier` value. So emitting a device block says nothing about which
|
|
certification block to emit, and `all` is **not** a licence to emit every
|
|
certification track.
|
|
|
|
---
|
|
|
|
## Phase 2: Load Project Context
|
|
|
|
- Read `CLAUDE.md` for project context, version information, and platform targets.
|
|
- Read the current milestone from `production/milestones/` to understand what features and content should be included in this release.
|
|
|
|
---
|
|
|
|
## Phase 3: Scan Codebase
|
|
|
|
> **State the denominator with every count.** These scans look for something bad,
|
|
> so `0` means either "searched and found none" or "there was nothing to search",
|
|
> and on a release gate those are opposite findings. Report
|
|
> `scanned [N] source files: [M] TODO, [M] FIXME, [M] HACK` — or, when `src/` is
|
|
> absent or holds no source files,
|
|
> **`NOT ASSESSED — no source files found to scan`**. A bare `0` is not a result.
|
|
>
|
|
> `/launch-checklist` scans the same way and is most often run beside this one.
|
|
> Keep the two consistent: changing the rule in one and not the other leaves a
|
|
> route to the same misleading `0`.
|
|
|
|
Scan for outstanding issues:
|
|
|
|
- Count `TODO` comments
|
|
- Count `FIXME` comments
|
|
- Count `HACK` comments
|
|
- Note their locations and severity
|
|
|
|
Check for test results in any test output directories or CI logs if available.
|
|
**If none are found, say so** — `Test results: NOT ASSESSED — no test output or
|
|
CI logs found` — rather than omitting the line. An absent test result and a
|
|
passing one must not produce the same release checklist.
|
|
|
|
---
|
|
|
|
## Phase 4: Generate the Release Checklist
|
|
|
|
```markdown
|
|
## Release Checklist: [Version] -- [Platform]
|
|
Generated: [Date]
|
|
|
|
### Codebase Health
|
|
- TODO count: [N] ([list top 5 if many])
|
|
- FIXME count: [N] ([list all -- these are potential blockers])
|
|
- HACK count: [N] ([list all -- these need review])
|
|
|
|
### Build Verification
|
|
- [ ] Clean build succeeds on all target platforms
|
|
- [ ] No compiler warnings (zero-warning policy)
|
|
- [ ] All assets included and loading correctly
|
|
- [ ] Build size within budget ([target size])
|
|
- [ ] Build version number correctly set ([version])
|
|
- [ ] Build is reproducible from tagged commit
|
|
|
|
### Quality Gates
|
|
- [ ] Zero S1 (Critical) bugs
|
|
- [ ] Zero S2 (Major) bugs -- or documented exceptions with producer approval
|
|
- [ ] All critical path features tested and signed off by QA
|
|
- [ ] Performance within budgets:
|
|
- [ ] Target FPS met on minimum spec hardware
|
|
- [ ] Memory usage within budget
|
|
- [ ] Load times within budget
|
|
- [ ] No memory leaks over extended play sessions
|
|
- [ ] No regression from previous build
|
|
- [ ] Soak test passed (4+ hours continuous play)
|
|
|
|
### Content Complete
|
|
- [ ] All placeholder assets replaced with final versions
|
|
- [ ] All TODO/FIXME in content files resolved or documented
|
|
- [ ] All player-facing text proofread
|
|
- [ ] All text localization-ready (no hardcoded strings)
|
|
- [ ] Audio mix finalized and approved
|
|
- [ ] Credits complete and accurate
|
|
```
|
|
|
|
Add **device** sections based on the argument. These carry no certification or
|
|
storefront-SDK items — those are gated on `platform.cert_tier` in the next
|
|
subsection, and duplicating them here is what let an `itch` project receive
|
|
Steamworks rows.
|
|
|
|
**For `pc`:**
|
|
```markdown
|
|
### Platform Requirements: PC
|
|
- [ ] Minimum and recommended specs verified and documented
|
|
- [ ] Keyboard+mouse controls fully functional
|
|
- [ ] Controller support tested (Xbox, PlayStation, generic)
|
|
- [ ] Resolution scaling tested (1080p, 1440p, 4K, ultrawide)
|
|
- [ ] Windowed, borderless, and fullscreen modes working
|
|
- [ ] Graphics settings save and load correctly
|
|
```
|
|
|
|
**For `console`:**
|
|
```markdown
|
|
### Platform Requirements: Console
|
|
- [ ] Platform-specific controller prompts display correctly
|
|
- [ ] Suspend/resume works correctly
|
|
- [ ] User switching handled properly
|
|
- [ ] Network connectivity loss handled gracefully
|
|
- [ ] Storage full scenario handled
|
|
```
|
|
|
|
**For `mobile`:**
|
|
```markdown
|
|
### Platform Requirements: Mobile
|
|
- [ ] App store guidelines compliance verified
|
|
- [ ] All required device permissions justified and documented
|
|
- [ ] Privacy policy linked and accurate
|
|
- [ ] Data safety/nutrition labels completed
|
|
- [ ] Touch controls tested on multiple screen sizes
|
|
- [ ] Battery usage within acceptable range
|
|
- [ ] Background behavior correct (pause, resume, terminate)
|
|
- [ ] Push notification permissions handled correctly
|
|
- [ ] In-app purchase flow tested (if applicable)
|
|
- [ ] App size within store limits
|
|
```
|
|
|
|
> **Mobile storefront rows stay here on purpose.** `platform.cert_tier` models
|
|
> `none|itch|steam|console` and has no mobile regime, so App Store / Play Store
|
|
> compliance cannot be gated on it. Leaving these in the device block is a
|
|
> deliberate choice, not an oversight — do not "fix" it by inventing a `mobile`
|
|
> tier, which is the exact wrong vocabulary the `cert_tier` rule warns against.
|
|
|
|
**Certification — emit ONLY the block matching `platform.cert_tier`** (resolved in
|
|
the resolved-config block at the top of this skill). Do not emit this subsection's other blocks, and do not fall back to
|
|
emitting all of them because the platform argument was `all`.
|
|
|
|
**At `none`** — emit no certification block at all. Emit exactly this one line in
|
|
its place, so the omission is visible rather than looking like a missing section:
|
|
```markdown
|
|
Certification: omitted — cert_tier is 'none' (internal build, alpha or jam release).
|
|
```
|
|
|
|
**At `itch`:**
|
|
```markdown
|
|
### Certification: itch.io
|
|
- [ ] Build size within itch.io upload limits
|
|
- [ ] itch.io page complete (cover art, screenshots, description)
|
|
- [ ] Age/content tags set honestly
|
|
- [ ] Downloadable vs browser build decided and tested
|
|
- [ ] Butler channel names correct for each platform uploaded
|
|
```
|
|
|
|
**At `steam`:**
|
|
```markdown
|
|
### Certification: Steamworks
|
|
- [ ] Steamworks SDK integrated and tested
|
|
- [ ] Depot build uploaded and installs cleanly from a fresh account
|
|
- [ ] Achievements functional
|
|
- [ ] Cloud saves functional
|
|
- [ ] Steam Deck compatibility verified (if targeting)
|
|
- [ ] Steam common content rules reviewed
|
|
```
|
|
|
|
**At `console`:**
|
|
```markdown
|
|
### Certification: Console
|
|
- [ ] TRC/TCR/Lotcheck requirements checklist complete
|
|
- [ ] First-party certification submission prepared
|
|
- [ ] Platform-specific achievement/trophy integration tested
|
|
- [ ] Parental controls respected
|
|
- [ ] Save-data rules compliant (corruption, full storage, user switching)
|
|
- [ ] Age ratings obtained (ESRB, PEGI, regional)
|
|
```
|
|
|
|
If `cert_tier` is **unset**, ask which platforms are in scope rather than
|
|
emitting every track; if it cannot be determined, emit
|
|
`### Certification: NOT ASSESSED — cert tier unknown` and say why. **Unset is not
|
|
`none`** — `none` is a decision and unset is a missing one.
|
|
|
|
> **Certification rows belong here, in one `cert_tier`-gated subsection.** Do not
|
|
> spread them back through the PC, Console and Mobile device blocks: those are
|
|
> selected by the command argument and default to `all`, so an `itch` project
|
|
> running `/release-checklist` with no argument would be handed the Steamworks SDK
|
|
> rows *and* the Lotcheck rows — exactly what the `cert_tier` rule at the top of
|
|
> this skill forbids.
|
|
>
|
|
> **`console` means two different things in this file.** It is a device-block
|
|
> argument value *and* a `cert_tier` value, colliding on one word out of four. A
|
|
> `**For \`console\`:**` heading is argument-gating, not tier-gating — do not read
|
|
> it as evidence that certification is already scoped by tier.
|
|
|
|
**Store and launch sections (all platforms):**
|
|
```markdown
|
|
### Store / Distribution
|
|
- [ ] Store page metadata complete and proofread
|
|
- [ ] Short description
|
|
- [ ] Long description
|
|
- [ ] Feature list
|
|
- [ ] System requirements (PC)
|
|
- [ ] Screenshots up to date and per-platform resolution requirements met
|
|
- [ ] Trailers up to date
|
|
- [ ] Key art and capsule images current
|
|
- [ ] Age rating obtained and configured:
|
|
- [ ] ESRB
|
|
- [ ] PEGI
|
|
- [ ] Other regional ratings as required
|
|
- [ ] Legal notices, EULA, and privacy policy in place
|
|
- [ ] Third-party license attributions complete
|
|
- [ ] Pricing configured for all regions
|
|
|
|
### Launch Readiness
|
|
- [ ] Analytics / telemetry verified and receiving data
|
|
- [ ] Crash reporting configured and dashboard accessible
|
|
- [ ] Day-one patch prepared and tested (if needed)
|
|
- [ ] On-call team schedule set for first 72 hours
|
|
- [ ] Community launch announcements drafted
|
|
- [ ] Press/influencer keys prepared for distribution
|
|
- [ ] Support team briefed on known issues and FAQ
|
|
- [ ] Rollback plan documented (if critical issues found post-launch)
|
|
|
|
### Go / No-Go: [READY / NOT READY]
|
|
|
|
**Rationale:**
|
|
[Summary of readiness assessment. List any blocking items that must be
|
|
resolved before launch. If NOT READY, list the specific items that need
|
|
resolution and estimated time to address them.]
|
|
|
|
**Sign-offs Required:**
|
|
- [ ] QA Lead
|
|
- [ ] Technical Director
|
|
- [ ] Producer
|
|
- [ ] Creative Director
|
|
```
|
|
|
|
---
|
|
|
|
## Phase 5: Save Checklist
|
|
|
|
Present the checklist to the user with: total checklist items, number of known blockers (FIXME/HACK counts, known bugs).
|
|
|
|
Ask: "May I write this to `production/releases/release-checklist-[version].md`?"
|
|
|
|
If yes, write the file, creating the directory if needed.
|
|
|
|
---
|
|
|
|
## Phase 6: Next Steps
|
|
|
|
- Run `/gate-check` for a formal phase gate verdict before proceeding to release.
|
|
- Coordinate final sign-offs via `/team-release`.
|