@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,460 @@
1
+ # Brain Query Patterns
2
+
3
+ 13 named Cypher/Pinecone templates. Single source of truth for all agents, skills, and commands.
4
+
5
+ ## How to Use
6
+
7
+ Agents and skills read this file on demand. To execute a pattern:
8
+ 1. Find the named pattern below
9
+ 2. Replace `$parameters` with specific values from current context
10
+ 3. Call `mcp__neo4j-brain__read_neo4j_cypher` with the adapted Cypher
11
+ 4. For `brain_search_semantic`, call `mcp__pinecone-brain__search-records` instead
12
+
13
+ Never run Cypher without a LIMIT clause. Never expose raw results to users -- synthesize into insights.
14
+
15
+ ---
16
+
17
+ ## 1. brain_framework_chain
18
+
19
+ **Purpose:** Given current frameworks + problem type, recommend next framework.
20
+
21
+ ```cypher
22
+ MATCH (current:Framework)-[r:FEEDS_INTO|TRANSFORMS_OUTPUT_TO]->(next:Framework)
23
+ WHERE current.name IN $current_frameworks
24
+ AND NOT next.name IN $current_frameworks
25
+ OPTIONAL MATCH (next)-[:ADDRESSES_PROBLEM_TYPE]->(pt:ProblemType {name: $problem_type})
26
+ RETURN next.name AS framework,
27
+ type(r) AS relation,
28
+ r.confidence AS confidence,
29
+ r.transform_description AS transform,
30
+ pt IS NOT NULL AS matches_problem_type
31
+ ORDER BY r.confidence DESC, matches_problem_type DESC
32
+ LIMIT 5
33
+ ```
34
+
35
+ **Output:** List of recommended next frameworks with confidence scores and problem-type alignment.
36
+
37
+ ---
38
+
39
+ ## 2. brain_grade_calibrate
40
+
41
+ **Purpose:** Get rubric score distribution and percentile data from real graded projects.
42
+
43
+ ```cypher
44
+ MATCH (f:Framework)-[a:APPLIED_IN]->(e:Example)
45
+ WHERE f.name IN $frameworks_used
46
+ RETURN e.project_name AS project,
47
+ e.grade AS grade,
48
+ e.grade_numeric AS score,
49
+ e.rubric_scores AS rubric,
50
+ e.feedback_patterns AS feedback,
51
+ e.percentile AS percentile,
52
+ a.quality_score AS quality
53
+ ORDER BY e.grade_numeric DESC
54
+ LIMIT 20
55
+ ```
56
+
57
+ **Output:** Distribution of grades, rubric scores, and feedback patterns for calibration.
58
+
59
+ ---
60
+
61
+ ## 3. brain_find_patterns
62
+
63
+ **Purpose:** Find similar ventures via Tool/Framework co-occurrence patterns.
64
+
65
+ ```cypher
66
+ MATCH (f:Framework)-[:CO_OCCURS]->(related:Framework)
67
+ WHERE f.name IN $current_frameworks
68
+ WITH related, count(*) AS overlap
69
+ OPTIONAL MATCH (related)-[:APPLIED_IN]->(e:Example)
70
+ RETURN related.name AS framework,
71
+ overlap,
72
+ collect(DISTINCT e.project_name)[..3] AS example_projects,
73
+ related.category AS category
74
+ ORDER BY overlap DESC
75
+ LIMIT 10
76
+ ```
77
+
78
+ **Output:** Frameworks that commonly co-occur with current set, plus example projects.
79
+
80
+ ---
81
+
82
+ ## 4. brain_concept_connect
83
+
84
+ **Purpose:** GraphRAG -- immediate connections from a concept node.
85
+
86
+ ```cypher
87
+ MATCH (c {name: $concept})-[r]->(connected)
88
+ RETURN c.name AS source,
89
+ type(r) AS relationship,
90
+ connected.name AS target,
91
+ labels(connected)[0] AS target_type,
92
+ r.confidence AS confidence
93
+ ORDER BY r.confidence DESC
94
+ LIMIT 20
95
+ ```
96
+
97
+ **Output:** All immediate graph neighbors of a concept with relationship types.
98
+
99
+ ---
100
+
101
+ ## 5. brain_cross_domain
102
+
103
+ **Purpose:** Cross-domain discovery between two domains via shared Framework/Concept connections.
104
+
105
+ ```cypher
106
+ MATCH (a:Concept {name: $domain_a})-[:CO_OCCURS|FEEDS_INTO*1..2]-(shared)-[:CO_OCCURS|FEEDS_INTO*1..2]-(b:Concept {name: $domain_b})
107
+ WHERE shared <> a AND shared <> b
108
+ RETURN DISTINCT shared.name AS bridge,
109
+ labels(shared)[0] AS bridge_type,
110
+ count(*) AS path_count
111
+ ORDER BY path_count DESC
112
+ LIMIT 15
113
+ ```
114
+
115
+ **Output:** Bridging concepts/frameworks that connect two domains.
116
+
117
+ ---
118
+
119
+ ## 6. brain_contradiction_check
120
+
121
+ **Purpose:** Find Framework pairs with conflicting effectiveness for the same ProblemType.
122
+
123
+ ```cypher
124
+ MATCH (f1:Framework)-[a1:ADDRESSES_PROBLEM_TYPE]->(pt:ProblemType)<-[a2:ADDRESSES_PROBLEM_TYPE]-(f2:Framework)
125
+ WHERE f1.name IN $room_frameworks
126
+ AND f2.name IN $room_frameworks
127
+ AND f1 <> f2
128
+ AND abs(a1.effectiveness - a2.effectiveness) > 0.4
129
+ RETURN f1.name AS framework_a,
130
+ f2.name AS framework_b,
131
+ pt.name AS problem_type,
132
+ a1.effectiveness AS effectiveness_a,
133
+ a2.effectiveness AS effectiveness_b,
134
+ abs(a1.effectiveness - a2.effectiveness) AS gap
135
+ ORDER BY gap DESC
136
+ LIMIT 10
137
+ ```
138
+
139
+ **Output:** Framework pairs with significantly different effectiveness ratings for the same problem type.
140
+
141
+ ---
142
+
143
+ ## 7. brain_gap_assess
144
+
145
+ **Purpose:** Given current room frameworks, find missing prerequisites and feed-into targets.
146
+
147
+ ```cypher
148
+ MATCH (current:Framework)-[:PREREQUISITE]->(prereq:Framework)
149
+ WHERE current.name IN $room_frameworks
150
+ AND NOT prereq.name IN $room_frameworks
151
+ RETURN 'PREREQUISITE' AS gap_type,
152
+ current.name AS for_framework,
153
+ prereq.name AS missing,
154
+ prereq.description AS description
155
+ UNION
156
+ MATCH (current:Framework)-[:FEEDS_INTO]->(target:Framework)
157
+ WHERE current.name IN $room_frameworks
158
+ AND NOT target.name IN $room_frameworks
159
+ RETURN 'FEEDS_INTO' AS gap_type,
160
+ current.name AS for_framework,
161
+ target.name AS missing,
162
+ target.description AS description
163
+ LIMIT 10
164
+ ```
165
+
166
+ **Output:** Missing prerequisites and natural next-step frameworks not yet in the room.
167
+
168
+ ---
169
+
170
+ ## 8. brain_search_semantic
171
+
172
+ **Purpose:** Pinecone vector search -- not Cypher. Semantic similarity across Brain embeddings.
173
+
174
+ ```
175
+ Tool: mcp__pinecone-brain__search-records
176
+ Parameters:
177
+ query: $search_text
178
+ top_k: 10
179
+ filter: { type: $node_type } (optional -- filter by Framework, Book, Tool, etc.)
180
+ ```
181
+
182
+ **Output:** Ranked list of semantically similar items with scores and metadata.
183
+
184
+ **Usage notes:** Use for fuzzy matching when exact node names are unknown. Combine with Cypher patterns for hybrid retrieval: semantic search finds candidates, Cypher explores their graph neighborhood.
185
+
186
+ ---
187
+
188
+ ## 9. brain_analogy_search
189
+
190
+ **Purpose:** Cross-domain analogy discovery -- find frameworks from DIFFERENT domains that address the SAME problem type.
191
+
192
+ ```cypher
193
+ MATCH (f1:Framework)-[:ADDRESSES_PROBLEM_TYPE]->(pt:ProblemType)
194
+ WHERE f1.category = $source_category
195
+ WITH pt, collect(f1) AS source_frameworks
196
+ MATCH (f2:Framework)-[:ADDRESSES_PROBLEM_TYPE]->(pt)
197
+ WHERE NOT f2.category = $source_category
198
+ AND NOT f2 IN source_frameworks
199
+ OPTIONAL MATCH (f2)-[:CO_OCCURS]->(bridge:Framework)
200
+ WHERE bridge IN source_frameworks
201
+ RETURN f2.name AS framework,
202
+ f2.category AS category,
203
+ f2.description AS description,
204
+ pt.name AS problem_type,
205
+ bridge.name AS bridge_framework
206
+ ORDER BY bridge IS NOT NULL DESC
207
+ LIMIT 15
208
+ ```
209
+
210
+ **Parameters:**
211
+ - `$source_category` -- the venture's primary domain/category (e.g., "healthcare", "education", "fintech")
212
+
213
+ **Output:** Frameworks from other domains that solve the same type of problem, with optional bridging frameworks that connect the two domains.
214
+
215
+ **Usage notes:** Used by the Design-by-Analogy pipeline (Stage 3 SEARCH) and `/mos:find-analogies --brain`. The key insight: same problem type + different domain = structural analogy candidate. Bridge frameworks increase confidence that the analogy is meaningful, not superficial.
216
+
217
+ ---
218
+
219
+ ## 10. brain_proactive_suggest
220
+
221
+ **Purpose:** Given the user's current Room state (frameworks used, venture stage, section health, active signals), return a ranked list of ACTIONS the Brain recommends -- not just frameworks, but specific /mos: commands with JTBD reasoning.
222
+
223
+ This is the Brain's proactive intelligence engine. It doesn't wait to be asked. It knows what works based on 100+ real projects and tells Larry WHAT to suggest and WHY.
224
+
225
+ ### Query 10a: What Should the User Do Next?
226
+
227
+ ```cypher
228
+ // Find frameworks the user HASN'T used that their current frameworks FEED INTO
229
+ MATCH (current:Framework)-[r:FEEDS_INTO]->(next:Framework)
230
+ WHERE current.name IN $room_frameworks
231
+ AND NOT next.name IN $room_frameworks
232
+ WITH next, r, r.confidence AS confidence
233
+
234
+ // Check if next framework addresses the user's problem type
235
+ OPTIONAL MATCH (next)-[apt:ADDRESSES_PROBLEM_TYPE]->(pt:ProblemType {name: $problem_type})
236
+
237
+ // Check if there's a phase/stage progression pattern
238
+ OPTIONAL MATCH (next)-[:HAS_PHASE]->(phase)
239
+ WITH next, confidence, pt, count(phase) AS phase_count
240
+
241
+ // Get success data from real projects
242
+ OPTIONAL MATCH (next)-[:APPLIED_IN]->(example:Example)
243
+ WHERE example.grade_numeric >= 80
244
+
245
+ RETURN next.name AS framework,
246
+ next.description AS description,
247
+ next.category AS category,
248
+ confidence,
249
+ pt IS NOT NULL AS matches_problem,
250
+ phase_count,
251
+ count(example) AS success_count
252
+ ORDER BY confidence DESC, matches_problem DESC, success_count DESC
253
+ LIMIT 5
254
+ ```
255
+
256
+ **Parameters:**
257
+ - `$room_frameworks` -- frameworks the user has already used (from Room artifacts' methodology frontmatter)
258
+ - `$problem_type` -- inferred from STATE.md (e.g., "wicked", "ill-defined-complex")
259
+
260
+ **Output:** Ranked next-action recommendations with confidence and success data.
261
+
262
+ ### Query 10b: What's the Proven Sequence for This Stage?
263
+
264
+ ```cypher
265
+ // Find the most common framework SEQUENCE for this venture stage
266
+ MATCH (f1:Framework)-[r:FEEDS_INTO]->(f2:Framework)-[:FEEDS_INTO]->(f3:Framework)
267
+ WHERE f1.name IN $room_frameworks
268
+ AND NOT f2.name IN $room_frameworks
269
+ AND NOT f3.name IN $room_frameworks
270
+
271
+ // Check sequence success in real projects
272
+ OPTIONAL MATCH (f1)-[:APPLIED_IN]->(e:Example)<-[:APPLIED_IN]-(f2)
273
+ WHERE e.grade_numeric >= 75
274
+
275
+ RETURN f1.name AS current,
276
+ f2.name AS next_step,
277
+ f3.name AS after_that,
278
+ r.confidence AS step_confidence,
279
+ r.transform_description AS why_this_order,
280
+ count(e) AS projects_used_this_sequence
281
+ ORDER BY step_confidence DESC, projects_used_this_sequence DESC
282
+ LIMIT 3
283
+ ```
284
+
285
+ **Output:** Proven 3-step sequences starting from the user's current frameworks.
286
+
287
+ ### Query 10c: What Are Users at This Stage Missing?
288
+
289
+ ```cypher
290
+ // Compare this user's framework set against the TYPICAL set for their venture stage
291
+ MATCH (stage:VentureStage {name: $venture_stage})<-[:TYPICAL_AT]-(typical:Framework)
292
+ WHERE NOT typical.name IN $room_frameworks
293
+ OPTIONAL MATCH (typical)-[:ADDRESSES_PROBLEM_TYPE]->(pt:ProblemType {name: $problem_type})
294
+ RETURN typical.name AS missing_framework,
295
+ typical.description AS why_it_matters,
296
+ typical.category AS category,
297
+ pt IS NOT NULL AS addresses_your_problem
298
+ ORDER BY addresses_your_problem DESC, typical.importance DESC
299
+ LIMIT 5
300
+ ```
301
+
302
+ **Parameters:**
303
+ - `$venture_stage` -- from STATE.md (Pre-Opportunity, Discovery, Validation, Design, Investment)
304
+
305
+ **Output:** Frameworks typical for this stage that the user hasn't used yet.
306
+
307
+ ### How Larry Uses Pattern 10 (Proactive Command Mapping)
308
+
309
+ The Brain returns framework names. Larry maps them to /mos: commands using the routing table in `references/methodology/index.md`. The mapping:
310
+
311
+ | Brain Returns | Larry Suggests | JTBD Framing |
312
+ |--------------|---------------|-------------|
313
+ | "Jobs-to-Be-Done" not used | `/mos:analyze-needs` | "When you don't know what job your customer hires for, you want to discover the struggling moment. `/mos:analyze-needs` does exactly that." |
314
+ | "Blue Ocean Strategy" as next step | `/mos:dominant-designs` | "When you've mapped customer needs but don't see a differentiated position, you want to find whitespace. `/mos:dominant-designs` does exactly that." |
315
+ | "Six Thinking Hats" for wicked problem | `/mos:think-hats` or `/mos:persona --parallel` | "When your problem has 8/10 wicked characteristics, you want multiple perspectives simultaneously. `/mos:persona --parallel` does exactly that -- 6 hats in 2 minutes." |
316
+ | Contradiction between frameworks | `/mos:find-analogies` | "When Brain sees your frameworks disagree on effectiveness, you want to find how other domains resolved the same tension. `/mos:find-analogies --brain` does exactly that." |
317
+ | Missing prerequisite | The specific prerequisite command | "When Brain says you skipped a prerequisite that 80% of successful ventures complete first, you want to backfill before it compounds. `/mos:[prereq]` does exactly that." |
318
+ | 3-step proven sequence | Suggest step 2 | "When Brain has seen 47 ventures use this exact sequence and 80% scored above B+, you want to follow the proven path. Next step: `/mos:[step2]`." |
319
+
320
+ ### Integration Point: session-start Hook
321
+
322
+ The session-start hook already queries Brain for framework chains (see commands/help.md Brain Enhancement). Pattern 10 extends this:
323
+
324
+ 1. SessionStart loads room frameworks from STATE.md
325
+ 2. If Brain is connected, run `brain_proactive_suggest` (10a)
326
+ 3. Store top 3 suggestions in session context
327
+ 4. Larry's JTBD provoked suggestions (every 3-7 turns) draw from these Brain-ranked suggestions FIRST before falling back to local heuristics
328
+
329
+ This means Brain-connected users get SMARTER suggestions than free-tier users. The Brain knows what worked for 100+ real ventures. Local heuristics are good. Brain suggestions are calibrated.
330
+
331
+ ### Graceful Degradation
332
+
333
+ | Tier | Source | Quality |
334
+ |------|--------|---------|
335
+ | Brain + Room | Pattern 10a/10b/10c + Room Signals | Best: calibrated from real projects, sequence-aware, stage-matched |
336
+ | Room only | Local heuristics from STATE.md + KuzuDB | Good: Room-specific but no cross-venture calibration |
337
+ | No Room | Generic stage-based defaults | Okay: standard recommendations from methodology index |
338
+
339
+ Brain suggestions ENRICH. They never GATE. Free-tier users still get good suggestions from local Room intelligence.
340
+
341
+ ---
342
+
343
+ ## 11. causal_framework_select
344
+
345
+ **Purpose:** Given a problem type and venture stage, which causal framework fits best?
346
+
347
+ ```cypher
348
+ MATCH (f:Framework)-[:RELATED_TO]->(:Concept {name: 'Causal Reasoning'})
349
+ OPTIONAL MATCH (f)-[:TYPICAL_AT]->(s:VentureStage {name: $stage})
350
+ RETURN f.name AS framework,
351
+ f.description AS description,
352
+ s IS NOT NULL AS matches_stage
353
+ ORDER BY matches_stage DESC
354
+ LIMIT 5
355
+ ```
356
+
357
+ **Parameters:**
358
+ - `$stage` -- venture stage from STATE.md (Pre-Opportunity, Opportunity Identified, Problem Validation, Discovery, Design, Investment)
359
+
360
+ **Output:** Ranked list of causal frameworks with stage-match indicator.
361
+
362
+ ---
363
+
364
+ ## 12. causal_pattern_match
365
+
366
+ **Purpose:** Given a causal claim's domain, find which frameworks and teaching examples address similar causal patterns.
367
+
368
+ ```cypher
369
+ MATCH (f:Framework)-[:RELATED_TO]->(:Concept {name: 'Causal Reasoning'})
370
+ OPTIONAL MATCH (f)-[:ADDRESSES_PROBLEM_TYPE]->(pt:ProblemType)
371
+ WHERE pt.name CONTAINS $domain OR pt.name CONTAINS $problem_keyword
372
+ OPTIONAL MATCH (f)-[a:APPLIED_IN]->(e:Example)
373
+ RETURN f.name AS framework,
374
+ collect(DISTINCT pt.name) AS problem_types,
375
+ collect(DISTINCT e.project_name)[0..3] AS example_projects,
376
+ a.grade_numeric AS example_grade
377
+ ORDER BY size(collect(DISTINCT pt.name)) DESC
378
+ LIMIT 5
379
+ ```
380
+
381
+ **Parameters:**
382
+ - `$domain` -- causal claim domain (materials, business, competitive, financial, team, legal, general)
383
+ - `$problem_keyword` -- keyword from the causal claim's cause or effect text
384
+
385
+ **Output:** Frameworks that address similar problem types, with teaching examples for calibration.
386
+
387
+ ---
388
+
389
+ ## 13. causal_contradiction_resolve
390
+
391
+ **Purpose:** When two causal claims contradict, find frameworks and resolution patterns from the Brain.
392
+
393
+ ```cypher
394
+ MATCH (f:Framework)-[:RELATED_TO]->(:Concept {name: 'Causal Reasoning'})
395
+ WHERE f.name IN ['Six Thinking Hats', 'Cynefin', 'Root Cause Analysis', 'Systems Thinking']
396
+ OPTIONAL MATCH (f)-[:CO_OCCURS]->(co:Framework)
397
+ OPTIONAL MATCH (f)-[:FEEDS_INTO]->(next:Framework)
398
+ RETURN f.name AS framework,
399
+ f.description AS description,
400
+ collect(DISTINCT co.name) AS co_occurs_with,
401
+ collect(DISTINCT next.name) AS feeds_into
402
+ LIMIT 10
403
+ ```
404
+
405
+ **Parameters:** None -- returns the full contradiction resolution toolkit.
406
+
407
+ **Output:** Frameworks suited for resolving causal contradictions, with their co-occurrence and chaining relationships.
408
+
409
+ ---
410
+
411
+ ## 14. brain_whitespace_similar
412
+
413
+ **Purpose:** Given a problem type and optional venture stage, find what whitespace gaps similar ventures discovered.
414
+
415
+ ```cypher
416
+ MATCH (wz:WhitespaceZone)-[:EXPLORED_BY]->(f:Framework)
417
+ WHERE wz.problem_type = $problem_type
418
+ WITH wz, collect(f.name) AS chain, wz.density_score AS density, wz.strategic_rank AS rank
419
+ ORDER BY rank ASC, density ASC
420
+ RETURN wz.problem_type AS problem_type,
421
+ wz.hypothesis AS hypothesis,
422
+ chain AS framework_chain,
423
+ density,
424
+ rank
425
+ LIMIT 10
426
+ ```
427
+
428
+ **Parameters:**
429
+ - `$problem_type` -- problem classification (Ill-Defined, Well-Defined, Wicked, Un-Defined)
430
+
431
+ **Output:** Ranked whitespace zones discovered by other ventures with the same problem type, including the framework chains used to explore them.
432
+
433
+ **Usage notes:** Used by Larry when a user asks "what am I missing?" or when Brain proactively suggests surfaces gaps. Results are anonymized -- no room or user identifying data is stored. Combine with pattern 1 (brain_framework_chain) to recommend next exploration steps.
434
+
435
+ ---
436
+
437
+ ## 15. brain_whitespace_resolve
438
+
439
+ **Purpose:** Given a whitespace pattern type, find which framework chains have been used to resolve similar gaps.
440
+
441
+ ```cypher
442
+ MATCH (pt:ProblemType)-[tw:TYPICAL_WHITESPACE]->(wp:WhitespacePattern)
443
+ WHERE wp.type = $whitespace_type
444
+ WITH pt, tw.occurrences AS frequency
445
+ MATCH (wz:WhitespaceZone {problem_type: wp.type})-[:EXPLORED_BY]->(f:Framework)
446
+ WITH pt, frequency, wz, collect({name: f.name, position: wz.density_score}) AS chain
447
+ RETURN pt.name AS problem_type,
448
+ frequency AS times_seen,
449
+ wz.hypothesis AS example_hypothesis,
450
+ [c IN chain | c.name] AS resolution_chain
451
+ ORDER BY frequency DESC
452
+ LIMIT 10
453
+ ```
454
+
455
+ **Parameters:**
456
+ - `$whitespace_type` -- the whitespace pattern type string (matches WhitespaceZone.problem_type)
457
+
458
+ **Output:** Problem types that commonly exhibit this whitespace pattern, how often it occurs, example hypotheses, and the framework chains that have explored it.
459
+
460
+ **Usage notes:** Used when Larry says "ventures like yours typically have a gap in X -- here's how others explored it." The resolution_chain shows the actual methodology sequence used, not just a recommendation. Combine with pattern 14 for full whitespace intelligence: 14 finds WHAT gaps exist, 15 finds HOW to resolve them.
@@ -0,0 +1,218 @@
1
+ # Room Hierarchy Graph Schema
2
+
3
+ Schema for Room/RoomGroup hierarchy in both KuzuDB (local) and Neo4j Brain (remote).
4
+ Added in Phase 59.2. Additive-only -- filesystem + registry.json remain operational truth.
5
+
6
+ ## Node Types
7
+
8
+ ### Room
9
+ Represents a registered Data Room (venture workspace).
10
+
11
+ | Property | Type | Source | Notes |
12
+ |----------|------|--------|-------|
13
+ | name | STRING (PK) | registry.json key | Room slug, e.g. "acme-robotics" |
14
+ | venture_name | STRING | registry.json | Human-readable name |
15
+ | venture_stage | STRING | registry.json | Pre-Opportunity, Discovery, Validation, Design, Investment |
16
+ | domain | STRING | registry.json or inferred | Domain keywords |
17
+ | status | STRING | registry.json | active, parked, archived |
18
+ | created | STRING | registry.json | ISO 8601 timestamp |
19
+ | path | STRING | registry.json | Relative path from ROOMS_HOME |
20
+
21
+ **Present in:** KuzuDB + Brain
22
+
23
+ ### RoomGroup
24
+ Represents a grouping directory (clients/, internal/, etc.).
25
+
26
+ | Property | Type | Source | Notes |
27
+ |----------|------|--------|-------|
28
+ | name | STRING (PK) | Directory name | Group slug, e.g. "clients" |
29
+ | icm_layer | STRING | Always "group" | ICM classification |
30
+ | rationale | STRING | CLAUDE.md first line | Why this group exists |
31
+ | path | STRING | Relative from ROOMS_HOME | Directory path |
32
+
33
+ **Present in:** KuzuDB + Brain
34
+
35
+ ### RoomRoot (Brain only)
36
+ Singleton node representing ~/MindrianRooms/ itself.
37
+
38
+ | Property | Type | Notes |
39
+ |----------|------|-------|
40
+ | name | STRING (PK) | Always "MindrianRooms" |
41
+ | created | DATETIME | First sync timestamp |
42
+ | path | STRING | Always "~/MindrianRooms/" |
43
+
44
+ ### VentureStage
45
+ Five-stage taxonomy (already exists in Brain, seeded in KuzuDB).
46
+
47
+ | Property | Type | Notes |
48
+ |----------|------|-------|
49
+ | name | STRING (PK) | Pre-Opportunity, Discovery, Validation, Design, Investment |
50
+
51
+ **Present in:** KuzuDB + Brain (pre-existing in Brain)
52
+
53
+ ## Relationship Types
54
+
55
+ ### CONTAINS
56
+ Physical hierarchy edges.
57
+
58
+ | From | To | Scope | Notes |
59
+ |------|----|-------|-------|
60
+ | RoomRoot | RoomGroup | Brain | Root contains groups |
61
+ | RoomRoot | Room | Brain | Root contains ungrouped rooms |
62
+ | RoomGroup | Room | Both | Group contains rooms |
63
+ | RoomGroup | RoomGroup | KuzuDB | Nested groups (future) |
64
+
65
+ ### AT_STAGE
66
+ Connects Room to its current VentureStage.
67
+
68
+ | From | To | Scope | Notes |
69
+ |------|----|-------|-------|
70
+ | Room | VentureStage | Both | One edge per room, deleted and recreated on stage change |
71
+
72
+ ### USES_FRAMEWORK (Brain only)
73
+ Connects Room to Framework nodes based on methodology commands run in that room.
74
+
75
+ | From | To | Properties | Notes |
76
+ |------|----|------------|-------|
77
+ | Room | Framework | first_used (datetime), usage_count (int) | Created from room/.analytics.json |
78
+
79
+ Source: `track-analytics` records command usage per room. `sync-rooms-brain` maps commands to Framework node names.
80
+
81
+ ### SHARES_THEME (Brain only)
82
+ Cross-room content similarity detected from problem-definition keywords.
83
+
84
+ | From | To | Properties | Notes |
85
+ |------|----|------------|-------|
86
+ | Room | Room | shared_terms (string), term_count (int), detected (datetime) | Bidirectional conceptually, stored as directed edge |
87
+
88
+ Detection: reads first 5 files from each room's `problem-definition/` directory, extracts domain keywords (5+ chars), requires 10+ shared keywords for edge creation.
89
+
90
+ ### HAS_SECTION (Brain only)
91
+ Wires Room to DataRoomSection nodes (13 existing orphans in Brain).
92
+
93
+ | From | To | Notes |
94
+ |------|----|-------|
95
+ | Room | DataRoomSection | Created only when section directory exists in room filesystem |
96
+
97
+ Standard sections: Problem Definition, Market Analysis, Solution Design, Business Model, Competitive Analysis, Team & Execution, Legal & IP, Financial Model, Opportunity Bank, Funding, Product, Decisions, Beta Testing.
98
+
99
+ ### GROUPED_BY_USER (Brain only, future)
100
+ Created by /mos:organize move when user confirms a grouping.
101
+
102
+ | From | To | Properties |
103
+ |------|----|------------|
104
+ | Room | RoomGroup | timestamp (datetime), rationale (string) |
105
+
106
+ ### SEPARATED_BY_USER (Brain only, future)
107
+ Created by /mos:organize when user rejects a grouping.
108
+
109
+ | From | To | Properties |
110
+ |------|----|------------|
111
+ | Room | Room | timestamp (datetime), reason (string) |
112
+
113
+ ## KuzuDB DDL
114
+
115
+ Location: `$ROOMS_HOME/.rooms/.room-graph/`
116
+
117
+ ```sql
118
+ -- Node tables
119
+ CREATE NODE TABLE IF NOT EXISTS Room(
120
+ name STRING PRIMARY KEY,
121
+ venture_name STRING,
122
+ venture_stage STRING,
123
+ domain STRING,
124
+ status STRING,
125
+ created STRING,
126
+ path STRING
127
+ );
128
+
129
+ CREATE NODE TABLE IF NOT EXISTS RoomGroup(
130
+ name STRING PRIMARY KEY,
131
+ icm_layer STRING,
132
+ rationale STRING,
133
+ path STRING
134
+ );
135
+
136
+ CREATE NODE TABLE IF NOT EXISTS VentureStage(
137
+ name STRING PRIMARY KEY
138
+ );
139
+
140
+ -- Relationship tables
141
+ CREATE REL TABLE IF NOT EXISTS CONTAINS(FROM RoomGroup TO Room);
142
+ CREATE REL TABLE IF NOT EXISTS GROUP_CONTAINS(FROM RoomGroup TO RoomGroup);
143
+ CREATE REL TABLE IF NOT EXISTS AT_STAGE(FROM Room TO VentureStage);
144
+ ```
145
+
146
+ ## Cypher Patterns for /mos:organize
147
+
148
+ ### Get room hierarchy tree
149
+ ```cypher
150
+ MATCH (root:RoomRoot {name: 'MindrianRooms'})
151
+ OPTIONAL MATCH (root)-[:CONTAINS]->(g:RoomGroup)-[:CONTAINS]->(r:Room)
152
+ OPTIONAL MATCH (root)-[:CONTAINS]->(ungrouped:Room)
153
+ WHERE NOT (ungrouped)<-[:CONTAINS]-(:RoomGroup)
154
+ RETURN g.name AS group_name,
155
+ collect(DISTINCT r.name) AS grouped_rooms,
156
+ collect(DISTINCT ungrouped.name) AS ungrouped_rooms
157
+ ```
158
+
159
+ ### Find rooms sharing frameworks
160
+ ```cypher
161
+ MATCH (r1:Room)-[:USES_FRAMEWORK]->(f:Framework)<-[:USES_FRAMEWORK]-(r2:Room)
162
+ WHERE r1.name <> r2.name
163
+ RETURN r1.name, r2.name, collect(f.name) AS shared_frameworks
164
+ ```
165
+
166
+ ### Find rooms at the same venture stage
167
+ ```cypher
168
+ MATCH (r:Room)-[:AT_STAGE]->(s:VentureStage)
169
+ RETURN s.name AS stage, collect(r.name) AS rooms
170
+ ```
171
+
172
+ ### Find rooms with shared themes
173
+ ```cypher
174
+ MATCH (r1:Room)-[e:SHARES_THEME]->(r2:Room)
175
+ RETURN r1.name, r2.name, e.shared_terms, e.term_count
176
+ ORDER BY e.term_count DESC
177
+ ```
178
+
179
+ ### Find orphaned rooms (not in any group)
180
+ ```cypher
181
+ MATCH (r:Room)
182
+ WHERE NOT (:RoomGroup)-[:CONTAINS]->(r)
183
+ RETURN r.name, r.venture_stage, r.status
184
+ ```
185
+
186
+ ### Get room's full context (all edges)
187
+ ```cypher
188
+ MATCH (r:Room {name: $room_name})
189
+ OPTIONAL MATCH (r)-[:AT_STAGE]->(s:VentureStage)
190
+ OPTIONAL MATCH (r)-[:USES_FRAMEWORK]->(f:Framework)
191
+ OPTIONAL MATCH (r)-[:HAS_SECTION]->(sec:DataRoomSection)
192
+ OPTIONAL MATCH (r)-[:SHARES_THEME]-(other:Room)
193
+ RETURN r.name, s.name AS stage,
194
+ collect(DISTINCT f.name) AS frameworks,
195
+ collect(DISTINCT sec.name) AS sections,
196
+ collect(DISTINCT other.name) AS theme_neighbors
197
+ ```
198
+
199
+ ## Sync Scripts
200
+
201
+ | Script | Target | Trigger | Frequency |
202
+ |--------|--------|---------|-----------|
203
+ | `scripts/sync-rooms-graph` | KuzuDB local | session-start, room-registry create/archive | Every session + on room changes |
204
+ | `scripts/sync-rooms-brain` | Neo4j Brain | session-start (when Brain available) | Best-effort, per session |
205
+
206
+ Both scripts are idempotent and fire-and-forget. Failure degrades gracefully:
207
+ - Brain unavailable -> KuzuDB only
208
+ - KuzuDB unavailable -> filesystem only (Tier 0)
209
+ - Both unavailable -> everything still works from registry.json
210
+
211
+ ## Additive-Only Rule (D-15 through D-18)
212
+
213
+ 1. Graph NEVER writes to filesystem or registry.json
214
+ 2. Graph NEVER blocks any operation on failure
215
+ 3. All graph operations are fire-and-forget (async, best-effort)
216
+ 4. Graph data can be regenerated from filesystem at any time (no exclusive state)
217
+
218
+ The graph layer adds intelligence. It never owns truth.