@genex-ai/cli-demo 0.93.0-dev.247 → 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.
- package/dist/index.js +25 -4
- package/package.json +1 -1
- package/templates/skills/genex-ai-model/SKILL.md +3 -2
- package/templates/skills/genex-ai-skybox/SKILL.md +3 -3
- 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-threejs-exposure-color-grading/SKILL.md +3 -7
- 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-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,109 +1,126 @@
|
|
|
1
1
|
# The design contract — DESIGN.md
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
the
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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
|
-
# <
|
|
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
|
-
##
|
|
55
|
-
|
|
56
|
-
|
|
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
|
-
##
|
|
60
|
-
|
|
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
|
|
91
|
+
- **You earn:** <reward/progression, when requested>
|
|
64
92
|
- **You lose when:** <fail state> → **and retry by:** <restart shape>
|
|
65
93
|
|
|
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
|
-
| 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.**
|
|
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
|
-
##
|
|
115
|
-
|
|
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
|
-
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
##
|
|
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
|
-
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
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
|
-
-
|
|
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
|
```
|