From godot-ai-builder
Requirements Distiller — takes complex game design documents (GDDs, PRDs, feature lists) and produces a scoped, single-session build plan that the builder can actually deliver. Prevents scope explosion by identifying the core gameplay loop and stripping everything else. Triggers on: "distill", "scope", "session plan", or when the builder detects complex multi-doc input.
npx claudepluginhub hubdev-ai/godot-ai-builderThis skill uses the workspace's default tool permissions.
Complex game designs (heist planners, RPGs, multi-screen games) have dozens of features.
Creates or updates actionable Game Design Documents for design, engineering, QA, production, and content teams. Use when starting new games/features or when design intent is fragmented.
Guides video game development: brainstorm ideas, plan gameplay loops, choose engines like Unity/Godot/Three.js/Phaser, scaffold projects, add features, fix bugs, create assets.
Share bugs, ideas, or general feedback.
Complex game designs (heist planners, RPGs, multi-screen games) have dozens of features. The builder's biggest failure mode is trying to build ALL of them in one session — delivering nothing well. The distiller prevents this by producing a focused, single-session build plan that contains ONLY what can realistically be built and tested in one Claude session.
Read ALL documents in the user's folder:
Glob: <docs-folder>/**/*.md, **/*.txt, **/*.json, **/*.yaml
Also: **/*.png, **/*.jpg (note as art assets)
For each document, extract:
The core gameplay loop is the ONE thing that makes the game fun. Strip away everything that is not essential to experiencing this loop.
Questions to ask:
Examples:
| Game Concept | Core Loop | NOT Core |
|---|---|---|
| Heist planner | Tap building → solve puzzle → get loot | Shop, daily rewards, PvP, guilds, leaderboards |
| Match-3 RPG | Match tiles → damage enemies → level up | Gacha, social features, events, territories |
| Tower defense | Place towers → waves attack → upgrade | Story mode, multiplayer, achievements |
| City builder | Place buildings → earn resources → expand | Trading, diplomacy, war, quests |
Each session can realistically produce:
Session 1: Core Loop (MANDATORY FIRST)
Session 2: Depth
Session 3: Flow
Session 4: Polish
Session 5+: Features
For each session, identify which assets are needed:
*.png, *.jpg, *.svgbank.png → bank building, player.png → player characterOutput the plan to docs/SESSION_PLAN.md in the project directory.
# Session Plan: [Game Name]
## Source Documents
- [filename]: [brief description of contents]
- [filename]: [brief description of contents]
## Core Gameplay Loop
[One paragraph describing what the player does and why it's fun]
## Session 1: [Title] (THIS SESSION)
### Features to Build
1. [Feature]: [brief spec — mechanics, numbers, behavior]
2. [Feature]: [brief spec]
3. [Feature]: [brief spec]
### NOT Building This Session
- [Feature from docs]: deferred to Session [N]
- [Feature from docs]: deferred to Session [N]
- [Feature from docs]: deferred to Session [N]
(List EVERY feature from the docs that is being cut)
### File Manifest
| File | Purpose | Lines (est.) |
|------|---------|-------------|
| scripts/main.gd | Main scene controller, spawn system | ~120 |
| scripts/player.gd | Player movement and interaction | ~80 |
| ... | ... | ... |
**Total: [N] scripts (max 12)**
### Assets
| Asset | Source | Entity |
|-------|--------|--------|
| bank.png | User-provided (docs/assets/) | Bank building |
| player.png | User-provided (docs/assets/) | Player character |
| guard.png | Generate procedural | Guard enemy |
**Copy to**: `res://assets/sprites/`
### Technical Decisions
- **Scene structure**: [how the main scene is organized]
- **Collision layers**: [which layers for what]
- **Autoloads**: [singleton managers needed]
- **Input**: [input actions needed]
### Success Criteria
When Session 1 is complete, the player can:
1. [Concrete testable action]
2. [Concrete testable action]
3. [Concrete testable action]
---
## Session 2: [Title] (NEXT)
### Features
- [Feature 1]
- [Feature 2]
### New Files: ~[N] scripts
## Session 3: [Title]
### Features
- [Feature 1]
- [Feature 2]
### New Files: ~[N] scripts
## Session 4: Polish
### Focus
- Visual effects, audio, UI styling, game feel
## Session 5+: [Optional Features]
- [Feature]: [which session]
- [Feature]: [which session]
After writing SESSION_PLAN.md, present a summary:
Distilled [N] documents into a [M]-session build plan.
**Session 1** (this session): [title]
- [N] scripts, [M] assets
- Core: [one-line description of what the player can do]
**Deferred**: [list of cut features]
Review docs/SESSION_PLAN.md. When ready, I'll start building Session 1.
Wait for user approval before the builder starts.
When the builder detects complex docs and invokes the distiller:
SESSION_PLAN.mdSESSION_PLAN.md as the source (not the raw docs)SESSION_PLAN.md instead of the full design docsFor subsequent sessions:
godot_get_build_state() — finds Session 1 completeSESSION_PLAN.md — identifies Session 2 scope| Category | Session | Priority |
|---|---|---|
| Core mechanic (what player does) | 1 | MUST |
| Primary challenge (what opposes player) | 1 | MUST |
| Win/lose condition | 1 | MUST |
| Basic HUD (score/status) | 1 | MUST |
| Additional entity types | 2 | HIGH |
| Menu screen | 2-3 | HIGH |
| Game over / results screen | 2-3 | HIGH |
| Difficulty progression | 2 | HIGH |
| Pause menu | 3 | MEDIUM |
| Screen transitions | 3 | MEDIUM |
| Visual polish (shaders, particles) | 4 | MEDIUM |
| Audio (SFX, music) | 4 | MEDIUM |
| Shop / store | 5+ | LOW |
| Daily rewards | 5+ | LOW |
| Leaderboards | 5+ | LOW |
| Social features | 5+ | LOW |
| Multiplayer / PvP | 5+ | LOW |
| Guilds / clans | 5+ | LOW |
| Achievements | 5+ | LOW |
| Analytics / telemetry | 5+ | LOW |
| IAP / monetization | 5+ | LOW |
Input: 4 design docs describing city map, puzzle mechanic, results screen, shop, daily rewards, PvP raids, guilds, 18 art assets.
Session 1: City Map + Building Tap
Session 2: Puzzle Mechanic
Session 3: Results + Flow
Session 4: Polish
Session 5+: Meta Features