---
name: init-template
description: "First-time repo setup for new projects. Transforms the cloned OCGS template into a clean, ready-to-use game project with your own identity."
argument-hint: "[--reset-git] [--name \"My Game\"] [--engine godot|unity|unreal]"
user-invocable: true
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, question, Task
---
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:
```bash
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 |
| `data` | Data file conventions |
## Phase 2: Replace README.md
Write a fresh README.md to the project root. Use a template structure like:
```markdown
# [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
```