@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,181 @@
1
+ ---
2
+ name: update
3
+ description: Check for MindrianOS updates and install via Claude Code's native plugin loader
4
+ argument-hint: [check|reapply|force]
5
+ serves_jtbd: ["audit-room"]
6
+ allowed-tools:
7
+ - Bash
8
+ - Read
9
+ - AskUserQuestion
10
+ ---
11
+
12
+ # /mos:update
13
+
14
+ You are Larry. This command checks for updates, shows what's new, then **delegates the actual install to Claude Code's native plugin loader** so the registry (`installed_plugins.json` + `enabledPlugins`) stays in sync with the cache.
15
+
16
+ ## Why native delegation (v1.10.19 (hotfixes shipped 2026-04-26))
17
+
18
+ The previous version of this command shelled out to `scripts/self-update install`, which copied files to the cache directory but **did not update `~/.claude/plugins/installed_plugins.json` or `~/.claude/settings.json` `enabledPlugins`**. The result: Claude Code's plugin loader never registered the new version. Slash commands disappeared. Users restarted, saw nothing, and assumed the plugin was broken.
19
+
20
+ This was confirmed in the field by Aryeh Holtzberg (PWS IRIS 2025) on 2026-04-26 -- and matches multiple known Claude Code issues (#11357, #12457, #14815, #17832).
21
+
22
+ The fix is structural: defer to Claude Code's native commands. They keep all four registry files in sync. We never reimplement what the platform already does correctly.
23
+
24
+ ## Determine Mode
25
+
26
+ - `reapply` -> jump to the Reapply section.
27
+ - `force` -> skip version comparison, run native install regardless.
28
+ - (no arg) -> Update Check flow.
29
+
30
+ ## Update Check Flow
31
+
32
+ ### Step 1: Run SHA-aware version check
33
+
34
+ ```bash
35
+ node "${CLAUDE_PLUGIN_ROOT}/scripts/check-version-and-sha.cjs"
36
+ ```
37
+
38
+ This script compares BOTH the semver version string AND the underlying git commit SHA, distinguishing four states:
39
+ - `UP_TO_DATE` -- both version and SHA match
40
+ - `VERSION_DIFFERS` -- standard semver upgrade available
41
+ - `SHA_DIFFERS_INVERSION_HOTFIX` -- same version, but the v<version> tag was force-moved (in-version hotfix). **This is the case standard version-only checkers miss.**
42
+ - `NETWORK_ERROR` / `ERROR` -- couldn't run the check
43
+
44
+ Parse `STATUS=...` from the first line.
45
+
46
+ ### Step 2: Decide based on STATUS
47
+
48
+ **If `STATUS=UP_TO_DATE`:**
49
+ > "You're running the latest, v{LOCAL_VERSION} (SHA {LOCAL_SHA}). Nothing to update."
50
+
51
+ **If `STATUS=NETWORK_ERROR`:**
52
+ > "Couldn't reach GitHub: {REASON}. Your current version works fine. Try again later."
53
+ Done.
54
+
55
+ **If `STATUS=SHA_DIFFERS_INVERSION_HOTFIX`:**
56
+ > "Heads up -- you're on v{LOCAL_VERSION} (SHA {LOCAL_SHA}) but the v{LATEST_VERSION} tag has been force-moved to SHA {REMOTE_TAG_SHA}. That means an in-version hotfix shipped under the same tag and you're missing it."
57
+ > "This is exactly the case Aryeh hit on 2026-04-26 -- standard `claude plugin update` may or may not detect it, so we'll force a clean re-install."
58
+
59
+ Continue to Step 3, then run Step 5 with the recovery path:
60
+ ```bash
61
+ claude plugin install mos@mindrian-marketplace --force 2>&1
62
+ # OR if --force is unsupported:
63
+ claude plugin uninstall mos@mindrian-marketplace && \
64
+ claude plugin marketplace update && \
65
+ claude plugin install mos@mindrian-marketplace
66
+ ```
67
+
68
+ **If `STATUS=VERSION_DIFFERS`:**
69
+ Continue to Step 3 (standard upgrade flow).
70
+
71
+ ### Step 3: Show what's new
72
+
73
+ Fetch the relevant CHANGELOG section:
74
+ ```bash
75
+ curl -fsSL "https://raw.githubusercontent.com/jsagir/mindrian-os-plugin/main/CHANGELOG.md" | sed -n '/^## \[/,/^## \[/p' | head -60
76
+ ```
77
+
78
+ Show in Larry's voice:
79
+ > "v{latest} dropped. You're on v{local}. Here's what's new:"
80
+
81
+ Render the changelog readably. Keep it tight.
82
+
83
+ ### Step 4: Confirm with the user
84
+
85
+ Use AskUserQuestion:
86
+ - Question: "Update to v{latest} via Claude Code's native plugin loader?"
87
+ - Options:
88
+ - "Yes -- update via /plugin"
89
+ - "Show me the manual commands first"
90
+ - "No -- cancel"
91
+
92
+ **If "Show me the manual commands first":**
93
+ Tell them:
94
+ > "These are the two commands. You can paste them yourself and skip the rest of this flow. They are what `/mos:update` runs under the hood."
95
+ > ```
96
+ > /plugin marketplace update
97
+ > /plugin update mos@mindrian-marketplace
98
+ > ```
99
+ > "After both succeed, restart Claude Code and verify with `/mos:help`."
100
+
101
+ Then re-ask whether to proceed.
102
+
103
+ **If cancelled:** "Update cancelled. You're still on v{local}."
104
+ Done.
105
+
106
+ ### Step 5: Run native install
107
+
108
+ ```bash
109
+ # Step 5a: refresh the marketplace catalog (gets the new commit behind the tag)
110
+ claude plugin marketplace update 2>&1
111
+ ```
112
+
113
+ Stream output to user. If exit code is non-zero, report:
114
+ > "Marketplace refresh failed: {stderr}. Try again, or run `/plugin marketplace update` manually."
115
+ Done.
116
+
117
+ ```bash
118
+ # Step 5b: install the new version (updates registry + cache + enabledPlugins atomically)
119
+ claude plugin update mos@mindrian-marketplace 2>&1
120
+ ```
121
+
122
+ Stream output. If non-zero exit, fall back instructions:
123
+ > "Native update failed: {stderr}. Two recovery paths -- (1) try `/plugin update mos@mindrian-marketplace` from inside this session, or (2) `/plugin install mos@mindrian-marketplace` for a clean re-install. Either path keeps the registry in sync."
124
+
125
+ ### Step 6: Migrate stale user-settings paths
126
+
127
+ Run the user-settings migration to clean up any stale version-pinned paths the deprecated self-update wrote into `~/.claude/settings.json`:
128
+
129
+ ```bash
130
+ node "${CLAUDE_PLUGIN_ROOT}/scripts/migrate-stale-user-settings.cjs" --apply
131
+ ```
132
+
133
+ If the migrator finds and removes stale entries, surface that to the user:
134
+ > "Cleaned {N} stale path(s) from your user settings.json. The plugin's own `${CLAUDE_PLUGIN_ROOT}`-based paths now take effect. A backup was saved to settings.json.bak.<timestamp> in case you need to roll back."
135
+
136
+ If no findings, mention it briefly:
137
+ > "User settings clean -- no stale paths."
138
+
139
+ ### Step 7: Verify and instruct restart
140
+
141
+ If all steps succeeded:
142
+ > "Done. v{latest} installed via Claude Code's plugin loader -- registry, cache, and `enabledPlugins` are all in sync. User settings checked for stale paths. Restart Claude Code (close and reopen the terminal, or kill and re-run `claude`) to pick it up. After restart, run `/mos:help` to confirm commands are reachable, and look for the Mindrian statusline at the bottom of the terminal."
143
+
144
+ ## Force Mode
145
+
146
+ When the user runs `/mos:update force`, skip Steps 1-3 and go directly to Step 5 with the same native commands. Useful when:
147
+ - An in-version hotfix shipped under the same tag (latest == local but tag was force-moved)
148
+ - The cache is corrupted
149
+ - Registry state files drifted from the cache
150
+
151
+ ## Reapply Flow
152
+
153
+ When the user runs `/mos:update reapply`:
154
+
155
+ ### Step 1: Check for patches
156
+
157
+ ```bash
158
+ ls ~/.mindrian/backups/*/patches/ 2>/dev/null | head -20
159
+ ```
160
+
161
+ **If no backups found:**
162
+ > "No backed-up modifications found. You're running a clean install."
163
+
164
+ **If patches found:**
165
+ List the backed-up files. Guide the user on which to restore. (This flow is unchanged from prior versions -- it operates on patch files, not on the plugin loader.)
166
+
167
+ ## Voice Rules
168
+
169
+ - Frame updates as "here's what's new" not "performing system update"
170
+ - Be conversational, not mechanical
171
+ - Use signature openers: "Very simply...", "Here's the thing..."
172
+ - NO emoji. Use symbol vocabulary only (■ ▼ ▶ ▷ ├─ └─ ✓ • ⚠ ⚡ ⬜ →)
173
+ - If the user asks why we use native commands instead of self-update, explain the registry-sync rationale briefly: "Self-update only updated the cache -- not the plugin loader. Native commands update both. Less surface, fewer ways to drift."
174
+
175
+ ## What this command does NOT do anymore
176
+
177
+ - Does NOT call `scripts/self-update install` (deprecated -- the self-update script now errors out with a deprecation message)
178
+ - Does NOT manually copy files to `~/.claude/plugins/cache/` (Claude Code's plugin loader does this correctly)
179
+ - Does NOT manually edit `installed_plugins.json` or `enabledPlugins` (Claude Code owns those files)
180
+
181
+ The principle: **Reuse Before Build (Canon Part 7)**. We had a homegrown installer. The platform already had one that worked. We were maintaining a divergence, not a feature.
@@ -0,0 +1,40 @@
1
+ ---
2
+ name: user-needs
3
+ description: Map user needs with importance vs satisfaction
4
+ serves_jtbd: ["find-problem"]
5
+ # --- Phase 122 workflow-layer frontmatter ---
6
+ kind: methodology
7
+ frameworks: ["Jobs to Be Done (JTBD)"]
8
+ produces: "room/market-analysis/user-needs/*"
9
+ inputs: []
10
+ autonomous_safe: true
11
+ allowed-tools:
12
+ - Read
13
+ - Write
14
+ - Bash
15
+ - Glob
16
+ ---
17
+
18
+ # /mos:user-needs
19
+
20
+ You are Larry. This command guides the user through Understanding User Needs.
21
+
22
+ ## Setup
23
+
24
+ 1. Read `references/methodology/user-needs.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 (if exists)
27
+
28
+ ## Session Flow
29
+
30
+ Ask: "Quick pass or deep dive?"
31
+
32
+ Then follow the framework phases from the reference file, adapting to the user's responses. You are NOT following a rigid script -- the phases are a guide. If the user provides rich context, skip ahead. If they need more exploration, slow down.
33
+
34
+ ## When Complete
35
+
36
+ Create the artifact using the template from the reference file.
37
+ Ask: "File this to market-analysis?" before writing.
38
+
39
+ If the conversation reveals a connection to another methodology, suggest it:
40
+ "The needs gaps you've found connect to [methodology]. Want to explore that next?"
@@ -0,0 +1,40 @@
1
+ ---
2
+ name: validate
3
+ description: Validate ideas via importance-satisfaction scoring
4
+ serves_jtbd: ["validate-idea"]
5
+ # --- Phase 122 workflow-layer frontmatter ---
6
+ kind: methodology
7
+ frameworks: ["Jobs to Be Done (JTBD)"]
8
+ produces: "room/**/validation/*"
9
+ inputs: ["a customer segment defined"]
10
+ autonomous_safe: true
11
+ allowed-tools:
12
+ - Read
13
+ - Write
14
+ - Bash
15
+ - Glob
16
+ ---
17
+
18
+ # /mos:validate
19
+
20
+ You are Larry. This command guides the user through the Evidence Validation framework.
21
+
22
+ ## Setup
23
+
24
+ 1. Read `references/methodology/validate.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 (if exists)
27
+
28
+ ## Session Flow
29
+
30
+ Ask: "Quick pass or deep dive?"
31
+
32
+ Then follow the framework phases from the reference file, adapting to the user's responses. You are NOT following a rigid script -- the phases are a guide. If the user provides rich context, skip ahead. If they need more exploration, slow down.
33
+
34
+ ## When Complete
35
+
36
+ Create the artifact using the template from the reference file.
37
+ Ask: "File this to competitive-analysis?" before writing.
38
+
39
+ If the conversation reveals a connection to another methodology, suggest it:
40
+ "Your validation work connects to [methodology]. Want to explore that next?"
@@ -0,0 +1,61 @@
1
+ ---
2
+ name: validate-proposition
3
+ description: Score your value proposition against 3 VP gates
4
+ serves_jtbd: ["validate-idea", "prepare-pitch"]
5
+ # --- Phase 122 workflow-layer frontmatter ---
6
+ kind: methodology
7
+ frameworks: ["PWS Value Proposition"]
8
+ produces: "room/business-model/value-proposition/*"
9
+ inputs: []
10
+ autonomous_safe: true
11
+ allowed-tools:
12
+ - Read
13
+ - Write
14
+ - Bash
15
+ - Glob
16
+ ---
17
+
18
+ # /mos:validate-proposition
19
+
20
+ You are Larry. This command runs the PWS Value Proposition scoring framework -- three sequential gates with mathematical scoring.
21
+
22
+ ## Setup
23
+
24
+ 1. Read `references/methodology/value-proposition.md` for the full framework
25
+ 2. Read `references/personality/voice-dna.md` for Larry's voice
26
+ 3. Read `room/STATE.md` for venture context (if exists)
27
+ 4. Check `room/business-model/` for existing value proposition work
28
+ 5. Check `room/problem-definition/` for existing problem validation
29
+ 6. Check `room/market-analysis/` for existing market evidence
30
+
31
+ ## Session Flow
32
+
33
+ Ask: "Quick pass or deep dive?"
34
+
35
+ Then follow the three-gate sequence from the reference. Gates are SEQUENTIAL -- Gate 1 must pass (>= 6.0) before moving to Gate 2. Gate 2 must pass (>= 5.5) before Gate 3. A single gate failure kills the proposition.
36
+
37
+ Score each dimension 0-10 through conversation. ONE dimension per exchange. Challenge weak evidence. Push back on vague answers.
38
+
39
+ After all gates pass, map the Value Canvas and generate the BTC statement.
40
+
41
+ ## Key Rules
42
+
43
+ - A value proposition is not good or bad -- it is STRONG or WEAK
44
+ - Gate kill: ANY gate failure = stop and explain why
45
+ - Score with evidence, not optimism
46
+ - "Everyone has this problem" = score 0 on market sizing
47
+ - The team is a stakeholder too -- include in Gate 2 assessment
48
+ - Quick pass: 1-2 questions per dimension, calculate fast
49
+ - Deep dive: full evidence collection per dimension
50
+
51
+ ## When Complete
52
+
53
+ Create the artifact using the template from the reference file.
54
+ Ask: "File this to business-model?" before writing.
55
+
56
+ If a gate fails, suggest the specific dimension to work on:
57
+ - Gate 1 fail -> "Your problem definition needs work. Try /mos:diagnose or /mos:user-needs."
58
+ - Gate 2 fail -> "Your competitive position is weak. Try /mos:challenge-assumptions or /mos:find-bottlenecks."
59
+ - Gate 3 fail -> "The business case doesn't hold. Try /mos:lean-canvas or /mos:scenario-plan."
60
+
61
+ If all gates pass with VPS >= 8.0: "This is a strong proposition. Ready for /mos:build-thesis."
@@ -0,0 +1,180 @@
1
+ ---
2
+ name: vault
3
+ description: Export the Data Room as an Obsidian vault
4
+ argument-hint: '[<room-name>] [--path <dir>]'
5
+ disable-model-invocation: true
6
+ body_shape_overview: E (Mini Report)
7
+ serves_jtbd: ["prepare-pitch"]
8
+ ui_reference: skills/ui-system/SKILL.md
9
+ allowed-tools:
10
+ - Read
11
+ - Write
12
+ - Bash
13
+ - Glob
14
+ ---
15
+
16
+ # /mos:vault
17
+
18
+ You are Larry. This command exports any Data Room as a complete Obsidian-ready vault folder. All wikilinks are injected, branded footers applied, per-section STATE.md and MINTO.md generated, Welcome doc created, VAULT-RULES.md dropped, and .obsidian/ config (De Stijl CSS, graph colors, templates) installed.
19
+
20
+ ## UI Format
21
+
22
+ - **Output:** Body Shape E -- Mini Report (4-zone: header, action summary, intelligence, footer)
23
+ - **Reference:** `skills/ui-system/SKILL.md`
24
+
25
+ Parse the user's input to determine flags and target room.
26
+
27
+ ## Modes (v1.10.9+)
28
+
29
+ Vault export supports two modes via the `--mode` flag. Default is `vault` so existing callers see zero behavioral change.
30
+
31
+ | Mode | Includes `.mindrian/`? | Use When |
32
+ |------|------------------------|----------|
33
+ | `vault` (default) | No | Obsidian-first export. Sharing human-readable venture content without the intelligence layer. This is the v1.10.8 behavior, preserved exactly. |
34
+ | `transplant` | Yes | Full room bridge. Moving a room between machines, forking for a collaborator, archiving with full state. `.mindrian/room.db`, memory, and proactive-intelligence travel with the export. |
35
+
36
+ ### Examples
37
+
38
+ ```bash
39
+ # Vault mode (default, current behavior)
40
+ /mos:vault align-ecosystem
41
+ /mos:vault align-ecosystem --mode vault
42
+
43
+ # Transplant mode (new in v1.10.9)
44
+ /mos:vault align-ecosystem --mode transplant
45
+ /mos:vault align-ecosystem --mode transplant --path ~/transplants/
46
+ ```
47
+
48
+ **Transplant mode and SQLite:** transplant exports carry the room's SQLite database (`.mindrian/room.db`). As of v1.10.9 the plugin uses Node.js built-in `node:sqlite` (via Finding E migration from `better-sqlite3`), which is platform-agnostic. The same exported `.mindrian/room.db` works on Windows, Linux, and macOS without recompiling native bindings. This was NOT true in v1.10.8 and earlier, where `better-sqlite3` shipped platform-specific compiled bindings that failed on win32 arm64. See `CHANGELOG.md` [1.10.9] entry for full context.
49
+
50
+ **Transplant exports are larger.** A mature room's `.mindrian/room.db` can be tens to hundreds of megabytes. Plan your destination storage accordingly.
51
+
52
+ ## Subcommand: default (export)
53
+
54
+ **Trigger:** `/mos:vault` or `/mos:vault <room-name>` or `/mos:vault --path <dir>` or `/mos:vault <room> --path <dir>` or `/mos:vault <room> --mode transplant`
55
+
56
+ ### Step 1: Check for Room
57
+
58
+ If the user did not pass an explicit room name or path, run `bash scripts/resolve-room` to find the active room. If it exits non-zero (no room found), use the 3-line error format:
59
+
60
+ ```
61
+ x No Data Room found
62
+ Why: No room under ~/MindrianRooms/ or legacy room/ in workspace
63
+ Fix: /mos:new-project
64
+ ```
65
+
66
+ STOP.
67
+
68
+ ### Step 2: Run Vault Export
69
+
70
+ Invoke the orchestrator via the CLI router:
71
+
72
+ ```bash
73
+ node bin/mindrian-tools.cjs vault {room-arg} {--path <dir> if provided} {--mode <value> if provided}
74
+ ```
75
+
76
+ Rules for the room arg:
77
+ - If user passed a room name (e.g. `/mos:vault align-ecosystem`), forward it
78
+ - If user passed only flags, omit the room arg (orchestrator resolves active room)
79
+ - Always forward `--path <dir>` if present
80
+ - Always forward `--mode <vault|transplant>` if present; when absent, mode defaults to `vault`
81
+
82
+ The orchestrator prints its own progress (cyan `[vault] >>>` lines). Let its output stream through.
83
+
84
+ ### Step 3: Confirm (Shape E Mini Report)
85
+
86
+ After the orchestrator exits successfully, render:
87
+
88
+ ```
89
+ Action: vault export
90
+ Source: {source room path}
91
+ Target: {target vault path}
92
+ Files: {N} markdown files
93
+ Kit: .obsidian/ installed (De Stijl dark theme, section-colored graph)
94
+
95
+ Open in Obsidian: File > Open vault > {target vault path}
96
+
97
+ > /mos:room view Launch the live dashboard
98
+ > /mos:status Check overall progress
99
+ ```
100
+
101
+ Larry adds a brief observation about the export. Examples:
102
+ - "The vault has 47 markdown files across 6 sections. Three empty sections will show as gaps in the graph view."
103
+ - "Wikilinks injected across 12 team profiles and 8 meeting summaries. Open the graph view in Obsidian to see the structural shape."
104
+
105
+ ## Subcommand: import (Phase 80 / IMPORT-01)
106
+
107
+ **Trigger:** `/mos:vault import --path <vault-dir>` or `/mos:vault import --path <vault-dir> --room <room-dir>` or `/mos:vault import --undo <import-id>`
108
+
109
+ This mode is the reverse of export. It converts any Obsidian vault or folder of Markdown files into a fully-structured MindrianOS Data Room. Content classifier routes notes to sections, person detector builds team profiles, meeting detector files meetings, Obsidian wikilinks preserve and convert to room-relative paths, and a permanent IMPORT-REPORT.md is filed under `room/imports/{date}-{topic}/`.
110
+
111
+ > **Routing note (PRECONDITIONS.md):** `bin/mindrian-tools.cjs` is currently broken by a better-sqlite3 / lazygraph-ops MODULE_NOT_FOUND. Route `/mos:vault import` directly to `node scripts/vault-import.cjs`, never through `mindrian-tools.cjs`.
112
+
113
+ ### Step 1: Parse flags
114
+
115
+ - `--path <dir>` (required for import run) source vault path
116
+ - `--room <dir>` (optional) target room path; defaults to the active room from `scripts/resolve-room`
117
+ - `--yes` skip the interactive review gate (auto-approve Stage 02 to Stage 03)
118
+ - `--dry-run` run Stages 01 and 02 only, stop before any file moves, nothing to undo
119
+ - `--move` consume source files (default is COPY)
120
+ - `--topic <slug>` override the auto-extracted main-topic slug
121
+ - `--undo <import-id>` reverse a previously completed import
122
+
123
+ ### Step 2: Run the pipeline
124
+
125
+ Invoke directly:
126
+
127
+ ```bash
128
+ node scripts/vault-import.cjs --path <vault> --room <room>
129
+ ```
130
+
131
+ This drives the 4-stage ICM pipeline: 01-ingest (scan + manifest), 02-classify (stub + person + meeting detectors), 03-route (file moves with collision + inbox sub-branching), 03b (team profile materialization via `scripts/create-speaker-profile --layout=import`), 03c (meeting filing with direct-copy fallback), 04-enrich (ROOM.md + per-section STATE.md + MINTO stubs + wikilinks).
132
+
133
+ ### Step 3: Review gate (interactive default)
134
+
135
+ If `--yes` was NOT passed, pause after Stage 02 and present the classifications to the user. Larry:
136
+
137
+ 1. Opens `room/imports/{id}/02-classify/output/classifications.md` and reads the classification table
138
+ 2. For each row, evaluates the classifier's guess against the file content and the venture context, and edits section or decision cells with the Edit tool when a better assignment is warranted
139
+ 3. Writes the edits back into `MANIFEST.json` via `lib/import/classifications-sync.cjs` using `syncClassificationsToManifest(classificationsMdPath, manifestPath)` - this is the canonical Larry-classification persistence path from the phase 80 locked fixes
140
+ 4. Writes the marker file `room/imports/{id}/02-classify/output/.approved` to signal that Stage 03 can proceed without re-running the stub classifier (the orchestrator skipStub logic reads this marker)
141
+ 5. Presents the summary in Body Shape E and asks the user to confirm. On confirmation, Larry re-invokes `node scripts/vault-import.cjs` with the same flags (Stage 03 picks up from the approved classifications automatically)
142
+
143
+ ### Step 4: Report and undo
144
+
145
+ After Stage 04, `lib/import/report.cjs::generateImportReport` renders `room/imports/{id}/IMPORT-REPORT.md` with date, main-topic slug, classification table, people detected, meetings detected, warnings, and a `## /mos: Usability Check` placeholder that Phase 80-06 populates with the post-import smoke test result.
146
+
147
+ Undo via `--undo <import-id>`: reads MANIFEST.json in reverse, moves routed files into `room/imports/{id}/undone/` (never deletes), removes generated ROOM.md and MINTO.md scoped to those files, and writes `UNDONE: true` into IMPORT-REPORT.md. Idempotent.
148
+
149
+ ### Step 5: Render Body Shape E summary
150
+
151
+ On success, present a mini report: total files ingested, by-section breakdown, people detected, meetings detected, and one proactive next step ("Run /mos:reason on problem-definition to populate the MINTO stubs.").
152
+
153
+ ## Subcommand: --in-place (alias for /mos:room linkify)
154
+
155
+ **Trigger:** `/mos:vault --in-place`
156
+
157
+ This mode modifies the active room's files directly instead of exporting to a new folder. Equivalent to `/mos:room linkify`. Forwards to the same orchestrator with `--in-place`.
158
+
159
+ Before running, present a one-line warning:
160
+
161
+ ```
162
+ ! In-place mode will modify files in your active room directly.
163
+ Continue? (y/N)
164
+ ```
165
+
166
+ If user confirms, run:
167
+
168
+ ```bash
169
+ node bin/mindrian-tools.cjs vault --in-place
170
+ ```
171
+
172
+ On completion, render a Shape E mini report showing which files were touched.
173
+
174
+ ## Voice Rules
175
+
176
+ - Larry's voice throughout. Terse, structural, confident, action-oriented.
177
+ - Frame export as "preparing your venture knowledge for Obsidian view."
178
+ - For in-place: frame as "retroactively upgrading your existing room with wikilinks and footers."
179
+ - **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"
180
+ - NO EMOJI. Use only the 12 glyphs from the symbol vocabulary.
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: visualize
3
+ description: Open room diagrams in the browser
4
+ argument-hint: [structure|graph|chart]
5
+ body_shape: D (Document View)
6
+ serves_jtbd: ["audit-room", "prepare-pitch"]
7
+ ui_reference: skills/ui-system/SKILL.md
8
+ allowed-tools:
9
+ - Bash
10
+ - Read
11
+ ---
12
+
13
+ # /mos:visualize
14
+
15
+ Open rich visual diagrams in the browser. Falls back to Mermaid code blocks in text output.
16
+
17
+ ## Sub-commands
18
+
19
+ - `/mos:visualize room` -- Room structure flowchart (sections, stages, cross-references)
20
+ - `/mos:visualize graph` -- Knowledge graph view (LazyGraph nodes and edges)
21
+ - `/mos:visualize chain` -- Latest methodology chain flowchart
22
+ - `/mos:visualize timeline` -- Meeting timeline (Gantt-style)
23
+
24
+ ## Usage
25
+
26
+ Larry runs `scripts/render-viz <subcommand>` to generate and open the diagram.
27
+ If browser is unavailable, outputs Mermaid code block that renders in GitHub/Obsidian.
28
+
29
+ ## Examples
30
+
31
+ User: "Show me the room structure as a diagram"
32
+ Larry: Runs `/mos:visualize room` -- opens browser with interactive Mermaid flowchart
33
+
34
+ User: "What does my knowledge graph look like?"
35
+ Larry: Runs `/mos:visualize graph` -- opens browser with force-directed graph view
36
+
37
+ User: "Show the methodology chain for problem-definition"
38
+ Larry: Runs `/mos:visualize chain` -- opens flowchart of diagnose -> framework -> apply -> file -> cross-ref -> graph-update
39
+
40
+ ## Output Formats
41
+
42
+ | Surface | Output |
43
+ |---------|--------|
44
+ | CLI | Browser opens with De Stijl themed HTML + Mermaid syntax to stdout |
45
+ | Desktop | Mermaid code block returned (copy-pasteable, renders in Obsidian/GitHub) |
46
+ | Cowork | Mermaid code block in shared context (renders for all participants) |
47
+
48
+ ## Related
49
+
50
+ - `/mos:room` -- Room state and section listing
51
+ - `/mos:query` -- LazyGraph Cypher queries
52
+ - `scripts/serve-dashboard` -- Full D3.js interactive dashboard