@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.
Files changed (219) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/CHANGELOG.md +36 -0
  3. package/commands/act.md +1 -0
  4. package/commands/admin.md +1 -0
  5. package/commands/analyze-needs.md +2 -0
  6. package/commands/analyze-systems.md +2 -0
  7. package/commands/analyze-timing.md +2 -0
  8. package/commands/auto-explore.md +2 -0
  9. package/commands/beautiful-question.md +2 -0
  10. package/commands/brain-derive.md +2 -0
  11. package/commands/build-knowledge.md +2 -0
  12. package/commands/build-thesis.md +2 -0
  13. package/commands/causal.md +2 -0
  14. package/commands/challenge-assumptions.md +2 -0
  15. package/commands/compare-ventures.md +2 -0
  16. package/commands/dashboard.md +2 -1
  17. package/commands/deep-grade.md +2 -0
  18. package/commands/diagnose.md +21 -1
  19. package/commands/diagnostics.md +14 -3
  20. package/commands/doctor.md +4 -1
  21. package/commands/dogfood-flush.md +92 -0
  22. package/commands/dominant-designs.md +2 -0
  23. package/commands/explain-decision.md +2 -0
  24. package/commands/explore-domains.md +2 -0
  25. package/commands/explore-futures.md +2 -0
  26. package/commands/explore-trends.md +2 -0
  27. package/commands/export.md +1 -0
  28. package/commands/feynman-timeline-refresh.md +2 -0
  29. package/commands/file-meeting.md +4 -0
  30. package/commands/find-analogies.md +1 -0
  31. package/commands/find-bottlenecks.md +2 -0
  32. package/commands/find-connections.md +2 -0
  33. package/commands/funding.md +1 -0
  34. package/commands/grade.md +4 -0
  35. package/commands/graph.md +1 -0
  36. package/commands/hat-briefing.md +1 -0
  37. package/commands/heal.md +22 -170
  38. package/commands/help.md +54 -334
  39. package/commands/hmi-status.md +23 -144
  40. package/commands/jtbd.md +1 -0
  41. package/commands/leadership.md +2 -0
  42. package/commands/lean-canvas.md +2 -0
  43. package/commands/macro-trends.md +2 -0
  44. package/commands/map-unknowns.md +2 -0
  45. package/commands/memory.md +1 -0
  46. package/commands/models.md +1 -0
  47. package/commands/mos-reason.md +2 -0
  48. package/commands/mos.md +139 -0
  49. package/commands/mullins.md +2 -0
  50. package/commands/mva-brief.md +58 -0
  51. package/commands/mva-option.md +91 -0
  52. package/commands/new-project.md +4 -0
  53. package/commands/onboard.md +22 -7
  54. package/commands/operator.md +1 -0
  55. package/commands/opportunities.md +1 -0
  56. package/commands/organize.md +22 -469
  57. package/commands/persona.md +1 -0
  58. package/commands/pipeline.md +2 -0
  59. package/commands/present.md +1 -0
  60. package/commands/publish.md +2 -0
  61. package/commands/query.md +24 -102
  62. package/commands/radar.md +2 -0
  63. package/commands/reanalyze.md +1 -0
  64. package/commands/research.md +2 -0
  65. package/commands/room.md +2 -0
  66. package/commands/rooms.md +1 -0
  67. package/commands/root-cause.md +2 -0
  68. package/commands/rs-experts.md +1 -0
  69. package/commands/rs-explain.md +1 -0
  70. package/commands/rs-fetch.md +1 -0
  71. package/commands/rs-thesis.md +1 -0
  72. package/commands/scenario-plan.md +2 -0
  73. package/commands/scheduled-tasks.md +1 -0
  74. package/commands/score-innovation.md +2 -0
  75. package/commands/scout.md +1 -0
  76. package/commands/setup.md +2 -0
  77. package/commands/snapshot.md +2 -0
  78. package/commands/speakers.md +1 -0
  79. package/commands/splash.md +5 -2
  80. package/commands/status.md +1 -0
  81. package/commands/structure-argument.md +2 -0
  82. package/commands/suggest-next.md +2 -0
  83. package/commands/systems-thinking.md +2 -0
  84. package/commands/think-hats.md +2 -0
  85. package/commands/update.md +2 -0
  86. package/commands/user-needs.md +2 -0
  87. package/commands/validate.md +2 -0
  88. package/commands/value-proposition.md +2 -0
  89. package/commands/vault.md +2 -0
  90. package/commands/visualize.md +24 -29
  91. package/commands/whitespace.md +2 -1
  92. package/commands/wiki.md +1 -0
  93. package/hooks/hooks.json +31 -88
  94. package/lib/agents/auto-explore-agent.cjs +82 -0
  95. package/lib/agents/mva/brain-classic-traps.cjs +77 -0
  96. package/lib/agents/mva/brain-cross-domain.cjs +79 -0
  97. package/lib/agents/mva/brain-similar-ventures.cjs +93 -0
  98. package/lib/agents/mva/dashboard-graph-neighborhood.cjs +72 -0
  99. package/lib/agents/mva/index.cjs +42 -0
  100. package/lib/agents/mva/six-hats-red-black.cjs +137 -0
  101. package/lib/agents/mva/tavily-funding-scan.cjs +147 -0
  102. package/lib/agents/mva/test-all-six-agents.cjs +467 -0
  103. package/lib/conversation/operator.cjs +64 -0
  104. package/lib/conversation/operator.test.cjs +160 -0
  105. package/lib/core/breakthrough/canary.cjs +134 -0
  106. package/lib/core/breakthrough/canary.test.cjs +136 -0
  107. package/lib/core/breakthrough/detectors.cjs +359 -0
  108. package/lib/core/breakthrough/detectors.test.cjs +333 -0
  109. package/lib/core/breakthrough/ethics-fence.cjs +127 -0
  110. package/lib/core/breakthrough/ethics-fence.test.cjs +178 -0
  111. package/lib/core/breakthrough/resurfacing.cjs +150 -0
  112. package/lib/core/breakthrough/resurfacing.test.cjs +233 -0
  113. package/lib/core/breakthrough/review-queue.cjs +154 -0
  114. package/lib/core/breakthrough/review-queue.test.cjs +160 -0
  115. package/lib/core/breakthrough/scanner-d17-d18.test.cjs +229 -0
  116. package/lib/core/breakthrough/scanner.cjs +426 -0
  117. package/lib/core/breakthrough/scanner.test.cjs +267 -0
  118. package/lib/core/breakthrough/schema.cjs +164 -0
  119. package/lib/core/breakthrough/schema.test.cjs +256 -0
  120. package/lib/core/breakthrough/scoring.cjs +293 -0
  121. package/lib/core/breakthrough/scoring.test.cjs +423 -0
  122. package/lib/core/breakthrough/verb-dispatch.cjs +221 -0
  123. package/lib/core/breakthrough/verb-dispatch.test.cjs +185 -0
  124. package/lib/core/breakthrough/voice-scaffold.cjs +247 -0
  125. package/lib/core/breakthrough/voice-scaffold.test.cjs +251 -0
  126. package/lib/core/first-touch-version-stamper.cjs +113 -0
  127. package/lib/core/larry-thinness-acknowledgment.cjs +64 -0
  128. package/lib/core/larry-thinness-acknowledgment.test.cjs +97 -0
  129. package/lib/core/llm-name-suggester.cjs +194 -0
  130. package/lib/core/llm-name-suggester.test.cjs +132 -0
  131. package/lib/core/mva-agent-contract.cjs +170 -0
  132. package/lib/core/mva-agent-contract.test.cjs +169 -0
  133. package/lib/core/mva-budget.cjs +75 -0
  134. package/lib/core/mva-budget.test.cjs +68 -0
  135. package/lib/core/mva-classifier.cjs +370 -0
  136. package/lib/core/mva-classifier.test.cjs +248 -0
  137. package/lib/core/mva-deck-builder.cjs +452 -0
  138. package/lib/core/mva-deck-builder.test.cjs +287 -0
  139. package/lib/core/mva-detect.smoke.test.cjs +197 -0
  140. package/lib/core/mva-dispatcher.cjs +110 -0
  141. package/lib/core/mva-dispatcher.test.cjs +216 -0
  142. package/lib/core/mva-option-router.cjs +292 -0
  143. package/lib/core/mva-option-router.test.cjs +483 -0
  144. package/lib/core/mva-orchestrator.cjs +365 -0
  145. package/lib/core/mva-orchestrator.test.cjs +908 -0
  146. package/lib/core/mva-progressive-renderer.cjs +194 -0
  147. package/lib/core/mva-progressive-renderer.test.cjs +157 -0
  148. package/lib/core/mva-rule-linter.cjs +213 -0
  149. package/lib/core/mva-rule-linter.test.cjs +336 -0
  150. package/lib/core/mva-state.cjs +159 -0
  151. package/lib/core/mva-telemetry.cjs +58 -0
  152. package/lib/core/mva-telemetry.test.cjs +196 -0
  153. package/lib/core/mva-vercel-deploy.cjs +168 -0
  154. package/lib/core/mva-vercel-deploy.test.cjs +239 -0
  155. package/lib/core/navigation/dashboard-helpers.cjs +145 -0
  156. package/lib/core/navigation/edges.cjs +35 -0
  157. package/lib/core/navigation/memory-events.cjs +126 -0
  158. package/lib/core/navigation.cjs +11 -0
  159. package/lib/core/resolve-vercel-key.cjs +107 -0
  160. package/lib/core/resolve-vercel-key.test.cjs +137 -0
  161. package/lib/core/room-auto-create.cjs +318 -0
  162. package/lib/core/room-auto-create.test.cjs +198 -0
  163. package/lib/core/room-discard-cascade.cjs +225 -0
  164. package/lib/core/room-discard-cascade.test.cjs +135 -0
  165. package/lib/core/room-name-validator.cjs +132 -0
  166. package/lib/core/room-name-validator.test.cjs +156 -0
  167. package/lib/core/room-naming-selector.cjs +357 -0
  168. package/lib/core/room-naming-selector.test.cjs +277 -0
  169. package/lib/core/room-receipt-emit.cjs +63 -0
  170. package/lib/core/room-skeleton-scaffold.cjs +315 -0
  171. package/lib/core/room-skeleton-scaffold.test.cjs +291 -0
  172. package/lib/core/stale-copy-scanner.cjs +190 -0
  173. package/lib/core/state-aware-router.cjs +78 -0
  174. package/lib/core/telemetry/schema.cjs +168 -0
  175. package/lib/core/telemetry/schema.test.cjs +124 -0
  176. package/lib/core/telemetry/validator.cjs +197 -0
  177. package/lib/core/telemetry/validator.test.cjs +188 -0
  178. package/lib/core/telemetry/writer.cjs +141 -0
  179. package/lib/core/telemetry/writer.test.cjs +331 -0
  180. package/lib/core/terminal-capability.cjs +88 -0
  181. package/lib/core/venture-shape-nudge.cjs +163 -0
  182. package/lib/core/venture-shape-nudge.test.cjs +161 -0
  183. package/lib/core/visual-ops.cjs +70 -2
  184. package/lib/hmi/selector-dispatcher.cjs +90 -1
  185. package/lib/hmi/shape-f7-breakthrough-renderer.cjs +222 -0
  186. package/lib/hmi/shape-f7-breakthrough-renderer.test.cjs +233 -0
  187. package/lib/memory/body-shape-coverage.test.cjs +268 -0
  188. package/lib/memory/doctor-deprecation-surface.test.cjs +185 -0
  189. package/lib/memory/first-touch-version.test.cjs +198 -0
  190. package/lib/memory/help-coverage.test.cjs +108 -0
  191. package/lib/memory/help-renderer.test.cjs +145 -0
  192. package/lib/memory/palette-consistency.test.cjs +127 -0
  193. package/lib/memory/pending-tension-store.cjs +80 -0
  194. package/lib/memory/render-v2-disposition.test.cjs +199 -0
  195. package/lib/memory/run-feynman-tests.cjs +240 -0
  196. package/lib/memory/sessionstart-coordinator.test.cjs +446 -0
  197. package/lib/memory/skill-vs-code-drift.test.cjs +257 -0
  198. package/lib/memory/soft-alias.test.cjs +144 -0
  199. package/lib/memory/stale-copy-scanner.test.cjs +291 -0
  200. package/lib/memory/state-aware-router.test.cjs +90 -0
  201. package/lib/memory/statusline-two-row.test.cjs +338 -0
  202. package/lib/memory/terminal-capability.test.cjs +155 -0
  203. package/lib/render/ROOM.md +74 -22
  204. package/lib/sessionstart/budget-compressor.cjs +130 -0
  205. package/lib/sessionstart/contributor-interface.cjs +134 -0
  206. package/lib/sessionstart/contributor-isolator.cjs +128 -0
  207. package/lib/sessionstart/precedence-ladder.cjs +47 -0
  208. package/lib/statusline/governing-thought-truncator.cjs +45 -0
  209. package/lib/statusline/two-row-renderer.cjs +186 -0
  210. package/lib/statusline/version-resolver.cjs +81 -0
  211. package/package.json +1 -1
  212. package/references/visual/ROOM.md +55 -0
  213. package/references/visual/palette.json +54 -0
  214. package/skills/larry-personality/SKILL.md +34 -0
  215. package/skills/mva-pipeline/SKILL.md +129 -0
  216. package/skills/ui-system/SKILL.md +109 -1
  217. package/skills/ui-system/rules/dual-palette.md +156 -0
  218. package/skills/ui-system/rules/glyph-disambiguation.md +171 -0
  219. 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>)
@@ -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:
@@ -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 ---
@@ -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 ---
@@ -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 ---
@@ -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.
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: models
3
3
  description: View or switch model-routing profiles
4
+ help_jtbd: "Browse and apply 25 methodology models."
4
5
  argument-hint: [list|set|show]
5
6
  body_shape: C (Information Card)
6
7
  serves_jtbd: ["compare-options"]
@@ -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."
@@ -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.
@@ -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)
@@ -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
@@ -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
- Based on everything gathered across Steps 1-5, suggest a specific first action:
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
- > That is the foundation. Based on what you need, the best starting point is [specific natural language action]. Want to launch that now?
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
- Present three options:
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
 
@@ -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)
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: opportunities
3
3
  description: Discover and manage grants in the Opportunity Bank
4
+ help_jtbd: "Browse banked opportunities by HSI score."
4
5
  argument-hint: [list|add|scan]
5
6
  body_shape: E (Action Report)
6
7
  serves_jtbd: ["explore"]