@mindrian_os/cli 1.13.0-beta.10

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 (590) hide show
  1. package/.claude-plugin/plugin.json +21 -0
  2. package/.mcp.json +9 -0
  3. package/CHANGELOG.md +3329 -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 +93 -0
  16. package/bin/mindrian-mcp-server.cjs +182 -0
  17. package/bin/mindrian-tools.cjs +765 -0
  18. package/commands/act.md +433 -0
  19. package/commands/admin.md +404 -0
  20. package/commands/analyze-needs.md +36 -0
  21. package/commands/analyze-systems.md +33 -0
  22. package/commands/analyze-timing.md +36 -0
  23. package/commands/auto-explore.md +64 -0
  24. package/commands/beautiful-question.md +34 -0
  25. package/commands/brain-derive.md +78 -0
  26. package/commands/build-knowledge.md +36 -0
  27. package/commands/build-thesis.md +40 -0
  28. package/commands/causal.md +228 -0
  29. package/commands/challenge-assumptions.md +33 -0
  30. package/commands/compare-ventures.md +77 -0
  31. package/commands/dashboard.md +110 -0
  32. package/commands/deep-grade.md +76 -0
  33. package/commands/diagnose.md +52 -0
  34. package/commands/diagnostics.md +145 -0
  35. package/commands/doctor.md +151 -0
  36. package/commands/dominant-designs.md +34 -0
  37. package/commands/explain-decision.md +87 -0
  38. package/commands/explore-domains.md +36 -0
  39. package/commands/explore-futures.md +34 -0
  40. package/commands/explore-trends.md +36 -0
  41. package/commands/export.md +103 -0
  42. package/commands/file-meeting.md +724 -0
  43. package/commands/find-analogies.md +182 -0
  44. package/commands/find-bottlenecks.md +56 -0
  45. package/commands/find-connections.md +70 -0
  46. package/commands/funding.md +81 -0
  47. package/commands/grade.md +197 -0
  48. package/commands/graph.md +128 -0
  49. package/commands/hat-briefing.md +119 -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 +34 -0
  56. package/commands/macro-trends.md +34 -0
  57. package/commands/map-unknowns.md +34 -0
  58. package/commands/memory.md +173 -0
  59. package/commands/models.md +175 -0
  60. package/commands/mos-reason.md +279 -0
  61. package/commands/mullins.md +114 -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 +192 -0
  68. package/commands/pipeline.md +106 -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 +190 -0
  75. package/commands/room.md +352 -0
  76. package/commands/rooms.md +598 -0
  77. package/commands/root-cause.md +34 -0
  78. package/commands/rs-experts.md +79 -0
  79. package/commands/rs-explain.md +94 -0
  80. package/commands/rs-fetch.md +88 -0
  81. package/commands/rs-thesis.md +79 -0
  82. package/commands/scenario-plan.md +34 -0
  83. package/commands/scheduled-tasks.md +285 -0
  84. package/commands/score-innovation.md +37 -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 +36 -0
  92. package/commands/suggest-next.md +74 -0
  93. package/commands/systems-thinking.md +34 -0
  94. package/commands/think-hats.md +36 -0
  95. package/commands/update.md +181 -0
  96. package/commands/user-needs.md +34 -0
  97. package/commands/validate.md +34 -0
  98. package/commands/value-proposition.md +55 -0
  99. package/commands/vault.md +180 -0
  100. package/commands/visualize.md +52 -0
  101. package/commands/whitespace.md +501 -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/chat/chat-context.js +185 -0
  111. package/lib/chat/chat-panel.js +721 -0
  112. package/lib/chat/fabric-chat.cjs +288 -0
  113. package/lib/chat/generative-tools.js +219 -0
  114. package/lib/conversation/ROOM.md +39 -0
  115. package/lib/conversation/classifier-rules.json +38 -0
  116. package/lib/conversation/classifier.cjs +264 -0
  117. package/lib/conversation/operator.cjs +287 -0
  118. package/lib/copy/115-spec-strings.cjs +55 -0
  119. package/lib/core/__init__.py +0 -0
  120. package/lib/core/__nav-stub.cjs +14 -0
  121. package/lib/core/__pycache__/__init__.cpython-312.pyc +0 -0
  122. package/lib/core/__pycache__/rs-math.cpython-312.pyc +0 -0
  123. package/lib/core/__pycache__/rs_cache.cpython-312.pyc +0 -0
  124. package/lib/core/__pycache__/rs_corpus.cpython-312.pyc +0 -0
  125. package/lib/core/__pycache__/rs_hybrid.cpython-312.pyc +0 -0
  126. package/lib/core/__pycache__/rs_math.cpython-312.pyc +0 -0
  127. package/lib/core/__pycache__/rs_rooms.cpython-312.pyc +0 -0
  128. package/lib/core/artifact-id.cjs +148 -0
  129. package/lib/core/asset-ops.cjs +151 -0
  130. package/lib/core/auto-commit-throttle.cjs +129 -0
  131. package/lib/core/bearer-token.cjs +199 -0
  132. package/lib/core/brain-client.cjs +865 -0
  133. package/lib/core/brain-derivation-prompts.cjs +326 -0
  134. package/lib/core/brain-derivation-queue.cjs +431 -0
  135. package/lib/core/brain-derivation.cjs +580 -0
  136. package/lib/core/brain-md-schema.cjs +528 -0
  137. package/lib/core/brain-md-staleness.cjs +357 -0
  138. package/lib/core/brain-response-sanitize.cjs +188 -0
  139. package/lib/core/bridge-writer.cjs +477 -0
  140. package/lib/core/chat-context-builder.cjs +253 -0
  141. package/lib/core/cross-room-aggregator.cjs +762 -0
  142. package/lib/core/daily-briefing.cjs +438 -0
  143. package/lib/core/decision-capture.cjs +618 -0
  144. package/lib/core/deep-links.cjs +82 -0
  145. package/lib/core/dispatch-optimizer.cjs +354 -0
  146. package/lib/core/dual-path-detector.cjs +84 -0
  147. package/lib/core/dual-path-detector.test.cjs +334 -0
  148. package/lib/core/exports-log.cjs +79 -0
  149. package/lib/core/feynman-minto-invariants.cjs +605 -0
  150. package/lib/core/folder-memory-async.cjs +338 -0
  151. package/lib/core/folder-memory-shared.cjs +890 -0
  152. package/lib/core/folder-memory.cjs +416 -0
  153. package/lib/core/framework-chain-composer.cjs +411 -0
  154. package/lib/core/frontmatter-schemas.cjs +330 -0
  155. package/lib/core/git-ops.cjs +141 -0
  156. package/lib/core/graph-ops.cjs +258 -0
  157. package/lib/core/hat-persistence.cjs +362 -0
  158. package/lib/core/index.cjs +60 -0
  159. package/lib/core/integration-registry.cjs +232 -0
  160. package/lib/core/intelligence-cascade.cjs +661 -0
  161. package/lib/core/lazygraph-ops.cjs +1057 -0
  162. package/lib/core/lru-cache.cjs +139 -0
  163. package/lib/core/mcp-profiles.cjs +182 -0
  164. package/lib/core/meeting-ops.cjs +54 -0
  165. package/lib/core/memory-ops.cjs +600 -0
  166. package/lib/core/migrations/ROOM.md +33 -0
  167. package/lib/core/migrations/phase-109-nodes-provenance.cjs +339 -0
  168. package/lib/core/migrations/phase-109-session-focus.cjs +99 -0
  169. package/lib/core/model-profiles.cjs +246 -0
  170. package/lib/core/mullins-scaffold.cjs +160 -0
  171. package/lib/core/nav-dial.cjs +316 -0
  172. package/lib/core/navigation/ROOM.md +15 -0
  173. package/lib/core/navigation/explanation.cjs +43 -0
  174. package/lib/core/navigation/focus.cjs +135 -0
  175. package/lib/core/navigation/ingestion.cjs +82 -0
  176. package/lib/core/navigation/insights.cjs +350 -0
  177. package/lib/core/navigation/memory-events.cjs +118 -0
  178. package/lib/core/navigation/neighborhood.cjs +78 -0
  179. package/lib/core/navigation/packet.cjs +182 -0
  180. package/lib/core/navigation/room-home.cjs +127 -0
  181. package/lib/core/navigation/transitions.cjs +82 -0
  182. package/lib/core/navigation-engine-shared.cjs +242 -0
  183. package/lib/core/navigation-engine.cjs +664 -0
  184. package/lib/core/navigation.cjs +60 -0
  185. package/lib/core/nl-graph-queries.cjs +164 -0
  186. package/lib/core/offer-presenter.cjs +406 -0
  187. package/lib/core/opportunity-extractor.cjs +183 -0
  188. package/lib/core/opportunity-ops.cjs +1371 -0
  189. package/lib/core/persona-ops.cjs +537 -0
  190. package/lib/core/persona-taxonomy.cjs +190 -0
  191. package/lib/core/platform-gates.cjs +120 -0
  192. package/lib/core/platform.cjs +257 -0
  193. package/lib/core/proactive-intelligence.cjs +528 -0
  194. package/lib/core/problem-type-router.cjs +315 -0
  195. package/lib/core/reasoning-ops.cjs +639 -0
  196. package/lib/core/reverse-salient-persona-suffix.cjs +115 -0
  197. package/lib/core/room-classifier-strict-mode.cjs +229 -0
  198. package/lib/core/room-db.cjs +127 -0
  199. package/lib/core/room-ops-async.cjs +92 -0
  200. package/lib/core/room-ops-shared.cjs +64 -0
  201. package/lib/core/room-ops-sync.cjs +70 -0
  202. package/lib/core/room-ops.cjs +32 -0
  203. package/lib/core/room-type-detector.cjs +386 -0
  204. package/lib/core/rs-brain-substrate-prompts.cjs +129 -0
  205. package/lib/core/rs-brain-substrate.cjs +570 -0
  206. package/lib/core/rs-breakthrough-scorer.cjs +255 -0
  207. package/lib/core/rs-canon-violations.cjs +82 -0
  208. package/lib/core/rs-chain-feeder.cjs +343 -0
  209. package/lib/core/rs-commercial-assessor.cjs +280 -0
  210. package/lib/core/rs-differential-scorer.cjs +376 -0
  211. package/lib/core/rs-domain-analyzer.cjs +385 -0
  212. package/lib/core/rs-egress-prompts.cjs +113 -0
  213. package/lib/core/rs-egress-telemetry.cjs +225 -0
  214. package/lib/core/rs-egress-violations.cjs +53 -0
  215. package/lib/core/rs-expert-mapper.cjs +467 -0
  216. package/lib/core/rs-fetcher-academic.cjs +697 -0
  217. package/lib/core/rs-fetcher-experts.cjs +314 -0
  218. package/lib/core/rs-fetcher-industry.cjs +731 -0
  219. package/lib/core/rs-fetcher-patents.cjs +564 -0
  220. package/lib/core/rs-innovation-classifier.cjs +194 -0
  221. package/lib/core/rs-mind-map.cjs +656 -0
  222. package/lib/core/rs-neo4j-writer.cjs +388 -0
  223. package/lib/core/rs-nl-to-query.cjs +425 -0
  224. package/lib/core/rs-pinecone-bridge.cjs +303 -0
  225. package/lib/core/rs-preprocessor.cjs +350 -0
  226. package/lib/core/rs-query-matrix.cjs +316 -0
  227. package/lib/core/rs-query-to-text.cjs +438 -0
  228. package/lib/core/rs-sqlite-mirror.cjs +443 -0
  229. package/lib/core/rs-thesis-generator.cjs +188 -0
  230. package/lib/core/rs_cache.py +479 -0
  231. package/lib/core/rs_corpus.py +468 -0
  232. package/lib/core/rs_hybrid.py +586 -0
  233. package/lib/core/rs_math.py +287 -0
  234. package/lib/core/rs_rooms.py +193 -0
  235. package/lib/core/scheduled-scanner.cjs +463 -0
  236. package/lib/core/scratchpad-ops.cjs +201 -0
  237. package/lib/core/section-8-trace-schema.cjs +138 -0
  238. package/lib/core/section-registry.cjs +111 -0
  239. package/lib/core/session-state.cjs +144 -0
  240. package/lib/core/shallow-doc-parser.cjs +174 -0
  241. package/lib/core/shallow-doc-parser.test.cjs +226 -0
  242. package/lib/core/skill-activation-router.cjs +284 -0
  243. package/lib/core/state-ops.cjs +46 -0
  244. package/lib/core/statusline-cache.cjs +266 -0
  245. package/lib/core/token-estimator.cjs +348 -0
  246. package/lib/core/user-archetype.cjs +239 -0
  247. package/lib/core/user-md-ops.cjs +524 -0
  248. package/lib/core/visual-ops.cjs +624 -0
  249. package/lib/core/write-lock.cjs +149 -0
  250. package/lib/graph/canvas-graph.js +467 -0
  251. package/lib/graph/constellation-config.cjs +299 -0
  252. package/lib/graph/graph-detail-panel.js +165 -0
  253. package/lib/hmi/ROOM.md +47 -0
  254. package/lib/hmi/across-session-memory.cjs +604 -0
  255. package/lib/hmi/cross-room-memory.cjs +575 -0
  256. package/lib/hmi/decoy-tier.cjs +395 -0
  257. package/lib/hmi/jtbd-classifier.cjs +219 -0
  258. package/lib/hmi/jtbd-state.cjs +199 -0
  259. package/lib/hmi/jtbd-taxonomy.json +392 -0
  260. package/lib/hmi/selector-dispatcher.cjs +546 -0
  261. package/lib/hmi/selector-telemetry.cjs +263 -0
  262. package/lib/hmi/shape-f0-renderer.cjs +139 -0
  263. package/lib/hmi/shape-f1-fallback.cjs +80 -0
  264. package/lib/hmi/shape-f1-renderer.cjs +138 -0
  265. package/lib/hmi/shape-f2-renderer.cjs +132 -0
  266. package/lib/hmi/shape-f3-renderer.cjs +66 -0
  267. package/lib/hmi/shape-f4-renderer.cjs +72 -0
  268. package/lib/hmi/shape-f5-renderer.cjs +155 -0
  269. package/lib/hmi/shape-f6-plan-review-renderer.cjs +312 -0
  270. package/lib/hmi/shape-f6-renderer.cjs +144 -0
  271. package/lib/hmi/shape-g-renderer.cjs +219 -0
  272. package/lib/hmi/shape-h-renderer.cjs +222 -0
  273. package/lib/hmi/tier-check.cjs +63 -0
  274. package/lib/import/PRECONDITIONS.md +41 -0
  275. package/lib/import/branding.cjs +210 -0
  276. package/lib/import/branding.test.cjs +235 -0
  277. package/lib/import/classifications-sync.cjs +104 -0
  278. package/lib/import/classifications-sync.test.cjs +129 -0
  279. package/lib/import/enricher.cjs +296 -0
  280. package/lib/import/enricher.test.cjs +273 -0
  281. package/lib/import/integration.test.cjs +376 -0
  282. package/lib/import/manifest.cjs +129 -0
  283. package/lib/import/manifest.schema.json +185 -0
  284. package/lib/import/manifest.test.cjs +123 -0
  285. package/lib/import/meeting-detector.cjs +92 -0
  286. package/lib/import/meeting-detector.test.cjs +100 -0
  287. package/lib/import/person-detector.cjs +229 -0
  288. package/lib/import/person-detector.test.cjs +149 -0
  289. package/lib/import/report.cjs +186 -0
  290. package/lib/import/report.test.cjs +186 -0
  291. package/lib/import/room-md-scaffolder.cjs +49 -0
  292. package/lib/import/router.cjs +224 -0
  293. package/lib/import/router.test.cjs +356 -0
  294. package/lib/import/run-all-tests.cjs +36 -0
  295. package/lib/import/smoke-test.cjs +213 -0
  296. package/lib/import/smoke-test.test.cjs +148 -0
  297. package/lib/import/test-fixtures/collision-vault/preexisting-room/STATE.md +8 -0
  298. package/lib/import/test-fixtures/collision-vault/preexisting-room/problem-definition/onboarding/onboarding.md +7 -0
  299. package/lib/import/test-fixtures/collision-vault/source/onboarding.md +5 -0
  300. package/lib/import/test-fixtures/obsidian-vault/.obsidian/workspace.json +1 -0
  301. package/lib/import/test-fixtures/obsidian-vault/notes/with-wikilinks.md +4 -0
  302. package/lib/import/test-fixtures/tiny-vault/notes/2026-01-15-team-sync.md +9 -0
  303. package/lib/import/test-fixtures/tiny-vault/notes/empty.md +3 -0
  304. package/lib/import/test-fixtures/tiny-vault/notes/onboarding.md +5 -0
  305. package/lib/import/test-fixtures/tiny-vault/notes/pricing.md +5 -0
  306. package/lib/import/test-fixtures/tiny-vault/notes/random.md +4 -0
  307. package/lib/import/undo.test.cjs +199 -0
  308. package/lib/import/vault-scanner.cjs +105 -0
  309. package/lib/import/vault-scanner.test.cjs +67 -0
  310. package/lib/mcp/app-html/dashboard.html +316 -0
  311. package/lib/mcp/app-html/graph.html +428 -0
  312. package/lib/mcp/app-html/mindrian-platform.html +1841 -0
  313. package/lib/mcp/app-html/wiki.html +383 -0
  314. package/lib/mcp/app-views.cjs +322 -0
  315. package/lib/mcp/brain-router.cjs +418 -0
  316. package/lib/mcp/capability-registry.cjs +62 -0
  317. package/lib/mcp/larry-context.cjs +46 -0
  318. package/lib/mcp/larry-server-instructions.md +114 -0
  319. package/lib/mcp/pipeline-state.cjs +275 -0
  320. package/lib/mcp/prompts.cjs +302 -0
  321. package/lib/mcp/resources.cjs +227 -0
  322. package/lib/mcp/session-catchup.cjs +327 -0
  323. package/lib/mcp/surface-detect.cjs +75 -0
  324. package/lib/mcp/tool-router.cjs +1034 -0
  325. package/lib/memory/aaak-compress.cjs +403 -0
  326. package/lib/memory/aaak-compress.test.cjs +288 -0
  327. package/lib/memory/async-artifact-auto-commit.test.cjs +223 -0
  328. package/lib/memory/bearer-token.test.cjs +315 -0
  329. package/lib/memory/brain-cache-lru.test.cjs +259 -0
  330. package/lib/memory/brain-client-query-shape.test.cjs +160 -0
  331. package/lib/memory/brain-derivation-graceful-degradation.test.cjs +1019 -0
  332. package/lib/memory/brain-derivation-queue.test.cjs +539 -0
  333. package/lib/memory/brain-derivation.test.cjs +634 -0
  334. package/lib/memory/brain-derive-command.test.cjs +534 -0
  335. package/lib/memory/brain-md-invariants-validator.test.cjs +704 -0
  336. package/lib/memory/brain-md-schema.test.cjs +467 -0
  337. package/lib/memory/brain-md-staleness.test.cjs +525 -0
  338. package/lib/memory/brain-server-resolution.test.cjs +314 -0
  339. package/lib/memory/chat-context.test.cjs +128 -0
  340. package/lib/memory/cross-room-aggregator.test.cjs +909 -0
  341. package/lib/memory/dashboard-server.test.cjs +256 -0
  342. package/lib/memory/debouncer-drain-at-prompt.test.cjs +389 -0
  343. package/lib/memory/decision-capture.test.cjs +632 -0
  344. package/lib/memory/decision-capture.worker.cjs +70 -0
  345. package/lib/memory/explain-decision-command.test.cjs +521 -0
  346. package/lib/memory/explain-decision-footer.test.cjs +316 -0
  347. package/lib/memory/explored-materials-store.cjs +392 -0
  348. package/lib/memory/feynman-minto-guardian.test.cjs +736 -0
  349. package/lib/memory/feynman-minto-invariants.test.cjs +511 -0
  350. package/lib/memory/feynman-prompts-drift.test.cjs +144 -0
  351. package/lib/memory/feynman-prompts.cjs +151 -0
  352. package/lib/memory/feynman-prompts.test.cjs +96 -0
  353. package/lib/memory/folder-memory-quadruple.test.cjs +548 -0
  354. package/lib/memory/folder-memory.test.cjs +503 -0
  355. package/lib/memory/framework-chain-composer.test.cjs +515 -0
  356. package/lib/memory/frontmatter-schema-validator.test.cjs +290 -0
  357. package/lib/memory/heal-command.test.cjs +604 -0
  358. package/lib/memory/index-artifact-transaction.test.cjs +333 -0
  359. package/lib/memory/lazygraph-rs-discoveries-view.test.cjs +122 -0
  360. package/lib/memory/mcp-input-validation.test.cjs +240 -0
  361. package/lib/memory/mcp-server-brain-deps.test.cjs +270 -0
  362. package/lib/memory/mcp-stack-fallback.test.cjs +433 -0
  363. package/lib/memory/minto-debouncer.test.cjs +407 -0
  364. package/lib/memory/minto-debouncer.worker.cjs +46 -0
  365. package/lib/memory/minto-migration-v88.test.cjs +265 -0
  366. package/lib/memory/minto-schema-v88.test.cjs +390 -0
  367. package/lib/memory/mos-status-renderer.test.cjs +631 -0
  368. package/lib/memory/narrative-schema.cjs +376 -0
  369. package/lib/memory/narrative-schema.test.cjs +209 -0
  370. package/lib/memory/nav-dial.test.cjs +414 -0
  371. package/lib/memory/navigation-engine-core.test.cjs +722 -0
  372. package/lib/memory/navigation-invariants.test.cjs +483 -0
  373. package/lib/memory/offer-presenter.test.cjs +554 -0
  374. package/lib/memory/on-stop-snapshot.test.cjs +404 -0
  375. package/lib/memory/pending-tension-store.cjs +373 -0
  376. package/lib/memory/post-compact-reinjection.test.cjs +854 -0
  377. package/lib/memory/post-write-triple.test.cjs +317 -0
  378. package/lib/memory/pre-compact-snapshot.test.cjs +495 -0
  379. package/lib/memory/problem-type-router.test.cjs +656 -0
  380. package/lib/memory/query-efficiency-telemetry.test.cjs +370 -0
  381. package/lib/memory/recompile-room-references.test.cjs +392 -0
  382. package/lib/memory/recompile-room-references.worker.cjs +42 -0
  383. package/lib/memory/record-decision-dual-write.test.cjs +454 -0
  384. package/lib/memory/room-classifier-strict-mode.test.cjs +417 -0
  385. package/lib/memory/room-minto-hook.test.cjs +398 -0
  386. package/lib/memory/rs-discovery-engine.test.cjs +323 -0
  387. package/lib/memory/run-feynman-tests.cjs +1239 -0
  388. package/lib/memory/security-trifecta.test.cjs +312 -0
  389. package/lib/memory/session-start-brain-staleness.test.cjs +363 -0
  390. package/lib/memory/session-start-triple-injection.test.cjs +514 -0
  391. package/lib/memory/sessionstart-banner-formatter.cjs +318 -0
  392. package/lib/memory/sessionstart-minto-banner.test.cjs +373 -0
  393. package/lib/memory/skill-activation-router.test.cjs +419 -0
  394. package/lib/memory/stamp-artifact-write.test.cjs +304 -0
  395. package/lib/memory/statusline-active-room.test.cjs +315 -0
  396. package/lib/memory/statusline-minto-segment.test.cjs +292 -0
  397. package/lib/memory/sync-async-entry-points.test.cjs +204 -0
  398. package/lib/memory/test-bridge-writer-enhanced.cjs +452 -0
  399. package/lib/memory/test-rs-brain-substrate-shape.cjs +529 -0
  400. package/lib/memory/test-rs-brain-substrate.cjs +636 -0
  401. package/lib/memory/test-rs-breakthrough-scorer.cjs +375 -0
  402. package/lib/memory/test-rs-canon-violations.cjs +218 -0
  403. package/lib/memory/test-rs-chain-feeder-core.cjs +344 -0
  404. package/lib/memory/test-rs-chain-feeder-skill-spawn.cjs +297 -0
  405. package/lib/memory/test-rs-commercial-assessor.cjs +385 -0
  406. package/lib/memory/test-rs-differential-scorer.cjs +480 -0
  407. package/lib/memory/test-rs-discovery-engine.cjs +603 -0
  408. package/lib/memory/test-rs-domain-analyzer.cjs +492 -0
  409. package/lib/memory/test-rs-egress-primitives.cjs +420 -0
  410. package/lib/memory/test-rs-expert-mapper.cjs +547 -0
  411. package/lib/memory/test-rs-explain-command.cjs +443 -0
  412. package/lib/memory/test-rs-fetcher-academic.cjs +848 -0
  413. package/lib/memory/test-rs-fetcher-experts.cjs +496 -0
  414. package/lib/memory/test-rs-fetcher-industry.cjs +702 -0
  415. package/lib/memory/test-rs-fetcher-patents.cjs +674 -0
  416. package/lib/memory/test-rs-innovation-classifier.cjs +301 -0
  417. package/lib/memory/test-rs-mind-map.cjs +646 -0
  418. package/lib/memory/test-rs-neo4j-writer.cjs +518 -0
  419. package/lib/memory/test-rs-nl-to-query.cjs +449 -0
  420. package/lib/memory/test-rs-pinecone-bridge.cjs +277 -0
  421. package/lib/memory/test-rs-preprocessor.cjs +433 -0
  422. package/lib/memory/test-rs-query-matrix.cjs +391 -0
  423. package/lib/memory/test-rs-query-to-text.cjs +551 -0
  424. package/lib/memory/test-rs-sqlite-mirror.cjs +649 -0
  425. package/lib/memory/test-rs-thesis-generator.cjs +360 -0
  426. package/lib/memory/triple-context-formatter.cjs +473 -0
  427. package/lib/memory/triple-context-formatter.test.cjs +442 -0
  428. package/lib/memory/user-md-persona.test.cjs +565 -0
  429. package/lib/memory/userpromptsubmit-integration.test.cjs +690 -0
  430. package/lib/memory/validators/README.md +157 -0
  431. package/lib/memory/validators/brain-md-invariants.cjs +475 -0
  432. package/lib/memory/validators/brain-substrate-invariants.cjs +285 -0
  433. package/lib/memory/validators/external-academic-invariants.cjs +249 -0
  434. package/lib/memory/validators/external-industry-invariants.cjs +271 -0
  435. package/lib/memory/validators/external-patents-invariants.cjs +266 -0
  436. package/lib/memory/validators/minto-invariants.cjs +62 -0
  437. package/lib/memory/validators/navigation-invariants.cjs +340 -0
  438. package/lib/memory/validators/queue-health.cjs +95 -0
  439. package/lib/memory/validators/snapshot-integrity.cjs +129 -0
  440. package/lib/memory/validators/stale-lifecycle.cjs +116 -0
  441. package/lib/memory/vault-section-minto-generator-atomic.test.cjs +556 -0
  442. package/lib/memory/vault-section-minto-generator-atomic.worker.cjs +73 -0
  443. package/lib/memory/write-lock-atomic.test.cjs +137 -0
  444. package/lib/memory/write-lock-atomic.worker.cjs +55 -0
  445. package/lib/parity/check-parity.cjs +83 -0
  446. package/lib/presentation/presentation-server.cjs +101 -0
  447. package/lib/presentation/presentation-watcher.cjs +123 -0
  448. package/lib/quickview/hub-server.cjs +719 -0
  449. package/lib/quickview/server.cjs +533 -0
  450. package/lib/render/JTBD-PALETTES.md +145 -0
  451. package/lib/render/ROOM.md +59 -0
  452. package/lib/render/render-v2.cjs +486 -0
  453. package/lib/render/render-v2.test.cjs +267 -0
  454. package/lib/render/render.cjs +65 -0
  455. package/lib/state/ROOM.md +46 -0
  456. package/lib/state/state-md-parser.cjs +215 -0
  457. package/lib/statusline/ROOM.md +38 -0
  458. package/lib/statusline/banner-suppression.cjs +50 -0
  459. package/lib/statusline/surface-detect.cjs +85 -0
  460. package/lib/update-bootstrap.sh.template +145 -0
  461. package/lib/vault/frontmatter-schema.cjs +297 -0
  462. package/lib/vault/room-scanner.cjs +352 -0
  463. package/lib/vault/wikilink-builder.cjs +231 -0
  464. package/lib/vault/wikilink-builder.test.cjs +182 -0
  465. package/lib/wiki/graph-links.cjs +281 -0
  466. package/lib/wiki/page-renderer.cjs +229 -0
  467. package/lib/wiki/wiki-chat.cjs +81 -0
  468. package/lib/wiki/wiki-layout.cjs +1459 -0
  469. package/lib/wiki/wiki-search.cjs +142 -0
  470. package/lib/wiki/wiki-server.cjs +678 -0
  471. package/lib/wiki/wiki-watcher.cjs +105 -0
  472. package/package.json +44 -0
  473. package/pipelines/analogy/01-decompose.md +80 -0
  474. package/pipelines/analogy/02-abstract.md +87 -0
  475. package/pipelines/analogy/03-search.md +135 -0
  476. package/pipelines/analogy/04-transfer.md +101 -0
  477. package/pipelines/analogy/05-validate.md +106 -0
  478. package/pipelines/analogy/CHAIN.md +56 -0
  479. package/pipelines/discovery/01-explore-domains.md +44 -0
  480. package/pipelines/discovery/02-think-hats.md +50 -0
  481. package/pipelines/discovery/03-analyze-needs.md +54 -0
  482. package/pipelines/discovery/CHAIN.md +37 -0
  483. package/pipelines/thesis/01-structure-argument.md +45 -0
  484. package/pipelines/thesis/02-challenge-assumptions.md +48 -0
  485. package/pipelines/thesis/03-build-thesis.md +54 -0
  486. package/pipelines/thesis/CHAIN.md +37 -0
  487. package/references/brain/causal-directives.md +91 -0
  488. package/references/brain/causal-enrichment.cypher +165 -0
  489. package/references/brain/command-triggers-schema.md +226 -0
  490. package/references/brain/graph-architecture.md +317 -0
  491. package/references/brain/query-patterns.md +460 -0
  492. package/references/brain/room-hierarchy-schema.md +218 -0
  493. package/references/brain/schema.md +76 -0
  494. package/references/capability-radar/capabilities-index.md +241 -0
  495. package/references/capability-radar/changelog-cache.md +81 -0
  496. package/references/causal/causal-schema.md +103 -0
  497. package/references/design/email-template-standard.md +155 -0
  498. package/references/design/graph-visualization-standard.md +178 -0
  499. package/references/document-generation.md +179 -0
  500. package/references/hsi/HSI-TOOLS-REFERENCE.md +222 -0
  501. package/references/import-config.md +141 -0
  502. package/references/integrations/detection-patterns.md +101 -0
  503. package/references/meeting/artifact-template.md +377 -0
  504. package/references/meeting/cross-meeting-intelligence.md +216 -0
  505. package/references/meeting/cross-relationship-patterns.md +202 -0
  506. package/references/meeting/live-join-interface.md +244 -0
  507. package/references/meeting/section-mapping.md +192 -0
  508. package/references/meeting/segment-classification.md +258 -0
  509. package/references/meeting/speaker-profile-template.md +219 -0
  510. package/references/meeting/summary-template.md +348 -0
  511. package/references/meeting/transcript-patterns.md +226 -0
  512. package/references/methodology/analyze-needs.md +135 -0
  513. package/references/methodology/analyze-systems.md +121 -0
  514. package/references/methodology/analyze-timing.md +149 -0
  515. package/references/methodology/beautiful-question.md +109 -0
  516. package/references/methodology/build-knowledge.md +161 -0
  517. package/references/methodology/build-thesis.md +237 -0
  518. package/references/methodology/challenge-assumptions.md +127 -0
  519. package/references/methodology/diagnose.md +169 -0
  520. package/references/methodology/dominant-designs.md +212 -0
  521. package/references/methodology/explore-domains.md +147 -0
  522. package/references/methodology/explore-futures.md +163 -0
  523. package/references/methodology/explore-trends.md +129 -0
  524. package/references/methodology/find-bottlenecks.md +131 -0
  525. package/references/methodology/grade.md +211 -0
  526. package/references/methodology/index.md +97 -0
  527. package/references/methodology/leadership.md +200 -0
  528. package/references/methodology/lean-canvas.md +116 -0
  529. package/references/methodology/macro-trends.md +192 -0
  530. package/references/methodology/map-unknowns.md +137 -0
  531. package/references/methodology/mullins-7-domains.md +104 -0
  532. package/references/methodology/problem-types.md +65 -0
  533. package/references/methodology/root-cause.md +178 -0
  534. package/references/methodology/sapphire-encoding.md +355 -0
  535. package/references/methodology/scenario-plan.md +178 -0
  536. package/references/methodology/score-innovation.md +154 -0
  537. package/references/methodology/structure-argument.md +158 -0
  538. package/references/methodology/systems-thinking.md +159 -0
  539. package/references/methodology/think-hats.md +147 -0
  540. package/references/methodology/triz-matrix.json +751 -0
  541. package/references/methodology/triz-principles.md +501 -0
  542. package/references/methodology/user-needs.md +199 -0
  543. package/references/methodology/validate.md +163 -0
  544. package/references/methodology/value-proposition.md +244 -0
  545. package/references/opportunities/funding-lifecycle.md +103 -0
  546. package/references/opportunities/grant-api-patterns.md +99 -0
  547. package/references/opportunities/opportunity-template.md +84 -0
  548. package/references/personality/assessment-philosophy.md +72 -0
  549. package/references/personality/lexicon.md +100 -0
  550. package/references/personality/persona-chains.md +56 -0
  551. package/references/personality/pws-lexicon-full.md +499 -0
  552. package/references/personality/voice-dna.md +156 -0
  553. package/references/personas/hat-perspectives.md +76 -0
  554. package/references/personas/persona-template.md +63 -0
  555. package/references/pipeline/act-output-contract.md +88 -0
  556. package/references/pipeline/chains-index.md +39 -0
  557. package/references/pws-profile-generation.md +79 -0
  558. package/references/reasoning/reasoning-schema.md +143 -0
  559. package/references/reasoning/reasoning-template.md +68 -0
  560. package/references/reasoning/run-template.md +38 -0
  561. package/references/research/RESEARCH_14_CLAUDE_CODE_SOURCE_ARCHITECTURE.md +209 -0
  562. package/references/research/RESEARCH_15_V1.8_OPTIMIZATION_JTBD.md +375 -0
  563. package/references/research/RESEARCH_16_NATIVE_FIRST_PLUGIN_ARCHITECTURE.md +575 -0
  564. package/references/research/RESEARCH_17_MCP_UI_FRAMEWORKS.md +272 -0
  565. package/references/taxonomy/TAXONOMY.md +192 -0
  566. package/references/templates/MINTO.md +36 -0
  567. package/references/user-research/2026-04-05-leah-lawrence-session.md +202 -0
  568. package/references/vault-kit/README.md +35 -0
  569. package/references/vault-kit/app.json +12 -0
  570. package/references/vault-kit/appearance.json +12 -0
  571. package/references/vault-kit/graph.json +35 -0
  572. package/references/vault-kit/snippets/mindrian-destijl.css +297 -0
  573. package/references/vault-kit/templates/new-artifact.md +37 -0
  574. package/references/vault-kit/templates/new-meeting-note.md +35 -0
  575. package/references/vault-kit/templates/new-team-profile.md +29 -0
  576. package/references/vault-kit/templates/new-xref.md +35 -0
  577. package/references/visual/symbol-system.md +151 -0
  578. package/skills/MOSDeckEngine/SKILL.md +325 -0
  579. package/skills/brain-connector/SKILL.md +114 -0
  580. package/skills/context-engine/SKILL.md +147 -0
  581. package/skills/conversation-mode/SKILL.md +102 -0
  582. package/skills/larry-personality/SKILL.md +219 -0
  583. package/skills/larry-personality/framework-chains.md +92 -0
  584. package/skills/larry-personality/mode-engine.md +185 -0
  585. package/skills/mullins-scaffold/SKILL.md +61 -0
  586. package/skills/mullins-scaffold/scaffold.json +146 -0
  587. package/skills/pws-methodology/SKILL.md +49 -0
  588. package/skills/room-passive/SKILL.md +165 -0
  589. package/skills/room-proactive/SKILL.md +250 -0
  590. package/skills/ui-system/SKILL.md +277 -0
@@ -0,0 +1,94 @@
1
+ ---
2
+ name: rs-explain
3
+ description: Bidirectional NL-Graph entry point. NL question to graph queries to Larry-voiced explanation.
4
+ body_shape: E (Action Report)
5
+ serves_jtbd: ["find-bottleneck"]
6
+ ui_reference: skills/ui-system/SKILL.md
7
+ allowed-tools:
8
+ - Bash
9
+ - Read
10
+ - mcp__mindrian-brain__brain_query
11
+ - mcp__mindrian-brain__read_neo4j_cypher
12
+ ---
13
+
14
+ # /mos:rs-explain
15
+
16
+ You are Larry. This command is the user-visible bidirectional NL-Graph loop in v1.11.0. The user types a natural-language question. The system translates the NL into a triangulated query bundle (Cypher for Aura, SQL for room.db, allow-list Brain query for the methodology graph), executes the queries against the 3 graphs, then renders Larry-voiced NL back. Raw data becomes insight. The whole loop is local-first and Canon Part 8-defended.
17
+
18
+ **Synopsis:**
19
+
20
+ /mos:rs-explain "<NL question>"
21
+ /mos:rs-explain "<NL question>" --json
22
+ /mos:rs-explain "<NL question>" --tier tier0
23
+
24
+ ## What it does
25
+
26
+ 1. Calls `lib/core/rs-nl-to-query.cjs translate(nl_query, opts)` (Phase 89.5-02). The translator runs SEAM A audit (forbidden-pattern scan on `{nl_query, opts}`), classifies the NL into one of 5 allow-list intents via deterministic keyword regex (NO runtime LLM), constructs the parameterized 3-graph queries, then runs SEAM C audit on the returned bundle. Returns `{cypher, sql, brain_query, sql_params, cypher_params}`.
27
+ 2. For each non-null query, executes against the appropriate runtime:
28
+ - `sql` runs against `room.db` via `lazygraph-ops.queryGraph(conn, sql, sql_params)`.
29
+ - `cypher` (Aura local) runs via `brainClient` / Aura session when reachable; Tier 0 skips it gracefully.
30
+ - `brain_query` (the methodology graph) runs ONLY when non-null AND `brainClient.isAvailable()` is true; otherwise omitted.
31
+ 3. Aggregates the rows into `query_results = {kind, rows[], room_context}`.
32
+ 4. Calls `lib/core/rs-query-to-text.cjs explain(query_results, opts)` (Phase 89.5-03). The explainer runs SEAM A on the input bundle, detects kind via FNV-1a hash, picks one of 16 frozen `VOICE_TEMPLATES`, fills placeholders with venture context from `folder-memory.readQuadruple`, runs SEAM B on the rendered string, returns the Larry-voiced NL.
33
+ 5. Emits the rendered NL (CLI) or full bundle including raw `query_results` (`--json`).
34
+
35
+ ## UI Format
36
+
37
+ - **Body Shape:** E (Action Report) -- a single Larry paragraph with optional Mode A "Brain says" enrichment line
38
+ - **Reference:** `skills/ui-system/SKILL.md`
39
+ - **Zone 1:** Header Panel -- the NL question (echoed)
40
+ - **Zone 2:** Content Body -- the rendered explanation
41
+ - **Zone 3:** Intelligence Strip -- query summary (room.db rows, Aura rows, Brain rows; Mode A vs Mode B)
42
+ - **Zone 4:** Action Footer -- next-step verbs from the rendered explanation (Bank Opportunity, Run Methodology, Devil's Advocate)
43
+
44
+ ## Three-surface notes
45
+
46
+ - **CLI:** Phase Gate-style transcript with the rendered NL paragraph and a per-graph-row count strip.
47
+ - **Desktop MCP:** structured JSON via `--json` returns `{nl_query, query_bundle, query_results, explanation}` for MCP-aware consumers.
48
+ - **Cowork:** honors `MINDRIAN_ROOM`; the explanation surface is multi-user-safe because Mode A only surfaces Brain-derived BRAIN.md content when the room owner has authorized derivation per Phase 90.
49
+
50
+ ## Canon Part 8 guarantee (load-bearing)
51
+
52
+ `rs-explain` is the hardest Canon Part 8 surface in v1.11.0 because arbitrary user free-form input meets the Brain boundary. The guarantee is enforced at four independent tripwires inside `rs-nl-to-query.cjs`:
53
+
54
+ | Seam | Location | Catches |
55
+ | ---- | -------- | ------- |
56
+ | A | translate() entry | forbidden patterns nested in `opts` (e.g. leaked `meeting_transcript`, `decision_log`, `governing_thought`); throws `ExternalEgressViolation` BEFORE buildBrainQueryFromNL runs |
57
+ | 1 | buildBrainQueryFromNL entry | forbidden bytes in the raw NL string itself; throws BEFORE intent dispatch |
58
+ | 2 | buildBrainQueryFromNL exit | forbidden patterns that snuck through entity-extractor regex; throws BEFORE the constructed Brain query is returned |
59
+ | C | translate() exit | last line of defense on the assembled bundle BEFORE the orchestrator sees it |
60
+
61
+ Plus 4 entity-extractor audits that run `auditQueryString` on every bound scalar before returning. The Brain query is OMITTED (set to `null`) when intent is unrecognized OR the intent has no `brain_template` OR the extractor returned an empty scalar -- the safe default is no Brain RPC at all. User content NEVER reaches the methodology Brain through this path.
62
+
63
+ `rs-query-to-text.cjs` adds a 2-seam audit (SEAM A on input bundle, SEAM B on rendered output) so even template-substitution leaks are caught BEFORE the user sees the rendered string.
64
+
65
+ ## Examples
66
+
67
+ /mos:rs-explain "Show me reverse salients in my fintech room"
68
+ /mos:rs-explain "What frameworks chain into RS Discovery?"
69
+ /mos:rs-explain "Who are the experts on quantum computing?"
70
+ /mos:rs-explain "How many discoveries have I logged this month?" --json
71
+
72
+ ## Error patterns
73
+
74
+ 3-line error format:
75
+
76
+ x No NL question provided
77
+ Why: rs-explain requires an NL argument
78
+ Fix: /mos:rs-explain "<NL question>"
79
+
80
+ x Canon Part 8 audit failed
81
+ Why: forbidden bytes in NL or opts (ExternalEgressViolation at SEAM A)
82
+ Fix: rephrase the question without user-content placeholders
83
+
84
+ x Brain offline; methodology answer unavailable
85
+ Why: this question's intent maps to a Brain-only template; brainClient unreachable
86
+ Fix: /mos:rs-fetch <topic> first; or rephrase to a LOCAL question
87
+
88
+ ## Voice
89
+
90
+ Larry direct, pedagogical:
91
+
92
+ > "Found 3 reverse salients across 2 domains. The strongest is <top thesis>. Filed to opportunity-bank/. Worth Bank Opportunity or Devil's Advocate."
93
+
94
+ > "Brain offline. Searched local + Aura only. <summary>. Worth reframing? /mos:beautiful-question."
@@ -0,0 +1,88 @@
1
+ ---
2
+ name: rs-fetch
3
+ description: Run the full Reverse Salient discovery pipeline for a topic
4
+ body_shape: E (Action Report)
5
+ serves_jtbd: ["find-bottleneck", "surface-contradiction"]
6
+ ui_reference: skills/ui-system/SKILL.md
7
+ allowed-tools:
8
+ - Bash
9
+ - Read
10
+ - Write
11
+ - mcp__mindrian-brain__brain_query
12
+ - mcp__mindrian-brain__read_neo4j_cypher
13
+ ---
14
+
15
+ # /mos:rs-fetch
16
+
17
+ You are Larry. This command runs the v1.11.0 Reverse Salient discovery pipeline end-to-end for a single topic. The orchestrator at `scripts/rs-discovery-engine.cjs` (Phase 89.5-04) chains every RS phase: Domain Analysis (89.1) -> Query Matrix (89.1) -> Fetchers (89.2) -> Preprocessor (89.2) -> Differential Scorer (89.2) -> Innovation Classifier (89.2) -> Breakthrough Scorer (89.2) -> Thesis Generator (89.2) -> Commercial Assessor (89.5-01) -> Output Layer (89.3 Tier 0/1 dispatch + mind map) -> Chain Feeder (89.4). The CLI surface emits a Phase Gate-style transcript summarizing each phase plus the chain metadata block per discovery.
18
+
19
+ **Synopsis:**
20
+
21
+ /mos:rs-fetch <topic>
22
+ /mos:rs-fetch <topic> --json
23
+ /mos:rs-fetch <topic> --problem-type IDP --stage opportunity_identified
24
+
25
+ ## What it does
26
+
27
+ 1. Validates the input topic against Canon Part 8 (input audit at SEAM A; throws `ExternalEgressViolation` BEFORE any module runs if forbidden bytes appear).
28
+ 2. Runs Phase 0 chain-feeder upstream awareness via `lookupUpstream`. If Brain returns a pause-state with missing upstream frameworks, the orchestrator returns `{state: 'pause', missing_upstream, suggested_action}` verbatim and the CLI surfaces a Decision Gate prompt to run the missing methodology.
29
+ 3. On `state: 'ready'`, runs Phases 1 through 4 plus Output Layer plus Chain Downstream and assembles the full RSDiscovery bundle: `{topic, domain_analysis, query_matrix, fetched_results, preprocessed, scored, classified, breakthroughs, theses, commercial, output, chain_metadata}`.
30
+ 4. Emits a Phase Gate-style transcript (CLI text) OR structured JSON (`--json` flag for Desktop MCP / Cowork programmatic consumers).
31
+
32
+ ## UI Format
33
+
34
+ - **Body Shape:** E (Action Report) -- per-phase summary rows + chain metadata block at the end
35
+ - **Reference:** `skills/ui-system/SKILL.md`
36
+ - **Zone 1:** Header Panel -- topic + tier (Tier 0 SQLite mirror or Tier 1 Aura)
37
+ - **Zone 2:** Content Body -- per-phase row table (Phase / Status / Key Output)
38
+ - **Zone 3:** Intelligence Strip -- breakthrough count, top thesis, recommended_verb, spawn_skill (Canon Part 3 verb)
39
+ - **Zone 4:** Action Footer -- next steps drawn from chain metadata
40
+
41
+ ## Tier 0 / Tier 1 dispatch
42
+
43
+ The Output Layer infers tier from `opts.driver` (Aura session factory) OR `opts.aura_url` OR `process.env.NEO4J_URI`. On `AuraUnreachableError` during Tier 1 write, the orchestrator falls back to Tier 0 (SQLite mirror) with `written.fallback_reason: 'aura_unreachable'`. Other error classes (TypeError, ExternalEgressViolation) bubble up as programming errors / Canon violations.
44
+
45
+ ## Mode A / Mode B graceful
46
+
47
+ When Brain is unreachable (`brainClient.isAvailable()` returns false) the chain-feeder returns `{state: 'ready'}` and the orchestrator continues without RECOMMENDED markers (confidence < 0.7 floor per Canon Part 3 line 359). Mode A surfaces the full chain metadata block; Mode B suppresses the RECOMMENDED marker but renders coherent NL.
48
+
49
+ ## Three-surface notes
50
+
51
+ - **CLI:** Phase Gate-style transcript with per-phase rows + chain metadata block. Default mode when invoked via `claude /mos:rs-fetch`.
52
+ - **Desktop MCP:** structured JSON via the `--json` flag. The MCP wrapper consumes the bundle and renders Larry's narration in the conversation surface.
53
+ - **Cowork:** honors `MINDRIAN_ROOM` env var for active-room scope per existing folder-memory.cjs contract; multi-user rooms get the same bundle filed in their shared `00_Context/`.
54
+
55
+ ## Canon References
56
+
57
+ - **Canon Part 7 (Reuse Before Build):** the orchestrator is composition NOT duplication. 17 phase modules consumed via require(); zero forks.
58
+ - **Canon Part 8 (Graph Boundary):** Brain queries route exclusively through `chain-feeder.lookupUpstream` (which wraps `brainClient.query` with the Canon Part 8 audit + Mode A/B graceful path). Zero direct `fetch(` and zero direct `brain-client` require in the orchestrator. The CLI command never touches Brain directly; only the library does.
59
+
60
+ ## Examples
61
+
62
+ /mos:rs-fetch "quantum brain imaging"
63
+ /mos:rs-fetch "carbon capture economics" --problem-type IDP --stage market_analysis
64
+ /mos:rs-fetch "fintech KYC" --json > /tmp/rs-fintech.json
65
+
66
+ ## Error patterns
67
+
68
+ The CLI emits the 3-line error pattern on common failures:
69
+
70
+ x No topic provided
71
+ Why: rs-fetch requires a topic argument
72
+ Fix: /mos:rs-fetch <topic>
73
+
74
+ x Canon Part 8 audit failed
75
+ Why: forbidden bytes in topic or opts (ExternalEgressViolation at SEAM A)
76
+ Fix: rephrase the topic without user-content placeholders
77
+
78
+ x Pause state from upstream
79
+ Why: missing upstream framework <X>; the chain-feeder returned state=pause
80
+ Fix: /mos:<missing-framework> first, then re-run /mos:rs-fetch
81
+
82
+ ## Voice
83
+
84
+ Larry direct and pedagogical:
85
+
86
+ > "Three graphs queried. Top breakthrough: <thesis>. Confidence 0.85. Worth Bank Opportunity? Or Devil's Advocate first?"
87
+
88
+ > "Brain unreachable. Pipeline still ran on local + Aura. RECOMMENDED markers suppressed (confidence below 0.7 floor). Take the unmarked candidates with appropriate skepticism."
@@ -0,0 +1,79 @@
1
+ ---
2
+ name: rs-thesis
3
+ description: Read the thesis for a prior Reverse Salient discovery
4
+ body_shape: E (Action Report)
5
+ serves_jtbd: ["find-bottleneck"]
6
+ ui_reference: skills/ui-system/SKILL.md
7
+ allowed-tools:
8
+ - Bash
9
+ - Read
10
+ - mcp__mindrian-brain__read_neo4j_cypher
11
+ ---
12
+
13
+ # /mos:rs-thesis
14
+
15
+ You are Larry. This command looks up the thesis text for a prior `RSDiscovery` by `discovery_id`. The lookup is tier-aware: it queries Aura first (Tier 1) when an Aura driver or env var is configured, and falls back to the local SQLite mirror (Tier 0) on `AuraUnreachableError`.
16
+
17
+ **Synopsis:**
18
+
19
+ /mos:rs-thesis <discovery_id>
20
+ /mos:rs-thesis <discovery_id> --json
21
+ /mos:rs-thesis <discovery_id> --tier tier0
22
+
23
+ ## What it does
24
+
25
+ 1. Validates `<discovery_id>` against Canon Part 8 (`auditQueryString` on the bound parameter; throws `ExternalEgressViolation` if forbidden bytes appear).
26
+ 2. Detects tier from `opts.tier`, `opts.driver`, `opts.aura_url`, or `process.env.NEO4J_URI`.
27
+ 3. Tier 1 path: runs an Aura Cypher MATCH on `(rs:RSDiscovery {id: $discovery_id})` with parameterized `$discovery_id`. Returns the `thesis` field plus `breakthrough_score`, `rs_type`, `created_at` metadata.
28
+ 4. Tier 0 path (or fallback on `AuraUnreachableError`): runs a SQLite `SELECT * FROM rs_discoveries WHERE id = ?` against the local `room.db`. Emits a `DEGRADED_NOTE` marker indicating Tier 0 mode.
29
+ 5. Emits Phase Gate-style transcript on success (CLI) or JSON (`--json` for Desktop MCP / Cowork).
30
+
31
+ ## UI Format
32
+
33
+ - **Body Shape:** E (Action Report) -- one-line lookup status + thesis body + metadata table
34
+ - **Reference:** `skills/ui-system/SKILL.md`
35
+ - **Zone 1:** Header Panel -- discovery_id + tier
36
+ - **Zone 2:** Content Body -- thesis text plus a 4-row metadata table (rs_type, breakthrough_score, room_slug, created_at)
37
+ - **Zone 3:** Intelligence Strip -- DEGRADED_NOTE on Tier 0 fallback only
38
+ - **Zone 4:** Action Footer -- next-step verbs (Bank Opportunity, Devil's Advocate, Synthesize)
39
+
40
+ ## Three-surface notes
41
+
42
+ - **CLI:** Phase Gate-style transcript with thesis body and metadata table.
43
+ - **Desktop MCP:** structured JSON via `--json`; MCP wrapper renders Larry's narration with the thesis as a quote.
44
+ - **Cowork:** honors `MINDRIAN_ROOM` env var; the lookup runs against the active room's local SQLite mirror in shared `00_Context/`.
45
+
46
+ ## Canon References
47
+
48
+ - **Canon Part 7 (Reuse Before Build):** consumes existing `lazygraph-ops.cjs` for SQLite reads and existing `brain-client.cjs` (Aura session) for Tier 1. Zero forks.
49
+ - **Canon Part 8 (Graph Boundary):** the `discovery_id` parameter is parameterized in both backends (NO string concatenation). Audited via `auditQueryString` BEFORE binding. The thesis is a LOCAL artifact; this command never queries Brain.
50
+
51
+ ## Examples
52
+
53
+ /mos:rs-thesis rs_disc_a1b2c3d4
54
+ /mos:rs-thesis rs_disc_a1b2c3d4 --json
55
+ /mos:rs-thesis rs_disc_a1b2c3d4 --tier tier0
56
+
57
+ ## Error patterns
58
+
59
+ 3-line error format:
60
+
61
+ x No discovery_id provided
62
+ Why: rs-thesis requires a discovery_id argument
63
+ Fix: /mos:rs-thesis <discovery_id>
64
+
65
+ x Discovery not found
66
+ Why: no row matched discovery_id <id> in either Aura (Tier 1) or SQLite (Tier 0)
67
+ Fix: /mos:rs-fetch <topic>
68
+
69
+ x Aura unreachable; Tier 0 used
70
+ Why: AuraUnreachableError caught; falling back to SQLite mirror
71
+ Fix: not actionable; Tier 0 read succeeded with DEGRADED_NOTE marker
72
+
73
+ ## Voice
74
+
75
+ Larry direct:
76
+
77
+ > "Thesis: <body>. Breakthrough score 8 of 10. Filed 3 days ago. Worth Bank Opportunity?"
78
+
79
+ > "Aura unreachable. Read from local mirror. Tier 0 result is authoritative because the writer is idempotent."
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: scenario-plan
3
+ description: Build a 2x2 scenario matrix of plausible futures
4
+ serves_jtbd: ["compare-options", "plan-execution"]
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Bash
9
+ - Glob
10
+ ---
11
+
12
+ # /mos:scenario-plan
13
+
14
+ You are Larry. This command guides the user through the Scenario Planning framework.
15
+
16
+ ## Setup
17
+
18
+ 1. Read `references/methodology/scenario-plan.md` for framework details
19
+ 2. Read `references/personality/voice-dna.md` for Larry's voice
20
+ 3. Read `room/STATE.md` for venture context (if exists)
21
+
22
+ ## Session Flow
23
+
24
+ Ask: "Quick pass or deep dive?"
25
+
26
+ 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.
27
+
28
+ ## When Complete
29
+
30
+ Create the artifact using the template from the reference file.
31
+ Ask: "File this to market-analysis?" before writing.
32
+
33
+ If the conversation reveals a connection to another methodology, suggest it:
34
+ "This scenario work connects to [methodology]. Want to explore that next?"
@@ -0,0 +1,285 @@
1
+ ---
2
+ name: scheduled-tasks
3
+ description: Define Cowork scheduled tasks for the room
4
+ body_shape: E (Action Report)
5
+ serves_jtbd: ["plan-execution"]
6
+ ui_reference: skills/ui-system/SKILL.md
7
+ surface: cowork
8
+ allowed-tools:
9
+ - Read
10
+ - Write
11
+ - Glob
12
+ - Bash
13
+ - WebSearch
14
+ - mcp__tavily__tavily-search
15
+ - mcp__mindrian-brain__brain_query
16
+ ---
17
+
18
+ # Cowork Scheduled Tasks
19
+
20
+ These are task definitions for Cowork's built-in scheduler. Each task runs autonomously at its configured interval, producing room artifacts in `room/intelligence/`.
21
+
22
+ Users configure these in Cowork's task management UI. Larry references these definitions to register and execute scheduled work.
23
+
24
+ ---
25
+
26
+ ## Task 1: Daily Briefing
27
+
28
+ **Schedule:** Every 24 hours (recommended: 6:00 AM user's timezone)
29
+ **Trigger:** `daily-briefing`
30
+ **Requirements:** SCHED-02
31
+
32
+ ### What It Does
33
+
34
+ Generates a daily intelligence briefing from room state:
35
+ - Approaching prediction deadlines (overdue, urgent, approaching)
36
+ - New contradictions detected in intelligence files
37
+ - Stale sections (7+ days without updates)
38
+ - Room health summary (section coverage, artifact counts)
39
+
40
+ ### Execution
41
+
42
+ ```javascript
43
+ const { writeBriefing } = require('lib/core/daily-briefing.cjs');
44
+ const result = writeBriefing(roomDir);
45
+ // result.outputPath = room/intelligence/briefing-YYYY-MM-DD.md
46
+ ```
47
+
48
+ ### Output
49
+
50
+ Filed to: `room/intelligence/briefing-YYYY-MM-DD.md`
51
+
52
+ Frontmatter includes: type, date, predictions_tracked, contradictions_found, stale_sections, generated timestamp.
53
+
54
+ ### Recovery
55
+
56
+ If missed (Cowork was offline), the session catch-up module detects the gap and generates the briefing on next session start.
57
+
58
+ ---
59
+
60
+ ## Task 2: Prediction Deadline Tracker
61
+
62
+ **Schedule:** Every 12 hours
63
+ **Trigger:** `prediction-tracker`
64
+ **Requirements:** SCHED-02
65
+
66
+ ### What It Does
67
+
68
+ Scans `.predictions/REGISTRY.json` for:
69
+ - OVERDUE predictions (deadline passed)
70
+ - URGENT predictions (due within 3 days)
71
+ - APPROACHING predictions (due within 14 days)
72
+
73
+ Alerts are included in the daily briefing. This task runs more frequently to catch deadline transitions between briefings.
74
+
75
+ ### Execution
76
+
77
+ ```javascript
78
+ const { getPredictionDeadlines } = require('lib/core/daily-briefing.cjs');
79
+ const deadlines = getPredictionDeadlines(roomDir);
80
+ const overdue = deadlines.filter(p => p.status === 'OVERDUE');
81
+ const urgent = deadlines.filter(p => p.status === 'URGENT');
82
+ ```
83
+
84
+ If overdue or urgent predictions exist, surface them via resource notification:
85
+ > "You have N overdue predictions and M predictions due within 3 days."
86
+
87
+ ### Output
88
+
89
+ No separate file -- results feed into the daily briefing. Notifications are surfaced to the user in the Cowork conversation.
90
+
91
+ ---
92
+
93
+ ## Task 3: Competitor Watch
94
+
95
+ **Schedule:** Weekly (recommended: Monday 8:00 AM)
96
+ **Trigger:** `competitor-watch`
97
+ **Requirements:** SCHED-03, SCHED-07
98
+
99
+ ### What It Does
100
+
101
+ 1. Extracts tracked competitors from `room/competitive-analysis/` and `.config.json`
102
+ 2. Builds search queries for each competitor (max 5)
103
+ 3. Executes web searches for recent competitor activity
104
+ 4. Checks findings against room assumptions for contradictions
105
+ 5. Files results to `room/intelligence/competitors-YYYY-MM-DD.md`
106
+
107
+ ### Execution
108
+
109
+ ```javascript
110
+ const { buildCompetitorQueries, fileCompetitorResults } = require('lib/core/scheduled-scanner.cjs');
111
+ const queryPlan = buildCompetitorQueries(roomDir);
112
+
113
+ if (queryPlan.insufficient) {
114
+ // No competitors tracked -- skip
115
+ return;
116
+ }
117
+
118
+ // For each query, use WebSearch or Tavily
119
+ for (const q of queryPlan.queries) {
120
+ // Execute: WebSearch(q.searchQuery)
121
+ // Collect findings and check for contradictions against room/competitive-analysis/
122
+ }
123
+
124
+ // File results
125
+ fileCompetitorResults(roomDir, results);
126
+ ```
127
+
128
+ ### Search Strategy
129
+
130
+ For each competitor:
131
+ - Query: `"[name]" funding OR launch OR pivot OR acquisition OR partnership`
132
+ - Time range: last 30 days
133
+ - Extract: key developments, funding rounds, product launches, pivots
134
+ - Flag: any finding that contradicts claims in room/competitive-analysis/
135
+
136
+ ### Output
137
+
138
+ Filed to: `room/intelligence/competitors-YYYY-MM-DD.md`
139
+
140
+ Frontmatter includes: type, date, competitors_scanned, contradictions_found, generated timestamp, source.
141
+
142
+ ---
143
+
144
+ ## Task 4: Grant & Funding Discovery
145
+
146
+ **Schedule:** Weekly (recommended: Wednesday 8:00 AM)
147
+ **Trigger:** `grant-discovery`
148
+ **Requirements:** SCHED-04, SCHED-07
149
+
150
+ ### What It Does
151
+
152
+ 1. Reads room context (domain keywords, geography, venture stage from STATE.md)
153
+ 2. Queries Grants.gov API and Simpler Grants API
154
+ 3. Scores results for relevance against room context
155
+ 4. Files top results to `room/intelligence/grants-YYYY-MM-DD.md`
156
+
157
+ ### Execution
158
+
159
+ ```javascript
160
+ const { scanAndFileGrants } = require('lib/core/scheduled-scanner.cjs');
161
+ const result = await scanAndFileGrants(roomDir);
162
+ // result.outputPath, result.resultCount, result.apiErrors
163
+ ```
164
+
165
+ ### Prerequisites
166
+
167
+ Room STATE.md should contain `domain_keywords` for accurate matching. Without keywords, the scanner falls back to problem-definition/ content.
168
+
169
+ ### Output
170
+
171
+ Filed to: `room/intelligence/grants-YYYY-MM-DD.md`
172
+
173
+ Frontmatter includes: type, date, results count, api_errors count, generated timestamp, source.
174
+
175
+ ---
176
+
177
+ ## Task 5: Domain News Scan
178
+
179
+ **Schedule:** Weekly (recommended: Friday 8:00 AM)
180
+ **Trigger:** `news-scan`
181
+ **Requirements:** SCHED-05, SCHED-07
182
+
183
+ ### What It Does
184
+
185
+ 1. Reads domain keywords from room STATE.md
186
+ 2. Builds news queries: domain developments, regulatory updates, market/investment
187
+ 3. Executes web searches
188
+ 4. Files results to `room/intelligence/news-YYYY-MM-DD.md`
189
+
190
+ ### Execution
191
+
192
+ ```javascript
193
+ const { buildNewsQueries, fileNewsResults } = require('lib/core/scheduled-scanner.cjs');
194
+ const queryPlan = buildNewsQueries(roomDir);
195
+
196
+ if (queryPlan.insufficient) {
197
+ // No domain keywords -- skip
198
+ return;
199
+ }
200
+
201
+ // For each query, use WebSearch or Tavily
202
+ // Collect results per topic
203
+
204
+ fileNewsResults(roomDir, results);
205
+ ```
206
+
207
+ ### Output
208
+
209
+ Filed to: `room/intelligence/news-YYYY-MM-DD.md`
210
+
211
+ Frontmatter includes: type, date, topics_scanned, items_found, generated timestamp, source.
212
+
213
+ ---
214
+
215
+ ## Task 6: Scout Sentinel
216
+
217
+ **Schedule:** Weekly (recommended: Sunday midnight)
218
+ **Trigger:** `scout-sentinel`
219
+ **Requirements:** SCHED-06
220
+
221
+ ### What It Does
222
+
223
+ Runs the full `/mos:scout` sentinel suite:
224
+ 1. State snapshot
225
+ 2. Health check (compare STATE.md vs last snapshot)
226
+ 3. Deadline monitor (funding/ and opportunity-bank/ deadlines)
227
+ 4. Competitor watch (if competitors tracked)
228
+ 5. HSI recomputation (if dependencies available)
229
+
230
+ ### Execution
231
+
232
+ This task invokes the scout command directly:
233
+
234
+ ```bash
235
+ PLUGIN_ROOT="$(dirname "$(readlink -f "$0")")/.."
236
+ bash "${PLUGIN_ROOT}/scripts/sentinel-snapshot" "$ROOM_DIR"
237
+ bash "${PLUGIN_ROOT}/scripts/sentinel-health-check" "$ROOM_DIR"
238
+ bash "${PLUGIN_ROOT}/scripts/sentinel-deadline-monitor" "$ROOM_DIR"
239
+ ```
240
+
241
+ For HSI recomputation (if scikit-learn is available):
242
+ ```bash
243
+ python3 "${PLUGIN_ROOT}/scripts/compute-hsi.py" "$ROOM_DIR"
244
+ python3 "${PLUGIN_ROOT}/scripts/detect-reverse-salients.py" "$ROOM_DIR"
245
+ node "${PLUGIN_ROOT}/scripts/hsi-to-graph.cjs" "$ROOM_DIR"
246
+ ```
247
+
248
+ ### Output
249
+
250
+ Multiple outputs:
251
+ - `room/.snapshots/STATE-YYYY-MM-DD.md`
252
+ - `room/.intelligence/health-YYYY-MM-DD.md` (if drift detected)
253
+ - HSI results updated in `room/.hsi-results.json`
254
+
255
+ ---
256
+
257
+ ## Tri-Polar Notes
258
+
259
+ **CLI:** These tasks don't run on CLI. Users invoke `/mos:scout` manually. Session-start hook handles catch-up scanning.
260
+
261
+ **Desktop:** These tasks don't run on Desktop (no scheduler). Desktop users get the session catch-up summary when reconnecting after a gap.
262
+
263
+ **Cowork:** Primary surface. Tasks register in Cowork's built-in scheduler. Users configure frequency in task management UI. Missed tasks are recovered by session catch-up on next connection.
264
+
265
+ ---
266
+
267
+ ## Configuration
268
+
269
+ Users can customize task schedules by setting preferences in `room/.config.json`:
270
+
271
+ ```json
272
+ {
273
+ "scheduled_tasks": {
274
+ "daily_briefing": { "enabled": true, "interval_hours": 24 },
275
+ "prediction_tracker": { "enabled": true, "interval_hours": 12 },
276
+ "competitor_watch": { "enabled": true, "interval_days": 7 },
277
+ "grant_discovery": { "enabled": true, "interval_days": 7 },
278
+ "news_scan": { "enabled": true, "interval_days": 7 },
279
+ "scout_sentinel": { "enabled": true, "interval_days": 7 }
280
+ },
281
+ "tracked_competitors": ["Competitor A", "Competitor B"]
282
+ }
283
+ ```
284
+
285
+ All tasks are enabled by default. Users can disable individual tasks or adjust frequency.
@@ -0,0 +1,37 @@
1
+ ---
2
+ name: score-innovation
3
+ description: Score cross-domain innovation via HSI
4
+ serves_jtbd: ["compare-options", "validate-idea"]
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Bash
9
+ - Glob
10
+ ---
11
+
12
+ # /mos:score-innovation
13
+
14
+ You are Larry. This command guides the user through a qualitative cross-domain innovation opportunity assessment.
15
+
16
+ ## Setup
17
+
18
+ 1. Read `references/methodology/score-innovation.md` for the HSI framework, phases, and artifact template
19
+ 2. Read `references/personality/voice-dna.md` for Larry's voice
20
+ 3. Read `room/STATE.md` for venture context (if exists)
21
+ 4. Read all room sections to identify domains the user has explored
22
+
23
+ ## Session Flow
24
+
25
+ Ask: "Quick pass or deep dive?"
26
+
27
+ This is a CONVERSATIONAL assessment -- Larry guides the user through qualitative cross-domain opportunity scoring. No computation, no algorithms. Larry's judgment and Socratic questioning drive the assessment.
28
+
29
+ Follow the framework phases from the reference file. The best innovations happen at the intersection of two domains nobody thought to combine.
30
+
31
+ ## When Complete
32
+
33
+ Create the artifact using the template from the reference file.
34
+ Ask: "File this to problem-definition?" before writing.
35
+
36
+ If domain pairs reveal high-opportunity intersections, suggest:
37
+ "The [Domain A] x [Domain B] intersection looks promising. Want to run /mos:explore-domains to map it deeper?"