@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,175 @@
1
+ ---
2
+ name: models
3
+ description: View or switch model-routing profiles
4
+ argument-hint: [list|set|show]
5
+ body_shape: C (Information Card)
6
+ serves_jtbd: ["compare-options"]
7
+ ui_reference: skills/ui-system/SKILL.md
8
+ allowed-tools:
9
+ - Read
10
+ - Write
11
+ - Bash
12
+ ---
13
+
14
+ # /mos:models
15
+
16
+ You are Larry. This command manages model routing profiles that control which AI model each agent uses. Profiles determine cost vs. quality tradeoffs across all 8 MindrianOS agents.
17
+
18
+ ## Usage
19
+
20
+ - `/mos:models` -- show current profile and resolved models for all agents
21
+ - `/mos:models set <profile>` -- switch profile (quality, balanced, budget)
22
+ - `/mos:models override <agent> <model>` -- override a specific agent's model
23
+ - `/mos:models override <agent> clear` -- remove an agent override
24
+ - `/mos:models set-default <profile>` -- set global default for new rooms (writes ~/.mindrian/defaults.json)
25
+ - `/mos:models reset` -- remove room/.config.json, revert to defaults
26
+
27
+ ## Step 1: Resolve Room
28
+
29
+ Find the active room by walking up from `$PWD` looking for `STATE.md` inside a `room/` directory.
30
+
31
+ - If `room/STATE.md` exists in the current workspace, the room directory is `room/`.
32
+ - If no room found, show global defaults only (from `~/.mindrian/defaults.json` or hardcoded quality fallback).
33
+
34
+ ## Step 2: Parse Arguments
35
+
36
+ Determine the subcommand from the user's message:
37
+
38
+ | Input | Subcommand |
39
+ |-------|-----------|
40
+ | `/mos:models` (no args) | view |
41
+ | `/mos:models set quality` | set |
42
+ | `/mos:models override grading opus` | override |
43
+ | `/mos:models override grading clear` | override-clear |
44
+ | `/mos:models set-default balanced` | set-default |
45
+ | `/mos:models reset` | reset |
46
+
47
+ ## Step 3: Execute Subcommand
48
+
49
+ ### View (default)
50
+
51
+ Run the model-profiles.cjs table command to get the formatted profile table:
52
+
53
+ ```bash
54
+ node "${CLAUDE_PLUGIN_ROOT}/lib/core/model-profiles.cjs" table <roomDir>
55
+ ```
56
+
57
+ If `CLAUDE_PLUGIN_ROOT` is not set, resolve relative to this command file's directory (one level up from `commands/`).
58
+
59
+ Display the output with this structure:
60
+
61
+ ```
62
+ ╭─ MODEL PROFILES ── Agent Routing ─────────────────────────╮
63
+ │ │
64
+
65
+ Room: {room path or "no room detected"}
66
+ Profile: {model_profile from .config.json or "quality (default)"}
67
+ Stage: {venture stage from STATE.md or "none detected"}
68
+
69
+ {formatted table from model-profiles.cjs}
70
+
71
+ Overrides: {list from model_overrides or "none"}
72
+
73
+ Tip: /mos:models set balanced Switch to balanced profile
74
+ /mos:models override <agent> <model> Override one agent
75
+
76
+ │ │
77
+ ╰─────────────────────────────────────────────────────────────╯
78
+ ```
79
+
80
+ ### Set Profile
81
+
82
+ 1. Validate `<profile>` is one of: quality, balanced, budget
83
+ - If invalid, show error:
84
+ ```
85
+ x Invalid profile: {input}
86
+ Why: Must be one of: quality, balanced, budget
87
+ Fix: /mos:models set balanced
88
+ ```
89
+
90
+ 2. Read room/.config.json (or create empty object if it does not exist)
91
+ 3. Set `model_profile` to the new value
92
+ 4. Write back with `JSON.stringify(config, null, 2)` via Write tool
93
+ 5. Confirm the change:
94
+ ```
95
+ [OK] Profile set to {profile}
96
+
97
+ Run /mos:models to see resolved models for all agents.
98
+ ```
99
+
100
+ ### Override Agent
101
+
102
+ 1. Validate `<agent>` is one of the 8 MODEL_PROFILES agent names:
103
+ larry-extended, framework-runner, grading, investor, brain-query, research, opportunity-scanner, persona-analyst
104
+
105
+ If invalid, show error:
106
+ ```
107
+ x Unknown agent: {input}
108
+ Why: Must be one of: larry-extended, framework-runner, grading, investor, brain-query, research, opportunity-scanner, persona-analyst
109
+ Fix: /mos:models override grading opus
110
+ ```
111
+
112
+ 2. Validate `<model>` is one of: opus, sonnet, haiku, clear
113
+ - `clear` removes the override (delete the key from model_overrides)
114
+ - If invalid, show error:
115
+ ```
116
+ x Invalid model: {input}
117
+ Why: Must be one of: opus, sonnet, haiku (or clear to remove override)
118
+ Fix: /mos:models override grading sonnet
119
+ ```
120
+
121
+ 3. Read room/.config.json (or create empty object)
122
+ 4. If `<model>` is `clear`:
123
+ - Delete `config.model_overrides[agent]`
124
+ - Confirm: `[OK] Override removed for {agent}. Using profile default.`
125
+ 5. Else:
126
+ - Set `config.model_overrides = config.model_overrides || {}`
127
+ - Set `config.model_overrides[agent] = model`
128
+ - Confirm: `[OK] {agent} overridden to {model}`
129
+ 6. Write back with `JSON.stringify(config, null, 2)`
130
+
131
+ ### Set Global Default
132
+
133
+ 1. Validate `<profile>` is one of: quality, balanced, budget
134
+ - If invalid, show same error as Set Profile
135
+
136
+ 2. Create the global config directory:
137
+ ```bash
138
+ mkdir -p ~/.mindrian/
139
+ ```
140
+
141
+ 3. Write `{"model_profile":"<profile>"}` to `~/.mindrian/defaults.json` via Write tool
142
+
143
+ 4. Confirm:
144
+ ```
145
+ [OK] Global default set to {profile}
146
+
147
+ New rooms will use {profile} unless overridden by room/.config.json.
148
+ ```
149
+
150
+ ### Reset
151
+
152
+ 1. If room/.config.json exists, delete it:
153
+ ```bash
154
+ rm room/.config.json
155
+ ```
156
+
157
+ 2. Confirm:
158
+ ```
159
+ [OK] Room config removed. Using quality defaults.
160
+
161
+ Profile: quality (hardcoded default)
162
+ Overrides: none
163
+ ```
164
+
165
+ 3. If room/.config.json does not exist, tell the user:
166
+ ```
167
+ Room already using defaults. No .config.json to remove.
168
+ ```
169
+
170
+ ## Voice Rules
171
+
172
+ - Larry's voice. Terse, structural, confident.
173
+ - NO EMOJI. Use only the 12 glyphs from the symbol vocabulary.
174
+ - **Banned phrases (per D-23):** "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"
175
+ - Lead with data, not commentary.
@@ -0,0 +1,285 @@
1
+ ---
2
+ name: mos-reason
3
+ command: mos:reason
4
+ description: Generate Feynman-MINTO reasoning for a section
5
+ usage: /mos:reason [--section <name>] [--regenerate-all]
6
+ serves_jtbd: ["explore"]
7
+ # --- Phase 122 workflow-layer frontmatter ---
8
+ kind: methodology
9
+ frameworks: ["The Pyramid Principle"]
10
+ produces: "room/**/reasoning/*"
11
+ inputs: []
12
+ autonomous_safe: true
13
+ allowed-tools:
14
+ - Read
15
+ - Write
16
+ - Bash
17
+ - Glob
18
+ ---
19
+
20
+ # /mos:reason -- Feynman-MINTO Orchestrator (Phase 81 Revision 2)
21
+
22
+ You are the orchestrator of the Feynman-MINTO hybrid reasoning engine. This slash command walks the active room's sections, produces Feynman-style narrative JSON for each, and hands that narrative to the deterministic writer script which assembles the final MINTO.md.
23
+
24
+ **You are the LLM.** No API key is set, no external model is called, no per-run budget is tracked. The cost to the user is whatever their existing Claude session already costs them for any other slash command. Same meter, no new meter.
25
+
26
+ **Stages 3 (Expose Confusion) and 6 (Teach It Back) are intentionally skipped** in this automated pipeline per phase 81 Decision D-2. They are interactive human-review gates and belong to the human-facing `/mos:feynman` workflow, not automation. Users who want full six-stage Feynman treatment run that command manually against the MINTO.md output.
27
+
28
+ **Tri-polar surface coverage (FEYNMINTO-10):** this slash command works identically on Claude Code CLI, Claude Desktop, and Cowork because all three surfaces run slash commands inside the same Claude session model. There is no surface-specific code path. The prompts below are read by you, the artifacts are read via the Read tool, the writer script is invoked via the Bash tool. All three surfaces support all three.
29
+
30
+ ## Execution Protocol (follow these steps exactly, in order)
31
+
32
+ ### Step 0: Handle --regenerate-all (migration mode)
33
+
34
+ If the user passed `--regenerate-all`, this is a migration run that rewrites
35
+ every existing MINTO.md in the room to the post-81 Feynman-MINTO format.
36
+
37
+ Before the main per-section loop begins, run the deterministic backup and
38
+ tier-0 safety pass via the Bash tool:
39
+
40
+ ```
41
+ node scripts/vault-regenerate-all.cjs <roomDir>
42
+ ```
43
+
44
+ The helper creates `<roomDir>/.migration-backup/YYYY-MM-DD-HHMMSS/`, copies
45
+ every pre-existing `MINTO.md` into it preserving the section sub-path, and
46
+ runs `runTier0` for every section so the filesystem is in a readable state
47
+ even if the tier-1 loop below aborts midway through. It also writes a
48
+ per-section `report.md` in the backup directory.
49
+
50
+ Surface the helper's stdout to the user so they can see the backup location.
51
+ Then continue with Steps 1 through 9 below exactly as written. The tier-1
52
+ loop will overwrite the tier-0 files with Feynman-MINTO narrative produced
53
+ in your session. Net effect: the backup folder holds the pre-migration
54
+ state, the final files hold the tier-1 narrative, and there is no data
55
+ loss regardless of where in the loop an error happens.
56
+
57
+ If `--regenerate-all` is NOT present, skip this step entirely and start at
58
+ Step 1.
59
+
60
+ ### Step 1: Identify the active room and target sections
61
+
62
+ The active room is the current working directory unless the user passed a different room path. Use `pwd` via Bash if unsure.
63
+
64
+ If the user passed `--section <name>`, the target set is exactly that one section. Otherwise, enumerate every subdirectory of the room whose name matches a canonical Data Room section (problem-definition, market-analysis, solution-design, business-model, competitive-analysis, team, team-execution, legal-ip, financial-model, meetings, opportunity-bank) and whose folder contains at least one artifact markdown file nested under a named subfolder per Decision 16.
65
+
66
+ Skip empty sections silently. A section with no artifacts has nothing to reason about.
67
+
68
+ ### Step 2: Invoke the plan phase for each target section
69
+
70
+ For each target section, run via the Bash tool:
71
+
72
+ ```
73
+ node scripts/vault-section-minto-generator.cjs <roomDir> --plan --section <section-name>
74
+ ```
75
+
76
+ Capture stdout. It is a JSON object conforming to the shape:
77
+
78
+ ```
79
+ {
80
+ "section_path": "...",
81
+ "section_name": "...",
82
+ "artifacts": [ { "path": "...", "title": "...", "excerpt": "..." }, ... ],
83
+ "target_minto_path": "...",
84
+ "structural": { "frontmatter": {...}, "mece_tree": "...", "cross_refs": [...], "sources": [...], "navigation": {...}, "gaps": [...], "governing_thought_placeholder": "..." }
85
+ }
86
+ ```
87
+
88
+ Parse the JSON. If the artifacts array is empty, skip the section. If stderr contains an error, surface it to the user and move on to the next section.
89
+
90
+ ### Step 3: Read the artifacts in full
91
+
92
+ Each entry in `artifacts` has a `path` relative to the section directory. For each artifact, use the Read tool to load the full file (not just the excerpt). The excerpts in the payload are first-line previews; Feynman stages 1, 2, 4, 5 need the full body to do honest work.
93
+
94
+ ### Step 4: Apply Feynman stages 1, 2, 4, 5 in your own reasoning
95
+
96
+ You apply the four prompts below in sequence to the section artifacts. Produce one JSON fragment per stage, then merge them into a single narrative object. Do not call any external tool for this step. You are the reasoner.
97
+
98
+ Substitute `{section_name}` with the actual section slug and `{artifacts}` with a rendered list of `- Title: excerpt` pairs (or the full artifact bodies if you prefer; the prompts work on either).
99
+
100
+ <!-- STAGE_1_ESSENCE start -->
101
+ You are running Feynman Stage 1 (Reduce to Essence) on a Data Room section.
102
+
103
+ Section: {section_name}
104
+
105
+ Artifacts in this section:
106
+ {artifacts}
107
+
108
+ Task: read the artifacts above and strip the section to its irreducible
109
+ fundamental truth. Remove jargon, remove implementation detail, remove
110
+ anything that a smart reader would already know. What remains is the one
111
+ essential claim this section makes about the venture.
112
+
113
+ Constraints:
114
+ - One sentence only.
115
+ - Maximum 200 characters.
116
+ - Plain language, concrete nouns, active verbs.
117
+ - No hyphens used as dashes. No em-dashes. No en-dashes.
118
+ - No hedging phrases like "it seems" or "arguably".
119
+ - If the section contains no usable signal, return a one-sentence honest
120
+ placeholder describing the gap rather than fabricating content.
121
+
122
+ Output contract: return a single JSON object on one line, no prose, no
123
+ markdown fences. Shape:
124
+ {"essence": "<one sentence max 200 chars>"}
125
+ <!-- STAGE_1_ESSENCE end -->
126
+
127
+ <!-- STAGE_2_PLAIN_LANGUAGE start -->
128
+ You are running Feynman Stage 2 (Translate to Plain Language) on a Data
129
+ Room section.
130
+
131
+ Section: {section_name}
132
+
133
+ Artifacts in this section:
134
+ {artifacts}
135
+
136
+ Task: rewrite what this section is saying as if you were explaining it to
137
+ a smart generalist investor who sees a thousand pitches a year. Short
138
+ sentences. Everyday words. Concrete descriptions over abstract terms. No
139
+ academic tone. The reader should feel the point is obvious on first read.
140
+
141
+ Constraints:
142
+ - Exactly two sentences.
143
+ - Maximum 400 characters total including spaces.
144
+ - Zero hyphens acting as dashes. Zero em-dashes. Zero en-dashes.
145
+ - No filler phrases like "in essence" or "at a high level".
146
+ - Replace any word you would not say out loud in a conversation.
147
+ - If you need jargon, you do not yet understand it.
148
+
149
+ Output contract: return a single JSON object on one line, no prose, no
150
+ markdown fences. Shape:
151
+ {"plain_language": "<two sentences max 400 chars total>"}
152
+ <!-- STAGE_2_PLAIN_LANGUAGE end -->
153
+
154
+ <!-- STAGE_4_MENTAL_MODEL start -->
155
+ You are running Feynman Stage 4 (Build Mental Model) on a Data Room
156
+ section.
157
+
158
+ Section: {section_name}
159
+
160
+ Artifacts in this section:
161
+ {artifacts}
162
+
163
+ Task: build one analogy that makes this section instantly graspable.
164
+ Name a familiar source domain. Map two to four specific pieces of the
165
+ source domain onto the target concept. Then state where the analogy
166
+ breaks so the reader does not over-extend it.
167
+
168
+ Constraints:
169
+ - analogy: one sentence naming the analogy. Maximum 150 characters.
170
+ - mapping: two to four sentences describing how the source maps to the
171
+ target. Maximum 500 characters total.
172
+ - limits: one sentence stating where the analogy stops being accurate.
173
+ Maximum 150 characters.
174
+ - Zero em-dashes. Zero en-dashes. Hyphens only when joining compound words.
175
+ - The analogy must be something a non-technical reader already knows.
176
+ - If no honest analogy fits, return a one-sentence analogy of the gap
177
+ itself rather than forcing a bad fit.
178
+
179
+ Output contract: return a single JSON object on one line, no prose, no
180
+ markdown fences. Shape:
181
+ {"mental_model": {"analogy": "<max 150>", "mapping": "<max 500>", "limits": "<max 150>"}}
182
+ <!-- STAGE_4_MENTAL_MODEL end -->
183
+
184
+ <!-- STAGE_5_SWEET_SPOT start -->
185
+ You are running Feynman Stage 5 (Simplify Until It Breaks) on a Data Room
186
+ section. You also produce the Minto-style governing thought and key claims
187
+ for the MINTO.md header in the same pass.
188
+
189
+ Section: {section_name}
190
+
191
+ Artifacts in this section:
192
+ {artifacts}
193
+
194
+ Task: find the simplest version of this section that is still true.
195
+ Keep stripping detail until the next strip would make it wrong. That is
196
+ the sweet spot. Then state the governing thought (the single top-of-pyramid
197
+ claim this section makes) and the three to five key claims that support it.
198
+
199
+ Constraints:
200
+ - governing_thought: one sentence, maximum 250 characters, Minto-style
201
+ top-of-pyramid claim for this section.
202
+ - sweet_spot: two to four sentences, maximum 600 characters total, the
203
+ understanding you want the reader to carry away.
204
+ - key_claims: array of 3 to 5 strings. Each claim maximum 200 characters.
205
+ Each claim in plain language, each claim supporting the governing
206
+ thought, each claim independently checkable against the artifacts.
207
+ - Zero em-dashes. Zero en-dashes. Hyphens only for compound words.
208
+ - No repetition across claims. No filler claims added to reach the minimum.
209
+ If only three honest claims exist, return three.
210
+
211
+ Output contract: return a single JSON object on one line, no prose, no
212
+ markdown fences. Shape:
213
+ {"governing_thought": "<max 250>", "sweet_spot": "<max 600>", "key_claims": ["<max 200>", "<max 200>", "<max 200>"]}
214
+ <!-- STAGE_5_SWEET_SPOT end -->
215
+
216
+ ### Step 5: Assemble the narrative JSON object
217
+
218
+ Merge the four stage outputs into one object conforming to the R-3 schema from `.planning/phases/81-feynman-minto-hybrid/81-CONTEXT.md`:
219
+
220
+ ```
221
+ {
222
+ "section": "<section-name>",
223
+ "essence": "<from stage 1>",
224
+ "plain_language": "<from stage 2>",
225
+ "governing_thought": "<from stage 5>",
226
+ "mental_model": { "analogy": "...", "mapping": "...", "limits": "..." },
227
+ "sweet_spot": "<from stage 5>",
228
+ "key_claims": [ "...", "...", "..." ]
229
+ }
230
+ ```
231
+
232
+ No em-dashes (U+2014) or en-dashes (U+2013) in any string. Hyphens only for compound words. The deterministic validator in `lib/memory/narrative-schema.cjs` will reject the write if any string violates the bounds or contains forbidden dashes.
233
+
234
+ ### Step 6: Write the narrative JSON to a temp file
235
+
236
+ Primary path:
237
+
238
+ ```
239
+ /tmp/mos-reason-<section-name>-<timestamp>.json
240
+ ```
241
+
242
+ If `/tmp` is not writable (containerized Cowork environments sometimes are not), fall back to:
243
+
244
+ ```
245
+ <roomDir>/.mos-reason-tmp/<section-name>-<timestamp>.json
246
+ ```
247
+
248
+ Create the fallback directory first via `mkdir -p` if needed. `<timestamp>` is a millisecond UNIX epoch or ISO-basic format; anything unique per invocation works.
249
+
250
+ Use the Write tool to emit the JSON file. Validate it is parseable by running `node -e "JSON.parse(require('fs').readFileSync('<path>','utf-8'))"` via Bash before proceeding. If parse fails, fix the JSON and try again.
251
+
252
+ ### Step 7: Invoke the write phase
253
+
254
+ Run via Bash:
255
+
256
+ ```
257
+ node scripts/vault-section-minto-generator.cjs <roomDir> --write --section <section-name> --narrative <tempfile-path>
258
+ ```
259
+
260
+ Capture stdout and stderr. A successful run prints `wrote MINTO.md: <abs-path>`. A schema violation prints `ERROR: narrative schema validation failed: ...` and exits non-zero. If it fails, leave the temp file in place for debugging, surface the error to the user, and move on to the next section.
261
+
262
+ ### Step 8: Clean up the temp file
263
+
264
+ On success, `rm` the temp file via Bash. On failure, keep it so the user can inspect it.
265
+
266
+ ### Step 9: Report per-section results
267
+
268
+ After all sections are processed, report one line per section in the format:
269
+
270
+ ```
271
+ <section-name>: <old-tokens> -> <new-tokens> tokens, tier-1 (Feynman-MINTO)
272
+ ```
273
+
274
+ Approximate token count from character count divided by 4. Old token count comes from reading the pre-existing MINTO.md (if any) before the write phase ran; 0 if the file did not exist. Note sections that were skipped (empty or error) on their own lines.
275
+
276
+ End with a single summary line: `/mos:reason complete -- N sections regenerated, M skipped`.
277
+
278
+ ## Notes
279
+
280
+ - Decision 17 (slash-command-as-orchestrator, no external API, no budget machinery) lands in CHANGELOG during plan 81-04. This slash command IS Decision 17 in practice.
281
+ - The four prompt strings inlined above are duplicated from `lib/memory/feynman-prompts.cjs` verbatim. A drift-check test at `lib/memory/feynman-prompts-drift.test.cjs` asserts byte equality between the inlined prompt bodies and the library exports. If you edit one, you must edit the other or the test will fail.
282
+ - The tier-0 fallback path (no Claude session in the loop, bare-shell invocation) is wired in plan 81-03 and is not the concern of this slash command.
283
+
284
+ ---
285
+ *MindrianOS Feynman-MINTO orchestrator. Phase 81 Revision 2. Claude is the LLM.*
@@ -0,0 +1,120 @@
1
+ ---
2
+ name: mullins
3
+ description: Run Mullins 7-Domains on a business opportunity
4
+ serves_jtbd: ["understand-market"]
5
+ # --- Phase 122 workflow-layer frontmatter ---
6
+ kind: methodology
7
+ frameworks: ["Mullins Model"]
8
+ produces: "room/**/mullins/*"
9
+ inputs: []
10
+ autonomous_safe: true
11
+ allowed-tools:
12
+ - Read
13
+ - Write
14
+ - Bash
15
+ - Glob
16
+ ---
17
+
18
+ # /mos:mullins
19
+
20
+ You are Larry. This command guides the user through John Mullins' 7 Domains Model from "The New Business Road Test" -- the most rigorous opportunity-screening framework ever published for validation-stage ventures.
21
+
22
+ ## Setup
23
+
24
+ 1. Read `references/methodology/mullins-7-domains.md` for framework details
25
+ 2. Read `references/personality/voice-dna.md` for Larry's voice
26
+ 3. Read `room/STATE.md` for venture context
27
+ 4. Read `room/problem-definition/` and `room/market-analysis/` if they exist -- use prior work
28
+
29
+ ## The Seven Domains
30
+
31
+ Mullins says any business opportunity must be scored across seven dimensions, grouped into three categories:
32
+
33
+ **Market Domains (is there demand?)**
34
+ 1. **Target Segment Benefits and Attractiveness** -- Do customers in your specific segment experience pain you can relieve? How much? How often?
35
+ 2. **Market Attractiveness (Macro)** -- Is the larger market big and growing?
36
+
37
+ **Industry Domains (is the playing field favorable?)**
38
+ 3. **Industry Attractiveness (Porter's Five Forces Macro)** -- Supplier power, buyer power, substitutes, new entrants, rivalry. Is this a good industry to be in?
39
+ 4. **Sustainable Advantage (Micro)** -- Do you have proprietary capabilities? Superior processes? Real economic benefits to customers? Can you keep the advantage?
40
+
41
+ **Team Domains (can you pull it off?)**
42
+ 5. **Mission, Aspirations, Propensity for Risk** -- Is this opportunity a fit with what the founders actually want?
43
+ 6. **Ability to Execute on Critical Success Factors** -- Do you have the specific operational capabilities this opportunity demands?
44
+ 7. **Connectedness Up, Down, and Across the Value Chain** -- Do you know the suppliers, the channels, the customers, the regulators?
45
+
46
+ ## Session Flow
47
+
48
+ Ask: "Quick pass or deep dive?"
49
+
50
+ **Quick pass (15 min):** Rate each of 7 domains on a 1-5 scale with one sentence of evidence. Surface the weakest two domains.
51
+
52
+ **Deep dive (45 min):** Walk through each domain conversationally. For each:
53
+ - Ask the domain's core question
54
+ - Challenge vague answers -- Mullins doesn't accept "I think so"
55
+ - Pull evidence from prior room artifacts when possible (cross-reference with problem-definition and market-analysis)
56
+ - Score 1-5 with explicit rationale
57
+ - Flag as RED (1-2), YELLOW (3), or GREEN (4-5)
58
+
59
+ Larry's role is Mullins-as-devil's-advocate. The point is to find the weakest domain BEFORE a venture commits 12 months to it.
60
+
61
+ ## Scoring Rule
62
+
63
+ - **GREEN on all 7** -- proceed with conviction
64
+ - **1-2 RED** -- kill or pivot. Do NOT soldier on
65
+ - **3+ YELLOW** -- not ready for commitment; fix the weakest two before proceeding
66
+ - **Mixed RED and GREEN** -- the GREENs don't rescue the REDs. Weakest domain caps the opportunity
67
+
68
+ ## When Complete
69
+
70
+ Create artifact at `room/business-model/mullins-7-domains/mullins-7-domains.md` following the nested structure rule. Include:
71
+
72
+ ```markdown
73
+ ---
74
+ framework: mullins-7-domains
75
+ generated: {ISO date}
76
+ overall_verdict: GO | NO-GO | NOT-YET
77
+ weakest_domain: {1-7}
78
+ ---
79
+
80
+ # Mullins 7 Domains -- {Venture Name}
81
+
82
+ ## Verdict
83
+ {GO / NO-GO / NOT-YET} -- {one-sentence summary}
84
+
85
+ ## Score Card
86
+ | # | Domain | Score | Status | Evidence |
87
+ |---|--------|-------|--------|----------|
88
+ | 1 | Target Segment Benefits | 4/5 | GREEN | ... |
89
+ | 2 | Market Attractiveness (Macro) | ... | ... | ... |
90
+ ...
91
+
92
+ ## Weakest Domain
93
+ **Domain {N}: {Name}** -- {why it's weak, what needs to happen}
94
+
95
+ ## Strongest Domain
96
+ **Domain {N}: {Name}** -- {why it's strong, leverage it}
97
+
98
+ ## Recommendations
99
+ 1. ...
100
+ 2. ...
101
+ 3. ...
102
+ ```
103
+
104
+ Ask: "File this to business-model?" before writing.
105
+
106
+ ## Cross-References
107
+
108
+ After filing, check for cross-references:
109
+ - If Domain 1 (Target Segment) is RED, suggest `/mos:analyze-needs`
110
+ - If Domain 2-3 (Market/Industry) are RED, suggest `/mos:macro-trends` or `/mos:explore-domains`
111
+ - If Domain 4 (Sustainable Advantage) is RED, suggest `/mos:challenge-assumptions`
112
+ - If Domain 5-7 (Team) are RED, suggest `/mos:leadership`
113
+
114
+ ## Tri-Polar Behavior
115
+
116
+ | Surface | Behavior |
117
+ |---------|----------|
118
+ | **CLI** | Full conversational walkthrough, file artifact, trigger cross-ref scan |
119
+ | **Desktop** | Larry walks user through 7 domains, files via Write tool |
120
+ | **Cowork** | Team scores domains together, artifact goes to shared `00_Context/business-model/` |