| name | game-studio-harness |
| description | Five-role game production studio harness: director, numeric-balance designer, revenue-band PM, verification-strict programmer, archetype-rotation QA. Runs the 3-stage operating cycle (concept/presentation/core build โ balance/core-loop/novelty โ ops stability/play impact) behind 8 numeric quality gates with survey-grounded trends, signed designerโPM negotiation records, and QA broadcast discipline. Writes the repository rule file (CLAUDE.md/AGENTS.md) so the contract outlives the session, and keeps one live `_workspace/current/` beside a read-only archive. |
| allowed-tools | Read Write Edit Glob Grep Bash Task |
| metadata | {"version":"1.1.0","tags":"game-production, game-studio, bmad-gds, numeric-balance, core-loop, novelty, monetization, qa-archetypes, stage-gates, repo-rules, artifact-contract","platforms":"Claude Code, Codex, Gemini, OpenCode","keyword":"game-studio-harness","source":"akillness/jeo-skills"} |
Game Studio Harness
Producer-orchestrated 5-agent team for full game production cycles, following
the bmad-gds method (intake brief โ one operating mode โ coordination
artifact โ specialist routing โ milestone thread) with numeric quality gates.
The harness is a standing structure: cycles repeat until the game ships and
keep repeating for live operation.
Read references/quality-gates.md, references/stage-cycle.md, and
references/artifact-contract.md before creating a run. Gate thresholds in
references/quality-gates.md override any paraphrase in this guide.
When to use this skill
- Start a new game production cycle from an idea, GDD, prototype, or existing build
- Resume an in-flight cycle (read
_workspace/current/production/task-manifest.md first)
- Run a stage-gate review (G1โG8 verdicts) on the current build
- Reprioritize when playtest feedback, defects, and milestone pressure collide
- ๊ฒ์ ์ ์/๋ฐธ๋ฐ์ค/์์ตํ/QA ์ฌ์ดํด์ ํ๋์ ํ์ผ๋ก ๋๋ฆด ๋
Route narrower packets to their own skills instead: raw build/log failure โ
game-build-log-triage; profiler capture โ game-performance-profiler;
feedback-only triage โ game-demo-feedback-triage; store-page/launch ops โ
steam-store-launch-ops; pre-production ideation โ bmad-idea.
Team
| Role | Template | Owns |
|---|
| game-production-director | templates/agents/game-production-director.md | Intake, task manifest, gate verdicts, arbitration, retrospective |
| game-designer | templates/agents/game-designer.md | Balance sheet, combo matrix, core loop, novelty scorecard, worldview, presentation spec, trend surveys |
| game-pm | templates/agents/game-pm.md | Revenue map, reward bands (comeback โค30%, free/paid parity 10โ20 sessions, win-rate delta โค5%p), negotiation record, revenue forecast |
| game-programmer | templates/agents/game-programmer.md | Architecture contract, perf budget (p95 โค16.7ms, input โค100ms), movement-path optimization, tech verification, telemetry, defect responses |
| game-qa | templates/agents/game-qa.md | Archetype rotation (โฅ5 types), exploit register, benchmark survey, gate measurements, defect/regression registers |
Communication topology: director assigns and gates; QA broadcasts every
exploit/discovery to ALL agents with a feedback request; designerโPM
negotiate reward/revenue couplings in a signed record; programmer answers
every defect within the cycle (fixed or deferred + reasoning).
Instructions
Step 0: Preparation
Why: every artifact must be traceable, and the workspace has exactly one live folder.
- Create
_workspace/current/{intake,design,pm,engineering,qa,ops,ui,production,messages,retrospectives}/ at the target repo root. Do not create a dated run directory โ run-id ({YYYYMMDD}-{cycle-label}) is a value carried inside the documents and becomes a directory name only at archive time (_workspace/archive/{run-id}/).
- If resuming, read
_workspace/current/production/task-manifest.md and the last retrospective; enter at the recorded stage instead of Stage 1.
- At cycle close,
git mv superseded lane material into _workspace/archive/{run-id}/. Never delete a _workspace/ artifact.
Step 0.5: Write the repository rule file
Why: the harness only governs the session that runs it. Everything the studio
learns โ lane ownership, the engine boundary, which generator owns which asset
class, the git-safety protocol โ evaporates the moment this session ends unless
it is written where every future session must read it.
- Copy
templates/repo-rules.md to the target repo's agent instruction file
(CLAUDE.md for Claude Code; mirror to AGENTS.md for Codex/Gemini/OpenCode
as a pointer, not a second copy โ two contracts drift, and a drifted
contract is worse than none).
- Resolve every
{PLACEHOLDER} against the real repository. A surviving
placeholder is a defect. Delete sections that do not apply: a rule nobody
follows teaches future sessions that rules are optional.
- State the reason beside any rule whose violation is tempting or whose cost is
invisible.
Never rename X gets ignored; renaming X orphans every existing player's save data gets obeyed.
- Re-derive it at each cycle close, not just at run creation. The rule file is
a cycle artifact โ when
current/ gains a lane, when a generator is
replaced, or when a hard-won invariant is discovered, it is stale until
updated.
Step 1: Materialize the team
Why: agents must be file-based so sessions can reuse them.
- Claude Code with
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1: copy templates/agents/*.md into the target repo's .claude/agents/ (skip files that already exist and match), then use TeamCreate + SendMessage + TaskCreate/TaskUpdate.
- Any other runtime (Codex, Gemini, OpenCode) or teams flag off: run the same roles as sequential sub-agents in the phase order of
references/stage-cycle.md; peer messages become numbered files in _workspace/current/messages/{seq}-{from}.md.
Step 2: Intake (director)
Normalize the request into intake/production-brief.md (bmad-gds schema:
game_type, team_shape, engine, current_stage, next_public_beat,
source_packet, main_constraint, main_question). Choose ONE operating mode
for the cycle and state the next public beat explicitly.
Step 3: Run the 3-stage operating cycle
Follow references/stage-cycle.md exactly. Summary:
- Stage 1 โ Concept, presentation, animation, resources, core build:
designer (concept + worldview + numeric skeleton + trend survey via the
survey skill + core-loop candidate + presentation spec) โฅ PM
(revenue-point draft) โฅ QA (benchmark survey + test plan + archetype set).
Then designerโPM negotiation round 1, then programmer builds core loop +
presentation/animation + resource manifest + telemetry draft.
Gate: G7 draft, G1 draft, G6-ops draft.
- Stage 2 โ Balance, core-loop stability, novelty development:
QA exploit hunt across archetypes โ designer retune โ PM reward-band
adjustment โ negotiation round 2 โ programmer applies data-only changes โ
QA re-verification. Gate: G2, G3, G5, G7 final, G8.
- Stage 3 โ Ops stability and play impact (์ฐ์ถ/์๋๋ฆฌ์ค/์ดํํธ):
programmer perf+memory+movement optimization and ops hardening โฅ
designer+programmer presentation/scenario/effect impact pass โฅ QA full
regression + immersion scoring โฅ PM revenue-consistency forecast.
Gate: G4, G6 final, G1 final.
Gate verdicts are PASS / FIX (โค2 revision loops) / REDO (previous stage).
An open S1 defect or missing evidence blocks any PASS.
Step 4: Cycle close (director)
- Write
retrospectives/cycle-{n}-retrospective.md: per-gate measured values,
unresolved risks, and the next-cycle entry decision (Stage 1 concept shift
vs Stage 2 retune).
- Re-derive the repository rule file (Step 0.5) if this cycle changed a lane,
replaced a generator, or discovered an invariant worth enforcing.
git mv the superseded lane material into _workspace/archive/{run-id}/.
current/ keeps only what the next cycle carries forward; nothing leaves
_workspace/.
The cycle loops โ the studio is a standing structure, not a one-shot pipeline.
Step 5: Error handling
| Scenario | Response |
|---|
| Agent timeout | Retry once โ mark task failed, continue partial, flag in gate review |
| Data conflict | Log conflicts.md; prefer newer measurement; director arbitrates numerically |
| Missing output | Gate cannot PASS; warn in review |
| Messaging failure | File-based fallback via messages/ |
Examples
Example 1: New cycle from an idea
Input: "๋คํฌํํ์ง RTS ์์ด๋์ด๋ก ๊ฒ์ ์ ์ ์ฌ์ดํด ์์ํด์ค"
Expected: run-id created, production brief written, team materialized,
Stage 1 tasks assigned; designer trend survey and QA benchmark survey run
via the survey skill; cycle ends with retrospective + G1โG8 gate table.
Example 2: Stage-gate review on existing build
Input: "ํ์ฌ ๋น๋๋ก ์คํ
์ด์ง ๊ฒ์ดํธ ๋ฆฌ๋ทฐ ๋๋ ค์ค"
Expected: QA measures G1โG8 on the build, director issues per-gate
PASS/FIX/REDO verdicts with evidence paths, FIX items become manifest tasks.
Example 3: Balance emergency
Input: "QA๊ฐ ๋ฌดํ์กฐํฉ ์ต์คํ๋ก์ ์ฐพ์, ์ฌ์ดํด ์ฌ์ง์
"
Expected: enter at Stage 2 Phase 2a with the exploit register pre-seeded;
designer retune, PM reward-coupling check, programmer data-only change,
QA re-verifies the band before the gate closes.
Best practices
- One operating mode per cycle โ mixing concept work and launch ops in one pass weakens both.
- Numbers gate everything: no adjective ever passes a gate (
references/quality-gates.md).
- Surveys before invention: designer trend survey and QA benchmark survey are Stage 1 prerequisites, not optional garnish.
- Preserve
_workspace/ artifacts โ they are the studio's memory across cycles. Archive, never delete.
- The rule file is the studio's only durable output. A harness run that ships a build but leaves no contract has taught the next session nothing.
- Keep the milestone thread: every task names the next public beat it serves.
- QA broadcast discipline: every exploit/discovery goes to all agents with an explicit feedback request โ QA sense is the studio's shared sense.
References