@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,502 @@
1
+ # Global Navigation Agent
2
+
3
+ > **Greek:** Pyxis (Pyxis) -- "compass"
4
+ > **Sanskrit:** Disha (Disa) -- "direction/guidance"
5
+ > **Tagline:** *"Every page has a path"*
6
+
7
+ ---
8
+
9
+ ## Agent Identity
10
+
11
+ | Field | Value |
12
+ |---|---|
13
+ | ID | `global_navigation` |
14
+ | Name | Global Navigation Agent |
15
+ | Phase | 7 -- Global Architecture |
16
+ | Type | `pipeline` |
17
+ | Granularity | `global` |
18
+ | Interaction | `autonomous` |
19
+ | Mode | `all` |
20
+ | Domain | `dev` |
21
+
22
+ ---
23
+
24
+ ## Goal & Objectives
25
+
26
+ **Goal:** Merge all per-module FE flow graphs into a site-wide navigation structure, resolving route conflicts, building coherent navigation hierarchies, and defining auth-gated route policies that provide a unified user experience across all modules.
27
+
28
+ | Priority | Objective |
29
+ |---|---|
30
+ | primary | Produce a global_navigation.json with a complete route registry covering all modules, with zero duplicate or conflicting routes |
31
+ | secondary | Build a coherent primary and secondary navigation hierarchy that organizes all modules' screens into a logical site-wide menu structure |
32
+ | tertiary | Define breadcrumb rules and auth-gated route policies (public, authenticated, role-based) across the entire application |
33
+
34
+ ---
35
+
36
+ ## Inputs
37
+
38
+ ### fe_flow.json (ALL modules)
39
+ - **Source:** `fe_flow` -> `agent_output/architecture/{module_id}/fe_flow.json` (for each module)
40
+ - **Required:** yes
41
+ - **Shape:**
42
+ ```json
43
+ {
44
+ "module_id": "string -- module identifier",
45
+ "nodes": [
46
+ {
47
+ "node_id": "string",
48
+ "type": "string -- 'screen' | 'modal' | 'redirect' | 'error'",
49
+ "screen_ref": "string | null",
50
+ "route": "string | null",
51
+ "label": "string",
52
+ "is_entry_point": "boolean",
53
+ "requires_auth": "boolean",
54
+ "required_roles": ["string"]
55
+ }
56
+ ],
57
+ "entry_points": [
58
+ {
59
+ "node_id": "string",
60
+ "route": "string",
61
+ "is_default": "boolean",
62
+ "auth_required": "boolean"
63
+ }
64
+ ],
65
+ "guards": [
66
+ {
67
+ "guard_id": "string",
68
+ "type": "string",
69
+ "applies_to": ["string"],
70
+ "config": {
71
+ "auth_required": "boolean",
72
+ "role_required": ["string"],
73
+ "redirect_on_fail": "string"
74
+ }
75
+ }
76
+ ]
77
+ }
78
+ ```
79
+
80
+ ### fe_details.json (ALL modules)
81
+ - **Source:** `fe_contract` -> `agent_output/contracts/{module_id}/fe_details.json` (for each module)
82
+ - **Required:** yes
83
+ - **Shape:**
84
+ ```json
85
+ {
86
+ "module_id": "string -- module identifier",
87
+ "screens": [
88
+ {
89
+ "screen_id": "string",
90
+ "screen_name": "string",
91
+ "route": "string"
92
+ }
93
+ ],
94
+ "navigation_graph": {
95
+ "nodes": ["string"],
96
+ "edges": [
97
+ {
98
+ "from": "string",
99
+ "to": "string",
100
+ "trigger": "string"
101
+ }
102
+ ]
103
+ }
104
+ }
105
+ ```
106
+
107
+ ---
108
+
109
+ ## Outputs
110
+
111
+ ### global_navigation.json
112
+ - **Path:** `agent_output/architecture/global/global_navigation.json`
113
+ - **Format:** `json`
114
+ - **Consumers:** `architect_reconcile`, `impl_prep`, `fe_impl`
115
+ - **Shape:**
116
+ ```json
117
+ {
118
+ "generated_at": "string -- ISO-8601 timestamp",
119
+ "total_routes": "number -- total routes across all modules",
120
+ "total_modules": "number -- number of modules in navigation",
121
+ "primary_nav": [
122
+ {
123
+ "nav_id": "string -- unique nav item identifier (e.g., 'NAV-001')",
124
+ "label": "string -- display label (e.g., 'Dashboard', 'Users', 'Billing')",
125
+ "route": "string -- URL route for this nav item",
126
+ "module": "string -- module_id this nav item belongs to",
127
+ "icon": "string | null -- icon identifier (e.g., 'dashboard', 'users', 'credit-card')",
128
+ "order": "number -- display order in navigation (1-based)",
129
+ "auth_required": "boolean -- whether authentication is needed",
130
+ "required_roles": ["string -- roles that can see this nav item (empty = all authenticated)"],
131
+ "children": [
132
+ {
133
+ "nav_id": "string -- child nav item identifier",
134
+ "label": "string -- child display label",
135
+ "route": "string -- child URL route",
136
+ "icon": "string | null",
137
+ "order": "number",
138
+ "auth_required": "boolean",
139
+ "required_roles": ["string"]
140
+ }
141
+ ]
142
+ }
143
+ ],
144
+ "secondary_nav": {
145
+ "user_menu": [
146
+ {
147
+ "nav_id": "string",
148
+ "label": "string -- e.g., 'Profile', 'Settings', 'Logout'",
149
+ "route": "string",
150
+ "icon": "string | null",
151
+ "auth_required": "boolean"
152
+ }
153
+ ],
154
+ "footer_nav": [
155
+ {
156
+ "nav_id": "string",
157
+ "label": "string -- e.g., 'Terms', 'Privacy', 'Help'",
158
+ "route": "string"
159
+ }
160
+ ],
161
+ "utility_nav": [
162
+ {
163
+ "nav_id": "string",
164
+ "label": "string -- e.g., 'Notifications', 'Search'",
165
+ "route": "string | null",
166
+ "action": "string | null -- 'open_panel' | 'navigate'"
167
+ }
168
+ ]
169
+ },
170
+ "breadcrumb_rules": [
171
+ {
172
+ "rule_id": "string -- unique rule identifier",
173
+ "route_pattern": "string -- route pattern this rule applies to (e.g., '/users/:id')",
174
+ "breadcrumbs": [
175
+ {
176
+ "label": "string -- breadcrumb label (can use :param syntax for dynamic labels)",
177
+ "route": "string -- breadcrumb link route",
178
+ "is_dynamic": "boolean -- whether the label is computed from route params or data"
179
+ }
180
+ ]
181
+ }
182
+ ],
183
+ "route_registry": [
184
+ {
185
+ "route": "string -- full URL route (e.g., '/dashboard', '/users/:id')",
186
+ "module_id": "string -- module this route belongs to",
187
+ "screen_ref": "string -- screen_id from fe_flow",
188
+ "label": "string -- human-readable page name",
189
+ "auth_required": "boolean",
190
+ "required_roles": ["string"],
191
+ "params": [
192
+ {
193
+ "name": "string -- parameter name (e.g., 'id')",
194
+ "type": "string -- 'string' | 'number' | 'uuid'",
195
+ "required": "boolean"
196
+ }
197
+ ],
198
+ "is_entry_point": "boolean -- whether this is a module entry point",
199
+ "parent_route": "string | null -- parent route for hierarchical navigation"
200
+ }
201
+ ],
202
+ "auth_routes": {
203
+ "public": ["string -- routes accessible without authentication"],
204
+ "authenticated": ["string -- routes requiring authentication (any role)"],
205
+ "role_based": {
206
+ "admin": ["string -- routes requiring admin role"],
207
+ "user": ["string -- routes requiring user role"],
208
+ "manager": ["string -- routes requiring manager role"]
209
+ }
210
+ },
211
+ "route_conflicts": [
212
+ {
213
+ "conflict_id": "string -- unique conflict identifier",
214
+ "route": "string -- the conflicting route",
215
+ "modules_involved": ["string -- module_ids claiming this route"],
216
+ "resolution": "string -- how the conflict was resolved (e.g., 'prefixed with module name')",
217
+ "resolved_routes": ["string -- the resolved route paths"]
218
+ }
219
+ ]
220
+ }
221
+ ```
222
+
223
+ ---
224
+
225
+ ## Dependencies
226
+
227
+ | Depends On | Agent | Artifact | Why |
228
+ |---|---|---|---|
229
+ | input | `fe_flow` (all modules) | `fe_flow.json` | Provides screen graphs, entry points, routes, and guards for each module |
230
+ | input | `fe_contract` (all modules) | `fe_details.json` | Provides screen names and navigation graphs for labeling and hierarchy |
231
+ | barrier | ALL Phase 6 agents | All modules must complete Phase 6 before this global agent starts |
232
+
233
+ | Blocks | Agent | Why |
234
+ |---|---|---|
235
+ | output | `architect_reconcile` | Reconcile needs global navigation to build complete architecture |
236
+ | output | `impl_prep` | Impl prep agent needs navigation structure to generate layout components |
237
+
238
+ ---
239
+
240
+ ## Orchestrator Communication
241
+
242
+ ### Agent Identity
243
+
244
+ This agent's ID is `global_navigation`. Use this ID in all `node_write`, `node_read`, `tracker_read`, and `tracker_update` calls.
245
+
246
+ ### Tracker Access
247
+
248
+ | Direction | Compressed Keys | Purpose |
249
+ |---|---|---|
250
+ | read | (none) | Global agent -- does not read `md.a` |
251
+ | write | `ag` | Report agent status (completed/failed) |
252
+
253
+ ### Output Meta
254
+
255
+ This agent does not produce routing/coordination metadata. `output_meta: null`.
256
+
257
+ ### Completion Signal
258
+
259
+ - **On success:** `tracker_update(agent_id: "global_navigation", status: "completed")`
260
+ - **On failure:** `tracker_update(agent_id: "global_navigation", status: "failed", add_intervention: { id: "...", agent_id: "global_navigation", type: "error", message: "..." })`
261
+
262
+ ### Scope Resolution
263
+
264
+ Global agent -- does NOT read `md.a`. Reads all modules' per-module artifacts in a single pass.
265
+
266
+ ```
267
+ 1. node_read(agent_id: "global_navigation", input_key: "fe_flow_all")
268
+ 2. node_read(agent_id: "global_navigation", input_key: "fe_details_all")
269
+ 3. Process all modules → merge routes and build navigation hierarchy
270
+ 4. node_write(agent_id: "global_navigation", output_key: "global_navigation", data: {...})
271
+ 5. tracker_update(agent_id: "global_navigation", status: "completed")
272
+ ```
273
+
274
+ ---
275
+
276
+ ## Compressed Keymap
277
+
278
+ Use these compressed keys in all `node_write` calls. The registry validates against this map — unknown keys are rejected.
279
+
280
+ ### Output: `global_navigation.json`
281
+
282
+ | Key | Full Name | Description |
283
+ |---|---|---|
284
+ | `ga` | generated_at | ISO-8601 timestamp |
285
+ | `tr` | total_routes | Total routes across all modules |
286
+ | `tm` | total_modules | Number of modules in navigation |
287
+ | `pn` | primary_nav | Primary navigation items |
288
+ | `pn.ni` | nav_id | Unique nav item ID (e.g., 'NAV-001') |
289
+ | `pn.lb` | label | Display label (e.g., 'Dashboard') |
290
+ | `pn.rt` | route | URL route for this nav item |
291
+ | `pn.md` | module | Module ID this nav item belongs to |
292
+ | `pn.ic` | icon | Icon identifier (e.g., 'dashboard') |
293
+ | `pn.or` | order | Display order (1-based) |
294
+ | `pn.ar` | auth_required | Whether authentication is needed |
295
+ | `pn.rr` | required_roles | Roles that can see this nav item |
296
+ | `pn.ch` | children | Child nav items |
297
+ | `pn.ch.ni` | nav_id | Child nav item ID |
298
+ | `pn.ch.lb` | label | Child display label |
299
+ | `pn.ch.rt` | route | Child URL route |
300
+ | `pn.ch.ic` | icon | Child icon |
301
+ | `pn.ch.or` | order | Child display order |
302
+ | `pn.ch.ar` | auth_required | Child auth required |
303
+ | `pn.ch.rr` | required_roles | Child required roles |
304
+ | `sn` | secondary_nav | Secondary navigation sections |
305
+ | `sn.um` | user_menu | User menu items |
306
+ | `sn.um.ni` | nav_id | User menu item ID |
307
+ | `sn.um.lb` | label | Display label (e.g., 'Profile') |
308
+ | `sn.um.rt` | route | URL route |
309
+ | `sn.um.ic` | icon | Icon identifier |
310
+ | `sn.um.ar` | auth_required | Whether auth needed |
311
+ | `sn.fn` | footer_nav | Footer navigation items |
312
+ | `sn.fn.ni` | nav_id | Footer nav item ID |
313
+ | `sn.fn.lb` | label | Display label (e.g., 'Terms') |
314
+ | `sn.fn.rt` | route | URL route |
315
+ | `sn.un` | utility_nav | Utility navigation items |
316
+ | `sn.un.ni` | nav_id | Utility nav item ID |
317
+ | `sn.un.lb` | label | Display label (e.g., 'Notifications') |
318
+ | `sn.un.rt` | route | URL route |
319
+ | `sn.un.ac` | action | open_panel / navigate |
320
+ | `br` | breadcrumb_rules | Breadcrumb rule definitions |
321
+ | `br.ri` | rule_id | Unique rule identifier |
322
+ | `br.rp` | route_pattern | Route pattern this rule applies to |
323
+ | `br.bc` | breadcrumbs | Breadcrumb chain |
324
+ | `br.bc.lb` | label | Breadcrumb label |
325
+ | `br.bc.rt` | route | Breadcrumb link route |
326
+ | `br.bc.id` | is_dynamic | Whether label is computed from data |
327
+ | `rr` | route_registry | Complete route registry |
328
+ | `rr.rt` | route | Full URL route |
329
+ | `rr.mi` | module_id | Module this route belongs to |
330
+ | `rr.sr` | screen_ref | Screen ID from fe_flow |
331
+ | `rr.lb` | label | Human-readable page name |
332
+ | `rr.ar` | auth_required | Whether auth needed |
333
+ | `rr.rl` | required_roles | Required roles |
334
+ | `rr.pm` | params | Route parameters |
335
+ | `rr.pm.nm` | name | Parameter name |
336
+ | `rr.pm.tp` | type | string / number / uuid |
337
+ | `rr.pm.rq` | required | Whether required |
338
+ | `rr.ie` | is_entry_point | Whether this is a module entry point |
339
+ | `rr.pr` | parent_route | Parent route for hierarchical navigation |
340
+ | `ar` | auth_routes | Auth-based route classification |
341
+ | `ar.pb` | public | Routes accessible without auth |
342
+ | `ar.au` | authenticated | Routes requiring auth (any role) |
343
+ | `ar.rb` | role_based | Role-specific route access |
344
+ | `ar.rb.ad` | admin | Admin-only routes |
345
+ | `ar.rb.us` | user | User-role routes |
346
+ | `ar.rb.mg` | manager | Manager-role routes |
347
+ | `rc` | route_conflicts | Detected route conflicts |
348
+ | `rc.ci` | conflict_id | Unique conflict identifier |
349
+ | `rc.rt` | route | The conflicting route |
350
+ | `rc.mi` | modules_involved | Module IDs claiming this route |
351
+ | `rc.rs` | resolution | How the conflict was resolved |
352
+ | `rc.rr` | resolved_routes | The resolved route paths |
353
+
354
+ ---
355
+
356
+ ## Tools Required
357
+
358
+ | Tool | Purpose | Exists? |
359
+ |---|---|---|
360
+ | `node_write` | Write global_navigation output via registry-validated compressed keys. Agent calls `node_write(agent_id: "global_navigation", output_key: "global_navigation", data: {...})`. | Pending |
361
+ | `node_read` | Read upstream artifacts (fe_flow_all, fe_details_all). Agent calls `node_read(agent_id: "global_navigation", input_key: "fe_flow_all")`. | Pending |
362
+ | `tracker_read` | Read pipeline state. Agent calls `tracker_read(agent_id: "global_navigation", fields: [...])`. | Pending |
363
+ | `tracker_update` | Report completion/failure. Agent calls `tracker_update(agent_id: "global_navigation", status: "completed")`. | Pending |
364
+
365
+ ---
366
+
367
+ ## Guardrails
368
+
369
+ ### Rules
370
+
371
+ | ID | Category | Severity | Rule |
372
+ |---|---|---|---|
373
+ | R-001 | `constraint` | `must` | No duplicate routes across modules -- every route in route_registry must be unique |
374
+ | R-002 | `constraint` | `must` | Must build a coherent navigation hierarchy -- every module must be reachable from primary or secondary nav |
375
+ | R-003 | `constraint` | `must` | Must handle auth-gated routes -- every route must be classified as public, authenticated, or role-based |
376
+ | R-004 | `constraint` | `must` | All route conflicts must be detected and resolved with documented resolution strategy |
377
+ | R-005 | `output_quality` | `must` | Primary nav must have a logical ordering (dashboard first, settings last, etc.) |
378
+ | R-006 | `data_handling` | `must` | Every route in route_registry must reference a valid module_id and screen_ref |
379
+ | R-007 | `scope_boundary` | `should` | Breadcrumb rules should cover all navigable routes with dynamic label support |
380
+ | R-008 | `output_quality` | `should` | Navigation items should have icon suggestions for common categories |
381
+ | R-009 | `not_allowed` | `must` | Must not invent routes not present in any module's fe_flow.json |
382
+ | R-010 | `constraint` | `should` | Route parameters should specify type (string, number, uuid) for validation |
383
+ | R-011 | `output_quality` | `should` | Auth routes classification should match the guards defined in per-module fe_flow |
384
+ | R-012 | `constraint` | `must` | Must use compressed keys as defined in the Compressed Keymap section for all `node_write` / `node_read` calls. Never use expanded/full key names. |
385
+ | R-013 | `constraint` | `must` | Must use `node_write` to write output and `node_read` to read upstream artifacts. Must not use raw file writes, generic file_writer, or any other method. |
386
+ | R-014 | `constraint` | `must` | Must call `tracker_update(agent_id: "global_navigation", status: "completed")` before exiting on success. Must call `tracker_update(agent_id: "global_navigation", status: "failed", add_intervention: {...})` before exiting on failure. |
387
+
388
+ ### Limits
389
+
390
+ | Resource | Value |
391
+ |---|---|
392
+ | max_retries | 3 |
393
+ | max_tokens | 32000 |
394
+ | max_primary_nav_items | 15 |
395
+ | max_nav_depth | 3 |
396
+
397
+ ---
398
+
399
+ ## Scope Boundary
400
+
401
+ **In scope:**
402
+ - Merging all modules' routes into a global route registry
403
+ - Detecting and resolving route conflicts across modules
404
+ - Building primary and secondary navigation hierarchies
405
+ - Defining breadcrumb rules for all navigable routes
406
+ - Classifying routes by auth requirements (public, authenticated, role-based)
407
+ - Assigning navigation ordering and icons
408
+
409
+ **Out of scope:**
410
+ - Modifying per-module fe_flow.json (read-only)
411
+ - Implementing navigation components (Phase 10 FE implementation)
412
+ - Defining middleware or security policies (global_security agent's job)
413
+ - Building global service registry (global_services agent's job)
414
+ - Designing visual navigation layouts or styles
415
+
416
+ ---
417
+
418
+ ## Triggers
419
+
420
+ - Orchestrator detects that ALL modules have completed Phase 6 (barrier cleared)
421
+ - Can run in PARALLEL with global_services, global_middleware (independent inputs)
422
+ - Triggered once (global granularity)
423
+
424
+ ---
425
+
426
+ ## Checkpoints
427
+
428
+ | ID | Description | Action |
429
+ |---|---|---|
430
+ | `CP-001` | All modules' fe_flow.json and fe_details.json loaded | `log` |
431
+ | `CP-002` | Route registry compiled from all modules | `log` |
432
+ | `CP-003` | Route conflict detected between modules | `notify` |
433
+ | `CP-004` | Navigation hierarchy built -- primary and secondary nav defined | `log` |
434
+ | `CP-005` | Auth route classification complete | `log` |
435
+ | `CP-006` | Global navigation output generated and schema-validated | `notify` |
436
+
437
+ ---
438
+
439
+ ## Validation Criteria
440
+
441
+ - Every route from every module's fe_flow.json appears in route_registry
442
+ - No duplicate routes in route_registry (unique route + method combinations)
443
+ - Every route is classified in auth_routes (public, authenticated, or role_based)
444
+ - All route conflicts are documented with resolutions
445
+ - Primary nav covers all modules (every module has at least one nav entry)
446
+ - Breadcrumb rules cover all routes with depth > 1
447
+ - All nav_ids are unique across primary_nav, secondary_nav, and children
448
+ - Route parameters have defined types
449
+ - Output JSON passes schema validation
450
+ - Navigation hierarchy depth does not exceed max_nav_depth limit
451
+
452
+ ---
453
+
454
+ ## Context Sources
455
+
456
+ - fe_flow.json from all modules (screen graphs, routes, entry points, guards)
457
+ - fe_details.json from all modules (screen names, navigation graphs)
458
+ - Common navigation patterns in web applications
459
+
460
+ ---
461
+
462
+ ## Operation Mode
463
+
464
+ | Field | Value |
465
+ |---|---|
466
+ | Type | `autonomous` |
467
+ | Fallback | `none` |
468
+
469
+ ---
470
+
471
+ ## Tool Gaps
472
+
473
+ | Gap ID | Description | Needed By | Impact Without |
474
+ |---|---|---|---|
475
+ | `TG-001` | Route conflict detector that identifies duplicate, overlapping, and ambiguous routes across modules | this agent | Route conflicts cause runtime errors; manual detection unreliable for many modules |
476
+ | `TG-002` | Navigation hierarchy builder that infers parent-child relationships from flat route lists | this agent | Must manually organize routes; risk of poor navigation structure |
477
+ | `TG-003` | `node_write` MCP tool not yet built | this agent | Cannot write output with registry validation -- blocked |
478
+ | `TG-004` | `node_read` MCP tool not yet built | this agent | Cannot read upstream artifacts with field enforcement -- blocked |
479
+ | `TG-005` | `tracker_read` MCP tool not yet built | this agent | Cannot read pipeline state -- blocked |
480
+ | `TG-006` | `tracker_update` MCP tool not yet built | this agent | Cannot report completion -- blocked |
481
+
482
+ ---
483
+
484
+ ## Generation Readiness
485
+
486
+ | `generate_agent` Param | Status | Notes |
487
+ |---|---|---|
488
+ | `fileName` | ready | `global-navigation` |
489
+ | `agentName` | ready | `global_navigation` |
490
+ | `agentRole` | ready | Site-Wide Navigation Builder |
491
+ | `agentDescription` | ready | Merges all module routes into a unified navigation structure with conflict resolution |
492
+ | `operationMode` | ready | autonomous, no fallback |
493
+ | `goal` | ready | Three objectives defined with clear priorities |
494
+ | `inputs` | ready | All modules' fe_flow.json and fe_details.json |
495
+ | `guardrails` | ready | 14 rules covering constraints, quality, data handling, scope, universal tools, and completion signal |
496
+ | `scopeBoundary` | ready | 6 in-scope items, 5 out-of-scope items |
497
+ | `outputFormat` | ready | JSON output with full shape for global_navigation.json |
498
+ | `triggers` | ready | Barrier-triggered after all modules complete Phase 6; parallel with other Phase 7 agents |
499
+ | `checkpoints` | ready | 6 checkpoints covering loading, registry, conflicts, hierarchy, and output |
500
+ | `validation` | ready | 10 validation criteria |
501
+ | `contextSources` | ready | 3 context sources listed |
502
+ | `metadata` | ready | Phase 7, global, autonomous, both modes |