@mindrian_os/install 1.13.0-beta.17 → 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 (182) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/CHANGELOG.md +26 -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 +2 -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 +2 -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 +2 -0
  51. package/commands/mva-option.md +2 -0
  52. package/commands/new-project.md +2 -0
  53. package/commands/onboard.md +20 -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 +22 -88
  94. package/lib/agents/auto-explore-agent.cjs +82 -0
  95. package/lib/core/breakthrough/canary.cjs +134 -0
  96. package/lib/core/breakthrough/canary.test.cjs +136 -0
  97. package/lib/core/breakthrough/detectors.cjs +359 -0
  98. package/lib/core/breakthrough/detectors.test.cjs +333 -0
  99. package/lib/core/breakthrough/ethics-fence.cjs +127 -0
  100. package/lib/core/breakthrough/ethics-fence.test.cjs +178 -0
  101. package/lib/core/breakthrough/resurfacing.cjs +150 -0
  102. package/lib/core/breakthrough/resurfacing.test.cjs +233 -0
  103. package/lib/core/breakthrough/review-queue.cjs +154 -0
  104. package/lib/core/breakthrough/review-queue.test.cjs +160 -0
  105. package/lib/core/breakthrough/scanner-d17-d18.test.cjs +229 -0
  106. package/lib/core/breakthrough/scanner.cjs +426 -0
  107. package/lib/core/breakthrough/scanner.test.cjs +267 -0
  108. package/lib/core/breakthrough/schema.cjs +164 -0
  109. package/lib/core/breakthrough/schema.test.cjs +256 -0
  110. package/lib/core/breakthrough/scoring.cjs +293 -0
  111. package/lib/core/breakthrough/scoring.test.cjs +423 -0
  112. package/lib/core/breakthrough/verb-dispatch.cjs +221 -0
  113. package/lib/core/breakthrough/verb-dispatch.test.cjs +185 -0
  114. package/lib/core/breakthrough/voice-scaffold.cjs +247 -0
  115. package/lib/core/breakthrough/voice-scaffold.test.cjs +251 -0
  116. package/lib/core/first-touch-version-stamper.cjs +113 -0
  117. package/lib/core/larry-thinness-acknowledgment.cjs +64 -0
  118. package/lib/core/larry-thinness-acknowledgment.test.cjs +97 -0
  119. package/lib/core/llm-name-suggester.cjs +194 -0
  120. package/lib/core/llm-name-suggester.test.cjs +132 -0
  121. package/lib/core/mva-orchestrator.cjs +41 -0
  122. package/lib/core/mva-telemetry.cjs +31 -143
  123. package/lib/core/navigation/edges.cjs +35 -0
  124. package/lib/core/navigation/memory-events.cjs +126 -0
  125. package/lib/core/room-auto-create.cjs +318 -0
  126. package/lib/core/room-auto-create.test.cjs +198 -0
  127. package/lib/core/room-discard-cascade.cjs +225 -0
  128. package/lib/core/room-discard-cascade.test.cjs +135 -0
  129. package/lib/core/room-name-validator.cjs +132 -0
  130. package/lib/core/room-name-validator.test.cjs +156 -0
  131. package/lib/core/room-naming-selector.cjs +357 -0
  132. package/lib/core/room-naming-selector.test.cjs +277 -0
  133. package/lib/core/room-receipt-emit.cjs +63 -0
  134. package/lib/core/room-skeleton-scaffold.cjs +315 -0
  135. package/lib/core/room-skeleton-scaffold.test.cjs +291 -0
  136. package/lib/core/stale-copy-scanner.cjs +190 -0
  137. package/lib/core/state-aware-router.cjs +78 -0
  138. package/lib/core/telemetry/schema.cjs +168 -0
  139. package/lib/core/telemetry/schema.test.cjs +124 -0
  140. package/lib/core/telemetry/validator.cjs +197 -0
  141. package/lib/core/telemetry/validator.test.cjs +188 -0
  142. package/lib/core/telemetry/writer.cjs +141 -0
  143. package/lib/core/telemetry/writer.test.cjs +331 -0
  144. package/lib/core/terminal-capability.cjs +88 -0
  145. package/lib/core/venture-shape-nudge.cjs +163 -0
  146. package/lib/core/venture-shape-nudge.test.cjs +161 -0
  147. package/lib/core/visual-ops.cjs +70 -2
  148. package/lib/hmi/selector-dispatcher.cjs +90 -1
  149. package/lib/hmi/shape-f7-breakthrough-renderer.cjs +222 -0
  150. package/lib/hmi/shape-f7-breakthrough-renderer.test.cjs +233 -0
  151. package/lib/memory/body-shape-coverage.test.cjs +268 -0
  152. package/lib/memory/doctor-deprecation-surface.test.cjs +185 -0
  153. package/lib/memory/first-touch-version.test.cjs +198 -0
  154. package/lib/memory/help-coverage.test.cjs +108 -0
  155. package/lib/memory/help-renderer.test.cjs +145 -0
  156. package/lib/memory/palette-consistency.test.cjs +127 -0
  157. package/lib/memory/pending-tension-store.cjs +80 -0
  158. package/lib/memory/render-v2-disposition.test.cjs +199 -0
  159. package/lib/memory/run-feynman-tests.cjs +213 -0
  160. package/lib/memory/sessionstart-coordinator.test.cjs +446 -0
  161. package/lib/memory/skill-vs-code-drift.test.cjs +257 -0
  162. package/lib/memory/soft-alias.test.cjs +144 -0
  163. package/lib/memory/stale-copy-scanner.test.cjs +291 -0
  164. package/lib/memory/state-aware-router.test.cjs +90 -0
  165. package/lib/memory/statusline-two-row.test.cjs +338 -0
  166. package/lib/memory/terminal-capability.test.cjs +155 -0
  167. package/lib/render/ROOM.md +74 -22
  168. package/lib/sessionstart/budget-compressor.cjs +130 -0
  169. package/lib/sessionstart/contributor-interface.cjs +134 -0
  170. package/lib/sessionstart/contributor-isolator.cjs +128 -0
  171. package/lib/sessionstart/precedence-ladder.cjs +47 -0
  172. package/lib/statusline/governing-thought-truncator.cjs +45 -0
  173. package/lib/statusline/two-row-renderer.cjs +186 -0
  174. package/lib/statusline/version-resolver.cjs +81 -0
  175. package/package.json +1 -1
  176. package/references/visual/ROOM.md +55 -0
  177. package/references/visual/palette.json +54 -0
  178. package/skills/larry-personality/SKILL.md +34 -0
  179. package/skills/ui-system/SKILL.md +109 -1
  180. package/skills/ui-system/rules/dual-palette.md +156 -0
  181. package/skills/ui-system/rules/glyph-disambiguation.md +171 -0
  182. package/skills/ui-system/rules/shape-f-zero-and-six.md +169 -0
package/commands/help.md CHANGED
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: help
3
3
  description: List commands grouped by flow (tldr-style)
4
+ help_jtbd: "List commands grouped by flow, with one-line outcomes."
4
5
  argument-hint: [command-name]
5
6
  body_shape: B (Semantic Tree)
6
7
  body_shape_detail: -- (inline, no zones)
@@ -15,316 +16,46 @@ allowed-tools:
15
16
 
16
17
  # /mos:help
17
18
 
18
- You are Larry. This command helps users discover what they can do. Uses **Body Shape B (Semantic Tree)** with **De Stijl color-coded job categories** and **JTBD outcome descriptions**.
19
+ You are Larry. List commands grouped by job category, with one-line outcome descriptions ("what's in it for me").
19
20
 
20
- ## Design Rules
21
+ ## How to render the default `/mos:help`
21
22
 
22
- 1. **Every description is a JTBD outcome.** Not what the tool does -- what the user GETS. "Build reasoning that survives a boardroom challenge" not "Minto Pyramid".
23
- 2. **Every command gets a colored block.** The color tells you what KIND of thinking before you read the description.
24
- 3. **Groups are by job category, not alphabetical.** Users scan for what they need to DO.
23
+ Invoke `scripts/help-renderer.cjs` and emit its output verbatim. The script handles all terminal-capability dispatch (truecolor / 256color / ASCII) via `lib/core/terminal-capability.cjs`. The 4-zone format is preserved by the renderer's design (body_shape: B Semantic Tree).
25
24
 
26
- ## De Stijl Color System
27
-
28
- Six Mondrian accent colors, each mapped to a thinking job:
29
-
30
- | ANSI Code | Color | Job Category | What It Means |
31
- |-----------|-------|-------------|---------------|
32
- | `\033[38;2;166;61;47m` | RED | Problem Discovery | Find what's worth solving |
33
- | `\033[38;2;30;58;110m` | BLUE | Structured Thinking | Build reasoning that holds |
34
- | `\033[38;2;107;78;139m` | AMETHYST | Perspectives + Creativity | See through lenses you'd never pick |
35
- | `\033[38;2;200;164;60m` | YELLOW | Intelligence + Brain | Answers from 23K nodes of teaching data |
36
- | `\033[38;2;45;107;74m` | GREEN | Output + Export | Ship investor-ready work |
37
- | `\033[38;2;42;107;94m` | TEAL | Infrastructure | Setup, manage, maintain |
38
-
39
- Supporting ANSI codes:
40
- - Cream (headers): `\033[38;2;245;240;232m`
41
- - Muted (descriptions): `\033[38;2;160;154;144m`
42
- - Reset: `\033[0m`
43
-
44
- Use these EXACT hex-mapped ANSI codes. They match the website and dashboard palette.
45
-
46
- ## UI Format
47
-
48
- - **Default (`/mos:help`):** 4-zone anatomy with color-coded Semantic Tree
49
- - **Per-command (`/mos:help [command]`):** tldr-style inline -- 1 description line + 3 examples max, no zones
50
- - **`--all` flag:** Full command list, no truncation, same color system
51
-
52
- ## Brain Enhancement (Optional)
53
-
54
- Try calling Brain: first `mcp__mindrian-brain__brain_schema`, then `mcp__mindrian-brain__get_neo4j_schema` as fallback. If it succeeds, Brain mode is active. If it fails or errors, skip this section entirely and proceed to Step 1 below.
55
-
56
- **If Brain connected:**
57
-
58
- 1. Read `references/brain/query-patterns.md` for `brain_framework_chain` and `brain_gap_assess` patterns
59
- 2. Read `room/STATE.md` for current frameworks used and venture stage
60
- 3. Run `brain_framework_chain` with the user's current frameworks and inferred problem type to get graph-informed personalized recommendations
61
- 4. Run `brain_gap_assess` with `$room_frameworks` to identify specific missing prerequisites and natural next-step frameworks
62
- 5. Use these Brain results to personalize the command recommendations beyond stage-based defaults. Brain data shows what actually works for this user's specific situation.
63
-
64
- Proceed to Step 1 below with this additional context.
65
-
66
- ## Step 1: Determine Venture Stage
67
-
68
- Read `room/STATE.md` to find the current venture stage. If `room/` does not exist or STATE.md is missing, the stage is **Pre-Opportunity**.
69
-
70
- Extract `venture_stage` from the YAML frontmatter of STATE.md.
71
-
72
- ## Step 1.5: Check Admin Visibility
73
-
74
- Check if the current user is an admin. This determines whether admin-only commands are visible.
75
-
76
- **Check in order:**
77
-
78
- 1. Environment variable `MOS_ADMIN=true` is set
79
- 2. Username contains "jsagi" or "jonathan" (check `$USER`, `$USERNAME`, or `whoami`)
80
- 3. Home directory matches `/home/jsagi` (check `$HOME`)
81
-
82
- Set an internal flag `is_admin` to true if ANY condition is met, false otherwise.
83
-
84
- **Generic visibility filtering rule:** When listing commands, check each command file's YAML frontmatter for a `visibility` field. If `visibility: admin` is set and `is_admin` is false, skip that command entirely. This makes filtering generic -- any future hidden command just needs `visibility: admin` in its frontmatter.
85
-
86
- ## Step 2: Load References
87
-
88
- Read `references/methodology/index.md` for the full command routing table.
89
- Read `references/methodology/problem-types.md` for problem type classification and methodology routing by definition level and complexity.
90
-
91
- These are your source of truth for all commands, descriptions, stage mappings, and framework recommendations.
92
-
93
- ## Step 3: Default Behavior (No Flags)
94
-
95
- If the user ran `/mos:help` with no flags, render the 4-zone output using ANSI colors.
96
-
97
- Define these variables at the top of your output generation:
98
-
99
- ```
100
- R = \033[38;2;166;61;47m (red)
101
- B = \033[38;2;30;58;110m (blue)
102
- A = \033[38;2;107;78;139m (amethyst)
103
- Y = \033[38;2;200;164;60m (yellow)
104
- G = \033[38;2;45;107;74m (green)
105
- T = \033[38;2;42;107;94m (teal)
106
- C = \033[38;2;245;240;232m (cream -- for headers)
107
- M = \033[38;2;160;154;144m (muted -- for descriptions)
108
- X = \033[0m (reset)
109
- ```
110
-
111
- ### Zone 1 -- Header Panel
112
-
113
- ```
114
- {M}╭─ MindrianOS ── Help ─────────────────────────────────────╮{X}
115
- {M}│ │{X}
116
- {M}│{X} {R}■{X} Problem {B}■{X} Reasoning {Y}■{X} Intelligence {M}│{X}
117
- {M}│{X} {A}■{X} Perspective {G}■{X} Output {T}■{X} Infrastructure {M}│{X}
118
- {M}│ │{X}
119
- ```
120
-
121
- If room exists, use room name instead of "MindrianOS".
122
-
123
- ### Zone 2 -- Content Body (Color-Coded JTBD Semantic Tree)
124
-
125
- Each command gets a colored ■ block matching its job category. Descriptions are JTBD outcomes -- what the user GETS, never what the tool DOES.
126
-
127
- **MANDATORY: Every description must pass the "so what?" test.** If a user reads it and thinks "so what?", rewrite it. The description should make them think "I need that."
25
+ Specifically:
128
26
 
129
- ```
130
- {M}▼ Getting Started{X}
131
- ├─ {T}■{X} /mos:new-project {M}Build your Data Room from a conversation about your idea{X}
132
- ├─ {T}■{X} /mos:onboard {M}Learn what matters for YOUR stage in 5 minutes{X}
133
- ├─ {T}■{X} /mos:setup {M}Connect Brain, transcription, or graph integrations{X}
134
- ├─ {R}■{X} /mos:diagnose {M}Know which methodology fits before you waste time guessing{X}
135
- └─ {T}■{X} /mos:help [command] {M}See exactly how any command works with examples{X}
136
-
137
- {M}▼ Problem Discovery{X}
138
- ├─ {R}■{X} /mos:beautiful-question {M}Turn a vague idea into a question investors want answered{X}
139
- ├─ {R}■{X} /mos:explore-domains {M}Find the 2-3 domains where your innovation actually lives{X}
140
- ├─ {R}■{X} /mos:explore-trends {M}See where your market is heading before competitors do{X}
141
- ├─ {R}■{X} /mos:map-unknowns {M}Know what you don't know -- before it kills your venture{X}
142
- ├─ {R}■{X} /mos:analyze-needs {M}Discover what job your customer is actually hiring for{X}
143
- ├─ {R}■{X} /mos:user-needs {M}Watch how people actually behave, not what they say they want{X}
144
- ├─ {R}■{X} /mos:root-cause {M}Trace a problem to its source instead of treating symptoms{X}
145
- ├─ {R}■{X} /mos:macro-trends {M}Map the large-scale shifts reshaping your domain right now{X}
146
- └─ {R}■{X} /mos:analyze-timing {M}Know if you're too early, too late, or right on time{X}
147
-
148
- {M}▼ Structured Thinking{X}
149
- ├─ {B}■{X} /mos:structure-argument {M}Build reasoning that survives a boardroom challenge{X}
150
- ├─ {B}■{X} /mos:lean-canvas {M}Get your business model on one page that makes sense{X}
151
- ├─ {B}■{X} /mos:analyze-systems {M}Find where leverage actually lives in a complex system{X}
152
- ├─ {B}■{X} /mos:systems-thinking {M}See the feedback loops driving your market's behavior{X}
153
- ├─ {B}■{X} /mos:find-bottlenecks {M}Identify the one lagging component holding everything back{X}
154
- ├─ {B}■{X} /mos:validate {M}Check if your evidence actually supports your claims{X}
155
- ├─ {B}■{X} /mos:build-knowledge {M}Separate your data from your opinions from your wisdom{X}
156
- ├─ {B}■{X} /mos:build-thesis {M}Have the investment narrative that makes VCs lean in{X}
157
- └─ {B}■{X} /mos:grade {M}Get an honest score calibrated against 100+ real ventures{X}
158
-
159
- {M}▼ Perspectives + Creativity{X}
160
- ├─ {A}■{X} /mos:think-hats {M}See your problem through 6 lenses you'd never pick yourself{X}
161
- ├─ {A}■{X} /mos:challenge-assumptions {M}Find the assumption that will break you -- before it does{X}
162
- ├─ {A}■{X} /mos:scenario-plan {M}Prepare for 4 plausible futures instead of betting on one{X}
163
- ├─ {A}■{X} /mos:explore-futures {M}See 10-year signals that change what you build today{X}
164
- ├─ {A}■{X} /mos:dominant-designs {M}Know if the market standard is locked in or cracking open{X}
165
- ├─ {A}■{X} /mos:find-analogies {M}Discover your problem was solved in another field years ago{X}
166
- ├─ {A}■{X} /mos:score-innovation {M}Score how promising a cross-domain opportunity really is{X}
167
- ├─ {A}■{X} /mos:persona {M}Get 6 persistent perspectives that challenge your blind spots{X}
168
- └─ {A}■{X} /mos:leadership {M}Know what kind of leader your team actually needs right now{X}
169
-
170
- {M}▼ Intelligence + Brain{X}
171
- ├─ {Y}■{X} /mos:query {M}Ask a question and get answers from your knowledge graph{X}
172
- ├─ {Y}■{X} /mos:graph {M}Explore connections and patterns across your entire room{X}
173
- ├─ {Y}■{X} /mos:research {M}Get web evidence cross-referenced against Brain intelligence{X}
174
- ├─ {Y}■{X} /mos:find-connections {M}Discover links between your work and fields you never checked{X}
175
- ├─ {Y}■{X} /mos:compare-ventures {M}Learn what happened when others tried something similar{X}
176
- ├─ {Y}■{X} /mos:scout {M}Run overnight scans for competitors, grants, and domain news{X}
177
- ├─ {Y}■{X} /mos:opportunities {M}Discover grants matched to your room context automatically{X}
178
- ├─ {Y}■{X} /mos:funding {M}Track non-dilutive funding from discovery to submission{X}
179
- ├─ {Y}■{X} /mos:suggest-next {M}Get a graph-informed recommendation on what to do next{X}
180
- ├─ {Y}■{X} /mos:deep-grade {M}Get percentile-ranked scoring against real student ventures{X}
181
- ├─ {Y}■{X} /mos:diagnostics {M}Wave-1 algorithmic fingerprint -- disruption, coverage, novelty, surprise{X}
182
- └─ {Y}■{X} /mos:brain-derive {M}Force-refresh BRAIN.md for section(s) now -- single, --all, or --cross-room{X}
183
-
184
- {M}▼ Working Sessions{X}
185
- ├─ {R}■{X} /mos:act {M}Larry picks the right framework -- you just describe the problem{X}
186
- ├─ {B}■{X} /mos:pipeline {M}Chain 3-5 frameworks where each output feeds the next{X}
187
- ├─ {Y}■{X} /mos:file-meeting {M}Turn a messy transcript into structured intelligence in 60s{X}
188
- ├─ {Y}■{X} /mos:reanalyze {M}Find patterns in old meetings you missed the first time{X}
189
- └─ {Y}■{X} /mos:speakers {M}See who attended your meetings and what expertise they brought{X}
190
-
191
- {M}▼ Parallel Power{X}
192
- ├─ {A}■{X} /mos:act --swarm {M}Get answers from 3 frameworks at once -- minutes, not hours{X}
193
- ├─ {A}■{X} /mos:persona --parallel {M}Hear from all 6 perspectives simultaneously on one question{X}
194
- ├─ {B}■{X} /mos:grade --full {M}Grade every room section at once -- full venture health check{X}
195
- ├─ {Y}■{X} /mos:research --broad {M}Research from 3 angles at once and get a merged synthesis{X}
196
- └─ {T}■{X} /mos:models {M}Control which AI model handles which type of work{X}
197
-
198
- {M}▼ Output + Export{X}
199
- ├─ {G}■{X} /mos:export {M}Generate investor-ready PDFs from your room in seconds{X}
200
- ├─ {G}■{X} /mos:present {M}Open a 6-view visual presentation of your entire venture{X}
201
- ├─ {G}■{X} /mos:dashboard {M}See your knowledge graph with chat in the browser{X}
202
- ├─ {G}■{X} /mos:wiki {M}Browse your Data Room like Wikipedia -- linked, searchable{X}
203
- ├─ {G}■{X} /mos:visualize {M}See your venture as a knowledge graph, timeline, or diagram{X}
204
- ├─ {G}■{X} /mos:publish {M}Deploy your presentation to a live URL for stakeholders{X}
205
- └─ {G}■{X} /mos:reason {M}Structure any room section into airtight MECE logic{X}
206
-
207
- {M}▼ Infrastructure{X}
208
- ├─ {T}■{X} /mos:status {M}See exactly where your project stands and what's missing{X}
209
- ├─ {T}■{X} /mos:room {M}Browse your Data Room sections and launch the dashboard{X}
210
- ├─ {T}■{X} /mos:rooms {M}Manage multiple ventures -- switch, park, archive{X}
211
- ├─ {T}■{X} /mos:organize {M}Restructure your room hierarchy with graph-informed proposals{X}
212
- ├─ {T}■{X} /mos:explain-decision {M}Show why Larry made the calls he made on the last turn{X}
213
- ├─ {T}■{X} /mos:update {M}Check if a newer version of MindrianOS is available{X}
214
- └─ {T}■{X} /mos:splash {M}Show the Mondrian banner{X}
27
+ ```bash
28
+ node "${CLAUDE_PLUGIN_ROOT}/scripts/help-renderer.cjs"
215
29
  ```
216
30
 
217
- **If `is_admin` is true**, append:
31
+ If `CLAUDE_PLUGIN_ROOT` is not set, fall back to the repo-relative path: `node ./scripts/help-renderer.cjs`.
218
32
 
219
- ```
220
- {M}▼ Admin (owner only){X}
221
- └─ {T}■{X} /mos:admin {M}Manage Brain API keys and access tiers{X}
222
- ```
33
+ DO NOT compose the help text inline. DO NOT hardcode color escapes in the LLM response. The renderer is the single source of truth (per Phase 121.5-07 D-05 / D-06 LOCKED).
223
34
 
224
- **If `is_admin` is false**, do NOT render the Admin group. No trace of `/mos:admin` should appear anywhere in the output.
35
+ ## How the renderer composes output
225
36
 
226
- ### Color Legend (ALWAYS render after the tree)
37
+ - `data/help-groups.json` declares the 11 canonical groups (10 user-facing + Infrastructure) and which commands belong to each (D-07 LOCKED: Export / Publish / Hub trio replaces legacy "Output + Export").
38
+ - Each `commands/<name>.md` frontmatter declares `help_jtbd:` -- a one-line "what's in it for me" outcome description.
39
+ - The renderer joins them: groups on the outside, per-command JTBD lines on the inside.
227
40
 
228
- ```
229
- ┌──────────────────────────────────────────────────────────┐
230
- │ │
231
- │ {R}■{X} {C}RED{X} {M}Problem Discovery{X} │
232
- │ {M}Find what's worth solving{X} │
233
- │ │
234
- │ {B}■{X} {C}BLUE{X} {M}Structured Thinking{X} │
235
- │ {M}Build reasoning that holds{X} │
236
- │ │
237
- │ {A}■{X} {C}AMETHYST{X} {M}Perspectives + Creativity{X} │
238
- │ {M}See through lenses you'd never pick{X} │
239
- │ │
240
- │ {Y}■{X} {C}YELLOW{X} {M}Intelligence + Brain{X} │
241
- │ {M}Answers from 23K nodes of teaching data{X} │
242
- │ │
243
- │ {G}■{X} {C}GREEN{X} {M}Output + Export{X} │
244
- │ {M}Ship investor-ready work{X} │
245
- │ │
246
- │ {T}■{X} {C}TEAL{X} {M}Infrastructure{X} │
247
- │ {M}Setup, manage, maintain{X} │
248
- │ │
249
- └──────────────────────────────────────────────────────────┘
250
- ```
251
-
252
- ### Count Line
41
+ ## Bulletproof contract
253
42
 
254
- After the legend:
255
- ```
256
- {M}67 commands -- the color tells you what kind of thinking{X}
257
- {M}you're about to do before you read a single word.{X}
258
- ```
43
+ The renderer is bulletproof across CLI / Desktop / Cowork:
259
44
 
260
- ### Contextual Recommendations
45
+ - CLI with truecolor (`COLORTERM=truecolor` AND TTY): full 6-color De Stijl rendering.
46
+ - CLI with 256color (`COLORTERM=256color` OR `TERM` contains `256color`): truecolor escapes (modern 256-color terminals accept them).
47
+ - CLI without TTY (piped, redirected): ASCII rendering with 12-glyph vocabulary.
48
+ - Desktop (`CLAUDE_DESKTOP=1`): ASCII rendering -- hard-override regardless of TTY.
49
+ - Cowork: same as CLI; renderer probes the live capability per invocation.
261
50
 
262
- Below the count, add 2-3 lines of Larry-voice recommendations based on the current venture stage.
263
-
264
- **No room exists:**
265
- ```
266
- {M}No project yet. Start with /mos:new-project or just describe your venture.{X}
267
- ```
268
-
269
- **Room exists but mostly empty (Pre-Opportunity):**
270
- ```
271
- {M}Room is mostly empty. /mos:beautiful-question or /mos:explore-domains to start filling it.{X}
272
- ```
273
-
274
- **Problem defined (Discovery):**
275
- ```
276
- {M}Problem defined. /mos:analyze-needs maps your customer's real jobs.{X}
277
- ```
278
-
279
- **Market explored (Validation):**
280
- ```
281
- {M}Market is clear. /mos:challenge-assumptions before the market does it for you.{X}
282
- ```
283
-
284
- **Solution designed (Design):**
285
- ```
286
- {M}Strong foundation. /mos:structure-argument builds your reasoning pyramid.{X}
287
- ```
288
-
289
- **Full coverage (Investment):**
290
- ```
291
- {M}Comprehensive room. /mos:grade for honest feedback, /mos:build-thesis for the narrative.{X}
292
- ```
293
-
294
- ### Meeting-Aware Addition
295
-
296
- If `room/meetings/` exists or user mentions meetings:
297
- ```
298
- {M}[N] meetings filed. /mos:file-meeting to add another.{X}
299
- ```
300
-
301
- ### Zone 3 -- Intelligence Strip (conditional)
302
-
303
- If room-proactive signals exist, show max 2:
304
- ```
305
- ⬜ competitive-analysis has no entries
306
- ⚡ "infrastructure" converges across 3 sections
307
- ```
308
-
309
- If no signals, omit Zone 3.
310
-
311
- ### Zone 4 -- Action Footer (NEVER omit)
312
-
313
- ```
314
- {G}▶{X} /mos:new-project {M}Start your first Data Room{X}
315
- {M}▷{X} /mos:diagnose {M}Not sure? Classify your problem first{X}
316
- ```
317
-
318
- Actions grounded in what the user likely needs based on their stage.
319
-
320
- ## Step 4: Per-Command Help (`/mos:help [command]`)
51
+ ## Per-command help (`/mos:help [command]`)
321
52
 
322
53
  If the user ran `/mos:help [command]` (e.g., `/mos:help explore-domains`):
323
54
 
324
- Render tldr-style. NO zones. NO header panel. Just the command help:
55
+ Render tldr-style. NO zones. NO header panel. Just the command help card:
325
56
 
326
57
  ```
327
- /mos:explore-domains -- Find the 2-3 domains where your innovation actually lives
58
+ /mos:explore-domains -- Get the 5-lens decomposition of your problem domain.
328
59
 
329
60
  /mos:explore-domains Interactive session
330
61
  /mos:explore-domains --deep Deep exploration (longer)
@@ -332,69 +63,58 @@ Render tldr-style. NO zones. NO header panel. Just the command help:
332
63
  ```
333
64
 
334
65
  Rules:
335
- - First line: command name + ` -- ` + JTBD outcome description (not tool name)
336
- - Examples indented 2 spaces, command left-aligned + brief annotation
337
- - Max 3 examples
338
- - No flags documentation, no option tables, no verbose descriptions
339
- - No zones, no header, no footer -- just the help card
66
+
67
+ - First line: command name + ` -- ` + the command's `help_jtbd:` value (preferred) or `description:` fallback.
68
+ - Examples indented 2 spaces, command left-aligned + brief annotation.
69
+ - Max 3 examples.
70
+ - No flags documentation, no option tables, no verbose descriptions.
71
+ - No zones, no header, no footer -- just the help card.
340
72
 
341
73
  Load the command's `.md` file from `commands/` to get accurate description and usage patterns.
342
74
 
343
- **Admin visibility guard:** Before loading a command file, check its YAML frontmatter for `visibility: admin`. If the command has `visibility: admin` and `is_admin` is false, treat the command as nonexistent -- render the unknown command error below. This ensures `/mos:help admin` reveals nothing to non-admin users.
75
+ **Admin visibility guard:** Before loading a command file, check its YAML frontmatter for `visibility: admin`. If the command has `visibility: admin` and the current user is not an admin (see admin detection below), treat the command as nonexistent -- render the unknown command error below.
344
76
 
345
77
  If the command doesn't exist (or is hidden by the visibility guard):
78
+
346
79
  ```
347
80
  x Unknown command: [command]
348
81
  Why: No matching /mos: command found
349
- Fix: /mos:help --all
82
+ Fix: /mos:help
350
83
  ```
351
84
 
352
- ## Step 5: With `--all` Flag
353
-
354
- If the user included `--all` (e.g., `/mos:help --all`):
355
-
356
- Show the **full command list** in the same color-coded tree format as Step 3 but with ALL commands listed (no truncation). Include all methodology commands explicitly.
357
-
358
- Keep the same job-category groupings and color assignments. Apply the same visibility filtering as Step 3.
359
-
360
- End with the color legend, count line, and Zone 4 footer.
85
+ ## Admin detection
361
86
 
362
- ## Command-to-Color Mapping Reference
87
+ Set an internal flag `is_admin` to true if ANY of these is met:
363
88
 
364
- Use this table to assign the correct ■ color to each command:
89
+ 1. Environment variable `MOS_ADMIN=true` is set.
90
+ 2. Username contains "jsagi" or "jonathan" (check `$USER`, `$USERNAME`, or `whoami`).
91
+ 3. Home directory matches `/home/jsagi` (check `$HOME`).
365
92
 
366
- ### RED (Problem Discovery)
367
- beautiful-question, explore-domains, explore-trends, map-unknowns, analyze-needs, user-needs, root-cause, macro-trends, analyze-timing, diagnose, act
93
+ The renderer reads visibility from each command's frontmatter; admin-gated commands are excluded by default and surface only when `is_admin` is true.
368
94
 
369
- ### BLUE (Structured Thinking)
370
- structure-argument, lean-canvas, analyze-systems, systems-thinking, find-bottlenecks, validate, build-knowledge, build-thesis, grade, pipeline, grade --full
95
+ ## `--all` flag
371
96
 
372
- ### AMETHYST (Perspectives + Creativity)
373
- think-hats, challenge-assumptions, scenario-plan, explore-futures, dominant-designs, find-analogies, score-innovation, persona, leadership, act --swarm, persona --parallel
374
-
375
- ### YELLOW (Intelligence + Brain)
376
- query, graph, research, find-connections, compare-ventures, scout, opportunities, funding, suggest-next, deep-grade, diagnostics, brain-derive, file-meeting, reanalyze, speakers, research --broad
377
-
378
- ### GREEN (Output + Export)
379
- export, present, dashboard, wiki, visualize, publish, reason
380
-
381
- ### TEAL (Infrastructure)
382
- new-project, onboard, setup, help, status, room, rooms, organize, update, splash, admin, models
97
+ If the user included `--all`, render the same output as the default (the renderer already includes all groups including Infrastructure; there is no truncation in the canonical layout).
383
98
 
384
99
  ## Troubleshooting
385
100
 
386
101
  If the user mentions any error, Brain issue, Pinecone quota, Neo4j connection problem, or plugin issue:
387
102
 
388
- 1. Read `docs/TROUBLESHOOTING.md`
389
- 2. Present the relevant fix using the 3-line error format
390
- 3. The #1 fix for Brain issues: `rm -f .mcp.json` and restart Claude Code
103
+ 1. Read `docs/TROUBLESHOOTING.md`.
104
+ 2. Present the relevant fix using the 3-line error format.
105
+ 3. The #1 fix for Brain issues: `rm -f .mcp.json` and restart Claude Code.
391
106
 
392
107
  ## Voice Rules
393
108
 
394
109
  - Terse, structural, confident. Commands are the content.
395
- - **Banned phrases (per D-23):** "Great question!", "I'd be happy to help", "It's important to note", "Let me explain", sentences starting with "I", "Here's what I found"
396
- - Lead with structure, not commentary. The tree IS the help.
397
- - End with agency -- give the user a choice of what to do next via Zone 4.
398
- - NO EMOJI. Use only the 12 glyphs from the symbol vocabulary: ▶ ▷ ├─ └─ ✓ • ⚠ ⚡ ⬜ →
399
- - ALL descriptions must be JTBD outcomes. Never name the framework -- describe what the user walks away with.
400
- - ALL commands must have a colored ■ block. Never render a command without its color.
110
+ - Banned phrases (per D-23): "Great question!", "I'd be happy to help", "It's important to note", "Let me explain", sentences starting with "I", "Here's what I found".
111
+ - Lead with structure, not commentary. The renderer IS the help.
112
+ - NO EMOJI. The renderer uses only the 12-glyph vocabulary from SKILL.md Section 3.
113
+ - ALL descriptions are JTBD outcomes (each command's `help_jtbd:` frontmatter), never names of the framework.
114
+
115
+ ## See also
116
+
117
+ - `data/help-groups.json` -- the canonical groups + commands declaration.
118
+ - `scripts/help-renderer.cjs` -- the bulletproof renderer.
119
+ - `scripts/check-help-coverage.cjs` -- the CI tripwire that enforces 100% `help_jtbd` coverage + 100% group membership.
120
+ - `lib/core/terminal-capability.cjs` -- the truecolor/ASCII probe (D-05 LOCKED; reusable across /mos:status, /mos:doctor, /mos:splash).
@@ -1,18 +1,16 @@
1
1
  ---
2
2
  name: hmi-status
3
- description: Show the latest HMI compliance poll - operator-aware UI Ruling System drift summary, JTBD-priority-weighted violation list, read-only inspection (recovery via /mos:doctor --ui-compliance --fix)
3
+ description: "[Deprecated] Show the latest HMI compliance poll (use /mos:doctor --ui-compliance --json)"
4
+ help_jtbd: "Audit UI Ruling System compliance (deprecated: use /mos:doctor --ui-compliance --json)."
4
5
  argument-hint: "[--json]"
5
6
  body_shape: E (Action Report)
6
- body_shape_detail: 4-zone Shape E rendering of the side-channel at <roomDir>/.mindrian/last-hmi-poll.json (status + counts + top-5 priorities + operator-shape mismatches); --json emits raw envelope; graceful Shape E when poll absent or tier 0
7
7
  serves_jtbd: ["audit-room"]
8
- teaching: "When you need to know how well the UI is honoring the ruling system, /mos:hmi-status shows the latest compliance poll with operator-aware drift summaries. Read-only; fix via /mos:doctor."
9
- locks_operator: null
10
- min_tier: 0
11
- concurrency: sequential
12
- streams_events: false
13
- disable-model-invocation: false
8
+ deprecated: true
9
+ deprecated_redirect: "doctor --ui-compliance --json"
10
+ deprecated_removal: "v1.14.0"
11
+ teaching: "Deprecated alias. Use /mos:doctor --ui-compliance --json to audit UI Ruling System compliance; the standalone hmi-status command folds into doctor class F. Scheduled removal: v1.14.0."
14
12
  canon_parts: [3, 7, 8]
15
- phase: 105
13
+ phase: 121.5-08
16
14
  ui_reference: skills/ui-system/SKILL.md
17
15
  allowed-tools:
18
16
  - Bash
@@ -21,153 +19,34 @@ allowed-tools:
21
19
 
22
20
  # /mos:hmi-status
23
21
 
24
- Read-only inspection surface for the Phase 105 HMI compliance poll. Renders the side-channel at `<roomDir>/.mindrian/last-hmi-poll.json` as a 4-zone Shape E (Action Report) per `skills/ui-system/SKILL.md`. The command NEVER auto-fixes - recovery is surfaced via Zone 4 action footer pointing at `/mos:doctor --ui-compliance --fix`, which the user invokes deliberately (Canon Part 3 - every choice is graph data).
22
+ > Deprecated. /mos:hmi-status now redirects to /mos:doctor --ui-compliance --json. Scheduled removal: v1.14.0. Use /mos:doctor --ui-compliance --json going forward.
25
23
 
26
- The polling primitive at `scripts/hmi-compliance-poll.cjs` (Phase 105-01) is what writes the side-channel; the Stop hook at `scripts/hmi-compliance-update.cjs` (Phase 105-03) is what fires the poll on every user turn. This command only READS what those write. Per Canon Part 8 the read is purely LOCAL - no Brain queries, no network.
24
+ You are Larry. The user invoked /mos:hmi-status. Per D-11 (LOCKED 2026-05-16, Phase 121.5-08 Sub-plan J) /mos:hmi-status is a soft-alias stub for the v1.13.x window. The canonical surface is /mos:doctor --ui-compliance --json. Doctor's class F (UI Ruling System scan, shipped Phase 106) handles all HMI-compliance logic.
27
25
 
28
- ## What it shows
26
+ ## Steps
29
27
 
30
- - **Doctor status + violation counts** - aggregated from the latest `node scripts/doctor.cjs --ui-compliance --json` run, broken down per kind (missing-body-shape, unauthorized-box-char, unauthorized-glyph, renderer-missing-zone1, renderer-missing-zone4).
31
- - **Top 5 JTBD-weighted priorities** - violations on commands matched against the active JTBD's `methodology_hooks` are weighted 1.0; non-matches keep base weight 0.3; null JTBD uses uniform 0.5. Shape E rows show the file, weight, and matched JTBD when applicable.
32
- - **Operator-shape mismatches** - commands whose declared `body_shape` does not fall within the family the active operator expects (Phase 99 substrate). Informational only - never auto-rewrites a command file.
33
- - **Provenance footer** - timestamp + elapsed_ms + Mode A/B/0 marker so the navigator knows how fresh the poll is and which operating mode produced it.
34
- - **Zone 4 action footer** - 2-3 grounded /mos: commands. Primary uses `▶`, alternatives use `▷`. The canonical recovery action is `▶ /mos:doctor --ui-compliance --fix`.
28
+ 1. Emit the deprecation note above as a single cyan line (Larry voice; no em-dash; one sentence per skills/ui-system/SKILL.md Section 6).
35
29
 
36
- ## How it works
37
-
38
- The command is a pure side-channel reader. It does NOT run the doctor. It does NOT mutate state. It does NOT call the Brain. The execution path is:
39
-
40
- 1. Resolve the active room from `~/MindrianRooms/.rooms/registry.json` (Phase 83 substrate). If none: graceful Shape E pointing at `/mos:setup`.
41
- 2. Read `<roomDir>/.mindrian/last-hmi-poll.json`. If missing: graceful Shape E with `▶ /mos:doctor --ui-compliance` + `▷ node scripts/hmi-compliance-poll.cjs --once` to force a fresh poll.
42
- 3. Branch on `envelope.status`:
43
- - `ok` -> full Shape E with Zone 2 status + priorities + mismatches + Zone 4 recovery action.
44
- - `tier-0-skip` -> minimal Shape E pointing at `/mos:setup graph` (Brain unreachable AND local graph unusable).
45
- - `doctor-error` -> Shape E acknowledging the doctor failure + manual retry footer.
46
- - `no-active-room` -> defensive Shape E (same render as missing side-channel).
47
- 4. `--json` short-circuits to `JSON.stringify(envelope, null, 2)` for hooks and regression tests.
48
-
49
- The script always exits 0. Read-only commands never block the user turn.
50
-
51
- To force a fresh poll (the Stop hook runs once per turn, but you can re-poll on demand):
52
-
53
- ```bash
54
- node scripts/hmi-compliance-poll.cjs --once
55
- ```
56
-
57
- To recover from drift after inspecting:
58
-
59
- ```bash
60
- /mos:doctor --ui-compliance --fix
61
- ```
62
-
63
- ## Step 1: Execute
64
-
65
- Run via Bash:
66
-
67
- ```bash
68
- node "${CLAUDE_PLUGIN_ROOT}/scripts/hmi-status-command.cjs" $ARGUMENTS
69
- ```
70
-
71
- If `CLAUDE_PLUGIN_ROOT` is unset (older Claude Code versions), fall back to:
30
+ 2. Invoke /mos:doctor --ui-compliance --json with the user's original arguments. Run:
72
31
 
73
32
  ```bash
74
- node ~/.claude/plugins/mindrian-os/scripts/hmi-status-command.cjs $ARGUMENTS
75
- ```
76
-
77
- ## Step 2: Render the output
78
-
79
- The script outputs a 4-zone Shape E. Display the script's stdout directly. Do not re-format. Do not strip ANSI color codes.
80
-
81
- ## Examples
82
-
83
- ### Default show (status: ok with 47 violations)
84
-
85
- ```
86
- -- mindrianos -- hmi-status -- BUILD_ROOM/find-bottleneck --
87
-
88
- ■ Doctor status: warn (47 violations)
89
- ■ Counts: 47 missing-body-shape, 0 unauthorized-box-char, 0 unauthorized-glyph
90
-
91
- ■ Top 5 priorities (JTBD-weighted)
92
- ✓ commands/find-bottlenecks.md weight 1.0 matched: find-bottleneck via methodology_hooks
93
- • commands/whitespace.md weight 0.3
94
- • commands/explore-domains.md weight 0.3
95
- • commands/diagnostics.md weight 0.3
96
- • commands/find-analogies.md weight 0.3
97
-
98
- ■ Operator shape mismatches
99
- ⚠ commands/foo.md declared: B operator BUILD_ROOM expects: E
100
-
101
- (polled 2026-05-01T15:50:47Z, elapsed 187ms, mode B)
102
-
103
- ▶ /mos:doctor --ui-compliance --fix
104
- ▷ /mos:doctor --ui-compliance --json
105
- ▷ /mos:hmi-status --json
106
- ```
107
-
108
- ### Default show (status: ok, zero violations)
109
-
110
- ```
111
- -- mindrianos -- hmi-status -- JUST_TALK/no-jtbd --
112
-
113
- ■ Doctor status: ok (0 violations)
114
-
115
- (polled 2026-05-01T15:50:47Z, elapsed 92ms, mode B)
116
-
117
- ▷ /mos:hmi-status --json
118
- ▷ /mos:doctor --all
119
- ```
120
-
121
- ### No poll yet
122
-
33
+ node "${CLAUDE_PLUGIN_ROOT}/scripts/soft-alias-runner.cjs" --from hmi-status --to "doctor --ui-compliance --json" --remaining-args $ARGUMENTS
123
34
  ```
124
- -- test-room -- hmi-status -- no-poll-yet --
125
35
 
126
- No poll has fired yet for this room
36
+ The runner emits `{redirect, deprecation_note, args, ok}`. Use the redirect to confirm the target, then proceed with /mos:doctor --ui-compliance behavior. The user sees ONE deprecation note + the doctor compliance scan output.
127
37
 
128
- /mos:doctor --ui-compliance
129
- ▷ node scripts/hmi-compliance-poll.cjs --once
130
- ```
131
-
132
- ### --json passthrough
133
-
134
- ```bash
135
- $ /mos:hmi-status --json
136
- {
137
- "schema_version": 1,
138
- "status": "ok",
139
- "polled_at": "2026-05-01T15:50:47.000Z",
140
- "operator": "BUILD_ROOM",
141
- "jtbd": "find-bottleneck",
142
- "tier": 1,
143
- "mode": "B",
144
- "doctor": { "status": "warn", "totalViolations": 47, "counts": { ... } },
145
- "operator_shape_mismatches": [ ... ],
146
- "priorities": [ ... ],
147
- "elapsed_ms": 187,
148
- "_provenance": { "phase": "105-01", "doctor_version": "1.12.3", "skill_ref": "skills/ui-system/SKILL.md" }
149
- }
150
- ```
38
+ 3. Pass through doctor's --ui-compliance output verbatim. Read-only by design (per the original hmi-status contract); recovery is surfaced via /mos:doctor --ui-compliance --fix.
151
39
 
152
- ## Voice rules
40
+ ## Why this is a soft-alias
153
41
 
154
- When Larry surfaces the output conversationally:
42
+ Cluster 5 audit (2026-05-15) flagged that /mos:hmi-status was a thin read-only wrapper over doctor's class F. Two commands, one substrate. Folding hmi-status into /mos:doctor --ui-compliance --json gives one canonical compliance surface.
155
43
 
156
- - "47 commands missing body_shape. The top one matches your active JTBD - want to fix?"
157
- - "Run /mos:doctor --ui-compliance --fix to auto-recover."
158
- - "The poll is read-only - I never auto-fix without you saying so."
44
+ Per D-11 the standalone command goes away (soft-alias for one release; removal v1.14.0). Scripts and hooks calling the old form keep working through v1.13.x.
159
45
 
160
- NEVER:
161
- - Run /mos:doctor --ui-compliance --fix without the user asking.
162
- - Re-poll silently when a fresh poll is < 5 minutes old.
163
- - Re-show the example blocks above when speaking conversationally.
46
+ Per Canon Part 8: doctor's --ui-compliance class is purely LOCAL (zero network, zero Brain) -- the Part 8 invariant is preserved through the fold.
164
47
 
165
- ## See also
48
+ ## Cross-references
166
49
 
167
- - `/mos:doctor --ui-compliance` - the underlying detector this command reads from.
168
- - `/mos:operator` (Phase 99) - the operator state stratum the priority weighting reads.
169
- - `/mos:jtbd` (Phase 100) - the JTBD state the weighting matches against `methodology_hooks`.
170
- - `skills/ui-system/SKILL.md` - the UI Ruling System spec this command's renderer self-complies with.
171
- - `docs/MINDRIAN-CANON.md` Part 3 - the tri-context Decision Gate. Recovery is user-driven, not auto.
172
- - `docs/MINDRIAN-CANON.md` Part 7 - reuse-before-build. The renderer borrows the 4-zone scaffold from `scripts/doctor.cjs renderHumanReport`.
173
- - `docs/MINDRIAN-CANON.md` Part 8 - graph boundary. Zero Brain queries; pure LOCAL read of side-channel + registry.
50
+ - `commands/doctor.md` -- the canonical target; class F handles --ui-compliance.
51
+ - `scripts/soft-alias-runner.cjs` -- the shared runner.
52
+ - Canon Part 7 (Reuse Before Build) + Canon Part 3 (Decision Gate -- recovery is /mos:doctor --ui-compliance --fix, user-driven, not auto).