When this skill is invoked:
Phase 1: Parse Arguments
Check if CLI arguments were passed (from argument-hint):
--name "My Game" → sets game name (skips the name question below)
--engine godot|unity|unreal → sets engine (skips engine question)
--reset-git → automatically offers git reset (skips the prompt)
If --name and --engine are both provided, skip the interactive prompt entirely and proceed to Phase 2 using the provided values.
Otherwise, use question to gather missing details:
Tab 1: Project Identity
- What is your game's name? (e.g., "My Game")
- What is your game's one-line description? (e.g., "A 2D platformer about a cat in space")
Tab 2: Engine & Genre
- Which engine are you using? (godot / unity / unreal)
- What genre best describes your game? (e.g., platformer, RPG, puzzle, FPS, strategy)
Tab 3: Team
- Team size (solo / small 2-5 / medium 6-15 / large 16+)
- Preferred model tier (default / workhorse / lightweight) — refer to the README's Model Mapping section for options
Modular Installation
After setting project identity, install the desired framework modules:
node .agents/modules/install.mjs add core
node .agents/modules/install.mjs add engine-godot
node .agents/modules/install.mjs add art design ui qa release prototyping
Available modules (run node .agents/modules/install.mjs list to see all):
| Module | Description |
|---|
core | Framework skeleton (required) |
art | Aseprite MCP, art generation, art bible |
design | Game mechanics, systems design, combat |
architecture | Technical planning, ADRs |
stories | Epics, stories, dev workflow, code review |
programming | Gameplay, AI, engine, network agents + rules |
ui | UX design, UI programming, accessibility |
audio | Audio direction, sound design |
narrative | Story, world-building, dialogue |
level-design | Level layout, encounter design |
qa | Testing strategy, bug tracking, profiling |
release | Release management, sprints, changelogs |
prototyping | Rapid prototyping, exploration |
live-ops | Post-launch content, community |
localization | i18n, translation pipeline |
engine-godot | Godot 4 specialists |
engine-unity | Unity specialists |
engine-unreal | Unreal Engine 5 specialists |
engine-bevy | Bevy specialists |
data | Data file conventions |
Phase 2: Replace README.md
Write a fresh README.md to the project root. Use a template structure like:
# [Game Name]
> [One-line description]
Built with [Engine] using [OpenCode Game Studios](https://github.com/striderZA/OpenCodeGameStudios).
## Quick Start
```bash
opencode
Type /start for onboarding, or browse all skills with /.
Project Structure
/
├── src/ # Game source code
├── assets/ # Game assets (art, audio, vfx)
├── design/ # Game design documents
├── docs/ # Technical documentation
└── production/ # Sprint plans, session logs
License
[Choose a license]
Replace `[Game Name]`, `[One-line description]`, and `[Engine]` with the user's answers from Phase 1.
## Phase 3: Update AGENTS.md
Read AGENTS.md and update:
- Set the engine to the user's choice by changing the `## Technology Stack` section
- Update the model assignment: replace the model table with the user's preference (default/workhorse/lightweight), mapping to their engine's specialist agents
- Remove or update any project-specific settings
- If AGENTS.md is missing or malformed, warn and skip this phase
## Phase 4: Update opencode.json
Read opencode.json and clean it up:
- Remove any internal-only plugin paths
- Set project name appropriately
- Keep the ccgs-hooks.ts plugin reference only if the file actually exists: `if [ -f .opencode/plugins/ccgs-hooks.ts ]; then ...`
- If opencode.json is missing or malformed, warn and skip this phase
## Phase 5: Remove Internal Files
For each file/directory below, check existence first before deleting. If the directory already has user-created content, warn and skip rather than destroying it:
- `rm -f UPGRADING.md CONTRIBUTING.md SECURITY.md CODE_OF_CONDUCT.md`
- Clear `design/` contents only if empty of user files: `if ls design/*.md >/dev/null 2>&1; then echo "WARNING: design/ has content, skipping"; else rm -rf design/*; fi`
- Clear `src/` contents only if empty of user files: `if ls src/*.gd src/*.cs src/*.cpp src/*.ts >/dev/null 2>&1; then echo "WARNING: src/ has code files, skipping"; else rm -rf src/* && touch src/.gitkeep; fi`
- Clear `production/` contents only if empty of user files: similar guard
- On any error (file locked, permission denied), warn and continue to next item
## Phase 6: Optional Git Reset
If the user selected `--reset-git` or agrees when prompted:
- Offer to reset git history to a single commit
- `git checkout --orphan fresh-root`
- `git add -A`
- `git commit -m "Initial commit: scaffolded from OpenCode Game Studios template"`
- Delete all old tags (optional) — warn: if tags were previously pushed to remote, deletion requires `git push origin --delete <tag>` for each one
- Force push if needed (warn: this rewrites remote history for anyone who has cloned this repo)
## Phase 7: Summary
Print a completion summary:
✅ Template initialized
Project: [Game Name]
Engine: [Engine]
Team: [Size]
What's next:
- Run /setup-engine [engine] to configure your engine docs
- Run /concept-brainstorm to start designing your game concept
- Run /start for guided onboarding