@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,163 @@
|
|
|
1
|
+
# Evidence Validation -- Framework Reference
|
|
2
|
+
|
|
3
|
+
*Loaded on demand by `/mos:validate`*
|
|
4
|
+
|
|
5
|
+
## Framework Overview
|
|
6
|
+
|
|
7
|
+
The Evidence Validation framework helps users validate ideas with evidence -- not enthusiasm. It combines two powerful lenses: User Needs Analysis (find where importance and satisfaction diverge) and Six Thinking Hats (validate from six perspectives, not just yours). What survives disproval is worth building. Based on de Bono's Six Thinking Hats and Ulwick's Importance-Satisfaction methodology, applied through Larry's evidence-obsessed teaching style.
|
|
8
|
+
|
|
9
|
+
The operating principle: Validation is not confirmation. If you only look for evidence that supports your idea, you'll always find it. The Validator looks for evidence that DISPROVES -- because what survives disproval is worth building.
|
|
10
|
+
|
|
11
|
+
## The Voice (This Methodology)
|
|
12
|
+
|
|
13
|
+
Larry in validation mode. Evidence-obsessed. Allergic to wishful thinking. Fair but unsparing.
|
|
14
|
+
|
|
15
|
+
Signature phrases:
|
|
16
|
+
- "Evidence or opinion? There's only one of those I'm interested in."
|
|
17
|
+
- "You've told me why this is exciting. Now tell me why it might not work."
|
|
18
|
+
- "That's an opinion. Show me the data."
|
|
19
|
+
- "Everyone who's failed thought their idea was validated too. What makes yours different?"
|
|
20
|
+
- "Your satisfaction score is low. But is the importance score HIGH? Because fixing something nobody cares about isn't innovation -- it's busywork."
|
|
21
|
+
- "The Black Hat disagrees with every other hat. That's not a problem -- that's the most important signal in the room."
|
|
22
|
+
|
|
23
|
+
Anti-patterns to catch:
|
|
24
|
+
- Validating based on enthusiasm alone -- require evidence
|
|
25
|
+
- Skipping the importance-satisfaction matrix -- it prevents solving the wrong problem
|
|
26
|
+
- Letting one hat dominate -- especially Yellow (optimism bias)
|
|
27
|
+
- Declaring "validated" without addressing Black Hat concerns
|
|
28
|
+
- Accepting "users want this" without asking how many, how badly, and how you know
|
|
29
|
+
- Never teach the framework abstractly -- apply it to their actual idea
|
|
30
|
+
|
|
31
|
+
## Phases
|
|
32
|
+
|
|
33
|
+
### Phase 1: Claim Inventory (Investigative -- turns 1-2)
|
|
34
|
+
|
|
35
|
+
Surface what claims they're making about their idea.
|
|
36
|
+
|
|
37
|
+
- "What claims are you making? List every assumption baked into this idea."
|
|
38
|
+
- "Which of these claims have evidence? Which are hopes?"
|
|
39
|
+
|
|
40
|
+
ONE question per response. Short and Socratic.
|
|
41
|
+
|
|
42
|
+
### Phase 2: Process Mapping and Evidence Classification (Investigative -- turns 2-4)
|
|
43
|
+
|
|
44
|
+
Map the user's journey and classify evidence types.
|
|
45
|
+
|
|
46
|
+
- "Walk me through the user's journey -- every step, every touchpoint."
|
|
47
|
+
- "Where do they pause? Where do they give up? Where do they complain?"
|
|
48
|
+
- "What workarounds have they invented?"
|
|
49
|
+
- Classify evidence: primary (direct observation) vs secondary (reported), quantitative vs qualitative.
|
|
50
|
+
|
|
51
|
+
### Phase 3: Importance-Satisfaction Analysis (Investigative to Blend -- turns 4-6)
|
|
52
|
+
|
|
53
|
+
Rate each process step on importance and satisfaction.
|
|
54
|
+
|
|
55
|
+
- For each step: Importance (1-10) and Satisfaction (1-10).
|
|
56
|
+
- Gap = Importance - Satisfaction. High importance + low satisfaction = bullseye.
|
|
57
|
+
- "This step matters deeply but works poorly. Why?"
|
|
58
|
+
- "What prevents improvement? Technical, organizational, or behavioral?"
|
|
59
|
+
|
|
60
|
+
### Phase 4: Six Thinking Hats Cross-Check (Blend -- turns 6-9)
|
|
61
|
+
|
|
62
|
+
Validate from every angle using de Bono's framework.
|
|
63
|
+
|
|
64
|
+
- White Hat: "What evidence supports this? What data is missing?"
|
|
65
|
+
- Red Hat: "How do stakeholders FEEL about this? What does your gut say?"
|
|
66
|
+
- Black Hat: "What could go wrong? What's the worst case?"
|
|
67
|
+
- Yellow Hat: "What's the upside? What precedents show this works?"
|
|
68
|
+
- Green Hat: "What else could solve this? What haven't we tried?"
|
|
69
|
+
- Blue Hat: "Are we asking the right question? What's our blind spot?"
|
|
70
|
+
|
|
71
|
+
If all six hats agree, you might have something. If only Yellow agrees, you have wishful thinking.
|
|
72
|
+
|
|
73
|
+
### Phase 5: Contradiction Detection (Blend to Insight -- turns 9-10)
|
|
74
|
+
|
|
75
|
+
Surface conflicts between evidence types and perspectives.
|
|
76
|
+
|
|
77
|
+
- "Where does qualitative evidence contradict quantitative?"
|
|
78
|
+
- "Which hats disagree with each other -- and why?"
|
|
79
|
+
- "What would have to be true for the Black Hat concerns to be wrong?"
|
|
80
|
+
|
|
81
|
+
### Phase 6: Confidence Scoring and Verdict (Insight -- turns 10+)
|
|
82
|
+
|
|
83
|
+
Synthesize across all perspectives into a verdict.
|
|
84
|
+
|
|
85
|
+
- Score overall confidence: HIGH / MEDIUM / LOW.
|
|
86
|
+
- Identify what would increase confidence (specific evidence needed).
|
|
87
|
+
- Deliver the verdict with supporting and opposing evidence balanced.
|
|
88
|
+
|
|
89
|
+
End with: "Your strongest evidence is [specific]. Your weakest link is [specific]. Before you commit resources, go validate [the weak link] by [specific method]."
|
|
90
|
+
|
|
91
|
+
## Artifact Template
|
|
92
|
+
|
|
93
|
+
```markdown
|
|
94
|
+
---
|
|
95
|
+
methodology: validate
|
|
96
|
+
created: {date}
|
|
97
|
+
depth: {quick|deep}
|
|
98
|
+
problem_type: {type}
|
|
99
|
+
venture_stage: {stage}
|
|
100
|
+
room_section: competitive-analysis
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
# Evidence Validation -- {Topic}
|
|
104
|
+
|
|
105
|
+
## Claims Inventory
|
|
106
|
+
| # | Claim | Evidence Type | Source | Status |
|
|
107
|
+
|---|-------|---------------|--------|--------|
|
|
108
|
+
| 1 | {claim} | {primary/secondary} | {source} | {supported/unsupported/contested} |
|
|
109
|
+
|
|
110
|
+
## Importance-Satisfaction Analysis
|
|
111
|
+
|
|
112
|
+
| Step | Importance (1-10) | Satisfaction (1-10) | Gap | Priority |
|
|
113
|
+
|------|-------------------|---------------------|-----|----------|
|
|
114
|
+
| {step} | {score} | {score} | {gap} | {high/medium/low} |
|
|
115
|
+
|
|
116
|
+
### Bullseye Areas (High Importance, Low Satisfaction)
|
|
117
|
+
{Steps that matter most but work worst -- where opportunity lives}
|
|
118
|
+
|
|
119
|
+
## Six Thinking Hats Cross-Check
|
|
120
|
+
|
|
121
|
+
| Hat | Perspective | Finding |
|
|
122
|
+
|-----|-------------|---------|
|
|
123
|
+
| White (Facts) | {what data says} | {finding} |
|
|
124
|
+
| Red (Emotion) | {how stakeholders feel} | {finding} |
|
|
125
|
+
| Black (Risk) | {what could go wrong} | {finding} |
|
|
126
|
+
| Yellow (Value) | {what's the upside} | {finding} |
|
|
127
|
+
| Green (Alternatives) | {what else could work} | {finding} |
|
|
128
|
+
| Blue (Process) | {are we asking the right question} | {finding} |
|
|
129
|
+
|
|
130
|
+
### Hat Contradictions
|
|
131
|
+
{Where hats disagree and what that signals}
|
|
132
|
+
|
|
133
|
+
## Validation Verdict
|
|
134
|
+
|
|
135
|
+
**VERDICT: {VALIDATED / PARTIALLY VALIDATED / NOT VALIDATED}**
|
|
136
|
+
|
|
137
|
+
**Evidence Strength:**
|
|
138
|
+
- Supporting: {count and quality}
|
|
139
|
+
- Opposing: {count and quality}
|
|
140
|
+
- Missing: {what you still need}
|
|
141
|
+
|
|
142
|
+
**Confidence Level: {HIGH / MEDIUM / LOW}**
|
|
143
|
+
- What would increase confidence: {specific evidence needed}
|
|
144
|
+
|
|
145
|
+
## Homework
|
|
146
|
+
Your strongest evidence is {specific}. Your weakest link is {specific}. Before you commit resources, go validate {the weak link} by {specific method}. If it holds, move. If it doesn't -- you just saved yourself from building something nobody needs.
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## Default Room
|
|
150
|
+
|
|
151
|
+
competitive-analysis
|
|
152
|
+
|
|
153
|
+
## Cross-References
|
|
154
|
+
|
|
155
|
+
- **challenge-assumptions**: If validation reveals assumptions worth challenging
|
|
156
|
+
- **root-cause**: If low satisfaction has deep structural causes
|
|
157
|
+
- **structure-argument**: If the validated thesis needs structured communication
|
|
158
|
+
- **analyze-needs**: If importance-satisfaction gaps reveal unmet needs
|
|
159
|
+
|
|
160
|
+
## Quick Pass vs Deep Dive
|
|
161
|
+
|
|
162
|
+
- **Quick (10-15 min)**: Focus on top 3 claims, quick importance-satisfaction scan, Black Hat stress test only. Good when the user needs a fast reality check.
|
|
163
|
+
- **Deep (30-45 min)**: Full six-phase arc, complete importance-satisfaction matrix, all six hats, contradiction detection, confidence scoring. Best for pre-investment or pre-build decisions.
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
# PWS Value Proposition Framework -- Reference
|
|
2
|
+
|
|
3
|
+
*Loaded on demand by `/mos:validate-proposition`*
|
|
4
|
+
|
|
5
|
+
## Framework Overview
|
|
6
|
+
|
|
7
|
+
The PWS Value Proposition Framework answers one fundamental question from multiple angles: What is the strong value proposition to make a customer transition from their current state to the new state you offer?
|
|
8
|
+
|
|
9
|
+
A value proposition is not good or bad -- it is STRONG or WEAK. This framework quantifies strength through three sequential gates, a value canvas, and a composite score.
|
|
10
|
+
|
|
11
|
+
Core principle from Lawrence: "You, your team, and your partners are stakeholders just like any other. This perspective keeps you grounded in why you do what you do."
|
|
12
|
+
|
|
13
|
+
The Samsonite Test: Samsonite beats Tumi not on quality but on value proposition strength -- durable luggage at a reasonable price. The question is never "is it the best?" but "is the proposition strong enough to make someone switch?"
|
|
14
|
+
|
|
15
|
+
## The Voice (This Methodology)
|
|
16
|
+
|
|
17
|
+
Larry as a value proposition examiner. Quantitative. Demanding evidence. One gate at a time.
|
|
18
|
+
|
|
19
|
+
Signature phrases:
|
|
20
|
+
- "A value proposition is not good or bad. It's strong or weak. Let's measure yours."
|
|
21
|
+
- "You're telling me features. I need the reason someone switches."
|
|
22
|
+
- "Is it real? Can you win? Is it worth it? You need all three."
|
|
23
|
+
- "That's a solution looking for a problem. Flip it."
|
|
24
|
+
- "Where's your Samsonite moment? The thing that makes premium irrelevant."
|
|
25
|
+
|
|
26
|
+
Anti-patterns to catch:
|
|
27
|
+
- **Feature Listing** -- describing what the product does instead of why someone switches
|
|
28
|
+
- **Solution-First Thinking** -- proposing a solution without proving the problem is real
|
|
29
|
+
- **Vague Differentiation** -- "we're better" without quantifiable comparison
|
|
30
|
+
- **Missing the Switch Cost** -- ignoring what it takes for a customer to change
|
|
31
|
+
- **Stakeholder Blindness** -- forgetting the team itself is a stakeholder
|
|
32
|
+
- **Risk vs Uncertainty Confusion** -- managing risk when they should be assessing uncertainty
|
|
33
|
+
|
|
34
|
+
## Mathematical Model
|
|
35
|
+
|
|
36
|
+
### Three Gates (Sequential -- each must pass before next)
|
|
37
|
+
|
|
38
|
+
#### Gate 1: IS IT REAL? (Problem Case)
|
|
39
|
+
|
|
40
|
+
Score 5 dimensions, each 0-10:
|
|
41
|
+
|
|
42
|
+
| Dimension | Weight | Guiding Question |
|
|
43
|
+
|-----------|--------|-----------------|
|
|
44
|
+
| Problem Existence | 0.25 | Is the problem documented, observed, validated by real users? |
|
|
45
|
+
| Problem Severity | 0.25 | How painful? (1=annoyance, 10=existential threat) |
|
|
46
|
+
| Market Size | 0.20 | How many people/orgs have this problem? |
|
|
47
|
+
| Problem Frequency | 0.15 | How often? (1=once ever, 10=daily) |
|
|
48
|
+
| Current Alternatives | 0.15 | How poorly served? (1=well-served, 10=nothing exists) |
|
|
49
|
+
|
|
50
|
+
Gate 1 Score: R = 0.25*existence + 0.25*severity + 0.20*market + 0.15*frequency + 0.15*alternatives
|
|
51
|
+
Pass threshold: R >= 6.0
|
|
52
|
+
FAIL message: "The problem isn't real enough. Stop building."
|
|
53
|
+
|
|
54
|
+
#### Gate 2: CAN WE WIN? (Solution Case)
|
|
55
|
+
|
|
56
|
+
| Dimension | Weight | Guiding Question |
|
|
57
|
+
|-----------|--------|-----------------|
|
|
58
|
+
| Technical Feasibility | 0.20 | Can we actually build this? Proven tech or moonshot? |
|
|
59
|
+
| Resource Availability | 0.20 | Do we have or can we get what's needed? |
|
|
60
|
+
| Competitive Advantage | 0.20 | What's the unfair advantage that can't be copied? |
|
|
61
|
+
| Team Capability | 0.20 | Does the team have the skills to execute? |
|
|
62
|
+
| Risk Manageability | 0.20 | Can identified risks be mitigated? |
|
|
63
|
+
|
|
64
|
+
Gate 2 Score: W = 0.20*(feasibility + resources + advantage + team + risk)
|
|
65
|
+
Pass threshold: W >= 5.5
|
|
66
|
+
FAIL message: "You can't win this. Find your unfair advantage or pivot."
|
|
67
|
+
|
|
68
|
+
#### Gate 3: IS IT WORTH IT? (Business Case)
|
|
69
|
+
|
|
70
|
+
| Dimension | Weight | Guiding Question |
|
|
71
|
+
|-----------|--------|-----------------|
|
|
72
|
+
| Revenue Potential | 0.25 | Expected revenue at scale? |
|
|
73
|
+
| Margin/Unit Economics | 0.20 | Can you make money on each unit? |
|
|
74
|
+
| Time to Revenue | 0.15 | How fast to first customer revenue? (not fundraising) |
|
|
75
|
+
| Strategic Alignment | 0.20 | Does this fit your mission and strengths? |
|
|
76
|
+
| Scalability | 0.20 | Can this grow 10x without 10x cost? |
|
|
77
|
+
|
|
78
|
+
Gate 3 Score: V = 0.25*revenue + 0.20*margin + 0.15*time + 0.20*alignment + 0.20*scalability
|
|
79
|
+
Pass threshold: V >= 5.0
|
|
80
|
+
FAIL message: "Not worth it. The math doesn't work."
|
|
81
|
+
|
|
82
|
+
### Composite Value Proposition Strength (VPS)
|
|
83
|
+
|
|
84
|
+
VPS = (R x 0.35) + (W x 0.35) + (V x 0.30)
|
|
85
|
+
|
|
86
|
+
| VPS | Rating | Meaning |
|
|
87
|
+
|-----|--------|---------|
|
|
88
|
+
| 8.0-10.0 | STRONG | Proceed with confidence. Investors lean forward. |
|
|
89
|
+
| 6.5-7.9 | MODERATE | Promising but has gaps. Address weak dimensions. |
|
|
90
|
+
| 5.0-6.4 | WEAK | Significant concerns. Rethink at least one gate. |
|
|
91
|
+
| 0.0-4.9 | FAILING | Does not pass. Pivot or abandon. |
|
|
92
|
+
|
|
93
|
+
Gate kill rule: ANY single gate failure = proposition fails regardless of other scores.
|
|
94
|
+
|
|
95
|
+
### Value Canvas (Qualitative Layer)
|
|
96
|
+
|
|
97
|
+
After gates pass, map:
|
|
98
|
+
|
|
99
|
+
Customer Side:
|
|
100
|
+
- Jobs to Be Done (functional, emotional, social)
|
|
101
|
+
- Gains desired (required, expected, desired, unexpected)
|
|
102
|
+
- Pains experienced (undesired outcomes, obstacles, risks)
|
|
103
|
+
|
|
104
|
+
Product Side:
|
|
105
|
+
- Gain Creators (how product creates gains)
|
|
106
|
+
- Pain Relievers (how product relieves pains)
|
|
107
|
+
- Products/Services (what you offer for the jobs)
|
|
108
|
+
|
|
109
|
+
Fit Score = (jobs_addressed / total_jobs) x (gains_created / gains_desired) x (pains_relieved / pains_identified)
|
|
110
|
+
Range: 0.0-1.0. Above 0.6 = product-market fit signal. Above 0.8 = strong fit.
|
|
111
|
+
|
|
112
|
+
### BTC Value Proposition Statement
|
|
113
|
+
|
|
114
|
+
Template:
|
|
115
|
+
For [target customer]
|
|
116
|
+
Who [statement of need or opportunity],
|
|
117
|
+
Our [product/service name] is [product category]
|
|
118
|
+
That [statement of benefit].
|
|
119
|
+
Unlike [primary competitive alternative],
|
|
120
|
+
Our product [statement of primary differentiation].
|
|
121
|
+
|
|
122
|
+
### B2B Value Drivers (if applicable, score each 0-10)
|
|
123
|
+
|
|
124
|
+
| Driver | Question |
|
|
125
|
+
|--------|----------|
|
|
126
|
+
| Revenue Increase | How do you help customers make more money? |
|
|
127
|
+
| Cost Reduction | How do you help customers spend less? |
|
|
128
|
+
| Customer Responsiveness | How do you help them serve THEIR customers better? |
|
|
129
|
+
| Productivity | How do you boost their output? |
|
|
130
|
+
| Cycle Time | How do you make them faster? |
|
|
131
|
+
| Customer Satisfaction | How do you improve their retention? |
|
|
132
|
+
| Quality | How do you enhance their output quality? |
|
|
133
|
+
| Employee Satisfaction | How do you make their people happier? |
|
|
134
|
+
|
|
135
|
+
B2B Value Score = average of scored drivers (only count applicable ones)
|
|
136
|
+
|
|
137
|
+
## Phases
|
|
138
|
+
|
|
139
|
+
### Phase 1: Gate 1 -- Is It Real? (turns 1-4)
|
|
140
|
+
ONE dimension per exchange. Score together with evidence.
|
|
141
|
+
- "Who has this problem? How many? How often? How painful?"
|
|
142
|
+
- "What do they do today? How well does that work?"
|
|
143
|
+
- Push back: "Everyone has this problem" = score 0 on market sizing.
|
|
144
|
+
Calculate Gate 1 score. If < 6.0: STOP. "The problem isn't real enough."
|
|
145
|
+
|
|
146
|
+
### Phase 2: Gate 2 -- Can We Win? (turns 4-7)
|
|
147
|
+
- "What's your unfair advantage? Not 'we're better' -- what can't be copied?"
|
|
148
|
+
- "What resources do you need that you don't have?"
|
|
149
|
+
- "Name the top 3 risks. Can you manage them?"
|
|
150
|
+
Calculate Gate 2 score. If < 5.5: STOP. "You can't win this."
|
|
151
|
+
|
|
152
|
+
### Phase 3: Gate 3 -- Is It Worth It? (turns 7-10)
|
|
153
|
+
- "Show me the unit economics. Revenue per customer. Cost to serve."
|
|
154
|
+
- "How fast to first customer revenue? Not fundraising -- revenue."
|
|
155
|
+
- "Can this scale 10x without 10x cost?"
|
|
156
|
+
Calculate Gate 3 score. If < 5.0: STOP. "Not worth it."
|
|
157
|
+
|
|
158
|
+
### Phase 4: Value Canvas (turns 10-12)
|
|
159
|
+
Map Jobs, Gains, Pains. Calculate Fit Score.
|
|
160
|
+
- "What job is the customer hiring your product to do?"
|
|
161
|
+
- "What gain do they get that they can't get elsewhere?"
|
|
162
|
+
|
|
163
|
+
### Phase 5: Synthesis (turns 12+)
|
|
164
|
+
Calculate VPS composite. Generate BTC statement. If B2B: score value drivers.
|
|
165
|
+
Identify weakest dimension. That's the next action.
|
|
166
|
+
- "Your VPS is X.X. Here's the verdict and here's where to focus."
|
|
167
|
+
|
|
168
|
+
Escape hatch: "just tell me" = immediate VPS with brief rationale.
|
|
169
|
+
|
|
170
|
+
## Artifact Template
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
methodology: value-proposition
|
|
174
|
+
created: {date}
|
|
175
|
+
depth: {quick|deep}
|
|
176
|
+
problem_type: {type}
|
|
177
|
+
venture_stage: {stage}
|
|
178
|
+
room_section: business-model
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
# Value Proposition Assessment -- {Venture}
|
|
182
|
+
|
|
183
|
+
## Gate 1: Is It Real? (R = {score})
|
|
184
|
+
| Dimension | Weight | Score | Evidence |
|
|
185
|
+
|-----------|--------|-------|----------|
|
|
186
|
+
| Problem Existence | 0.25 | {0-10} | {evidence} |
|
|
187
|
+
| Problem Severity | 0.25 | {0-10} | {evidence} |
|
|
188
|
+
| Market Size | 0.20 | {0-10} | {evidence} |
|
|
189
|
+
| Problem Frequency | 0.15 | {0-10} | {evidence} |
|
|
190
|
+
| Current Alternatives | 0.15 | {0-10} | {evidence} |
|
|
191
|
+
| **Gate 1** | | **{R}** | **{PASS/FAIL}** |
|
|
192
|
+
|
|
193
|
+
## Gate 2: Can We Win? (W = {score})
|
|
194
|
+
| Dimension | Weight | Score | Evidence |
|
|
195
|
+
|-----------|--------|-------|----------|
|
|
196
|
+
| Technical Feasibility | 0.20 | {0-10} | {evidence} |
|
|
197
|
+
| Resource Availability | 0.20 | {0-10} | {evidence} |
|
|
198
|
+
| Competitive Advantage | 0.20 | {0-10} | {evidence} |
|
|
199
|
+
| Team Capability | 0.20 | {0-10} | {evidence} |
|
|
200
|
+
| Risk Manageability | 0.20 | {0-10} | {evidence} |
|
|
201
|
+
| **Gate 2** | | **{W}** | **{PASS/FAIL}** |
|
|
202
|
+
|
|
203
|
+
## Gate 3: Is It Worth It? (V = {score})
|
|
204
|
+
| Dimension | Weight | Score | Evidence |
|
|
205
|
+
|-----------|--------|-------|----------|
|
|
206
|
+
| Revenue Potential | 0.25 | {0-10} | {evidence} |
|
|
207
|
+
| Margin/Unit Economics | 0.20 | {0-10} | {evidence} |
|
|
208
|
+
| Time to Revenue | 0.15 | {0-10} | {evidence} |
|
|
209
|
+
| Strategic Alignment | 0.20 | {0-10} | {evidence} |
|
|
210
|
+
| Scalability | 0.20 | {0-10} | {evidence} |
|
|
211
|
+
| **Gate 3** | | **{V}** | **{PASS/FAIL}** |
|
|
212
|
+
|
|
213
|
+
## Composite VPS = {score} -- {STRONG/MODERATE/WEAK/FAILING}
|
|
214
|
+
|
|
215
|
+
## Value Canvas
|
|
216
|
+
### Customer: Jobs | Gains | Pains
|
|
217
|
+
### Product: Gain Creators | Pain Relievers | Products
|
|
218
|
+
### Fit Score: {0.0-1.0}
|
|
219
|
+
|
|
220
|
+
## BTC Statement
|
|
221
|
+
For {customer} who {need}, our {product} is {category} that {benefit}. Unlike {competitor}, our product {differentiation}.
|
|
222
|
+
|
|
223
|
+
## Weakest Dimension: {name} (score: {x})
|
|
224
|
+
Recommendation: {action}
|
|
225
|
+
|
|
226
|
+
## Next Steps
|
|
227
|
+
1. {address weakest dimension}
|
|
228
|
+
2. {validate riskiest assumption}
|
|
229
|
+
3. {strengthen proposition}
|
|
230
|
+
|
|
231
|
+
## Default Room
|
|
232
|
+
business-model
|
|
233
|
+
|
|
234
|
+
## Cross-References
|
|
235
|
+
- **analyze-needs**: If JTBD canvas needs deeper job analysis
|
|
236
|
+
- **challenge-assumptions**: If any gate relies on unvalidated assumptions
|
|
237
|
+
- **lean-canvas**: If proposition passes and needs business model
|
|
238
|
+
- **build-thesis**: If proposition is strong enough for investment case
|
|
239
|
+
- **user-needs**: If Gate 1 needs deeper process mapping
|
|
240
|
+
- **diagnose**: If problem type is unclear
|
|
241
|
+
|
|
242
|
+
## Quick Pass vs Deep Dive
|
|
243
|
+
- **Quick (10-15 min)**: Score all 3 gates high-level. Calculate VPS. Identify weakest link.
|
|
244
|
+
- **Deep (30-60 min)**: Full five-phase with evidence per dimension, Value Canvas, BTC statement, B2B drivers.
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# Funding Lifecycle
|
|
2
|
+
|
|
3
|
+
> Defines the 4-stage lifecycle for opportunities promoted from opportunity-bank to funding.
|
|
4
|
+
> Stages are sequential. Outcomes are separate from stages.
|
|
5
|
+
|
|
6
|
+
## Lifecycle Stages
|
|
7
|
+
|
|
8
|
+
```
|
|
9
|
+
Discovered --> Researched --> Applying --> Submitted
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
### Stage 1: Discovered
|
|
13
|
+
|
|
14
|
+
**Definition:** Opportunity identified and filed in opportunity-bank. Basic information captured (funder, program, amount range, deadline).
|
|
15
|
+
|
|
16
|
+
**Entry criteria:** User confirms filing from Larry's surfacing.
|
|
17
|
+
|
|
18
|
+
**Contents:** Source opportunity artifact in opportunity-bank/ with frontmatter.
|
|
19
|
+
|
|
20
|
+
**Transition to Researched:** User requests deeper analysis of this opportunity.
|
|
21
|
+
|
|
22
|
+
### Stage 2: Researched
|
|
23
|
+
|
|
24
|
+
**Definition:** Eligibility confirmed, fit assessed against room context, requirements documented in detail. Due diligence complete.
|
|
25
|
+
|
|
26
|
+
**Entry criteria:** Larry completes eligibility analysis and fit assessment.
|
|
27
|
+
|
|
28
|
+
**Contents:** research.md with eligibility analysis, fit assessment, requirements checklist.
|
|
29
|
+
|
|
30
|
+
**Transition to Applying:** User decides to pursue this opportunity and begin application.
|
|
31
|
+
|
|
32
|
+
### Stage 3: Applying
|
|
33
|
+
|
|
34
|
+
**Definition:** Application in progress. Narrative drafted, supporting materials gathered, submission requirements tracked.
|
|
35
|
+
|
|
36
|
+
**Entry criteria:** User initiates application process.
|
|
37
|
+
|
|
38
|
+
**Contents:** narrative.md with draft narrative, supporting documents referenced.
|
|
39
|
+
|
|
40
|
+
**Transition to Submitted:** Application submitted to funder.
|
|
41
|
+
|
|
42
|
+
### Stage 4: Submitted
|
|
43
|
+
|
|
44
|
+
**Definition:** Application sent to funder. Awaiting decision. No further action until response.
|
|
45
|
+
|
|
46
|
+
**Entry criteria:** Application confirmed submitted.
|
|
47
|
+
|
|
48
|
+
**Contents:** Submission confirmation, expected response timeline.
|
|
49
|
+
|
|
50
|
+
## Outcomes (NOT Stages)
|
|
51
|
+
|
|
52
|
+
Outcomes are a separate attribute from stage. An opportunity in any stage can receive an outcome.
|
|
53
|
+
|
|
54
|
+
| Outcome | Description |
|
|
55
|
+
|---------|-------------|
|
|
56
|
+
| `awarded` | Funding approved by funder |
|
|
57
|
+
| `rejected` | Application declined by funder |
|
|
58
|
+
| `withdrawn` | User withdrew application before decision |
|
|
59
|
+
|
|
60
|
+
**Important:** Awarded/Rejected are outcomes, NOT lifecycle stages. The `stage` field tracks WHERE in the process the opportunity is. The `outcome` field tracks the RESULT.
|
|
61
|
+
|
|
62
|
+
## STATUS.md Frontmatter Schema
|
|
63
|
+
|
|
64
|
+
Each funding entry folder contains a `STATUS.md` with this frontmatter:
|
|
65
|
+
|
|
66
|
+
```yaml
|
|
67
|
+
---
|
|
68
|
+
stage: discovered | researched | applying | submitted
|
|
69
|
+
outcome: null | awarded | rejected | withdrawn
|
|
70
|
+
source_opportunity: "[[opportunity-bank/YYYY-MM-DD-slug]]"
|
|
71
|
+
deadline: YYYY-MM-DD
|
|
72
|
+
last_updated: YYYY-MM-DD
|
|
73
|
+
transition_history:
|
|
74
|
+
- stage: discovered
|
|
75
|
+
date: YYYY-MM-DD
|
|
76
|
+
note: "Initial filing from opportunity-bank"
|
|
77
|
+
- stage: researched
|
|
78
|
+
date: YYYY-MM-DD
|
|
79
|
+
note: "Eligibility confirmed, fit assessed"
|
|
80
|
+
---
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Folder Structure
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
room/funding/
|
|
87
|
+
STATE.md # Pipeline summary (aggregated from entries)
|
|
88
|
+
nsf-sbir-phase1/ # Per-opportunity folder
|
|
89
|
+
STATUS.md # Lifecycle stage + transition history
|
|
90
|
+
research.md # Due diligence (Researched+)
|
|
91
|
+
narrative.md # Grant narrative (Applying+)
|
|
92
|
+
doe-clean-energy/ # Another opportunity
|
|
93
|
+
STATUS.md
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Cross-References
|
|
97
|
+
|
|
98
|
+
Funding entries link back to their source opportunity via wikilink:
|
|
99
|
+
```
|
|
100
|
+
source_opportunity: "[[opportunity-bank/2026-03-20-nsf-sbir]]"
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
This creates a graph edge between the funding lifecycle entry and its source in opportunity-bank, parseable by `build-graph`.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Grant API Query Patterns
|
|
2
|
+
|
|
3
|
+
> How room context maps to API query parameters for context-driven grant discovery.
|
|
4
|
+
> Larry uses these patterns to translate room intelligence into search queries.
|
|
5
|
+
|
|
6
|
+
## Context-Driven Query Generation
|
|
7
|
+
|
|
8
|
+
The discovery engine does NOT use hardcoded searches. It reads the user's room data and generates queries:
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
Room STATE.md --> domain_keywords, geography, venture_stage, team_type
|
|
12
|
+
problem-definition/ --> domain context, target population, desired outcomes
|
|
13
|
+
market-analysis/ --> sector terms, market signals
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### buildGrantQuery Flow
|
|
17
|
+
|
|
18
|
+
1. Read `room/STATE.md` frontmatter: `domain_keywords`, `geography`, `venture_stage`, `team_type`
|
|
19
|
+
2. Read `room/problem-definition/*.md` body text: extract significant terms from first sentences
|
|
20
|
+
3. Combine into structured query: `{ keyword, fundingCategories, eligibilities, geography, ventureStage }`
|
|
21
|
+
4. If insufficient context (no domain_keywords AND sparse problem-definition): return `{ insufficient: true }` with explanation
|
|
22
|
+
|
|
23
|
+
## Domain-to-Funding-Category Mapping
|
|
24
|
+
|
|
25
|
+
Maps room `domain_keywords` to Grants.gov `fundingCategories` codes:
|
|
26
|
+
|
|
27
|
+
| Domain Keyword | Category Code | Category Name |
|
|
28
|
+
|----------------|---------------|---------------|
|
|
29
|
+
| artificial-intelligence | ST | Science & Technology |
|
|
30
|
+
| machine-learning | ST | Science & Technology |
|
|
31
|
+
| natural-language-processing | ST | Science & Technology |
|
|
32
|
+
| software | ST | Science & Technology |
|
|
33
|
+
| robotics | ST | Science & Technology |
|
|
34
|
+
| biotech | HL | Health |
|
|
35
|
+
| health | HL | Health |
|
|
36
|
+
| healthcare | HL | Health |
|
|
37
|
+
| medical | HL | Health |
|
|
38
|
+
| clean-energy | EN | Energy |
|
|
39
|
+
| energy | EN | Energy |
|
|
40
|
+
| climate | EN | Energy |
|
|
41
|
+
| environment | ENV | Environment |
|
|
42
|
+
| education | ED | Education |
|
|
43
|
+
| agriculture | AG | Agriculture |
|
|
44
|
+
| food | AG | Agriculture |
|
|
45
|
+
| transportation | T | Transportation |
|
|
46
|
+
| infrastructure | ISS | Income Security & Social Services |
|
|
47
|
+
| housing | HU | Housing |
|
|
48
|
+
| community-development | CD | Community Development |
|
|
49
|
+
|
|
50
|
+
## Geography-to-Eligibility Mapping
|
|
51
|
+
|
|
52
|
+
| Room Geography | Eligibility Tags |
|
|
53
|
+
|----------------|-----------------|
|
|
54
|
+
| United States | us-entity |
|
|
55
|
+
| US | us-entity |
|
|
56
|
+
| Israel | international |
|
|
57
|
+
| EU | international |
|
|
58
|
+
| UK | international |
|
|
59
|
+
|
|
60
|
+
## API Endpoints
|
|
61
|
+
|
|
62
|
+
### Grants.gov (v1)
|
|
63
|
+
|
|
64
|
+
- **URL:** `POST https://api.grants.gov/v1/api/search2`
|
|
65
|
+
- **No auth required** (public API)
|
|
66
|
+
- **Body:** `{ keyword, oppStatuses: "posted", rows: 25, fundingCategories: "ST|HL", sortBy: "openDate|desc" }`
|
|
67
|
+
- **Response:** `{ oppHits: [{ title, agencyName, oppNumber, awardCeiling, closeDate, id }] }`
|
|
68
|
+
- **Timeout:** 10 seconds
|
|
69
|
+
|
|
70
|
+
### Simpler Grants (v1)
|
|
71
|
+
|
|
72
|
+
- **URL:** `POST https://api.simpler.grants.gov/v1/opportunities/search`
|
|
73
|
+
- **No auth required** (public API)
|
|
74
|
+
- **Body:** `{ query: "keyword", filters: { opportunity_status: { one_of: ["posted"] } }, pagination: { page_size: 25, sort_by: [{ order_by: "relevancy" }] } }`
|
|
75
|
+
- **Response:** `{ data: [{ opportunity_title, agency_name, opportunity_number, award_ceiling, close_date, opportunity_id }] }`
|
|
76
|
+
- **Timeout:** 10 seconds
|
|
77
|
+
|
|
78
|
+
## Relevance Scoring
|
|
79
|
+
|
|
80
|
+
Multi-factor scoring (0.0 to 1.0):
|
|
81
|
+
|
|
82
|
+
| Factor | Weight | Description |
|
|
83
|
+
|--------|--------|-------------|
|
|
84
|
+
| Domain keyword match (2+) | 0.35 | Title/program contains room domain keywords |
|
|
85
|
+
| Domain keyword match (1) | 0.20 | Partial domain match |
|
|
86
|
+
| Geography eligibility | 0.15 | Room geography matches eligibility |
|
|
87
|
+
| Defined deadline | 0.10 | Opportunity is actionable (has deadline) |
|
|
88
|
+
| Funding amount specified | 0.10 | Quantifiable award |
|
|
89
|
+
| Stage-appropriate | 0.20 | Grant type matches venture stage (SBIR for pre-revenue, etc.) |
|
|
90
|
+
| Baseline (search hit) | 0.10 | Returned by keyword search |
|
|
91
|
+
|
|
92
|
+
**Maximum score:** 1.0 (capped)
|
|
93
|
+
|
|
94
|
+
## Error Handling
|
|
95
|
+
|
|
96
|
+
- Both APIs are called via `Promise.allSettled` (one failure doesn't block the other)
|
|
97
|
+
- 10-second timeout per API (AbortController)
|
|
98
|
+
- Errors return empty results + error message (never throw)
|
|
99
|
+
- API errors are collected in `api_errors` array for transparency
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Opportunity Artifact Template
|
|
2
|
+
|
|
3
|
+
> Standard frontmatter schema for filing opportunities to `room/opportunity-bank/`.
|
|
4
|
+
> Every opportunity artifact follows this template.
|
|
5
|
+
|
|
6
|
+
## Frontmatter Schema
|
|
7
|
+
|
|
8
|
+
```yaml
|
|
9
|
+
---
|
|
10
|
+
methodology: opportunity-scan
|
|
11
|
+
created: YYYY-MM-DD
|
|
12
|
+
source: grants-gov | simpler-grants | web-research | manual | brain
|
|
13
|
+
source_url: https://...
|
|
14
|
+
opportunity_id: "PROGRAM-YYYY-NNN"
|
|
15
|
+
funder: Organization Name
|
|
16
|
+
program: Program Name
|
|
17
|
+
amount_floor: 0
|
|
18
|
+
amount_ceiling: 275000
|
|
19
|
+
deadline: YYYY-MM-DD
|
|
20
|
+
eligibility:
|
|
21
|
+
- small-business
|
|
22
|
+
- us-entity
|
|
23
|
+
funding_category: science-technology
|
|
24
|
+
relevance_score: 0.85
|
|
25
|
+
relevance_reasoning: "Why this opportunity fits the room context"
|
|
26
|
+
room_connections:
|
|
27
|
+
- section: problem-definition
|
|
28
|
+
relationship: INFORMS
|
|
29
|
+
reasoning: "How this connects"
|
|
30
|
+
- section: financial-model
|
|
31
|
+
relationship: ENABLES
|
|
32
|
+
reasoning: "How this connects"
|
|
33
|
+
status: discovered
|
|
34
|
+
rejection: null
|
|
35
|
+
---
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Field Definitions
|
|
39
|
+
|
|
40
|
+
| Field | Type | Required | Description |
|
|
41
|
+
|-------|------|----------|-------------|
|
|
42
|
+
| `methodology` | string | yes | Always `opportunity-scan` |
|
|
43
|
+
| `created` | date | yes | Date opportunity was filed |
|
|
44
|
+
| `source` | enum | yes | Discovery source: grants-gov, simpler-grants, web-research, manual, brain |
|
|
45
|
+
| `source_url` | url | no | Direct link to opportunity listing |
|
|
46
|
+
| `opportunity_id` | string | no | External identifier from source system |
|
|
47
|
+
| `funder` | string | yes | Organization providing funding |
|
|
48
|
+
| `program` | string | yes | Specific program or grant name |
|
|
49
|
+
| `amount_floor` | number | no | Minimum award amount (0 if unknown) |
|
|
50
|
+
| `amount_ceiling` | number | no | Maximum award amount |
|
|
51
|
+
| `deadline` | date | no | Application deadline (null if rolling) |
|
|
52
|
+
| `eligibility` | list | no | Eligibility categories (small-business, nonprofit, university, etc.) |
|
|
53
|
+
| `funding_category` | string | no | Domain category (science-technology, health, education, etc.) |
|
|
54
|
+
| `relevance_score` | float | yes | 0.0-1.0 relevance to room context |
|
|
55
|
+
| `relevance_reasoning` | string | yes | Natural language explanation of relevance |
|
|
56
|
+
| `room_connections` | list | yes | Typed edges to room sections (section, relationship, reasoning) |
|
|
57
|
+
| `status` | enum | yes | discovered, filed, promoted, rejected |
|
|
58
|
+
| `rejection` | string | no | Reason if user rejected (rejection IS data) |
|
|
59
|
+
|
|
60
|
+
## Filing Instructions for Larry
|
|
61
|
+
|
|
62
|
+
1. Extract room context: problem domain, geography, venture stage, team profile
|
|
63
|
+
2. Generate search queries from room context (context-driven, NOT hardcoded)
|
|
64
|
+
3. Present discovered opportunities to user with relevance reasoning
|
|
65
|
+
4. User confirms -> file with full provenance using this template
|
|
66
|
+
5. User rejects -> capture rejection reason in `rejection` field
|
|
67
|
+
6. After filing, scan for cross-references to other room sections
|
|
68
|
+
7. File as `YYYY-MM-DD-{slug}.md` in `room/opportunity-bank/`
|
|
69
|
+
|
|
70
|
+
## Naming Convention
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
room/opportunity-bank/
|
|
74
|
+
STATE.md # Section summary
|
|
75
|
+
2026-03-20-nsf-sbir.md # Filed opportunity
|
|
76
|
+
2026-03-22-doe-clean-energy.md # Filed opportunity
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Relationship Types
|
|
80
|
+
|
|
81
|
+
Use standard cross-relationship patterns from `references/meeting/cross-relationship-patterns.md`:
|
|
82
|
+
- **INFORMS** -- opportunity relates to a section's domain
|
|
83
|
+
- **ENABLES** -- funding would unblock progress in a section
|
|
84
|
+
- **CONVERGES** -- opportunity scope aligns with multiple sections
|