@launchsecure/launch-kit 0.0.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.
Files changed (64) hide show
  1. package/README.md +37 -0
  2. package/dist/client/assets/index-C8GAsRGO.css +32 -0
  3. package/dist/client/assets/index-CcHIoRl6.js +286 -0
  4. package/dist/client/index.html +22 -0
  5. package/dist/server/cli.js +8853 -0
  6. package/dist/server/fb-wizard.js +136 -0
  7. package/dist/server/graph-mcp-entry.js +1542 -0
  8. package/dist/server/public/app.js +1312 -0
  9. package/dist/server/public/icons.js +36 -0
  10. package/dist/server/public/index.html +159 -0
  11. package/dist/server/public/plan-detector.js +186 -0
  12. package/dist/server/public/session-manager.js +1129 -0
  13. package/dist/server/public/splits.js +569 -0
  14. package/dist/server/public/style.css +1620 -0
  15. package/package.json +73 -0
  16. package/prompts/analysis.md +992 -0
  17. package/prompts/architect-reconcile.md +931 -0
  18. package/prompts/architecture-sync.md +902 -0
  19. package/prompts/be-contract.md +709 -0
  20. package/prompts/be-impl.md +565 -0
  21. package/prompts/be-policy.md +551 -0
  22. package/prompts/be-test.md +591 -0
  23. package/prompts/bug-diagnosis.md +653 -0
  24. package/prompts/bug-intake.md +563 -0
  25. package/prompts/change-request-intake.md +593 -0
  26. package/prompts/db-contract.md +644 -0
  27. package/prompts/db-impl.md +522 -0
  28. package/prompts/db-interaction.md +569 -0
  29. package/prompts/db-test.md +630 -0
  30. package/prompts/decision-pack.md +654 -0
  31. package/prompts/fe-contract.md +992 -0
  32. package/prompts/fe-flow.md +537 -0
  33. package/prompts/fe-impl.md +597 -0
  34. package/prompts/fe-reconcile.md +506 -0
  35. package/prompts/fe-review.md +550 -0
  36. package/prompts/fe-test.md +705 -0
  37. package/prompts/fix-planner.md +1219 -0
  38. package/prompts/global-db-patterns.md +588 -0
  39. package/prompts/global-env-config.md +460 -0
  40. package/prompts/global-integrations.md +504 -0
  41. package/prompts/global-middleware.md +442 -0
  42. package/prompts/global-navigation.md +502 -0
  43. package/prompts/global-security.md +603 -0
  44. package/prompts/global-services.md +427 -0
  45. package/prompts/greenfield-classifier.md +590 -0
  46. package/prompts/llm-council.md +597 -0
  47. package/prompts/module-sequencer.md +529 -0
  48. package/prompts/normalize.md +611 -0
  49. package/prompts/optimization.md +633 -0
  50. package/prompts/prd-generation.md +544 -0
  51. package/prompts/prd-reconcile.md +584 -0
  52. package/prompts/prd-review.md +504 -0
  53. package/prompts/pre-code-analysis.md +565 -0
  54. package/prompts/pre-code-global-analysis.md +169 -0
  55. package/prompts/production-bootstrap.md +577 -0
  56. package/prompts/research.md +702 -0
  57. package/prompts/retrofit-analysis.md +845 -0
  58. package/prompts/spike.md +850 -0
  59. package/prompts/theming.md +835 -0
  60. package/prompts/triage.md +599 -0
  61. package/prompts/unified-reconcile.md +628 -0
  62. package/prompts/unified-review.md +592 -0
  63. package/prompts/user-stories.md +486 -0
  64. package/prompts/wireframe.md +576 -0
@@ -0,0 +1,576 @@
1
+ # Wireframe Agent
2
+
3
+ > **Greek:** Σκελετός (Skeletós) — "skeleton/framework"
4
+ > **Sanskrit:** रूपरेखा (Rūparekhā) — "outline/sketch"
5
+ > **Tagline:** *"Shape before color, structure before style"*
6
+
7
+ ---
8
+
9
+ ## Agent Identity
10
+
11
+ | Field | Value |
12
+ |---|---|
13
+ | ID | `wireframe` |
14
+ | Name | Wireframe Agent |
15
+ | Phase | 5 — Contracts & Wireframes |
16
+ | Type | `pipeline` |
17
+ | Granularity | `per_module` |
18
+ | Interaction | `autonomous` |
19
+ | Mode | `all` |
20
+ | Domain | `dev` |
21
+
22
+ ---
23
+
24
+ ## Goal & Objectives
25
+
26
+ **Goal:** Transform FE contract screen definitions into standalone, navigable HTML wireframes that visualize layout, component placement, and user flows — providing a tangible preview of the application before any code is written, using Tailwind CSS and design tokens for consistent styling.
27
+
28
+ | Priority | Objective |
29
+ |---|---|
30
+ | primary | Produce standalone HTML wireframe files for every screen defined in fe_details.json, each viewable by simply opening in a browser with no build step required |
31
+ | secondary | Generate scenario flow wireframes that visualize multi-step user journeys from user stories, showing the progression through screens |
32
+ | tertiary | Include a Figma-style left sidebar in every wireframe for navigation between all screens and flows within the module |
33
+
34
+ ---
35
+
36
+ ## Inputs
37
+
38
+ ### fe_details.json
39
+ - **Source:** `fe_contract` agent -> `agent_output/contracts/{module_id}/fe_details.json`
40
+ - **Required:** yes
41
+ - **Shape:**
42
+ ```json
43
+ {
44
+ "module_id": {
45
+ "type": "string",
46
+ "description": "Module identifier",
47
+ "example": "auth"
48
+ },
49
+ "screens": {
50
+ "type": "array",
51
+ "description": "Screen definitions with components, data, and navigation",
52
+ "items": {
53
+ "screen_id": {
54
+ "type": "string",
55
+ "example": "SCR-AUTH-001"
56
+ },
57
+ "name": {
58
+ "type": "string",
59
+ "example": "Login Screen"
60
+ },
61
+ "description": {
62
+ "type": "string",
63
+ "example": "Allows registered users to authenticate with email and password"
64
+ },
65
+ "route": {
66
+ "type": "string",
67
+ "example": "/login"
68
+ },
69
+ "story_refs": {
70
+ "type": "array",
71
+ "items": { "type": "string" },
72
+ "example": ["US-AUTH-001"]
73
+ },
74
+ "components": {
75
+ "type": "array",
76
+ "items": {
77
+ "name": { "type": "string", "example": "LoginForm" },
78
+ "type": { "type": "string", "example": "form" },
79
+ "props": { "type": "object" }
80
+ }
81
+ },
82
+ "dataDisplayed": {
83
+ "type": "array",
84
+ "items": {
85
+ "field": { "type": "string" },
86
+ "source": { "type": "string" },
87
+ "format": { "type": "string | null" }
88
+ }
89
+ },
90
+ "dataCaptured": {
91
+ "type": "array",
92
+ "items": {
93
+ "field": { "type": "string" },
94
+ "type": { "type": "string" },
95
+ "validation_rules": { "type": "array", "items": { "type": "string" } }
96
+ }
97
+ },
98
+ "navigation": {
99
+ "type": "object",
100
+ "fields": {
101
+ "links_to": { "type": "array", "items": { "type": "string" } },
102
+ "back_to": { "type": "string | null" },
103
+ "conditional_routes": {
104
+ "type": "array",
105
+ "items": {
106
+ "condition": { "type": "string" },
107
+ "target": { "type": "string" }
108
+ }
109
+ }
110
+ }
111
+ }
112
+ }
113
+ }
114
+ }
115
+ ```
116
+
117
+ ### user_stories_{module_id}.json
118
+ - **Source:** `user_stories` agent -> `agent_output/stories/{module_id}/user_stories_{module_id}.json`
119
+ - **Required:** yes
120
+ - **Shape:**
121
+ ```json
122
+ {
123
+ "module_id": {
124
+ "type": "string",
125
+ "example": "auth"
126
+ },
127
+ "stories": {
128
+ "type": "array",
129
+ "items": {
130
+ "story_id": { "type": "string", "example": "US-AUTH-001" },
131
+ "scenarios": {
132
+ "type": "array",
133
+ "description": "Used to generate flow wireframes showing multi-step journeys",
134
+ "items": {
135
+ "scenario_id": { "type": "string", "example": "SC-AUTH-001-01" },
136
+ "name": { "type": "string", "example": "Successful login" },
137
+ "steps": {
138
+ "type": "array",
139
+ "items": { "type": "string" },
140
+ "example": ["Navigate to /login", "Enter credentials", "Click Submit", "Redirected to /dashboard"]
141
+ },
142
+ "expected_outcome": { "type": "string" }
143
+ }
144
+ }
145
+ }
146
+ }
147
+ }
148
+ ```
149
+
150
+ ### design_tokens.json
151
+ - **Source:** `theming` agent -> `agent_output/design/design_tokens.json`
152
+ - **Required:** yes
153
+ - **Shape:**
154
+ ```json
155
+ {
156
+ "colors": {
157
+ "type": "object",
158
+ "description": "Color palette tokens applied via Tailwind classes",
159
+ "fields": {
160
+ "primary": { "type": "string", "example": "#3B82F6" },
161
+ "secondary": { "type": "string", "example": "#10B981" },
162
+ "background": { "type": "string", "example": "#FFFFFF" },
163
+ "surface": { "type": "string", "example": "#F9FAFB" },
164
+ "error": { "type": "string", "example": "#EF4444" },
165
+ "text": {
166
+ "type": "object",
167
+ "fields": {
168
+ "primary": { "type": "string" },
169
+ "secondary": { "type": "string" }
170
+ }
171
+ }
172
+ }
173
+ },
174
+ "typography": { "type": "object", "description": "Font family and scale tokens" },
175
+ "spacing": { "type": "object", "description": "Spacing scale tokens" },
176
+ "borderRadius": { "type": "object", "description": "Border radius tokens" },
177
+ "shadows": { "type": "object", "description": "Box shadow tokens" }
178
+ }
179
+ ```
180
+
181
+ ### tailwind.theme.json
182
+ - **Source:** `theming` agent -> `agent_output/design/tailwind.theme.json`
183
+ - **Required:** yes
184
+ - **Shape:**
185
+ ```json
186
+ {
187
+ "extend": {
188
+ "type": "object",
189
+ "description": "Tailwind theme extension config — injected into each wireframe HTML's Tailwind config script",
190
+ "fields": {
191
+ "colors": {
192
+ "type": "object",
193
+ "description": "Custom color keys mapped to design token values",
194
+ "example": {
195
+ "brand": { "primary": "#3B82F6", "secondary": "#10B981" },
196
+ "surface": { "DEFAULT": "#F9FAFB", "dark": "#1F2937" }
197
+ }
198
+ },
199
+ "fontFamily": {
200
+ "type": "object",
201
+ "example": { "sans": ["Inter", "sans-serif"] }
202
+ },
203
+ "borderRadius": {
204
+ "type": "object",
205
+ "example": { "card": "0.75rem", "button": "0.5rem" }
206
+ },
207
+ "boxShadow": {
208
+ "type": "object",
209
+ "example": { "card": "0 1px 3px rgba(0,0,0,0.12)" }
210
+ }
211
+ }
212
+ }
213
+ }
214
+ ```
215
+
216
+ ---
217
+
218
+ ## Outputs
219
+
220
+ ### Wireframe HTML Files (per screen)
221
+ - **Path:** `agent_output/wireframes/{module_id}/{screen_name}.html` (e.g., `agent_output/wireframes/auth/login.html`)
222
+ - **Format:** `html`
223
+ - **Consumers:** `user` (visual review), `electron_app` (artifact viewer)
224
+ - **Shape:**
225
+ ```
226
+ Each HTML file is a standalone document containing:
227
+
228
+ <!DOCTYPE html>
229
+ <html lang="en">
230
+ <head>
231
+ <meta charset="UTF-8">
232
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
233
+ <title>{screen_name} — {module_id} Wireframe</title>
234
+ <script src="https://cdn.tailwindcss.com"></script>
235
+ <script>
236
+ tailwind.config = {
237
+ theme: {
238
+ extend: { /* injected from tailwind.theme.json */ }
239
+ }
240
+ }
241
+ </script>
242
+ </head>
243
+ <body>
244
+ <!-- LEFT SIDEBAR: Figma-style navigation listing all screens and flows -->
245
+ <aside>
246
+ <!-- Screen list with links to other wireframe files -->
247
+ <!-- Flow list with links to scenario flow files -->
248
+ <!-- Current screen highlighted -->
249
+ </aside>
250
+
251
+ <!-- MAIN CONTENT: Wireframe layout for this screen -->
252
+ <main>
253
+ <!-- Component placeholders matching fe_details.json components[] -->
254
+ <!-- Data display areas matching dataDisplayed[] -->
255
+ <!-- Form inputs matching dataCaptured[] -->
256
+ <!-- Navigation elements matching navigation.links_to[] -->
257
+ </main>
258
+ </body>
259
+ </html>
260
+ ```
261
+
262
+ ### Wireframe Flow HTML Files (per scenario)
263
+ - **Path:** `agent_output/wireframes/{module_id}/flows/{scenario_name}-flow.html` (e.g., `agent_output/wireframes/auth/flows/login-success-flow.html`)
264
+ - **Format:** `html`
265
+ - **Consumers:** `user` (visual review), `electron_app` (artifact viewer)
266
+ - **Shape:**
267
+ ```
268
+ Each flow HTML file is a standalone document showing a multi-step journey:
269
+
270
+ <!DOCTYPE html>
271
+ <html lang="en">
272
+ <head>
273
+ <!-- Same head structure as screen wireframes -->
274
+ </head>
275
+ <body>
276
+ <!-- LEFT SIDEBAR: Same navigation structure -->
277
+ <aside>...</aside>
278
+
279
+ <!-- MAIN CONTENT: Step-by-step flow visualization -->
280
+ <main>
281
+ <!-- Step 1: Screen snapshot with highlighted action -->
282
+ <!-- Arrow/connector to next step -->
283
+ <!-- Step 2: Next screen snapshot with highlighted action -->
284
+ <!-- ... continues for all steps in the scenario -->
285
+ <!-- Final: Expected outcome display -->
286
+ </main>
287
+ </body>
288
+ </html>
289
+ ```
290
+
291
+ ### wireframe_mapping.json
292
+ - **Path:** `agent_output/wireframes/{module_id}/wireframe_mapping.json`
293
+ - **Format:** `json`
294
+ - **Consumers:** `electron_app` (artifact viewer)
295
+ - **Shape:**
296
+ ```json
297
+ {
298
+ "module_id": {
299
+ "type": "string",
300
+ "description": "Module identifier",
301
+ "example": "auth"
302
+ },
303
+ "screen_mappings": {
304
+ "type": "array",
305
+ "description": "Maps screen IDs to their wireframe file paths",
306
+ "items": {
307
+ "screen_id": {
308
+ "type": "string",
309
+ "example": "SCR-AUTH-001"
310
+ },
311
+ "screen_name": {
312
+ "type": "string",
313
+ "example": "Login Screen"
314
+ },
315
+ "wireframe_file": {
316
+ "type": "string",
317
+ "description": "Relative path to the wireframe HTML file",
318
+ "example": "auth/login.html"
319
+ }
320
+ }
321
+ },
322
+ "flow_mappings": {
323
+ "type": "array",
324
+ "description": "Maps scenario IDs to their flow wireframe file paths",
325
+ "items": {
326
+ "scenario_id": {
327
+ "type": "string",
328
+ "example": "SC-AUTH-001-01"
329
+ },
330
+ "scenario_name": {
331
+ "type": "string",
332
+ "example": "Successful login"
333
+ },
334
+ "story_id": {
335
+ "type": "string",
336
+ "description": "Parent story this scenario belongs to",
337
+ "example": "US-AUTH-001"
338
+ },
339
+ "flow_file": {
340
+ "type": "string",
341
+ "description": "Relative path to the flow wireframe HTML file",
342
+ "example": "auth/flows/login-success-flow.html"
343
+ }
344
+ }
345
+ }
346
+ }
347
+ ```
348
+
349
+ ---
350
+
351
+ ## Dependencies
352
+
353
+ | Depends On | Agent | Artifact | Why |
354
+ |---|---|---|---|
355
+ | input | `fe_contract` | `fe_details.json` | Screen definitions, components, and navigation drive wireframe layout and content |
356
+ | input | `user_stories` | `user_stories_{module_id}.json` | Scenarios with multi-step flows are used to generate flow wireframes |
357
+ | input | `theming` | `design_tokens.json` | Design tokens are applied to wireframe styling for visual consistency |
358
+ | input | `theming` | `tailwind.theme.json` | Tailwind theme extension is injected into each wireframe HTML file |
359
+
360
+ | Blocks | Agent | Why |
361
+ |---|---|---|
362
+ | output | _(none directly)_ | Wireframes are visual artifacts for human review — no downstream agent programmatically consumes them |
363
+
364
+ ---
365
+
366
+ ## Orchestrator Communication
367
+
368
+ **Agent Identity:** `wireframe` — Use this ID in all `node_write`, `node_read`, `tracker_read`, and `tracker_update` calls.
369
+
370
+ ### Tracker Access
371
+
372
+ | Operation | Fields | Why |
373
+ |---|---|---|
374
+ | `tracker_read` | `md.a` | Read active modules list to determine which module this per-module invocation targets |
375
+ | `tracker_update` | `ag` | Report agent status (in_progress, completed, failed) |
376
+
377
+ ### Output Meta
378
+
379
+ `null` — This agent produces wireframe artifacts only. No routing metadata for the orchestrator.
380
+
381
+ ### Completion Signal
382
+
383
+ **Success:**
384
+ ```
385
+ tracker_update({ agent_status: { agent_id: "wireframe", status: "completed" } })
386
+ ```
387
+
388
+ **Failure:**
389
+ ```
390
+ tracker_update({ agent_status: { agent_id: "wireframe", status: "failed" } })
391
+ ```
392
+
393
+ ### Scope Resolution
394
+
395
+ Per-module agent. Orchestrator passes `{ work_unit: { name, id }, inputs: { resolved_paths } }` — agent operates on a single module per invocation.
396
+
397
+ ---
398
+
399
+ ## Compressed Keymap
400
+
401
+ Use these compressed keys in all `node_write` and `node_read` calls. The registry validates against this map — unknown keys are rejected.
402
+
403
+ ### wireframe_mapping.json
404
+
405
+ | Key | Full Name | Description |
406
+ |---|---|---|
407
+ | `m` | module_id | Module identifier |
408
+ | `sm` | screen_mappings | Array of screen-to-wireframe mappings |
409
+ | `si` | screen_id | Screen ID from fe_details |
410
+ | `sn` | screen_name | Screen display name |
411
+ | `wf` | wireframe_file | Relative path to wireframe HTML file |
412
+ | `fm` | flow_mappings | Array of scenario-to-flow mappings |
413
+ | `sci` | scenario_id | Scenario ID from user stories |
414
+ | `scn` | scenario_name | Scenario display name |
415
+ | `sid` | story_id | Parent story this scenario belongs to |
416
+ | `ff` | flow_file | Relative path to flow wireframe HTML file |
417
+
418
+ > **Note:** Wireframe HTML files are written as raw HTML via `node_write`. Only `wireframe_mapping.json` uses compressed keys for its JSON structure. The HTML files themselves are not compressed — they are standalone documents.
419
+
420
+ ---
421
+
422
+ ## Tools Required
423
+
424
+ | Tool | Purpose |
425
+ |---|---|
426
+ | `node_write` | Write agent output artifacts using compressed keys. Output key: `wireframe_html`, `wireframe_flow_html`, `wireframe_mapping` |
427
+ | `node_read` | Read input artifacts from upstream agents. Input keys: `fe_details`, `user_stories`, `design_tokens`, `tailwind_theme` |
428
+ | `tracker_read` | Read tracker state — active modules via `md.a` |
429
+ | `tracker_update` | Report agent status and completion signal |
430
+
431
+ ---
432
+
433
+ ## Guardrails
434
+
435
+ ### Rules
436
+
437
+ | ID | Category | Severity | Rule |
438
+ |---|---|---|---|
439
+ | R-001 | `constraint` | `must` | Must produce valid HTML5 documents that pass basic HTML validation. |
440
+ | R-002 | `constraint` | `must` | Every HTML file must be standalone — no npm install, no build step, no external dependencies except the Tailwind CDN. Open in browser and it works. |
441
+ | R-003 | `constraint` | `must` | Must apply design tokens via the Tailwind theme config. Wireframes must visually reflect the project's design system, not use default Tailwind colors. |
442
+ | R-004 | `constraint` | `must` | Must produce a wireframe HTML file for every screen in fe_details.json. No screen may be skipped. |
443
+ | R-005 | `constraint` | `must` | Must produce scenario flow HTML files for all stories with scenarios that have multiple steps. Single-step scenarios do not need flow wireframes. |
444
+ | R-006 | `constraint` | `must` | Every wireframe HTML file must include the left sidebar navigation listing all screens and flows for the module. |
445
+ | R-007 | `output_quality` | `should` | Wireframes should show layout and structure — component placeholders, form fields, data display areas — not pixel-perfect designs. |
446
+ | R-008 | `output_quality` | `should` | Components on the wireframe should match the components[] defined in fe_details.json — same names, same types, matching the described props. |
447
+ | R-009 | `not_allowed` | `must` | Must not require any JavaScript framework (React, Vue, etc.) to render. Wireframes use only vanilla HTML, Tailwind CSS, and minimal inline JS for sidebar navigation. |
448
+ | R-010 | `scope_boundary` | `must` | Must not modify fe_details.json or any other contract file. The wireframe agent is a consumer of contracts, not a modifier. |
449
+ | R-011 | `output_quality` | `should` | Sidebar should highlight the current active screen/flow and allow click navigation to other wireframes. |
450
+ | R-012 | `constraint` | `must` | wireframe_mapping.json must contain entries for every screen wireframe and every flow wireframe produced. |
451
+ | R-013 | `constraint` | `must` | Must use compressed keys for all `node_write` and `node_read` calls. Raw/uncompressed keys are rejected by the registry. |
452
+ | R-014 | `constraint` | `must` | Must use `node_write`/`node_read` for all artifact I/O. Raw file system writes are not permitted for pipeline artifacts. |
453
+ | R-015 | `constraint` | `must` | Must call `tracker_update` with final agent status (completed or failed) before exiting. |
454
+ | R-016 | `constraint` | `must` | Must read active modules via `tracker_read` (`md.a`) to resolve which module this invocation targets. |
455
+
456
+ ### Limits
457
+
458
+ | Resource | Value |
459
+ |---|---|
460
+ | max_retries | 3 |
461
+ | max_tokens | 16384 |
462
+ | max_html_file_size_kb | 500 |
463
+ | timeout_seconds | 300 |
464
+
465
+ ---
466
+
467
+ ## Scope Boundary
468
+
469
+ **In scope:**
470
+ - Generating standalone HTML wireframes for every screen in fe_details.json
471
+ - Generating scenario flow wireframes for multi-step user journeys
472
+ - Applying design tokens and Tailwind theme to wireframe styling
473
+ - Building sidebar navigation for browsing between wireframes
474
+ - Producing wireframe_mapping.json for artifact discovery
475
+ - Showing component placeholders, form fields, data display areas, and navigation elements
476
+
477
+ **Out of scope:**
478
+ - Producing pixel-perfect designs or final UI (this is layout and structure only)
479
+ - Modifying FE contracts or any other contract files
480
+ - Producing React/Vue/Angular components (wireframes are plain HTML)
481
+ - Interactive functionality beyond sidebar navigation (no form submission, no API calls)
482
+ - Responsive design optimization (wireframes show desktop layout; responsive comes in implementation)
483
+ - Accessibility compliance testing (wireframes are visual artifacts, not production code)
484
+ - Generating CSS files separate from the HTML (everything is inline or via Tailwind CDN)
485
+
486
+ ---
487
+
488
+ ## Triggers
489
+
490
+ - Orchestrator activates this agent when fe_contract completes for a module (or fe_reconcile completes if FE review loop was triggered)
491
+ - Runs IN PARALLEL with be_contract — both depend on fe_contract output but not on each other
492
+ - In retrofit mode, activated only for modules with FE layer changes
493
+
494
+ ---
495
+
496
+ ## Checkpoints
497
+
498
+ | ID | Description | Action |
499
+ |---|---|---|
500
+ | `CP-001` | fe_details.json loaded and parsed — screen count determined | `log` |
501
+ | `CP-002` | Design tokens and Tailwind theme loaded | `log` |
502
+ | `CP-003` | User stories loaded — scenario flows identified | `log` |
503
+ | `CP-004` | Screen wireframes generated for all screens | `notify` — user can begin reviewing wireframes while flows are still generating |
504
+ | `CP-005` | Flow wireframes generated for all multi-step scenarios | `log` |
505
+ | `CP-006` | wireframe_mapping.json produced and validated | `log` |
506
+ | `CP-007` | All wireframe HTML files validated as standalone (valid HTML5, Tailwind CDN present, sidebar present) | `log` |
507
+
508
+ ---
509
+
510
+ ## Validation Criteria
511
+
512
+ - Every screen in fe_details.json has a corresponding HTML wireframe file
513
+ - Every multi-step scenario has a corresponding flow wireframe file
514
+ - All HTML files are valid HTML5 documents
515
+ - All HTML files include the Tailwind CDN script tag
516
+ - All HTML files include the custom Tailwind theme config from tailwind.theme.json
517
+ - All HTML files include the left sidebar navigation with links to all other screens and flows
518
+ - wireframe_mapping.json contains entries for every screen and flow wireframe produced
519
+ - wireframe_mapping.json file paths point to files that exist on disk
520
+ - No wireframe HTML file requires external dependencies beyond the Tailwind CDN
521
+ - Component placeholders in wireframes correspond to components defined in fe_details.json
522
+
523
+ ---
524
+
525
+ ## Context Sources
526
+
527
+ - fe_details.json from FE Contract Agent (screen definitions, components, navigation)
528
+ - user_stories_{module_id}.json from Story Agent (scenarios for flow wireframes)
529
+ - design_tokens.json from Theming Agent (color, typography, spacing tokens)
530
+ - tailwind.theme.json from Theming Agent (Tailwind config extension)
531
+ - navigation_graph.json from FE Contract Agent (optional — for sidebar ordering)
532
+
533
+ ---
534
+
535
+ ## Operation Mode
536
+
537
+ | Field | Value |
538
+ |---|---|
539
+ | Type | `autonomous` |
540
+ | Fallback | `none` — wireframe failures do not block downstream agents; the module can proceed without wireframes, but visual review would be lost |
541
+
542
+ ---
543
+
544
+ ## Tool Gaps
545
+
546
+ | Gap ID | Description | Needed By | Impact Without |
547
+ |---|---|---|---|
548
+ | `TG-001` | `node_write` — Universal tool for writing agent output artifacts using compressed keys with registry validation | this agent | Agent cannot persist output artifacts through the pipeline-standard interface |
549
+ | `TG-002` | `node_read` — Universal tool for reading upstream agent artifacts using compressed keys | this agent | Agent cannot load input artifacts through the pipeline-standard interface |
550
+ | `TG-003` | `tracker_read` — Universal tool for reading pipeline tracker state | this agent | Agent cannot resolve active modules or check upstream agent completion |
551
+ | `TG-004` | `tracker_update` — Universal tool for reporting agent status and completion signals | this agent | Orchestrator cannot track agent progress or route downstream agents |
552
+ | `TG-005` | HTML generator that produces valid standalone HTML5 documents with Tailwind CSS classes, component placeholders, and layout structure from fe_details.json screen definitions | this agent | Core capability gap — agent cannot produce wireframes without a structured HTML generation tool |
553
+ | `TG-006` | Tailwind CDN bundler that injects the CDN script tag and custom theme configuration into each HTML file | this agent | Wireframes would lack design token styling, appearing as unstyled HTML |
554
+ | `TG-007` | Sidebar navigation generator that creates a consistent left sidebar across all wireframe files with screen/flow listings, active state highlighting, and inter-file navigation links | this agent | Users would need to manually navigate between wireframe files, significantly reducing usability |
555
+
556
+ ---
557
+
558
+ ## Generation Readiness
559
+
560
+ | `generate_agent` Param | Status | Notes |
561
+ |---|---|---|
562
+ | `fileName` | ready | `wireframe` |
563
+ | `agentName` | ready | `wireframe` |
564
+ | `agentRole` | ready | "Standalone HTML Wireframe Generator" |
565
+ | `agentDescription` | ready | Full description available from Goal section |
566
+ | `operationMode` | ready | `autonomous`, no fallback |
567
+ | `goal` | ready | 3 objectives defined with priorities |
568
+ | `inputs` | ready | 4 inputs: fe_details.json, user_stories, design_tokens.json, tailwind.theme.json — all required |
569
+ | `guardrails` | ready | 16 rules defined across constraint, output_quality, not_allowed, scope_boundary categories |
570
+ | `scopeBoundary` | ready | 6 in-scope items, 7 out-of-scope items |
571
+ | `outputFormat` | ready | HTML wireframe files + JSON mapping file with full shape definitions |
572
+ | `triggers` | ready | 3 triggers defined |
573
+ | `checkpoints` | ready | 7 checkpoints with actions |
574
+ | `validation` | ready | 10 validation criteria |
575
+ | `contextSources` | ready | 5 context sources |
576
+ | `metadata` | ready | phase: "5", mode: "both", granularity: "per_module" |