@genex-ai/cli-demo 0.84.0-dev.215 → 0.85.0-dev.216
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/README.md +9 -7
- package/dist/index.js +2110 -1871
- package/package.json +1 -1
- package/templates/skills/genex-ai-hud/SKILL.md +45 -27
- package/templates/skills/genex-ai-hud/references/stage1-prompt-template.md +42 -5
- package/templates/skills/genex-ai-hud/references/stage2-prompt-template.md +5 -1
- package/templates/skills/genex-ai-menu/SKILL.md +12 -5
- package/templates/skills/genex-game-director/SKILL.md +56 -15
- package/templates/skills/genex-game-director/references/design-contract.md +33 -8
- package/templates/skills/genex-game-director/references/routing-map.md +40 -28
- package/templates/skills/genex-threejs-character-controller/SKILL.md +19 -0
- package/templates/skills/genex-threejs-creatures/SKILL.md +8 -0
- package/templates/skills/genex-threejs-game-ui/SKILL.md +74 -70
- package/templates/skills/genex-threejs-visual-validation/SKILL.md +9 -4
|
@@ -71,66 +71,62 @@ and how the space reads (route, scale) — plus the brief's palette,
|
|
|
71
71
|
materials, and light. A beautiful empty vista with nothing to fight and
|
|
72
72
|
nowhere to go is a FAILED concept; so is one that invents mechanics the
|
|
73
73
|
game doesn't have (a lap counter in a game without laps). Generate it
|
|
74
|
-
`--size 2560x1440 --quality high --
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
(the verb), what threatens the player, what they chase,
|
|
80
|
-
and the brief's palette / materials / light /
|
|
81
|
-
weighing a stated direction, not guessing at a
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
user
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
menu
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
user still gets a walkable first version, and the instant they say yes the
|
|
113
|
-
style pipeline launches against the frame they approved. (A user who vanishes
|
|
114
|
-
entirely leaves the LOOK pending, not the game — the deliberate trade for
|
|
115
|
-
never committing a style behind their back.)
|
|
74
|
+
`--size 2560x1440 --quality high --no-wait`, enqueued FIRST of all art —
|
|
75
|
+
ONE image, no candidate variants unless the user asks; its URL goes into
|
|
76
|
+
the style-brief comment.
|
|
77
|
+
|
|
78
|
+
**Describe the concept in words while it renders.** Lay it out in chat —
|
|
79
|
+
the playable moment (the verb), what threatens the player, what they chase,
|
|
80
|
+
how the space reads, and the brief's palette / materials / light /
|
|
81
|
+
references — so the user is weighing a stated direction, not guessing at a
|
|
82
|
+
picture.
|
|
83
|
+
|
|
84
|
+
**The moment the mockup lands, the style chain fires — then the user sees
|
|
85
|
+
the frame.** In this order, no waiting between the steps: decide the HUD
|
|
86
|
+
lane as art director and record the `HUD lane:` line in DESIGN.md
|
|
87
|
+
(`$genex-game-director` §5 owns the criteria), enqueue the style-dependent
|
|
88
|
+
chain `--no-wait` — the HUD Stage-2 deconstruct (from the mockup), the menu
|
|
89
|
+
still (`--edit`-anchored to it), and the logotype — and THEN show the frame:
|
|
90
|
+
pick it up with `genex wait <id> --open` (or generate with `--open`) so it
|
|
91
|
+
opens in the user's browser AND prints the link, and paste the URL as a
|
|
92
|
+
clickable link — a URL is invisible in a terminal, and "do you like it?"
|
|
93
|
+
with no picture in front of the user is the #1 way this checkpoint fails.
|
|
94
|
+
|
|
95
|
+
**Ask keep-or-change with your question tool — as INFORMATION, never a
|
|
96
|
+
gate.** The one that shows clickable options; a short numbered list in chat
|
|
97
|
+
only where there is none. ONE question — "this is roughly how the game and
|
|
98
|
+
its HUD will look — keep this direction, or change something?" — with
|
|
99
|
+
concrete keep / change options. The chain is already running while they
|
|
100
|
+
read it: silence means the concept stands; nothing except the menu VIDEO
|
|
101
|
+
ever waits for the answer. The user still gets a real say — a "change" at
|
|
102
|
+
any time loops the concept with their notes at image prices (below). The
|
|
103
|
+
menu video (the one expensive item) fires at the FIRST of: the user's yes ·
|
|
104
|
+
the next `genex preview` after the menu still landed · style work being the
|
|
105
|
+
only work left — and never while a user objection is open
|
|
106
|
+
(`$genex-ai-menu` owns the trigger). (The core asset set — hero model,
|
|
107
|
+
ground texture, skybox, sfx — is prompted from the game IDEA, not the
|
|
108
|
+
image, and mostly survives a style change: launch it up front with
|
|
109
|
+
placeholders. Everything style-independent — scaffold, boot wiring, the
|
|
110
|
+
core loop, the gameplay-LOGIC subagent modules — keeps moving at full speed
|
|
111
|
+
in parallel throughout.)
|
|
116
112
|
|
|
117
113
|
**Change reopens the loop, same shape.** If the user picks "change" — or
|
|
118
114
|
comes back with notes immediately or an hour later — re-run Stage 1 (the
|
|
119
|
-
concept mockup itself) with their exact notes
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
re-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
115
|
+
concept mockup itself) with their exact notes, open + link the new frame,
|
|
116
|
+
ask again the same structured way, and re-run the cheap chain from the new
|
|
117
|
+
frame (image-priced — that is the design: the correction lane is cheap
|
|
118
|
+
because the expensive item waited). Carry every note forward so each round
|
|
119
|
+
compounds; if two rounds don't converge, offer 2–3 distinct directions
|
|
120
|
+
(that's the one moment `--candidates` earns its place) instead of
|
|
121
|
+
re-rolling blind. Each standing frame is the working style. When the style
|
|
122
|
+
changes after downstream art already ran, re-anchor it: the menu still is
|
|
123
|
+
re-edited (`--edit`) against the new mockup and its video re-run once from
|
|
124
|
+
the new still (`$genex-ai-menu` — a user-driven style change re-opens its
|
|
125
|
+
one-video rule), and the HUD deconstruct (Stage 2 onward, `$genex-ai-hud`)
|
|
126
|
+
restarts from the new mockup. Style-neutral assets (most textures, sfx,
|
|
127
|
+
models) usually survive — judge each in one line. The same "open it + paste
|
|
128
|
+
the link" rule covers every image the user weighs in on — the menu still,
|
|
129
|
+
the HUD mockup.
|
|
134
130
|
|
|
135
131
|
**The concept anchors STYLE, not truth.** Palette, materials, light, and
|
|
136
132
|
register come from the frame; CONTENT comes from the game contract. This
|
|
@@ -165,13 +161,16 @@ rule explicitly does not apply to this one message):
|
|
|
165
161
|
```
|
|
166
162
|
UI plan
|
|
167
163
|
• Screens: <list with tiers — loader / menu / pause (Esc) / win/lose / …>
|
|
168
|
-
• Style: <4–5 named hues> · fonts <display> / <body>
|
|
164
|
+
• Style: <4–5 named hues> · fonts <display> / <body> (from $genex-ai-menu's
|
|
165
|
+
genre table, or a one-line reason)
|
|
169
166
|
• References: <2–3 AAA games — one line on what's borrowed>
|
|
170
167
|
• Menu: <archetype + button treatment, one-line reason from the brief>
|
|
171
|
-
•
|
|
172
|
-
•
|
|
173
|
-
|
|
174
|
-
|
|
168
|
+
• HUD lane: <sprites (…) | CSS (…, one-line justification)> — recorded in DESIGN.md
|
|
169
|
+
• Concept (HUD mockup): <generation id> — shown for keep / change
|
|
170
|
+
(informational — the chain below is already queued; silence = it stands)
|
|
171
|
+
• Queued on concept landing: HUD sheet (Stage 2) · menu still · logotype
|
|
172
|
+
<or "skipped: reason">; menu VIDEO waits for: your yes / the next preview
|
|
173
|
+
after the still lands / style work being all that's left <or "no menu: reason">
|
|
175
174
|
• Building now (style-independent): <core loop · logic modules already moving>
|
|
176
175
|
• Deferred from mockup: <widgets the image invented but the game lacks — or "none">
|
|
177
176
|
```
|
|
@@ -190,8 +189,9 @@ A message missing any line means the gate did not run — go back and run it.
|
|
|
190
189
|
every game), and the generated **logotype** — one `--transparent` wordmark
|
|
191
190
|
in the brief's display register (`$genex-ai-menu`'s logotype step), default
|
|
192
191
|
YES for every game with a menu; skipping it needs a one-line stated reason.
|
|
193
|
-
Enqueue this chain the instant the
|
|
194
|
-
|
|
192
|
+
Enqueue this chain the instant the concept mockup LANDS (`--no-wait`) —
|
|
193
|
+
the keep/change answer never gates it; only the menu VIDEO waits, for its
|
|
194
|
+
event triple (`$genex-ai-menu`) — then
|
|
195
195
|
keep building, pick results up with `npx genex wait <id>`, swap them in as
|
|
196
196
|
they land. **Tier 2 must never block a playable v0 — but the game is NOT
|
|
197
197
|
DONE until its Tier-2 assets have landed and been wired in** (the only
|
|
@@ -200,7 +200,9 @@ A message missing any line means the gate did not run — go back and run it.
|
|
|
200
200
|
Run `npx genex wait` on every enqueued ID before any publish and before
|
|
201
201
|
the final handoff of a session — never park landed assets for "later".
|
|
202
202
|
Shipping the placeholder CSS HUD as the final HUD is a failure, not a
|
|
203
|
-
tier choice.
|
|
203
|
+
tier choice — the ONE exception is a DESIGN.md-recorded `HUD lane: CSS`
|
|
204
|
+
decision (`$genex-game-director` §5), where the CSS build, finished to
|
|
205
|
+
its brief, IS the production HUD.
|
|
204
206
|
- **Tier 3 — offer, don't build.** Video layers over the HUD, 9-slice panel
|
|
205
207
|
sprites, animated menu sprites. Offer in one line
|
|
206
208
|
after the player has seen Tier 1+2 working; build on request.
|
|
@@ -522,11 +524,13 @@ architecture and consume the shared style brief.
|
|
|
522
524
|
- Hard-cut phase swaps, a menu whose elements just appear, numbers that
|
|
523
525
|
teleport.
|
|
524
526
|
- A silent menu; a bare "Loading…" over black.
|
|
525
|
-
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
527
|
+
- The style chain parked behind the keep/change question — the HUD Stage-2
|
|
528
|
+
sheet, menu still, and logotype enqueue the moment the mockup LANDS, and
|
|
529
|
+
silence means the concept stands; OR the menu VIDEO fired while a user
|
|
530
|
+
objection was still open (its event triple is the only wait in the lane);
|
|
531
|
+
OR the whole build stalled on the concept at all, when concept-INDEPENDENT
|
|
532
|
+
work (scaffold, core loop, logic subagents) must keep moving in parallel
|
|
533
|
+
throughout.
|
|
530
534
|
- A CSS-cut corner (`clip-path`/`mask`) that shears its own content — clipped
|
|
531
535
|
text or padding, a lost focus ring or glow, a jagged aliased edge, or a
|
|
532
536
|
border/frame that stops at the cut instead of following it — the
|
|
@@ -56,9 +56,9 @@ translation may be normalized for Rapier.
|
|
|
56
56
|
|
|
57
57
|
For plain game tasks — nothing from the procedural/visual-system pack loaded —
|
|
58
58
|
this is the whole acceptance gate, and it is also the *ceiling*: a smoke check,
|
|
59
|
-
not a certification. Run it ONCE per milestone,
|
|
60
|
-
`genex preview`
|
|
61
|
-
|
|
59
|
+
not a certification. Run it ONCE per milestone, against that milestone's
|
|
60
|
+
`genex preview` build — the player may already be walking around it while
|
|
61
|
+
you check. Catch obvious
|
|
62
62
|
breakage, fix what's clearly broken, and hand the feel/polish judgment to the
|
|
63
63
|
player — don't loop re-testing the same build, don't re-test after cosmetic
|
|
64
64
|
tweaks (sounds, colors, tuning values), and don't try to exercise every button
|
|
@@ -106,7 +106,12 @@ everything twice.
|
|
|
106
106
|
4. In that screenshot, check oriented models: the hero faces its travel
|
|
107
107
|
direction, and NPCs driven by chase/aim code face their target. A model
|
|
108
108
|
rotated 90° reads as broken — `$genex-ai-model` has the one-time facing
|
|
109
|
-
fix.
|
|
109
|
+
fix. **In any two-character or enemy-encounter capture, the characters
|
|
110
|
+
face their TARGET, not the camera** — Meshy/Mixamo/VRM rigs rest facing
|
|
111
|
+
+Z (straight at a side camera), so an unset yaw ships duelists staring
|
|
112
|
+
at the lens; and a rig "turned" with `scale.x = -1` is a defect even
|
|
113
|
+
when it looks right from one angle (negative scale flips a SkinnedMesh's
|
|
114
|
+
winding and normals — the character-controller skill has the rules).
|
|
110
115
|
5. Vehicles get one extra pass: drive forward once and confirm the NOSE
|
|
111
116
|
leads (a 180° body is this bug's favorite disguise), and check the body
|
|
112
117
|
stands ON the road with its wheels inside the silhouette — a body
|