@mindrian_os/install 1.13.0-beta.17 → 1.13.0-beta.19

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 (182) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/CHANGELOG.md +26 -0
  3. package/commands/act.md +1 -0
  4. package/commands/admin.md +1 -0
  5. package/commands/analyze-needs.md +2 -0
  6. package/commands/analyze-systems.md +2 -0
  7. package/commands/analyze-timing.md +2 -0
  8. package/commands/auto-explore.md +2 -0
  9. package/commands/beautiful-question.md +2 -0
  10. package/commands/brain-derive.md +2 -0
  11. package/commands/build-knowledge.md +2 -0
  12. package/commands/build-thesis.md +2 -0
  13. package/commands/causal.md +2 -0
  14. package/commands/challenge-assumptions.md +2 -0
  15. package/commands/compare-ventures.md +2 -0
  16. package/commands/dashboard.md +2 -1
  17. package/commands/deep-grade.md +2 -0
  18. package/commands/diagnose.md +21 -1
  19. package/commands/diagnostics.md +14 -3
  20. package/commands/doctor.md +4 -1
  21. package/commands/dogfood-flush.md +92 -0
  22. package/commands/dominant-designs.md +2 -0
  23. package/commands/explain-decision.md +2 -0
  24. package/commands/explore-domains.md +2 -0
  25. package/commands/explore-futures.md +2 -0
  26. package/commands/explore-trends.md +2 -0
  27. package/commands/export.md +1 -0
  28. package/commands/feynman-timeline-refresh.md +2 -0
  29. package/commands/file-meeting.md +2 -0
  30. package/commands/find-analogies.md +1 -0
  31. package/commands/find-bottlenecks.md +2 -0
  32. package/commands/find-connections.md +2 -0
  33. package/commands/funding.md +1 -0
  34. package/commands/grade.md +2 -0
  35. package/commands/graph.md +1 -0
  36. package/commands/hat-briefing.md +1 -0
  37. package/commands/heal.md +22 -170
  38. package/commands/help.md +54 -334
  39. package/commands/hmi-status.md +23 -144
  40. package/commands/jtbd.md +1 -0
  41. package/commands/leadership.md +2 -0
  42. package/commands/lean-canvas.md +2 -0
  43. package/commands/macro-trends.md +2 -0
  44. package/commands/map-unknowns.md +2 -0
  45. package/commands/memory.md +1 -0
  46. package/commands/models.md +1 -0
  47. package/commands/mos-reason.md +2 -0
  48. package/commands/mos.md +139 -0
  49. package/commands/mullins.md +2 -0
  50. package/commands/mva-brief.md +2 -0
  51. package/commands/mva-option.md +2 -0
  52. package/commands/new-project.md +2 -0
  53. package/commands/onboard.md +20 -7
  54. package/commands/operator.md +1 -0
  55. package/commands/opportunities.md +1 -0
  56. package/commands/organize.md +22 -469
  57. package/commands/persona.md +1 -0
  58. package/commands/pipeline.md +2 -0
  59. package/commands/present.md +1 -0
  60. package/commands/publish.md +2 -0
  61. package/commands/query.md +24 -102
  62. package/commands/radar.md +2 -0
  63. package/commands/reanalyze.md +1 -0
  64. package/commands/research.md +2 -0
  65. package/commands/room.md +2 -0
  66. package/commands/rooms.md +1 -0
  67. package/commands/root-cause.md +2 -0
  68. package/commands/rs-experts.md +1 -0
  69. package/commands/rs-explain.md +1 -0
  70. package/commands/rs-fetch.md +1 -0
  71. package/commands/rs-thesis.md +1 -0
  72. package/commands/scenario-plan.md +2 -0
  73. package/commands/scheduled-tasks.md +1 -0
  74. package/commands/score-innovation.md +2 -0
  75. package/commands/scout.md +1 -0
  76. package/commands/setup.md +2 -0
  77. package/commands/snapshot.md +2 -0
  78. package/commands/speakers.md +1 -0
  79. package/commands/splash.md +5 -2
  80. package/commands/status.md +1 -0
  81. package/commands/structure-argument.md +2 -0
  82. package/commands/suggest-next.md +2 -0
  83. package/commands/systems-thinking.md +2 -0
  84. package/commands/think-hats.md +2 -0
  85. package/commands/update.md +2 -0
  86. package/commands/user-needs.md +2 -0
  87. package/commands/validate.md +2 -0
  88. package/commands/value-proposition.md +2 -0
  89. package/commands/vault.md +2 -0
  90. package/commands/visualize.md +24 -29
  91. package/commands/whitespace.md +2 -1
  92. package/commands/wiki.md +1 -0
  93. package/hooks/hooks.json +22 -88
  94. package/lib/agents/auto-explore-agent.cjs +82 -0
  95. package/lib/core/breakthrough/canary.cjs +134 -0
  96. package/lib/core/breakthrough/canary.test.cjs +136 -0
  97. package/lib/core/breakthrough/detectors.cjs +359 -0
  98. package/lib/core/breakthrough/detectors.test.cjs +333 -0
  99. package/lib/core/breakthrough/ethics-fence.cjs +127 -0
  100. package/lib/core/breakthrough/ethics-fence.test.cjs +178 -0
  101. package/lib/core/breakthrough/resurfacing.cjs +150 -0
  102. package/lib/core/breakthrough/resurfacing.test.cjs +233 -0
  103. package/lib/core/breakthrough/review-queue.cjs +154 -0
  104. package/lib/core/breakthrough/review-queue.test.cjs +160 -0
  105. package/lib/core/breakthrough/scanner-d17-d18.test.cjs +229 -0
  106. package/lib/core/breakthrough/scanner.cjs +426 -0
  107. package/lib/core/breakthrough/scanner.test.cjs +267 -0
  108. package/lib/core/breakthrough/schema.cjs +164 -0
  109. package/lib/core/breakthrough/schema.test.cjs +256 -0
  110. package/lib/core/breakthrough/scoring.cjs +293 -0
  111. package/lib/core/breakthrough/scoring.test.cjs +423 -0
  112. package/lib/core/breakthrough/verb-dispatch.cjs +221 -0
  113. package/lib/core/breakthrough/verb-dispatch.test.cjs +185 -0
  114. package/lib/core/breakthrough/voice-scaffold.cjs +247 -0
  115. package/lib/core/breakthrough/voice-scaffold.test.cjs +251 -0
  116. package/lib/core/first-touch-version-stamper.cjs +113 -0
  117. package/lib/core/larry-thinness-acknowledgment.cjs +64 -0
  118. package/lib/core/larry-thinness-acknowledgment.test.cjs +97 -0
  119. package/lib/core/llm-name-suggester.cjs +194 -0
  120. package/lib/core/llm-name-suggester.test.cjs +132 -0
  121. package/lib/core/mva-orchestrator.cjs +41 -0
  122. package/lib/core/mva-telemetry.cjs +31 -143
  123. package/lib/core/navigation/edges.cjs +35 -0
  124. package/lib/core/navigation/memory-events.cjs +126 -0
  125. package/lib/core/room-auto-create.cjs +318 -0
  126. package/lib/core/room-auto-create.test.cjs +198 -0
  127. package/lib/core/room-discard-cascade.cjs +225 -0
  128. package/lib/core/room-discard-cascade.test.cjs +135 -0
  129. package/lib/core/room-name-validator.cjs +132 -0
  130. package/lib/core/room-name-validator.test.cjs +156 -0
  131. package/lib/core/room-naming-selector.cjs +357 -0
  132. package/lib/core/room-naming-selector.test.cjs +277 -0
  133. package/lib/core/room-receipt-emit.cjs +63 -0
  134. package/lib/core/room-skeleton-scaffold.cjs +315 -0
  135. package/lib/core/room-skeleton-scaffold.test.cjs +291 -0
  136. package/lib/core/stale-copy-scanner.cjs +190 -0
  137. package/lib/core/state-aware-router.cjs +78 -0
  138. package/lib/core/telemetry/schema.cjs +168 -0
  139. package/lib/core/telemetry/schema.test.cjs +124 -0
  140. package/lib/core/telemetry/validator.cjs +197 -0
  141. package/lib/core/telemetry/validator.test.cjs +188 -0
  142. package/lib/core/telemetry/writer.cjs +141 -0
  143. package/lib/core/telemetry/writer.test.cjs +331 -0
  144. package/lib/core/terminal-capability.cjs +88 -0
  145. package/lib/core/venture-shape-nudge.cjs +163 -0
  146. package/lib/core/venture-shape-nudge.test.cjs +161 -0
  147. package/lib/core/visual-ops.cjs +70 -2
  148. package/lib/hmi/selector-dispatcher.cjs +90 -1
  149. package/lib/hmi/shape-f7-breakthrough-renderer.cjs +222 -0
  150. package/lib/hmi/shape-f7-breakthrough-renderer.test.cjs +233 -0
  151. package/lib/memory/body-shape-coverage.test.cjs +268 -0
  152. package/lib/memory/doctor-deprecation-surface.test.cjs +185 -0
  153. package/lib/memory/first-touch-version.test.cjs +198 -0
  154. package/lib/memory/help-coverage.test.cjs +108 -0
  155. package/lib/memory/help-renderer.test.cjs +145 -0
  156. package/lib/memory/palette-consistency.test.cjs +127 -0
  157. package/lib/memory/pending-tension-store.cjs +80 -0
  158. package/lib/memory/render-v2-disposition.test.cjs +199 -0
  159. package/lib/memory/run-feynman-tests.cjs +213 -0
  160. package/lib/memory/sessionstart-coordinator.test.cjs +446 -0
  161. package/lib/memory/skill-vs-code-drift.test.cjs +257 -0
  162. package/lib/memory/soft-alias.test.cjs +144 -0
  163. package/lib/memory/stale-copy-scanner.test.cjs +291 -0
  164. package/lib/memory/state-aware-router.test.cjs +90 -0
  165. package/lib/memory/statusline-two-row.test.cjs +338 -0
  166. package/lib/memory/terminal-capability.test.cjs +155 -0
  167. package/lib/render/ROOM.md +74 -22
  168. package/lib/sessionstart/budget-compressor.cjs +130 -0
  169. package/lib/sessionstart/contributor-interface.cjs +134 -0
  170. package/lib/sessionstart/contributor-isolator.cjs +128 -0
  171. package/lib/sessionstart/precedence-ladder.cjs +47 -0
  172. package/lib/statusline/governing-thought-truncator.cjs +45 -0
  173. package/lib/statusline/two-row-renderer.cjs +186 -0
  174. package/lib/statusline/version-resolver.cjs +81 -0
  175. package/package.json +1 -1
  176. package/references/visual/ROOM.md +55 -0
  177. package/references/visual/palette.json +54 -0
  178. package/skills/larry-personality/SKILL.md +34 -0
  179. package/skills/ui-system/SKILL.md +109 -1
  180. package/skills/ui-system/rules/dual-palette.md +156 -0
  181. package/skills/ui-system/rules/glyph-disambiguation.md +171 -0
  182. package/skills/ui-system/rules/shape-f-zero-and-six.md +169 -0
@@ -1119,6 +1119,12 @@ const TEST_FILES = [
1119
1119
  path.join(REPO_ROOT, 'tests', 'test-render-v2-jtbd-zone4.cjs'),
1120
1120
  path.join(REPO_ROOT, 'tests', 'test-render-v2-provenance.cjs'),
1121
1121
  path.join(REPO_ROOT, 'tests', 'test-render-v2-color-overlay.cjs'),
1122
+ // Phase 121.5-04 Sub-plan E: render-v2 disposition CI gate. Asserts the
1123
+ // audit verdict HOLDS, the allowlist matches the canonical agent-surface
1124
+ // set, ROOM.md uses "current" linguistic discipline, and the Phase 102
1125
+ // VALIDATION/VERIFICATION pair has closed (out of draft + record exists).
1126
+ // Pairs with the operator-facing audit at scripts/disposition-render-v2.cjs.
1127
+ path.join(REPO_ROOT, 'lib', 'memory', 'render-v2-disposition.test.cjs'),
1122
1128
  // Phase 103 — Memory Continuity Layer (within-session + across-session + cross-room)
1123
1129
  path.join(REPO_ROOT, 'tests', 'test-across-session-memory.cjs'),
1124
1130
  path.join(REPO_ROOT, 'tests', 'test-cross-room-memory.cjs'),
@@ -1319,6 +1325,13 @@ const TEST_FILES = [
1319
1325
  path.join(REPO_ROOT, 'tests', 'test-feynman-timeline-empty-state.cjs'),
1320
1326
  path.join(REPO_ROOT, 'tests', 'test-feynman-timeline-runner.cjs'),
1321
1327
  path.join(REPO_ROOT, 'tests', 'test-feynman-timeline-canon-part-9-invariant.cjs'),
1328
+ // Phase 121.5 terminal-coherence-capstone (multi-plan; SessionStart Coordinator is Plan 00).
1329
+ // sessionstart-coordinator.test.cjs -> Plan 121.5-00 (D-13..D-16 coordinator + 9 injector refactor)
1330
+ // Aggregator: tests/run-all-121.5.sh. Additional 121.5-* test suites are
1331
+ // already registered above this block (palette-consistency / statusline-two-row /
1332
+ // terminal-capability / help-renderer / help-coverage); the SessionStart
1333
+ // Coordinator suite lands here per the Plan 121.5-00 Task 3 contract.
1334
+ path.join(REPO_ROOT, 'lib', 'memory', 'sessionstart-coordinator.test.cjs'),
1322
1335
  // Phase 125 F-Selector Ranker (8 plans: Plan 00 writeEdge through Plan 07 miss).
1323
1336
  // navigation-write-edge.test.cjs -> Plan 125-00 (writeEdge primitive)
1324
1337
  // navigation-projections.test.cjs -> Plan 125-01 (projection helpers)
@@ -1373,6 +1386,206 @@ const TEST_FILES = [
1373
1386
  // Plan 118-06 (rule-linter + Dror 2.0 acceptance harness):
1374
1387
  path.join(REPO_ROOT, 'lib', 'core', 'mva-rule-linter.test.cjs'),
1375
1388
  path.join(REPO_ROOT, 'tests', 'test-mva-dror-harness.cjs'),
1389
+ // Phase 119-00 Wave 1 (Room-as-Receipt Invariant; D-01 + D-04 + D-06 telemetry mirror).
1390
+ // test-room-auto-create-event-types.cjs -> 119-00 Task 1 (EVENT_TYPES floor + 3 new strings)
1391
+ // venture-shape-nudge.test.cjs -> 119-00 Task 1 (D-02 nudge detector + D-01 invariant)
1392
+ // room-auto-create.test.cjs -> 119-00 Task 2 (slug + scaffold + registry + memory_event)
1393
+ // test-room-auto-create-fingerprint-integration.cjs -> 119-00 Task 3 (sibling hook + nudge shim)
1394
+ // Mirrors the Phase 117-00 + Phase 124-02 additive-tail-append registration precedent.
1395
+ path.join(REPO_ROOT, 'tests', 'test-room-auto-create-event-types.cjs'),
1396
+ path.join(REPO_ROOT, 'lib', 'core', 'venture-shape-nudge.test.cjs'),
1397
+ path.join(REPO_ROOT, 'lib', 'core', 'room-auto-create.test.cjs'),
1398
+ path.join(REPO_ROOT, 'tests', 'test-room-auto-create-fingerprint-integration.cjs'),
1399
+ // Phase 119-02 Wave 1 extension (Room-as-Receipt Invariant; D-05 skeleton scaffold +
1400
+ // Larry thinness-acknowledgment voice line + Canon decision 15 ICM Layer 0 everywhere).
1401
+ // larry-thinness-acknowledgment.test.cjs -> 119-02 Task 1 (THINNESS_VOICE_LINE verbatim + detector)
1402
+ // room-skeleton-scaffold.test.cjs -> 119-02 Task 2 (scaffold unit tests; reentrancy + Part 8/9 invariants)
1403
+ // test-room-skeleton-scaffold-integration.cjs -> 119-02 Task 2 (end-to-end placeholder-room scaffold scenarios)
1404
+ // test-119-02-auto-explore-fire-wiring.cjs -> 119-02 Task 3 (REVISION 2026-05-16: scaffoldRoomSkeleton call
1405
+ // site wired into scripts/auto-explore-fire.cjs;
1406
+ // closes Blocker 1+4 phantom wiring)
1407
+ // Aggregator: tests/test-119-02-scaffold.sh (the 6-gate shell harness).
1408
+ path.join(REPO_ROOT, 'lib', 'core', 'larry-thinness-acknowledgment.test.cjs'),
1409
+ path.join(REPO_ROOT, 'lib', 'core', 'room-skeleton-scaffold.test.cjs'),
1410
+ path.join(REPO_ROOT, 'tests', 'test-room-skeleton-scaffold-integration.cjs'),
1411
+ path.join(REPO_ROOT, 'tests', 'test-119-02-auto-explore-fire-wiring.cjs'),
1412
+ // Phase 119-01 Wave 2 extension (Room-as-Receipt Invariant; D-03 + D-06 retroactive-naming
1413
+ // F.1 selector + discard cascade + LLM-name-suggester + tri-surface adaptation):
1414
+ // llm-name-suggester.test.cjs -> 119-01 Task 1 (HAIKU_MODEL_ID + FALLBACK +
1415
+ // suggest happy/sad + Canon Part 8 grep tripwire +
1416
+ // EVENT_TYPES floor with +1 room_discard_partial_failure)
1417
+ // room-name-validator.test.cjs -> 119-01 Task 2 (four rejection classes +
1418
+ // Windows-reserved defense-in-depth)
1419
+ // room-discard-cascade.test.cjs -> 119-01 Task 2 (transactional discard +
1420
+ // partial-failure recovery via rooms-meta.db)
1421
+ // room-naming-selector.test.cjs -> 119-01 Task 3 (orchestrator + F1_OPTION_LABELS
1422
+ // + DECISION_PATHS + tri-surface envelope)
1423
+ // test-room-naming-selector-integration.cjs -> 119-01 Task 4 (mva-orchestrator hook + e2e shim spawn)
1424
+ // Aggregator: tests/test-119-01-scaffold.sh (the 7-gate shell harness).
1425
+ path.join(REPO_ROOT, 'lib', 'core', 'llm-name-suggester.test.cjs'),
1426
+ path.join(REPO_ROOT, 'lib', 'core', 'room-name-validator.test.cjs'),
1427
+ path.join(REPO_ROOT, 'lib', 'core', 'room-discard-cascade.test.cjs'),
1428
+ path.join(REPO_ROOT, 'lib', 'core', 'room-naming-selector.test.cjs'),
1429
+ path.join(REPO_ROOT, 'tests', 'test-room-naming-selector-integration.cjs'),
1430
+ // Phase 120-00 Wave 1: 4 breakthrough pattern detectors + Breakthrough graph schema.
1431
+ // test-breakthrough-event-types.cjs -> 120-00 Task 1 (EVENT_TYPES floor + 6 new strings;
1432
+ // round-trip via navigation.logMemoryEvent)
1433
+ // test-breakthrough-edge-types.cjs -> 120-00 Task 1 (ALLOWED_EDGE_TYPES floor + DERIVED_FROM;
1434
+ // round-trip via navigation.writeEdge)
1435
+ // lib/core/breakthrough/detectors.test.cjs -> 120-00 Task 2 (DETECTOR_THRESHOLDS verbatim + 4
1436
+ // detectors + classifyFireTier + Canon Part 8 invariant)
1437
+ // lib/core/breakthrough/schema.test.cjs -> 120-00 Task 3 (writeBreakthrough + validateProvenance;
1438
+ // D-20 HARD FLOOR atomic-transaction invariant)
1439
+ // Aggregator: tests/test-120-00-scaffold.sh (the 9-gate shell harness).
1440
+ path.join(REPO_ROOT, 'tests', 'test-breakthrough-event-types.cjs'),
1441
+ path.join(REPO_ROOT, 'tests', 'test-breakthrough-edge-types.cjs'),
1442
+ path.join(REPO_ROOT, 'lib', 'core', 'breakthrough', 'detectors.test.cjs'),
1443
+ path.join(REPO_ROOT, 'lib', 'core', 'breakthrough', 'schema.test.cjs'),
1444
+ // Phase 120-01 Wave 2: F.7 Breakthrough Surface selector + 5-component scoring formula.
1445
+ // shape-f7-breakthrough-renderer.test.cjs -> 120-01 Task 1 (closed-vocab 5 verbs verbatim
1446
+ // + D-10 mandatory-dismiss invariant +
1447
+ // D-20 HARD FLOOR provenance refusal)
1448
+ // scoring.test.cjs -> 120-01 Task 3 (SCORING_WEIGHTS verbatim
1449
+ // + RECENCY_HALF_LIFE_DAYS verbatim + the
1450
+ // 5-component formula + Laplace prior +
1451
+ // D-19 dismissal-rate canary + Canon Part 8
1452
+ // source-grep + em-dash HARD RULE)
1453
+ // selector-dispatcher additive F.7 branch is verified by tests/test-120-01-scaffold.sh
1454
+ // Gates 1 + 2 (already on disk; no separate
1455
+ // dispatcher unit-test file landed in Plan 120-01).
1456
+ // Aggregator: tests/test-120-01-scaffold.sh (the 8-gate shell harness).
1457
+ path.join(REPO_ROOT, 'lib', 'hmi', 'shape-f7-breakthrough-renderer.test.cjs'),
1458
+ path.join(REPO_ROOT, 'lib', 'core', 'breakthrough', 'scoring.test.cjs'),
1459
+ // Phase 120-02 Wave 2: session-start scanner + resurfacing + canary +
1460
+ // verb-dispatch consumer. Wires Plan 120-00 detectors + Plan 120-01 F.7 +
1461
+ // D-13..D-15 resurfacing rules + D-19 canary + 5-verb dispatch.
1462
+ // resurfacing.test.cjs -> 120-02 Task 1 (D-13..D-15 predicates;
1463
+ // SEVEN_DAY_COOLDOWN_MS verbatim; D-13 BOTH-
1464
+ // condition lock; Canon Part 8 source-grep)
1465
+ // canary.test.cjs -> 120-02 Task 1 (D-19 constants verbatim;
1466
+ // computeDismissalRate + isThrottled +
1467
+ // emitThrottleEvent; D19_MIN_SAMPLE floor;
1468
+ // per-kind isolation)
1469
+ // verb-dispatch.test.cjs -> 120-02 Task 2 (5-verb to 3-event lock;
1470
+ // Confirm/Dismiss/File-as-decision emitters;
1471
+ // D-09 FILED_AS_DECISION edge bridge;
1472
+ // D-13 artifact_ids_at_dismiss baseline)
1473
+ // scanner.test.cjs -> 120-02 Task 3 (scanForBreakthroughs +
1474
+ // surfaceBreakthrough; D-16 silence; D-13..
1475
+ // D-15 resurfacing filter; D-19 throttle
1476
+ // filter; D-20 writeBreakthrough contract;
1477
+ // D-20 third structural enforcement point)
1478
+ // check-pending-breakthrough.test.cjs -> 120-02 Task 3 session-start hook
1479
+ // (no-active-room / D-16 silence / happy-path
1480
+ // F.7 surfaced / corrupt-room degrade / hooks
1481
+ // .json wiring)
1482
+ // tests/test-breakthrough-d20-end-to-end.cjs -> 120-02 Task 3 LOAD-BEARING
1483
+ // D-20 invariant: every breakthrough_surfaced
1484
+ // pairs with >= 1 DERIVED_FROM edge; batch
1485
+ // invariant returns zero orphan-provenance
1486
+ // Breakthroughs; surface refusal emits
1487
+ // breakthrough_surface_blocked telemetry.
1488
+ // Aggregator: tests/test-120-02-scaffold.sh (the 8-gate shell harness).
1489
+ path.join(REPO_ROOT, 'lib', 'core', 'breakthrough', 'resurfacing.test.cjs'),
1490
+ path.join(REPO_ROOT, 'lib', 'core', 'breakthrough', 'canary.test.cjs'),
1491
+ path.join(REPO_ROOT, 'lib', 'core', 'breakthrough', 'verb-dispatch.test.cjs'),
1492
+ path.join(REPO_ROOT, 'lib', 'core', 'breakthrough', 'scanner.test.cjs'),
1493
+ path.join(REPO_ROOT, 'scripts', 'check-pending-breakthrough.test.cjs'),
1494
+ path.join(REPO_ROOT, 'tests', 'test-breakthrough-d20-end-to-end.cjs'),
1495
+ // Phase 120-03 Wave 2: D-17 voice scaffold + D-18 4-tier ethics fence + SOFT_BAND
1496
+ // review queue + Larry skill update. The conversational + ethical-enforcement
1497
+ // layer that converts the math-detected breakthrough into honest, evidence-backed
1498
+ // Larry voice. Aggregator: tests/test-120-03-scaffold.sh (the 9-gate harness).
1499
+ // voice-scaffold.test.cjs -> 120-03 Task 1 (composeBreakthrough
1500
+ // VoiceLine + auditVoiceLine + the
1501
+ // 4 D-17 rule predicates + frozen
1502
+ // constants verbatim)
1503
+ // ethics-fence.test.cjs -> 120-03 Task 2 (classifyEthicsBand
1504
+ // + 4 frozen threshold constants +
1505
+ // queueForReview happy path +
1506
+ // memory_event mirror)
1507
+ // review-queue.test.cjs -> 120-03 Task 2 (openReviewQueue +
1508
+ // .rooms/breakthrough-review-queue.db
1509
+ // schema + insertReviewCandidate +
1510
+ // listPendingReviews + graceful EACCES
1511
+ // fallback)
1512
+ // scanner-d17-d18.test.cjs -> 120-03 Task 3 (scanner integration
1513
+ // of voice-scaffold + ethics-fence;
1514
+ // F.7 renderer voice_line slot; D-17
1515
+ // violator -> structural default)
1516
+ // tests/test-breakthrough-d17-voice-audit.cjs -> 120-03 Task 1 (D-17 audit catalog
1517
+ // end-to-end: 8-candidate matrix +
1518
+ // per-rule violator/valid pairs)
1519
+ // tests/test-breakthrough-d18-ethics-fence.cjs -> 120-03 Task 2 (D-18 4-band end-to-end:
1520
+ // SOFT_BAND queue + memory_event; no
1521
+ // breakthrough_surfaced from SOFT_BAND)
1522
+ path.join(REPO_ROOT, 'lib', 'core', 'breakthrough', 'voice-scaffold.test.cjs'),
1523
+ path.join(REPO_ROOT, 'lib', 'core', 'breakthrough', 'ethics-fence.test.cjs'),
1524
+ path.join(REPO_ROOT, 'lib', 'core', 'breakthrough', 'review-queue.test.cjs'),
1525
+ path.join(REPO_ROOT, 'lib', 'core', 'breakthrough', 'scanner-d17-d18.test.cjs'),
1526
+ path.join(REPO_ROOT, 'tests', 'test-breakthrough-d17-voice-audit.cjs'),
1527
+ path.join(REPO_ROOT, 'tests', 'test-breakthrough-d18-ethics-fence.cjs'),
1528
+ // Phase 121-00 (Wave 1, Foundation): unified trajectory-telemetry writer
1529
+ // chokepoint + frozen v1 schema + Canon Part 8 emit-time validator. The
1530
+ // architectural ancestor is lib/core/mva-telemetry.cjs (Phase 118); this
1531
+ // module consolidates the 4 piecemeal writers (mva, query-efficiency,
1532
+ // selector, navigation-bypass) into ONE emit() entry point with
1533
+ // ISO-week rotation (events-YYYY-WNN.jsonl) and a per-row schema_version
1534
+ // (Number 1). schema.test.cjs (2 cases) asserts EVENT_TYPES frozen at 15
1535
+ // + ALLOWED_FIELDS shape. validator.test.cjs (7 cases) asserts the
1536
+ // Canon Part 8 constitutional gate: unknown_event + unknown_field + 7
1537
+ // adversarial forbidden-pattern rejections (Cypher / email / phone /
1538
+ // brain host URL / absolute path / raw hex / free-text prose). The
1539
+ // sha256-in-dedicated-field sanity case confirms hash-class fields are
1540
+ // NOT false-flagged. writer.test.cjs (10 cases) asserts the chokepoint
1541
+ // contract end-to-end: export surface, telemetryDir under HOME,
1542
+ // isoWeekFilename zero-padding, telemetryFile composition, emit() JSONL
1543
+ // shape (schema_version=1 Number + ISO-8601 timestamp + session_id +
1544
+ // payload), throws on unknown event, throws on Part 8 forbidden pattern,
1545
+ // recursive mkdir + silent fs-error swallow, two emits 5ms apart in
1546
+ // same ISO-week file, all lines JSON.parseable with no BOM.
1547
+ path.join(REPO_ROOT, 'lib', 'core', 'telemetry', 'schema.test.cjs'),
1548
+ path.join(REPO_ROOT, 'lib', 'core', 'telemetry', 'validator.test.cjs'),
1549
+ path.join(REPO_ROOT, 'lib', 'core', 'telemetry', 'writer.test.cjs'),
1550
+ // Phase 121-01 Task 1 (Wave 1, atomic cutover): the one-time idempotent
1551
+ // migration script that merges the 4 piecemeal telemetry sources
1552
+ // (mva.jsonl, selector.jsonl, navigation-bypass.jsonl,
1553
+ // query-efficiency.jsonl) into the unified events-YYYY-WNN.jsonl stream
1554
+ // produced by writer.cjs. 8 fixture tests cover: empty source dir
1555
+ // no-op, legacy-shape normalization to command_invocation, mva
1556
+ // timestamp-order + schema_version=1 (Number), source rename to
1557
+ // *.pre-v121.bak, sha256-fingerprint idempotence on re-run, mixed-week
1558
+ // ISO split (W19/W20), Canon Part 8 forbidden-pattern quarantine
1559
+ // without abort, stdout summary JSON shape. Hermetic per-test
1560
+ // tmpdir + HOME swap; mirrors writer.test.cjs scaffolding.
1561
+ path.join(REPO_ROOT, 'scripts', 'migrate-telemetry-v1.test.cjs'),
1562
+ // Phase 121-02 Task 1..4 (Wave 2, capture-point wire-ins): 4 integration
1563
+ // test files each verify that a high-signal capture point routes its
1564
+ // emit through lib/core/telemetry/writer.cjs into the unified
1565
+ // events-YYYY-WNN.jsonl stream. D-04 selector_pick (88.2/125 ranker) +
1566
+ // D-05 tension_engagement (Phase 116) + D-06 auto_explore_decision
1567
+ // (Phase 117) + D-07 breakthrough_dismissed (Phase 120 + ethics_tier +
1568
+ // voice_audit_pass). 4 tests per file (16 total); each asserts the
1569
+ // event lands with correct ALLOWED_FIELDS shape, non-blocking semantics
1570
+ // (telemetry validation failure does NOT crash the shipping behavior),
1571
+ // and that user-initiated state transitions are captured while
1572
+ // system-driven transitions (decay, throttle, skip) are excluded.
1573
+ path.join(REPO_ROOT, 'tests', 'test-121-02-selector-pick-capture.cjs'),
1574
+ path.join(REPO_ROOT, 'tests', 'test-121-02-tension-engagement-capture.cjs'),
1575
+ path.join(REPO_ROOT, 'tests', 'test-121-02-auto-explore-capture.cjs'),
1576
+ path.join(REPO_ROOT, 'tests', 'test-121-02-breakthrough-dismissed-capture.cjs'),
1577
+ // Phase 121-03 Task 1..4 (Wave 2, secondary D-09 capture points): 3 integration
1578
+ // tests + 1 drowning-protection fixture. D-09 ships three lower-signal but
1579
+ // broader-sweep emit surfaces: empathy audit observation CLI harness +
1580
+ // Phase 119 room-as-receipt helper module + PostToolUse /mos:* broad sweep
1581
+ // (100% sampling, type-discriminator-isolated bucket). The drowning-protection
1582
+ // fixture proves the type discriminator works: 100 command_invocation events
1583
+ // + 10 selector_pick events to a tmpdir, type-filter isolates them so SEED-002
1584
+ // consumers can drop the bucket without losing the high-signal stream.
1585
+ path.join(REPO_ROOT, 'tests', 'test-121-03-empathy-observation.cjs'),
1586
+ path.join(REPO_ROOT, 'tests', 'test-121-03-room-receipt-emit.cjs'),
1587
+ path.join(REPO_ROOT, 'tests', 'test-121-03-command-invocation-hook.cjs'),
1588
+ path.join(REPO_ROOT, 'tests', 'test-121-03-drowning-protection.cjs'),
1376
1589
  ];
1377
1590
 
1378
1591
  // Exit code convention for child tests: