@mindrian_os/install 1.13.0-beta.11

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 (597) hide show
  1. package/.claude-plugin/plugin.json +21 -0
  2. package/.mcp.json +9 -0
  3. package/CHANGELOG.md +3333 -0
  4. package/LICENSE +123 -0
  5. package/README.md +673 -0
  6. package/agents/brain-query.md +80 -0
  7. package/agents/framework-runner.md +237 -0
  8. package/agents/grading.md +188 -0
  9. package/agents/investor.md +128 -0
  10. package/agents/larry-extended.md +135 -0
  11. package/agents/opportunity-scanner.md +91 -0
  12. package/agents/persona-analyst.md +132 -0
  13. package/agents/research.md +89 -0
  14. package/agents/reverse-salient-agent.md +27 -0
  15. package/bin/cli.js +142 -0
  16. package/bin/mindrian-mcp-server.cjs +182 -0
  17. package/bin/mindrian-tools.cjs +765 -0
  18. package/commands/act.md +439 -0
  19. package/commands/admin.md +404 -0
  20. package/commands/analyze-needs.md +42 -0
  21. package/commands/analyze-systems.md +39 -0
  22. package/commands/analyze-timing.md +42 -0
  23. package/commands/auto-explore.md +64 -0
  24. package/commands/beautiful-question.md +40 -0
  25. package/commands/brain-derive.md +78 -0
  26. package/commands/build-knowledge.md +42 -0
  27. package/commands/build-thesis.md +46 -0
  28. package/commands/causal.md +234 -0
  29. package/commands/challenge-assumptions.md +33 -0
  30. package/commands/compare-ventures.md +83 -0
  31. package/commands/dashboard.md +110 -0
  32. package/commands/deep-grade.md +82 -0
  33. package/commands/diagnose.md +58 -0
  34. package/commands/diagnostics.md +151 -0
  35. package/commands/doctor.md +151 -0
  36. package/commands/dominant-designs.md +40 -0
  37. package/commands/explain-decision.md +87 -0
  38. package/commands/explore-domains.md +42 -0
  39. package/commands/explore-futures.md +40 -0
  40. package/commands/explore-trends.md +42 -0
  41. package/commands/export.md +103 -0
  42. package/commands/file-meeting.md +724 -0
  43. package/commands/find-analogies.md +188 -0
  44. package/commands/find-bottlenecks.md +62 -0
  45. package/commands/find-connections.md +76 -0
  46. package/commands/funding.md +81 -0
  47. package/commands/grade.md +203 -0
  48. package/commands/graph.md +128 -0
  49. package/commands/hat-briefing.md +125 -0
  50. package/commands/heal.md +196 -0
  51. package/commands/help.md +399 -0
  52. package/commands/hmi-status.md +172 -0
  53. package/commands/jtbd.md +241 -0
  54. package/commands/leadership.md +73 -0
  55. package/commands/lean-canvas.md +40 -0
  56. package/commands/macro-trends.md +40 -0
  57. package/commands/map-unknowns.md +40 -0
  58. package/commands/memory.md +173 -0
  59. package/commands/models.md +175 -0
  60. package/commands/mos-reason.md +285 -0
  61. package/commands/mullins.md +120 -0
  62. package/commands/new-project.md +481 -0
  63. package/commands/onboard.md +434 -0
  64. package/commands/operator.md +149 -0
  65. package/commands/opportunities.md +144 -0
  66. package/commands/organize.md +497 -0
  67. package/commands/persona.md +198 -0
  68. package/commands/pipeline.md +112 -0
  69. package/commands/present.md +91 -0
  70. package/commands/publish.md +201 -0
  71. package/commands/query.md +124 -0
  72. package/commands/radar.md +72 -0
  73. package/commands/reanalyze.md +91 -0
  74. package/commands/research.md +196 -0
  75. package/commands/room.md +352 -0
  76. package/commands/rooms.md +598 -0
  77. package/commands/root-cause.md +40 -0
  78. package/commands/rs-experts.md +85 -0
  79. package/commands/rs-explain.md +100 -0
  80. package/commands/rs-fetch.md +94 -0
  81. package/commands/rs-thesis.md +85 -0
  82. package/commands/scenario-plan.md +40 -0
  83. package/commands/scheduled-tasks.md +285 -0
  84. package/commands/score-innovation.md +43 -0
  85. package/commands/scout.md +239 -0
  86. package/commands/setup.md +618 -0
  87. package/commands/snapshot.md +147 -0
  88. package/commands/speakers.md +84 -0
  89. package/commands/splash.md +28 -0
  90. package/commands/status.md +75 -0
  91. package/commands/structure-argument.md +42 -0
  92. package/commands/suggest-next.md +80 -0
  93. package/commands/systems-thinking.md +40 -0
  94. package/commands/think-hats.md +42 -0
  95. package/commands/update.md +181 -0
  96. package/commands/user-needs.md +40 -0
  97. package/commands/validate.md +40 -0
  98. package/commands/value-proposition.md +61 -0
  99. package/commands/vault.md +180 -0
  100. package/commands/visualize.md +52 -0
  101. package/commands/whitespace.md +507 -0
  102. package/commands/wiki.md +69 -0
  103. package/hooks/hooks.json +381 -0
  104. package/hooks/run-hook.cmd +64 -0
  105. package/lib/__init__.py +0 -0
  106. package/lib/__pycache__/__init__.cpython-312.pyc +0 -0
  107. package/lib/agents/auto-explore-agent.cjs +1043 -0
  108. package/lib/agents/reverse-salient-agent.cjs +679 -0
  109. package/lib/agents/tension-hook-agent.cjs +544 -0
  110. package/lib/brain/ROOM.md +44 -0
  111. package/lib/brain/chain-recommender.cjs +301 -0
  112. package/lib/chat/chat-context.js +185 -0
  113. package/lib/chat/chat-panel.js +721 -0
  114. package/lib/chat/fabric-chat.cjs +288 -0
  115. package/lib/chat/generative-tools.js +219 -0
  116. package/lib/conversation/ROOM.md +39 -0
  117. package/lib/conversation/classifier-rules.json +38 -0
  118. package/lib/conversation/classifier.cjs +264 -0
  119. package/lib/conversation/operator.cjs +287 -0
  120. package/lib/copy/115-spec-strings.cjs +55 -0
  121. package/lib/core/__init__.py +0 -0
  122. package/lib/core/__nav-stub.cjs +14 -0
  123. package/lib/core/__pycache__/__init__.cpython-312.pyc +0 -0
  124. package/lib/core/__pycache__/rs-math.cpython-312.pyc +0 -0
  125. package/lib/core/__pycache__/rs_cache.cpython-312.pyc +0 -0
  126. package/lib/core/__pycache__/rs_corpus.cpython-312.pyc +0 -0
  127. package/lib/core/__pycache__/rs_hybrid.cpython-312.pyc +0 -0
  128. package/lib/core/__pycache__/rs_math.cpython-312.pyc +0 -0
  129. package/lib/core/__pycache__/rs_rooms.cpython-312.pyc +0 -0
  130. package/lib/core/artifact-id.cjs +148 -0
  131. package/lib/core/asset-ops.cjs +151 -0
  132. package/lib/core/auto-commit-throttle.cjs +129 -0
  133. package/lib/core/bearer-token.cjs +199 -0
  134. package/lib/core/brain-client.cjs +865 -0
  135. package/lib/core/brain-derivation-prompts.cjs +326 -0
  136. package/lib/core/brain-derivation-queue.cjs +431 -0
  137. package/lib/core/brain-derivation.cjs +580 -0
  138. package/lib/core/brain-md-schema.cjs +528 -0
  139. package/lib/core/brain-md-staleness.cjs +357 -0
  140. package/lib/core/brain-response-sanitize.cjs +188 -0
  141. package/lib/core/bridge-writer.cjs +477 -0
  142. package/lib/core/chat-context-builder.cjs +253 -0
  143. package/lib/core/cross-room-aggregator.cjs +762 -0
  144. package/lib/core/daily-briefing.cjs +438 -0
  145. package/lib/core/decision-capture.cjs +618 -0
  146. package/lib/core/deep-links.cjs +82 -0
  147. package/lib/core/dispatch-optimizer.cjs +354 -0
  148. package/lib/core/dual-path-detector.cjs +84 -0
  149. package/lib/core/dual-path-detector.test.cjs +334 -0
  150. package/lib/core/exports-log.cjs +79 -0
  151. package/lib/core/feynman-minto-invariants.cjs +605 -0
  152. package/lib/core/folder-memory-async.cjs +338 -0
  153. package/lib/core/folder-memory-shared.cjs +890 -0
  154. package/lib/core/folder-memory.cjs +416 -0
  155. package/lib/core/framework-chain-composer.cjs +411 -0
  156. package/lib/core/frontmatter-schemas.cjs +330 -0
  157. package/lib/core/git-ops.cjs +141 -0
  158. package/lib/core/graph-ops.cjs +258 -0
  159. package/lib/core/hat-persistence.cjs +362 -0
  160. package/lib/core/index.cjs +60 -0
  161. package/lib/core/integration-registry.cjs +232 -0
  162. package/lib/core/intelligence-cascade.cjs +661 -0
  163. package/lib/core/lazygraph-ops.cjs +1057 -0
  164. package/lib/core/lru-cache.cjs +139 -0
  165. package/lib/core/mcp-profiles.cjs +182 -0
  166. package/lib/core/meeting-ops.cjs +54 -0
  167. package/lib/core/memory-ops.cjs +600 -0
  168. package/lib/core/migrations/ROOM.md +33 -0
  169. package/lib/core/migrations/phase-109-nodes-provenance.cjs +339 -0
  170. package/lib/core/migrations/phase-109-session-focus.cjs +99 -0
  171. package/lib/core/model-profiles.cjs +246 -0
  172. package/lib/core/mullins-scaffold.cjs +160 -0
  173. package/lib/core/nav-dial.cjs +316 -0
  174. package/lib/core/navigation/ROOM.md +15 -0
  175. package/lib/core/navigation/explanation.cjs +43 -0
  176. package/lib/core/navigation/focus.cjs +135 -0
  177. package/lib/core/navigation/ingestion.cjs +82 -0
  178. package/lib/core/navigation/insights.cjs +350 -0
  179. package/lib/core/navigation/memory-events.cjs +118 -0
  180. package/lib/core/navigation/neighborhood.cjs +78 -0
  181. package/lib/core/navigation/packet.cjs +182 -0
  182. package/lib/core/navigation/room-home.cjs +127 -0
  183. package/lib/core/navigation/transitions.cjs +82 -0
  184. package/lib/core/navigation-engine-shared.cjs +242 -0
  185. package/lib/core/navigation-engine.cjs +664 -0
  186. package/lib/core/navigation.cjs +60 -0
  187. package/lib/core/nl-graph-queries.cjs +164 -0
  188. package/lib/core/offer-presenter.cjs +406 -0
  189. package/lib/core/opportunity-extractor.cjs +183 -0
  190. package/lib/core/opportunity-ops.cjs +1371 -0
  191. package/lib/core/persona-ops.cjs +537 -0
  192. package/lib/core/persona-taxonomy.cjs +190 -0
  193. package/lib/core/platform-gates.cjs +120 -0
  194. package/lib/core/platform.cjs +257 -0
  195. package/lib/core/proactive-intelligence.cjs +528 -0
  196. package/lib/core/problem-type-router.cjs +315 -0
  197. package/lib/core/reasoning-ops.cjs +639 -0
  198. package/lib/core/reverse-salient-persona-suffix.cjs +115 -0
  199. package/lib/core/room-classifier-strict-mode.cjs +229 -0
  200. package/lib/core/room-db.cjs +127 -0
  201. package/lib/core/room-ops-async.cjs +92 -0
  202. package/lib/core/room-ops-shared.cjs +64 -0
  203. package/lib/core/room-ops-sync.cjs +70 -0
  204. package/lib/core/room-ops.cjs +32 -0
  205. package/lib/core/room-type-detector.cjs +386 -0
  206. package/lib/core/rs-brain-substrate-prompts.cjs +129 -0
  207. package/lib/core/rs-brain-substrate.cjs +570 -0
  208. package/lib/core/rs-breakthrough-scorer.cjs +255 -0
  209. package/lib/core/rs-canon-violations.cjs +82 -0
  210. package/lib/core/rs-chain-feeder.cjs +343 -0
  211. package/lib/core/rs-commercial-assessor.cjs +280 -0
  212. package/lib/core/rs-differential-scorer.cjs +376 -0
  213. package/lib/core/rs-domain-analyzer.cjs +385 -0
  214. package/lib/core/rs-egress-prompts.cjs +113 -0
  215. package/lib/core/rs-egress-telemetry.cjs +225 -0
  216. package/lib/core/rs-egress-violations.cjs +53 -0
  217. package/lib/core/rs-expert-mapper.cjs +467 -0
  218. package/lib/core/rs-fetcher-academic.cjs +697 -0
  219. package/lib/core/rs-fetcher-experts.cjs +314 -0
  220. package/lib/core/rs-fetcher-industry.cjs +731 -0
  221. package/lib/core/rs-fetcher-patents.cjs +564 -0
  222. package/lib/core/rs-innovation-classifier.cjs +194 -0
  223. package/lib/core/rs-mind-map.cjs +656 -0
  224. package/lib/core/rs-neo4j-writer.cjs +388 -0
  225. package/lib/core/rs-nl-to-query.cjs +425 -0
  226. package/lib/core/rs-pinecone-bridge.cjs +303 -0
  227. package/lib/core/rs-preprocessor.cjs +350 -0
  228. package/lib/core/rs-query-matrix.cjs +316 -0
  229. package/lib/core/rs-query-to-text.cjs +438 -0
  230. package/lib/core/rs-sqlite-mirror.cjs +443 -0
  231. package/lib/core/rs-thesis-generator.cjs +188 -0
  232. package/lib/core/rs_cache.py +479 -0
  233. package/lib/core/rs_corpus.py +468 -0
  234. package/lib/core/rs_hybrid.py +586 -0
  235. package/lib/core/rs_math.py +287 -0
  236. package/lib/core/rs_rooms.py +193 -0
  237. package/lib/core/scheduled-scanner.cjs +463 -0
  238. package/lib/core/scratchpad-ops.cjs +201 -0
  239. package/lib/core/section-8-trace-schema.cjs +138 -0
  240. package/lib/core/section-registry.cjs +111 -0
  241. package/lib/core/session-state.cjs +144 -0
  242. package/lib/core/shallow-doc-parser.cjs +174 -0
  243. package/lib/core/shallow-doc-parser.test.cjs +226 -0
  244. package/lib/core/skill-activation-router.cjs +284 -0
  245. package/lib/core/state-ops.cjs +46 -0
  246. package/lib/core/statusline-cache.cjs +266 -0
  247. package/lib/core/token-estimator.cjs +348 -0
  248. package/lib/core/user-archetype.cjs +239 -0
  249. package/lib/core/user-md-ops.cjs +524 -0
  250. package/lib/core/visual-ops.cjs +624 -0
  251. package/lib/core/write-lock.cjs +149 -0
  252. package/lib/graph/canvas-graph.js +467 -0
  253. package/lib/graph/constellation-config.cjs +299 -0
  254. package/lib/graph/graph-detail-panel.js +165 -0
  255. package/lib/hmi/ROOM.md +47 -0
  256. package/lib/hmi/across-session-memory.cjs +604 -0
  257. package/lib/hmi/cross-room-memory.cjs +575 -0
  258. package/lib/hmi/decoy-tier.cjs +395 -0
  259. package/lib/hmi/jtbd-classifier.cjs +219 -0
  260. package/lib/hmi/jtbd-state.cjs +199 -0
  261. package/lib/hmi/jtbd-taxonomy.json +392 -0
  262. package/lib/hmi/selector-dispatcher.cjs +546 -0
  263. package/lib/hmi/selector-telemetry.cjs +263 -0
  264. package/lib/hmi/shape-f0-renderer.cjs +139 -0
  265. package/lib/hmi/shape-f1-fallback.cjs +80 -0
  266. package/lib/hmi/shape-f1-renderer.cjs +138 -0
  267. package/lib/hmi/shape-f2-renderer.cjs +132 -0
  268. package/lib/hmi/shape-f3-renderer.cjs +66 -0
  269. package/lib/hmi/shape-f4-renderer.cjs +72 -0
  270. package/lib/hmi/shape-f5-renderer.cjs +155 -0
  271. package/lib/hmi/shape-f6-plan-review-renderer.cjs +312 -0
  272. package/lib/hmi/shape-f6-renderer.cjs +144 -0
  273. package/lib/hmi/shape-g-renderer.cjs +219 -0
  274. package/lib/hmi/shape-h-renderer.cjs +222 -0
  275. package/lib/hmi/tier-check.cjs +63 -0
  276. package/lib/import/PRECONDITIONS.md +41 -0
  277. package/lib/import/branding.cjs +210 -0
  278. package/lib/import/branding.test.cjs +235 -0
  279. package/lib/import/classifications-sync.cjs +104 -0
  280. package/lib/import/classifications-sync.test.cjs +129 -0
  281. package/lib/import/enricher.cjs +296 -0
  282. package/lib/import/enricher.test.cjs +273 -0
  283. package/lib/import/integration.test.cjs +376 -0
  284. package/lib/import/manifest.cjs +129 -0
  285. package/lib/import/manifest.schema.json +185 -0
  286. package/lib/import/manifest.test.cjs +123 -0
  287. package/lib/import/meeting-detector.cjs +92 -0
  288. package/lib/import/meeting-detector.test.cjs +100 -0
  289. package/lib/import/person-detector.cjs +229 -0
  290. package/lib/import/person-detector.test.cjs +149 -0
  291. package/lib/import/report.cjs +186 -0
  292. package/lib/import/report.test.cjs +186 -0
  293. package/lib/import/room-md-scaffolder.cjs +49 -0
  294. package/lib/import/router.cjs +224 -0
  295. package/lib/import/router.test.cjs +356 -0
  296. package/lib/import/run-all-tests.cjs +36 -0
  297. package/lib/import/smoke-test.cjs +213 -0
  298. package/lib/import/smoke-test.test.cjs +148 -0
  299. package/lib/import/test-fixtures/collision-vault/preexisting-room/STATE.md +8 -0
  300. package/lib/import/test-fixtures/collision-vault/preexisting-room/problem-definition/onboarding/onboarding.md +7 -0
  301. package/lib/import/test-fixtures/collision-vault/source/onboarding.md +5 -0
  302. package/lib/import/test-fixtures/obsidian-vault/.obsidian/workspace.json +1 -0
  303. package/lib/import/test-fixtures/obsidian-vault/notes/with-wikilinks.md +4 -0
  304. package/lib/import/test-fixtures/tiny-vault/notes/2026-01-15-team-sync.md +9 -0
  305. package/lib/import/test-fixtures/tiny-vault/notes/empty.md +3 -0
  306. package/lib/import/test-fixtures/tiny-vault/notes/onboarding.md +5 -0
  307. package/lib/import/test-fixtures/tiny-vault/notes/pricing.md +5 -0
  308. package/lib/import/test-fixtures/tiny-vault/notes/random.md +4 -0
  309. package/lib/import/undo.test.cjs +199 -0
  310. package/lib/import/vault-scanner.cjs +105 -0
  311. package/lib/import/vault-scanner.test.cjs +67 -0
  312. package/lib/mcp/app-html/dashboard.html +316 -0
  313. package/lib/mcp/app-html/graph.html +428 -0
  314. package/lib/mcp/app-html/mindrian-platform.html +1841 -0
  315. package/lib/mcp/app-html/wiki.html +383 -0
  316. package/lib/mcp/app-views.cjs +322 -0
  317. package/lib/mcp/brain-router.cjs +418 -0
  318. package/lib/mcp/capability-registry.cjs +62 -0
  319. package/lib/mcp/larry-context.cjs +46 -0
  320. package/lib/mcp/larry-server-instructions.md +114 -0
  321. package/lib/mcp/pipeline-state.cjs +275 -0
  322. package/lib/mcp/prompts.cjs +302 -0
  323. package/lib/mcp/resources.cjs +227 -0
  324. package/lib/mcp/session-catchup.cjs +327 -0
  325. package/lib/mcp/surface-detect.cjs +75 -0
  326. package/lib/mcp/tool-router.cjs +1034 -0
  327. package/lib/memory/aaak-compress.cjs +403 -0
  328. package/lib/memory/aaak-compress.test.cjs +288 -0
  329. package/lib/memory/async-artifact-auto-commit.test.cjs +223 -0
  330. package/lib/memory/bearer-token.test.cjs +315 -0
  331. package/lib/memory/brain-cache-lru.test.cjs +259 -0
  332. package/lib/memory/brain-client-query-shape.test.cjs +160 -0
  333. package/lib/memory/brain-derivation-graceful-degradation.test.cjs +1019 -0
  334. package/lib/memory/brain-derivation-queue.test.cjs +539 -0
  335. package/lib/memory/brain-derivation.test.cjs +634 -0
  336. package/lib/memory/brain-derive-command.test.cjs +534 -0
  337. package/lib/memory/brain-md-invariants-validator.test.cjs +704 -0
  338. package/lib/memory/brain-md-schema.test.cjs +467 -0
  339. package/lib/memory/brain-md-staleness.test.cjs +525 -0
  340. package/lib/memory/brain-server-resolution.test.cjs +314 -0
  341. package/lib/memory/chain-recommender.test.cjs +233 -0
  342. package/lib/memory/chat-context.test.cjs +128 -0
  343. package/lib/memory/command-registry.test.cjs +220 -0
  344. package/lib/memory/cross-room-aggregator.test.cjs +909 -0
  345. package/lib/memory/dashboard-server.test.cjs +256 -0
  346. package/lib/memory/debouncer-drain-at-prompt.test.cjs +389 -0
  347. package/lib/memory/decision-capture.test.cjs +632 -0
  348. package/lib/memory/decision-capture.worker.cjs +70 -0
  349. package/lib/memory/explain-decision-command.test.cjs +521 -0
  350. package/lib/memory/explain-decision-footer.test.cjs +316 -0
  351. package/lib/memory/explored-materials-store.cjs +392 -0
  352. package/lib/memory/feynman-minto-guardian.test.cjs +736 -0
  353. package/lib/memory/feynman-minto-invariants.test.cjs +511 -0
  354. package/lib/memory/feynman-prompts-drift.test.cjs +144 -0
  355. package/lib/memory/feynman-prompts.cjs +151 -0
  356. package/lib/memory/feynman-prompts.test.cjs +96 -0
  357. package/lib/memory/folder-memory-quadruple.test.cjs +548 -0
  358. package/lib/memory/folder-memory.test.cjs +503 -0
  359. package/lib/memory/framework-chain-composer.test.cjs +515 -0
  360. package/lib/memory/frontmatter-schema-validator.test.cjs +290 -0
  361. package/lib/memory/heal-command.test.cjs +604 -0
  362. package/lib/memory/index-artifact-transaction.test.cjs +333 -0
  363. package/lib/memory/lazygraph-rs-discoveries-view.test.cjs +122 -0
  364. package/lib/memory/mcp-input-validation.test.cjs +240 -0
  365. package/lib/memory/mcp-server-brain-deps.test.cjs +270 -0
  366. package/lib/memory/mcp-stack-fallback.test.cjs +433 -0
  367. package/lib/memory/minto-debouncer.test.cjs +407 -0
  368. package/lib/memory/minto-debouncer.worker.cjs +46 -0
  369. package/lib/memory/minto-migration-v88.test.cjs +265 -0
  370. package/lib/memory/minto-schema-v88.test.cjs +390 -0
  371. package/lib/memory/mos-status-renderer.test.cjs +631 -0
  372. package/lib/memory/narrative-schema.cjs +376 -0
  373. package/lib/memory/narrative-schema.test.cjs +209 -0
  374. package/lib/memory/nav-dial.test.cjs +414 -0
  375. package/lib/memory/navigation-engine-core.test.cjs +722 -0
  376. package/lib/memory/navigation-invariants.test.cjs +483 -0
  377. package/lib/memory/offer-presenter.test.cjs +554 -0
  378. package/lib/memory/on-stop-snapshot.test.cjs +404 -0
  379. package/lib/memory/pending-tension-store.cjs +373 -0
  380. package/lib/memory/post-compact-reinjection.test.cjs +854 -0
  381. package/lib/memory/post-write-triple.test.cjs +317 -0
  382. package/lib/memory/pre-compact-snapshot.test.cjs +495 -0
  383. package/lib/memory/problem-type-router.test.cjs +656 -0
  384. package/lib/memory/query-efficiency-telemetry.test.cjs +370 -0
  385. package/lib/memory/recompile-room-references.test.cjs +392 -0
  386. package/lib/memory/recompile-room-references.worker.cjs +42 -0
  387. package/lib/memory/record-decision-dual-write.test.cjs +454 -0
  388. package/lib/memory/room-classifier-strict-mode.test.cjs +417 -0
  389. package/lib/memory/room-minto-hook.test.cjs +398 -0
  390. package/lib/memory/rs-discovery-engine.test.cjs +323 -0
  391. package/lib/memory/run-feynman-tests.cjs +1247 -0
  392. package/lib/memory/security-trifecta.test.cjs +312 -0
  393. package/lib/memory/session-start-brain-staleness.test.cjs +363 -0
  394. package/lib/memory/session-start-triple-injection.test.cjs +514 -0
  395. package/lib/memory/sessionstart-banner-formatter.cjs +318 -0
  396. package/lib/memory/sessionstart-minto-banner.test.cjs +373 -0
  397. package/lib/memory/skill-activation-router.test.cjs +419 -0
  398. package/lib/memory/stamp-artifact-write.test.cjs +304 -0
  399. package/lib/memory/statusline-active-room.test.cjs +315 -0
  400. package/lib/memory/statusline-minto-segment.test.cjs +292 -0
  401. package/lib/memory/sync-async-entry-points.test.cjs +204 -0
  402. package/lib/memory/test-bridge-writer-enhanced.cjs +452 -0
  403. package/lib/memory/test-rs-brain-substrate-shape.cjs +529 -0
  404. package/lib/memory/test-rs-brain-substrate.cjs +636 -0
  405. package/lib/memory/test-rs-breakthrough-scorer.cjs +375 -0
  406. package/lib/memory/test-rs-canon-violations.cjs +218 -0
  407. package/lib/memory/test-rs-chain-feeder-core.cjs +344 -0
  408. package/lib/memory/test-rs-chain-feeder-skill-spawn.cjs +297 -0
  409. package/lib/memory/test-rs-commercial-assessor.cjs +385 -0
  410. package/lib/memory/test-rs-differential-scorer.cjs +480 -0
  411. package/lib/memory/test-rs-discovery-engine.cjs +603 -0
  412. package/lib/memory/test-rs-domain-analyzer.cjs +492 -0
  413. package/lib/memory/test-rs-egress-primitives.cjs +420 -0
  414. package/lib/memory/test-rs-expert-mapper.cjs +547 -0
  415. package/lib/memory/test-rs-explain-command.cjs +443 -0
  416. package/lib/memory/test-rs-fetcher-academic.cjs +848 -0
  417. package/lib/memory/test-rs-fetcher-experts.cjs +496 -0
  418. package/lib/memory/test-rs-fetcher-industry.cjs +702 -0
  419. package/lib/memory/test-rs-fetcher-patents.cjs +674 -0
  420. package/lib/memory/test-rs-innovation-classifier.cjs +301 -0
  421. package/lib/memory/test-rs-mind-map.cjs +646 -0
  422. package/lib/memory/test-rs-neo4j-writer.cjs +518 -0
  423. package/lib/memory/test-rs-nl-to-query.cjs +449 -0
  424. package/lib/memory/test-rs-pinecone-bridge.cjs +277 -0
  425. package/lib/memory/test-rs-preprocessor.cjs +433 -0
  426. package/lib/memory/test-rs-query-matrix.cjs +391 -0
  427. package/lib/memory/test-rs-query-to-text.cjs +551 -0
  428. package/lib/memory/test-rs-sqlite-mirror.cjs +649 -0
  429. package/lib/memory/test-rs-thesis-generator.cjs +360 -0
  430. package/lib/memory/triple-context-formatter.cjs +473 -0
  431. package/lib/memory/triple-context-formatter.test.cjs +442 -0
  432. package/lib/memory/user-md-persona.test.cjs +565 -0
  433. package/lib/memory/userpromptsubmit-integration.test.cjs +690 -0
  434. package/lib/memory/validators/README.md +157 -0
  435. package/lib/memory/validators/brain-md-invariants.cjs +475 -0
  436. package/lib/memory/validators/brain-substrate-invariants.cjs +285 -0
  437. package/lib/memory/validators/external-academic-invariants.cjs +249 -0
  438. package/lib/memory/validators/external-industry-invariants.cjs +271 -0
  439. package/lib/memory/validators/external-patents-invariants.cjs +266 -0
  440. package/lib/memory/validators/minto-invariants.cjs +62 -0
  441. package/lib/memory/validators/navigation-invariants.cjs +340 -0
  442. package/lib/memory/validators/queue-health.cjs +95 -0
  443. package/lib/memory/validators/snapshot-integrity.cjs +129 -0
  444. package/lib/memory/validators/stale-lifecycle.cjs +116 -0
  445. package/lib/memory/vault-section-minto-generator-atomic.test.cjs +556 -0
  446. package/lib/memory/vault-section-minto-generator-atomic.worker.cjs +73 -0
  447. package/lib/memory/write-lock-atomic.test.cjs +137 -0
  448. package/lib/memory/write-lock-atomic.worker.cjs +55 -0
  449. package/lib/parity/check-parity.cjs +83 -0
  450. package/lib/presentation/presentation-server.cjs +101 -0
  451. package/lib/presentation/presentation-watcher.cjs +123 -0
  452. package/lib/quickview/hub-server.cjs +719 -0
  453. package/lib/quickview/server.cjs +533 -0
  454. package/lib/render/JTBD-PALETTES.md +145 -0
  455. package/lib/render/ROOM.md +59 -0
  456. package/lib/render/render-v2.cjs +486 -0
  457. package/lib/render/render-v2.test.cjs +267 -0
  458. package/lib/render/render.cjs +65 -0
  459. package/lib/state/ROOM.md +46 -0
  460. package/lib/state/state-md-parser.cjs +215 -0
  461. package/lib/statusline/ROOM.md +38 -0
  462. package/lib/statusline/banner-suppression.cjs +50 -0
  463. package/lib/statusline/surface-detect.cjs +85 -0
  464. package/lib/update-bootstrap.sh.template +145 -0
  465. package/lib/vault/frontmatter-schema.cjs +297 -0
  466. package/lib/vault/room-scanner.cjs +352 -0
  467. package/lib/vault/wikilink-builder.cjs +231 -0
  468. package/lib/vault/wikilink-builder.test.cjs +182 -0
  469. package/lib/wiki/graph-links.cjs +281 -0
  470. package/lib/wiki/page-renderer.cjs +229 -0
  471. package/lib/wiki/wiki-chat.cjs +81 -0
  472. package/lib/wiki/wiki-layout.cjs +1459 -0
  473. package/lib/wiki/wiki-search.cjs +142 -0
  474. package/lib/wiki/wiki-server.cjs +678 -0
  475. package/lib/wiki/wiki-watcher.cjs +105 -0
  476. package/lib/workflow/ROOM.md +47 -0
  477. package/lib/workflow/command-resolver.cjs +155 -0
  478. package/lib/workflow/command-resolver.test.cjs +235 -0
  479. package/package.json +44 -0
  480. package/pipelines/analogy/01-decompose.md +80 -0
  481. package/pipelines/analogy/02-abstract.md +87 -0
  482. package/pipelines/analogy/03-search.md +135 -0
  483. package/pipelines/analogy/04-transfer.md +101 -0
  484. package/pipelines/analogy/05-validate.md +106 -0
  485. package/pipelines/analogy/CHAIN.md +56 -0
  486. package/pipelines/discovery/01-explore-domains.md +44 -0
  487. package/pipelines/discovery/02-think-hats.md +50 -0
  488. package/pipelines/discovery/03-analyze-needs.md +54 -0
  489. package/pipelines/discovery/CHAIN.md +37 -0
  490. package/pipelines/thesis/01-structure-argument.md +45 -0
  491. package/pipelines/thesis/02-challenge-assumptions.md +48 -0
  492. package/pipelines/thesis/03-build-thesis.md +54 -0
  493. package/pipelines/thesis/CHAIN.md +37 -0
  494. package/references/brain/causal-directives.md +91 -0
  495. package/references/brain/causal-enrichment.cypher +165 -0
  496. package/references/brain/command-triggers-schema.md +226 -0
  497. package/references/brain/graph-architecture.md +317 -0
  498. package/references/brain/query-patterns.md +460 -0
  499. package/references/brain/room-hierarchy-schema.md +218 -0
  500. package/references/brain/schema.md +76 -0
  501. package/references/capability-radar/capabilities-index.md +241 -0
  502. package/references/capability-radar/changelog-cache.md +81 -0
  503. package/references/causal/causal-schema.md +103 -0
  504. package/references/design/email-template-standard.md +155 -0
  505. package/references/design/graph-visualization-standard.md +178 -0
  506. package/references/document-generation.md +179 -0
  507. package/references/hsi/HSI-TOOLS-REFERENCE.md +222 -0
  508. package/references/import-config.md +141 -0
  509. package/references/integrations/detection-patterns.md +101 -0
  510. package/references/meeting/artifact-template.md +377 -0
  511. package/references/meeting/cross-meeting-intelligence.md +216 -0
  512. package/references/meeting/cross-relationship-patterns.md +202 -0
  513. package/references/meeting/live-join-interface.md +244 -0
  514. package/references/meeting/section-mapping.md +192 -0
  515. package/references/meeting/segment-classification.md +258 -0
  516. package/references/meeting/speaker-profile-template.md +219 -0
  517. package/references/meeting/summary-template.md +348 -0
  518. package/references/meeting/transcript-patterns.md +226 -0
  519. package/references/methodology/analyze-needs.md +135 -0
  520. package/references/methodology/analyze-systems.md +121 -0
  521. package/references/methodology/analyze-timing.md +149 -0
  522. package/references/methodology/beautiful-question.md +109 -0
  523. package/references/methodology/build-knowledge.md +161 -0
  524. package/references/methodology/build-thesis.md +237 -0
  525. package/references/methodology/challenge-assumptions.md +127 -0
  526. package/references/methodology/diagnose.md +169 -0
  527. package/references/methodology/dominant-designs.md +212 -0
  528. package/references/methodology/explore-domains.md +147 -0
  529. package/references/methodology/explore-futures.md +163 -0
  530. package/references/methodology/explore-trends.md +129 -0
  531. package/references/methodology/find-bottlenecks.md +131 -0
  532. package/references/methodology/grade.md +211 -0
  533. package/references/methodology/index.md +97 -0
  534. package/references/methodology/leadership.md +200 -0
  535. package/references/methodology/lean-canvas.md +116 -0
  536. package/references/methodology/macro-trends.md +192 -0
  537. package/references/methodology/map-unknowns.md +137 -0
  538. package/references/methodology/mullins-7-domains.md +104 -0
  539. package/references/methodology/problem-types.md +65 -0
  540. package/references/methodology/root-cause.md +178 -0
  541. package/references/methodology/sapphire-encoding.md +355 -0
  542. package/references/methodology/scenario-plan.md +178 -0
  543. package/references/methodology/score-innovation.md +154 -0
  544. package/references/methodology/structure-argument.md +158 -0
  545. package/references/methodology/systems-thinking.md +159 -0
  546. package/references/methodology/think-hats.md +147 -0
  547. package/references/methodology/triz-matrix.json +751 -0
  548. package/references/methodology/triz-principles.md +501 -0
  549. package/references/methodology/user-needs.md +199 -0
  550. package/references/methodology/validate.md +163 -0
  551. package/references/methodology/value-proposition.md +244 -0
  552. package/references/opportunities/funding-lifecycle.md +103 -0
  553. package/references/opportunities/grant-api-patterns.md +99 -0
  554. package/references/opportunities/opportunity-template.md +84 -0
  555. package/references/personality/assessment-philosophy.md +72 -0
  556. package/references/personality/lexicon.md +100 -0
  557. package/references/personality/persona-chains.md +56 -0
  558. package/references/personality/pws-lexicon-full.md +499 -0
  559. package/references/personality/voice-dna.md +156 -0
  560. package/references/personas/hat-perspectives.md +76 -0
  561. package/references/personas/persona-template.md +63 -0
  562. package/references/pipeline/act-output-contract.md +88 -0
  563. package/references/pipeline/chains-index.md +39 -0
  564. package/references/pws-profile-generation.md +79 -0
  565. package/references/reasoning/reasoning-schema.md +143 -0
  566. package/references/reasoning/reasoning-template.md +68 -0
  567. package/references/reasoning/run-template.md +38 -0
  568. package/references/research/RESEARCH_14_CLAUDE_CODE_SOURCE_ARCHITECTURE.md +209 -0
  569. package/references/research/RESEARCH_15_V1.8_OPTIMIZATION_JTBD.md +375 -0
  570. package/references/research/RESEARCH_16_NATIVE_FIRST_PLUGIN_ARCHITECTURE.md +575 -0
  571. package/references/research/RESEARCH_17_MCP_UI_FRAMEWORKS.md +272 -0
  572. package/references/taxonomy/TAXONOMY.md +192 -0
  573. package/references/templates/MINTO.md +36 -0
  574. package/references/user-research/2026-04-05-leah-lawrence-session.md +202 -0
  575. package/references/vault-kit/README.md +35 -0
  576. package/references/vault-kit/app.json +12 -0
  577. package/references/vault-kit/appearance.json +12 -0
  578. package/references/vault-kit/graph.json +35 -0
  579. package/references/vault-kit/snippets/mindrian-destijl.css +297 -0
  580. package/references/vault-kit/templates/new-artifact.md +37 -0
  581. package/references/vault-kit/templates/new-meeting-note.md +35 -0
  582. package/references/vault-kit/templates/new-team-profile.md +29 -0
  583. package/references/vault-kit/templates/new-xref.md +35 -0
  584. package/references/visual/symbol-system.md +151 -0
  585. package/skills/MOSDeckEngine/SKILL.md +325 -0
  586. package/skills/brain-connector/SKILL.md +114 -0
  587. package/skills/context-engine/SKILL.md +147 -0
  588. package/skills/conversation-mode/SKILL.md +102 -0
  589. package/skills/larry-personality/SKILL.md +219 -0
  590. package/skills/larry-personality/framework-chains.md +92 -0
  591. package/skills/larry-personality/mode-engine.md +185 -0
  592. package/skills/mullins-scaffold/SKILL.md +61 -0
  593. package/skills/mullins-scaffold/scaffold.json +146 -0
  594. package/skills/pws-methodology/SKILL.md +49 -0
  595. package/skills/room-passive/SKILL.md +165 -0
  596. package/skills/room-proactive/SKILL.md +250 -0
  597. package/skills/ui-system/SKILL.md +277 -0
@@ -0,0 +1,250 @@
1
+ ---
2
+ name: room-proactive
3
+ description: >
4
+ Proactive Data Room intelligence. Surfaces gaps, contradictions, and convergence
5
+ signals. Active when room/ exists with entries.
6
+ activation: "resolve_room:active"
7
+ paths:
8
+ - "**/STATE.md"
9
+ - "**/ROOM.md"
10
+ - "**/MindrianRooms/**"
11
+ - "**/.rooms/**"
12
+ ---
13
+
14
+ # Room Proactive -- Gap, Contradiction, and Convergence Detection
15
+
16
+ The Room is an active thinking partner. This skill surfaces what is missing, conflicting, and strengthening.
17
+
18
+ ## Skill Activation
19
+
20
+ This skill activates when `scripts/resolve-room` finds any active room with entries. The resolver checks (in order): central registry at `~/MindrianRooms/.rooms/registry.json`, directory scan under `~/MindrianRooms/`, workspace registry, and legacy `room/` fallback. All analysis below operates on the resolved room path.
21
+
22
+ ## Activation Triggers
23
+
24
+ | Trigger | Behavior |
25
+ |---------|----------|
26
+ | SessionStart | Max 2 HIGH findings. Prioritize 1 gap + 1 convergence (or contradiction). |
27
+ | /mos:status | All HIGH + MEDIUM findings grouped by type. |
28
+ | /mos:room --insights | Full analysis including LOW with interpretation. |
29
+ | Methodology session | NEVER interrupt. Save for next SessionStart. |
30
+ | PostToolUse (cascade complete) | When additionalContext matches `^post-write: cascade complete` OR `^queued MINTO regen`, read `<roomDir>/.mindrian/last-cascade.json`. If `proactive_intelligence.newFindings` is non-empty, present max 2 for APPROVE/REJECT/DEFER using Decision Capture flow. |
31
+
32
+ ## Gap Detection
33
+
34
+ - **Single-lens:** All entries from same methodology. Suggest complementary.
35
+ - **Evidence gap:** Entries without validation/evidence markers.
36
+ - **Adjacent section:** Connected sections filled, bridging section empty.
37
+ - **Depth gap:** All entries at `depth: quick`.
38
+
39
+ Phrase as opportunities, not criticisms. Suggest specific commands.
40
+
41
+ ### Team-Execution Leadership Signals
42
+
43
+ Detect these conditions in `room/team-execution/` and `room/team/`:
44
+
45
+ | Signal | Condition | Confidence | Message |
46
+ |--------|-----------|------------|---------|
47
+ | `GAP:TEAM:no_profiles` | team-execution/ has 0 member profiles AND team/members/ empty or missing | HIGH | "No team mapped yet. Leadership starts with knowing who you're leading. Try: /mos:leadership" |
48
+ | `GAP:TEAM:no_mentors` | team/mentors/ empty or missing AND 3+ team members exist | MEDIUM | "Team of [N] with no advisors mapped. Most ventures this size benefit from external perspective." |
49
+ | `GAP:TEAM:solo_founder` | Only 1 person in team/ AND venture_stage past Pre-Opportunity | MEDIUM | "Solo at [stage] stage. The question isn't if you need a team -- it's what kind." |
50
+ | `GAP:TEAM:no_assessment` | team-execution/ has member profiles but no leadership assessment artifact | MEDIUM | "Team profiles exist but no leadership assessment. Run /mos:leadership to diagnose team dynamics." |
51
+ | `GAP:TEAM:stale_assessment` | Leadership assessment artifact older than 30 days AND room has new entries | LOW | "Leadership assessment is [N] days old. Team dynamics shift -- worth revisiting." |
52
+
53
+ ## Contradiction Detection
54
+
55
+ Scan for incompatible claims: customer type, market size, problem definition, timing assumptions.
56
+
57
+ Frame as tensions worth reconciling. Check `created:` dates -- natural evolution (old X -> recent Y) is progress, not contradiction.
58
+
59
+ ### Team-Execution Contradictions
60
+
61
+ | Signal | Condition | Confidence | Message |
62
+ |--------|-----------|------------|---------|
63
+ | `CONTRADICT:TEAM:capacity_mismatch` | solution-design requires capabilities not present in any team profile | HIGH | "Solution design needs [capability] but no team member covers it. Hire, partner, or simplify?" |
64
+ | `CONTRADICT:TEAM:stage_mismatch` | Team structure suggests Ready to Build but venture_stage is Pre-Opportunity | MEDIUM | "Full team assembled but problem isn't validated yet. Building before validating is the #1 startup killer." |
65
+
66
+ ## Convergence Detection
67
+
68
+ Same domain/customer/risk/theme in 3+ artifacts from different methodologies. Phrase as signal strength.
69
+
70
+ ## Confidence Scoring
71
+
72
+ | Level | Criteria | Display |
73
+ |-------|----------|---------|
74
+ | HIGH | Direct structural evidence, 3+ entries, clear conflict | SessionStart |
75
+ | MEDIUM | 2 entries, keyword overlap, single-lens | /mos:status |
76
+ | LOW | Single entry inference, weak match | Explicit request only |
77
+
78
+ ## Noise Gate
79
+
80
+ 1. SessionStart: max 2 findings
81
+ 2. Never interrupt methodology
82
+ 3. Stage filtering: Pre-Opportunity suppresses financial/legal gaps. Investment elevates all gaps.
83
+ 4. Never repeat unchanged findings consecutive sessions
84
+
85
+ ## Mid-Session Intelligence
86
+
87
+ When the post-write cascade completes, the bash hook emits a tight one-line `additionalContext` advisory and writes the full cascade payload to a side-channel file at `<roomDir>/.mindrian/last-cascade.json`. This skill reads the side-channel file when it sees the trigger pattern, then renders findings using the cool-UI style canon (banner with rules + status grid + Shape A summary - NEVER raw prose).
88
+
89
+ ### Detection
90
+
91
+ The post-write hook's `additionalContext` matches one of two patterns:
92
+ - `^post-write: cascade complete for ` (writes outside a recognized room section; payload is minimal)
93
+ - `^queued MINTO regen for ` (writes inside a section; payload is full)
94
+
95
+ When EITHER pattern fires, read `<roomDir>/.mindrian/last-cascade.json` (where `<roomDir>` is the path returned by `scripts/resolve-room` - the active room). Use the Read tool. The file is LOCAL only per Canon Part 8; never query the Brain or any network surface during this read.
96
+
97
+ ### Behavior
98
+
99
+ 1. If the side-channel file does not exist or fails to parse: the cascade did not produce intelligence. Do nothing. Soft-fail.
100
+ 2. If `proactive_intelligence.newFindings` is empty or missing: the cascade ran but found nothing new. Do nothing.
101
+ 3. If `proactive_intelligence.suppressed > 0`: silently note the suppression count. Do NOT mention it to the user.
102
+ 4. If `newFindings` has 1+ items with `confidence >= 0.60`: present using the "After Filing: Decision Capture" flow below. Max 2 findings (highest confidence first).
103
+ 5. If a finding has `isNew: false`: it is a previously-seen finding with new evidence. Present with the "I've seen this signal before" framing.
104
+ 6. NEVER interrupt during a methodology session. Save for next non-methodology turn.
105
+
106
+ ### Render Contract (cool-UI style canon)
107
+
108
+ The cascade-finding render uses the cool-UI style from `.planning/research/cool-ui-style-reference.md`. Specifically:
109
+
110
+ - **Banner** with thin horizontal rules (`━`) and a `►` separator. Title format: ` ROOM ► CASCADE FINDINGS` (one leading space; ALL CAPS; no em-dash).
111
+ - **Status grid** with two-space indent, glyph at column 0, label-then-value with alignment whitespace (no colons; alignment IS the punctuation). Glyph vocabulary is fixed:
112
+ - `◆` active / in-flight / configured (use for section + artifact rows)
113
+ - `⚠` warning / contradiction (use for contradiction findings)
114
+ - `⚡` urgent / convergence (use for convergence findings)
115
+ - `⬜` gap / pending (use for gap findings)
116
+ - `▶` next-action callout (single row at bottom of grid pointing to the decision verbs)
117
+ - **Soft prose paragraph** below the grid: 2-3 sentences explaining WHY this finding matters in this venture's context. Plain prose, not bullets.
118
+ - **Decision prompt** routes through the existing prose APPROVE/REJECT/DEFER flow (see "After Filing: Decision Capture" below). The F.0 AskUserQuestion selector is INTENTIONALLY deferred to Phase 88.2 / Phase 97 per `room/decisions/decision-phase-95-sequencing.md`. Phase 95 only changes WHERE the finding payload comes from, not the renderer itself.
119
+
120
+ Example render (one contradiction finding, confidence 0.78):
121
+
122
+ ```
123
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
124
+ ROOM ► CASCADE FINDINGS
125
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
126
+
127
+ ◆ section problem-definition
128
+ ◆ artifact customer-discovery-2026-04-29.md
129
+ ⚠ contradiction customer-type vs market-size (confidence 0.78)
130
+ ▶ next APPROVE / REJECT / DEFER
131
+
132
+ The customer-type claim in this artifact (mid-market enterprise) sits in
133
+ tension with the market-size assumption you filed in business-model
134
+ last week (SMB segment). Worth reconciling before the next funding round.
135
+ ```
136
+
137
+ NO emoji. NO em-dashes. Glyphs only. Aligned columns. The alignment IS the punctuation.
138
+
139
+ ### New Evidence Indicator
140
+
141
+ If a finding has `isNew: false`, it means this is a PREVIOUSLY SEEN finding that has NEW EVIDENCE (confidence or message changed). Present with the "I've seen this signal before" framing in the soft prose paragraph below the grid:
142
+
143
+ "I have seen this signal before, but new evidence just shifted it. [finding message]. Confidence is now [0.xx] (was different before)."
144
+
145
+ This distinguishes updated findings from brand-new discoveries and helps the user understand why they are seeing something again.
146
+
147
+ ### Why a side-channel file (not in-band JSON)
148
+
149
+ The PostToolUse envelope's `additionalContext` is a one-line string. The cascade payload contains structured data (classification, gitCommit, graphIndex, proactiveIntelligence with arrays of findings). Embedding it in the `additionalContext` string would (a) blow past the practical line-length budget, (b) require the skill to parse JSON-in-a-string, (c) couple the skill's contract to envelope-schema churn. The side-channel keeps the envelope clean and the data structured. This pattern is canonical in the plugin (see Phase 88-08 `pre-compact-snapshot.json`, Phase 88-06 `session-snapshot.json`). LOCAL only per Canon Part 8.
150
+
151
+ NOTE: This contract REPLACES the previous load-bearing-broken-since-88.1-03 detection that read the cascade payload from the PostToolUse `additionalContext` envelope. The bash hook never wrote the cascade payload at the location the skill expected. Phase 95 corrects the data flow by relocating the payload to the side-channel file. The prose APPROVE/REJECT/DEFER renderer below (existing APPROVE/REJECT/DEFER flow at "After Filing: Decision Capture") is BYTE-IDENTICAL to current - only the input source has changed.
152
+
153
+ ## After Filing: Decision Capture
154
+
155
+ When the post-write cascade completes and the side-channel reader (above) finds `newFindings` in `<roomDir>/.mindrian/last-cascade.json`, present findings to the user for decision.
156
+
157
+ ### When to Present
158
+
159
+ - ONLY when the side-channel file exists AND `proactive_intelligence.newFindings` has 1+ items
160
+ - ONLY present findings with confidence >= 0.60
161
+ - Max 2 findings per filing (pick highest confidence)
162
+ - NEVER present during a methodology session (save for next filing)
163
+ - NEVER re-present findings already marked `decided: true`
164
+
165
+ ### How to Present
166
+
167
+ Format each finding as a natural observation, not a system alert:
168
+
169
+ "I noticed something while filing that [artifact title]. [Finding message]. Confidence: [0.xx]
170
+
171
+ This [CONTRADICTS/creates a GAP in/CONVERGES WITH] your [section name].
172
+
173
+ What would you like to do?
174
+ - **APPROVE** -- accept this impact (I'll note the cross-subsystem connection)
175
+ - **REJECT** -- disagree with this finding (tell me why -- your reasoning becomes data)
176
+ - **DEFER** -- park this for later review"
177
+
178
+ ### How to Record
179
+
180
+ When the user responds, run this command via Bash:
181
+
182
+ For APPROVE:
183
+ ```bash
184
+ node bin/mindrian-tools.cjs record-decision --room ROOM_PATH --key "INSIGHT_KEY" --decision approve
185
+ ```
186
+
187
+ For REJECT (reason is REQUIRED -- ask for it if not provided):
188
+ ```bash
189
+ node bin/mindrian-tools.cjs record-decision --room ROOM_PATH --key "INSIGHT_KEY" --decision reject --reason "USER_REASON_HERE"
190
+ ```
191
+
192
+ For DEFER:
193
+ ```bash
194
+ node bin/mindrian-tools.cjs record-decision --room ROOM_PATH --key "INSIGHT_KEY" --decision defer
195
+ ```
196
+
197
+ Where:
198
+ - ROOM_PATH is the resolved room directory path
199
+ - INSIGHT_KEY is the finding's dedup key (format: `type:subtype:section` for gaps, `convergence:term` for convergence, `contradiction:section1:section2` for contradictions)
200
+
201
+ If the finding references specific artifacts with IDs, add `--source-artifact` and `--target-artifact` flags to create a graph edge.
202
+
203
+ ### Rejection is Data (Decision #13)
204
+
205
+ When a user rejects a finding, their reason is the most valuable signal in the system. ALWAYS capture the reason. If the user says just "no" or "reject", ask: "Got it -- can you tell me briefly why? Your reasoning helps me learn what matters for this venture."
206
+
207
+ ### After Recording
208
+
209
+ Confirm briefly: "Noted -- [decision]. [If reject: Your reasoning is now part of the room's intelligence.]"
210
+
211
+ Do NOT follow up with more findings. One decision interaction per filing. If there were 2 findings presented, capture both decisions before moving on.
212
+
213
+ ## analyze-room Signal Format
214
+
215
+ - `GAP:STRUCTURAL:{section}:{confidence}:{message}`
216
+ - `GAP:SEMANTIC:{section}:{confidence}:{message}`
217
+ - `GAP:ADJACENT:{section}:{confidence}:{message}`
218
+ - `CONVERGE:{term}:{count}:{confidence}:{message}`
219
+ - `CONTRADICT:{section1}:{section2}:{confidence}:{message}`
220
+
221
+ Script catches structural patterns; add semantic interpretation from actual Room entries.
222
+
223
+ ## Capability Suggestions
224
+
225
+ `CAPABILITY:{feature}:{confidence}:{message}` signals when room has enough data for features:
226
+
227
+ | Feature | Threshold | Command |
228
+ |---------|-----------|---------|
229
+ | DASHBOARD | 3+ artifacts | `/mos:room view` |
230
+ | EXPORT_DASHBOARD | 7+ artifacts | `/mos:room export` |
231
+ | WIKI | 5+ artifacts + 1+ meeting | `/mos:wiki` |
232
+ | MEETING_REPORT | 3+ artifacts + 2+ meetings | `/mos:export meeting-report` |
233
+ | THESIS | 10+ artifacts | `/mos:export thesis` |
234
+ | TEAM_VIEW | 2+ team profiles | `/mos:room view` |
235
+ | LEADERSHIP_COACHING | 2+ team members + no leadership artifact | `/mos:leadership` |
236
+
237
+ Max 1 capability suggestion per SessionStart. Natural voice. Never repeat used commands.
238
+
239
+ ## Causal Discovery Surfacing (v1.7.0)
240
+
241
+ Surface causal discoveries when graph has 5+ CausalClaim nodes AND 3+ CASCADES_TO edges:
242
+ - CausalClaim + HSI_CONNECTION: explain the cause-effect behind similarity
243
+ - CausalClaim through REVERSE_SALIENT: show chain to bottleneck root
244
+ - CausalClaim + ANALOGOUS_TO: structural match prediction
245
+ - Overdue predictions: prompt review
246
+ - Cascade depth >3: warn about blast radius
247
+
248
+ ## Dashboard Export Integrity
249
+
250
+ ALWAYS use `scripts/generate-standalone` or `scripts/serve-dashboard`. NEVER generate HTML by hand.
@@ -0,0 +1,277 @@
1
+ ---
2
+ name: ui-system
3
+ description: >
4
+ CLI UI Ruling System. Governs ALL MindrianOS terminal output -- 4-zone anatomy,
5
+ 5 body shapes, 12 glyphs, 5 colors, session start contract, cross-surface
6
+ adaptation. Auto-loaded on every session. No command invents its own format.
7
+ ---
8
+
9
+ # UI Ruling System
10
+
11
+ Every `/mos:` command and Larry response follows this ruling system. No exceptions. Works alongside `larry-personality` (voice), `room-passive` (STATE.md), and `room-proactive` (signals).
12
+
13
+ ## 1. Four-Zone Output Anatomy
14
+
15
+ Every output has exactly 4 zones in fixed order. No reordering. No invention.
16
+
17
+ **Zone 1: Header Panel** -- room context, venture stage, section name.
18
+ - Standard: `-- Room Name -- section -- Stage --` (box chars on CLI: `|-`)
19
+ - Compact (>30 lines or <60 cols): single-line dashes
20
+ - Room name always first (canary for multi-room context safety)
21
+ - No room: `-- MindrianOS -- no room --`
22
+ - Multi-room: use registry's active room `venture_name` or slug
23
+
24
+ **Zone 2: Content Body** -- payload per body shape (Section 2). No chrome.
25
+
26
+ **Zone 3: Intelligence Strip** -- signals from room-proactive. Only HIGH/MEDIUM. Max 3.
27
+ - Each signal: glyph + one-line description, indented 2 spaces
28
+ - `!` contradictions/warnings, `[ ]` gaps, `lightning` convergence
29
+ - Omit entirely if no signals. Never show during methodology sessions.
30
+
31
+ **Zone 4: Action Footer** -- NEVER omitted. 2-3 grounded `/mos:` commands.
32
+ - `>` primary (exactly one), `>` alternatives (1-2)
33
+ - Each: glyph + command (cyan) + brief description (gray)
34
+ - Must be real commands grounded in current state. Never suggest what user just ran.
35
+
36
+ **Density:** >30 lines: compact header, max 2 signals. <10 lines: no padding.
37
+
38
+ ## 2. Five Body Shapes
39
+
40
+ ### Shape A: Mondrian Board
41
+ **Used by:** `/mos:status`, `/mos:diagnose`, `/mos:radar`, `/mos:admin`
42
+ Progress bars per section. 10-char: `filled` fill, `dot` empty. Section names left-aligned padded. Entry count + MINTO health (`checkmark`/`dot`/`--`). Summary line at bottom.
43
+
44
+ ### Shape B: Semantic Tree
45
+ **Used by:** `/mos:tree`, `/mos:room` (no args), `/mos:rooms`, `/mos:suggest-next`, `/mos:help`, `/mos:funding`, `/mos:opportunities`
46
+ Folder tree with state glyphs. `down-arrow` expanded, `>` collapsed+content, `>` collapsed+empty. `branch`/`last-branch` siblings. Artifact status: `checkmark` complete, `dot` draft. Entry counts inline.
47
+
48
+ ### Shape C: Room Card
49
+ **Used by:** `/mos:room [section]`, `/mos:grade`, `/mos:deep-grade`, `/mos:research`, `/mos:validate`, `/mos:reason`, `/mos:persona`
50
+ Governing thought (quoted), entries list (status+name+date+depth), graph edges (type+target+count), MINTO health assessment. Floating signal badge if HIGH contradiction/convergence.
51
+
52
+ ### Shape D: Document View
53
+ **Used by:** `/mos:open [artifact]`, `/mos:query`
54
+ Frontmatter as key-value pairs (no YAML markers). Full content (markdown preserved). Edges at bottom. Footer suggests following edges.
55
+
56
+ ### Shape E: Action Report
57
+ **Used by:** `/mos:act`, `/mos:file-meeting`, `/mos:pipeline`, `/mos:export`, `/mos:setup`, `/mos:new-project`, `/mos:update`, `/mos:wiki`
58
+ Action + source at top. Changes: section + `[before -> after]` + description. New edges listed. Summary totals. Signals from changes in Zone 3.
59
+
60
+ **Methodology commands** use no shape for conversational output. Filing confirmation uses Shape E.
61
+
62
+ ### Shape F: Selector Block (AskUserQuestion family)
63
+
64
+ Shape F is the interactive selector family. It is the ruling-system implementation of the tri-context Decision Gate (see `docs/MINDRIAN-CANON.md` Part 3). Every command with a genuine fork renders its choice through one of five F sub-shapes. No command invents a bespoke selector.
65
+
66
+ All five sub-shapes share a common envelope:
67
+ - Header = Zone 1 header + decision-gate marker (`filled-square`).
68
+ - Three-context strip below header: LOCAL / BRAIN / SIGNAL (`down-triangle` per context).
69
+ - Prompt line (`right-triangle-filled`) asks the actual question.
70
+ - Options list uses keyboard shortcuts identical across sub-shapes: up-arrow / down-arrow (or J / K) to navigate, Enter to select, `?` to open inspect panel, Esc to cancel.
71
+ - Free-Text slot is ALWAYS the last option. The navigator can always escape the vocabulary.
72
+ - RECOMMENDED marker appears on at most one option, only when Brain confidence >= 0.7 (Phase 88.2 invariant). In Mode B (Local Only), no option is marked.
73
+
74
+ The ten canonical verbs (from canon Part 3) are: Run Methodology / Reformulate / Spawn Sub-Agent / Navigate Graph / Devil's Advocate / Scenario Plan / Synthesize / Bank Opportunity / Defer / Free-Text. Each sub-shape below draws from this vocabulary.
75
+
76
+ #### Shape F.1 - Next Move
77
+
78
+ Purpose: Default selector after any discuss chunk. The most-used shape.
79
+
80
+ When to use: End of team discussion, end of methodology session, any insight checkpoint where the navigator must pick the next verb.
81
+
82
+ Header format:
83
+ ```
84
+ [filled-square] [CONTEXT] - NEXT MOVE - decision gate
85
+ [down-triangle] LOCAL / BRAIN / SIGNAL
86
+ [right-triangle-filled] Choose next move:
87
+ ```
88
+
89
+ Options: 3-5 drawn from the canonical ten verbs. Free-Text is always the last option.
90
+
91
+ Verb constraints: Any of the ten canonical verbs is permitted. Typical slate = Run Methodology / Navigate Graph / Devil's Advocate / Bank Opportunity / Free-Text.
92
+
93
+ Keyboard: up-arrow / down-arrow (or J / K) to navigate, Enter to select, `?` to inspect, Esc to cancel.
94
+
95
+ State-update hook: append to STATE.md Decisions section with timestamp + chosen verb + context snapshot. A typed edge is added to the local graph: (navigator) -[CHOSE {verb}]-> (current-artifact).
96
+
97
+ #### Shape F.2 - Path Control
98
+
99
+ Purpose: When the navigator is choosing structure, not content. Plan / Replan variants. Ties to Claude Code Plan Mode.
100
+
101
+ When to use: Entering a methodology chain, transitioning between pipeline stages, user signals they want to step back and re-plan instead of continuing tactical work.
102
+
103
+ Header format:
104
+ ```
105
+ [filled-square] [CONTEXT] - PATH CONTROL - decision gate
106
+ [down-triangle] LOCAL / BRAIN / SIGNAL
107
+ [right-triangle-filled] Choose path:
108
+ ```
109
+
110
+ Options: 3-5. Free-Text is always the last option.
111
+
112
+ Verb constraints: Drawn from Run Methodology / Reformulate / Scenario Plan / Defer / Free-Text. Path Control does not typically surface Navigate Graph or Bank Opportunity (those are tactical, not structural).
113
+
114
+ Keyboard: up-arrow / down-arrow (or J / K) to navigate, Enter to select, `?` to inspect, Esc to cancel.
115
+
116
+ State-update hook: update STATE.md Current Position.Plan field with the chosen plan name. A typed edge is added: (navigator) -[CHOSE_PATH {plan}]-> (phase-node).
117
+
118
+ #### Shape F.3 - Rabbit-Hole Depth
119
+
120
+ Purpose: Before deep-diving. Sets how far the navigator wants to chase a branch.
121
+
122
+ When to use: User has chosen to explore a specific topic, artifact, or contradiction. Shape F.3 gates how much energy to spend before returning.
123
+
124
+ Header format:
125
+ ```
126
+ [filled-square] [CONTEXT] - DEPTH - decision gate
127
+ [down-triangle] LOCAL / BRAIN / SIGNAL
128
+ [right-triangle-filled] How deep?
129
+ ```
130
+
131
+ Options: exactly 5 (fixed vocabulary, NOT drawn from the ten verbs): Shallow / Medium / Deep / Extreme / Back. Free-Text is not offered in F.3 - depth is a closed axis. Back returns to the previous shape.
132
+
133
+ Verb constraints: F.3 is the one sub-shape whose option set is NOT the canonical verb vocabulary. It is a depth scalar. The verb that follows F.3 is chosen by the calling command.
134
+
135
+ Keyboard: up-arrow / down-arrow (or J / K) to navigate, Enter to select, `?` to inspect, Esc to cancel.
136
+
137
+ State-update hook: a TodoWrite row is created with a depth tag (`depth:shallow`, `depth:medium`, `depth:deep`, `depth:extreme`). The row owns the subsequent exploration work. No STATE.md Decisions entry until the exploration completes.
138
+
139
+ #### Shape F.4 - Insight Extraction
140
+
141
+ Purpose: When a branch has enough material. Close-out selector for a discuss chunk.
142
+
143
+ When to use: The navigator has been exploring a topic and the material is rich enough to harvest. F.4 decides what artifact (if any) to produce.
144
+
145
+ Header format:
146
+ ```
147
+ [filled-square] [CONTEXT] - INSIGHTS - decision gate
148
+ [down-triangle] LOCAL / BRAIN / SIGNAL
149
+ [right-triangle-filled] Extract what?
150
+ ```
151
+
152
+ Options: exactly 5 (fixed vocabulary): Key insights / + contradictions / + actions / Create artifact draft / Back. Free-Text is not offered in F.4 - extraction scope is a closed ladder. Back returns to the previous shape.
153
+
154
+ Verb constraints: F.4 wraps the canonical verb Synthesize. Options are progressive scopes of what the Synthesize verb will produce. Create artifact draft is the handoff verb into Shape E (Action Report) downstream.
155
+
156
+ Keyboard: up-arrow / down-arrow (or J / K) to navigate, Enter to select, `?` to inspect, Esc to cancel.
157
+
158
+ State-update hook: append a synthesis note to STATE.md Accumulated Context. If "Create artifact draft" is selected, additionally create a TodoWrite row for drafting. A typed edge is added: (navigator) -[SYNTHESIZED {scope}]-> (discuss-chunk).
159
+
160
+ #### Shape F.5 - Branch Resolution
161
+
162
+ Purpose: When multiple paths exist. The navigator is returning from parallel exploration and must decide how branches converge.
163
+
164
+ When to use: User has explored two or more branches (via Scenario Plan, Compare Ventures, or manual fork). F.5 decides whether to continue one, merge them, compare them formally, park one for later, or drop one.
165
+
166
+ Header format:
167
+ ```
168
+ [filled-square] [CONTEXT] - BRANCH - decision gate
169
+ [down-triangle] LOCAL / BRAIN / SIGNAL
170
+ [right-triangle-filled] Resolve branch:
171
+ ```
172
+
173
+ Options: 3-5 drawn from: Continue / Merge / Compare / Park / Drop. Free-Text is always the last option. Typical slate = Continue / Merge / Compare / Park / Free-Text.
174
+
175
+ Verb constraints: F.5 is specialized to branch-resolution semantics. Continue maps to Run Methodology on the chosen branch. Merge maps to Synthesize across branches. Compare maps to Scenario Plan in compare mode. Park maps to Defer. Drop is the terminal Reject-with-reason path.
176
+
177
+ Keyboard: up-arrow / down-arrow (or J / K) to navigate, Enter to select, `?` to inspect, Esc to cancel.
178
+
179
+ State-update hook: append to STATE.md Decisions section naming the resolved branch and the resolution verb. A typed edge is added: (branch-root) -[RESOLVED {verb}]-> (target). Parked branches additionally create a milestone-audit TodoWrite row.
180
+
181
+ ## 3. Symbol Vocabulary
182
+
183
+ 12 glyphs. One meaning each. No overloading.
184
+
185
+ | Glyph | Meaning |
186
+ |-------|---------|
187
+ | `filled-square` | Progress fill (Shape A) |
188
+ | `down-triangle` | Expanded node (Shape B) |
189
+ | `right-triangle-filled` | Collapsed+content / primary action |
190
+ | `right-triangle-empty` | Collapsed+empty / alternative action |
191
+ | `branch` | Not-last sibling |
192
+ | `last-branch` | Last sibling |
193
+ | `checkmark` | Complete |
194
+ | `bullet` | Draft/partial |
195
+ | `warning` | Contradiction/warning |
196
+ | `lightning` | Convergence |
197
+ | `empty-square` | Gap |
198
+ | `arrow` | Inline suggestion |
199
+
200
+ **NO EMOJI. EVER.**
201
+
202
+ Carve-out (2026-04-14, user directive): the Claude Code statusline rendered by `scripts/context-monitor` is **excepted** from this rule. The statusline is a passive signal surface rendered by the host terminal, not a MindrianOS command output body, and the user has authorized emoji use there specifically. Every other surface (slash-command output, artifact generation, MINTO.md files, CHANGELOG entries, reports, dashboard HTML bodies, PDF exports, printed logs) must continue to honor the no-emoji rule without exception. If you are reading this and about to add emoji to any surface other than `scripts/context-monitor`, stop.
203
+
204
+ ## 4. Color Contract
205
+
206
+ 5 ANSI colors with fixed meaning. Color is NEVER decoration.
207
+
208
+ | Color | Meaning |
209
+ |-------|---------|
210
+ | Green `\033[32m` | Success, active, complete |
211
+ | Cyan `\033[36m` | Commands, paths, links |
212
+ | Yellow `\033[33m` | Warnings, caution |
213
+ | Red `\033[31m` | Errors only |
214
+ | Gray `\033[90m` | Meta info, timestamps, hints |
215
+
216
+ Bold for emphasis. Default/white for content. Never combine colors on one token. Red = errors only (warnings = yellow).
217
+
218
+ ## 5. Session Start Contract
219
+
220
+ Three variants based on room state:
221
+
222
+ **Cold Start (no room found):** Brief. Header shows MindrianOS/no room. Mention that rooms will be created at ~/MindrianRooms/. Primary: `/mos:new-project`. Alt: conversational start.
223
+
224
+ **Warm Start (room, no signals):** "Reading the Room" trace (blockquote). Show room path as ~/MindrianRooms/[name]/. Stats: active sections, entries, last activity. Strongest/weakest callouts. Grounded actions.
225
+
226
+ **Warm Start + Signals (room + HIGH/MEDIUM):** Same trace + max 2 signals. Room path shown in header as ~/MindrianRooms/[name]/. Prioritize 1 contradiction + 1 convergence. First action addresses top signal. Never repeat same signal consecutive sessions unless changed.
227
+
228
+ ## 6. CLI Voice Rules
229
+
230
+ Larry in terminal: terse, structural, confident, action-oriented.
231
+
232
+ **Banned:** "Great question!", "I'd be happy to help", "It's important to note", "Let me explain", sentences starting with "I", "Here's what I found", "I think/believe", "Please note that", "As mentioned earlier"
233
+
234
+ **Allowed:** Direct statements, imperatives, evidence-first, observations. Lead with data. One insight per line. Confidence without hedging. Capitalize methodology names.
235
+
236
+ ## 7. Error Handling
237
+
238
+ Three-line pattern:
239
+ - Line 1: `x` (red) + what failed
240
+ - Line 2: `Why:` (indented) + specific reason
241
+ - Line 3: `Fix:` (indented) + one resolving command (cyan)
242
+
243
+ Never show stack traces, raw errors, JSON, or >3 lines. Multiple failures: show first only.
244
+
245
+ ## 8. Help System
246
+
247
+ `/mos:help`: Commands grouped by flow (Getting Started, Working, Reviewing, Brain+Intelligence, Export+Admin). Tree format.
248
+
249
+ `/mos:help [cmd]`: tldr-style. 1 description line + max 3 examples. Not a man page.
250
+
251
+ ## 9. Cross-Surface Adaptation
252
+
253
+ CLI is master template. Desktop degrades: no box chars (use bold headers), no progress bars (use text), no tree symbols (use bullets), no ANSI color (use markdown). Cowork matches CLI. Signal glyphs and action footer work everywhere.
254
+
255
+ Width: 80 cols default, never expand beyond. <60 cols: compact headers, collapse trees, 1 signal max.
256
+
257
+ ## 10. Dual Context: STATE.md + MINTO.md
258
+
259
+ Every section gets STATE.md (quantitative: counts, gaps, timestamps) and MINTO.md (qualitative: governing thought, arguments, evidence, MECE check).
260
+
261
+ MINTO health in commands: `checkmark` = governing thought + 2+ argued, `dot` = partial, `--` = missing.
262
+
263
+ Routing priority: Broken MINTO + many entries -> "needs reasoning" (`/mos:structure-argument`). Solid MINTO + few entries -> "needs evidence". Empty both -> gap exploration. Solid both -> cross-referencing/grading.
264
+
265
+ ## Quick Reference
266
+
267
+ ```
268
+ ZONES: Header | Body | Signals | Footer
269
+ SHAPES: A=Board B=Tree C=Card D=Doc E=Report
270
+ GLYPHS: filled down-tri right-tri-f right-tri-e branch last-branch check dot warn lightning empty-sq arrow
271
+ COLORS: Green=success Cyan=commands Yellow=warn Red=error Gray=meta
272
+ GREETING: Cold | Warm | Warm+Signals (max 2)
273
+ ERRORS: x What / Why: reason / Fix: /mos:command
274
+ HELP: 1 line + 3 examples, grouped by flow
275
+ WIDTH: 80 cols default, never expand
276
+ NO EMOJI: Ever.
277
+ ```