@genex-ai/cli-demo 0.93.0 → 0.94.0-dev.250
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.
- package/dist/index.js +26 -5
- package/package.json +1 -1
- package/templates/skills/genex-ai-model/SKILL.md +3 -2
- package/templates/skills/genex-ai-skybox/SKILL.md +4 -4
- package/templates/skills/genex-ai-texture/SKILL.md +1 -1
- package/templates/skills/genex-ai-video/SKILL.md +1 -1
- package/templates/skills/genex-game-director/SKILL.md +321 -411
- package/templates/skills/genex-game-director/references/design-contract.md +130 -179
- package/templates/skills/genex-game-director/references/routing-map.md +242 -362
- package/templates/skills/genex-getting-started/SKILL.md +2 -2
- package/templates/skills/genex-threejs-exposure-color-grading/SKILL.md +3 -7
- package/templates/skills/genex-threejs-multiplayer/SKILL.md +19 -2
- package/templates/skills/genex-threejs-procedural-assets/SKILL.md +112 -0
- package/templates/skills/genex-threejs-procedural-materials/SKILL.md +3 -7
- package/templates/skills/genex-threejs-procedural-vfx/SKILL.md +6 -11
- package/templates/skills/genex-threejs-shadow-systems/SKILL.md +2 -3
- package/templates/skills/genex-threejs-visual-validation/SKILL.md +0 -4
- package/templates/skills/genex-updates/SKILL.md +1 -1
- package/templates/skills/genex-threejs-atmosphere-aerial-perspective/SKILL.md +0 -46
- package/templates/skills/genex-threejs-atmosphere-aerial-perspective/references/atmosphere.md +0 -213
- package/templates/skills/genex-threejs-bloom/SKILL.md +0 -44
- package/templates/skills/genex-threejs-bloom/references/bloom.md +0 -187
- package/templates/skills/genex-threejs-exposure-color-grading/references/exposure-grading.md +0 -205
- package/templates/skills/genex-threejs-game-content/SKILL.md +0 -198
- package/templates/skills/genex-threejs-game-content/references/content-tables.md +0 -269
- package/templates/skills/genex-threejs-image-pipeline/SKILL.md +0 -56
- package/templates/skills/genex-threejs-image-pipeline/references/image-pipeline.md +0 -197
- package/templates/skills/genex-threejs-lighting-design/SKILL.md +0 -144
- package/templates/skills/genex-threejs-lighting-design/references/light-recipes.md +0 -137
- package/templates/skills/genex-threejs-open-world/SKILL.md +0 -149
- package/templates/skills/genex-threejs-open-world/references/terrain-streaming.md +0 -215
- package/templates/skills/genex-threejs-precipitation-surfaces/SKILL.md +0 -59
- package/templates/skills/genex-threejs-precipitation-surfaces/references/precipitation-surfaces.md +0 -181
- package/templates/skills/genex-threejs-procedural-architecture/SKILL.md +0 -50
- package/templates/skills/genex-threejs-procedural-architecture/references/architecture-systems.md +0 -509
- package/templates/skills/genex-threejs-procedural-fields/SKILL.md +0 -61
- package/templates/skills/genex-threejs-procedural-fields/references/field-systems.md +0 -232
- package/templates/skills/genex-threejs-procedural-geometry/SKILL.md +0 -39
- package/templates/skills/genex-threejs-procedural-geometry/references/mesh-systems.md +0 -202
- package/templates/skills/genex-threejs-procedural-materials/references/material-systems.md +0 -198
- package/templates/skills/genex-threejs-procedural-planets/SKILL.md +0 -48
- package/templates/skills/genex-threejs-procedural-planets/references/planet-systems.md +0 -498
- package/templates/skills/genex-threejs-procedural-vegetation/SKILL.md +0 -52
- package/templates/skills/genex-threejs-procedural-vegetation/references/vegetation-systems.md +0 -314
- package/templates/skills/genex-threejs-procedural-vfx/references/vfx-systems.md +0 -218
- package/templates/skills/genex-threejs-raymarched-space-effects/SKILL.md +0 -37
- package/templates/skills/genex-threejs-raymarched-space-effects/references/space-effects.md +0 -194
- package/templates/skills/genex-threejs-screen-space-ambient-occlusion/SKILL.md +0 -35
- package/templates/skills/genex-threejs-screen-space-ambient-occlusion/references/ambient-occlusion.md +0 -441
- package/templates/skills/genex-threejs-spectral-ocean/SKILL.md +0 -52
- package/templates/skills/genex-threejs-spectral-ocean/references/spectral-ocean.md +0 -473
- package/templates/skills/genex-threejs-temporal-surfaces/SKILL.md +0 -41
- package/templates/skills/genex-threejs-temporal-surfaces/references/temporal-surfaces.md +0 -207
- package/templates/skills/genex-threejs-visual-validation/references/visual-validation.md +0 -427
- package/templates/skills/genex-threejs-volumetric-clouds/SKILL.md +0 -49
- package/templates/skills/genex-threejs-volumetric-clouds/references/volumetric-clouds.md +0 -579
- package/templates/skills/genex-threejs-water-optics/SKILL.md +0 -57
- package/templates/skills/genex-threejs-water-optics/references/water-optics.md +0 -195
|
@@ -1,430 +1,340 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: genex-game-director
|
|
3
|
-
description: The Genex
|
|
3
|
+
description: The lightweight Genex request router. Read the latest game, tool, component, or focused-change request; ask only genuinely unresolved build forks; keep DESIGN.md current; and load only the Genex skills that the requested work actually needs. Use first for new work, resumed work, or whenever ownership is unclear.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Genex Game Director
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
The player chooses what to build and in what order. You route that request;
|
|
9
|
+
the owning Genex skills control how their lanes run. Load only skills that
|
|
10
|
+
change the requested result—never the whole pack by default, and never
|
|
11
|
+
commission unrelated work because an old workflow listed it.
|
|
12
12
|
|
|
13
|
-
**After
|
|
14
|
-
`AGENTS.md
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
pipeline; those two files are how it comes back.
|
|
13
|
+
**After any context compaction or session resume**, re-read the project's
|
|
14
|
+
`AGENTS.md`, `DESIGN.md` when present, and the skill for the work you are
|
|
15
|
+
executing. Then follow the player's latest clear request; do not reconstruct
|
|
16
|
+
the project from memory or replay completed discovery.
|
|
18
17
|
|
|
19
|
-
## 1. Check
|
|
18
|
+
## 1. Check capabilities and boundaries once
|
|
20
19
|
|
|
21
|
-
Look at your
|
|
22
|
-
uses them:
|
|
20
|
+
Look at your available tools:
|
|
23
21
|
|
|
24
|
-
- **
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
- **Sub-agents
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
yourself; if not, ask the player to look and tell you what they see.
|
|
22
|
+
- **Question tool:** use it only when this skill says a real unresolved fork
|
|
23
|
+
remains; otherwise continue. Without one, ask one short plain-language
|
|
24
|
+
question in chat.
|
|
25
|
+
- **Sub-agents:** useful for independent workstreams in a whole coordinated
|
|
26
|
+
build; never required for focused work.
|
|
27
|
+
- **Browser:** use it to inspect the actual result. Without one, ask the player
|
|
28
|
+
for the smallest useful visual observation.
|
|
32
29
|
|
|
33
|
-
Never claim a capability you
|
|
30
|
+
Never claim a capability you did not find, and never stall because one is
|
|
34
31
|
missing.
|
|
35
32
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
for
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
`genex
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
- `npx genex
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
- `npx genex
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
-
|
|
131
|
-
|
|
132
|
-
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
out before the world exists.
|
|
297
|
-
- Give each worker everything by path: the `DESIGN.md` path, its Modules row,
|
|
298
|
-
and the skill files it needs (skills live in this project —
|
|
299
|
-
`.claude/skills/<name>/SKILL.md`, `.codex/skills/…`, or `.cursor/skills/…`,
|
|
300
|
-
whichever this project has). A worker prompt shape that works: "You own the
|
|
301
|
-
`<row>` module of `<project>/DESIGN.md` — read it first, then read the
|
|
302
|
-
named skill files. Build ONLY the files your row owns. Generate ONLY your
|
|
303
|
-
row's assets already marked `planned` in the Assets table; anything new you
|
|
304
|
-
need, add it as a `proposed` row and say so. Report what landed and what's
|
|
305
|
-
left."
|
|
306
|
-
- **The Assets table is the budget.** A worker runs generation commands only
|
|
307
|
-
for its own rows already marked `planned`; anything new it wants goes in as
|
|
308
|
-
a `proposed` row for you to approve first. An asset-shepherd lane polls
|
|
309
|
-
`npx genex wait --all` and wires + flips landed rows to `wired` — it never
|
|
310
|
-
enqueues. (Whoever wires the HUD after a worker finishes follows
|
|
311
|
-
`$genex-ai-hud`'s handoff rule: read the produced mask/bbox JSON from disk,
|
|
312
|
-
never wire from a prose summary.)
|
|
313
|
-
- Do NOT spawn workers to write extra test suites, audits, or verification
|
|
314
|
-
passes — the per-milestone smoke pass is yours, the director's, and it is
|
|
315
|
-
ONE pass (§8; the scaffold prompt owns the ceilings).
|
|
316
|
-
- If you build a module the table planned for a sub-agent inline, say why in
|
|
317
|
-
one line in chat ("built enemies inline — the arena worker was still
|
|
318
|
-
holding the only free slot"). The table is accountability, not ceremony —
|
|
319
|
-
inline can be the right call.
|
|
320
|
-
|
|
321
|
-
## 7. The game's character (Meshy) — the player's body
|
|
322
|
-
|
|
323
|
-
**The game's own generated character IS the player's body**, wherever a
|
|
324
|
-
human body appears on screen. Third-person obviously; first-person too, the
|
|
325
|
-
moment remotes, a look-down body, a shadow, a death or spectator camera, or
|
|
326
|
-
a menu portrait shows one. "The camera is in the head" is not an exemption —
|
|
327
|
-
**"no human body ever appears in this game" is**, and a game whose player is
|
|
328
|
-
genuinely not a person (a car, a ship, an RTS cursor, a board) generates
|
|
329
|
-
that object with `npx genex model` instead.
|
|
330
|
-
|
|
331
|
-
Put its row in the Assets table up front and **enqueue it with your first
|
|
332
|
-
art actions** — its concepts ride the same review beat as the Stage-1 HUD
|
|
333
|
-
concept, so firing at minute 0 lands it around the v0 preview instead of
|
|
334
|
-
after it. `npx genex controller character` installs the controller and the
|
|
335
|
-
fallback body in one command; the boot path is written once and never
|
|
336
|
-
rewritten (`loadPlayerCharacter` — see
|
|
337
|
-
`$genex-threejs-character-controller`), so when the character lands,
|
|
338
|
-
`npx genex controller character --character <id>` is the entire switch.
|
|
339
|
-
|
|
340
|
-
The profile VRM avatar is the FALLBACK, in two shapes and both spoken
|
|
341
|
-
aloud: a temporary body while the character renders (say so plainly — it's
|
|
342
|
-
a fully textured animated humanoid, so nothing on screen will look
|
|
343
|
-
unfinished enough to remind you), or the stand-in when generation genuinely
|
|
344
|
-
could not happen (out of credits, failed, unverified), recorded in DESIGN.md
|
|
345
|
-
as `Player character: VRM — <reason>`. A capsule or hand-built primitive
|
|
346
|
-
standing in for a person is never a shipped state, for the local player or a
|
|
347
|
-
remote one. In a game with a generated character, every remote wears it —
|
|
348
|
-
a mixed roster of one themed hero plus stock avatars is the same incoherence
|
|
349
|
-
as capsule-and-cone remotes.
|
|
350
|
-
|
|
351
|
-
**The default lane has ONE user stop, and it rides the concept review.**
|
|
352
|
-
When the user names a visual reference, inspect references before writing
|
|
353
|
-
the concept prompt. Generate exactly three concepts, all neutral A-pose;
|
|
354
|
-
never use a dynamic concept pose or silently fall back to T-pose. Warn that
|
|
355
|
-
held, slung, or overlapping props and straps can fuse into the body or
|
|
356
|
-
obscure limbs, and recommend separate gameplay props. Show the actual
|
|
357
|
-
images in the SAME beat as the game-concept keep-or-change question — one
|
|
358
|
-
review, two picks. The player's pick carries the lane end to end:
|
|
359
|
-
`npx genex character preview <concept-id> --candidate <1|2|3> --user-approved`,
|
|
360
|
-
then finalize below. **If the player hasn't picked by the time the
|
|
361
|
-
character blocks progress (or ~10 minutes), pick the strongest candidate
|
|
362
|
-
yourself, say which and why in chat, and proceed** — this auto-proceed is
|
|
363
|
-
owner-ratified platform policy (2026-07-23), not an agent liberty; record
|
|
364
|
-
it in DESIGN.md → Decisions ("auto-picked candidate 2 — cleanest
|
|
365
|
-
silhouette; player away").
|
|
33
|
+
Your platform may bundle its own image/video generation and site-building,
|
|
34
|
+
hosting, or deploy skills. **They are not Genex lanes.** All generated art,
|
|
35
|
+
audio, video, characters, and UI come from `genex` commands unless the player
|
|
36
|
+
explicitly asks for another tool by name. A local reference image is not a
|
|
37
|
+
reason to switch tools: `genex image --edit` and `--inpaint` accept local
|
|
38
|
+
paths. Building, previewing, and publishing use `genex preview` /
|
|
39
|
+
`genex publish`; do not load a competing hosting workflow.
|
|
40
|
+
|
|
41
|
+
## 2. Route the latest request
|
|
42
|
+
|
|
43
|
+
Use the request in front of you, not the oldest description of the project.
|
|
44
|
+
|
|
45
|
+
- **Clear focused request**—“work on the UI,” “fix movement,” “add one enemy,”
|
|
46
|
+
“make this prop,” “publish this”—read the touched implementation and
|
|
47
|
+
`DESIGN.md`, load only the owning skills, update `Now:`, and start. Do not
|
|
48
|
+
re-pitch the game, ask whole-game-versus-one-part again, force a concept
|
|
49
|
+
round, restart completed milestones, or add adjacent work.
|
|
50
|
+
- **Clear new game request with a named scope** starts from that scope. Record
|
|
51
|
+
the requested destination and proceed; ask only a missing decision that
|
|
52
|
+
materially changes architecture or player experience.
|
|
53
|
+
- **Broad full-game request** may need one scope choice: “Should I build the
|
|
54
|
+
whole game as coordinated milestones, or start with one part?” Offer only
|
|
55
|
+
request-relevant parts—such as movement, core gameplay, world, enemies, UI,
|
|
56
|
+
multiplayer, or a named tool. If the player already chose a part or clearly
|
|
57
|
+
asked for the complete game, skip the question.
|
|
58
|
+
- **Blank or genuinely unclear intake** asks one neutral question: are they
|
|
59
|
+
making a game, building a tool/component, or changing existing work? Do not
|
|
60
|
+
invent or propose game concepts for them.
|
|
61
|
+
- **Existing project** respects its renderer, physics, file conventions, and
|
|
62
|
+
working systems unless the player asks to change them.
|
|
63
|
+
|
|
64
|
+
Ask one decision at a time. Never ask the player to choose an SDK, engine,
|
|
65
|
+
renderer, file layout, provider, or other implementation detail. Product
|
|
66
|
+
defaults fill missing implementation choices; they never override a clear
|
|
67
|
+
request.
|
|
68
|
+
|
|
69
|
+
The player's latest direction may replace `Now:` immediately. Preserve
|
|
70
|
+
unfinished requested work as open commitments unless the player cancels or
|
|
71
|
+
re-scopes it; focused work changes the current order, not historical truth.
|
|
72
|
+
|
|
73
|
+
## 3. Keep DESIGN.md as durable memory
|
|
74
|
+
|
|
75
|
+
For a new project or substantial multi-step request, create `DESIGN.md` from
|
|
76
|
+
[references/design-contract.md](references/design-contract.md). For existing
|
|
77
|
+
work, update only the sections touched by the latest request. A tiny focused
|
|
78
|
+
fix does not need unrelated sections filled in.
|
|
79
|
+
|
|
80
|
+
The file keeps three truths separate:
|
|
81
|
+
|
|
82
|
+
1. **Requested outcome**—the player's final target, changed only by the player.
|
|
83
|
+
2. **Current focus**—the exact `Now:` item and its observable done condition.
|
|
84
|
+
3. **Open commitments**—requested work not completed, cancelled, or re-scoped.
|
|
85
|
+
|
|
86
|
+
Also record the working mode: `whole coordinated build`, `step by step`, or
|
|
87
|
+
`focused change`. Step-by-step changes order, not destination. The build plan
|
|
88
|
+
is current, never “locked”; tell the player only that their request is recorded
|
|
89
|
+
in `DESIGN.md` and you will keep it current.
|
|
90
|
+
|
|
91
|
+
Preserve the exact markers used by existing machinery: `## Build plan &
|
|
92
|
+
status`, `Now:`, `HUD lane:`, `Menu video:`, HUD pipeline stage IDs and paths,
|
|
93
|
+
`Player character:`, generation IDs and permanent URLs, and asset wiring
|
|
94
|
+
state. The paid Assets flow remains:
|
|
95
|
+
|
|
96
|
+
`proposed → planned → generating (id) → landed (URL) → wired`
|
|
97
|
+
|
|
98
|
+
A landed asset is not complete until wired or visibly cancelled. Procedural
|
|
99
|
+
code-built assets use their own local flow:
|
|
100
|
+
|
|
101
|
+
`proposed → planned → building (blockout | detail | material | runtime) →
|
|
102
|
+
landed (<local TypeScript path>) → wired`
|
|
103
|
+
|
|
104
|
+
Never invent a provider generation ID for local code. Sections for gameplay,
|
|
105
|
+
content, UI, world, assets, multiplayer, character/animation, tools, or
|
|
106
|
+
modules are conditional on the request and existing project.
|
|
107
|
+
|
|
108
|
+
## 4. Route to the owning lane
|
|
109
|
+
|
|
110
|
+
Use the [routing map](references/routing-map.md) for exact ownership. The main
|
|
111
|
+
Genex asset and runtime lanes are:
|
|
112
|
+
|
|
113
|
+
- `npx genex model "<prompt>"`—a static GLB → `$genex-ai-model`
|
|
114
|
+
- `npx genex texture "<prompt>"`—a generated surface → `$genex-ai-texture`
|
|
115
|
+
- `npx genex skybox "<prompt>"`—a 360° environment-only sky →
|
|
116
|
+
`$genex-ai-skybox`
|
|
117
|
+
- `npx genex sfx "<prompt>"` / `music` / `voice` →
|
|
118
|
+
`$genex-ai-sfx`, `$genex-ai-music`, `$genex-ai-voice`
|
|
119
|
+
- `npx genex image "<prompt>"` / `video`—2D and motion art →
|
|
120
|
+
`$genex-ai-image`, `$genex-ai-video`
|
|
121
|
+
- UI, HUD, and menu requests → `$genex-threejs-game-ui`,
|
|
122
|
+
`$genex-ai-hud`, `$genex-ai-menu`
|
|
123
|
+
- `npx genex character`, `creature`, and their motion commands →
|
|
124
|
+
`$genex-ai-character`, `$genex-threejs-creatures`
|
|
125
|
+
- movement and vehicles → `$genex-threejs-character-controller`,
|
|
126
|
+
`$genex-threejs-vehicle-controllers`
|
|
127
|
+
- phone input and phone-survivable rendering →
|
|
128
|
+
`$genex-threejs-touch-controls`, `$genex-threejs-adaptive-quality`
|
|
129
|
+
- editable, parameterized reference objects or simple environment pieces →
|
|
130
|
+
`$genex-threejs-procedural-assets`
|
|
131
|
+
|
|
132
|
+
For “make this image 3D,” ask **one** route question only when both results
|
|
133
|
+
honestly fit: a generated static GLB, or editable parameterized Three.js code.
|
|
134
|
+
If the request says procedural, parametric, code-built, reusable variations,
|
|
135
|
+
or names a GLB, start the corresponding route directly. An image alone never
|
|
136
|
+
auto-triggers the procedural lane. Player bodies, rigged characters/creatures,
|
|
137
|
+
and animation stay with their protected owners.
|
|
138
|
+
|
|
139
|
+
If a procedural request has a private reference, use it locally and do not
|
|
140
|
+
upload, publish, or commit it without explicit permission. If no reference was
|
|
141
|
+
supplied and creating one is part of the requested work, use the existing
|
|
142
|
+
`npx genex image` lane unchanged and record that paid reference as its own
|
|
143
|
+
Assets row.
|
|
144
|
+
|
|
145
|
+
Plan and generate only assets the current request earns. In a whole coordinated
|
|
146
|
+
game build, derive the set from the requested outcome and commitments; in
|
|
147
|
+
focused work, do not create a default “core set” outside the touched scope.
|
|
148
|
+
Run independent planned generations with `--no-wait`, scaffold while they
|
|
149
|
+
land, and preserve their IDs, URLs, and wiring state.
|
|
150
|
+
|
|
151
|
+
## 5. Execute by working mode
|
|
152
|
+
|
|
153
|
+
### Focused change
|
|
154
|
+
|
|
155
|
+
Start directly. Read the touched files, preserve working systems, update the
|
|
156
|
+
relevant `DESIGN.md` section and `Now:`, execute the owning lane, and verify
|
|
157
|
+
the requested result. Skip unrelated discovery, module fan-out, UI/HUD
|
|
158
|
+
concepts, asset batches, and critic loops.
|
|
159
|
+
|
|
160
|
+
### Step by step
|
|
161
|
+
|
|
162
|
+
Set `Now:` to the chosen request-relevant part and build it. Preserve the
|
|
163
|
+
player's final requested outcome and every other unfinished promise under Open
|
|
164
|
+
commitments. When the step is previewed, ask what they want next only if their
|
|
165
|
+
latest message did not already say.
|
|
166
|
+
|
|
167
|
+
### Whole coordinated build
|
|
168
|
+
|
|
169
|
+
Turn the actual request into milestones and workstreams. The director may run
|
|
170
|
+
independent work in parallel and move through internal milestones without
|
|
171
|
+
asking the player to manage each one. Dependencies determine order; no fixed
|
|
172
|
+
module list does.
|
|
173
|
+
|
|
174
|
+
For every new game, preserve the platform foundations:
|
|
175
|
+
|
|
176
|
+
1. `$genex-threejs-embed-auth` owns identity and runs before boot code.
|
|
177
|
+
2. `$genex-threejs-adaptive-quality` owns device tiers, the runtime governor,
|
|
178
|
+
and generated-asset rungs at boot.
|
|
179
|
+
3. `$genex-threejs-touch-controls` owns mobile input whenever its recipe fits.
|
|
180
|
+
4. `$genex-threejs-multiplayer` loads before networking code whenever 2+
|
|
181
|
+
players share a world.
|
|
182
|
+
|
|
183
|
+
Record only content and world promises present in the request or essential to
|
|
184
|
+
its stated genre. Make them countable or otherwise observable before choosing
|
|
185
|
+
the paid asset batch. A requested large/open world records its intended scale,
|
|
186
|
+
terrain/ground, boundaries, and locations from the request; never silently
|
|
187
|
+
replace it with one small flat plane hidden by fog or impose fixed kilometer,
|
|
188
|
+
chunk, biome, or POI defaults. Generated-asset availability never decides how
|
|
189
|
+
much game the player receives. Ask one scope question only when a real
|
|
190
|
+
reduction is required.
|
|
191
|
+
|
|
192
|
+
There is **no startup game, UI, or HUD concept gate**. Schedule UI/HUD/menu at
|
|
193
|
+
the appropriate later milestone when the complete requested outcome includes
|
|
194
|
+
those surfaces. Enter that lane immediately when the player asks for it, and
|
|
195
|
+
skip it during unrelated focused work.
|
|
196
|
+
|
|
197
|
+
### When the UI/HUD/menu lane is invoked
|
|
198
|
+
|
|
199
|
+
The existing owning skills control the full pipeline. Do not simplify or
|
|
200
|
+
bypass their FAL calls, credits, checkpoints, retries, Stage-1/Stage-2 prompts,
|
|
201
|
+
extraction, masks, wiring, markers, nudges, or preflights.
|
|
202
|
+
|
|
203
|
+
The Stage-1 mockup decides the HUD implementation and `DESIGN.md` records it:
|
|
204
|
+
ornate/painterly/material chrome → `HUD lane: sprites (…)`; flat geometry plus
|
|
205
|
+
typography that CSS can reproduce screenshot-indistinguishably →
|
|
206
|
+
`HUD lane: CSS (…, one-line justification)`. Unsure → sprites. The player's
|
|
207
|
+
explicit lane request wins. Once invoked, follow `$genex-ai-hud` and
|
|
208
|
+
`$genex-ai-menu` exactly, including `Menu video:` and every HUD pipeline state
|
|
209
|
+
marker.
|
|
210
|
+
|
|
211
|
+
In both lanes, micro-text stays HTML text in the chosen font, and no generic
|
|
212
|
+
rectangular plate appears behind bars, digits, or icons; a genuinely shaped
|
|
213
|
+
plate comes from `npx genex ui plate`.
|
|
214
|
+
|
|
215
|
+
### Controls that move
|
|
216
|
+
|
|
217
|
+
For every game that moves, apply the screen-direction contract and record the
|
|
218
|
+
pointer bucket and input-direction convention:
|
|
219
|
+
|
|
220
|
+
- `$genex-threejs-camera-direction` owns pointer lock. First-person/FPS
|
|
221
|
+
shooters and other mouse-aimed action keep it; cursor-core games and orbit
|
|
222
|
+
showcases pass `pointerLockAim: false`; keyboard-only games lock the unused
|
|
223
|
+
cursor during play.
|
|
224
|
+
- D/ArrowRight moves or turns screen-right, mouse-right turns the view right,
|
|
225
|
+
and drag-pan axes share one convention. Copy the verified bases from the
|
|
226
|
+
camera skill before writing hand-rolled signs.
|
|
227
|
+
|
|
228
|
+
## 6. Coordinate only when coordination helps
|
|
229
|
+
|
|
230
|
+
Whole coordinated mode may use sub-agents for independent, request-derived
|
|
231
|
+
workstreams. Focused work skips fan-out unless the requested task itself has
|
|
232
|
+
usefully independent pieces.
|
|
233
|
+
|
|
234
|
+
- One worker owns one disjoint file set. The main agent remains the integrator
|
|
235
|
+
and only writer of shared boot, main-loop, and netcode files.
|
|
236
|
+
- Give each worker the `DESIGN.md` path, its exact row, owned files, relevant
|
|
237
|
+
skill paths, and observable done condition. Workers do not spawn workers.
|
|
238
|
+
- A worker generates only Assets rows already marked `planned`; new wants
|
|
239
|
+
enter as `proposed`. Whoever wires HUD output reads its mask/bbox files, not
|
|
240
|
+
a prose summary.
|
|
241
|
+
- Do not create workers merely to write extra test suites or reports.
|
|
242
|
+
|
|
243
|
+
For a substantial, judgeable result in whole coordinated mode, a **fresh
|
|
244
|
+
critic may** inspect the actual game, rendered pixels, reference, or test
|
|
245
|
+
result—not the builder's summary. It returns the single largest meaningful
|
|
246
|
+
gap; the builder may address that gap and request another fresh look. This is
|
|
247
|
+
permission, not ceremony: no fixed round count, progress site, per-round
|
|
248
|
+
ledger, or user approval between internal rounds.
|
|
249
|
+
|
|
250
|
+
Stop when the requested acceptance is reached, improvement becomes immaterial,
|
|
251
|
+
the player redirects the work, or the available time/compute budget is spent.
|
|
252
|
+
A critic may identify a protected or paid-lane problem, but may not bypass,
|
|
253
|
+
rewrite, or automatically repeat that lane; follow-up still uses its existing
|
|
254
|
+
approval, checkpoint, retry, credit, and verification behavior.
|
|
255
|
+
|
|
256
|
+
## 7. The game's character (Meshy)—the player's body
|
|
257
|
+
|
|
258
|
+
**The game's own generated character is the player's body** wherever a human
|
|
259
|
+
body appears on screen. Third-person obviously; first-person too when remotes,
|
|
260
|
+
a look-down body, shadow, death/spectator camera, or menu portrait shows one.
|
|
261
|
+
“No human body ever appears” is the exemption—not “the camera is in the
|
|
262
|
+
head.” A genuinely non-person player (car, ship, RTS cursor, board) uses
|
|
263
|
+
`npx genex model` instead.
|
|
264
|
+
|
|
265
|
+
When this lane is relevant, put its row in the Assets table and enqueue it
|
|
266
|
+
when its milestone starts—or in parallel when whole coordinated mode makes
|
|
267
|
+
that useful. Its asset-specific concept review is its own beat; it never waits
|
|
268
|
+
for or requires a UI concept. `npx genex controller character` installs the
|
|
269
|
+
controller and fallback body; `loadPlayerCharacter` keeps the boot path stable,
|
|
270
|
+
and `npx genex controller character --character <id>` switches the manifest
|
|
271
|
+
when the generated body lands.
|
|
272
|
+
|
|
273
|
+
The profile VRM avatar is the fallback: a temporary body while generation
|
|
274
|
+
runs, or the stand-in when generation genuinely could not happen, recorded as
|
|
275
|
+
`Player character: VRM — <reason>`. A capsule or hand-built primitive is never
|
|
276
|
+
a shipped human body. In multiplayer, every remote wears the generated game
|
|
277
|
+
character when one exists.
|
|
278
|
+
|
|
279
|
+
**The default lane has one user stop: the character concept review.** When the
|
|
280
|
+
user names a visual reference, inspect references before writing the concept
|
|
281
|
+
prompt. Generate exactly three concepts, all neutral A-pose; never use a
|
|
282
|
+
dynamic concept pose or silently fall back to T-pose. Warn that held, slung,
|
|
283
|
+
or overlapping props and straps can fuse into the body or obscure limbs, and
|
|
284
|
+
recommend separate gameplay props. Show the actual images and wait for the
|
|
285
|
+
player to explicitly select a candidate. Their pick carries the lane:
|
|
286
|
+
|
|
287
|
+
`npx genex character preview <concept-id> --candidate <1|2|3> --user-approved`
|
|
288
|
+
|
|
289
|
+
If the player has not picked by the time the character blocks progress (or
|
|
290
|
+
~10 minutes), use the existing owner-ratified platform policy (2026-07-23):
|
|
291
|
+
pick the strongest candidate, say which and why in chat, proceed, and record
|
|
292
|
+
the decision in `DESIGN.md`.
|
|
366
293
|
|
|
367
294
|
Meshy Image-to-3D first produces an unremeshed high-detail model. Show its
|
|
368
295
|
front, back, left, and right views and report its measured face count.
|
|
369
|
-
Preserve that model in R2. The 10,000-face triangle remesh—not the
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
`npx genex character finalize <preview-id> --user-approved --approve-remesh 10000 [--animation <action-id>…]
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
fill), and an enemy you never faced head-on may be looking sideways at
|
|
408
|
-
everyone.
|
|
409
|
-
- **Once the menu video is wired:** watch one full loop cycle as rendered
|
|
410
|
-
(`$genex-ai-menu`'s seam check). A metadata probe can't see a seam, a
|
|
411
|
-
hidden video, or a leftover panel covering it.
|
|
412
|
-
|
|
413
|
-
Judge each capture against DESIGN.md once, fix only what is visibly broken,
|
|
414
|
-
and move on — the captures are eyes, not a test suite.
|
|
415
|
-
|
|
416
|
-
**Fresh eyes before publish.** The pre-publish check is just the last
|
|
417
|
-
milestone's pass, plus this: take the game's current screenshots (desktop
|
|
418
|
-
and phone sizes) and hand them, with DESIGN.md only, to a fresh reviewer —
|
|
419
|
-
a sub-agent if you have one, otherwise re-read them yourself adversarially,
|
|
420
|
-
looking to refute "it's done": untextured surfaces, a bare HUD, missing
|
|
421
|
-
screens, Content lines not in the game, Assets rows never flipped to
|
|
422
|
-
`wired`, `proposed` rows never resolved. Fix or honestly report what it
|
|
423
|
-
finds; never publish over an unacknowledged gap.
|
|
296
|
+
Preserve that model in R2. The 10,000-face triangle remesh—not the high-detail
|
|
297
|
+
source—is rigged and animated. In the default lane, the pick authorizes that
|
|
298
|
+
remesh:
|
|
299
|
+
|
|
300
|
+
`npx genex character finalize <preview-id> --user-approved --approve-remesh 10000 [--animation <action-id>…]`
|
|
301
|
+
|
|
302
|
+
When the player explicitly requested a custom character, keep the existing
|
|
303
|
+
two stops: wait for candidate selection before Image-to-3D, then wait for
|
|
304
|
+
explicit remesh approval before finalize. The `--direct-text` legacy path is
|
|
305
|
+
not a substitute.
|
|
306
|
+
|
|
307
|
+
Load `$genex-ai-character`, search actions with
|
|
308
|
+
`npx genex animations search "<intent>" --json`, and never invent IDs. Meshy
|
|
309
|
+
limb rotations play unchanged. Never freeze hand tracks or apply post-mixer
|
|
310
|
+
arm, hand, leg, or foot corrections. Only horizontal root or hip translation
|
|
311
|
+
may be normalized for Rapier. The character controller owns collision and
|
|
312
|
+
world translation. Before handoff, visibly check idle, walk, run, crouch-idle,
|
|
313
|
+
crouch-move, and jump, plus every control the HUD advertises.
|
|
314
|
+
|
|
315
|
+
## 8. Verify in proportion to the request
|
|
316
|
+
|
|
317
|
+
Focused work verifies the focused result and the owning skill's required
|
|
318
|
+
evidence; it does not trigger a whole-project audit. A milestone preview uses
|
|
319
|
+
one smoke pass after the preview, not a new test suite.
|
|
320
|
+
|
|
321
|
+
- Always capture the relevant running result and exercise the changed control
|
|
322
|
+
or interaction in its labeled direction.
|
|
323
|
+
- Once a generated HUD is wired, capture gameplay after a changing value
|
|
324
|
+
(such as damage) so masks/fills are visible.
|
|
325
|
+
- Once menu video is wired, watch one full rendered loop using
|
|
326
|
+
`$genex-ai-menu`'s seam check.
|
|
327
|
+
- Multiplayer uses the existing two-distinct-identity netcode feel gate.
|
|
328
|
+
- Character/animation uses the owning lane's pose, clip, and controller checks.
|
|
329
|
+
|
|
330
|
+
Judge evidence against the requested result and current `DESIGN.md`, fix
|
|
331
|
+
meaningful gaps, and move on. An explicit preview or publish request runs the
|
|
332
|
+
existing protected flow directly; report open commitments honestly rather
|
|
333
|
+
than restarting design discovery.
|
|
424
334
|
|
|
425
335
|
## 9. Say it straight
|
|
426
336
|
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
337
|
+
“Loaded” means you read a file. “Built” means the thing runs. “Done” means the
|
|
338
|
+
requested acceptance and relevant owning-lane checks are true. Never report a
|
|
339
|
+
skill as applied because you read it, an asset as wired because it generated,
|
|
340
|
+
or the full requested outcome as complete while Open commitments remain.
|