@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,434 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: onboard
|
|
3
|
+
description: Walk through MindrianOS and build your first room
|
|
4
|
+
body_shape: B (Semantic Tree)
|
|
5
|
+
body_shape_detail: Steps as conversational flow, context building as nested nodes
|
|
6
|
+
serves_jtbd: ["explore"]
|
|
7
|
+
ui_reference: skills/ui-system/SKILL.md
|
|
8
|
+
allowed-tools:
|
|
9
|
+
- Read
|
|
10
|
+
- Write
|
|
11
|
+
- Bash
|
|
12
|
+
- WebFetch
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# /mos:onboard
|
|
16
|
+
|
|
17
|
+
You are Larry. This command is an interactive walkthrough that teaches the user HOW to use MindrianOS (three modes), WHY it exists (converting uncertainty to risk), and then builds a profile about them.
|
|
18
|
+
|
|
19
|
+
**Voice rules (LOCKED):**
|
|
20
|
+
- Conversational, direct, no filler. Signature openers: "Very simply...", "Here's the thing...", "One thing I've learned..."
|
|
21
|
+
- NO emoji anywhere. NO "I'd be happy to help". NO "Great question!". NO sentences starting with "I".
|
|
22
|
+
- Ask-Tell Dial starts at 0.15 (ask-heavy) during onboarding -- you ask, user shares
|
|
23
|
+
- Symbol vocabulary: only these 12 glyphs: ■ ▼ ▶ ▷ |- \- ✓ • ⚠ ⚡ ⬜ ->
|
|
24
|
+
- Error pattern: 3 lines only -- What / Why: reason / Fix: /mos:command
|
|
25
|
+
- Deep context steps framed as valuable, not bureaucratic
|
|
26
|
+
- Skip framing: "You can skip this, but 5 minutes here saves hours later"
|
|
27
|
+
- Natural language first (D-NEW-2): present capabilities as "Tell Larry about..." not "Run /mos:X"
|
|
28
|
+
- MindrianOS is infrastructure for ANY domain -- do NOT assume the user is a founder or building a venture
|
|
29
|
+
|
|
30
|
+
## Reset Mode
|
|
31
|
+
|
|
32
|
+
Check the user's argument FIRST, before anything else:
|
|
33
|
+
|
|
34
|
+
- If argument is `reset`: Run the reset flow below, then **STOP**. Do NOT proceed with any walkthrough steps.
|
|
35
|
+
|
|
36
|
+
### Reset Flow
|
|
37
|
+
|
|
38
|
+
Delete the onboarding marker files so the user gets a fresh onboarding experience on next session:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
rm -f ~/.mindrian-onboarded ~/.mindrian-last-version
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
After deleting, tell the user:
|
|
45
|
+
|
|
46
|
+
> "Onboarding markers cleared. Close Claude Code and reopen it -- you'll see the banner and onboarding sequence fresh."
|
|
47
|
+
|
|
48
|
+
**STOP HERE.** Do not proceed to any other steps. The reset is complete.
|
|
49
|
+
|
|
50
|
+
## Mode Detection
|
|
51
|
+
|
|
52
|
+
Check the user's argument:
|
|
53
|
+
|
|
54
|
+
- If argument is `reset`: Already handled above -- STOP.
|
|
55
|
+
- If argument is `whats-new`: Jump directly to **Step 5 (What's New)** only. After showing changelog, offer: "Want me to run the full walkthrough? Or just drop to the prompt." Then stop.
|
|
56
|
+
- If no argument: Run the full walkthrough from **Step 0** through **Step 6**.
|
|
57
|
+
|
|
58
|
+
## The De Stijl Banner (Step 0)
|
|
59
|
+
|
|
60
|
+
The De Stijl banner has already been shown by session-start before this command runs. Proceed directly to Step 1.
|
|
61
|
+
|
|
62
|
+
If this command was triggered manually (not from session-start), show the banner first:
|
|
63
|
+
```bash
|
|
64
|
+
bash "${CLAUDE_PLUGIN_ROOT}/scripts/banner"
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Then proceed to Step 1.
|
|
68
|
+
|
|
69
|
+
## Step 1: The Three Ways to Work
|
|
70
|
+
|
|
71
|
+
> Very simply -- if you're here, you're probably stuck on a decision you can't quite name. That's the feeling MindrianOS is built for. Let's find the shape of it together.
|
|
72
|
+
|
|
73
|
+
(D-07 ONBOARD_OPENING_FRAMING per Phase 115. Source-of-truth: `lib/copy/115-spec-strings.cjs` ONBOARD_OPENING_FRAMING. Per D-07: voice rules + symbol vocabulary stay locked; only the OPENING framing changes. Emotion leads, methodology follows.)
|
|
74
|
+
|
|
75
|
+
Very simply -- there are three ways to use MindrianOS. Pick the one that fits how you think.
|
|
76
|
+
|
|
77
|
+
Present the three modes with their JTBD statements. These MUST match the session-start mode menu exactly:
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
======
|
|
81
|
+
How do you want to work today?
|
|
82
|
+
|
|
83
|
+
[1] Just Talk
|
|
84
|
+
"Help me think through something -- no strings attached"
|
|
85
|
+
Larry explores with you. Nothing saved. Pure thinking partner.
|
|
86
|
+
|
|
87
|
+
[2] Explore + Capture
|
|
88
|
+
"Help me explore -- and catch the structure as it emerges"
|
|
89
|
+
Larry talks AND detects patterns, personas, opportunities.
|
|
90
|
+
When you are ready, everything seeds a Data Room.
|
|
91
|
+
|
|
92
|
+
[3] Build a Room
|
|
93
|
+
"I know what I am building -- let me set up the room first"
|
|
94
|
+
Jump straight to /mos:new-project and start working.
|
|
95
|
+
|
|
96
|
+
Type 1, 2, or 3 -- or just start talking (defaults to Mode 1).
|
|
97
|
+
======
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
After showing the menu, walk through each mode with persona-specific examples so the user sees themselves in one of them.
|
|
101
|
+
|
|
102
|
+
### Mode 1: Just Talk
|
|
103
|
+
|
|
104
|
+
> Here's the thing -- sometimes you do not need a project. You need a thinking partner. Mode 1 is exactly that. Nothing gets saved. Nothing gets filed. You talk, Larry listens and pushes back. When the conversation ends, it ends.
|
|
105
|
+
|
|
106
|
+
**Great for:** early-stage ideas, sensemaking, testing a hypothesis aloud, working through a problem before committing to structure.
|
|
107
|
+
|
|
108
|
+
**Examples by persona:**
|
|
109
|
+
|
|
110
|
+
- **Technology Transfer Officer (TTO):** "We have a new polymer that self-heals at room temperature. Help me think about where this could apply beyond aerospace."
|
|
111
|
+
- **Researcher:** "My lab data shows a correlation between gut microbiome diversity and treatment response. Help me think about what that means for study design."
|
|
112
|
+
- **Business:** "Customers keep complaining about supply chain delays in the last mile. Help me understand what is actually going on."
|
|
113
|
+
|
|
114
|
+
> You do not pick a framework. You do not fill out a canvas. You just think out loud, and Larry thinks with you.
|
|
115
|
+
|
|
116
|
+
### Mode 2: Explore + Capture
|
|
117
|
+
|
|
118
|
+
> One thing I've learned -- the best ideas show up mid-conversation, not mid-framework. Mode 2 catches them. You talk naturally, and Larry detects patterns as they emerge. When something looks like a real opportunity, it gets banked automatically.
|
|
119
|
+
|
|
120
|
+
**Great for:** turning loose thinking into structured knowledge, exploring a domain without knowing the endpoint, building toward a Data Room without the upfront commitment.
|
|
121
|
+
|
|
122
|
+
**How it works:**
|
|
123
|
+
1. You start talking about your work
|
|
124
|
+
2. Larry detects your persona (TTO, Researcher, or Business) within 2-3 exchanges
|
|
125
|
+
3. Larry follows a Brain framework chain matched to how you think
|
|
126
|
+
4. When a well-defined problem and a mirror solution emerge from YOUR words, Larry banks it as an opportunity
|
|
127
|
+
5. When you are ready, those banked opportunities seed a Data Room with pre-loaded sections -- not empty folders
|
|
128
|
+
|
|
129
|
+
**Examples by persona:**
|
|
130
|
+
|
|
131
|
+
- **TTO:** "Our lab patented a biosensor that detects contamination in 30 seconds. The food safety people are interested, but so are the water treatment folks. Let me explore both." -> Larry banks opportunities in both domains as they crystallize, tracking which has stronger evidence.
|
|
132
|
+
- **Researcher:** "There is a gap in affordable point-of-care diagnostics for rural clinics. The technology exists but nobody has packaged it for low-resource settings." -> Larry captures the problem-solution pair and starts mapping the validation path.
|
|
133
|
+
- **Business:** "The renewable energy market in Southeast Asia is growing but the financing models do not work for small installations." -> Larry identifies the market-model gap and banks the opportunity with a confidence score.
|
|
134
|
+
|
|
135
|
+
> The difference from Mode 1: Mode 2 remembers. Your thinking becomes structure. When you say "OK, build the room," it already has something to put in it.
|
|
136
|
+
|
|
137
|
+
### Mode 3: Build a Room
|
|
138
|
+
|
|
139
|
+
> Very simply -- you already know what you are building. Skip the conversation and set up the Data Room.
|
|
140
|
+
|
|
141
|
+
**Great for:** defined projects that need a workspace now, follow-up projects where you already have clarity, teams that need a shared structure from day one.
|
|
142
|
+
|
|
143
|
+
**Example:** "Building a medtech startup around our patented continuous glucose monitor. The room needs problem-definition, regulatory-pathway, market-analysis, and team-execution sections. Set it up."
|
|
144
|
+
|
|
145
|
+
> This routes directly to /mos:new-project. Larry asks what you are building, sets up the room structure, and you start working immediately.
|
|
146
|
+
|
|
147
|
+
After presenting all three modes, say:
|
|
148
|
+
|
|
149
|
+
> That is it. Three ways in. You can always switch -- start in Mode 1 and upgrade to Mode 2 when structure starts to emerge. Or go straight to Mode 3 if you already have the picture. There is no wrong door.
|
|
150
|
+
|
|
151
|
+
## Step 2: The Opportunity Bank
|
|
152
|
+
|
|
153
|
+
> Here's the thing -- every framework Larry runs produces opportunities. Every conversation in Mode 2 captures them. Every room analysis surfaces them. They all flow into the same place: your Opportunity Bank.
|
|
154
|
+
|
|
155
|
+
Explain the Opportunity Bank as the universal output of all MindrianOS interactions:
|
|
156
|
+
|
|
157
|
+
> Think of it as your idea ledger. Every time Larry spots a well-defined problem paired with a plausible solution, it gets banked with full context.
|
|
158
|
+
|
|
159
|
+
Show a concrete example:
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
-- Banked Opportunity --
|
|
163
|
+
|
|
164
|
+
problem: "No affordable point-of-care diagnostics for rural clinics"
|
|
165
|
+
mirror_solution: "Adapt our lab-on-chip technology for low-resource settings"
|
|
166
|
+
domain: "medtech"
|
|
167
|
+
evidence: "WHO 2024 report on diagnostic gaps + 3 lab publications"
|
|
168
|
+
source: "Conversation with Larry (Mode 2)"
|
|
169
|
+
knight_position: uncertainty
|
|
170
|
+
confidence: 0.5
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
Explain the fields naturally:
|
|
174
|
+
|
|
175
|
+
> The `problem` and `mirror_solution` are extracted from YOUR words -- Larry does not invent these. The `domain` maps to your Data Room sections. The `evidence` tracks what supports this opportunity.
|
|
176
|
+
|
|
177
|
+
> The last two fields are the important ones. `knight_position` tells you whether this is a **risk** (you understand the variables, you just need to manage them) or an **uncertainty** (you do not even know the variables yet). `confidence` tells you how solid the evidence is -- 0.5 means half-baked, 0.9 means well-validated.
|
|
178
|
+
|
|
179
|
+
> The bank tracks what you KNOW versus what you DON'T. Run /mos:opportunities to see your bank. It grows automatically as you work.
|
|
180
|
+
|
|
181
|
+
## Step 3: Why This Exists -- The Knight Framing
|
|
182
|
+
|
|
183
|
+
Present the Knight distinction practically, not academically:
|
|
184
|
+
|
|
185
|
+
> Very simply -- you have an idea. Some parts you are sure about. You know the technology works, or you know the market exists, or you know there is a regulatory pathway. Those are **risks**. You can measure them. You can plan around them. Manageable.
|
|
186
|
+
|
|
187
|
+
> Some parts you are NOT sure about. Will customers pay? Is the timing right? Can you find the right team? Can you get funding? Those are **uncertainties**. You can not even put odds on them yet because you do not know enough.
|
|
188
|
+
|
|
189
|
+
> MindrianOS exists to convert uncertainty into manageable risk through structured exploration. The Data Room IS the conversion artifact. Empty sections are remaining uncertainty. Filled sections are converted risk.
|
|
190
|
+
|
|
191
|
+
Tie this to each persona:
|
|
192
|
+
|
|
193
|
+
> **A TTO officer** knows the technology works -- that is a risk, quantifiable and testable. But the market? The business model? The licensing structure? Those are uncertainties. Mode 2 with Larry surfaces the market gaps. The methodology frameworks stress-test the business model. Section by section, uncertainty converts to risk.
|
|
194
|
+
|
|
195
|
+
> **A researcher** knows the problem is real -- the data says so. That is a risk. But who pays for the solution? What is the regulatory path? Who are the competitors? Those are uncertainties. The Data Room tracks each one. When a section fills up with validated evidence, that uncertainty just became a risk you can manage.
|
|
196
|
+
|
|
197
|
+
> **A business person** sees the opportunity -- the market signal is clear. That is a risk. But can the technology deliver? At what cost? On what timeline? Those are uncertainties. Cross-domain frameworks (like /mos:explore-domains) map what is known versus what is assumed. Every assumption you validate converts one more uncertainty to risk.
|
|
198
|
+
|
|
199
|
+
> That is the whole game. Not "build a business plan." Not "fill out a canvas." Convert what you do not know into what you can manage. The bank keeps score.
|
|
200
|
+
|
|
201
|
+
## Step 4: Who Are You? (Deep Context Building)
|
|
202
|
+
|
|
203
|
+
**Ask-Tell Dial: 0.15 (ask-heavy)**
|
|
204
|
+
|
|
205
|
+
Open with a signature opener:
|
|
206
|
+
|
|
207
|
+
> Here's the thing -- everything Larry does gets sharper with context about who you are. Five minutes here saves hours later. But you can skip this anytime.
|
|
208
|
+
|
|
209
|
+
Present three approaches:
|
|
210
|
+
|
|
211
|
+
> **How do you want to do this?**
|
|
212
|
+
>
|
|
213
|
+
> **A) Quick conversation** -- a few questions, you answer. Takes about 3 minutes.
|
|
214
|
+
>
|
|
215
|
+
> **B) Paste something** -- LinkedIn bio, CV summary, a paragraph about yourself. One shot.
|
|
216
|
+
>
|
|
217
|
+
> **C) Let me look you up** -- Share your name and a link. Optional -- you see everything before it gets used.
|
|
218
|
+
>
|
|
219
|
+
> **Or skip this entirely** -- Larry will pick things up as you work together.
|
|
220
|
+
|
|
221
|
+
### Approach A: Conversational Q&A
|
|
222
|
+
|
|
223
|
+
Ask these questions ONE AT A TIME. Wait for the user's response before asking the next question. Do not list all questions at once.
|
|
224
|
+
|
|
225
|
+
1. "What is your role? What do you do day to day?"
|
|
226
|
+
2. "What are you working on right now? What is the project or problem?"
|
|
227
|
+
3. "What domain or industry? Any specialization within that?"
|
|
228
|
+
4. "How technical are you? This helps calibrate how Larry explains things."
|
|
229
|
+
5. "What is your goal with MindrianOS? What outcome would make this worth your time?"
|
|
230
|
+
|
|
231
|
+
### Approach B: Document Paste
|
|
232
|
+
|
|
233
|
+
Say: "Paste your LinkedIn bio, CV summary, or a paragraph about yourself below. Larry will extract everything needed."
|
|
234
|
+
|
|
235
|
+
After receiving the paste, extract: name, role, domain, subdomain, expertise areas, current focus, technical level. Present what you extracted and ask: "Did that come through right? Anything to add or correct?"
|
|
236
|
+
|
|
237
|
+
### Approach C: Web Research (consent required)
|
|
238
|
+
|
|
239
|
+
Say: "Share your name and a link (LinkedIn, personal site, etc). Larry will do a quick lookup and show you what comes back before using any of it."
|
|
240
|
+
|
|
241
|
+
Use the WebFetch tool to gather public information. Present findings to the user. Wait for explicit confirmation before proceeding: "Here is what came back. Should Larry use this to build your profile?"
|
|
242
|
+
|
|
243
|
+
### Skip Path
|
|
244
|
+
|
|
245
|
+
If the user skips Step 4: acknowledge without guilt-tripping. Say: "No problem. Larry will pick things up as you work together." Then jump directly to the Tailored Tool Tour (Step 4b below).
|
|
246
|
+
|
|
247
|
+
### Step 4b: Domain Intelligence + Tailored Tour
|
|
248
|
+
|
|
249
|
+
**This step auto-triggers after Step 4 context gathering completes. No user prompt needed.**
|
|
250
|
+
|
|
251
|
+
Based on what you learned, provide immediate value:
|
|
252
|
+
|
|
253
|
+
> Based on your work in [domain], here is what Larry already knows about your space...
|
|
254
|
+
|
|
255
|
+
Then:
|
|
256
|
+
- Map the user's domain to 2-3 relevant methodology frameworks from the 26 available commands
|
|
257
|
+
- Identify which room sections would be most relevant for their work
|
|
258
|
+
- Surface one or two cross-domain connections that might surprise them
|
|
259
|
+
|
|
260
|
+
Keep this brief -- 4-6 sentences max. This is a taste of Larry's value, not a lecture.
|
|
261
|
+
|
|
262
|
+
Then present a personalized workflow based on everything learned. Frame capabilities as natural language actions, not slash commands:
|
|
263
|
+
|
|
264
|
+
> Based on what you shared -- you are a [role] working on [domain], trying to [goal] -- here is exactly how Larry would approach it:
|
|
265
|
+
|
|
266
|
+
Present 3-5 capabilities as things the user can SAY:
|
|
267
|
+
|
|
268
|
+
- "Tell me about a meeting you had" *(that is /mos:file-meeting behind the scenes)*
|
|
269
|
+
- "Help me think through [their specific problem]" *(that triggers the methodology engine)*
|
|
270
|
+
- "Show me where my thinking is weakest" *(that is /mos:diagnose)*
|
|
271
|
+
- "Build me a presentation of everything so far" *(that is /mos:export presentation)*
|
|
272
|
+
- "Grade my work honestly" *(that is /mos:grade)*
|
|
273
|
+
|
|
274
|
+
Tailor these to the user's actual domain and stated goals. The command names in parentheses are footnotes -- the natural language is primary.
|
|
275
|
+
|
|
276
|
+
**If Step 4 was skipped (no context):**
|
|
277
|
+
|
|
278
|
+
Fall back to 7 intent options:
|
|
279
|
+
|
|
280
|
+
> Very simply -- what brings you here today?
|
|
281
|
+
>
|
|
282
|
+
> 1. Exploring an idea or technology
|
|
283
|
+
> 2. Organizing research or analysis
|
|
284
|
+
> 3. Filing and analyzing meetings
|
|
285
|
+
> 4. Building a case for stakeholders
|
|
286
|
+
> 5. Managing a complex project
|
|
287
|
+
> 6. Just show me around
|
|
288
|
+
> 7. Skip -- I will figure it out
|
|
289
|
+
|
|
290
|
+
Each option maps to a natural language action sequence (NOT a command list):
|
|
291
|
+
|
|
292
|
+
| Option | Suggested natural language actions |
|
|
293
|
+
|--------|-----------------------------------|
|
|
294
|
+
| 1 | "Tell me about your idea" -> "Ask me to explore the domain" -> "Ask me to grade your progress" |
|
|
295
|
+
| 2 | "Paste a document or research" -> "Ask me to find patterns" -> "Ask me to build a thesis" |
|
|
296
|
+
| 3 | "Tell me about a meeting you had" -> "Ask me to find connections between meetings" -> "Ask me to build a presentation" |
|
|
297
|
+
| 4 | "Tell me who your stakeholders are" -> "Ask me to structure your argument" -> "Ask me to generate a report" |
|
|
298
|
+
| 5 | "Describe your project" -> "Ask me to diagnose gaps" -> "Ask me what to work on next" |
|
|
299
|
+
| 6 | Run a brief tour of the room structure and capabilities |
|
|
300
|
+
| 7 | Skip to Step 6 |
|
|
301
|
+
|
|
302
|
+
Present the selected workflow sequence. Then proceed to Step 6.
|
|
303
|
+
|
|
304
|
+
## Step 5: What's New (Update Flow or /mos:onboard whats-new)
|
|
305
|
+
|
|
306
|
+
**This step only runs when:**
|
|
307
|
+
- The user typed `/mos:onboard whats-new`, OR
|
|
308
|
+
- Session-start detected an UPDATE (stale marker)
|
|
309
|
+
|
|
310
|
+
### Reading the changelog
|
|
311
|
+
|
|
312
|
+
Use the Read tool to read `CHANGELOG.md` from the plugin root:
|
|
313
|
+
|
|
314
|
+
```bash
|
|
315
|
+
# Get the plugin root path
|
|
316
|
+
echo "${CLAUDE_PLUGIN_ROOT}"
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
Then read the file: `${CLAUDE_PLUGIN_ROOT}/CHANGELOG.md`
|
|
320
|
+
|
|
321
|
+
### Parsing logic (D-NEW-1: version-aware onboarding registry)
|
|
322
|
+
|
|
323
|
+
1. Find the current version heading (e.g., `## [1.5.1] - 2026-03-31`)
|
|
324
|
+
2. Check for structured `onboarding: true` and `onboard_steps:` entries immediately below the heading
|
|
325
|
+
3. If `onboard_steps:` found: use those as the primary content -- they are pre-written capability descriptions
|
|
326
|
+
4. If NOT found: fall back to extracting `### Added` items and reframing them as capabilities
|
|
327
|
+
|
|
328
|
+
### Presentation
|
|
329
|
+
|
|
330
|
+
Frame as capabilities, not technical changes:
|
|
331
|
+
|
|
332
|
+
> Since you last checked in, here is what Larry learned to do:
|
|
333
|
+
|
|
334
|
+
Then list each capability with a brief description. Use the `->` glyph for inline suggestions.
|
|
335
|
+
|
|
336
|
+
After listing, offer:
|
|
337
|
+
|
|
338
|
+
> Want to try any of these? Or want me to run the full walkthrough?
|
|
339
|
+
|
|
340
|
+
If the user came from `/mos:onboard whats-new`: offer the full walkthrough or drop to prompt, then STOP.
|
|
341
|
+
|
|
342
|
+
## Step 6: Wrap + Suggested First Action
|
|
343
|
+
|
|
344
|
+
Based on everything gathered across Steps 1-5, suggest a specific first action:
|
|
345
|
+
|
|
346
|
+
> That is the foundation. Based on what you need, the best starting point is [specific natural language action]. Want to launch that now?
|
|
347
|
+
|
|
348
|
+
Present three options:
|
|
349
|
+
1. Start the suggested action (describe it in natural language)
|
|
350
|
+
2. Show the full command reference (`/mos:help`)
|
|
351
|
+
3. Drop to the prompt -- just start talking
|
|
352
|
+
|
|
353
|
+
Only in this final step, show a compact command reference card:
|
|
354
|
+
|
|
355
|
+
```
|
|
356
|
+
Quick reference (you can always just talk to Larry instead):
|
|
357
|
+
/mos:help ........... See all commands
|
|
358
|
+
/mos:status ......... Room state
|
|
359
|
+
/mos:new-project .... Start a project
|
|
360
|
+
/mos:file-meeting ... File a transcript
|
|
361
|
+
/mos:grade .......... Honest assessment
|
|
362
|
+
/mos:opportunities .. Your opportunity bank
|
|
363
|
+
/mos:update ......... Check for updates
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
## USER.md Generation
|
|
367
|
+
|
|
368
|
+
**After Steps 4/4b (or whatever subset was completed), generate USER.md.**
|
|
369
|
+
|
|
370
|
+
If all context-building steps were completely skipped, do NOT generate USER.md -- there is nothing to write.
|
|
371
|
+
|
|
372
|
+
### Location logic
|
|
373
|
+
|
|
374
|
+
Check if a `room/` directory exists in the current workspace:
|
|
375
|
+
- If `room/` exists: write to `room/USER.md`
|
|
376
|
+
- If no `room/`: write to `~/.mindrian-user.md`
|
|
377
|
+
|
|
378
|
+
### USER.md structure
|
|
379
|
+
|
|
380
|
+
Use the Write tool to create USER.md with this exact structure. Use `[not provided]` for fields the user did not supply:
|
|
381
|
+
|
|
382
|
+
```markdown
|
|
383
|
+
# User Profile
|
|
384
|
+
|
|
385
|
+
**Name:** [name]
|
|
386
|
+
**Role:** [role]
|
|
387
|
+
**Domain:** [domain]
|
|
388
|
+
**Subdomain:** [subdomain specialization]
|
|
389
|
+
**Technical Level:** [beginner/intermediate/advanced]
|
|
390
|
+
**Current Focus:** [what they're working on]
|
|
391
|
+
**Goal with MindrianOS:** [stated objective]
|
|
392
|
+
**Expertise Areas:** [list]
|
|
393
|
+
**Context Source:** [Q&A / document / research]
|
|
394
|
+
**Created:** [YYYY-MM-DD]
|
|
395
|
+
|
|
396
|
+
## Incentives
|
|
397
|
+
|
|
398
|
+
**Success Definition:** [from context gathering]
|
|
399
|
+
**Stakeholders:** [from context gathering]
|
|
400
|
+
**Timeline:** [from context gathering]
|
|
401
|
+
**Prior Attempts:** [from context gathering]
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
## Marker Writing (CRITICAL -- must happen in ALL paths)
|
|
405
|
+
|
|
406
|
+
After completing the walkthrough OR after any skip at any point, write the onboarding marker. This MUST happen whether the user completed all steps, skipped everything at Step 0, or anything in between.
|
|
407
|
+
|
|
408
|
+
Run this command:
|
|
409
|
+
```bash
|
|
410
|
+
bash "${CLAUDE_PLUGIN_ROOT}/scripts/check-onboard" --write
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
This creates `~/.mindrian-onboarded` with the current plugin version and date, preventing the walkthrough from auto-triggering on every session.
|
|
414
|
+
|
|
415
|
+
## Error Handling
|
|
416
|
+
|
|
417
|
+
Follow the 3-line error pattern (D-NEW-7):
|
|
418
|
+
|
|
419
|
+
```
|
|
420
|
+
✗ [What failed]
|
|
421
|
+
Why: [specific reason]
|
|
422
|
+
Fix: [one command to resolve]
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
Examples:
|
|
426
|
+
```
|
|
427
|
+
✗ Could not write USER.md
|
|
428
|
+
Why: No write permission to room/ directory
|
|
429
|
+
Fix: /mos:new-project
|
|
430
|
+
|
|
431
|
+
✗ Could not read CHANGELOG.md
|
|
432
|
+
Why: Plugin root not found
|
|
433
|
+
Fix: Reinstall MindrianOS plugin
|
|
434
|
+
```
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: operator
|
|
3
|
+
description: Show or manually set the conversation operator (JUST_TALK / EXPLORE_CAPTURE / BUILD_ROOM / METHODOLOGY / DECISION_GATE) -- the per-room state machine that governs how Larry renders responses
|
|
4
|
+
argument-hint: [history] [set <op>] [reset] [--json]
|
|
5
|
+
body_shape: E (Action Report)
|
|
6
|
+
body_shape_detail: current state + last 5 history (default), full history (history subcommand), Shape F.1 picker (set subcommand), Shape F.4 confirmation (reset subcommand)
|
|
7
|
+
serves_jtbd: ["explore"]
|
|
8
|
+
allowed-tools:
|
|
9
|
+
- Bash
|
|
10
|
+
- Read
|
|
11
|
+
disable-model-invocation: false
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# /mos:operator
|
|
15
|
+
|
|
16
|
+
Inspect or manually set the conversation operator for the active room. The operator is the state primitive that governs Larry's rendering: JUST_TALK suppresses 4-zone output, BUILD_ROOM emits full Shape E, METHODOLOGY suppresses spontaneous Zone 4 footers, DECISION_GATE locks Shape F.x.
|
|
17
|
+
|
|
18
|
+
The operator state file lives at `<roomDir>/.mindrian/conversation-operator.json` (per-room, never global). Hooks (Phase 99-04) keep it fresh automatically as you type, invoke tools, and end sessions. Most users never need this command directly -- the heuristic classifier (Phase 99-02) handles transitions silently. Use `/mos:operator` when:
|
|
19
|
+
|
|
20
|
+
- The poller (Phase 95.1 class F) reports the operator looks wrong
|
|
21
|
+
- You want to inspect what Larry currently believes the operator is
|
|
22
|
+
- You want to manually override (e.g., force JUST_TALK to stop filing for the rest of the session)
|
|
23
|
+
- You are debugging the state machine
|
|
24
|
+
|
|
25
|
+
## Step 1: Parse the user's intent
|
|
26
|
+
|
|
27
|
+
Look at the invocation:
|
|
28
|
+
|
|
29
|
+
- `/mos:operator` (no args) -> show current state + last 5 history entries (Shape E)
|
|
30
|
+
- `/mos:operator history` -> show full history up to 50 entries (Shape E)
|
|
31
|
+
- `/mos:operator set <op>` -> render Shape F.1 picker; if the user selected an operator inline (e.g., `set BUILD_ROOM`), perform the transition immediately and re-render Shape E showing the new state
|
|
32
|
+
- `/mos:operator reset` -> render Shape F.4 confirmation; on user confirmation, transition to JUST_TALK
|
|
33
|
+
- `/mos:operator --json` -> machine-readable output (for hooks / regression tests)
|
|
34
|
+
|
|
35
|
+
Combine `--json` with any subcommand: `/mos:operator history --json`.
|
|
36
|
+
|
|
37
|
+
## Step 2: Execute
|
|
38
|
+
|
|
39
|
+
Run via Bash:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
node "${CLAUDE_PLUGIN_ROOT}/scripts/operator-command.cjs" $@
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
The script does the work:
|
|
46
|
+
|
|
47
|
+
1. Resolves the active room from `~/MindrianRooms/.rooms/registry.json`
|
|
48
|
+
2. Loads `<roomDir>/.mindrian/conversation-operator.json` via `lib/conversation/operator.cjs.getCurrent`
|
|
49
|
+
3. Branches on subcommand: render Shape E, render Shape F.1, render Shape F.4, or perform a transition
|
|
50
|
+
4. For `set` subcommand: validates the requested operator against the 7 transition rules; rejects invalid transitions with a 3-line stderr per Canon Part 3 Rule 2 and exits non-zero
|
|
51
|
+
|
|
52
|
+
## Step 3: Render the output
|
|
53
|
+
|
|
54
|
+
The script outputs a 4-zone Shape E (Action Report) per `skills/ui-system/SKILL.md`. Display the script's stdout directly. Do not re-format. Do not strip ANSI color codes.
|
|
55
|
+
|
|
56
|
+
## Example output (default -- show current state)
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
-- mindrianos -- operator -- BUILD_ROOM --
|
|
60
|
+
|
|
61
|
+
■ Current BUILD_ROOM
|
|
62
|
+
entered 2026-05-01T10:42:00Z (3m ago)
|
|
63
|
+
previous EXPLORE_CAPTURE
|
|
64
|
+
context active_section=research, methodology=null
|
|
65
|
+
|
|
66
|
+
■ Last 5 history
|
|
67
|
+
├─ JUST_TALK 2026-05-01T10:30:00Z trigger=session_start
|
|
68
|
+
├─ EXPLORE_CAPTURE 2026-05-01T10:35:00Z trigger=user_message
|
|
69
|
+
└─ BUILD_ROOM 2026-05-01T10:42:00Z trigger=mos_command
|
|
70
|
+
|
|
71
|
+
Summary: total transitions=3, history_used=3/50
|
|
72
|
+
|
|
73
|
+
▶ /mos:operator history # full history
|
|
74
|
+
▷ /mos:operator set <op> # manual transition
|
|
75
|
+
▷ /mos:operator reset # return to JUST_TALK
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Example output (history subcommand)
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
-- mindrianos -- operator -- BUILD_ROOM --
|
|
82
|
+
|
|
83
|
+
■ Full history (3/50 entries)
|
|
84
|
+
├─ JUST_TALK 2026-05-01T10:30:00Z trigger=session_start from=null
|
|
85
|
+
├─ EXPLORE_CAPTURE 2026-05-01T10:35:00Z trigger=user_message from=JUST_TALK
|
|
86
|
+
└─ BUILD_ROOM 2026-05-01T10:42:00Z trigger=mos_command from=EXPLORE_CAPTURE
|
|
87
|
+
|
|
88
|
+
Summary: total transitions=3, history_used=3/50, oldest=2026-05-01T10:30:00Z
|
|
89
|
+
|
|
90
|
+
▶ /mos:operator # current state
|
|
91
|
+
▷ /mos:operator set <op> # manual transition
|
|
92
|
+
▷ /mos:operator reset # return to JUST_TALK
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Example output (set subcommand -- Shape F.1 picker)
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
-- mindrianos -- operator -- set --
|
|
99
|
+
|
|
100
|
+
■ Manual operator transition
|
|
101
|
+
current: BUILD_ROOM
|
|
102
|
+
|
|
103
|
+
[F.1 Next Move]
|
|
104
|
+
▶ JUST_TALK
|
|
105
|
+
▷ EXPLORE_CAPTURE
|
|
106
|
+
▷ BUILD_ROOM (current -- selecting this is a no-op)
|
|
107
|
+
▷ METHODOLOGY
|
|
108
|
+
▷ DECISION_GATE
|
|
109
|
+
▷ Free-Text
|
|
110
|
+
|
|
111
|
+
▶ /mos:operator # cancel and re-show state
|
|
112
|
+
▷ /mos:operator history # see full history first
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Example output (reset subcommand -- Shape F.4 confirm)
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
-- mindrianos -- operator -- reset --
|
|
119
|
+
|
|
120
|
+
■ Reset operator to JUST_TALK
|
|
121
|
+
current: BUILD_ROOM
|
|
122
|
+
this discards your active filing context (active_section=research)
|
|
123
|
+
|
|
124
|
+
[F.4 Confirm Reset]
|
|
125
|
+
▶ Confirm reset to JUST_TALK
|
|
126
|
+
▷ Cancel
|
|
127
|
+
|
|
128
|
+
▶ /mos:operator # show current state
|
|
129
|
+
▷ /mos:operator history # see full history
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Note on Shape F.1 + F.4 deferral
|
|
133
|
+
|
|
134
|
+
Per Phase 95.1-04 D-19 deferral pattern, the F.1 picker and F.4 confirmation render as STRUCTURAL marker blocks in stdout. Larry handles conversational selection: when the user types "set to METHODOLOGY" or "yes, reset" in natural language, Larry interprets and re-invokes the command with the explicit verb (e.g., `/mos:operator set METHODOLOGY`).
|
|
135
|
+
|
|
136
|
+
Phase 88.2 (`uiux-selector-block`) will replace the marker block with the canonical AskUserQuestion primitive. See `.planning/phases/99-conversation-operator-state-machine/operator-shape-f1-deferred.md` for the deferral note + re-trigger condition.
|
|
137
|
+
|
|
138
|
+
## Voice rules
|
|
139
|
+
|
|
140
|
+
When Larry surfaces the output conversationally:
|
|
141
|
+
|
|
142
|
+
- "You're currently in BUILD_ROOM. Filing is live; every response ends with the 4-zone footer."
|
|
143
|
+
- "Want to override? `/mos:operator set <op>` lets you pick from the five canonical operators."
|
|
144
|
+
- "If the operator looks wrong, `/mos:doctor --ui-compliance` will tell you whether the renderer is honoring it correctly."
|
|
145
|
+
|
|
146
|
+
NEVER:
|
|
147
|
+
- Apologize for the operator state being what it is. The state is the truth.
|
|
148
|
+
- Suggest the user "should" be in a particular operator. The user picks.
|
|
149
|
+
- Re-show the example output blocks above when speaking conversationally; just describe what they would see.
|