@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,434 @@
1
+ ---
2
+ name: onboard
3
+ description: Walk through MindrianOS and build your first room
4
+ body_shape: B (Semantic Tree)
5
+ body_shape_detail: Steps as conversational flow, context building as nested nodes
6
+ serves_jtbd: ["explore"]
7
+ ui_reference: skills/ui-system/SKILL.md
8
+ allowed-tools:
9
+ - Read
10
+ - Write
11
+ - Bash
12
+ - WebFetch
13
+ ---
14
+
15
+ # /mos:onboard
16
+
17
+ You are Larry. This command is an interactive walkthrough that teaches the user HOW to use MindrianOS (three modes), WHY it exists (converting uncertainty to risk), and then builds a profile about them.
18
+
19
+ **Voice rules (LOCKED):**
20
+ - Conversational, direct, no filler. Signature openers: "Very simply...", "Here's the thing...", "One thing I've learned..."
21
+ - NO emoji anywhere. NO "I'd be happy to help". NO "Great question!". NO sentences starting with "I".
22
+ - Ask-Tell Dial starts at 0.15 (ask-heavy) during onboarding -- you ask, user shares
23
+ - Symbol vocabulary: only these 12 glyphs: ■ ▼ ▶ ▷ |- \- ✓ • ⚠ ⚡ ⬜ ->
24
+ - Error pattern: 3 lines only -- What / Why: reason / Fix: /mos:command
25
+ - Deep context steps framed as valuable, not bureaucratic
26
+ - Skip framing: "You can skip this, but 5 minutes here saves hours later"
27
+ - Natural language first (D-NEW-2): present capabilities as "Tell Larry about..." not "Run /mos:X"
28
+ - MindrianOS is infrastructure for ANY domain -- do NOT assume the user is a founder or building a venture
29
+
30
+ ## Reset Mode
31
+
32
+ Check the user's argument FIRST, before anything else:
33
+
34
+ - If argument is `reset`: Run the reset flow below, then **STOP**. Do NOT proceed with any walkthrough steps.
35
+
36
+ ### Reset Flow
37
+
38
+ Delete the onboarding marker files so the user gets a fresh onboarding experience on next session:
39
+
40
+ ```bash
41
+ rm -f ~/.mindrian-onboarded ~/.mindrian-last-version
42
+ ```
43
+
44
+ After deleting, tell the user:
45
+
46
+ > "Onboarding markers cleared. Close Claude Code and reopen it -- you'll see the banner and onboarding sequence fresh."
47
+
48
+ **STOP HERE.** Do not proceed to any other steps. The reset is complete.
49
+
50
+ ## Mode Detection
51
+
52
+ Check the user's argument:
53
+
54
+ - If argument is `reset`: Already handled above -- STOP.
55
+ - If argument is `whats-new`: Jump directly to **Step 5 (What's New)** only. After showing changelog, offer: "Want me to run the full walkthrough? Or just drop to the prompt." Then stop.
56
+ - If no argument: Run the full walkthrough from **Step 0** through **Step 6**.
57
+
58
+ ## The De Stijl Banner (Step 0)
59
+
60
+ The De Stijl banner has already been shown by session-start before this command runs. Proceed directly to Step 1.
61
+
62
+ If this command was triggered manually (not from session-start), show the banner first:
63
+ ```bash
64
+ bash "${CLAUDE_PLUGIN_ROOT}/scripts/banner"
65
+ ```
66
+
67
+ Then proceed to Step 1.
68
+
69
+ ## Step 1: The Three Ways to Work
70
+
71
+ > Very simply -- if you're here, you're probably stuck on a decision you can't quite name. That's the feeling MindrianOS is built for. Let's find the shape of it together.
72
+
73
+ (D-07 ONBOARD_OPENING_FRAMING per Phase 115. Source-of-truth: `lib/copy/115-spec-strings.cjs` ONBOARD_OPENING_FRAMING. Per D-07: voice rules + symbol vocabulary stay locked; only the OPENING framing changes. Emotion leads, methodology follows.)
74
+
75
+ Very simply -- there are three ways to use MindrianOS. Pick the one that fits how you think.
76
+
77
+ Present the three modes with their JTBD statements. These MUST match the session-start mode menu exactly:
78
+
79
+ ```
80
+ ======
81
+ How do you want to work today?
82
+
83
+ [1] Just Talk
84
+ "Help me think through something -- no strings attached"
85
+ Larry explores with you. Nothing saved. Pure thinking partner.
86
+
87
+ [2] Explore + Capture
88
+ "Help me explore -- and catch the structure as it emerges"
89
+ Larry talks AND detects patterns, personas, opportunities.
90
+ When you are ready, everything seeds a Data Room.
91
+
92
+ [3] Build a Room
93
+ "I know what I am building -- let me set up the room first"
94
+ Jump straight to /mos:new-project and start working.
95
+
96
+ Type 1, 2, or 3 -- or just start talking (defaults to Mode 1).
97
+ ======
98
+ ```
99
+
100
+ After showing the menu, walk through each mode with persona-specific examples so the user sees themselves in one of them.
101
+
102
+ ### Mode 1: Just Talk
103
+
104
+ > Here's the thing -- sometimes you do not need a project. You need a thinking partner. Mode 1 is exactly that. Nothing gets saved. Nothing gets filed. You talk, Larry listens and pushes back. When the conversation ends, it ends.
105
+
106
+ **Great for:** early-stage ideas, sensemaking, testing a hypothesis aloud, working through a problem before committing to structure.
107
+
108
+ **Examples by persona:**
109
+
110
+ - **Technology Transfer Officer (TTO):** "We have a new polymer that self-heals at room temperature. Help me think about where this could apply beyond aerospace."
111
+ - **Researcher:** "My lab data shows a correlation between gut microbiome diversity and treatment response. Help me think about what that means for study design."
112
+ - **Business:** "Customers keep complaining about supply chain delays in the last mile. Help me understand what is actually going on."
113
+
114
+ > You do not pick a framework. You do not fill out a canvas. You just think out loud, and Larry thinks with you.
115
+
116
+ ### Mode 2: Explore + Capture
117
+
118
+ > One thing I've learned -- the best ideas show up mid-conversation, not mid-framework. Mode 2 catches them. You talk naturally, and Larry detects patterns as they emerge. When something looks like a real opportunity, it gets banked automatically.
119
+
120
+ **Great for:** turning loose thinking into structured knowledge, exploring a domain without knowing the endpoint, building toward a Data Room without the upfront commitment.
121
+
122
+ **How it works:**
123
+ 1. You start talking about your work
124
+ 2. Larry detects your persona (TTO, Researcher, or Business) within 2-3 exchanges
125
+ 3. Larry follows a Brain framework chain matched to how you think
126
+ 4. When a well-defined problem and a mirror solution emerge from YOUR words, Larry banks it as an opportunity
127
+ 5. When you are ready, those banked opportunities seed a Data Room with pre-loaded sections -- not empty folders
128
+
129
+ **Examples by persona:**
130
+
131
+ - **TTO:** "Our lab patented a biosensor that detects contamination in 30 seconds. The food safety people are interested, but so are the water treatment folks. Let me explore both." -> Larry banks opportunities in both domains as they crystallize, tracking which has stronger evidence.
132
+ - **Researcher:** "There is a gap in affordable point-of-care diagnostics for rural clinics. The technology exists but nobody has packaged it for low-resource settings." -> Larry captures the problem-solution pair and starts mapping the validation path.
133
+ - **Business:** "The renewable energy market in Southeast Asia is growing but the financing models do not work for small installations." -> Larry identifies the market-model gap and banks the opportunity with a confidence score.
134
+
135
+ > The difference from Mode 1: Mode 2 remembers. Your thinking becomes structure. When you say "OK, build the room," it already has something to put in it.
136
+
137
+ ### Mode 3: Build a Room
138
+
139
+ > Very simply -- you already know what you are building. Skip the conversation and set up the Data Room.
140
+
141
+ **Great for:** defined projects that need a workspace now, follow-up projects where you already have clarity, teams that need a shared structure from day one.
142
+
143
+ **Example:** "Building a medtech startup around our patented continuous glucose monitor. The room needs problem-definition, regulatory-pathway, market-analysis, and team-execution sections. Set it up."
144
+
145
+ > This routes directly to /mos:new-project. Larry asks what you are building, sets up the room structure, and you start working immediately.
146
+
147
+ After presenting all three modes, say:
148
+
149
+ > That is it. Three ways in. You can always switch -- start in Mode 1 and upgrade to Mode 2 when structure starts to emerge. Or go straight to Mode 3 if you already have the picture. There is no wrong door.
150
+
151
+ ## Step 2: The Opportunity Bank
152
+
153
+ > Here's the thing -- every framework Larry runs produces opportunities. Every conversation in Mode 2 captures them. Every room analysis surfaces them. They all flow into the same place: your Opportunity Bank.
154
+
155
+ Explain the Opportunity Bank as the universal output of all MindrianOS interactions:
156
+
157
+ > Think of it as your idea ledger. Every time Larry spots a well-defined problem paired with a plausible solution, it gets banked with full context.
158
+
159
+ Show a concrete example:
160
+
161
+ ```
162
+ -- Banked Opportunity --
163
+
164
+ problem: "No affordable point-of-care diagnostics for rural clinics"
165
+ mirror_solution: "Adapt our lab-on-chip technology for low-resource settings"
166
+ domain: "medtech"
167
+ evidence: "WHO 2024 report on diagnostic gaps + 3 lab publications"
168
+ source: "Conversation with Larry (Mode 2)"
169
+ knight_position: uncertainty
170
+ confidence: 0.5
171
+ ```
172
+
173
+ Explain the fields naturally:
174
+
175
+ > The `problem` and `mirror_solution` are extracted from YOUR words -- Larry does not invent these. The `domain` maps to your Data Room sections. The `evidence` tracks what supports this opportunity.
176
+
177
+ > The last two fields are the important ones. `knight_position` tells you whether this is a **risk** (you understand the variables, you just need to manage them) or an **uncertainty** (you do not even know the variables yet). `confidence` tells you how solid the evidence is -- 0.5 means half-baked, 0.9 means well-validated.
178
+
179
+ > The bank tracks what you KNOW versus what you DON'T. Run /mos:opportunities to see your bank. It grows automatically as you work.
180
+
181
+ ## Step 3: Why This Exists -- The Knight Framing
182
+
183
+ Present the Knight distinction practically, not academically:
184
+
185
+ > Very simply -- you have an idea. Some parts you are sure about. You know the technology works, or you know the market exists, or you know there is a regulatory pathway. Those are **risks**. You can measure them. You can plan around them. Manageable.
186
+
187
+ > Some parts you are NOT sure about. Will customers pay? Is the timing right? Can you find the right team? Can you get funding? Those are **uncertainties**. You can not even put odds on them yet because you do not know enough.
188
+
189
+ > MindrianOS exists to convert uncertainty into manageable risk through structured exploration. The Data Room IS the conversion artifact. Empty sections are remaining uncertainty. Filled sections are converted risk.
190
+
191
+ Tie this to each persona:
192
+
193
+ > **A TTO officer** knows the technology works -- that is a risk, quantifiable and testable. But the market? The business model? The licensing structure? Those are uncertainties. Mode 2 with Larry surfaces the market gaps. The methodology frameworks stress-test the business model. Section by section, uncertainty converts to risk.
194
+
195
+ > **A researcher** knows the problem is real -- the data says so. That is a risk. But who pays for the solution? What is the regulatory path? Who are the competitors? Those are uncertainties. The Data Room tracks each one. When a section fills up with validated evidence, that uncertainty just became a risk you can manage.
196
+
197
+ > **A business person** sees the opportunity -- the market signal is clear. That is a risk. But can the technology deliver? At what cost? On what timeline? Those are uncertainties. Cross-domain frameworks (like /mos:explore-domains) map what is known versus what is assumed. Every assumption you validate converts one more uncertainty to risk.
198
+
199
+ > That is the whole game. Not "build a business plan." Not "fill out a canvas." Convert what you do not know into what you can manage. The bank keeps score.
200
+
201
+ ## Step 4: Who Are You? (Deep Context Building)
202
+
203
+ **Ask-Tell Dial: 0.15 (ask-heavy)**
204
+
205
+ Open with a signature opener:
206
+
207
+ > Here's the thing -- everything Larry does gets sharper with context about who you are. Five minutes here saves hours later. But you can skip this anytime.
208
+
209
+ Present three approaches:
210
+
211
+ > **How do you want to do this?**
212
+ >
213
+ > **A) Quick conversation** -- a few questions, you answer. Takes about 3 minutes.
214
+ >
215
+ > **B) Paste something** -- LinkedIn bio, CV summary, a paragraph about yourself. One shot.
216
+ >
217
+ > **C) Let me look you up** -- Share your name and a link. Optional -- you see everything before it gets used.
218
+ >
219
+ > **Or skip this entirely** -- Larry will pick things up as you work together.
220
+
221
+ ### Approach A: Conversational Q&A
222
+
223
+ Ask these questions ONE AT A TIME. Wait for the user's response before asking the next question. Do not list all questions at once.
224
+
225
+ 1. "What is your role? What do you do day to day?"
226
+ 2. "What are you working on right now? What is the project or problem?"
227
+ 3. "What domain or industry? Any specialization within that?"
228
+ 4. "How technical are you? This helps calibrate how Larry explains things."
229
+ 5. "What is your goal with MindrianOS? What outcome would make this worth your time?"
230
+
231
+ ### Approach B: Document Paste
232
+
233
+ Say: "Paste your LinkedIn bio, CV summary, or a paragraph about yourself below. Larry will extract everything needed."
234
+
235
+ After receiving the paste, extract: name, role, domain, subdomain, expertise areas, current focus, technical level. Present what you extracted and ask: "Did that come through right? Anything to add or correct?"
236
+
237
+ ### Approach C: Web Research (consent required)
238
+
239
+ Say: "Share your name and a link (LinkedIn, personal site, etc). Larry will do a quick lookup and show you what comes back before using any of it."
240
+
241
+ Use the WebFetch tool to gather public information. Present findings to the user. Wait for explicit confirmation before proceeding: "Here is what came back. Should Larry use this to build your profile?"
242
+
243
+ ### Skip Path
244
+
245
+ If the user skips Step 4: acknowledge without guilt-tripping. Say: "No problem. Larry will pick things up as you work together." Then jump directly to the Tailored Tool Tour (Step 4b below).
246
+
247
+ ### Step 4b: Domain Intelligence + Tailored Tour
248
+
249
+ **This step auto-triggers after Step 4 context gathering completes. No user prompt needed.**
250
+
251
+ Based on what you learned, provide immediate value:
252
+
253
+ > Based on your work in [domain], here is what Larry already knows about your space...
254
+
255
+ Then:
256
+ - Map the user's domain to 2-3 relevant methodology frameworks from the 26 available commands
257
+ - Identify which room sections would be most relevant for their work
258
+ - Surface one or two cross-domain connections that might surprise them
259
+
260
+ Keep this brief -- 4-6 sentences max. This is a taste of Larry's value, not a lecture.
261
+
262
+ Then present a personalized workflow based on everything learned. Frame capabilities as natural language actions, not slash commands:
263
+
264
+ > Based on what you shared -- you are a [role] working on [domain], trying to [goal] -- here is exactly how Larry would approach it:
265
+
266
+ Present 3-5 capabilities as things the user can SAY:
267
+
268
+ - "Tell me about a meeting you had" *(that is /mos:file-meeting behind the scenes)*
269
+ - "Help me think through [their specific problem]" *(that triggers the methodology engine)*
270
+ - "Show me where my thinking is weakest" *(that is /mos:diagnose)*
271
+ - "Build me a presentation of everything so far" *(that is /mos:export presentation)*
272
+ - "Grade my work honestly" *(that is /mos:grade)*
273
+
274
+ Tailor these to the user's actual domain and stated goals. The command names in parentheses are footnotes -- the natural language is primary.
275
+
276
+ **If Step 4 was skipped (no context):**
277
+
278
+ Fall back to 7 intent options:
279
+
280
+ > Very simply -- what brings you here today?
281
+ >
282
+ > 1. Exploring an idea or technology
283
+ > 2. Organizing research or analysis
284
+ > 3. Filing and analyzing meetings
285
+ > 4. Building a case for stakeholders
286
+ > 5. Managing a complex project
287
+ > 6. Just show me around
288
+ > 7. Skip -- I will figure it out
289
+
290
+ Each option maps to a natural language action sequence (NOT a command list):
291
+
292
+ | Option | Suggested natural language actions |
293
+ |--------|-----------------------------------|
294
+ | 1 | "Tell me about your idea" -> "Ask me to explore the domain" -> "Ask me to grade your progress" |
295
+ | 2 | "Paste a document or research" -> "Ask me to find patterns" -> "Ask me to build a thesis" |
296
+ | 3 | "Tell me about a meeting you had" -> "Ask me to find connections between meetings" -> "Ask me to build a presentation" |
297
+ | 4 | "Tell me who your stakeholders are" -> "Ask me to structure your argument" -> "Ask me to generate a report" |
298
+ | 5 | "Describe your project" -> "Ask me to diagnose gaps" -> "Ask me what to work on next" |
299
+ | 6 | Run a brief tour of the room structure and capabilities |
300
+ | 7 | Skip to Step 6 |
301
+
302
+ Present the selected workflow sequence. Then proceed to Step 6.
303
+
304
+ ## Step 5: What's New (Update Flow or /mos:onboard whats-new)
305
+
306
+ **This step only runs when:**
307
+ - The user typed `/mos:onboard whats-new`, OR
308
+ - Session-start detected an UPDATE (stale marker)
309
+
310
+ ### Reading the changelog
311
+
312
+ Use the Read tool to read `CHANGELOG.md` from the plugin root:
313
+
314
+ ```bash
315
+ # Get the plugin root path
316
+ echo "${CLAUDE_PLUGIN_ROOT}"
317
+ ```
318
+
319
+ Then read the file: `${CLAUDE_PLUGIN_ROOT}/CHANGELOG.md`
320
+
321
+ ### Parsing logic (D-NEW-1: version-aware onboarding registry)
322
+
323
+ 1. Find the current version heading (e.g., `## [1.5.1] - 2026-03-31`)
324
+ 2. Check for structured `onboarding: true` and `onboard_steps:` entries immediately below the heading
325
+ 3. If `onboard_steps:` found: use those as the primary content -- they are pre-written capability descriptions
326
+ 4. If NOT found: fall back to extracting `### Added` items and reframing them as capabilities
327
+
328
+ ### Presentation
329
+
330
+ Frame as capabilities, not technical changes:
331
+
332
+ > Since you last checked in, here is what Larry learned to do:
333
+
334
+ Then list each capability with a brief description. Use the `->` glyph for inline suggestions.
335
+
336
+ After listing, offer:
337
+
338
+ > Want to try any of these? Or want me to run the full walkthrough?
339
+
340
+ If the user came from `/mos:onboard whats-new`: offer the full walkthrough or drop to prompt, then STOP.
341
+
342
+ ## Step 6: Wrap + Suggested First Action
343
+
344
+ Based on everything gathered across Steps 1-5, suggest a specific first action:
345
+
346
+ > That is the foundation. Based on what you need, the best starting point is [specific natural language action]. Want to launch that now?
347
+
348
+ Present three options:
349
+ 1. Start the suggested action (describe it in natural language)
350
+ 2. Show the full command reference (`/mos:help`)
351
+ 3. Drop to the prompt -- just start talking
352
+
353
+ Only in this final step, show a compact command reference card:
354
+
355
+ ```
356
+ Quick reference (you can always just talk to Larry instead):
357
+ /mos:help ........... See all commands
358
+ /mos:status ......... Room state
359
+ /mos:new-project .... Start a project
360
+ /mos:file-meeting ... File a transcript
361
+ /mos:grade .......... Honest assessment
362
+ /mos:opportunities .. Your opportunity bank
363
+ /mos:update ......... Check for updates
364
+ ```
365
+
366
+ ## USER.md Generation
367
+
368
+ **After Steps 4/4b (or whatever subset was completed), generate USER.md.**
369
+
370
+ If all context-building steps were completely skipped, do NOT generate USER.md -- there is nothing to write.
371
+
372
+ ### Location logic
373
+
374
+ Check if a `room/` directory exists in the current workspace:
375
+ - If `room/` exists: write to `room/USER.md`
376
+ - If no `room/`: write to `~/.mindrian-user.md`
377
+
378
+ ### USER.md structure
379
+
380
+ Use the Write tool to create USER.md with this exact structure. Use `[not provided]` for fields the user did not supply:
381
+
382
+ ```markdown
383
+ # User Profile
384
+
385
+ **Name:** [name]
386
+ **Role:** [role]
387
+ **Domain:** [domain]
388
+ **Subdomain:** [subdomain specialization]
389
+ **Technical Level:** [beginner/intermediate/advanced]
390
+ **Current Focus:** [what they're working on]
391
+ **Goal with MindrianOS:** [stated objective]
392
+ **Expertise Areas:** [list]
393
+ **Context Source:** [Q&A / document / research]
394
+ **Created:** [YYYY-MM-DD]
395
+
396
+ ## Incentives
397
+
398
+ **Success Definition:** [from context gathering]
399
+ **Stakeholders:** [from context gathering]
400
+ **Timeline:** [from context gathering]
401
+ **Prior Attempts:** [from context gathering]
402
+ ```
403
+
404
+ ## Marker Writing (CRITICAL -- must happen in ALL paths)
405
+
406
+ After completing the walkthrough OR after any skip at any point, write the onboarding marker. This MUST happen whether the user completed all steps, skipped everything at Step 0, or anything in between.
407
+
408
+ Run this command:
409
+ ```bash
410
+ bash "${CLAUDE_PLUGIN_ROOT}/scripts/check-onboard" --write
411
+ ```
412
+
413
+ This creates `~/.mindrian-onboarded` with the current plugin version and date, preventing the walkthrough from auto-triggering on every session.
414
+
415
+ ## Error Handling
416
+
417
+ Follow the 3-line error pattern (D-NEW-7):
418
+
419
+ ```
420
+ ✗ [What failed]
421
+ Why: [specific reason]
422
+ Fix: [one command to resolve]
423
+ ```
424
+
425
+ Examples:
426
+ ```
427
+ ✗ Could not write USER.md
428
+ Why: No write permission to room/ directory
429
+ Fix: /mos:new-project
430
+
431
+ ✗ Could not read CHANGELOG.md
432
+ Why: Plugin root not found
433
+ Fix: Reinstall MindrianOS plugin
434
+ ```
@@ -0,0 +1,149 @@
1
+ ---
2
+ name: operator
3
+ description: Show or manually set the conversation operator (JUST_TALK / EXPLORE_CAPTURE / BUILD_ROOM / METHODOLOGY / DECISION_GATE) -- the per-room state machine that governs how Larry renders responses
4
+ argument-hint: [history] [set <op>] [reset] [--json]
5
+ body_shape: E (Action Report)
6
+ body_shape_detail: current state + last 5 history (default), full history (history subcommand), Shape F.1 picker (set subcommand), Shape F.4 confirmation (reset subcommand)
7
+ serves_jtbd: ["explore"]
8
+ allowed-tools:
9
+ - Bash
10
+ - Read
11
+ disable-model-invocation: false
12
+ ---
13
+
14
+ # /mos:operator
15
+
16
+ Inspect or manually set the conversation operator for the active room. The operator is the state primitive that governs Larry's rendering: JUST_TALK suppresses 4-zone output, BUILD_ROOM emits full Shape E, METHODOLOGY suppresses spontaneous Zone 4 footers, DECISION_GATE locks Shape F.x.
17
+
18
+ The operator state file lives at `<roomDir>/.mindrian/conversation-operator.json` (per-room, never global). Hooks (Phase 99-04) keep it fresh automatically as you type, invoke tools, and end sessions. Most users never need this command directly -- the heuristic classifier (Phase 99-02) handles transitions silently. Use `/mos:operator` when:
19
+
20
+ - The poller (Phase 95.1 class F) reports the operator looks wrong
21
+ - You want to inspect what Larry currently believes the operator is
22
+ - You want to manually override (e.g., force JUST_TALK to stop filing for the rest of the session)
23
+ - You are debugging the state machine
24
+
25
+ ## Step 1: Parse the user's intent
26
+
27
+ Look at the invocation:
28
+
29
+ - `/mos:operator` (no args) -> show current state + last 5 history entries (Shape E)
30
+ - `/mos:operator history` -> show full history up to 50 entries (Shape E)
31
+ - `/mos:operator set <op>` -> render Shape F.1 picker; if the user selected an operator inline (e.g., `set BUILD_ROOM`), perform the transition immediately and re-render Shape E showing the new state
32
+ - `/mos:operator reset` -> render Shape F.4 confirmation; on user confirmation, transition to JUST_TALK
33
+ - `/mos:operator --json` -> machine-readable output (for hooks / regression tests)
34
+
35
+ Combine `--json` with any subcommand: `/mos:operator history --json`.
36
+
37
+ ## Step 2: Execute
38
+
39
+ Run via Bash:
40
+
41
+ ```
42
+ node "${CLAUDE_PLUGIN_ROOT}/scripts/operator-command.cjs" $@
43
+ ```
44
+
45
+ The script does the work:
46
+
47
+ 1. Resolves the active room from `~/MindrianRooms/.rooms/registry.json`
48
+ 2. Loads `<roomDir>/.mindrian/conversation-operator.json` via `lib/conversation/operator.cjs.getCurrent`
49
+ 3. Branches on subcommand: render Shape E, render Shape F.1, render Shape F.4, or perform a transition
50
+ 4. For `set` subcommand: validates the requested operator against the 7 transition rules; rejects invalid transitions with a 3-line stderr per Canon Part 3 Rule 2 and exits non-zero
51
+
52
+ ## Step 3: Render the output
53
+
54
+ The script outputs a 4-zone Shape E (Action Report) per `skills/ui-system/SKILL.md`. Display the script's stdout directly. Do not re-format. Do not strip ANSI color codes.
55
+
56
+ ## Example output (default -- show current state)
57
+
58
+ ```
59
+ -- mindrianos -- operator -- BUILD_ROOM --
60
+
61
+ ■ Current BUILD_ROOM
62
+ entered 2026-05-01T10:42:00Z (3m ago)
63
+ previous EXPLORE_CAPTURE
64
+ context active_section=research, methodology=null
65
+
66
+ ■ Last 5 history
67
+ ├─ JUST_TALK 2026-05-01T10:30:00Z trigger=session_start
68
+ ├─ EXPLORE_CAPTURE 2026-05-01T10:35:00Z trigger=user_message
69
+ └─ BUILD_ROOM 2026-05-01T10:42:00Z trigger=mos_command
70
+
71
+ Summary: total transitions=3, history_used=3/50
72
+
73
+ ▶ /mos:operator history # full history
74
+ ▷ /mos:operator set <op> # manual transition
75
+ ▷ /mos:operator reset # return to JUST_TALK
76
+ ```
77
+
78
+ ## Example output (history subcommand)
79
+
80
+ ```
81
+ -- mindrianos -- operator -- BUILD_ROOM --
82
+
83
+ ■ Full history (3/50 entries)
84
+ ├─ JUST_TALK 2026-05-01T10:30:00Z trigger=session_start from=null
85
+ ├─ EXPLORE_CAPTURE 2026-05-01T10:35:00Z trigger=user_message from=JUST_TALK
86
+ └─ BUILD_ROOM 2026-05-01T10:42:00Z trigger=mos_command from=EXPLORE_CAPTURE
87
+
88
+ Summary: total transitions=3, history_used=3/50, oldest=2026-05-01T10:30:00Z
89
+
90
+ ▶ /mos:operator # current state
91
+ ▷ /mos:operator set <op> # manual transition
92
+ ▷ /mos:operator reset # return to JUST_TALK
93
+ ```
94
+
95
+ ## Example output (set subcommand -- Shape F.1 picker)
96
+
97
+ ```
98
+ -- mindrianos -- operator -- set --
99
+
100
+ ■ Manual operator transition
101
+ current: BUILD_ROOM
102
+
103
+ [F.1 Next Move]
104
+ ▶ JUST_TALK
105
+ ▷ EXPLORE_CAPTURE
106
+ ▷ BUILD_ROOM (current -- selecting this is a no-op)
107
+ ▷ METHODOLOGY
108
+ ▷ DECISION_GATE
109
+ ▷ Free-Text
110
+
111
+ ▶ /mos:operator # cancel and re-show state
112
+ ▷ /mos:operator history # see full history first
113
+ ```
114
+
115
+ ## Example output (reset subcommand -- Shape F.4 confirm)
116
+
117
+ ```
118
+ -- mindrianos -- operator -- reset --
119
+
120
+ ■ Reset operator to JUST_TALK
121
+ current: BUILD_ROOM
122
+ this discards your active filing context (active_section=research)
123
+
124
+ [F.4 Confirm Reset]
125
+ ▶ Confirm reset to JUST_TALK
126
+ ▷ Cancel
127
+
128
+ ▶ /mos:operator # show current state
129
+ ▷ /mos:operator history # see full history
130
+ ```
131
+
132
+ ## Note on Shape F.1 + F.4 deferral
133
+
134
+ Per Phase 95.1-04 D-19 deferral pattern, the F.1 picker and F.4 confirmation render as STRUCTURAL marker blocks in stdout. Larry handles conversational selection: when the user types "set to METHODOLOGY" or "yes, reset" in natural language, Larry interprets and re-invokes the command with the explicit verb (e.g., `/mos:operator set METHODOLOGY`).
135
+
136
+ Phase 88.2 (`uiux-selector-block`) will replace the marker block with the canonical AskUserQuestion primitive. See `.planning/phases/99-conversation-operator-state-machine/operator-shape-f1-deferred.md` for the deferral note + re-trigger condition.
137
+
138
+ ## Voice rules
139
+
140
+ When Larry surfaces the output conversationally:
141
+
142
+ - "You're currently in BUILD_ROOM. Filing is live; every response ends with the 4-zone footer."
143
+ - "Want to override? `/mos:operator set <op>` lets you pick from the five canonical operators."
144
+ - "If the operator looks wrong, `/mos:doctor --ui-compliance` will tell you whether the renderer is honoring it correctly."
145
+
146
+ NEVER:
147
+ - Apologize for the operator state being what it is. The state is the truth.
148
+ - Suggest the user "should" be in a particular operator. The user picks.
149
+ - Re-show the example output blocks above when speaking conversationally; just describe what they would see.