@mindrian_os/install 1.13.0-beta.16 → 1.13.0-beta.19
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 +1 -1
- package/CHANGELOG.md +36 -0
- package/commands/act.md +1 -0
- package/commands/admin.md +1 -0
- package/commands/analyze-needs.md +2 -0
- package/commands/analyze-systems.md +2 -0
- package/commands/analyze-timing.md +2 -0
- package/commands/auto-explore.md +2 -0
- package/commands/beautiful-question.md +2 -0
- package/commands/brain-derive.md +2 -0
- package/commands/build-knowledge.md +2 -0
- package/commands/build-thesis.md +2 -0
- package/commands/causal.md +2 -0
- package/commands/challenge-assumptions.md +2 -0
- package/commands/compare-ventures.md +2 -0
- package/commands/dashboard.md +2 -1
- package/commands/deep-grade.md +2 -0
- package/commands/diagnose.md +21 -1
- package/commands/diagnostics.md +14 -3
- package/commands/doctor.md +4 -1
- package/commands/dogfood-flush.md +92 -0
- package/commands/dominant-designs.md +2 -0
- package/commands/explain-decision.md +2 -0
- package/commands/explore-domains.md +2 -0
- package/commands/explore-futures.md +2 -0
- package/commands/explore-trends.md +2 -0
- package/commands/export.md +1 -0
- package/commands/feynman-timeline-refresh.md +2 -0
- package/commands/file-meeting.md +4 -0
- package/commands/find-analogies.md +1 -0
- package/commands/find-bottlenecks.md +2 -0
- package/commands/find-connections.md +2 -0
- package/commands/funding.md +1 -0
- package/commands/grade.md +4 -0
- package/commands/graph.md +1 -0
- package/commands/hat-briefing.md +1 -0
- package/commands/heal.md +22 -170
- package/commands/help.md +54 -334
- package/commands/hmi-status.md +23 -144
- package/commands/jtbd.md +1 -0
- package/commands/leadership.md +2 -0
- package/commands/lean-canvas.md +2 -0
- package/commands/macro-trends.md +2 -0
- package/commands/map-unknowns.md +2 -0
- package/commands/memory.md +1 -0
- package/commands/models.md +1 -0
- package/commands/mos-reason.md +2 -0
- package/commands/mos.md +139 -0
- package/commands/mullins.md +2 -0
- package/commands/mva-brief.md +58 -0
- package/commands/mva-option.md +91 -0
- package/commands/new-project.md +4 -0
- package/commands/onboard.md +22 -7
- package/commands/operator.md +1 -0
- package/commands/opportunities.md +1 -0
- package/commands/organize.md +22 -469
- package/commands/persona.md +1 -0
- package/commands/pipeline.md +2 -0
- package/commands/present.md +1 -0
- package/commands/publish.md +2 -0
- package/commands/query.md +24 -102
- package/commands/radar.md +2 -0
- package/commands/reanalyze.md +1 -0
- package/commands/research.md +2 -0
- package/commands/room.md +2 -0
- package/commands/rooms.md +1 -0
- package/commands/root-cause.md +2 -0
- package/commands/rs-experts.md +1 -0
- package/commands/rs-explain.md +1 -0
- package/commands/rs-fetch.md +1 -0
- package/commands/rs-thesis.md +1 -0
- package/commands/scenario-plan.md +2 -0
- package/commands/scheduled-tasks.md +1 -0
- package/commands/score-innovation.md +2 -0
- package/commands/scout.md +1 -0
- package/commands/setup.md +2 -0
- package/commands/snapshot.md +2 -0
- package/commands/speakers.md +1 -0
- package/commands/splash.md +5 -2
- package/commands/status.md +1 -0
- package/commands/structure-argument.md +2 -0
- package/commands/suggest-next.md +2 -0
- package/commands/systems-thinking.md +2 -0
- package/commands/think-hats.md +2 -0
- package/commands/update.md +2 -0
- package/commands/user-needs.md +2 -0
- package/commands/validate.md +2 -0
- package/commands/value-proposition.md +2 -0
- package/commands/vault.md +2 -0
- package/commands/visualize.md +24 -29
- package/commands/whitespace.md +2 -1
- package/commands/wiki.md +1 -0
- package/hooks/hooks.json +31 -88
- package/lib/agents/auto-explore-agent.cjs +82 -0
- package/lib/agents/mva/brain-classic-traps.cjs +77 -0
- package/lib/agents/mva/brain-cross-domain.cjs +79 -0
- package/lib/agents/mva/brain-similar-ventures.cjs +93 -0
- package/lib/agents/mva/dashboard-graph-neighborhood.cjs +72 -0
- package/lib/agents/mva/index.cjs +42 -0
- package/lib/agents/mva/six-hats-red-black.cjs +137 -0
- package/lib/agents/mva/tavily-funding-scan.cjs +147 -0
- package/lib/agents/mva/test-all-six-agents.cjs +467 -0
- package/lib/conversation/operator.cjs +64 -0
- package/lib/conversation/operator.test.cjs +160 -0
- package/lib/core/breakthrough/canary.cjs +134 -0
- package/lib/core/breakthrough/canary.test.cjs +136 -0
- package/lib/core/breakthrough/detectors.cjs +359 -0
- package/lib/core/breakthrough/detectors.test.cjs +333 -0
- package/lib/core/breakthrough/ethics-fence.cjs +127 -0
- package/lib/core/breakthrough/ethics-fence.test.cjs +178 -0
- package/lib/core/breakthrough/resurfacing.cjs +150 -0
- package/lib/core/breakthrough/resurfacing.test.cjs +233 -0
- package/lib/core/breakthrough/review-queue.cjs +154 -0
- package/lib/core/breakthrough/review-queue.test.cjs +160 -0
- package/lib/core/breakthrough/scanner-d17-d18.test.cjs +229 -0
- package/lib/core/breakthrough/scanner.cjs +426 -0
- package/lib/core/breakthrough/scanner.test.cjs +267 -0
- package/lib/core/breakthrough/schema.cjs +164 -0
- package/lib/core/breakthrough/schema.test.cjs +256 -0
- package/lib/core/breakthrough/scoring.cjs +293 -0
- package/lib/core/breakthrough/scoring.test.cjs +423 -0
- package/lib/core/breakthrough/verb-dispatch.cjs +221 -0
- package/lib/core/breakthrough/verb-dispatch.test.cjs +185 -0
- package/lib/core/breakthrough/voice-scaffold.cjs +247 -0
- package/lib/core/breakthrough/voice-scaffold.test.cjs +251 -0
- package/lib/core/first-touch-version-stamper.cjs +113 -0
- package/lib/core/larry-thinness-acknowledgment.cjs +64 -0
- package/lib/core/larry-thinness-acknowledgment.test.cjs +97 -0
- package/lib/core/llm-name-suggester.cjs +194 -0
- package/lib/core/llm-name-suggester.test.cjs +132 -0
- package/lib/core/mva-agent-contract.cjs +170 -0
- package/lib/core/mva-agent-contract.test.cjs +169 -0
- package/lib/core/mva-budget.cjs +75 -0
- package/lib/core/mva-budget.test.cjs +68 -0
- package/lib/core/mva-classifier.cjs +370 -0
- package/lib/core/mva-classifier.test.cjs +248 -0
- package/lib/core/mva-deck-builder.cjs +452 -0
- package/lib/core/mva-deck-builder.test.cjs +287 -0
- package/lib/core/mva-detect.smoke.test.cjs +197 -0
- package/lib/core/mva-dispatcher.cjs +110 -0
- package/lib/core/mva-dispatcher.test.cjs +216 -0
- package/lib/core/mva-option-router.cjs +292 -0
- package/lib/core/mva-option-router.test.cjs +483 -0
- package/lib/core/mva-orchestrator.cjs +365 -0
- package/lib/core/mva-orchestrator.test.cjs +908 -0
- package/lib/core/mva-progressive-renderer.cjs +194 -0
- package/lib/core/mva-progressive-renderer.test.cjs +157 -0
- package/lib/core/mva-rule-linter.cjs +213 -0
- package/lib/core/mva-rule-linter.test.cjs +336 -0
- package/lib/core/mva-state.cjs +159 -0
- package/lib/core/mva-telemetry.cjs +58 -0
- package/lib/core/mva-telemetry.test.cjs +196 -0
- package/lib/core/mva-vercel-deploy.cjs +168 -0
- package/lib/core/mva-vercel-deploy.test.cjs +239 -0
- package/lib/core/navigation/dashboard-helpers.cjs +145 -0
- package/lib/core/navigation/edges.cjs +35 -0
- package/lib/core/navigation/memory-events.cjs +126 -0
- package/lib/core/navigation.cjs +11 -0
- package/lib/core/resolve-vercel-key.cjs +107 -0
- package/lib/core/resolve-vercel-key.test.cjs +137 -0
- package/lib/core/room-auto-create.cjs +318 -0
- package/lib/core/room-auto-create.test.cjs +198 -0
- package/lib/core/room-discard-cascade.cjs +225 -0
- package/lib/core/room-discard-cascade.test.cjs +135 -0
- package/lib/core/room-name-validator.cjs +132 -0
- package/lib/core/room-name-validator.test.cjs +156 -0
- package/lib/core/room-naming-selector.cjs +357 -0
- package/lib/core/room-naming-selector.test.cjs +277 -0
- package/lib/core/room-receipt-emit.cjs +63 -0
- package/lib/core/room-skeleton-scaffold.cjs +315 -0
- package/lib/core/room-skeleton-scaffold.test.cjs +291 -0
- package/lib/core/stale-copy-scanner.cjs +190 -0
- package/lib/core/state-aware-router.cjs +78 -0
- package/lib/core/telemetry/schema.cjs +168 -0
- package/lib/core/telemetry/schema.test.cjs +124 -0
- package/lib/core/telemetry/validator.cjs +197 -0
- package/lib/core/telemetry/validator.test.cjs +188 -0
- package/lib/core/telemetry/writer.cjs +141 -0
- package/lib/core/telemetry/writer.test.cjs +331 -0
- package/lib/core/terminal-capability.cjs +88 -0
- package/lib/core/venture-shape-nudge.cjs +163 -0
- package/lib/core/venture-shape-nudge.test.cjs +161 -0
- package/lib/core/visual-ops.cjs +70 -2
- package/lib/hmi/selector-dispatcher.cjs +90 -1
- package/lib/hmi/shape-f7-breakthrough-renderer.cjs +222 -0
- package/lib/hmi/shape-f7-breakthrough-renderer.test.cjs +233 -0
- package/lib/memory/body-shape-coverage.test.cjs +268 -0
- package/lib/memory/doctor-deprecation-surface.test.cjs +185 -0
- package/lib/memory/first-touch-version.test.cjs +198 -0
- package/lib/memory/help-coverage.test.cjs +108 -0
- package/lib/memory/help-renderer.test.cjs +145 -0
- package/lib/memory/palette-consistency.test.cjs +127 -0
- package/lib/memory/pending-tension-store.cjs +80 -0
- package/lib/memory/render-v2-disposition.test.cjs +199 -0
- package/lib/memory/run-feynman-tests.cjs +240 -0
- package/lib/memory/sessionstart-coordinator.test.cjs +446 -0
- package/lib/memory/skill-vs-code-drift.test.cjs +257 -0
- package/lib/memory/soft-alias.test.cjs +144 -0
- package/lib/memory/stale-copy-scanner.test.cjs +291 -0
- package/lib/memory/state-aware-router.test.cjs +90 -0
- package/lib/memory/statusline-two-row.test.cjs +338 -0
- package/lib/memory/terminal-capability.test.cjs +155 -0
- package/lib/render/ROOM.md +74 -22
- package/lib/sessionstart/budget-compressor.cjs +130 -0
- package/lib/sessionstart/contributor-interface.cjs +134 -0
- package/lib/sessionstart/contributor-isolator.cjs +128 -0
- package/lib/sessionstart/precedence-ladder.cjs +47 -0
- package/lib/statusline/governing-thought-truncator.cjs +45 -0
- package/lib/statusline/two-row-renderer.cjs +186 -0
- package/lib/statusline/version-resolver.cjs +81 -0
- package/package.json +1 -1
- package/references/visual/ROOM.md +55 -0
- package/references/visual/palette.json +54 -0
- package/skills/larry-personality/SKILL.md +34 -0
- package/skills/mva-pipeline/SKILL.md +129 -0
- package/skills/ui-system/SKILL.md +109 -1
- package/skills/ui-system/rules/dual-palette.md +156 -0
- package/skills/ui-system/rules/glyph-disambiguation.md +171 -0
- package/skills/ui-system/rules/shape-f-zero-and-six.md +169 -0
package/commands/jtbd.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: jtbd
|
|
3
3
|
description: Show, set, list, or inspect the active JTBD (job-to-be-done) -- the per-room signal that tells Larry what kind of work the navigator is doing right now
|
|
4
|
+
help_jtbd: "Surface the job-to-be-done you are in right now."
|
|
4
5
|
argument-hint: "[set <jtbd> | clear | list | history] [--json]"
|
|
5
6
|
body_shape: E (Action Report)
|
|
6
7
|
body_shape_detail: current state + last 5 history (default), 13 entries (list), full history (history), Shape F.1 picker (set with no arg), Shape E confirmation (clear, set <jtbd>)
|
package/commands/leadership.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: leadership
|
|
3
3
|
description: Diagnose the leadership shape your team needs
|
|
4
|
+
help_jtbd: "Apply adaptive leadership (Heifetz) to your venture stage."
|
|
5
|
+
body_shape: "methodology"
|
|
4
6
|
serves_jtbd: ["explore"]
|
|
5
7
|
teaching: "When the team feels wrong-shaped for the stage, /mos:leadership diagnoses which leadership pattern you actually need. Different stages of a venture need different leadership shapes."
|
|
6
8
|
allowed-tools:
|
package/commands/lean-canvas.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: lean-canvas
|
|
3
3
|
description: Fill the Lean Canvas in one page (9 boxes)
|
|
4
|
+
help_jtbd: "Lay out the 9-block Lean Canvas for your room."
|
|
5
|
+
body_shape: "methodology"
|
|
4
6
|
serves_jtbd: ["prepare-pitch", "validate-idea"]
|
|
5
7
|
teaching: "When you need the whole business model on one page, /mos:lean-canvas fills the nine boxes from your room data. The fastest way to get a defensible canvas in front of someone."
|
|
6
8
|
# --- Phase 122 workflow-layer frontmatter ---
|
package/commands/macro-trends.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: macro-trends
|
|
3
3
|
description: Map macro changes with PEST across a domain
|
|
4
|
+
help_jtbd: "Identify the macro trends shaping your venture's window."
|
|
5
|
+
body_shape: "methodology"
|
|
4
6
|
serves_jtbd: ["understand-market"]
|
|
5
7
|
teaching: "When you need to map the forces shaping a domain, /mos:macro-trends runs PEST across Political, Economic, Social, and Technological dimensions. The wide-angle lens before you zoom in."
|
|
6
8
|
# --- Phase 122 workflow-layer frontmatter ---
|
package/commands/map-unknowns.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: map-unknowns
|
|
3
3
|
description: Map known, unknown, and unknowable (Rumsfeld)
|
|
4
|
+
help_jtbd: "Map the unknowns your venture has not yet addressed."
|
|
5
|
+
body_shape: "methodology"
|
|
4
6
|
serves_jtbd: ["validate-idea"]
|
|
5
7
|
teaching: "When you cannot tell what you do not know, /mos:map-unknowns plots known, unknown, and unknowable in a Rumsfeld matrix. The unknowable column is usually where the risk lives."
|
|
6
8
|
# --- Phase 122 workflow-layer frontmatter ---
|
package/commands/memory.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: memory
|
|
3
3
|
description: Inspect and operate on the three memory layers (within-session, across-session, cross-room).
|
|
4
|
+
help_jtbd: "Inspect what the Brain remembers about your sessions."
|
|
4
5
|
argument-hint: "[query <jtbd> | cross-room | resume | park <jtbd> | complete <jtbd> | --opt-out]"
|
|
5
6
|
body_shape: E (Action Report)
|
|
6
7
|
body_shape_detail: 4-zone Shape E for default + park + complete + opt-out; Shape G (Comparison Matrix) for query when Phase 101 ships (Shape E fallback otherwise); Shape G Mode A or Shape E Mode B for cross-room depending on Brain availability; Shape F.6 (or F.1 fallback) for resume picker.
|
package/commands/models.md
CHANGED
package/commands/mos-reason.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
name: mos-reason
|
|
3
3
|
command: mos:reason
|
|
4
4
|
description: Generate Feynman-MINTO reasoning for a section
|
|
5
|
+
help_jtbd: "Get Larry's reasoning trace on a specific question."
|
|
6
|
+
body_shape: C
|
|
5
7
|
usage: /mos:reason [--section <name>] [--regenerate-all]
|
|
6
8
|
serves_jtbd: ["explore"]
|
|
7
9
|
teaching: "When a section needs Feynman-MINTO reasoning generated against its artifacts, /mos:mos-reason produces the pyramid: governing thought down to grounded support. Larry's structured thinking surface."
|
package/commands/mos.md
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mos
|
|
3
|
+
description: State-aware router that picks the right next surface for the navigator
|
|
4
|
+
help_jtbd: "Meet the navigator where they are: onboard, status, or next move."
|
|
5
|
+
body_shape: E
|
|
6
|
+
body_shape_detail: Action Report rendering of the routing decision (zone 2 names the resolved target + reason; zone 4 routes to that target as primary)
|
|
7
|
+
serves_jtbd: ["explore"]
|
|
8
|
+
teaching: "When you do not know which /mos:* surface to invoke, /mos:mos picks the right one. No room: onboard. Mostly empty room: status with a next-move hint. Populated room: suggest-next."
|
|
9
|
+
canon_parts: [3, 7]
|
|
10
|
+
phase: 121.5-08
|
|
11
|
+
ui_reference: skills/ui-system/SKILL.md
|
|
12
|
+
allowed-tools:
|
|
13
|
+
- Bash
|
|
14
|
+
- Read
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# /mos:mos
|
|
18
|
+
|
|
19
|
+
You are Larry. /mos:mos is the state-aware router. It picks the right next surface for the navigator based on the current room state.
|
|
20
|
+
|
|
21
|
+
D-10 LOCKED: a single command that meets the navigator where they are. New navigator (no room) goes to onboard. Mostly-empty room goes to status with a next-move hint. Populated room goes to suggest-next.
|
|
22
|
+
|
|
23
|
+
## Why /mos:mos exists
|
|
24
|
+
|
|
25
|
+
Per Cluster 5 audit (2026-05-15): /mos:mos was declared in plugin discovery but the backing file was absent. Per D-10, /mos:mos is the canonical "I do not know which /mos:* to invoke -- pick the right one for me" entrypoint. It is the state-aware router that collapses the navigator's mental load.
|
|
26
|
+
|
|
27
|
+
Per Canon Part 7 (Reuse Before Build): /mos:mos does NOT add a new behavior. It dispatches to /mos:onboard, /mos:status, or /mos:suggest-next. The router replaces the mental cost; the underlying surfaces are unchanged.
|
|
28
|
+
|
|
29
|
+
## Algorithm (per D-10)
|
|
30
|
+
|
|
31
|
+
Step 1: resolve room state.
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# Read STATE.md if present, otherwise treat as no-room.
|
|
35
|
+
if [ -f STATE.md ]; then
|
|
36
|
+
ROOM_STATE_EXISTS=true
|
|
37
|
+
STAGE=$(grep -E '^stage:' STATE.md | head -1 | sed 's/^stage:\s*//')
|
|
38
|
+
SECTIONS_COUNT=$(ls -d */ 2>/dev/null | grep -v node_modules | wc -l)
|
|
39
|
+
else
|
|
40
|
+
ROOM_STATE_EXISTS=false
|
|
41
|
+
STAGE=""
|
|
42
|
+
SECTIONS_COUNT=0
|
|
43
|
+
fi
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Then call the pure-function router:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
node "${CLAUDE_PLUGIN_ROOT}/lib/core/state-aware-router.cjs" <<EOF
|
|
50
|
+
# Not invokable as a CLI; require the module from a Node script or:
|
|
51
|
+
node -e "
|
|
52
|
+
const r = require('${CLAUDE_PLUGIN_ROOT}/lib/core/state-aware-router.cjs');
|
|
53
|
+
const out = r.resolveNextSurface({
|
|
54
|
+
roomState: {
|
|
55
|
+
exists: ${ROOM_STATE_EXISTS},
|
|
56
|
+
sectionsCount: ${SECTIONS_COUNT},
|
|
57
|
+
stage: '${STAGE}',
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
console.log(JSON.stringify(out));
|
|
61
|
+
"
|
|
62
|
+
EOF
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
The router returns `{route, reason, addendum}`:
|
|
66
|
+
|
|
67
|
+
- `no_room` -> route is `/mos:onboard`. The navigator gets onboarded.
|
|
68
|
+
- `mostly_empty` -> route is `/mos:status`, addendum is `suggest next move`. Show the room state, then suggest the next move.
|
|
69
|
+
- `populated` -> route is `/mos:suggest-next`. Surface the next-move recommendation directly.
|
|
70
|
+
|
|
71
|
+
Step 2: emit a single Action Report envelope (Shape E per skills/ui-system/SKILL.md Section 1):
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
-- MindrianOS -- mos -- routing --
|
|
75
|
+
|
|
76
|
+
Routing to: <route> (<reason>)
|
|
77
|
+
<addendum line, if any>
|
|
78
|
+
|
|
79
|
+
-> <route> # the resolved next surface
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
The header names the room (or "MindrianOS / no room" when none exists). Zone 2 names the resolved route + the reason from the router. Zone 4 surfaces the route as the primary action.
|
|
83
|
+
|
|
84
|
+
Step 3: invoke the target command's behavior. Do NOT echo the routing decision and then ask the user to type the target command -- the routing IS the response. Larry continues with the target command's content directly in the same turn.
|
|
85
|
+
|
|
86
|
+
## Examples
|
|
87
|
+
|
|
88
|
+
### Case 1: navigator has no room
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
-- MindrianOS -- mos -- no-room --
|
|
92
|
+
|
|
93
|
+
Routing to: /mos:onboard (no_room)
|
|
94
|
+
|
|
95
|
+
-> /mos:onboard # walkthrough + first room
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Then Larry continues with /mos:onboard Step 1 in the same turn.
|
|
99
|
+
|
|
100
|
+
### Case 2: room exists but is mostly empty
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
-- acme-robotics -- mos -- mostly-empty --
|
|
104
|
+
|
|
105
|
+
Routing to: /mos:status (mostly_empty)
|
|
106
|
+
suggest next move
|
|
107
|
+
|
|
108
|
+
-> /mos:status # current room state
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Then Larry continues with /mos:status output + a Shape F.1 Next Move selector (per Canon Part 3) inviting the navigator's next verb.
|
|
112
|
+
|
|
113
|
+
### Case 3: room populated
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
-- acme-robotics -- mos -- populated --
|
|
117
|
+
|
|
118
|
+
Routing to: /mos:suggest-next (populated)
|
|
119
|
+
|
|
120
|
+
-> /mos:suggest-next # the next-move recommendation
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Then Larry continues with /mos:suggest-next output.
|
|
124
|
+
|
|
125
|
+
## Cross-references
|
|
126
|
+
|
|
127
|
+
- `lib/core/state-aware-router.cjs` -- the pure-function router (zero side-effects, unit-tested).
|
|
128
|
+
- `commands/onboard.md` -- the no-room branch destination.
|
|
129
|
+
- `commands/status.md` -- the mostly-empty branch destination.
|
|
130
|
+
- `commands/suggest-next.md` -- the populated branch destination.
|
|
131
|
+
- Canon Part 3 -- the Decision Gate that the target commands' F.1 selectors honor.
|
|
132
|
+
- Canon Part 7 -- reuse-before-build: /mos:mos delegates, does not duplicate.
|
|
133
|
+
|
|
134
|
+
## Voice rules
|
|
135
|
+
|
|
136
|
+
- Terse, structural, confident. No filler. No em-dashes.
|
|
137
|
+
- The routing decision IS the response. Never ask the user "shall I run X?" -- just run X.
|
|
138
|
+
- Symbol vocabulary: only the 12 approved glyphs from skills/ui-system/SKILL.md.
|
|
139
|
+
- Error pattern (only if the router throws or STATE.md is unreadable): 3 lines -- What / Why: reason / Fix: /mos:command.
|
package/commands/mullins.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: mullins
|
|
3
3
|
description: Run Mullins 7-Domains on a business opportunity
|
|
4
|
+
help_jtbd: "Run the Mullins 7-domains evaluation."
|
|
5
|
+
body_shape: "methodology"
|
|
4
6
|
serves_jtbd: ["understand-market"]
|
|
5
7
|
teaching: "When you need the most rigorous opportunity screen ever published, /mos:mullins runs the 7-Domains Model from Mullins' New Business Road Test. Best before you commit real resources."
|
|
6
8
|
# --- Phase 122 workflow-layer frontmatter ---
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mva-brief
|
|
3
|
+
description: Run the 30-second MVA pipeline for the user's current venture sentence
|
|
4
|
+
help_jtbd: "Build a Minimum Viable Argument brief from your room."
|
|
5
|
+
body_shape: E
|
|
6
|
+
argument-hint: (no args -- reads pending state from UserPromptSubmit detection)
|
|
7
|
+
serves_jtbd: ["explore"]
|
|
8
|
+
teaching: "When you have just typed a venture sentence and want a brief in under a minute, /mos:mva-brief runs the 6-agent fan-out and deploys a shareable deck. The reward-before-investment surface of Phase 118."
|
|
9
|
+
allowed-tools: Bash
|
|
10
|
+
interactive_first_reward: instant_brief
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# /mos:mva-brief
|
|
14
|
+
|
|
15
|
+
Run the 30-second MVA pipeline against the pending venture sentence detected by
|
|
16
|
+
the UserPromptSubmit hook (Plan 118-00).
|
|
17
|
+
|
|
18
|
+
## What this does
|
|
19
|
+
|
|
20
|
+
1. Reads pending state from `~/.mindrian/mva/<session-id>.json` (written by
|
|
21
|
+
Plan 118-00 detection hook).
|
|
22
|
+
2. Fires 6 parallel agents (Brain similar + Brain cross-domain + Brain classic
|
|
23
|
+
traps + Tavily funding + Six-hats red/black + Dashboard graph) under the
|
|
24
|
+
45-second hard budget.
|
|
25
|
+
3. Streams agent results as they return -- each one rendered in Larry's
|
|
26
|
+
GUIDED voice (per feedback_larry_pedagogical_guided_first.md).
|
|
27
|
+
4. Closes with the 3-option footer:
|
|
28
|
+
- [1] Just tell me what's new (stay in "tell me" mode)
|
|
29
|
+
- [2] Build a room around this (invest)
|
|
30
|
+
- [3] Challenge me -- Devil's Advocate (go deeper cognitively)
|
|
31
|
+
|
|
32
|
+
## Instructions for the model
|
|
33
|
+
|
|
34
|
+
Invoke `node scripts/mva-run.cjs` via Bash with no arguments. The script reads
|
|
35
|
+
the pending state file, runs the orchestrator, and writes the rendered output
|
|
36
|
+
to stdout.
|
|
37
|
+
|
|
38
|
+
Relay the stdout to the user VERBATIM. Do NOT:
|
|
39
|
+
|
|
40
|
+
- Add commentary or interpretation before the rendered output
|
|
41
|
+
- Re-summarize the agent findings ("So basically what this means is...")
|
|
42
|
+
- Skip the 3-option footer
|
|
43
|
+
- Autonomously pick option 1, 2, or 3 for the user
|
|
44
|
+
- Add Larry-voice framing ("Here's what I found for you...") -- the renderer
|
|
45
|
+
already speaks in Larry's voice; double-voicing breaks the GUIDED tone
|
|
46
|
+
|
|
47
|
+
The 3-option footer IS the user's decision point. Wait for the user to type
|
|
48
|
+
1, 2, or 3 (or their own free-text), then route per the option behavior:
|
|
49
|
+
|
|
50
|
+
- 1: stay in JUST_TALK mode; keep brief in scrollback; user can ask follow-ups
|
|
51
|
+
- 2: invoke /mos:new-project (stub for v1.13.0; Phase 119 wires fully)
|
|
52
|
+
- 3: invoke /mos:challenge-assumptions against the brief
|
|
53
|
+
|
|
54
|
+
## Canon parts implemented
|
|
55
|
+
|
|
56
|
+
- Part 2 (team around navigator -- 6 agents as a parallel team)
|
|
57
|
+
- Part 8 (boundary -- agents send only generic handles to Brain / Tavily)
|
|
58
|
+
- Part 10 sub-claim 3 (room as receipt -- the brief IS the reward)
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mva-option
|
|
3
|
+
description: Route the user's 3-option footer selection after a 30-second MVA brief
|
|
4
|
+
help_jtbd: "Compose option packages for your MVA."
|
|
5
|
+
body_shape: E
|
|
6
|
+
argument-hint: <1|2|3> [<sha8>]
|
|
7
|
+
serves_jtbd: ["explore"]
|
|
8
|
+
teaching: "When the 3-option footer shows after an MVA brief, /mos:mva-option routes your pick (refine / build a room / iterate) into the right next move. The hand-off after the first reward."
|
|
9
|
+
allowed-tools: Bash
|
|
10
|
+
interactive_first_reward: --none (scripting only)
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# /mos:mva-option <N> [<sha8>]
|
|
14
|
+
|
|
15
|
+
Route the user's selection from the 3-option footer that appears after a 30-second MVA brief.
|
|
16
|
+
|
|
17
|
+
## Why this exists
|
|
18
|
+
|
|
19
|
+
The 3-option footer renders after every MVA brief (per binding decision B4):
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
What now?
|
|
23
|
+
[1] Just tell me what's new (stay in "tell me" mode)
|
|
24
|
+
[2] Build a room around this (invest)
|
|
25
|
+
[3] Challenge me -- Devil's Advocate (go deeper cognitively)
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
The user types `1`, `2`, or `3` (or `/mos:mva-option N` directly). This command dispatches the routing.
|
|
29
|
+
|
|
30
|
+
## Arguments
|
|
31
|
+
|
|
32
|
+
- `<N>` (required): `1`, `2`, or `3` -- the user's selection
|
|
33
|
+
- `[<sha8>]` (optional): the 8-char prefix identifying the target brief. When OMITTED, the command auto-discovers the most recent brief by calling `resolveCurrentSha8()` which reads `~/.mindrian/mva/state.json` (the manifest atomically written by Plan 118-03's orchestrator after `mva_brief_rendered` fires).
|
|
34
|
+
|
|
35
|
+
## How to invoke
|
|
36
|
+
|
|
37
|
+
The model invokes this command via Bash + Node. Two patterns:
|
|
38
|
+
|
|
39
|
+
**With explicit sha8:**
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
node -e "const r=require('./lib/core/mva-option-router.cjs'); r.routeOption(N, '<sha8>').then(out => console.log(JSON.stringify(out, null, 2)))"
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**Without sha8 (auto-resolve via state.json):**
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
node -e "const r=require('./lib/core/mva-option-router.cjs'); const sha=r.resolveCurrentSha8(); if(!sha){console.log(JSON.stringify({ok:false,error:'no_current_brief',message:'No recent brief found. Type your venture sentence to fire the pipeline.'}));process.exit(0);} r.routeOption(N, sha).then(out => console.log(JSON.stringify(out, null, 2)))"
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
The auto-resolve form is what the `mva-pipeline` skill instructs the model to run when the user types `1`, `2`, or `3` as a plain message immediately after a brief renders. See the "## Routing the 3-option footer" section in `skills/mva-pipeline/SKILL.md` for the full recognition rule.
|
|
52
|
+
|
|
53
|
+
## What happens per option
|
|
54
|
+
|
|
55
|
+
- **Option 1** -- operator transitions to `JUST_TALK`; the brief stays in scrollback; the user can ask any follow-up about the 6 cells. The router returns `{ action: 'stay_in_just_talk', next_state: 'JUST_TALK', message: ... }`.
|
|
56
|
+
|
|
57
|
+
- **Option 2** -- operator unchanged; the router returns `{ action: 'phase_119_stub', next_state: null, message: STUB_MESSAGE_119 }`. The stub message reads:
|
|
58
|
+
|
|
59
|
+
> Building a room around this is the next layer; shipping in beta.18 (Phase 119). For now, press option 1 to keep this brief visible, or option 3 to go deeper.
|
|
60
|
+
|
|
61
|
+
Per binding decision B6 OPTION A, option 2 is deferred to Phase 119 / v1.13.0-beta.18. The router does NOT invoke `/mos:new-project` in v1.13.0.
|
|
62
|
+
|
|
63
|
+
- **Option 3** -- operator transitions to `METHODOLOGY`; the router returns `{ action: 'invoke_challenge_assumptions', next_state: 'METHODOLOGY', invoke_command: '/mos:challenge-assumptions --from-brief <sha8>' }`. The model then runs the named slash command against the brief.
|
|
64
|
+
|
|
65
|
+
## Edge cases
|
|
66
|
+
|
|
67
|
+
| Situation | Router return | Model surfaces |
|
|
68
|
+
| --------- | ------------- | -------------- |
|
|
69
|
+
| No `state.json` (fresh install / Hebrew refusal) | wrapper short-circuits | "No recent brief found. Type your venture sentence to fire the pipeline." |
|
|
70
|
+
| Side-file `<sha8>.json` missing (brief expired) | `{ ok:false, error:'brief_not_found' }` | "The brief data has expired or was not deployed. Type your sentence again to re-fire the pipeline." |
|
|
71
|
+
| `mva_brief_rendered` event not yet logged (pipeline still streaming) | `{ ok:false, error:'brief_still_rendering' }` | "Brief is still rendering -- options will activate when it completes." |
|
|
72
|
+
| Invalid `N` (0, 4, 99, "1", null) | `{ ok:false, error:'invalid_option' }` | Treat as free-text; route through normal Larry conversation. |
|
|
73
|
+
|
|
74
|
+
## Telemetry
|
|
75
|
+
|
|
76
|
+
Each successful invocation emits `mva_option_selected` to `~/.mindrian/telemetry/v1.13/mva.jsonl` with the frozen `ALLOWED_FIELDS` schema:
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
{ sentence_sha256, option_id, time_to_click_ms }
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
`time_to_click_ms` is computed from the most recent `mva_brief_rendered` event timestamp for the brief's `sentence_sha256`. Plan 118-06's Dror 2.0 harness reads these events to validate "subject types one sentence and clicks an option within 60 seconds of brief rendering."
|
|
83
|
+
|
|
84
|
+
Per Canon Part 8: the telemetry payload carries ONLY the sha256 hash + option_id + time delta. Zero user content. Zero URLs.
|
|
85
|
+
|
|
86
|
+
## Canon parts implemented
|
|
87
|
+
|
|
88
|
+
- Part 3 (Tri-Context Decision Gate) -- the 3-option footer IS a Decision Gate offering a closed-vocabulary choice (verbs 7 Synthesize / 8 Bank Opportunity / 5 Devil's Advocate)
|
|
89
|
+
- Part 4 (Every Choice Is Graph Data) -- `mva_option_selected` telemetry captures every click; operator transitions write `OPERATOR_TRANSITION` edges to the local room graph (Phase 99 substrate)
|
|
90
|
+
- Part 8 (Graph Boundary) -- zero user content in telemetry; zero raw_sentence reads from the side-file; the router source passes the forbidden-token sweep
|
|
91
|
+
- Part 10 sub-claim 3 (room as receipt) -- the 3-option footer is the user's self-selected commitment level immediately after the reward (the brief itself)
|
package/commands/new-project.md
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: new-project
|
|
3
3
|
description: Start a new venture project and create its room
|
|
4
|
+
help_jtbd: "Start a new room in ~/MindrianRooms/ from a conversation."
|
|
5
|
+
body_shape: E
|
|
4
6
|
argument-hint: [name]
|
|
5
7
|
serves_jtbd: ["explore"]
|
|
6
8
|
teaching: "When you are starting a new venture, /mos:new-project creates the room scaffolding and registers it in the room registry. The first move of every Mindrian journey."
|
|
9
|
+
# Per docs/reward-before-investment-rule.md line 56-58 remediation: first sentence -> Instant Brief pipeline (this phase's deliverable). Room creation is option 2 of the 3-option footer (Phase 119 wires fully in beta.18).
|
|
10
|
+
interactive_first_reward: instant_brief
|
|
7
11
|
allowed-tools:
|
|
8
12
|
- Read
|
|
9
13
|
- Write
|
package/commands/onboard.md
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: onboard
|
|
3
3
|
description: Walk through MindrianOS and build your first room
|
|
4
|
+
help_jtbd: "Walk through the first 15 minutes with Larry."
|
|
4
5
|
body_shape: B (Semantic Tree)
|
|
5
6
|
body_shape_detail: Steps as conversational flow, context building as nested nodes
|
|
6
7
|
serves_jtbd: ["explore"]
|
|
7
8
|
teaching: "When you just installed MindrianOS, /mos:onboard walks you through the system and builds your first room. Designed so a stranger can self-activate without Larry holding their hand."
|
|
9
|
+
# Per docs/reward-before-investment-rule.md line 68-70: first screen is a question, not a tutorial. Remediation tracked as follow-up phase.
|
|
10
|
+
interactive_first_reward: reframe_question
|
|
8
11
|
ui_reference: skills/ui-system/SKILL.md
|
|
9
12
|
allowed-tools:
|
|
10
13
|
- Read
|
|
@@ -65,6 +68,8 @@ If this command was triggered manually (not from session-start), show the banner
|
|
|
65
68
|
bash "${CLAUDE_PLUGIN_ROOT}/scripts/banner"
|
|
66
69
|
```
|
|
67
70
|
|
|
71
|
+
The banner output now leads with the explicit version stamp `MindrianOS v<version>` (Phase 121.5-05 Sub-plan F / SEED-007 absorption). If you echo a welcome line in the conversation prose, prefix it with the version stamp returned by `node ${CLAUDE_PLUGIN_ROOT}/lib/core/first-touch-version-stamper.cjs onboard` (long form: `Welcome to MindrianOS v<version>. Let me show you around.`). The user must be able to answer "what version am I running?" by reading the terminal -- no command-line introspection required.
|
|
72
|
+
|
|
68
73
|
Then proceed to Step 1.
|
|
69
74
|
|
|
70
75
|
## Step 1: The Three Ways to Work
|
|
@@ -340,16 +345,26 @@ After listing, offer:
|
|
|
340
345
|
|
|
341
346
|
If the user came from `/mos:onboard whats-new`: offer the full walkthrough or drop to prompt, then STOP.
|
|
342
347
|
|
|
343
|
-
## Step 6: Wrap + Suggested First Action
|
|
348
|
+
## Step 6: Wrap + Suggested First Action (Shape F.1 Next Move per Canon Part 3)
|
|
349
|
+
|
|
350
|
+
Based on everything gathered across Steps 1-5, surface the recommendation as a Shape F.1 Next Move selector per `skills/ui-system/SKILL.md` Section 2. Do NOT render the recommendation as bare prose -- the F.1 selector IS the Canon Part 3 Decision Gate. Rendering recommendations as prose is the canon violation Cluster 5 audit (2026-05-15) flagged.
|
|
344
351
|
|
|
345
|
-
|
|
352
|
+
Render the recommendation as an F.1 selector:
|
|
353
|
+
|
|
354
|
+
```
|
|
355
|
+
[CONTEXT] -- onboard -- NEXT MOVE
|
|
356
|
+
LOCAL / BRAIN / SIGNAL
|
|
357
|
+
|
|
358
|
+
Choose next move:
|
|
359
|
+
|
|
360
|
+
1. Run Methodology -- the specific recommendation (e.g. /mos:beautiful-question)
|
|
361
|
+
2. Defer -- look around first; come back when ready
|
|
362
|
+
3. Free-Text -- tell Larry what you want
|
|
363
|
+
```
|
|
346
364
|
|
|
347
|
-
|
|
365
|
+
Use AskUserQuestion to surface the selector. The selected verb writes to STATE.md Decisions section AND creates a typed edge in the local graph: `(navigator) -[CHOSE {verb, reason}]-> (current-artifact)`. The 3-verb F.1 vocabulary (Run Methodology / Defer / Free-Text) is the canonical minimum per Canon Part 3; if Brain is reachable and confidence >= 0.7 a "Run Methodology" option may be marked RECOMMENDED (Phase 88.2 invariant).
|
|
348
366
|
|
|
349
|
-
|
|
350
|
-
1. Start the suggested action (describe it in natural language)
|
|
351
|
-
2. Show the full command reference (`/mos:help`)
|
|
352
|
-
3. Drop to the prompt -- just start talking
|
|
367
|
+
Phase 121.5-08 Sub-plan J D-12 LOCKED: the recommendation surface on /mos:onboard Step 6 MUST render an F.1 selector, not bare prose. Closes the Canon Part 3 violation from the Cluster 5 audit.
|
|
353
368
|
|
|
354
369
|
Only in this final step, show a compact command reference card:
|
|
355
370
|
|
package/commands/operator.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: operator
|
|
3
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
|
+
help_jtbd: "See or change the conversation operator state."
|
|
4
5
|
argument-hint: "[history] [set <op>] [reset] [--json]"
|
|
5
6
|
body_shape: E (Action Report)
|
|
6
7
|
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)
|