@genex-ai/cli-demo 0.93.0 → 0.94.0-dev.249

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/index.js +26 -5
  2. package/package.json +1 -1
  3. package/templates/skills/genex-ai-model/SKILL.md +3 -2
  4. package/templates/skills/genex-ai-skybox/SKILL.md +4 -4
  5. package/templates/skills/genex-ai-texture/SKILL.md +1 -1
  6. package/templates/skills/genex-ai-video/SKILL.md +1 -1
  7. package/templates/skills/genex-game-director/SKILL.md +321 -411
  8. package/templates/skills/genex-game-director/references/design-contract.md +130 -179
  9. package/templates/skills/genex-game-director/references/routing-map.md +242 -362
  10. package/templates/skills/genex-getting-started/SKILL.md +2 -2
  11. package/templates/skills/genex-threejs-exposure-color-grading/SKILL.md +3 -7
  12. package/templates/skills/genex-threejs-multiplayer/SKILL.md +19 -2
  13. package/templates/skills/genex-threejs-procedural-assets/SKILL.md +112 -0
  14. package/templates/skills/genex-threejs-procedural-materials/SKILL.md +3 -7
  15. package/templates/skills/genex-threejs-procedural-vfx/SKILL.md +6 -11
  16. package/templates/skills/genex-threejs-shadow-systems/SKILL.md +2 -3
  17. package/templates/skills/genex-threejs-visual-validation/SKILL.md +0 -4
  18. package/templates/skills/genex-updates/SKILL.md +1 -1
  19. package/templates/skills/genex-threejs-atmosphere-aerial-perspective/SKILL.md +0 -46
  20. package/templates/skills/genex-threejs-atmosphere-aerial-perspective/references/atmosphere.md +0 -213
  21. package/templates/skills/genex-threejs-bloom/SKILL.md +0 -44
  22. package/templates/skills/genex-threejs-bloom/references/bloom.md +0 -187
  23. package/templates/skills/genex-threejs-exposure-color-grading/references/exposure-grading.md +0 -205
  24. package/templates/skills/genex-threejs-game-content/SKILL.md +0 -198
  25. package/templates/skills/genex-threejs-game-content/references/content-tables.md +0 -269
  26. package/templates/skills/genex-threejs-image-pipeline/SKILL.md +0 -56
  27. package/templates/skills/genex-threejs-image-pipeline/references/image-pipeline.md +0 -197
  28. package/templates/skills/genex-threejs-lighting-design/SKILL.md +0 -144
  29. package/templates/skills/genex-threejs-lighting-design/references/light-recipes.md +0 -137
  30. package/templates/skills/genex-threejs-open-world/SKILL.md +0 -149
  31. package/templates/skills/genex-threejs-open-world/references/terrain-streaming.md +0 -215
  32. package/templates/skills/genex-threejs-precipitation-surfaces/SKILL.md +0 -59
  33. package/templates/skills/genex-threejs-precipitation-surfaces/references/precipitation-surfaces.md +0 -181
  34. package/templates/skills/genex-threejs-procedural-architecture/SKILL.md +0 -50
  35. package/templates/skills/genex-threejs-procedural-architecture/references/architecture-systems.md +0 -509
  36. package/templates/skills/genex-threejs-procedural-fields/SKILL.md +0 -61
  37. package/templates/skills/genex-threejs-procedural-fields/references/field-systems.md +0 -232
  38. package/templates/skills/genex-threejs-procedural-geometry/SKILL.md +0 -39
  39. package/templates/skills/genex-threejs-procedural-geometry/references/mesh-systems.md +0 -202
  40. package/templates/skills/genex-threejs-procedural-materials/references/material-systems.md +0 -198
  41. package/templates/skills/genex-threejs-procedural-planets/SKILL.md +0 -48
  42. package/templates/skills/genex-threejs-procedural-planets/references/planet-systems.md +0 -498
  43. package/templates/skills/genex-threejs-procedural-vegetation/SKILL.md +0 -52
  44. package/templates/skills/genex-threejs-procedural-vegetation/references/vegetation-systems.md +0 -314
  45. package/templates/skills/genex-threejs-procedural-vfx/references/vfx-systems.md +0 -218
  46. package/templates/skills/genex-threejs-raymarched-space-effects/SKILL.md +0 -37
  47. package/templates/skills/genex-threejs-raymarched-space-effects/references/space-effects.md +0 -194
  48. package/templates/skills/genex-threejs-screen-space-ambient-occlusion/SKILL.md +0 -35
  49. package/templates/skills/genex-threejs-screen-space-ambient-occlusion/references/ambient-occlusion.md +0 -441
  50. package/templates/skills/genex-threejs-spectral-ocean/SKILL.md +0 -52
  51. package/templates/skills/genex-threejs-spectral-ocean/references/spectral-ocean.md +0 -473
  52. package/templates/skills/genex-threejs-temporal-surfaces/SKILL.md +0 -41
  53. package/templates/skills/genex-threejs-temporal-surfaces/references/temporal-surfaces.md +0 -207
  54. package/templates/skills/genex-threejs-visual-validation/references/visual-validation.md +0 -427
  55. package/templates/skills/genex-threejs-volumetric-clouds/SKILL.md +0 -49
  56. package/templates/skills/genex-threejs-volumetric-clouds/references/volumetric-clouds.md +0 -579
  57. package/templates/skills/genex-threejs-water-optics/SKILL.md +0 -57
  58. package/templates/skills/genex-threejs-water-optics/references/water-optics.md +0 -195
@@ -1,109 +1,126 @@
1
1
  # The design contract — DESIGN.md
2
2
 
3
- Write `DESIGN.md` at the game project root before any rendering code, from the
4
- template below. Plain game language, readable by the player, committed to the
5
- game's repo (it travels into remixes). It is a working document, not paperwork:
6
- it replaces the plan you would otherwise post only in chat, and it is the
7
- recovery point after any long break — sub-agents read it by path, and so do
8
- you when a session resumes.
9
-
10
- Rules the director enforces about this file:
11
-
12
- - Create it right after the scope check, before the concept generation; fill
13
- sections as decisions land and keep it current (stale is worse than short).
14
- - **The Build plan & status section is the compass.** Numbered milestones,
15
- each with a status mark, and a `Now:` line naming the current one. Update
16
- it the moment a milestone starts or finishes a milestone is done only
17
- when its work reached a `genex preview` (mark it `→ previewed`). After any
18
- context compaction or session resume, this section — not memory — says
19
- where the build is; continue from `Now:`. When the plan first lands, tell
20
- the player in one plain line that it's locked in and lives in `DESIGN.md`.
21
- - **The Modules table is the delegation contract, and "Built by" is a
22
- per-game DECISION, not a default you copy.** While drafting the plan, walk
23
- the modules once and decide what can run in parallel and what must stay
24
- serial for THIS game dependencies decide (an arena can be a parallel row
25
- in one game and the serial spine of another). Write the call into each row
26
- with a one-line reason. When your platform has sub-agents, independent
27
- modules default to parallel; building everything serially needs a stated
28
- reason. One row per independent lane, and a row's "Owns files" set never
29
- overlaps another row's one writer per file. If a planned-parallel module
30
- gets built inline, say why in one line. Verification is never a module
31
- row: the milestone smoke pass belongs to the director (the scaffold prompt
32
- owns its ceilings).
33
- - **The Assets table is the budget**: the asset list falls out of Content
34
- (enemies → models, an arena a ground texture, outdoors a skybox).
35
- Status flow per row: `proposed → planned → generating (id) → landed (URL) →
36
- wired`. Workers generate only their own rows already marked `planned`; new
37
- wants enter as `proposed` for the main agent to approve; the asset shepherd
38
- flips statuses and never enqueues. Re-rolls follow the player's notes only.
39
- The `Wired?` column exists because "generated but never wired in" is the
40
- most common way finished art gets lost — a row isn't done at `landed`.
41
- And no eternal `proposed`: at every preview/publish, every `proposed` row
42
- gets promoted or cancelled with one visible line never silently parked.
43
- - Shrinking any Content line is a question to the player first, never a
44
- silent cut.
3
+ `DESIGN.md` is durable project memory, not a startup questionnaire. Create it
4
+ for a new project or substantial multi-step request; for an existing project,
5
+ read it first and update only what the latest request changes. A small focused
6
+ fix may use the existing file without expanding unrelated sections.
7
+
8
+ Write in plain language the player can read. Commit the file with the project
9
+ so it survives a long pause, context compaction, handoff, and remix.
10
+
11
+ ## Rules
12
+
13
+ - **Requested outcome is the destination.** Record what the player ultimately
14
+ asked for. A milestone or step-by-step working mode may change build order,
15
+ but may not silently shrink that destination.
16
+ - **Working mode describes this run:** `whole coordinated build`, `step by
17
+ step`, or `focused change`. A clear later request may change the mode and
18
+ replace `Now:` immediately without replaying discovery.
19
+ - **The Build plan & status section is the compass.** Keep the exact
20
+ `## Build plan & status` heading and `Now:` marker. Use `▶ in progress`,
21
+ `✅ previewed`, `⏸ paused`, and `⬜ open/next` truthfully. A milestone is
22
+ complete only when its result reached `genex preview`; a pause does not erase
23
+ the commitment.
24
+ - **Open commitments preserve unfinished promises.** Requested work remains
25
+ open until completed, explicitly cancelled, or re-scoped by the player.
26
+ Open work prevents a false claim that the full requested outcome is done,
27
+ but never blocks an explicit preview or publish request: run the owning flow
28
+ and say plainly what remains.
29
+ - **Ask only about a real reduction.** If completing a request would require
30
+ lowering its content, world, or quality target, ask one scope question.
31
+ Otherwise choose sensible implementation details and continue.
32
+ - **Modules are conditional.** Use the Modules table for a whole coordinated
33
+ build or another useful parallel split. Dependencies decide parallel versus
34
+ serial, file ownership never overlaps, and focused work does not create
35
+ unrelated module rows.
36
+ - **The Assets table is the paid-generation budget and ledger.** Keep the exact
37
+ status flow `proposed planned generating (id) landed (URL) → wired`.
38
+ A landed asset is unfinished until wired or visibly cancelled. Preserve
39
+ generation IDs, permanent URLs, local outputs, and wiring state across
40
+ compaction.
41
+ - **Code-built procedural assets use their own truthful status flow:**
42
+ `proposed planned building (blockout | detail | material | runtime) →
43
+ landed (<local TypeScript path>) wired`. They never invent a provider
44
+ generation ID. A generated reference image is a separate normal Assets row.
45
+ - Sections are request-driven. Gameplay, content, UI, assets, world,
46
+ multiplayer, character/animation, tools, modules, and procedural assets
47
+ appear only when the request or existing project uses them.
48
+ - Preserve every machine-readable marker an invoked pipeline owns, including
49
+ `HUD lane:`, `Menu video:`, HUD stage IDs and paths, `Player character:`,
50
+ asset generation IDs/URLs, and wiring state.
51
+ - A private reference attachment is a build input. Do not upload, publish, or
52
+ commit it without the player's explicit permission.
53
+
54
+ When the document first lands, tell the player in one plain line that you
55
+ recorded what they asked for in `DESIGN.md` and will keep it current. Do not
56
+ call the plan “locked”; the player may redirect the work at any time.
45
57
 
46
58
  ## Template
47
59
 
48
60
  ```markdown
49
- # <Game name> — Design
61
+ # <Project name> — Design
50
62
 
51
63
  _Living document — the agent keeps this current; changes land in the log at
52
64
  the bottom._
53
65
 
54
- ## Concept
55
- One paragraph: what the game is, what playing it feels like.
56
- Concept image: <asset URL> (standing — shown <date>; player said
57
- <yes | nothing — pick stands | change → looped>)
66
+ ## Requested outcome
67
+ <The player's final target, in their language. Preserve it until they change
68
+ or explicitly re-scope it.>
58
69
 
59
- ## Core loop
60
- - **You do:** <primary verb drive, shoot, build…>
70
+ ## Build plan & status
71
+ Working mode: <whole coordinated build | step by step | focused change>
72
+ Now: ▶ <number/name of the current milestone or focused task>
73
+ Done when: <one plain, observable condition for the current work>
74
+ 1. <milestone> — ✅ → previewed
75
+ 2. <milestone> — ▶ in progress (<main agent | sub-agent>)
76
+ 3. <milestone> — ⏸ paused (<reason>)
77
+ 4. <milestone> — ⬜ open/next
78
+ (Keep only milestones the request earns. Update `Now:` immediately when the
79
+ player redirects the work.)
80
+
81
+ ## Open commitments
82
+ - [ ] <requested promise not yet complete>
83
+ - [ ] <another promise>
84
+ (Remove only when completed; otherwise mark explicitly cancelled or re-scoped
85
+ in Decisions & changes.)
86
+
87
+ ## Core loop (gameplay requests only)
88
+ - **You do:** <primary verb>
61
89
  - **To:** <objective>
62
90
  - **Under pressure from:** <what pushes back>
63
- - **You earn:** <reward / progression>
91
+ - **You earn:** <reward/progression, when requested>
64
92
  - **You lose when:** <fail state> → **and retry by:** <restart shape>
65
93
 
66
- ## Build plan & status
67
- Now: <number + name of the milestone in progress>
68
- 1. <milestone> previewed
69
- 2. <milestone> — ▶ in progress (<who: main agent | sub-agent>)
70
- 3. <milestone> — ⬜ (<parallel: sub-agent | serial: main agent — one-line why>)
71
- (One line per milestone; update on every start/finish; done requires its
72
- preview. This section is the post-compaction compass — resume from `Now:`.)
73
-
74
- ## Content (only when the request names plural content or a content genre)
75
- Every plural noun from the request becomes a countable line:
76
- - Quests: <N>, chained by <how>
77
- - Locations: <named list>
78
- - Enemies: <N kinds, which are bosses>
79
- - Grows: <levels/gear/abilities> · Earn/spend: <economy>
80
- - Ten minutes in, I am: <one honest sentence>
81
-
82
- ## Screens & UI
83
- Screens: <loader, menu, HUD, pause, win/lose…> · Style brief: <one line>
84
- References: <2–3 named games> · Menu archetype: <name>
85
- HUD lane: <sprites (…) | CSS (…, one-line justification)> — mandatory line;
86
- the concept decides it (director §5) and the preview preflight checks for it
87
- Menu video: <yes (the default for every game) | declined (player's reason)>
88
-
89
- ## Assets the generation plan AND the budget
90
- | Asset | Kind | Status | Wired? |
91
- |------------------|-------------|---------------------------------|--------|
92
- | Concept + HUD | image | landed → <URL> | n/a |
93
- | <main surface> | texture | generating (<id>) | — |
94
- | <hero model> | model | planned | — |
95
- | Background music | music | planned (one ~90s looping track)| — |
96
- | Menu still | image | enqueued on concept landing (<id>) | — |
97
- | Menu video | video | waits: yes / next preview after still / style-only-left | — |
98
- | Logotype | image | enqueued on concept landing (<id>) | — |
94
+ ## Content commitments (only when requested)
95
+ Record only promises present in the request or essential to its stated genre.
96
+ Make each promise countable or otherwise observable:
97
+ - <commitment>: <target and acceptance>
98
+ - <commitment>: <target and acceptance>
99
+
100
+ ## World & scale (only when relevant)
101
+ Intended scale: <request-derived size/shape>
102
+ Terrain/ground: <request-derived form>
103
+ Boundaries: <what the player encounters at the edge>
104
+ Locations: <requested named/countable locations>
105
+ (A requested large/open world is never silently replaced by one small flat
106
+ plane hidden by fog. Do not impose fixed kilometer, chunk, biome, or POI
107
+ defaults.)
108
+
109
+ ## Screens & UI (only when the UI/HUD/menu lane is invoked)
110
+ Screens: <only the requested/required states> · Style brief: <one line>
111
+ HUD lane: <sprites (…) | CSS (…, one-line justification)>
112
+ Menu video: <yes | declined (player's reason) | still fallback (reason)>
113
+
114
+ ## Assets the generation plan AND budget (only when used)
115
+ | Asset | Kind | Status | Wired? |
116
+ |---|---|---|---|
117
+ | <asset> | <model/image/texture/…> | planned | |
118
+ | <asset> | <kind> | generating (<id>) | |
119
+ | <asset> | <kind> | landed → <URL> | yes/no |
99
120
  Status flow: proposed → planned → generating (id) → landed (URL) → wired.
100
- (Optionally note the prompt gist per row — it makes style-change re-rolls one
101
- command.)
102
121
 
103
122
  **HUD pipeline state (sprites lane) — keep this current; it is how the
104
- pipeline survives a context compaction.** One row per stage with its
105
- generation id / output path, so a resumed session knows exactly where the
106
- chain stopped and what fires next:
123
+ pipeline survives a context compaction.**
107
124
  - Stage-1 mockup: <id → URL>
108
125
  - Stage-2 sheet: <id → URL>
109
126
  - Cleaned sheet: <id → URL>
@@ -111,100 +128,34 @@ chain stopped and what fires next:
111
128
  - Masks: <public/assets/hud/…-mask.png + sidecars>
112
129
  - Next stage: <what fires next, one line>
113
130
 
114
- ## World & scale
115
- <Size in numbers if open world; arena bounds otherwise. Streamed terrain? y/n>
116
-
117
- ## Multiplayer
118
- <single-player | ongoing world (connect) | fresh matches (matchmake: quorum,
119
- teams, backfill…)> — and why. Play-button rule: nothing connects before the
120
- click (when a Play screen exists).
121
-
122
- ## Modules — the build split
123
- ("Built by" is decided per game while drafting the plan — dependencies
124
- decide, with a one-line reason per row; the rows below are only a SHAPE.)
125
- | Module | Owns files | Built by | Done when |
131
+ ## Procedural assets (only for editable code-built references)
132
+ | Asset | Reference | Status | Wired? |
126
133
  |---|---|---|---|
127
- | Boot & identity | src/main.ts, src/genex-boot.ts | main agent (only writer of shared boot) | boots, tier wired, initEmbed runs |
128
- | World/terrain | src/world/** | parallel: sub-agent (no dependency on combat) | walkable, matches World & scale |
129
- | Quests & dialogue data | src/content/** | parallel: sub-agent (pure data) | counts match Content lines |
130
- | Enemies/AI | src/enemies/** | serial: main agent (tuned against movement feel) | roster matches Content |
131
- | HUD chain (style-dependent) | src/ui/** | parallel: sub-agent on concept landing | all screens from Screens & UI |
132
-
133
- ## Decisions & changes
134
- - <date> <one-liner per decision, including anything the player said no or
135
- yes to>
136
- ```
137
-
138
- ## Filled example (a small arena shooter)
139
-
140
- ```markdown
141
- # Rustyard Design
142
-
143
- ## Concept
144
- A scrap-robot arena shooter: you skate a magnetized junkyard bot around a
145
- crusher pit, blasting rival bots into spare parts before the magnet cycle
146
- pulls everything in. Fast, crunchy, thirty-second lives.
147
- Concept image: https://assets.genex.technology/g/rustyard/concept.png
148
- (standing — shown 2026-07-20; player said yes)
149
-
150
- ## Core loop
151
- - **You do:** skate + shoot
152
- - **To:** outscore three rival bots before the magnet cycle ends
153
- - **Under pressure from:** rivals hunting you; the pit's edges electrify as
154
- the cycle counts down
155
- - **You earn:** scrap for hits → speed/armor pickups mid-round
156
- - **You lose when:** your bot breaks → **and retry by:** one key, instant
157
- respawn, same round
158
-
159
- ## Build plan & status
160
- Now: ▶ 3. Rival AI feels dangerous
161
- 1. Arena skeleton + movement — ✅ → previewed
162
- 2. Shooting + scrap scoring — ✅ → previewed
163
- 3. Rival AI feels dangerous — ▶ main agent
164
- 4. HUD sprite swap — ⬜ parallel: sub-agent (concept landed, chain enqueued)
165
- 5. Magnet cycle + pickups — ⬜ parallel: sub-agent (own files, no AI dependency)
166
- 6. Menus, music, publish floors — ⬜
167
-
168
- ## Screens & UI
169
- Screens: loader, title menu, HUD (health, scrap, cycle timer), pause,
170
- win/lose. Style brief: oily metal, warning-stripe accents, stencil type.
171
- References: <three named AAA games>. Menu archetype: hangar pan.
172
- HUD lane: sprites (stencil-cut metal meters + riveted scrap counter — ornate
173
- material chrome, CSS can't pass for it)
174
- Menu video: yes
175
-
176
- ## Assets
177
- | Asset | Kind | Status | Wired? |
178
- |------------------|---------|----------------------------|--------|
179
- | Concept + HUD | image | landed → <URL> | n/a |
180
- | Junkyard ground | texture | landed → <URL> | yes |
181
- | Player bot | model | generating (gen_8f2k) | — |
182
- | Rival bot | model | planned | — |
183
- | Overcast sky | skybox | landed → <URL> | yes |
184
- | Blaster zap | sfx | landed → <URL> | yes |
185
- | Menu still | image | landed → <URL> | — |
186
- | Menu video | video | waiting (still landed — fires at yes / next preview / style-only-left) | — |
187
- | Logotype | image | generating (gen_9t3m) | — |
188
-
189
- HUD pipeline state: Stage-1 mockup gen_7a1x → URL · Stage-2 sheet gen_7b2y →
190
- URL · cleaned gen_7c3z → URL · extracted public/assets/hud/ · masks derived ·
191
- next: wire masked fills
192
-
193
- ## World & scale
194
- One 60×60 m arena, walled; no streaming.
195
-
196
- ## Multiplayer
197
- Single-player v1 (rivals are host-free local AI). Revisit after publish.
198
-
199
- ## Modules
134
+ | <object> | <private local path or separate Genex asset row> | building (blockout) | |
135
+ Status flow: proposed planned building (blockout | detail | material |
136
+ runtime) landed (<local TypeScript path>) wired.
137
+
138
+ ## Player character & animation (only when used)
139
+ Player character: <generated character id/status | VRM — explicit reason>
140
+ Character generations: <concept/preview/final IDs and URLs>
141
+ Animation: <catalog actions or generated motion IDs, bindings/manifests,
142
+ validation still open>
143
+
144
+ ## Multiplayer (only when 2+ players share a world)
145
+ <ongoing world (connect) | fresh matches (matchmake: quorum, teams,
146
+ backfill…)> — and why.
147
+ Play-button rule: nothing connects before the click when a Play screen exists.
148
+ Verification still open: <two-identity/netcode evidence>
149
+
150
+ ## Modules (whole coordinated mode or another useful split only)
200
151
  | Module | Owns files | Built by | Done when |
201
152
  |---|---|---|---|
202
- | Boot & identity | src/main.ts | main agent (shared boot) | boots, tier wired, initEmbed runs |
203
- | Arena & pickups | src/world/** | parallel: sub-agent (independent of AI) | walkable, magnet cycle fires |
204
- | Rival AI | src/enemies/** | serial: main agent (tuned vs player feel) | 3 rivals hunt + shoot |
205
- | HUD chain | src/ui/** | parallel: sub-agent on concept landing | all 5 screens live |
153
+ | <request-derived stream> | <disjoint paths> | <parallel/serial + reason> | <observable result> |
154
+
155
+ ## Verification evidence
156
+ - <preview URL/date and what it proves>
157
+ - <browser capture, interaction, phone, multiplayer, or owning-skill evidence>
206
158
 
207
159
  ## Decisions & changes
208
- - 2026-07-20player picked concept candidate 2; asked for "more sparks".
209
- - 2026-07-20 — sparks added as the ambient-motion loop, not particles-everywhere.
160
+ - <date><decision, assumption, explicit cancellation, or player re-scope>
210
161
  ```