chatroom-cli 1.137.0 → 1.137.1

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 CHANGED
@@ -107785,9 +107785,11 @@ function getEntryPointToArchitectHandoffTemplate(query) {
107785
107785
  const entryPoint = query.fromRole;
107786
107786
  return `The automatically injected \`<user-message>\` is the authoritative request. Add only concise context that the Architect needs to design within the existing repository and team scope.
107787
107787
 
107788
+ Use this before any backend contract, API, or schema/persistence change.
107789
+
107788
107790
  Provide the request, relevant constraints, and the files or product surfaces that need inspection. Ask for one evidence-backed design focused on ${getArchitectFocus()}.
107789
107791
 
107790
- After completing the design, hand it back to \`${entryPoint}\` with the normal handoff command. Stop after the successful handoff; do not implement the design or delegate further work.
107792
+ After completing the design, the \`architect\` must hand it back to \`${entryPoint}\` with the normal handoff command, then stop; it must not implement the design or delegate further work.
107791
107793
 
107792
107794
  \`\`\`bash
107793
107795
  ${handoffCommand({
@@ -108267,7 +108269,7 @@ function getEntryPointToGameAssetDesignerHandoffTemplate(query) {
108267
108269
  <repository paths, URLs, or a written style sheet; or \`Not specified.\`>
108268
108270
 
108269
108271
  ## Perspective
108270
- <one camera perspective shared by every asset in the set, for example \`orthographic front view\`, \`orthographic isometric\`, \`dimetric 2:1\`, or \`side view\`; optionally \`reference: <repository path>\` of an existing asset to match (requires \`## Model\` = \`fal-ai/flux-2/flash/edit\`); a reference makes every asset an individual edit, with no sheets; \`Not applicable.\` for 3D models and audio; or \`Not specified.\`>
108272
+ <one camera perspective shared by every asset in the set, for example \`orthographic front view\`, \`orthographic isometric\`, \`dimetric 2:1\`, or \`side view\`; optionally \`reference: <repository path>\` of an existing asset to match (requires \`## Model\` = \`fal-ai/flux-2/flash/edit\`); a reference makes every asset an individual edit, with no sheets; \`Not Applicable.\` for 3D models and audio; or \`Not specified.\`>
108271
108273
 
108272
108274
  ## Model
108273
108275
  <\`fal-ai/flux-2/flash\` (FLUX 2 Flash), passed as --model; \`fal-ai/flux-2/flash/edit\` only when \`## Perspective\` names a reference asset>
@@ -108276,7 +108278,7 @@ function getEntryPointToGameAssetDesignerHandoffTemplate(query) {
108276
108278
  <a JSON object as text passed to \`generate-image --input\`; one object for every call of a set; its keys must pass the model's --dry-run check; \`Not specified.\` if none>
108277
108279
 
108278
108280
  ## Spec consumer
108279
- <who integrates these assets from the spec: \`builder\` (application code) or \`user\`; asset files themselves are generated only by \`game-asset-designer\`>
108281
+ <who integrates these assets from the spec: \`builder\` (application logic outside the allowed edit paths) or \`user\`; asset files themselves are generated only by \`game-asset-designer\`>
108280
108282
 
108281
108283
  ## Existing assets
108282
108284
  <repository paths the designer must reuse or must not overwrite; or \`Not specified.\`>
@@ -108314,7 +108316,7 @@ Instructions after the body (not part of the message): the planner may append ex
108314
108316
  - assets must meet engine import conventions or budgets before a builder integrates them;
108315
108317
  - the user asks for an asset spec, style sheet, or asset audit.
108316
108318
 
108317
- Skip it for code-only work and for a trivial asset rename. Non-game UI icons and illustrations also go to this role; they are not sent to \`uiux-engineer\`.
108319
+ Skip it for code-only work. Non-game UI icons and illustrations also go to this role; they are not sent to \`uiux-engineer\`.
108318
108320
 
108319
108321
  \`\`\`bash
108320
108322
  ${handoffCommand({
@@ -108375,7 +108377,7 @@ Write exactly \`None.\` if no sheet was used.
108375
108377
  <every property you could not measure or inspect; write exactly \`None.\` if none>
108376
108378
 
108377
108379
  ## Recommended next step
108378
- <exactly one target: \`game-asset-designer\` (re-run with the listed asset IDs), \`builder\` (integrate, or apply the listed import settings), \`uiux-engineer\` (layout, component, or styling changes only, never asset files), or \`planner\` (decision needed on an open question); then the affected asset IDs>
108380
+ <exactly one target: \`game-asset-designer\` (re-run with the listed asset IDs), \`builder\` (application logic outside the allowed edit paths), \`uiux-engineer\` (layout, component, or styling changes only, never asset files), or \`planner\` (decision needed on an open question); then the affected asset IDs>
108379
108381
 
108380
108382
  Instructions after the body (not part of the message): run the normal handoff command to \`${entryPoint}\` with the complete body above, then stop.
108381
108383
 
@@ -108446,11 +108448,11 @@ var init_planner_architect_chat = __esm(() => {
108446
108448
  function getPlannerBuilderCodeBody() {
108447
108449
  return `${getDelegationBriefIntro()}
108448
108450
 
108449
- **Before you delegate:** if this slice introduces anything not yet grounded in the repository (a new library, API, external platform behavior, or an unresolved design choice), hand off to \`researcher\` first and delegate only after its brief returns. Skip this for small, well-understood edits. The \`researcher\` handoff template defines the criteria.
108451
+ **Before you delegate:** if this slice introduces anything not yet grounded in the repository (a new library, API, external platform behavior, or an unresolved choice that depends on missing facts), hand off to \`researcher\` first and delegate only after its brief returns. Skip this when the \`researcher\` template's skip condition applies. The \`researcher\` handoff template defines the criteria.
108450
108452
 
108451
108453
  **Bug fixes:** if this slice fixes a reported bug, delegate only after a \`triage\` report for that bug has returned, and build the brief from its root cause and proposed fix. The \`triage\` handoff template defines the investigation.
108452
108454
 
108453
- **Division of labor:** You (planner) own architecture and API shape. The UI/UX engineer owns UI/UX design. Include its target markup, classes, and styles in UI implementation briefs; the builder implements the components.
108455
+ **Division of labor:** For backend contract, API, or schema/persistence changes, the architect designs first and you delegate only after its design returns. You (planner) own slicing and sequencing of builder work. The UI/UX engineer owns UI/UX design. Include its target markup, classes, styles, and screen and flow drawings in UI implementation briefs; the builder implements the components.
108454
108456
 
108455
108457
  **Detail bar:** Specify down to **every file** the builder will create or modify (full repo paths). Include code snippets — types, signatures, stubs, or target implementations — until a competent builder **cannot misinterpret** what to write. Vague layers ("update the backend", "fix the component") are not acceptable.
108456
108458
 
@@ -108553,7 +108555,7 @@ function getEntryPointToResearcherHandoffTemplate(query) {
108553
108555
  Research before delegating when the slice introduces something not already grounded in this repository:
108554
108556
  - a new library, API, external service, platform behavior, or version-sensitive dependency;
108555
108557
  - an unfamiliar subsystem;
108556
- - a change with several plausible designs;
108558
+ - a choice between several plausible approaches that depends on facts not yet in the repository (the \`architect\` still owns backend contract, API, and schema/persistence design);
108557
108559
  - any ambiguity the user has not resolved.
108558
108560
 
108559
108561
  Skip research when the change is a small, well-understood edit in code you have already inspected.
@@ -108640,7 +108642,7 @@ Review before delivery for code-producing work:
108640
108642
  - the user asks for a code review;
108641
108643
  - a change is large, risky, or touches security-sensitive or shared code.
108642
108644
 
108643
- Skip review for a trivial edit that has already been verified.
108645
+ Skip review only for an edit of a few lines in one file that the builder already verified with a test or command.
108644
108646
 
108645
108647
  After completing the review, the reviewer must return its issue report to \`${entryPoint}\` with the normal handoff command.
108646
108648
 
@@ -108702,6 +108704,8 @@ function getEntryPointToTriageHandoffTemplate(query) {
108702
108704
  const entryPoint = query.fromRole;
108703
108705
  return `The automatically injected \`<user-message>\` is the authoritative request. Pass the reported bug, observed and expected behavior, reproduction details and commands, relevant constraints, and the files or symbols already suspected. Ask triage to investigate and report only. Triage may inspect code and attempt a focused automated regression test as evidence, but must not edit implementation files or implement a fix.
108704
108706
 
108707
+ Use this for every reported bug (something broken or behaving differently than expected) before any fix is implemented.
108708
+
108705
108709
  After completing the investigation, triage must return the evidence-backed report to \`${entryPoint}\` with the normal handoff command.
108706
108710
 
108707
108711
  \`\`\`bash
@@ -108768,11 +108772,12 @@ var init_planner_triage_chat = __esm(() => {
108768
108772
 
108769
108773
  // ../../services/backend/prompts/teams/uiux-engineer-handoff-templates.ts
108770
108774
  function getUiuxEngineerFocus() {
108771
- return "complete user flows, loading/empty/error/success states, component ownership, theme tokens and layout, responsive details, and UI tests";
108775
+ return "complete user flows, screen and flow drawings, loading/empty/error/success states, component ownership, theme tokens and layout, responsive details, and UI tests";
108772
108776
  }
108773
108777
  function getUiuxEngineerRequirements() {
108774
108778
  return `
108775
108779
  - Specify complete user flows with explicit loading, empty, error, success, disabled, and retry states where applicable.
108780
+ - For any user-facing workflow, draw each affected screen as an ASCII wireframe and each flow as a Mermaid flowchart, using the "Screens, Flows, and Layouts" section. Each screen drawing labels every button, input, and link with its exact text and the repository component it uses; each flow drawing shows the loading, empty, error, success, disabled, and retry transitions that apply.
108776
108781
  - Define component hierarchy and ownership, props/state/events, data boundaries, and interaction behavior.
108777
108782
  - Choose concrete existing ShadCN components with the Base UI backend and lucide-react/react-icons conventions; do not write "use an appropriate component."
108778
108783
  - Specify Tailwind utility classes or semantic theme-token classes for layout, spacing, sizing, typography, states, responsive behavior, and dark mode.
@@ -108787,7 +108792,7 @@ function getEntryPointToUiuxEngineerHandoffTemplate(query) {
108787
108792
 
108788
108793
  Provide the request, relevant constraints, and the files or product surfaces that need inspection. Ask for one evidence-backed design focused on ${getUiuxEngineerFocus()}.
108789
108794
 
108790
- After completing the design, hand it back to \`${entryPoint}\` with the normal handoff command. Stop after the successful handoff; do not implement the design or delegate further work.
108795
+ After completing the design, the \`uiux-engineer\` must hand it back to \`${entryPoint}\` with the normal handoff command, then stop; it must not implement the design or delegate further work.
108791
108796
 
108792
108797
  \`\`\`bash
108793
108798
  ${handoffCommand({
@@ -108815,6 +108820,24 @@ function getUiuxEngineerToEntryPointHandoffTemplate(query) {
108815
108820
  - Name concrete repository paths, existing components/tokens, props/state/events, data boundaries, acceptance criteria, risks, and verification steps.
108816
108821
  ${getUiuxEngineerRequirements()}
108817
108822
 
108823
+ ## Screens, Flows, and Layouts
108824
+ <required for a user-facing workflow; write exactly \`Not Applicable.\` for a non-visual change>
108825
+
108826
+ ### Flow: <flow name>
108827
+ \`\`\`mermaid
108828
+ flowchart TD
108829
+ <one node per screen or state; each edge labelled with the user action or system event that triggers it; include the loading, empty, error, success, disabled, and retry states that apply>
108830
+ \`\`\`
108831
+
108832
+ ### Screen: <screen name> (\`<route or entry point>\`)
108833
+ \`\`\`text
108834
+ <ASCII wireframe: the layout regions, headings, and every button, input, and link labelled with its exact text, with the repository component in brackets, for example [Button variant="destructive"]. Show the empty, loading, and error variants as separate drawings if they change the layout.>
108835
+ \`\`\`
108836
+ - States: <loading, empty, error, success, disabled, retry — which apply and how each changes the layout>
108837
+ - Responsive: <breakpoint behavior, one line per breakpoint that changes the layout>
108838
+
108839
+ <repeat one ### Flow block per flow and one ### Screen block per screen; do not collapse several screens into one drawing>
108840
+
108818
108841
  ## Force Multipliers
108819
108842
  <name the existing components, patterns, tokens, utilities, and platform conventions to reuse, and state why each reduces implementation risk or duplication>
108820
108843
  - Keep the design within the repository's established source-of-truth boundaries and avoid introducing a new registry or abstraction without evidence.
@@ -110245,7 +110268,7 @@ var init_architect3 = __esm(() => {
110245
110268
  init_sections();
110246
110269
  ARCHITECT_GUIDANCE = `## Architect Operating Model
110247
110270
 
110248
- You are the architect responsible for careful coding and system design. You are advisory only: do not implement code, edit files, or act as the builder.
110271
+ You are the architect responsible for system design and code-level implementation plans. You are advisory only: do not implement code, edit files, or act as the builder.
110249
110272
 
110250
110273
  ${"{SESSION_CONTINUITY}"}
110251
110274
 
@@ -110279,7 +110302,7 @@ var init_game_asset_designer2 = __esm(() => {
110279
110302
  init_sections();
110280
110303
  GAME_ASSET_DESIGNER_GUIDANCE = `## Game Asset Designer Operating Model
110281
110304
 
110282
- You specify production-quality game assets and generate them only with \`chatroom generate-image --platform=fal\` when the planner's request allows it. You are not the builder or planner; do not implement application logic outside the asset-integration paths the brief allows. Your delivery report uses Proof of Principles and Proof of Completion.
110305
+ You specify and generate production-quality game and UI assets (generation is the default unless the brief says \`spec only\`), using \`chatroom generate-image --platform=fal\`. You are not the builder or planner; do not implement application logic outside the asset-integration paths the brief allows. Your delivery report uses Proof of Principles and Proof of Completion.
110283
110306
 
110284
110307
  ${"{SESSION_CONTINUITY}"}
110285
110308
 
@@ -110454,17 +110477,18 @@ ${getInterRoleHandoffRule()}
110454
110477
 
110455
110478
  1. Recover the authoritative user request and relevant chatroom history before designing. Inspect existing UI patterns, components, tokens, interaction conventions, and nearby tests that constrain the experience.
110456
110479
  2. Treat the injected \`<handoff-templates>\` UI/UX Engineer Design Handoff Brief as authoritative. Complete every section in its exact order, using \`Not Applicable.\` only for a genuinely inapplicable section and never as filler.
110457
- 3. Produce exactly one recommended, evidence-backed interface and experience design. Do not present alternatives or generic UX advice. Include concrete repository paths, complete user flows, and explicit loading, empty, error, success states (with loading, empty, error, and success states covered), plus disabled and retry states where applicable.
110458
- 4. Specify exact keyboard shortcuts, focus order, keyboard navigation, focus restoration, accessible semantics and labels, component hierarchy and ownership, props/state/events, data boundaries, and interaction behavior.
110459
- 5. Choose concrete ShadCN components using the Base UI backend and existing icon conventions. Specify exact Tailwind utility or semantic theme-token classes for layout, spacing, sizing, typography, states, responsive behavior, and dark mode; keep the styling theme-aware and make state ownership explicit. Also specify responsive breakpoints, visual feedback, destructive-action safeguards, and the UI/integration/accessibility test plan.
110460
- 6. Keep the proposal within the user's request and the repository's established patterns. Do not expand scope, spawn subagents, implement the design, edit files, or act as the builder. You do not generate asset files: any icon or illustration is specified by \`game-asset-designer\` and generated by \`game-asset-designer\`.
110461
- 7. Hand the complete design brief to \`{ENTRY_POINT_ROLE}\` with the normal command, then stop:
110480
+ 3. Produce exactly one recommended, evidence-backed interface and experience design. Do not present alternatives or generic UX advice. Include concrete repository paths, complete user flows, and explicit loading, empty, error, and success states, plus disabled and retry states where applicable.
110481
+ 4. For any user-facing workflow, draw each affected screen as an ASCII wireframe (every button and state labelled) and each flow as a Mermaid flowchart in the handback. Write \`Not Applicable.\` for the drawings section only when the change is non-visual.
110482
+ 5. Specify component hierarchy and ownership, props/state/events, data boundaries, and interaction behavior. Do not propose or require web accessibility implementation work unless the user explicitly requests it.
110483
+ 6. Choose concrete ShadCN components using the Base UI backend and existing icon conventions. Specify exact Tailwind utility or semantic theme-token classes for layout, spacing, sizing, typography, states, responsive behavior, and dark mode; keep the styling theme-aware and make state ownership explicit. Also specify responsive breakpoints, visual feedback, destructive-action safeguards, and the UI/integration test plan.
110484
+ 7. Keep the proposal within the user's request and the repository's established patterns. Do not expand scope, spawn subagents, implement the design, edit files, or act as the builder. You do not generate asset files: any icon or illustration is specified by \`game-asset-designer\` and generated by \`game-asset-designer\`.
110485
+ 8. Hand the complete design brief to \`{ENTRY_POINT_ROLE}\` with the normal command, then stop:
110462
110486
 
110463
110487
  \`\`\`bash
110464
110488
  chatroom handoff --chatroom-id="<chatroom-id>" --role="uiux-engineer" --next-role="{ENTRY_POINT_ROLE}"
110465
110489
  \`\`\`
110466
110490
 
110467
- The handoff must contain every required brief section, repository evidence, chosen flow, exact component/prop/state details, explicit states, accessibility details, ownership decisions, concrete classes/tokens, risks, acceptance criteria, tests, and implementation sequence \`{ENTRY_POINT_ROLE}\` needs to coordinate implementation. It must not contain implementation edits or alternative designs.`;
110491
+ The handoff must contain every required brief section, repository evidence, chosen flow, exact component/prop/state details, explicit states, ownership decisions, concrete classes/tokens, risks, acceptance criteria, tests, and implementation sequence \`{ENTRY_POINT_ROLE}\` needs to coordinate implementation. It must not contain implementation edits or alternative designs.`;
110468
110492
  });
110469
110493
 
110470
110494
  // ../../services/backend/prompts/cli/roles/verifier.ts
@@ -110630,7 +110654,7 @@ var init_templates = __esm(() => {
110630
110654
  "game-asset-designer": {
110631
110655
  role: "game-asset-designer",
110632
110656
  title: "Game Asset Designer",
110633
- description: "You are the game asset designer responsible for specifying production-quality game assets (and producing them when the planner allows); you do not implement application code.",
110657
+ description: "You are the game asset designer responsible for specifying and generating production-quality game and UI assets (generation is the default unless the brief says `spec only`); you do not implement application code.",
110634
110658
  responsibilities: [
110635
110659
  "Recover the target, asset request, style reference, and budgets from the planner brief",
110636
110660
  "Inspect the repository for existing assets, naming and folder conventions, and engine import configuration",
@@ -110643,13 +110667,13 @@ var init_templates = __esm(() => {
110643
110667
  verifier: {
110644
110668
  role: "verifier",
110645
110669
  title: "Verifier",
110646
- description: "You are the verifier responsible for judging, from chatroom logs only, whether the user's last message was achieved; you do not implement, test, or inspect code.",
110670
+ description: "You are the verifier responsible for judging, from chatroom logs only, whether the user's last message was achieved; you do not implement, build, or edit code, and you run only the tests the user explicitly asked for.",
110647
110671
  responsibilities: [
110648
110672
  "Recover the user's last message and the pinned context from the chatroom logs",
110649
110673
  "Break the objective into numbered requirements",
110650
110674
  "Check each requirement against concrete evidence in the logs, treating the planner claim as unverified",
110651
110675
  "Return one verdict (ACHIEVED, NOT_ACHIEVED, or INCONCLUSIVE) with evidence and the missing items",
110652
- "Execute nothing: no tests, builds, or repository inspection"
110676
+ "Execute nothing except the tests the user explicitly asked for: no builds, lints, or edits"
110653
110677
  ],
110654
110678
  defaultHandoffTarget: "planner"
110655
110679
  },
@@ -148693,4 +148717,4 @@ program2.hook("preAction", async (_thisCommand, actionCommand) => {
148693
148717
  });
148694
148718
  program2.parse();
148695
148719
 
148696
- //# debugId=0C6C6A8595C191FE64756E2164756E21
148720
+ //# debugId=E840D0ACF405C0D664756E2164756E21