@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,501 @@
1
+ ---
2
+ name: whitespace
3
+ description: Detect whitespace gaps in the room's coverage
4
+ body_shape: varies
5
+ serves_jtbd: ["connect-domains", "find-problem"]
6
+ ui_reference: skills/ui-system/SKILL.md
7
+ allowed-tools:
8
+ - Bash
9
+ - Read
10
+ ---
11
+
12
+ # /mos:whitespace
13
+
14
+ You are Larry. This command surfaces what's MISSING in a venture's Data Room using embedding-space density estimation, TopicForest hierarchical clustering, and cross-domain literature scanning. Body shape varies by subcommand: **Shape A (Mondrian Board)** for `map`, **Shape B (Semantic Tree)** for `tree`, **Shape E (Action Report)** for `analyze`, `hypothesis`, `score`, `external`, and `discover`.
15
+
16
+ **Voice rules (LOCKED):**
17
+ - Conversational, direct, no filler. Signature openers: "Very simply...", "Here's the thing...", "One thing I've learned..."
18
+ - NO emoji anywhere. NO "I'd be happy to help". NO "Great question!". NO sentences starting with "I".
19
+ - Symbol vocabulary: only these 12 glyphs: ■ ▼ ▶ ▷ |- \- ✓ • ⚠ ⚡ ⬜ ->
20
+ - Error pattern: 3 lines only -- What / Why: reason / Fix: /mos:command
21
+
22
+ ## Subcommand Routing
23
+
24
+ Parse the user's input after `/mos:whitespace`. If no subcommand is given, show the **help** listing below.
25
+
26
+ | Subcommand | Body Shape | Purpose |
27
+ |------------|-----------|---------|
28
+ | `map` | A (Mondrian Board) | Whitespace zones as density grid |
29
+ | `analyze ZONE_ID` | E (Action Report) | Deep-dive classification + hypothesis for one zone |
30
+ | `hypothesis ZONE_ID` | E (Action Report) | Lazy on-demand hypothesis for one zone |
31
+ | `tree` | B (Semantic Tree) | TopicForest coverage indicators |
32
+ | `score` | E (Action Report) | Per-artifact novelty scores ranked |
33
+ | `external` | E (Action Report) | Cross-domain literature whitespace |
34
+ | `discover` | E (Action Report) | Full Discovery Cycle (HSI/RS/Analogy) |
35
+
36
+ ## No Args: Help
37
+
38
+ When `/mos:whitespace` is called with no subcommand, display:
39
+
40
+ ```
41
+ -- [Room Name] -- Whitespace -- Help --
42
+
43
+ Whitespace detection -- find what's MISSING in your understanding.
44
+
45
+ Subcommands:
46
+ |- map Density map of whitespace zones (sparsest first)
47
+ |- analyze ZONE_ID Deep-dive: classification + framework chain + hypothesis
48
+ |- hypothesis ZONE_ID Show or generate hypothesis for a zone
49
+ |- tree TopicForest with coverage indicators per branch
50
+ |- score Per-artifact novelty scores (highest first)
51
+ |- external Cross-domain literature scan via Semantic Scholar
52
+ \- discover Full Discovery Cycle: HSI + RS + Analogy whitespace
53
+
54
+ > /mos:whitespace map Start here -- see where the gaps are
55
+ > /mos:whitespace tree See topic coverage at a glance
56
+ ```
57
+
58
+ ## Pre-flight: Room Check
59
+
60
+ Before any subcommand, resolve the active room:
61
+
62
+ ```bash
63
+ bash "${CLAUDE_PLUGIN_ROOT}/scripts/resolve-room"
64
+ ```
65
+
66
+ If no room found, use the 3-line error format:
67
+
68
+ ```
69
+ x No Data Room found
70
+ Why: No room under ~/MindrianRooms/ or legacy room/ in workspace
71
+ Fix: /mos:new-project
72
+ ```
73
+
74
+ STOP.
75
+
76
+ Then check that `.mindrian/` directory exists inside the room. If not:
77
+
78
+ ```
79
+ x No whitespace data found
80
+ Why: Whitespace pipeline has not been run on this room yet
81
+ Fix: /mos:whitespace map
82
+ ```
83
+
84
+ STOP (unless the subcommand is `map`, which will create the data).
85
+
86
+ ## Subcommand: map
87
+
88
+ **Body Shape:** A (Mondrian Board)
89
+
90
+ ### Step 1: Run Pipeline
91
+
92
+ Execute the whitespace-command.cjs dispatcher:
93
+
94
+ ```bash
95
+ node "${CLAUDE_PLUGIN_ROOT}/scripts/whitespace-command.cjs" ROOM_DIR map
96
+ ```
97
+
98
+ This ensures embeddings exist (runs compute-whitespace-embeddings.py if needed), then runs compute-whitespace-gaps.py.
99
+
100
+ ### Step 2: Render 4-Zone Output
101
+
102
+ **Zone 1 -- Header Panel:**
103
+ ```
104
+ -- [Room Name] -- Whitespace Map -- [Venture Stage] --
105
+ ```
106
+
107
+ **Zone 2 -- Content Body (Shape A: Mondrian Board):**
108
+
109
+ Display whitespace zones as a grid sorted by density_score ascending (sparsest = most interesting first).
110
+
111
+ ```
112
+ Zone Density Type Nearest Frameworks
113
+ ws-gap-001 0.12 Ill-Defined JTBD, Beautiful Questions
114
+ ws-gap-002 0.28 Well-Defined MECE, Issue Trees
115
+ ws-gap-003 0.45 Un-Defined Analogical Reasoning
116
+ ws-gap-004 0.67 Wicked Systems Thinking, Causal Loop
117
+ ```
118
+
119
+ Each row shows:
120
+ - Zone ID (left-aligned)
121
+ - Density score (0.0-1.0, lower = more sparse = bigger gap)
122
+ - Problem type classification
123
+ - Top 1-2 nearest frameworks (truncated to fit 80 cols)
124
+
125
+ Summary line:
126
+ ```
127
+ Zones: [N] total | [X] validated | Sparsest: [zone_id] (density [score])
128
+ ```
129
+
130
+ **Zone 3 -- Intelligence Strip** (conditional):
131
+ Show if any zones have density < 0.2 (severe gaps):
132
+ ```
133
+ &#9888; [N] zones below 0.2 density -- significant knowledge gaps detected
134
+ &#11036; [zone_id] has no nearby artifacts -- isolated void
135
+ ```
136
+
137
+ **Zone 4 -- Action Footer (NEVER omit):**
138
+ ```
139
+ > /mos:whitespace analyze [sparsest_zone] Deep-dive the biggest gap
140
+ > /mos:whitespace tree See topic coverage
141
+ > /mos:whitespace score Check artifact novelty
142
+ ```
143
+
144
+ ## Subcommand: analyze ZONE_ID
145
+
146
+ **Body Shape:** E (Action Report)
147
+
148
+ ### Step 1: Run Analysis
149
+
150
+ ```bash
151
+ node "${CLAUDE_PLUGIN_ROOT}/scripts/whitespace-command.cjs" ROOM_DIR analyze ZONE_ID
152
+ ```
153
+
154
+ If the zone ID is not found, show:
155
+
156
+ ```
157
+ x Zone not found: [ZONE_ID]
158
+ Why: No zone with that ID in whitespace-results.json
159
+ Fix: /mos:whitespace map (to see available zones)
160
+ ```
161
+
162
+ ### Step 2: Render 4-Zone Output
163
+
164
+ **Zone 1 -- Header Panel:**
165
+ ```
166
+ -- [Room Name] -- Whitespace Analyze -- [ZONE_ID] --
167
+ ```
168
+
169
+ **Zone 2 -- Content Body (Shape E: Action Report):**
170
+
171
+ ```
172
+ Zone: [ZONE_ID]
173
+ Density: [score]
174
+ Problem Type: [classification]
175
+ Validated: [Yes/No] ([gates passed]/[total gates])
176
+
177
+ Framework Chain:
178
+ |- [Framework 1] -- [description or transform]
179
+ |- [Framework 2] -- [description or transform]
180
+ \- [Framework 3] -- [description or transform]
181
+
182
+ Nearest Artifacts:
183
+ |- [artifact_name] ([section]/)
184
+ \- [artifact_name] ([section]/)
185
+
186
+ Hypothesis:
187
+ [Full hypothesis text from interpretation-results.json, or "Not yet generated -- run /mos:whitespace hypothesis ZONE_ID"]
188
+ ```
189
+
190
+ **Zone 3 -- Intelligence Strip** (conditional):
191
+ If zone validation failed gates, show which:
192
+ ```
193
+ &#9888; Failed anchor gate -- gap may be at cluster periphery, not between clusters
194
+ ```
195
+
196
+ **Zone 4 -- Action Footer:**
197
+ ```
198
+ > /mos:whitespace hypothesis [ZONE_ID] Generate methodology-aware hypothesis
199
+ > /mos:whitespace map Back to zone overview
200
+ > /mos:whitespace discover Run full Discovery Cycle
201
+ ```
202
+
203
+ ## Subcommand: hypothesis ZONE_ID
204
+
205
+ **Body Shape:** E (Action Report)
206
+
207
+ ### Step 1: Check for Existing Hypothesis
208
+
209
+ ```bash
210
+ node "${CLAUDE_PLUGIN_ROOT}/scripts/whitespace-command.cjs" ROOM_DIR hypothesis ZONE_ID
211
+ ```
212
+
213
+ The dispatcher checks interpretation-results.json first. If a hypothesis already exists, it returns it without re-running the pipeline (lazy evaluation).
214
+
215
+ ### Step 2: Render 4-Zone Output
216
+
217
+ **Zone 1 -- Header Panel:**
218
+ ```
219
+ -- [Room Name] -- Whitespace Hypothesis -- [ZONE_ID] --
220
+ ```
221
+
222
+ **Zone 2 -- Content Body (Shape E: Action Report):**
223
+
224
+ ```
225
+ Zone: [ZONE_ID] | Type: [problem_type] | Chain: [fw1] -> [fw2] -> [fw3]
226
+
227
+ Hypothesis:
228
+ [Full 3-part hypothesis text]
229
+
230
+ 1. What's missing and why it matters:
231
+ [text]
232
+
233
+ 2. Framework-driven question:
234
+ [text]
235
+
236
+ 3. Suggested next action:
237
+ [text]
238
+ ```
239
+
240
+ **Zone 3 -- Intelligence Strip:** Omit unless zone has HIGH contradiction signal.
241
+
242
+ **Zone 4 -- Action Footer:**
243
+ ```
244
+ > /mos:whitespace analyze [ZONE_ID] Full zone details
245
+ > /mos:whitespace map Back to zone overview
246
+ > [suggested /mos: command from hypothesis part 3]
247
+ ```
248
+
249
+ ## Subcommand: tree
250
+
251
+ **Body Shape:** B (Semantic Tree)
252
+
253
+ ### Step 1: Run Pipeline
254
+
255
+ ```bash
256
+ node "${CLAUDE_PLUGIN_ROOT}/scripts/whitespace-command.cjs" ROOM_DIR tree
257
+ ```
258
+
259
+ Ensures topic-forest.json exists (runs compute_topic_forest.py if needed), then runs label-topic-forest.cjs.
260
+
261
+ ### Step 2: Render 4-Zone Output
262
+
263
+ **Zone 1 -- Header Panel:**
264
+ ```
265
+ -- [Room Name] -- Whitespace Tree -- Topic Coverage --
266
+ ```
267
+
268
+ **Zone 2 -- Content Body (Shape B: Semantic Tree):**
269
+
270
+ Display the TopicForest as an indented tree with coverage indicators per branch.
271
+
272
+ ```
273
+ &#9660; Market Dynamics &#10003; covered
274
+ |- &#9654; Customer Segments &#10003; 3 artifacts
275
+ |- &#9654; Competitive Landscape &#8226; 1 artifact
276
+ \- &#9655; Pricing Strategy &#11036; whitespace
277
+ &#9660; Technology Architecture &#8226; sparse
278
+ |- &#9654; Core Platform &#10003; 2 artifacts
279
+ \- &#9655; Integration Layer &#11036; whitespace
280
+ &#9655; Regulatory Environment &#11036; whitespace
281
+ ```
282
+
283
+ Coverage indicators:
284
+ - `&#10003;` = covered (2+ artifacts mapped to this branch)
285
+ - `&#8226;` = sparse (1 artifact, needs more)
286
+ - `&#11036;` = whitespace (0 artifacts in this topic branch)
287
+
288
+ Summary line:
289
+ ```
290
+ Topics: [N] branches | &#10003; [X] covered | &#8226; [Y] sparse | &#11036; [Z] whitespace
291
+ ```
292
+
293
+ **Zone 3 -- Intelligence Strip** (conditional):
294
+ ```
295
+ &#11036; [N] topic branches have zero coverage
296
+ &#9889; [topic] converges with existing room section [section]
297
+ ```
298
+
299
+ **Zone 4 -- Action Footer:**
300
+ ```
301
+ > /mos:whitespace map See density scores per zone
302
+ > /mos:whitespace analyze [whitespace_topic] Investigate biggest gap
303
+ > /mos:explore-domains Fill empty branches
304
+ ```
305
+
306
+ ## Subcommand: score
307
+
308
+ **Body Shape:** E (Action Report)
309
+
310
+ ### Step 1: Read Scores
311
+
312
+ ```bash
313
+ node "${CLAUDE_PLUGIN_ROOT}/scripts/whitespace-command.cjs" ROOM_DIR score
314
+ ```
315
+
316
+ Reads whitespace-results.json and extracts artifact_novelty_scores.
317
+
318
+ ### Step 2: Render 4-Zone Output
319
+
320
+ **Zone 1 -- Header Panel:**
321
+ ```
322
+ -- [Room Name] -- Whitespace Scores -- Novelty Ranking --
323
+ ```
324
+
325
+ **Zone 2 -- Content Body (Shape E: Action Report):**
326
+
327
+ ```
328
+ Artifact Section Novelty Nearest Concept
329
+ customer-jobs-analysis.md market-analysis/ 0.92 JTBD Framework
330
+ regulatory-landscape.md legal-ip/ 0.87 Regulatory Arbitrage
331
+ competitive-map.md competitive-analysis/ 0.34 Porter's Five Forces
332
+ problem-statement.md problem-definition/ 0.12 Beautiful Questions
333
+ ```
334
+
335
+ Sorted by novelty_score descending (most novel first).
336
+ - Novelty 0.8+ = highly novel (far from existing knowledge)
337
+ - Novelty 0.4-0.8 = moderately novel
338
+ - Novelty < 0.4 = well-covered territory
339
+
340
+ Summary line:
341
+ ```
342
+ Artifacts: [N] | Novel (>0.8): [X] | Moderate: [Y] | Covered (<0.4): [Z]
343
+ ```
344
+
345
+ **Zone 3 -- Intelligence Strip** (conditional):
346
+ ```
347
+ &#9889; [artifact] scores 0.9+ novelty -- genuinely unprecedented insight
348
+ ```
349
+
350
+ **Zone 4 -- Action Footer:**
351
+ ```
352
+ > /mos:whitespace map See where gaps cluster
353
+ > /mos:whitespace analyze [top_zone] Investigate the sparsest zone
354
+ > /mos:room [section_of_top_novel] Review your most novel work
355
+ ```
356
+
357
+ ## Subcommand: external
358
+
359
+ **Body Shape:** E (Action Report)
360
+
361
+ ### Step 1: Run External Pipeline
362
+
363
+ ```bash
364
+ node "${CLAUDE_PLUGIN_ROOT}/scripts/whitespace-command.cjs" ROOM_DIR external
365
+ ```
366
+
367
+ If the scripts are not yet installed, the dispatcher shows:
368
+
369
+ ```
370
+ x External corpus not configured
371
+ Why: Phase 66 Plan 02 scripts not installed yet
372
+ Fix: /mos:whitespace external (available after Plan 02 deployment)
373
+ ```
374
+
375
+ When Semantic Scholar is fully unreachable (network failure or every query rate-limited), the dispatcher shows (Phase 88.6-03):
376
+
377
+ ```
378
+ x Semantic Scholar unavailable
379
+ Why: All queries rate-limited or network failure
380
+ Fix: /mos:whitespace external (retry in 60 seconds if rate-limited)
381
+ ```
382
+
383
+ ### Step 2: Render 4-Zone Output (when available)
384
+
385
+ **Zone 1 -- Header Panel:**
386
+ ```
387
+ -- [Room Name] -- Whitespace External -- Cross-Domain --
388
+ ```
389
+
390
+ **Zone 2 -- Content Body (Shape E: Action Report):**
391
+
392
+ ```
393
+ Action: External whitespace scan
394
+ Source: Semantic Scholar API
395
+
396
+ Cross-Domain Zones Found: [N]
397
+ |- [zone_id]: [description] (from: [paper_title])
398
+ |- [zone_id]: [description] (from: [paper_title])
399
+ \- [zone_id]: [description] (from: [paper_title])
400
+
401
+ Papers Analyzed: [N]
402
+ Top Matches:
403
+ |- [paper_title] ([year]) -- relevance: [score]
404
+ \- [paper_title] ([year]) -- relevance: [score]
405
+ ```
406
+
407
+ **Zone 3 -- Intelligence Strip** (conditional, max 3 signals, Phase 88.6-03):
408
+ ```
409
+ warning N of M Semantic Scholar queries rate-limited (partial results shown)
410
+ warning N of M Semantic Scholar queries errored (partial results shown)
411
+ lightning External literature reveals [N] cross-domain connections
412
+ ```
413
+
414
+ All three signals can appear together when partial results still surface cross-domain connections. Glyph names in backticks refer to the 12 approved glyphs from `skills/ui-system/SKILL.md` Section 3.
415
+
416
+ **Zone 4 -- Action Footer:**
417
+ ```
418
+ > /mos:whitespace analyze [zone_id] Investigate external zone
419
+ > /mos:whitespace discover Run full Discovery Cycle
420
+ > /mos:research [topic] Deep-dive into a finding
421
+ ```
422
+
423
+ ### Rate-Limit Behavior
424
+
425
+ Semantic Scholar free tier enforces a max of 1 request per second. When burst queries trigger 429 responses, rate-limited queries are logged and skipped; the pipeline continues with whatever papers returned. The Zone 3 warning surfaces `N of M queries rate-limited` so the user knows coverage may be partial and the cause is external throttling, not empty-result. Per-query outcomes (`ok` / `rate_limited` / `api_error` / `network_error` / `timeout` / `not_attempted`) are persisted in `.mindrian/external-papers.json` under the top-level `queries[]` array so the dispatcher shows real telemetry rather than guessing. Retrying after 60 seconds typically recovers the full set because the cache (7-day TTL) preserves successful results from the first pass.
426
+
427
+ Canon Part 8 Graph Boundary: external papers are SIGNAL (public data) per canon Part 8. They flow LOCAL only (to `{roomDir}/.mindrian/external-papers.json`), never to Brain. No user-specific strings are ever sent to Semantic Scholar or Brain in this pipeline. The query keywords are extracted from local artifact titles and framework names, sent to the public Semantic Scholar API over HTTPS, and the returned abstracts stay on disk in the room.
428
+
429
+ ## Subcommand: discover
430
+
431
+ **Body Shape:** E (Action Report)
432
+
433
+ ### Step 1: Run Discovery Cycle
434
+
435
+ ```bash
436
+ node "${CLAUDE_PLUGIN_ROOT}/scripts/whitespace-command.cjs" ROOM_DIR discover
437
+ ```
438
+
439
+ Runs discovery-cycle.cjs with `--steps all`. This chains HSI, RS, and Analogy whitespace detection.
440
+
441
+ ### Step 2: Render 4-Zone Output
442
+
443
+ **Zone 1 -- Header Panel:**
444
+ ```
445
+ -- [Room Name] -- Whitespace Discover -- Full Cycle --
446
+ ```
447
+
448
+ **Zone 2 -- Content Body (Shape E: Action Report):**
449
+
450
+ ```
451
+ Action: Discovery Cycle
452
+ Steps: HSI -> RS -> Analogy
453
+
454
+ Results:
455
+ |- HSI Whitespace: [N] zones (between connected artifacts)
456
+ |- RS Whitespace: [N] zones (downstream of bottlenecks)
457
+ \- Analogy Whitespace: [N] zones (unmapped transfer zones)
458
+
459
+ Total Zones: [N]
460
+ Validated: [X] / [N]
461
+
462
+ Top Discoveries:
463
+ |- [zone_id] [gap_signal] -- [hypothesis preview, 80 chars]
464
+ |- [zone_id] [gap_signal] -- [hypothesis preview, 80 chars]
465
+ \- [zone_id] [gap_signal] -- [hypothesis preview, 80 chars]
466
+ ```
467
+
468
+ **Zone 3 -- Intelligence Strip** (conditional):
469
+ ```
470
+ &#9889; Discovery found [N] strong-signal zones across [X] pipeline sources
471
+ &#9888; [N] zones failed validation -- may be noise
472
+ ```
473
+
474
+ **Zone 4 -- Action Footer:**
475
+ ```
476
+ > /mos:whitespace map Visualize all zones
477
+ > /mos:whitespace analyze [top_zone] Deep-dive the strongest signal
478
+ > /mos:whitespace score Check artifact novelty
479
+ ```
480
+
481
+ ## Error Handling
482
+
483
+ All errors use the 3-line pattern (per D-24):
484
+
485
+ ```
486
+ x [What failed]
487
+ Why: [Specific reason]
488
+ Fix: [One resolving command]
489
+ ```
490
+
491
+ Common errors:
492
+
493
+ - **No Python installed:** `x Python 3 not found / Why: Whitespace pipeline requires Python 3.8+ / Fix: Install Python 3 and retry`
494
+ - **No embeddings:** `x No whitespace embeddings / Why: Pipeline needs to embed room artifacts first / Fix: /mos:whitespace map (runs embedder automatically)`
495
+ - **Script timeout:** `x Pipeline timed out / Why: Room has too many artifacts for default timeout / Fix: Run with fewer sections or contact support`
496
+
497
+ ## Cross-Surface Adaptation
498
+
499
+ - **CLI:** Full power. Scripts run via Bash, output formatted for terminal.
500
+ - **Desktop:** Larry describes the whitespace findings conversationally. Numbers and zone IDs still shown but in natural language context.
501
+ - **Cowork:** Same as CLI. Zone data can be shared via 00_Context/ for team visibility.
@@ -0,0 +1,69 @@
1
+ ---
2
+ name: wiki
3
+ description: Open the Data Room wiki of room sections
4
+ body_shape: D (Document View)
5
+ serves_jtbd: ["audit-room", "prepare-pitch"]
6
+ ui_reference: skills/ui-system/SKILL.md
7
+ allowed-tools:
8
+ - Bash
9
+ - Read
10
+ ---
11
+ # /mos:wiki
12
+
13
+ Open the localhost wiki dashboard for the current Data Room.
14
+
15
+ ## What it does
16
+ Launches a local Express server that renders room/ .md files as Wikipedia-style pages with:
17
+ - Section navigation sidebar (collapsible folder tree)
18
+ - Table of contents per page
19
+ - Infobox from YAML frontmatter
20
+ - [[wikilink]] cross-references as clickable hyperlinks
21
+ - SQLite graph edges as "See also" and backlinks
22
+ - Interactive knowledge graph view (home page)
23
+ - Full-text search across all pages
24
+ - Dark/light mode toggle
25
+ - Onboarding tour for first-time users (guided walkthrough with skip)
26
+ - De Stijl design
27
+
28
+ ## Usage
29
+
30
+ ```bash
31
+ # Open the wiki locally
32
+ bash scripts/serve-wiki
33
+
34
+ # Export as static HTML for sharing
35
+ bash scripts/serve-wiki --export
36
+ ```
37
+
38
+ ## Flags
39
+
40
+ - **No flags** - Opens wiki in browser at localhost:8421
41
+ - **`--export`** - Generates a static HTML bundle in `export/wiki/` that can be:
42
+ - Deployed to Render or Vercel for team sharing
43
+ - Sent as a zip file
44
+ - Hosted anywhere as static files
45
+
46
+ ## Sharing Your Data Room
47
+
48
+ Want to share with teammates or investors?
49
+
50
+ 1. Run `/mos:wiki --export` to generate static HTML
51
+ 2. Deploy to Vercel: `cd export/wiki && npx vercel`
52
+ 3. Or deploy to Render: push `export/wiki/` to a repo with a `render.yaml`
53
+ 4. Or just zip and send: `zip -r data-room.zip export/wiki/`
54
+
55
+ **Privacy note:** The exported HTML contains your room content. Share only what you intend to share. MindrianOS does not host or access your data.
56
+
57
+ ## First-Time Experience
58
+
59
+ New users get an automatic guided tour:
60
+ 1. Highlights each wiki zone (header, sidebar, content, infobox, search, footer)
61
+ 2. Explains what each part does
62
+ 3. "Next" to continue, "Skip tour" to dismiss
63
+ 4. Tour never shows again after completion (stored in localStorage)
64
+
65
+ ## Notes
66
+ - Port: 8421 (auto-increments if busy, range 8421-8430)
67
+ - Read-only: edit files in your IDE, wiki auto-refreshes via file watcher
68
+ - Graph dashboard remains at port 8420 via /mos:visualize
69
+ - Chat panel is present (stub - full Larry integration coming)