@mindrian_os/install 1.13.0-beta.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +21 -0
- package/.mcp.json +9 -0
- package/CHANGELOG.md +3333 -0
- package/LICENSE +123 -0
- package/README.md +673 -0
- package/agents/brain-query.md +80 -0
- package/agents/framework-runner.md +237 -0
- package/agents/grading.md +188 -0
- package/agents/investor.md +128 -0
- package/agents/larry-extended.md +135 -0
- package/agents/opportunity-scanner.md +91 -0
- package/agents/persona-analyst.md +132 -0
- package/agents/research.md +89 -0
- package/agents/reverse-salient-agent.md +27 -0
- package/bin/cli.js +142 -0
- package/bin/mindrian-mcp-server.cjs +182 -0
- package/bin/mindrian-tools.cjs +765 -0
- package/commands/act.md +439 -0
- package/commands/admin.md +404 -0
- package/commands/analyze-needs.md +42 -0
- package/commands/analyze-systems.md +39 -0
- package/commands/analyze-timing.md +42 -0
- package/commands/auto-explore.md +64 -0
- package/commands/beautiful-question.md +40 -0
- package/commands/brain-derive.md +78 -0
- package/commands/build-knowledge.md +42 -0
- package/commands/build-thesis.md +46 -0
- package/commands/causal.md +234 -0
- package/commands/challenge-assumptions.md +33 -0
- package/commands/compare-ventures.md +83 -0
- package/commands/dashboard.md +110 -0
- package/commands/deep-grade.md +82 -0
- package/commands/diagnose.md +58 -0
- package/commands/diagnostics.md +151 -0
- package/commands/doctor.md +151 -0
- package/commands/dominant-designs.md +40 -0
- package/commands/explain-decision.md +87 -0
- package/commands/explore-domains.md +42 -0
- package/commands/explore-futures.md +40 -0
- package/commands/explore-trends.md +42 -0
- package/commands/export.md +103 -0
- package/commands/file-meeting.md +724 -0
- package/commands/find-analogies.md +188 -0
- package/commands/find-bottlenecks.md +62 -0
- package/commands/find-connections.md +76 -0
- package/commands/funding.md +81 -0
- package/commands/grade.md +203 -0
- package/commands/graph.md +128 -0
- package/commands/hat-briefing.md +125 -0
- package/commands/heal.md +196 -0
- package/commands/help.md +399 -0
- package/commands/hmi-status.md +172 -0
- package/commands/jtbd.md +241 -0
- package/commands/leadership.md +73 -0
- package/commands/lean-canvas.md +40 -0
- package/commands/macro-trends.md +40 -0
- package/commands/map-unknowns.md +40 -0
- package/commands/memory.md +173 -0
- package/commands/models.md +175 -0
- package/commands/mos-reason.md +285 -0
- package/commands/mullins.md +120 -0
- package/commands/new-project.md +481 -0
- package/commands/onboard.md +434 -0
- package/commands/operator.md +149 -0
- package/commands/opportunities.md +144 -0
- package/commands/organize.md +497 -0
- package/commands/persona.md +198 -0
- package/commands/pipeline.md +112 -0
- package/commands/present.md +91 -0
- package/commands/publish.md +201 -0
- package/commands/query.md +124 -0
- package/commands/radar.md +72 -0
- package/commands/reanalyze.md +91 -0
- package/commands/research.md +196 -0
- package/commands/room.md +352 -0
- package/commands/rooms.md +598 -0
- package/commands/root-cause.md +40 -0
- package/commands/rs-experts.md +85 -0
- package/commands/rs-explain.md +100 -0
- package/commands/rs-fetch.md +94 -0
- package/commands/rs-thesis.md +85 -0
- package/commands/scenario-plan.md +40 -0
- package/commands/scheduled-tasks.md +285 -0
- package/commands/score-innovation.md +43 -0
- package/commands/scout.md +239 -0
- package/commands/setup.md +618 -0
- package/commands/snapshot.md +147 -0
- package/commands/speakers.md +84 -0
- package/commands/splash.md +28 -0
- package/commands/status.md +75 -0
- package/commands/structure-argument.md +42 -0
- package/commands/suggest-next.md +80 -0
- package/commands/systems-thinking.md +40 -0
- package/commands/think-hats.md +42 -0
- package/commands/update.md +181 -0
- package/commands/user-needs.md +40 -0
- package/commands/validate.md +40 -0
- package/commands/value-proposition.md +61 -0
- package/commands/vault.md +180 -0
- package/commands/visualize.md +52 -0
- package/commands/whitespace.md +507 -0
- package/commands/wiki.md +69 -0
- package/hooks/hooks.json +381 -0
- package/hooks/run-hook.cmd +64 -0
- package/lib/__init__.py +0 -0
- package/lib/__pycache__/__init__.cpython-312.pyc +0 -0
- package/lib/agents/auto-explore-agent.cjs +1043 -0
- package/lib/agents/reverse-salient-agent.cjs +679 -0
- package/lib/agents/tension-hook-agent.cjs +544 -0
- package/lib/brain/ROOM.md +44 -0
- package/lib/brain/chain-recommender.cjs +301 -0
- package/lib/chat/chat-context.js +185 -0
- package/lib/chat/chat-panel.js +721 -0
- package/lib/chat/fabric-chat.cjs +288 -0
- package/lib/chat/generative-tools.js +219 -0
- package/lib/conversation/ROOM.md +39 -0
- package/lib/conversation/classifier-rules.json +38 -0
- package/lib/conversation/classifier.cjs +264 -0
- package/lib/conversation/operator.cjs +287 -0
- package/lib/copy/115-spec-strings.cjs +55 -0
- package/lib/core/__init__.py +0 -0
- package/lib/core/__nav-stub.cjs +14 -0
- package/lib/core/__pycache__/__init__.cpython-312.pyc +0 -0
- package/lib/core/__pycache__/rs-math.cpython-312.pyc +0 -0
- package/lib/core/__pycache__/rs_cache.cpython-312.pyc +0 -0
- package/lib/core/__pycache__/rs_corpus.cpython-312.pyc +0 -0
- package/lib/core/__pycache__/rs_hybrid.cpython-312.pyc +0 -0
- package/lib/core/__pycache__/rs_math.cpython-312.pyc +0 -0
- package/lib/core/__pycache__/rs_rooms.cpython-312.pyc +0 -0
- package/lib/core/artifact-id.cjs +148 -0
- package/lib/core/asset-ops.cjs +151 -0
- package/lib/core/auto-commit-throttle.cjs +129 -0
- package/lib/core/bearer-token.cjs +199 -0
- package/lib/core/brain-client.cjs +865 -0
- package/lib/core/brain-derivation-prompts.cjs +326 -0
- package/lib/core/brain-derivation-queue.cjs +431 -0
- package/lib/core/brain-derivation.cjs +580 -0
- package/lib/core/brain-md-schema.cjs +528 -0
- package/lib/core/brain-md-staleness.cjs +357 -0
- package/lib/core/brain-response-sanitize.cjs +188 -0
- package/lib/core/bridge-writer.cjs +477 -0
- package/lib/core/chat-context-builder.cjs +253 -0
- package/lib/core/cross-room-aggregator.cjs +762 -0
- package/lib/core/daily-briefing.cjs +438 -0
- package/lib/core/decision-capture.cjs +618 -0
- package/lib/core/deep-links.cjs +82 -0
- package/lib/core/dispatch-optimizer.cjs +354 -0
- package/lib/core/dual-path-detector.cjs +84 -0
- package/lib/core/dual-path-detector.test.cjs +334 -0
- package/lib/core/exports-log.cjs +79 -0
- package/lib/core/feynman-minto-invariants.cjs +605 -0
- package/lib/core/folder-memory-async.cjs +338 -0
- package/lib/core/folder-memory-shared.cjs +890 -0
- package/lib/core/folder-memory.cjs +416 -0
- package/lib/core/framework-chain-composer.cjs +411 -0
- package/lib/core/frontmatter-schemas.cjs +330 -0
- package/lib/core/git-ops.cjs +141 -0
- package/lib/core/graph-ops.cjs +258 -0
- package/lib/core/hat-persistence.cjs +362 -0
- package/lib/core/index.cjs +60 -0
- package/lib/core/integration-registry.cjs +232 -0
- package/lib/core/intelligence-cascade.cjs +661 -0
- package/lib/core/lazygraph-ops.cjs +1057 -0
- package/lib/core/lru-cache.cjs +139 -0
- package/lib/core/mcp-profiles.cjs +182 -0
- package/lib/core/meeting-ops.cjs +54 -0
- package/lib/core/memory-ops.cjs +600 -0
- package/lib/core/migrations/ROOM.md +33 -0
- package/lib/core/migrations/phase-109-nodes-provenance.cjs +339 -0
- package/lib/core/migrations/phase-109-session-focus.cjs +99 -0
- package/lib/core/model-profiles.cjs +246 -0
- package/lib/core/mullins-scaffold.cjs +160 -0
- package/lib/core/nav-dial.cjs +316 -0
- package/lib/core/navigation/ROOM.md +15 -0
- package/lib/core/navigation/explanation.cjs +43 -0
- package/lib/core/navigation/focus.cjs +135 -0
- package/lib/core/navigation/ingestion.cjs +82 -0
- package/lib/core/navigation/insights.cjs +350 -0
- package/lib/core/navigation/memory-events.cjs +118 -0
- package/lib/core/navigation/neighborhood.cjs +78 -0
- package/lib/core/navigation/packet.cjs +182 -0
- package/lib/core/navigation/room-home.cjs +127 -0
- package/lib/core/navigation/transitions.cjs +82 -0
- package/lib/core/navigation-engine-shared.cjs +242 -0
- package/lib/core/navigation-engine.cjs +664 -0
- package/lib/core/navigation.cjs +60 -0
- package/lib/core/nl-graph-queries.cjs +164 -0
- package/lib/core/offer-presenter.cjs +406 -0
- package/lib/core/opportunity-extractor.cjs +183 -0
- package/lib/core/opportunity-ops.cjs +1371 -0
- package/lib/core/persona-ops.cjs +537 -0
- package/lib/core/persona-taxonomy.cjs +190 -0
- package/lib/core/platform-gates.cjs +120 -0
- package/lib/core/platform.cjs +257 -0
- package/lib/core/proactive-intelligence.cjs +528 -0
- package/lib/core/problem-type-router.cjs +315 -0
- package/lib/core/reasoning-ops.cjs +639 -0
- package/lib/core/reverse-salient-persona-suffix.cjs +115 -0
- package/lib/core/room-classifier-strict-mode.cjs +229 -0
- package/lib/core/room-db.cjs +127 -0
- package/lib/core/room-ops-async.cjs +92 -0
- package/lib/core/room-ops-shared.cjs +64 -0
- package/lib/core/room-ops-sync.cjs +70 -0
- package/lib/core/room-ops.cjs +32 -0
- package/lib/core/room-type-detector.cjs +386 -0
- package/lib/core/rs-brain-substrate-prompts.cjs +129 -0
- package/lib/core/rs-brain-substrate.cjs +570 -0
- package/lib/core/rs-breakthrough-scorer.cjs +255 -0
- package/lib/core/rs-canon-violations.cjs +82 -0
- package/lib/core/rs-chain-feeder.cjs +343 -0
- package/lib/core/rs-commercial-assessor.cjs +280 -0
- package/lib/core/rs-differential-scorer.cjs +376 -0
- package/lib/core/rs-domain-analyzer.cjs +385 -0
- package/lib/core/rs-egress-prompts.cjs +113 -0
- package/lib/core/rs-egress-telemetry.cjs +225 -0
- package/lib/core/rs-egress-violations.cjs +53 -0
- package/lib/core/rs-expert-mapper.cjs +467 -0
- package/lib/core/rs-fetcher-academic.cjs +697 -0
- package/lib/core/rs-fetcher-experts.cjs +314 -0
- package/lib/core/rs-fetcher-industry.cjs +731 -0
- package/lib/core/rs-fetcher-patents.cjs +564 -0
- package/lib/core/rs-innovation-classifier.cjs +194 -0
- package/lib/core/rs-mind-map.cjs +656 -0
- package/lib/core/rs-neo4j-writer.cjs +388 -0
- package/lib/core/rs-nl-to-query.cjs +425 -0
- package/lib/core/rs-pinecone-bridge.cjs +303 -0
- package/lib/core/rs-preprocessor.cjs +350 -0
- package/lib/core/rs-query-matrix.cjs +316 -0
- package/lib/core/rs-query-to-text.cjs +438 -0
- package/lib/core/rs-sqlite-mirror.cjs +443 -0
- package/lib/core/rs-thesis-generator.cjs +188 -0
- package/lib/core/rs_cache.py +479 -0
- package/lib/core/rs_corpus.py +468 -0
- package/lib/core/rs_hybrid.py +586 -0
- package/lib/core/rs_math.py +287 -0
- package/lib/core/rs_rooms.py +193 -0
- package/lib/core/scheduled-scanner.cjs +463 -0
- package/lib/core/scratchpad-ops.cjs +201 -0
- package/lib/core/section-8-trace-schema.cjs +138 -0
- package/lib/core/section-registry.cjs +111 -0
- package/lib/core/session-state.cjs +144 -0
- package/lib/core/shallow-doc-parser.cjs +174 -0
- package/lib/core/shallow-doc-parser.test.cjs +226 -0
- package/lib/core/skill-activation-router.cjs +284 -0
- package/lib/core/state-ops.cjs +46 -0
- package/lib/core/statusline-cache.cjs +266 -0
- package/lib/core/token-estimator.cjs +348 -0
- package/lib/core/user-archetype.cjs +239 -0
- package/lib/core/user-md-ops.cjs +524 -0
- package/lib/core/visual-ops.cjs +624 -0
- package/lib/core/write-lock.cjs +149 -0
- package/lib/graph/canvas-graph.js +467 -0
- package/lib/graph/constellation-config.cjs +299 -0
- package/lib/graph/graph-detail-panel.js +165 -0
- package/lib/hmi/ROOM.md +47 -0
- package/lib/hmi/across-session-memory.cjs +604 -0
- package/lib/hmi/cross-room-memory.cjs +575 -0
- package/lib/hmi/decoy-tier.cjs +395 -0
- package/lib/hmi/jtbd-classifier.cjs +219 -0
- package/lib/hmi/jtbd-state.cjs +199 -0
- package/lib/hmi/jtbd-taxonomy.json +392 -0
- package/lib/hmi/selector-dispatcher.cjs +546 -0
- package/lib/hmi/selector-telemetry.cjs +263 -0
- package/lib/hmi/shape-f0-renderer.cjs +139 -0
- package/lib/hmi/shape-f1-fallback.cjs +80 -0
- package/lib/hmi/shape-f1-renderer.cjs +138 -0
- package/lib/hmi/shape-f2-renderer.cjs +132 -0
- package/lib/hmi/shape-f3-renderer.cjs +66 -0
- package/lib/hmi/shape-f4-renderer.cjs +72 -0
- package/lib/hmi/shape-f5-renderer.cjs +155 -0
- package/lib/hmi/shape-f6-plan-review-renderer.cjs +312 -0
- package/lib/hmi/shape-f6-renderer.cjs +144 -0
- package/lib/hmi/shape-g-renderer.cjs +219 -0
- package/lib/hmi/shape-h-renderer.cjs +222 -0
- package/lib/hmi/tier-check.cjs +63 -0
- package/lib/import/PRECONDITIONS.md +41 -0
- package/lib/import/branding.cjs +210 -0
- package/lib/import/branding.test.cjs +235 -0
- package/lib/import/classifications-sync.cjs +104 -0
- package/lib/import/classifications-sync.test.cjs +129 -0
- package/lib/import/enricher.cjs +296 -0
- package/lib/import/enricher.test.cjs +273 -0
- package/lib/import/integration.test.cjs +376 -0
- package/lib/import/manifest.cjs +129 -0
- package/lib/import/manifest.schema.json +185 -0
- package/lib/import/manifest.test.cjs +123 -0
- package/lib/import/meeting-detector.cjs +92 -0
- package/lib/import/meeting-detector.test.cjs +100 -0
- package/lib/import/person-detector.cjs +229 -0
- package/lib/import/person-detector.test.cjs +149 -0
- package/lib/import/report.cjs +186 -0
- package/lib/import/report.test.cjs +186 -0
- package/lib/import/room-md-scaffolder.cjs +49 -0
- package/lib/import/router.cjs +224 -0
- package/lib/import/router.test.cjs +356 -0
- package/lib/import/run-all-tests.cjs +36 -0
- package/lib/import/smoke-test.cjs +213 -0
- package/lib/import/smoke-test.test.cjs +148 -0
- package/lib/import/test-fixtures/collision-vault/preexisting-room/STATE.md +8 -0
- package/lib/import/test-fixtures/collision-vault/preexisting-room/problem-definition/onboarding/onboarding.md +7 -0
- package/lib/import/test-fixtures/collision-vault/source/onboarding.md +5 -0
- package/lib/import/test-fixtures/obsidian-vault/.obsidian/workspace.json +1 -0
- package/lib/import/test-fixtures/obsidian-vault/notes/with-wikilinks.md +4 -0
- package/lib/import/test-fixtures/tiny-vault/notes/2026-01-15-team-sync.md +9 -0
- package/lib/import/test-fixtures/tiny-vault/notes/empty.md +3 -0
- package/lib/import/test-fixtures/tiny-vault/notes/onboarding.md +5 -0
- package/lib/import/test-fixtures/tiny-vault/notes/pricing.md +5 -0
- package/lib/import/test-fixtures/tiny-vault/notes/random.md +4 -0
- package/lib/import/undo.test.cjs +199 -0
- package/lib/import/vault-scanner.cjs +105 -0
- package/lib/import/vault-scanner.test.cjs +67 -0
- package/lib/mcp/app-html/dashboard.html +316 -0
- package/lib/mcp/app-html/graph.html +428 -0
- package/lib/mcp/app-html/mindrian-platform.html +1841 -0
- package/lib/mcp/app-html/wiki.html +383 -0
- package/lib/mcp/app-views.cjs +322 -0
- package/lib/mcp/brain-router.cjs +418 -0
- package/lib/mcp/capability-registry.cjs +62 -0
- package/lib/mcp/larry-context.cjs +46 -0
- package/lib/mcp/larry-server-instructions.md +114 -0
- package/lib/mcp/pipeline-state.cjs +275 -0
- package/lib/mcp/prompts.cjs +302 -0
- package/lib/mcp/resources.cjs +227 -0
- package/lib/mcp/session-catchup.cjs +327 -0
- package/lib/mcp/surface-detect.cjs +75 -0
- package/lib/mcp/tool-router.cjs +1034 -0
- package/lib/memory/aaak-compress.cjs +403 -0
- package/lib/memory/aaak-compress.test.cjs +288 -0
- package/lib/memory/async-artifact-auto-commit.test.cjs +223 -0
- package/lib/memory/bearer-token.test.cjs +315 -0
- package/lib/memory/brain-cache-lru.test.cjs +259 -0
- package/lib/memory/brain-client-query-shape.test.cjs +160 -0
- package/lib/memory/brain-derivation-graceful-degradation.test.cjs +1019 -0
- package/lib/memory/brain-derivation-queue.test.cjs +539 -0
- package/lib/memory/brain-derivation.test.cjs +634 -0
- package/lib/memory/brain-derive-command.test.cjs +534 -0
- package/lib/memory/brain-md-invariants-validator.test.cjs +704 -0
- package/lib/memory/brain-md-schema.test.cjs +467 -0
- package/lib/memory/brain-md-staleness.test.cjs +525 -0
- package/lib/memory/brain-server-resolution.test.cjs +314 -0
- package/lib/memory/chain-recommender.test.cjs +233 -0
- package/lib/memory/chat-context.test.cjs +128 -0
- package/lib/memory/command-registry.test.cjs +220 -0
- package/lib/memory/cross-room-aggregator.test.cjs +909 -0
- package/lib/memory/dashboard-server.test.cjs +256 -0
- package/lib/memory/debouncer-drain-at-prompt.test.cjs +389 -0
- package/lib/memory/decision-capture.test.cjs +632 -0
- package/lib/memory/decision-capture.worker.cjs +70 -0
- package/lib/memory/explain-decision-command.test.cjs +521 -0
- package/lib/memory/explain-decision-footer.test.cjs +316 -0
- package/lib/memory/explored-materials-store.cjs +392 -0
- package/lib/memory/feynman-minto-guardian.test.cjs +736 -0
- package/lib/memory/feynman-minto-invariants.test.cjs +511 -0
- package/lib/memory/feynman-prompts-drift.test.cjs +144 -0
- package/lib/memory/feynman-prompts.cjs +151 -0
- package/lib/memory/feynman-prompts.test.cjs +96 -0
- package/lib/memory/folder-memory-quadruple.test.cjs +548 -0
- package/lib/memory/folder-memory.test.cjs +503 -0
- package/lib/memory/framework-chain-composer.test.cjs +515 -0
- package/lib/memory/frontmatter-schema-validator.test.cjs +290 -0
- package/lib/memory/heal-command.test.cjs +604 -0
- package/lib/memory/index-artifact-transaction.test.cjs +333 -0
- package/lib/memory/lazygraph-rs-discoveries-view.test.cjs +122 -0
- package/lib/memory/mcp-input-validation.test.cjs +240 -0
- package/lib/memory/mcp-server-brain-deps.test.cjs +270 -0
- package/lib/memory/mcp-stack-fallback.test.cjs +433 -0
- package/lib/memory/minto-debouncer.test.cjs +407 -0
- package/lib/memory/minto-debouncer.worker.cjs +46 -0
- package/lib/memory/minto-migration-v88.test.cjs +265 -0
- package/lib/memory/minto-schema-v88.test.cjs +390 -0
- package/lib/memory/mos-status-renderer.test.cjs +631 -0
- package/lib/memory/narrative-schema.cjs +376 -0
- package/lib/memory/narrative-schema.test.cjs +209 -0
- package/lib/memory/nav-dial.test.cjs +414 -0
- package/lib/memory/navigation-engine-core.test.cjs +722 -0
- package/lib/memory/navigation-invariants.test.cjs +483 -0
- package/lib/memory/offer-presenter.test.cjs +554 -0
- package/lib/memory/on-stop-snapshot.test.cjs +404 -0
- package/lib/memory/pending-tension-store.cjs +373 -0
- package/lib/memory/post-compact-reinjection.test.cjs +854 -0
- package/lib/memory/post-write-triple.test.cjs +317 -0
- package/lib/memory/pre-compact-snapshot.test.cjs +495 -0
- package/lib/memory/problem-type-router.test.cjs +656 -0
- package/lib/memory/query-efficiency-telemetry.test.cjs +370 -0
- package/lib/memory/recompile-room-references.test.cjs +392 -0
- package/lib/memory/recompile-room-references.worker.cjs +42 -0
- package/lib/memory/record-decision-dual-write.test.cjs +454 -0
- package/lib/memory/room-classifier-strict-mode.test.cjs +417 -0
- package/lib/memory/room-minto-hook.test.cjs +398 -0
- package/lib/memory/rs-discovery-engine.test.cjs +323 -0
- package/lib/memory/run-feynman-tests.cjs +1247 -0
- package/lib/memory/security-trifecta.test.cjs +312 -0
- package/lib/memory/session-start-brain-staleness.test.cjs +363 -0
- package/lib/memory/session-start-triple-injection.test.cjs +514 -0
- package/lib/memory/sessionstart-banner-formatter.cjs +318 -0
- package/lib/memory/sessionstart-minto-banner.test.cjs +373 -0
- package/lib/memory/skill-activation-router.test.cjs +419 -0
- package/lib/memory/stamp-artifact-write.test.cjs +304 -0
- package/lib/memory/statusline-active-room.test.cjs +315 -0
- package/lib/memory/statusline-minto-segment.test.cjs +292 -0
- package/lib/memory/sync-async-entry-points.test.cjs +204 -0
- package/lib/memory/test-bridge-writer-enhanced.cjs +452 -0
- package/lib/memory/test-rs-brain-substrate-shape.cjs +529 -0
- package/lib/memory/test-rs-brain-substrate.cjs +636 -0
- package/lib/memory/test-rs-breakthrough-scorer.cjs +375 -0
- package/lib/memory/test-rs-canon-violations.cjs +218 -0
- package/lib/memory/test-rs-chain-feeder-core.cjs +344 -0
- package/lib/memory/test-rs-chain-feeder-skill-spawn.cjs +297 -0
- package/lib/memory/test-rs-commercial-assessor.cjs +385 -0
- package/lib/memory/test-rs-differential-scorer.cjs +480 -0
- package/lib/memory/test-rs-discovery-engine.cjs +603 -0
- package/lib/memory/test-rs-domain-analyzer.cjs +492 -0
- package/lib/memory/test-rs-egress-primitives.cjs +420 -0
- package/lib/memory/test-rs-expert-mapper.cjs +547 -0
- package/lib/memory/test-rs-explain-command.cjs +443 -0
- package/lib/memory/test-rs-fetcher-academic.cjs +848 -0
- package/lib/memory/test-rs-fetcher-experts.cjs +496 -0
- package/lib/memory/test-rs-fetcher-industry.cjs +702 -0
- package/lib/memory/test-rs-fetcher-patents.cjs +674 -0
- package/lib/memory/test-rs-innovation-classifier.cjs +301 -0
- package/lib/memory/test-rs-mind-map.cjs +646 -0
- package/lib/memory/test-rs-neo4j-writer.cjs +518 -0
- package/lib/memory/test-rs-nl-to-query.cjs +449 -0
- package/lib/memory/test-rs-pinecone-bridge.cjs +277 -0
- package/lib/memory/test-rs-preprocessor.cjs +433 -0
- package/lib/memory/test-rs-query-matrix.cjs +391 -0
- package/lib/memory/test-rs-query-to-text.cjs +551 -0
- package/lib/memory/test-rs-sqlite-mirror.cjs +649 -0
- package/lib/memory/test-rs-thesis-generator.cjs +360 -0
- package/lib/memory/triple-context-formatter.cjs +473 -0
- package/lib/memory/triple-context-formatter.test.cjs +442 -0
- package/lib/memory/user-md-persona.test.cjs +565 -0
- package/lib/memory/userpromptsubmit-integration.test.cjs +690 -0
- package/lib/memory/validators/README.md +157 -0
- package/lib/memory/validators/brain-md-invariants.cjs +475 -0
- package/lib/memory/validators/brain-substrate-invariants.cjs +285 -0
- package/lib/memory/validators/external-academic-invariants.cjs +249 -0
- package/lib/memory/validators/external-industry-invariants.cjs +271 -0
- package/lib/memory/validators/external-patents-invariants.cjs +266 -0
- package/lib/memory/validators/minto-invariants.cjs +62 -0
- package/lib/memory/validators/navigation-invariants.cjs +340 -0
- package/lib/memory/validators/queue-health.cjs +95 -0
- package/lib/memory/validators/snapshot-integrity.cjs +129 -0
- package/lib/memory/validators/stale-lifecycle.cjs +116 -0
- package/lib/memory/vault-section-minto-generator-atomic.test.cjs +556 -0
- package/lib/memory/vault-section-minto-generator-atomic.worker.cjs +73 -0
- package/lib/memory/write-lock-atomic.test.cjs +137 -0
- package/lib/memory/write-lock-atomic.worker.cjs +55 -0
- package/lib/parity/check-parity.cjs +83 -0
- package/lib/presentation/presentation-server.cjs +101 -0
- package/lib/presentation/presentation-watcher.cjs +123 -0
- package/lib/quickview/hub-server.cjs +719 -0
- package/lib/quickview/server.cjs +533 -0
- package/lib/render/JTBD-PALETTES.md +145 -0
- package/lib/render/ROOM.md +59 -0
- package/lib/render/render-v2.cjs +486 -0
- package/lib/render/render-v2.test.cjs +267 -0
- package/lib/render/render.cjs +65 -0
- package/lib/state/ROOM.md +46 -0
- package/lib/state/state-md-parser.cjs +215 -0
- package/lib/statusline/ROOM.md +38 -0
- package/lib/statusline/banner-suppression.cjs +50 -0
- package/lib/statusline/surface-detect.cjs +85 -0
- package/lib/update-bootstrap.sh.template +145 -0
- package/lib/vault/frontmatter-schema.cjs +297 -0
- package/lib/vault/room-scanner.cjs +352 -0
- package/lib/vault/wikilink-builder.cjs +231 -0
- package/lib/vault/wikilink-builder.test.cjs +182 -0
- package/lib/wiki/graph-links.cjs +281 -0
- package/lib/wiki/page-renderer.cjs +229 -0
- package/lib/wiki/wiki-chat.cjs +81 -0
- package/lib/wiki/wiki-layout.cjs +1459 -0
- package/lib/wiki/wiki-search.cjs +142 -0
- package/lib/wiki/wiki-server.cjs +678 -0
- package/lib/wiki/wiki-watcher.cjs +105 -0
- package/lib/workflow/ROOM.md +47 -0
- package/lib/workflow/command-resolver.cjs +155 -0
- package/lib/workflow/command-resolver.test.cjs +235 -0
- package/package.json +44 -0
- package/pipelines/analogy/01-decompose.md +80 -0
- package/pipelines/analogy/02-abstract.md +87 -0
- package/pipelines/analogy/03-search.md +135 -0
- package/pipelines/analogy/04-transfer.md +101 -0
- package/pipelines/analogy/05-validate.md +106 -0
- package/pipelines/analogy/CHAIN.md +56 -0
- package/pipelines/discovery/01-explore-domains.md +44 -0
- package/pipelines/discovery/02-think-hats.md +50 -0
- package/pipelines/discovery/03-analyze-needs.md +54 -0
- package/pipelines/discovery/CHAIN.md +37 -0
- package/pipelines/thesis/01-structure-argument.md +45 -0
- package/pipelines/thesis/02-challenge-assumptions.md +48 -0
- package/pipelines/thesis/03-build-thesis.md +54 -0
- package/pipelines/thesis/CHAIN.md +37 -0
- package/references/brain/causal-directives.md +91 -0
- package/references/brain/causal-enrichment.cypher +165 -0
- package/references/brain/command-triggers-schema.md +226 -0
- package/references/brain/graph-architecture.md +317 -0
- package/references/brain/query-patterns.md +460 -0
- package/references/brain/room-hierarchy-schema.md +218 -0
- package/references/brain/schema.md +76 -0
- package/references/capability-radar/capabilities-index.md +241 -0
- package/references/capability-radar/changelog-cache.md +81 -0
- package/references/causal/causal-schema.md +103 -0
- package/references/design/email-template-standard.md +155 -0
- package/references/design/graph-visualization-standard.md +178 -0
- package/references/document-generation.md +179 -0
- package/references/hsi/HSI-TOOLS-REFERENCE.md +222 -0
- package/references/import-config.md +141 -0
- package/references/integrations/detection-patterns.md +101 -0
- package/references/meeting/artifact-template.md +377 -0
- package/references/meeting/cross-meeting-intelligence.md +216 -0
- package/references/meeting/cross-relationship-patterns.md +202 -0
- package/references/meeting/live-join-interface.md +244 -0
- package/references/meeting/section-mapping.md +192 -0
- package/references/meeting/segment-classification.md +258 -0
- package/references/meeting/speaker-profile-template.md +219 -0
- package/references/meeting/summary-template.md +348 -0
- package/references/meeting/transcript-patterns.md +226 -0
- package/references/methodology/analyze-needs.md +135 -0
- package/references/methodology/analyze-systems.md +121 -0
- package/references/methodology/analyze-timing.md +149 -0
- package/references/methodology/beautiful-question.md +109 -0
- package/references/methodology/build-knowledge.md +161 -0
- package/references/methodology/build-thesis.md +237 -0
- package/references/methodology/challenge-assumptions.md +127 -0
- package/references/methodology/diagnose.md +169 -0
- package/references/methodology/dominant-designs.md +212 -0
- package/references/methodology/explore-domains.md +147 -0
- package/references/methodology/explore-futures.md +163 -0
- package/references/methodology/explore-trends.md +129 -0
- package/references/methodology/find-bottlenecks.md +131 -0
- package/references/methodology/grade.md +211 -0
- package/references/methodology/index.md +97 -0
- package/references/methodology/leadership.md +200 -0
- package/references/methodology/lean-canvas.md +116 -0
- package/references/methodology/macro-trends.md +192 -0
- package/references/methodology/map-unknowns.md +137 -0
- package/references/methodology/mullins-7-domains.md +104 -0
- package/references/methodology/problem-types.md +65 -0
- package/references/methodology/root-cause.md +178 -0
- package/references/methodology/sapphire-encoding.md +355 -0
- package/references/methodology/scenario-plan.md +178 -0
- package/references/methodology/score-innovation.md +154 -0
- package/references/methodology/structure-argument.md +158 -0
- package/references/methodology/systems-thinking.md +159 -0
- package/references/methodology/think-hats.md +147 -0
- package/references/methodology/triz-matrix.json +751 -0
- package/references/methodology/triz-principles.md +501 -0
- package/references/methodology/user-needs.md +199 -0
- package/references/methodology/validate.md +163 -0
- package/references/methodology/value-proposition.md +244 -0
- package/references/opportunities/funding-lifecycle.md +103 -0
- package/references/opportunities/grant-api-patterns.md +99 -0
- package/references/opportunities/opportunity-template.md +84 -0
- package/references/personality/assessment-philosophy.md +72 -0
- package/references/personality/lexicon.md +100 -0
- package/references/personality/persona-chains.md +56 -0
- package/references/personality/pws-lexicon-full.md +499 -0
- package/references/personality/voice-dna.md +156 -0
- package/references/personas/hat-perspectives.md +76 -0
- package/references/personas/persona-template.md +63 -0
- package/references/pipeline/act-output-contract.md +88 -0
- package/references/pipeline/chains-index.md +39 -0
- package/references/pws-profile-generation.md +79 -0
- package/references/reasoning/reasoning-schema.md +143 -0
- package/references/reasoning/reasoning-template.md +68 -0
- package/references/reasoning/run-template.md +38 -0
- package/references/research/RESEARCH_14_CLAUDE_CODE_SOURCE_ARCHITECTURE.md +209 -0
- package/references/research/RESEARCH_15_V1.8_OPTIMIZATION_JTBD.md +375 -0
- package/references/research/RESEARCH_16_NATIVE_FIRST_PLUGIN_ARCHITECTURE.md +575 -0
- package/references/research/RESEARCH_17_MCP_UI_FRAMEWORKS.md +272 -0
- package/references/taxonomy/TAXONOMY.md +192 -0
- package/references/templates/MINTO.md +36 -0
- package/references/user-research/2026-04-05-leah-lawrence-session.md +202 -0
- package/references/vault-kit/README.md +35 -0
- package/references/vault-kit/app.json +12 -0
- package/references/vault-kit/appearance.json +12 -0
- package/references/vault-kit/graph.json +35 -0
- package/references/vault-kit/snippets/mindrian-destijl.css +297 -0
- package/references/vault-kit/templates/new-artifact.md +37 -0
- package/references/vault-kit/templates/new-meeting-note.md +35 -0
- package/references/vault-kit/templates/new-team-profile.md +29 -0
- package/references/vault-kit/templates/new-xref.md +35 -0
- package/references/visual/symbol-system.md +151 -0
- package/skills/MOSDeckEngine/SKILL.md +325 -0
- package/skills/brain-connector/SKILL.md +114 -0
- package/skills/context-engine/SKILL.md +147 -0
- package/skills/conversation-mode/SKILL.md +102 -0
- package/skills/larry-personality/SKILL.md +219 -0
- package/skills/larry-personality/framework-chains.md +92 -0
- package/skills/larry-personality/mode-engine.md +185 -0
- package/skills/mullins-scaffold/SKILL.md +61 -0
- package/skills/mullins-scaffold/scaffold.json +146 -0
- package/skills/pws-methodology/SKILL.md +49 -0
- package/skills/room-passive/SKILL.md +165 -0
- package/skills/room-proactive/SKILL.md +250 -0
- package/skills/ui-system/SKILL.md +277 -0
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: opportunities
|
|
3
|
+
description: Discover and manage grants in the Opportunity Bank
|
|
4
|
+
argument-hint: [list|add|scan]
|
|
5
|
+
body_shape: E (Action Report)
|
|
6
|
+
serves_jtbd: ["explore"]
|
|
7
|
+
allowed-tools:
|
|
8
|
+
- Read
|
|
9
|
+
- Write
|
|
10
|
+
- Bash
|
|
11
|
+
- Glob
|
|
12
|
+
- Agent
|
|
13
|
+
- WebSearch
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# /mos:opportunities -- Grant Discovery + Opportunity Management
|
|
17
|
+
|
|
18
|
+
> Context-driven grant discovery. Larry reads your room, generates search queries, and presents opportunities for you to confirm or reject.
|
|
19
|
+
|
|
20
|
+
## How Opportunities Get Banked
|
|
21
|
+
|
|
22
|
+
Opportunities enter the bank through two paths:
|
|
23
|
+
|
|
24
|
+
1. **Grant discovery** (`/mos:opportunities scan`) - external funding opportunities from Grants.gov and Simpler Grants, filed after user confirmation
|
|
25
|
+
2. **Intelligence cascade** (automatic) - every methodology command that triggers analyze-room extracts gaps, convergences, and contradictions as bankable opportunities. These are filed automatically with no user action needed.
|
|
26
|
+
|
|
27
|
+
Every opportunity carries a Knight position (risk vs uncertainty vs mixed) and a confidence score. Risk = known problem with quantifiable odds. Uncertainty = unknown problem requiring exploration. Mixed = contradiction that could go either way.
|
|
28
|
+
|
|
29
|
+
## Subcommands
|
|
30
|
+
|
|
31
|
+
### scan
|
|
32
|
+
|
|
33
|
+
Run a context-driven grant discovery scan.
|
|
34
|
+
|
|
35
|
+
**How it works:**
|
|
36
|
+
1. Larry reads your room's STATE.md (domain, geography, venture stage) and problem-definition/ for context
|
|
37
|
+
2. Generates search queries from YOUR room data (not hardcoded searches)
|
|
38
|
+
3. Searches Grants.gov and Simpler Grants APIs concurrently
|
|
39
|
+
4. Deduplicates and scores results by relevance to your room
|
|
40
|
+
5. Presents results in a table with relevance reasoning
|
|
41
|
+
|
|
42
|
+
**After presenting results, ask the user:**
|
|
43
|
+
|
|
44
|
+
> I found {N} opportunities relevant to your venture. Here are the top matches:
|
|
45
|
+
>
|
|
46
|
+
> | # | Funder | Program | Amount | Deadline | Relevance |
|
|
47
|
+
> |---|--------|---------|--------|----------|-----------|
|
|
48
|
+
> | 1 | ... | ... | ... | ... | 0.85 |
|
|
49
|
+
>
|
|
50
|
+
> **What would you like to do?**
|
|
51
|
+
> - **File all** -- I'll file all opportunities to your opportunity-bank
|
|
52
|
+
> - **Review individually** -- I'll walk through each one for your decision
|
|
53
|
+
> - **Skip** -- No opportunities filed
|
|
54
|
+
|
|
55
|
+
This is the **confirm-first pattern**: Larry presents, user decides. Nothing is filed automatically.
|
|
56
|
+
|
|
57
|
+
**CLI:** `mindrian-tools.cjs opportunity scan [roomDir]`
|
|
58
|
+
**MCP:** `data_room` tool with command `scan-opportunities`
|
|
59
|
+
|
|
60
|
+
### list
|
|
61
|
+
|
|
62
|
+
Show filed opportunities with optional filters (--domain, --knight, --min-confidence).
|
|
63
|
+
|
|
64
|
+
**Display format:**
|
|
65
|
+
|
|
66
|
+
> | # | Source | Program/Problem | Knight Position | Confidence | Deadline | Status |
|
|
67
|
+
> |---|--------|-----------------|-----------------|------------|----------|--------|
|
|
68
|
+
> | 1 | NIH | SBIR Phase I | risk | 0.85 | 2026-06-01 | filed |
|
|
69
|
+
> | 2 | diagnose | Missing structural coverage in market-analysis | uncertainty | 0.8 | - | banked |
|
|
70
|
+
|
|
71
|
+
This unified table works for both grant-scanned and cascade-extracted opportunities:
|
|
72
|
+
- Grant opportunities: Source = funder name, Knight Position = 'risk' (grants are known risk), Confidence = relevance_score
|
|
73
|
+
- Cascade opportunities: Source = source_framework, Knight Position = from schema, Confidence = from schema
|
|
74
|
+
|
|
75
|
+
### Filter Flags
|
|
76
|
+
|
|
77
|
+
The list subcommand supports filter flags to narrow results:
|
|
78
|
+
|
|
79
|
+
- `--domain <name>` -- Filter by domain (partial match, case-insensitive). Example: `--domain market-analysis`
|
|
80
|
+
- `--knight <position>` -- Filter by Knight position: `risk`, `uncertainty`, or `mixed`
|
|
81
|
+
- `--min-confidence <N>` -- Filter by minimum confidence score (0.0-1.0). Example: `--min-confidence 0.7`
|
|
82
|
+
|
|
83
|
+
Flags can be combined: `--domain healthcare --knight uncertainty --min-confidence 0.5`
|
|
84
|
+
|
|
85
|
+
**CLI:** `mindrian-tools.cjs opportunity list [roomDir] --domain X --knight Y --min-confidence N`
|
|
86
|
+
**MCP:** `data_room` tool with command `list-opportunities`
|
|
87
|
+
|
|
88
|
+
### file
|
|
89
|
+
|
|
90
|
+
File a specific opportunity after scan confirmation. Used internally after user confirms from scan results.
|
|
91
|
+
|
|
92
|
+
**CLI:** `mindrian-tools.cjs opportunity file [roomDir] [dataJson]`
|
|
93
|
+
**MCP:** `data_room` tool with command `file-opportunity`
|
|
94
|
+
|
|
95
|
+
### bank
|
|
96
|
+
|
|
97
|
+
List all banked opportunities extracted from methodology commands (not grant scans).
|
|
98
|
+
|
|
99
|
+
These are opportunities discovered by the intelligence cascade - gaps, convergences, and contradictions that represent bankable problems.
|
|
100
|
+
|
|
101
|
+
**Display format:**
|
|
102
|
+
|
|
103
|
+
> Here are the opportunities your Data Room intelligence has banked:
|
|
104
|
+
>
|
|
105
|
+
> | # | Problem | Domain | Knight Position | Confidence | Source | Status |
|
|
106
|
+
> |---|---------|--------|-----------------|------------|--------|--------|
|
|
107
|
+
> | 1 | Missing structural coverage in market-analysis | market-analysis | uncertainty | 0.8 | diagnose | banked |
|
|
108
|
+
>
|
|
109
|
+
> **Actions:**
|
|
110
|
+
> - **View details** - I'll show the full evidence and mirror solution
|
|
111
|
+
> - **Pursue** - promote to funding pipeline
|
|
112
|
+
> - **Reject** - capture your reason (this teaches me)
|
|
113
|
+
|
|
114
|
+
**CLI:** `mindrian-tools.cjs opportunity bank [roomDir]`
|
|
115
|
+
**MCP:** `data_room` tool with command `bank-opportunities`
|
|
116
|
+
|
|
117
|
+
## Rejection Handling
|
|
118
|
+
|
|
119
|
+
When the user rejects an opportunity, **capture the reason**. Rejection is data (per CLAUDE.md architecture).
|
|
120
|
+
|
|
121
|
+
Ask: "Why are you passing on this one? (This helps me find better matches next time.)"
|
|
122
|
+
|
|
123
|
+
The reason is recorded in opportunity-bank/STATE.md and informs future scans.
|
|
124
|
+
|
|
125
|
+
## Insufficient Context
|
|
126
|
+
|
|
127
|
+
If the room lacks sufficient context for grant discovery (no domain_keywords, sparse problem-definition), Larry should explain:
|
|
128
|
+
|
|
129
|
+
> "I need more context about your venture to search for relevant grants. Your room needs:
|
|
130
|
+
> - `domain_keywords` in STATE.md (e.g., artificial-intelligence, healthcare)
|
|
131
|
+
> - Content in problem-definition/ describing your domain
|
|
132
|
+
> - `geography` in STATE.md for eligibility matching
|
|
133
|
+
>
|
|
134
|
+
> Run /mos:room update to add this context, then try scanning again."
|
|
135
|
+
|
|
136
|
+
## Discovery is Context-Driven
|
|
137
|
+
|
|
138
|
+
The key insight: Larry does NOT search for "AI grants" because someone hardcoded that. Larry searches for grants that match THIS room's specific problem domain, geography, team profile, and venture stage. Every room gets different search queries.
|
|
139
|
+
|
|
140
|
+
The room context generates the search queries:
|
|
141
|
+
- `domain_keywords` --> API keyword parameters and funding categories
|
|
142
|
+
- `geography` --> eligibility filters
|
|
143
|
+
- `venture_stage` --> grant type matching (SBIR for pre-revenue, etc.)
|
|
144
|
+
- `problem-definition/` content --> additional domain terms
|
|
@@ -0,0 +1,497 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: organize
|
|
3
|
+
description: Navigate room hierarchy with graph-aware tree
|
|
4
|
+
argument-hint: [tree|propose|compound]
|
|
5
|
+
body_shape: B (Semantic Tree)
|
|
6
|
+
serves_jtbd: ["audit-room"]
|
|
7
|
+
ui_reference: skills/ui-system/SKILL.md
|
|
8
|
+
allowed-tools:
|
|
9
|
+
- Read
|
|
10
|
+
- Write
|
|
11
|
+
- Bash
|
|
12
|
+
- Glob
|
|
13
|
+
- Grep
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# /mos:organize
|
|
17
|
+
|
|
18
|
+
You are Larry. This command manages the room portfolio hierarchy using **Body Shape B (Semantic Tree)** per the UI Ruling System.
|
|
19
|
+
|
|
20
|
+
Room organization is a wicked problem (Rittel & Webber 1973). Multiple valid groupings exist simultaneously. Decisions are never final -- they feed future proposals. The system gets smarter from every GROUP, SEPARATE, and DEFER decision.
|
|
21
|
+
|
|
22
|
+
## UI Format
|
|
23
|
+
|
|
24
|
+
- **Body Shape:** B (Semantic Tree) for all subcommands
|
|
25
|
+
- **Reference:** `skills/ui-system/SKILL.md`
|
|
26
|
+
- All subcommands follow the 4-zone anatomy: Header Panel, Content Body, Intelligence Strip (cross-room signals), Action Footer (NEVER omitted)
|
|
27
|
+
- **Symbols:** Only the 12 approved glyphs. No emoji. No em-dashes.
|
|
28
|
+
- **Nesting depth:** Max 3 levels (root / group / room). Never deeper.
|
|
29
|
+
|
|
30
|
+
## Routing
|
|
31
|
+
|
|
32
|
+
Parse user input to determine which subcommand to execute. If no subcommand is given, default to `tree`.
|
|
33
|
+
|
|
34
|
+
Subcommands: `tree` (default), `propose`, `view`, `move`
|
|
35
|
+
|
|
36
|
+
**Natural language mapping (Desktop/Cowork):**
|
|
37
|
+
- "organize my rooms" / "show room structure" -> `tree`
|
|
38
|
+
- "how should I reorganize?" / "suggest groupings" -> `propose`
|
|
39
|
+
- "show rooms by client" / "group by stage" -> `view by-stage`
|
|
40
|
+
- "move fintech to clients" / "put biotech in health group" -> `move fintech-startup clients`
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Subcommand: tree
|
|
45
|
+
|
|
46
|
+
**Trigger:** `/mos:organize` or `/mos:organize tree`
|
|
47
|
+
|
|
48
|
+
### Step 1: Get Room Data
|
|
49
|
+
|
|
50
|
+
Determine `ROOMS_HOME` (`$MINDRIAN_ROOMS_HOME` or `~/MindrianRooms`).
|
|
51
|
+
|
|
52
|
+
Run `bash scripts/room-registry list` to get JSON array of rooms.
|
|
53
|
+
|
|
54
|
+
If the command fails or returns empty:
|
|
55
|
+
> "No rooms found. Run `/mos:rooms new` to create your first room."
|
|
56
|
+
Then STOP.
|
|
57
|
+
|
|
58
|
+
### Step 2: Scan Physical Hierarchy
|
|
59
|
+
|
|
60
|
+
Scan `$ROOMS_HOME` for the actual directory structure:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# List top-level directories (excluding hidden, _archive)
|
|
64
|
+
ls -d "$ROOMS_HOME"/*/ 2>/dev/null | grep -v '/\.' | grep -v '/_'
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
For each directory, check:
|
|
68
|
+
1. Is it a registered room? (exists in registry.json)
|
|
69
|
+
2. Is it a group directory? (contains subdirectories that are rooms, has a CLAUDE.md)
|
|
70
|
+
3. Is it an orphan? (directory exists but not in registry)
|
|
71
|
+
|
|
72
|
+
### Step 3: Check ICM Compliance
|
|
73
|
+
|
|
74
|
+
For each room, check:
|
|
75
|
+
- `CLAUDE.md` exists at room level (Layer 0)
|
|
76
|
+
- `STATE.md` exists (Layer 2)
|
|
77
|
+
- Section directories present (problem-definition/, market-analysis/, etc.)
|
|
78
|
+
|
|
79
|
+
Use status indicators:
|
|
80
|
+
- `checkmark` = ICM-compliant (CLAUDE.md + STATE.md + sections)
|
|
81
|
+
- `bullet` = Partial (missing some ICM layers)
|
|
82
|
+
- `warning` = Non-compliant (no STATE.md or no sections)
|
|
83
|
+
|
|
84
|
+
### Step 4: Render Room Tree
|
|
85
|
+
|
|
86
|
+
Render using Body Shape B (Semantic Tree):
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
-- MindrianOS -- Room Portfolio -- ~/MindrianRooms/ -------------------
|
|
90
|
+
|
|
91
|
+
v ~/MindrianRooms/
|
|
92
|
+
|- [group-icon] clients/ 3 rooms
|
|
93
|
+
| |- [checkmark] acme-robotics active Pre-Opportunity 8 entries
|
|
94
|
+
| |- [bullet] fintech-startup parked Discovery 14 entries
|
|
95
|
+
| +- [checkmark] biotech-venture parked Validation 22 entries
|
|
96
|
+
|
|
|
97
|
+
|- [group-icon] internal/ 1 room
|
|
98
|
+
| +- [checkmark] mindrian-ops active -- 5 entries
|
|
99
|
+
|
|
|
100
|
+
|- [warning] orphan-project -- -- 0 entries
|
|
101
|
+
+- _archive/ 2 rooms
|
|
102
|
+
|
|
103
|
+
Rooms: 5 registered, 1 orphan, 2 archived
|
|
104
|
+
Groups: 2 (clients/, internal/)
|
|
105
|
+
ICM health: 3 compliant, 1 partial, 1 non-compliant
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
For ungrouped rooms (directly under ROOMS_HOME), show them at root level without a group parent.
|
|
109
|
+
|
|
110
|
+
Symbol key for groups:
|
|
111
|
+
- `v` (down-triangle) = expanded group with rooms
|
|
112
|
+
- `>` (right-triangle-filled) = collapsed group
|
|
113
|
+
|
|
114
|
+
### Step 5: Intelligence Strip (Zone 3)
|
|
115
|
+
|
|
116
|
+
If any cross-room signals exist, show max 2:
|
|
117
|
+
- `!` "acme-robotics and fintech-startup share 3 market themes" (convergence)
|
|
118
|
+
- `[ ]` "orphan-project not in registry -- run /mos:rooms new to adopt"
|
|
119
|
+
|
|
120
|
+
Omit entirely if no signals.
|
|
121
|
+
|
|
122
|
+
### Step 6: Action Footer (Zone 4)
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
> /mos:organize propose Get graph-informed grouping suggestions
|
|
126
|
+
> /mos:organize view by-stage See rooms grouped by venture stage
|
|
127
|
+
> /mos:organize move <room> <group> Move a room into a group (with confirmation)
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Subcommand: propose
|
|
133
|
+
|
|
134
|
+
**Trigger:** `/mos:organize propose`
|
|
135
|
+
|
|
136
|
+
### Step 1: Gather Room Intelligence
|
|
137
|
+
|
|
138
|
+
Determine `ROOMS_HOME` and load room list via `bash scripts/room-registry list`.
|
|
139
|
+
|
|
140
|
+
For each room, collect metadata:
|
|
141
|
+
- `venture_name` and `venture_stage` from registry
|
|
142
|
+
- Domain keywords: scan `problem-definition/` for topic terms if files exist
|
|
143
|
+
- Team info: check `team/` directory for client/stakeholder names
|
|
144
|
+
- Entry count and section health
|
|
145
|
+
|
|
146
|
+
### Step 2: Attempt Graph-Informed Groupings (Graceful Degradation)
|
|
147
|
+
|
|
148
|
+
**Tier 1 -- Brain + SQLite graph (richest proposals):**
|
|
149
|
+
|
|
150
|
+
Try calling Brain MCP: `mcp__mindrian-brain__brain_schema` or `mcp__mindrian-brain__get_neo4j_schema`.
|
|
151
|
+
|
|
152
|
+
If Brain is available, query for cross-room intelligence:
|
|
153
|
+
|
|
154
|
+
```cypher
|
|
155
|
+
// Find rooms that share frameworks
|
|
156
|
+
MATCH (r1:Room)-[:USES_FRAMEWORK]->(f:Framework)<-[:USES_FRAMEWORK]-(r2:Room)
|
|
157
|
+
WHERE r1.name <> r2.name
|
|
158
|
+
RETURN r1.name, r2.name, collect(f.name) AS shared_frameworks
|
|
159
|
+
|
|
160
|
+
// Find rooms at the same stage
|
|
161
|
+
MATCH (r:Room)-[:AT_STAGE]->(s:VentureStage)
|
|
162
|
+
RETURN s.name, collect(r.name) AS rooms_at_stage
|
|
163
|
+
|
|
164
|
+
// Find rooms with shared themes
|
|
165
|
+
MATCH (r1:Room)-[:SHARES_THEME]->(t:Theme)<-[:SHARES_THEME]-(r2:Room)
|
|
166
|
+
RETURN t.name, collect(DISTINCT r1.name) + collect(DISTINCT r2.name) AS themed_rooms
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Note: Room nodes may not exist yet (Phase 59.2 creates them). If these queries return empty, fall through to Tier 2.
|
|
170
|
+
|
|
171
|
+
**Tier 2 -- Metadata-based groupings (always available):**
|
|
172
|
+
|
|
173
|
+
Group rooms by analyzing:
|
|
174
|
+
1. **By venture stage:** Cluster rooms sharing the same `venture_stage`
|
|
175
|
+
2. **By name pattern:** Extract common prefixes or domain keywords from room slugs
|
|
176
|
+
3. **By domain keywords:** Read first 50 lines of each room's `problem-definition/` files, extract key domain terms, find overlaps
|
|
177
|
+
4. **By activity level:** Group stale rooms (no activity >30 days) vs. active ones
|
|
178
|
+
|
|
179
|
+
### Step 3: Generate Proposals
|
|
180
|
+
|
|
181
|
+
Create a ranked list of grouping proposals. Each proposal has:
|
|
182
|
+
- **Group name** (suggested slug, e.g., `health-ventures`, `pre-opp-rooms`)
|
|
183
|
+
- **Rooms included** (which rooms would move into this group)
|
|
184
|
+
- **Rationale** (why these rooms belong together)
|
|
185
|
+
- **Confidence** (high/medium/low based on signal strength)
|
|
186
|
+
- **Source** (Brain graph / metadata / name pattern)
|
|
187
|
+
|
|
188
|
+
### Step 4: Render Proposals
|
|
189
|
+
|
|
190
|
+
```
|
|
191
|
+
-- MindrianOS -- Room Portfolio -- Reorganization Proposals -----------
|
|
192
|
+
|
|
193
|
+
Analyzed 5 rooms. Found 3 potential groupings.
|
|
194
|
+
|
|
195
|
+
Proposal 1: "health-ventures" [HIGH confidence]
|
|
196
|
+
Source: shared domain keywords (genomics, clinical, biotech)
|
|
197
|
+
|- biotech-venture Validation 22 entries
|
|
198
|
+
+- pharma-discovery Discovery 11 entries
|
|
199
|
+
|
|
200
|
+
Proposal 2: "pre-opportunity" [MEDIUM confidence]
|
|
201
|
+
Source: venture stage clustering
|
|
202
|
+
|- acme-robotics Pre-Opportunity 8 entries
|
|
203
|
+
+- new-idea-room Pre-Opportunity 3 entries
|
|
204
|
+
|
|
205
|
+
Proposal 3: "fintech" [LOW confidence]
|
|
206
|
+
Source: name pattern match
|
|
207
|
+
+- fintech-startup Discovery 14 entries
|
|
208
|
+
(single room -- grouping deferred)
|
|
209
|
+
|
|
210
|
+
> /mos:organize move biotech-venture health-ventures Accept proposal 1
|
|
211
|
+
> /mos:organize propose --refresh Re-analyze with latest data
|
|
212
|
+
> /mos:organize view by-stage Preview stage-based view first
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### Step 5: Record Proposals
|
|
216
|
+
|
|
217
|
+
Write proposals to `$ROOMS_HOME/.rooms/proposals.json` for future reference:
|
|
218
|
+
|
|
219
|
+
```json
|
|
220
|
+
{
|
|
221
|
+
"generated": "2026-04-06T20:00:00Z",
|
|
222
|
+
"source": "metadata",
|
|
223
|
+
"proposals": [
|
|
224
|
+
{
|
|
225
|
+
"group": "health-ventures",
|
|
226
|
+
"rooms": ["biotech-venture", "pharma-discovery"],
|
|
227
|
+
"rationale": "shared domain keywords: genomics, clinical, biotech",
|
|
228
|
+
"confidence": "high",
|
|
229
|
+
"status": "pending"
|
|
230
|
+
}
|
|
231
|
+
]
|
|
232
|
+
}
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## Subcommand: view
|
|
238
|
+
|
|
239
|
+
**Trigger:** `/mos:organize view [axis]`
|
|
240
|
+
|
|
241
|
+
Available axes: `by-stage`, `by-client`, `by-domain`, `by-activity`
|
|
242
|
+
|
|
243
|
+
This subcommand shows virtual projections WITHOUT moving files. The rooms stay where they are. The view is a lens, not a reorganization.
|
|
244
|
+
|
|
245
|
+
### Step 1: Load Room Data
|
|
246
|
+
|
|
247
|
+
Get room list via `bash scripts/room-registry list`. For each room, load metadata as in `propose`.
|
|
248
|
+
|
|
249
|
+
### Step 2: Build Virtual Grouping
|
|
250
|
+
|
|
251
|
+
**by-stage:** Group rooms by `venture_stage` field from registry.
|
|
252
|
+
|
|
253
|
+
**by-client:** Extract client/owner from:
|
|
254
|
+
1. `venture_name` in registry (parse for company names)
|
|
255
|
+
2. `team/` directory contents (look for stakeholder names)
|
|
256
|
+
3. Room slug prefix patterns
|
|
257
|
+
|
|
258
|
+
**by-domain:** Extract domain from:
|
|
259
|
+
1. Problem-definition content keywords
|
|
260
|
+
2. Room slug domain terms
|
|
261
|
+
3. Brain framework associations (if available)
|
|
262
|
+
|
|
263
|
+
**by-activity:** Group by last activity:
|
|
264
|
+
- Active (activity within 7 days)
|
|
265
|
+
- Recent (7-30 days)
|
|
266
|
+
- Stale (30+ days)
|
|
267
|
+
- Dormant (90+ days)
|
|
268
|
+
|
|
269
|
+
### Step 3: Render Virtual View
|
|
270
|
+
|
|
271
|
+
```
|
|
272
|
+
-- MindrianOS -- Room Portfolio -- View: by-stage ---------------------
|
|
273
|
+
|
|
274
|
+
[virtual projection -- no files moved]
|
|
275
|
+
|
|
276
|
+
v Pre-Opportunity (2 rooms)
|
|
277
|
+
|- acme-robotics active 8 entries
|
|
278
|
+
+- new-idea-room parked 3 entries
|
|
279
|
+
|
|
280
|
+
v Discovery (2 rooms)
|
|
281
|
+
|- fintech-startup parked 14 entries
|
|
282
|
+
+- pharma-discovery active 11 entries
|
|
283
|
+
|
|
284
|
+
v Validation (1 room)
|
|
285
|
+
+- biotech-venture parked 22 entries
|
|
286
|
+
|
|
287
|
+
> /mos:organize move acme-robotics pre-opportunity Make this grouping real
|
|
288
|
+
> /mos:organize view by-domain Try another lens
|
|
289
|
+
> /mos:organize tree Back to physical structure
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
### Step 4: Action Footer
|
|
293
|
+
|
|
294
|
+
Suggest converting the virtual view into real groups (with move commands) or trying other axes.
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
## Subcommand: move
|
|
299
|
+
|
|
300
|
+
**Trigger:** `/mos:organize move <room-name> <target-group>`
|
|
301
|
+
|
|
302
|
+
### Step 1: Validate Inputs
|
|
303
|
+
|
|
304
|
+
Run `bash scripts/room-registry read <room-name>` to verify room exists.
|
|
305
|
+
|
|
306
|
+
If not found:
|
|
307
|
+
```
|
|
308
|
+
x Room not found: <room-name>
|
|
309
|
+
Why: No room named "<room-name>" in .rooms/registry.json
|
|
310
|
+
Fix: /mos:rooms list
|
|
311
|
+
```
|
|
312
|
+
Then STOP.
|
|
313
|
+
|
|
314
|
+
Check if target-group is valid:
|
|
315
|
+
- Must be a valid directory slug (lowercase, alphanumeric, hyphens)
|
|
316
|
+
- Must not exceed nesting depth (max 3 levels: root/group/room)
|
|
317
|
+
|
|
318
|
+
### Step 2: Show Move Preview
|
|
319
|
+
|
|
320
|
+
Display what will happen before asking for confirmation:
|
|
321
|
+
|
|
322
|
+
```
|
|
323
|
+
-- MindrianOS -- Room Move Preview ------------------------------------
|
|
324
|
+
|
|
325
|
+
Moving: fintech-startup
|
|
326
|
+
From: ~/MindrianRooms/fintech-startup/
|
|
327
|
+
To: ~/MindrianRooms/clients/fintech-startup/
|
|
328
|
+
|
|
329
|
+
This will:
|
|
330
|
+
1. Create group directory "clients/" (if new)
|
|
331
|
+
2. Generate ICM CLAUDE.md for "clients/" group
|
|
332
|
+
3. Move fintech-startup/ into clients/
|
|
333
|
+
4. Update registry.json path
|
|
334
|
+
5. Refresh INDEX.md
|
|
335
|
+
|
|
336
|
+
Confirm move? (yes/no)
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
### Step 3: Require Explicit Human Confirmation
|
|
340
|
+
|
|
341
|
+
**CRITICAL:** Wait for explicit "yes" from the user. Accept: "yes", "y", "confirm", "do it", "go ahead".
|
|
342
|
+
|
|
343
|
+
If user declines or says anything ambiguous, STOP:
|
|
344
|
+
> "Move cancelled. Room stays at current location."
|
|
345
|
+
|
|
346
|
+
If user says "defer":
|
|
347
|
+
> Record DEFER decision (Step 7) and STOP.
|
|
348
|
+
|
|
349
|
+
### Step 4: Execute Move
|
|
350
|
+
|
|
351
|
+
If confirmed, execute the move:
|
|
352
|
+
|
|
353
|
+
```bash
|
|
354
|
+
ROOMS_HOME="${MINDRIAN_ROOMS_HOME:-$HOME/MindrianRooms}"
|
|
355
|
+
|
|
356
|
+
# Create group directory if it doesn't exist
|
|
357
|
+
mkdir -p "$ROOMS_HOME/<target-group>"
|
|
358
|
+
|
|
359
|
+
# Move the room directory
|
|
360
|
+
mv "$ROOMS_HOME/<room-name>" "$ROOMS_HOME/<target-group>/<room-name>"
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
### Step 5: Generate Group ICM CLAUDE.md
|
|
364
|
+
|
|
365
|
+
If this is a NEW group (just created), generate an ICM Layer 0 CLAUDE.md for the group directory.
|
|
366
|
+
|
|
367
|
+
Read the template from `templates/icm/GROUP-CLAUDE.md` and fill in:
|
|
368
|
+
- Group name
|
|
369
|
+
- Rationale for grouping (from proposal if available, or ask user)
|
|
370
|
+
- List of rooms in the group
|
|
371
|
+
|
|
372
|
+
Write the filled template to `$ROOMS_HOME/<target-group>/CLAUDE.md`.
|
|
373
|
+
|
|
374
|
+
If the group already has a CLAUDE.md, update the room list section to include the newly moved room.
|
|
375
|
+
|
|
376
|
+
### Step 6: Update Registry and Index
|
|
377
|
+
|
|
378
|
+
Update the room's path in the registry:
|
|
379
|
+
|
|
380
|
+
```bash
|
|
381
|
+
bash scripts/room-registry update <room-name> path "<target-group>/<room-name>"
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
Refresh INDEX.md:
|
|
385
|
+
|
|
386
|
+
```bash
|
|
387
|
+
bash scripts/update-icm-index "$ROOMS_HOME"
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
### Step 7: Record Decision
|
|
391
|
+
|
|
392
|
+
Record the user's decision for future proposal intelligence.
|
|
393
|
+
|
|
394
|
+
Write to `$ROOMS_HOME/.rooms/decisions.json`:
|
|
395
|
+
|
|
396
|
+
```json
|
|
397
|
+
{
|
|
398
|
+
"decisions": [
|
|
399
|
+
{
|
|
400
|
+
"timestamp": "2026-04-06T20:00:00Z",
|
|
401
|
+
"type": "GROUP",
|
|
402
|
+
"room": "fintech-startup",
|
|
403
|
+
"target": "clients",
|
|
404
|
+
"rationale": "client-based grouping",
|
|
405
|
+
"source": "user-confirmed"
|
|
406
|
+
}
|
|
407
|
+
]
|
|
408
|
+
}
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
Decision types:
|
|
412
|
+
- **GROUP** -- user confirmed moving room into a group
|
|
413
|
+
- **SEPARATE** -- user explicitly rejected a proposed grouping ("keep these apart")
|
|
414
|
+
- **DEFER** -- user acknowledged the proposal but chose not to act now
|
|
415
|
+
|
|
416
|
+
When Brain graph is available (Phase 59.2+), also create graph edges:
|
|
417
|
+
|
|
418
|
+
```cypher
|
|
419
|
+
// GROUP decision
|
|
420
|
+
MERGE (r:Room {name: "fintech-startup"})
|
|
421
|
+
MERGE (g:RoomGroup {name: "clients"})
|
|
422
|
+
MERGE (r)-[:GROUPED_BY_USER {timestamp: datetime(), rationale: "client-based"}]->(g)
|
|
423
|
+
|
|
424
|
+
// SEPARATE decision
|
|
425
|
+
MERGE (r1:Room {name: "room-a"})
|
|
426
|
+
MERGE (r2:Room {name: "room-b"})
|
|
427
|
+
MERGE (r1)-[:SEPARATED_BY_USER {timestamp: datetime(), reason: "different domains"}]->(r2)
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
If Brain is not available, the local `decisions.json` file is sufficient. Future proposals read this file to avoid re-suggesting rejected groupings.
|
|
431
|
+
|
|
432
|
+
### Step 8: Report Success
|
|
433
|
+
|
|
434
|
+
```
|
|
435
|
+
-- MindrianOS -- Room Move Complete -----------------------------------
|
|
436
|
+
|
|
437
|
+
Moved: fintech-startup
|
|
438
|
+
To: ~/MindrianRooms/clients/fintech-startup/
|
|
439
|
+
Group: clients/ (ICM CLAUDE.md generated)
|
|
440
|
+
Registry: updated
|
|
441
|
+
INDEX.md: refreshed
|
|
442
|
+
|
|
443
|
+
Decision recorded: GROUP fintech-startup -> clients
|
|
444
|
+
|
|
445
|
+
> /mos:organize tree See updated structure
|
|
446
|
+
> /mos:organize propose Get more suggestions
|
|
447
|
+
> /mos:organize move <room> clients Add another room to this group
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
---
|
|
451
|
+
|
|
452
|
+
## Decision Memory
|
|
453
|
+
|
|
454
|
+
The organize command maintains two local files for decision intelligence:
|
|
455
|
+
|
|
456
|
+
1. **`$ROOMS_HOME/.rooms/proposals.json`** -- generated proposals with status tracking
|
|
457
|
+
2. **`$ROOMS_HOME/.rooms/decisions.json`** -- all GROUP/SEPARATE/DEFER decisions with timestamps
|
|
458
|
+
|
|
459
|
+
When generating new proposals (via `propose`), the system:
|
|
460
|
+
1. Reads `decisions.json` to avoid re-suggesting SEPARATE'd groupings
|
|
461
|
+
2. Boosts confidence for proposals that align with previous GROUP decisions
|
|
462
|
+
3. Surfaces DEFER'd proposals again after 30 days with a note: "Previously deferred on [date]"
|
|
463
|
+
|
|
464
|
+
When Brain graph is available, these local files serve as a staging area. Decisions are promoted to graph edges for richer cross-room intelligence.
|
|
465
|
+
|
|
466
|
+
---
|
|
467
|
+
|
|
468
|
+
## Graceful Degradation
|
|
469
|
+
|
|
470
|
+
| Available | Proposal Quality | Source |
|
|
471
|
+
|-----------|-----------------|--------|
|
|
472
|
+
| Brain + SQLite graph | Rich: shared frameworks, themes, co-occurrence | Graph queries |
|
|
473
|
+
| Brain only | Good: venture stage taxonomy, framework connections | Cypher queries |
|
|
474
|
+
| SQLite graph only | Good: local graph relationships, room metadata | Local graph |
|
|
475
|
+
| Neither (Tier 0) | Basic: stage clustering, name patterns, domain keywords | Registry + filesystem |
|
|
476
|
+
|
|
477
|
+
The command always works. Intelligence quality scales with available infrastructure. This is the Tier 0 principle applied to room organization.
|
|
478
|
+
|
|
479
|
+
---
|
|
480
|
+
|
|
481
|
+
## Cross-Surface Notes (Tri-Polar Rule)
|
|
482
|
+
|
|
483
|
+
| Surface | Behavior |
|
|
484
|
+
|---------|----------|
|
|
485
|
+
| **CLI** | Full subcommand syntax as documented above. Scripts run directly. |
|
|
486
|
+
| **Desktop** | Larry interprets natural language and maps to subcommands. See natural language mapping at top. |
|
|
487
|
+
| **Cowork** | Same registry, same commands. Moves affect all team members sharing the room hierarchy. Announce moves in shared context. |
|
|
488
|
+
|
|
489
|
+
## Error Format
|
|
490
|
+
|
|
491
|
+
Always use the 3-line error pattern:
|
|
492
|
+
|
|
493
|
+
```
|
|
494
|
+
x What happened
|
|
495
|
+
Why: reason
|
|
496
|
+
Fix: /mos:command
|
|
497
|
+
```
|