@genex-ai/cli-demo 0.70.0-dev.182 → 0.71.0-dev.186

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@genex-ai/cli-demo",
3
- "version": "0.70.0-dev.182",
3
+ "version": "0.71.0-dev.186",
4
4
  "description": "Set up your project's agent workspace (.claude/.codex/.cursor in the game folder), authorize, create a game project, generate AI assets, and publish (genex CLI).",
5
5
  "type": "module",
6
6
  "bin": {
@@ -40,7 +40,10 @@ ring) that no hand-written CSS can fake.
40
40
  What is fixed is WHERE plates are built — the DOM — because
41
41
  semi-transparency physically cannot survive sprite extraction: a composited
42
42
  panel's pixels are a blend of panel and background, and no cutout can
43
- un-blend them. Plates are NEVER baked into sprites.
43
+ un-blend them. Plates are NEVER baked into sprites. Give the plate its
44
+ corners with `border-radius` — never chamfer or notch it with
45
+ `clip-path`/`mask`; a real angular frame is chrome, generated, not clipped.
46
+ The only `mask`/`clip-path` in this skill is the masked-fill reveal below.
44
47
  - **Chrome (sprites — what THIS pipeline generates).** Opaque frames, corner
45
48
  brackets, ornaments, emblems, icons, medallions — hard-alpha art laid over
46
49
  the glass. The Stage-2 sheet contains ONLY chrome; never a panel with its
@@ -151,7 +154,10 @@ layout come from the element inventory and the game contract — a mechanic
151
154
  the concept invented (a lap counter, a stamina orb) does not enter the HUD,
152
155
  and a mechanic it failed to show still does. Generate 2 mockup candidates in one
153
156
  call (`--candidates 2`) and pick the better one: a re-roll costs the whole
154
- serial chain, a second candidate costs nothing extra in wall-clock.
157
+ serial chain, a second candidate costs nothing extra in wall-clock. If the
158
+ user's concept-loop feedback replaces the anchor frame after Stage 1 ran,
159
+ re-run the pipeline from Stage 1 against the new frame — there is no cheaper
160
+ partial path, so budget the full chain and say so in one line.
155
161
 
156
162
  ```bash
157
163
  # Stage 1 — full-HUD mockup over a placeholder scene (the LAYOUT REFERENCE).
@@ -65,7 +65,9 @@ might suggest. Two hard rules for the frame prompt:
65
65
 
66
66
  ```bash
67
67
  # 1. The frame — a still of the scene the loop returns to (this example is a
68
- # painterly meadow; YOUR prompt comes from YOUR game's style brief):
68
+ # painterly meadow; YOUR prompt comes from YOUR game's style brief). When the
69
+ # game-ui gate produced a concept frame, anchor the still to it with
70
+ # --edit <concept-url> so menu and world share one palette and light:
69
71
  npx genex image "windswept alpine meadow at golden hour, wildflowers leaning in the gusts, painterly light, cinematic wide shot. Edge-to-edge cinematic composition. Full-bleed 16:9 frame. No UI elements, no text, no buttons in the frame." --aspect 16:9 --quality high
70
72
  # -> https://assets.genex.technology/generations/<id>/image-main
71
73
 
@@ -300,6 +302,10 @@ upgrades, in order of effort:
300
302
  - **One menu = ONE video, generated one-off — not iteratively.** Video
301
303
  generation is strictly rate-limited and takes minutes per attempt. Get the
302
304
  still frame right first (images are cheap to redo), then animate it once.
305
+ The one exception: a user-driven style change (the game-ui concept loop
306
+ re-anchored the look) re-opens this rule once — re-edit the still
307
+ (`--edit` against the new concept frame) and re-run the video from the new
308
+ still. Agent-initiated polish never does.
303
309
  - **720p is right.** It's a background under UI; higher resolutions cost more,
304
310
  take longer, and change nothing visible.
305
311
  - **Pause/victory/defeat variants reuse the same video — as GRADES.** Same
@@ -79,25 +79,40 @@ lap counter in a game without laps). `--aspect 16:9 --quality high
79
79
  --no-wait`, enqueued FIRST of all art; the URL goes into the style-brief
80
80
  comment.
81
81
 
82
- **Share it before building on it — actually SHOW the image, don't just ask.**
83
- When the concept lands, pick it up with `genex wait <id> --open` (or generate it
84
- with `--open`): it opens in the user's browser AND prints the link. Paste that
85
- URL as a clickable link in your approval message a URL is invisible in a
86
- terminal, and "do you like it?" with no picture in front of the user is the #1
87
- way this checkpoint fails (they end up digging logs for the file path). Then ask
88
- ONE structured question "this is roughly how the game will look: keep it, or
89
- change something?" with 2–3 concrete adjustment options. Keep building
90
- gameplay-neutral work (scaffold, physics, netcode) while waiting, but do NOT
91
- anchor further art to an unapproved frame. **Approval is a LOOP, not a
92
- one-shot:** if the user dislikes ANYTHING, regenerate with their exact notes
93
- (`--candidates 2–3` gives them options to choose from), open + link the new
94
- frame, and ask again repeat until they actually approve. Carry every note
82
+ **Share it the moment it lands queue first, show immediately, never wait.**
83
+ When the concept lands, enqueue the Tier-2 UI jobs and the core asset set
84
+ against it in the same breath the frame you just generated IS the working
85
+ style until the user says otherwise. Then pick it up with
86
+ `genex wait <id> --open` (or generate it with `--open`): it opens in the
87
+ user's browser AND prints the link. Paste that URL as a clickable link in
88
+ your messagea URL is invisible in a terminal, and "do you like it?" with
89
+ no picture in front of the user is the #1 way this checkpoint fails (they end
90
+ up digging logs for the file path). Ask ONE keep-or-change question — "this
91
+ is roughly how the game will look: keep it, or change something?" — **as
92
+ plain chat text, never via the blocking structured-question tool: a suspended
93
+ turn is a gate, and this question must not gate anything.** Silence is
94
+ acceptance; only explicit notes reopen the style. An unanswered style
95
+ question that parks the art pipeline is how a finished game ships bare walls
96
+ and a placeholder HUD — strictly worse than re-rolling a few assets later.
97
+ **Feedback triggers a LOOP whenever it arrives:** if the user comes back
98
+ disliking ANYTHING — immediately or an hour later — regenerate with their
99
+ exact notes (`--candidates 2–3` gives them options to choose from), open +
100
+ link the new frame, and ask again the same non-blocking way. Carry every note
95
101
  forward so each round compounds; if two rounds don't converge, offer 2–3
96
- distinct directions as a structured question instead of re-rolling blind. The
97
- HUD mockup, the menu, and every downstream asset wait for a frame the user has
98
- signed off a single "meh" is never permission to move on. The same "open it +
99
- paste the link" rule covers every image the user weighs in on the menu still,
100
- the HUD mockup candidates.
102
+ distinct directions instead of re-rolling blind (plain chat, same rule).
103
+ Every shown frame becomes the working style exactly like the first did:
104
+ silence after a shown regeneration accepts THAT frame, and when
105
+ `--candidates` goes unanswered, pick the strongest yourself and say so. When
106
+ the style actually changes, re-anchor the style-carrying art made against
107
+ the old frame: the menu still is re-edited (`--edit`) against the new frame
108
+ and its video re-run once from the new still (`$genex-ai-menu` — a
109
+ user-driven style change re-opens its one-video rule), and the HUD chrome
110
+ re-runs its pipeline from Stage 1 with the new frame as the `--edit` anchor
111
+ (`$genex-ai-hud` — budget the full serial chain; it is the most expensive
112
+ re-anchor in the set). Style-neutral assets (most textures, sfx, models)
113
+ usually survive — judge each in one line. The same "open it + paste the
114
+ link" rule covers every image the user weighs in on — the menu still, the
115
+ HUD mockup candidates.
101
116
 
102
117
  **The concept anchors STYLE, not truth.** Palette, materials, light, and
103
118
  register come from the frame; CONTENT comes from the game contract. When
@@ -391,6 +406,16 @@ Order the HUD by what the player loses the game for ignoring:
391
406
  - **Contrast against the real scene.** Test text over the brightest AND
392
407
  darkest areas of actual gameplay; a soft dark plate or text-shadow beats
393
408
  restyling per level.
409
+ - **Panel and button corners come from `border-radius`, not a CSS clip.**
410
+ Don't chamfer, notch, or slice corners with `clip-path: polygon(...)` or a
411
+ `mask` for a "hi-tech" look: a raw CSS clip hard-cuts the box, so it shears
412
+ off whatever sits near the corner (text, padding, the focus ring, a glow)
413
+ and leaves a jagged aliased diagonal that reads as *broken*, not as a
414
+ designed bevel. Soft corners are `border-radius`; a genuinely angular or
415
+ ornamented frame is a generated frame sprite (`$genex-ai-hud` chrome, or a
416
+ Tier-3 9-slice panel), never hand-cut in CSS. This governs decorative
417
+ panel/button **shape** only — it does not touch the masked-fill HUD reveal
418
+ or `genex ui` masks, which are the correct uses of `mask`/`clip-path`.
394
419
  - **One cohesion layer.** A single full-screen vignette div (a subtle radial
395
420
  gradient darkening the corners, optionally faint grain) over canvas + UI is
396
421
  the cheapest way to make DOM-over-WebGL read as one composed image instead
@@ -442,6 +467,11 @@ architecture and consume the shared style brief.
442
467
  - Hard-cut phase swaps, a menu whose elements just appear, numbers that
443
468
  teleport.
444
469
  - A silent menu; a bare "Loading…" over black.
470
+ - The art pipeline parked on an unanswered look question — the question is
471
+ advisory: queue Tier-2 + the asset set against the shown frame and keep
472
+ moving; silence is acceptance.
473
+ - Panel or button corners chamfered/notched with `clip-path`/`mask` instead of
474
+ `border-radius` — the corner looks sheared off, not designed.
445
475
  - UI panels covering the player or the thing about to kill them.
446
476
  - Layout shifting as numbers grow.
447
477
  - A fail state with no visible restart key, or a restart that reloads the page.
@@ -10,7 +10,8 @@ says what it's made of in THIS game.
10
10
 
11
11
  Every capsule below assumes the base rules from the skill: corners/edges for
12
12
  UI, one display + one body font, tabular numerals, contrast plates over
13
- arbitrary scenes.
13
+ arbitrary scenes, and panel/button corners from `border-radius` or a generated
14
+ frame — never a raw CSS `clip-path`/`mask` chamfer.
14
15
 
15
16
  ## Fantasy / action RPG
16
17
 
@@ -52,8 +52,10 @@ Three.js release or branch, and do not blindly copy demo architecture.
52
52
  while you build the game. FIRST of all art: the gate's **concept frame** —
53
53
  a playable-moment shot (verb + threat + objective in frame, per the
54
54
  game-ui gate), shown to the user for a keep-or-change answer the moment
55
- it lands; later `--edit`-able generations anchor to it for STYLE while
56
- the game contract owns content. Then the `$genex-ai-hud` Stage-1 mockup, enqueued
55
+ it lands the answer is advisory, never a gate: the art pipeline starts
56
+ against the frame as-is, and the game-ui skill owns the re-anchor loop
57
+ when notes arrive; later `--edit`-able generations anchor to it for STYLE
58
+ while the game contract owns content. Then the `$genex-ai-hud` Stage-1 mockup, enqueued
57
59
  here for EVERY game; and the `$genex-ai-menu` video whenever the menu
58
60
  decision is yes (the default for every game — "it's only a draft" is not a
59
61
  reason to decide no). Skipping this enqueue is