@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
@@ -1,10 +1,14 @@
1
1
  ---
2
2
  name: organize
3
- description: Navigate room hierarchy with graph-aware tree
4
- argument-hint: [tree|propose|compound]
3
+ description: "[Deprecated] Navigate room hierarchy with graph-aware tree (use /mos:rooms organize)"
4
+ help_jtbd: "Group rooms into portfolios (deprecated: use /mos:rooms organize)."
5
+ argument-hint: "[tree|propose|move <room> <group>]"
5
6
  body_shape: B (Semantic Tree)
6
7
  serves_jtbd: ["audit-room"]
7
- teaching: "When the room hierarchy has grown messy, /mos:organize navigates it with a graph-aware tree that respects sub-room boundaries. The structural overview, not the content view."
8
+ deprecated: true
9
+ deprecated_redirect: "rooms organize"
10
+ deprecated_removal: "v1.14.0"
11
+ teaching: "Deprecated alias. Use /mos:rooms organize to manage the room portfolio hierarchy; organize is folded into the multi-room surface. Scheduled removal: v1.14.0."
8
12
  ui_reference: skills/ui-system/SKILL.md
9
13
  allowed-tools:
10
14
  - Read
@@ -16,483 +20,32 @@ allowed-tools:
16
20
 
17
21
  # /mos:organize
18
22
 
19
- You are Larry. This command manages the room portfolio hierarchy using **Body Shape B (Semantic Tree)** per the UI Ruling System.
23
+ > Deprecated. /mos:organize now redirects to /mos:rooms organize. Scheduled removal: v1.14.0. Use /mos:rooms organize going forward.
20
24
 
21
- Room organization is a wicked problem (Rittel & Webber 1973). Multiple valid groupings exist simultaneously. Decisions are never final -- they feed future proposals. The system gets smarter from every GROUP, SEPARATE, and DEFER decision.
25
+ You are Larry. The user invoked /mos:organize. Per D-09 (LOCKED 2026-05-16, Phase 121.5-08 Sub-plan J) /mos:organize is a soft-alias stub for the v1.13.x window. The canonical surface is /mos:rooms organize.
22
26
 
23
- ## UI Format
27
+ ## Steps
24
28
 
25
- - **Body Shape:** B (Semantic Tree) for all subcommands
26
- - **Reference:** `skills/ui-system/SKILL.md`
27
- - All subcommands follow the 4-zone anatomy: Header Panel, Content Body, Intelligence Strip (cross-room signals), Action Footer (NEVER omitted)
28
- - **Symbols:** Only the 12 approved glyphs. No emoji. No em-dashes.
29
- - **Nesting depth:** Max 3 levels (root / group / room). Never deeper.
29
+ 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).
30
30
 
31
- ## Routing
32
-
33
- Parse user input to determine which subcommand to execute. If no subcommand is given, default to `tree`.
34
-
35
- Subcommands: `tree` (default), `propose`, `view`, `move`
36
-
37
- **Natural language mapping (Desktop/Cowork):**
38
- - "organize my rooms" / "show room structure" -> `tree`
39
- - "how should I reorganize?" / "suggest groupings" -> `propose`
40
- - "show rooms by client" / "group by stage" -> `view by-stage`
41
- - "move fintech to clients" / "put biotech in health group" -> `move fintech-startup clients`
42
-
43
- ---
44
-
45
- ## Subcommand: tree
46
-
47
- **Trigger:** `/mos:organize` or `/mos:organize tree`
48
-
49
- ### Step 1: Get Room Data
50
-
51
- Determine `ROOMS_HOME` (`$MINDRIAN_ROOMS_HOME` or `~/MindrianRooms`).
52
-
53
- Run `bash scripts/room-registry list` to get JSON array of rooms.
54
-
55
- If the command fails or returns empty:
56
- > "No rooms found. Run `/mos:rooms new` to create your first room."
57
- Then STOP.
58
-
59
- ### Step 2: Scan Physical Hierarchy
60
-
61
- Scan `$ROOMS_HOME` for the actual directory structure:
31
+ 2. Invoke /mos:rooms organize with the user's original arguments (the subcommand verb: `tree`, `propose`, `view`, `move`). Run:
62
32
 
63
33
  ```bash
64
- # List top-level directories (excluding hidden, _archive)
65
- ls -d "$ROOMS_HOME"/*/ 2>/dev/null | grep -v '/\.' | grep -v '/_'
66
- ```
67
-
68
- For each directory, check:
69
- 1. Is it a registered room? (exists in registry.json)
70
- 2. Is it a group directory? (contains subdirectories that are rooms, has a CLAUDE.md)
71
- 3. Is it an orphan? (directory exists but not in registry)
72
-
73
- ### Step 3: Check ICM Compliance
74
-
75
- For each room, check:
76
- - `CLAUDE.md` exists at room level (Layer 0)
77
- - `STATE.md` exists (Layer 2)
78
- - Section directories present (problem-definition/, market-analysis/, etc.)
79
-
80
- Use status indicators:
81
- - `checkmark` = ICM-compliant (CLAUDE.md + STATE.md + sections)
82
- - `bullet` = Partial (missing some ICM layers)
83
- - `warning` = Non-compliant (no STATE.md or no sections)
84
-
85
- ### Step 4: Render Room Tree
86
-
87
- Render using Body Shape B (Semantic Tree):
88
-
34
+ node "${CLAUDE_PLUGIN_ROOT}/scripts/soft-alias-runner.cjs" --from organize --to "rooms organize" --remaining-args $ARGUMENTS
89
35
  ```
90
- -- MindrianOS -- Room Portfolio -- ~/MindrianRooms/ -------------------
91
-
92
- v ~/MindrianRooms/
93
- |- [group-icon] clients/ 3 rooms
94
- | |- [checkmark] acme-robotics active Pre-Opportunity 8 entries
95
- | |- [bullet] fintech-startup parked Discovery 14 entries
96
- | +- [checkmark] biotech-venture parked Validation 22 entries
97
- |
98
- |- [group-icon] internal/ 1 room
99
- | +- [checkmark] mindrian-ops active -- 5 entries
100
- |
101
- |- [warning] orphan-project -- -- 0 entries
102
- +- _archive/ 2 rooms
103
-
104
- Rooms: 5 registered, 1 orphan, 2 archived
105
- Groups: 2 (clients/, internal/)
106
- ICM health: 3 compliant, 1 partial, 1 non-compliant
107
- ```
108
-
109
- For ungrouped rooms (directly under ROOMS_HOME), show them at root level without a group parent.
110
-
111
- Symbol key for groups:
112
- - `v` (down-triangle) = expanded group with rooms
113
- - `>` (right-triangle-filled) = collapsed group
114
-
115
- ### Step 5: Intelligence Strip (Zone 3)
116
-
117
- If any cross-room signals exist, show max 2:
118
- - `!` "acme-robotics and fintech-startup share 3 market themes" (convergence)
119
- - `[ ]` "orphan-project not in registry -- run /mos:rooms new to adopt"
120
-
121
- Omit entirely if no signals.
122
-
123
- ### Step 6: Action Footer (Zone 4)
124
-
125
- ```
126
- > /mos:organize propose Get graph-informed grouping suggestions
127
- > /mos:organize view by-stage See rooms grouped by venture stage
128
- > /mos:organize move <room> <group> Move a room into a group (with confirmation)
129
- ```
130
-
131
- ---
132
-
133
- ## Subcommand: propose
134
-
135
- **Trigger:** `/mos:organize propose`
136
-
137
- ### Step 1: Gather Room Intelligence
138
-
139
- Determine `ROOMS_HOME` and load room list via `bash scripts/room-registry list`.
140
-
141
- For each room, collect metadata:
142
- - `venture_name` and `venture_stage` from registry
143
- - Domain keywords: scan `problem-definition/` for topic terms if files exist
144
- - Team info: check `team/` directory for client/stakeholder names
145
- - Entry count and section health
146
-
147
- ### Step 2: Attempt Graph-Informed Groupings (Graceful Degradation)
148
-
149
- **Tier 1 -- Brain + SQLite graph (richest proposals):**
150
36
 
151
- Try calling Brain MCP: `mcp__mindrian-brain__brain_schema` or `mcp__mindrian-brain__get_neo4j_schema`.
37
+ The runner emits `{redirect, deprecation_note, args, ok}`. Use the redirect to confirm the target, then proceed with /mos:rooms organize behavior. The user sees ONE deprecation note + the rooms organize output (Shape B Semantic Tree).
152
38
 
153
- If Brain is available, query for cross-room intelligence:
39
+ 3. Pass through /mos:rooms organize's output (the room portfolio tree, the propose listing, or the move confirmation) verbatim.
154
40
 
155
- ```cypher
156
- // Find rooms that share frameworks
157
- MATCH (r1:Room)-[:USES_FRAMEWORK]->(f:Framework)<-[:USES_FRAMEWORK]-(r2:Room)
158
- WHERE r1.name <> r2.name
159
- RETURN r1.name, r2.name, collect(f.name) AS shared_frameworks
41
+ ## Why this is a soft-alias
160
42
 
161
- // Find rooms at the same stage
162
- MATCH (r:Room)-[:AT_STAGE]->(s:VentureStage)
163
- RETURN s.name, collect(r.name) AS rooms_at_stage
43
+ Cluster 5 audit (2026-05-15) found that /mos:organize and the multi-room /mos:rooms surface both managed the room portfolio hierarchy. Two entry points, one feature. Folding organize into /mos:rooms organize gives one canonical surface for portfolio management.
164
44
 
165
- // Find rooms with shared themes
166
- MATCH (r1:Room)-[:SHARES_THEME]->(t:Theme)<-[:SHARES_THEME]-(r2:Room)
167
- RETURN t.name, collect(DISTINCT r1.name) + collect(DISTINCT r2.name) AS themed_rooms
168
- ```
169
-
170
- Note: Room nodes may not exist yet (Phase 59.2 creates them). If these queries return empty, fall through to Tier 2.
171
-
172
- **Tier 2 -- Metadata-based groupings (always available):**
173
-
174
- Group rooms by analyzing:
175
- 1. **By venture stage:** Cluster rooms sharing the same `venture_stage`
176
- 2. **By name pattern:** Extract common prefixes or domain keywords from room slugs
177
- 3. **By domain keywords:** Read first 50 lines of each room's `problem-definition/` files, extract key domain terms, find overlaps
178
- 4. **By activity level:** Group stale rooms (no activity >30 days) vs. active ones
179
-
180
- ### Step 3: Generate Proposals
181
-
182
- Create a ranked list of grouping proposals. Each proposal has:
183
- - **Group name** (suggested slug, e.g., `health-ventures`, `pre-opp-rooms`)
184
- - **Rooms included** (which rooms would move into this group)
185
- - **Rationale** (why these rooms belong together)
186
- - **Confidence** (high/medium/low based on signal strength)
187
- - **Source** (Brain graph / metadata / name pattern)
188
-
189
- ### Step 4: Render Proposals
190
-
191
- ```
192
- -- MindrianOS -- Room Portfolio -- Reorganization Proposals -----------
193
-
194
- Analyzed 5 rooms. Found 3 potential groupings.
195
-
196
- Proposal 1: "health-ventures" [HIGH confidence]
197
- Source: shared domain keywords (genomics, clinical, biotech)
198
- |- biotech-venture Validation 22 entries
199
- +- pharma-discovery Discovery 11 entries
200
-
201
- Proposal 2: "pre-opportunity" [MEDIUM confidence]
202
- Source: venture stage clustering
203
- |- acme-robotics Pre-Opportunity 8 entries
204
- +- new-idea-room Pre-Opportunity 3 entries
205
-
206
- Proposal 3: "fintech" [LOW confidence]
207
- Source: name pattern match
208
- +- fintech-startup Discovery 14 entries
209
- (single room -- grouping deferred)
210
-
211
- > /mos:organize move biotech-venture health-ventures Accept proposal 1
212
- > /mos:organize propose --refresh Re-analyze with latest data
213
- > /mos:organize view by-stage Preview stage-based view first
214
- ```
215
-
216
- ### Step 5: Record Proposals
217
-
218
- Write proposals to `$ROOMS_HOME/.rooms/proposals.json` for future reference:
219
-
220
- ```json
221
- {
222
- "generated": "2026-04-06T20:00:00Z",
223
- "source": "metadata",
224
- "proposals": [
225
- {
226
- "group": "health-ventures",
227
- "rooms": ["biotech-venture", "pharma-discovery"],
228
- "rationale": "shared domain keywords: genomics, clinical, biotech",
229
- "confidence": "high",
230
- "status": "pending"
231
- }
232
- ]
233
- }
234
- ```
235
-
236
- ---
237
-
238
- ## Subcommand: view
239
-
240
- **Trigger:** `/mos:organize view [axis]`
241
-
242
- Available axes: `by-stage`, `by-client`, `by-domain`, `by-activity`
243
-
244
- This subcommand shows virtual projections WITHOUT moving files. The rooms stay where they are. The view is a lens, not a reorganization.
245
-
246
- ### Step 1: Load Room Data
247
-
248
- Get room list via `bash scripts/room-registry list`. For each room, load metadata as in `propose`.
249
-
250
- ### Step 2: Build Virtual Grouping
251
-
252
- **by-stage:** Group rooms by `venture_stage` field from registry.
253
-
254
- **by-client:** Extract client/owner from:
255
- 1. `venture_name` in registry (parse for company names)
256
- 2. `team/` directory contents (look for stakeholder names)
257
- 3. Room slug prefix patterns
258
-
259
- **by-domain:** Extract domain from:
260
- 1. Problem-definition content keywords
261
- 2. Room slug domain terms
262
- 3. Brain framework associations (if available)
263
-
264
- **by-activity:** Group by last activity:
265
- - Active (activity within 7 days)
266
- - Recent (7-30 days)
267
- - Stale (30+ days)
268
- - Dormant (90+ days)
269
-
270
- ### Step 3: Render Virtual View
271
-
272
- ```
273
- -- MindrianOS -- Room Portfolio -- View: by-stage ---------------------
274
-
275
- [virtual projection -- no files moved]
276
-
277
- v Pre-Opportunity (2 rooms)
278
- |- acme-robotics active 8 entries
279
- +- new-idea-room parked 3 entries
280
-
281
- v Discovery (2 rooms)
282
- |- fintech-startup parked 14 entries
283
- +- pharma-discovery active 11 entries
284
-
285
- v Validation (1 room)
286
- +- biotech-venture parked 22 entries
287
-
288
- > /mos:organize move acme-robotics pre-opportunity Make this grouping real
289
- > /mos:organize view by-domain Try another lens
290
- > /mos:organize tree Back to physical structure
291
- ```
45
+ Per D-09 the old command stays as a soft-alias stub for v1.13.x; removal is scheduled v1.14.0. CHANGELOG announces the rename.
292
46
 
293
- ### Step 4: Action Footer
47
+ ## Cross-references
294
48
 
295
- Suggest converting the virtual view into real groups (with move commands) or trying other axes.
296
-
297
- ---
298
-
299
- ## Subcommand: move
300
-
301
- **Trigger:** `/mos:organize move <room-name> <target-group>`
302
-
303
- ### Step 1: Validate Inputs
304
-
305
- Run `bash scripts/room-registry read <room-name>` to verify room exists.
306
-
307
- If not found:
308
- ```
309
- x Room not found: <room-name>
310
- Why: No room named "<room-name>" in .rooms/registry.json
311
- Fix: /mos:rooms list
312
- ```
313
- Then STOP.
314
-
315
- Check if target-group is valid:
316
- - Must be a valid directory slug (lowercase, alphanumeric, hyphens)
317
- - Must not exceed nesting depth (max 3 levels: root/group/room)
318
-
319
- ### Step 2: Show Move Preview
320
-
321
- Display what will happen before asking for confirmation:
322
-
323
- ```
324
- -- MindrianOS -- Room Move Preview ------------------------------------
325
-
326
- Moving: fintech-startup
327
- From: ~/MindrianRooms/fintech-startup/
328
- To: ~/MindrianRooms/clients/fintech-startup/
329
-
330
- This will:
331
- 1. Create group directory "clients/" (if new)
332
- 2. Generate ICM CLAUDE.md for "clients/" group
333
- 3. Move fintech-startup/ into clients/
334
- 4. Update registry.json path
335
- 5. Refresh INDEX.md
336
-
337
- Confirm move? (yes/no)
338
- ```
339
-
340
- ### Step 3: Require Explicit Human Confirmation
341
-
342
- **CRITICAL:** Wait for explicit "yes" from the user. Accept: "yes", "y", "confirm", "do it", "go ahead".
343
-
344
- If user declines or says anything ambiguous, STOP:
345
- > "Move cancelled. Room stays at current location."
346
-
347
- If user says "defer":
348
- > Record DEFER decision (Step 7) and STOP.
349
-
350
- ### Step 4: Execute Move
351
-
352
- If confirmed, execute the move:
353
-
354
- ```bash
355
- ROOMS_HOME="${MINDRIAN_ROOMS_HOME:-$HOME/MindrianRooms}"
356
-
357
- # Create group directory if it doesn't exist
358
- mkdir -p "$ROOMS_HOME/<target-group>"
359
-
360
- # Move the room directory
361
- mv "$ROOMS_HOME/<room-name>" "$ROOMS_HOME/<target-group>/<room-name>"
362
- ```
363
-
364
- ### Step 5: Generate Group ICM CLAUDE.md
365
-
366
- If this is a NEW group (just created), generate an ICM Layer 0 CLAUDE.md for the group directory.
367
-
368
- Read the template from `templates/icm/GROUP-CLAUDE.md` and fill in:
369
- - Group name
370
- - Rationale for grouping (from proposal if available, or ask user)
371
- - List of rooms in the group
372
-
373
- Write the filled template to `$ROOMS_HOME/<target-group>/CLAUDE.md`.
374
-
375
- If the group already has a CLAUDE.md, update the room list section to include the newly moved room.
376
-
377
- ### Step 6: Update Registry and Index
378
-
379
- Update the room's path in the registry:
380
-
381
- ```bash
382
- bash scripts/room-registry update <room-name> path "<target-group>/<room-name>"
383
- ```
384
-
385
- Refresh INDEX.md:
386
-
387
- ```bash
388
- bash scripts/update-icm-index "$ROOMS_HOME"
389
- ```
390
-
391
- ### Step 7: Record Decision
392
-
393
- Record the user's decision for future proposal intelligence.
394
-
395
- Write to `$ROOMS_HOME/.rooms/decisions.json`:
396
-
397
- ```json
398
- {
399
- "decisions": [
400
- {
401
- "timestamp": "2026-04-06T20:00:00Z",
402
- "type": "GROUP",
403
- "room": "fintech-startup",
404
- "target": "clients",
405
- "rationale": "client-based grouping",
406
- "source": "user-confirmed"
407
- }
408
- ]
409
- }
410
- ```
411
-
412
- Decision types:
413
- - **GROUP** -- user confirmed moving room into a group
414
- - **SEPARATE** -- user explicitly rejected a proposed grouping ("keep these apart")
415
- - **DEFER** -- user acknowledged the proposal but chose not to act now
416
-
417
- When Brain graph is available (Phase 59.2+), also create graph edges:
418
-
419
- ```cypher
420
- // GROUP decision
421
- MERGE (r:Room {name: "fintech-startup"})
422
- MERGE (g:RoomGroup {name: "clients"})
423
- MERGE (r)-[:GROUPED_BY_USER {timestamp: datetime(), rationale: "client-based"}]->(g)
424
-
425
- // SEPARATE decision
426
- MERGE (r1:Room {name: "room-a"})
427
- MERGE (r2:Room {name: "room-b"})
428
- MERGE (r1)-[:SEPARATED_BY_USER {timestamp: datetime(), reason: "different domains"}]->(r2)
429
- ```
430
-
431
- If Brain is not available, the local `decisions.json` file is sufficient. Future proposals read this file to avoid re-suggesting rejected groupings.
432
-
433
- ### Step 8: Report Success
434
-
435
- ```
436
- -- MindrianOS -- Room Move Complete -----------------------------------
437
-
438
- Moved: fintech-startup
439
- To: ~/MindrianRooms/clients/fintech-startup/
440
- Group: clients/ (ICM CLAUDE.md generated)
441
- Registry: updated
442
- INDEX.md: refreshed
443
-
444
- Decision recorded: GROUP fintech-startup -> clients
445
-
446
- > /mos:organize tree See updated structure
447
- > /mos:organize propose Get more suggestions
448
- > /mos:organize move <room> clients Add another room to this group
449
- ```
450
-
451
- ---
452
-
453
- ## Decision Memory
454
-
455
- The organize command maintains two local files for decision intelligence:
456
-
457
- 1. **`$ROOMS_HOME/.rooms/proposals.json`** -- generated proposals with status tracking
458
- 2. **`$ROOMS_HOME/.rooms/decisions.json`** -- all GROUP/SEPARATE/DEFER decisions with timestamps
459
-
460
- When generating new proposals (via `propose`), the system:
461
- 1. Reads `decisions.json` to avoid re-suggesting SEPARATE'd groupings
462
- 2. Boosts confidence for proposals that align with previous GROUP decisions
463
- 3. Surfaces DEFER'd proposals again after 30 days with a note: "Previously deferred on [date]"
464
-
465
- When Brain graph is available, these local files serve as a staging area. Decisions are promoted to graph edges for richer cross-room intelligence.
466
-
467
- ---
468
-
469
- ## Graceful Degradation
470
-
471
- | Available | Proposal Quality | Source |
472
- |-----------|-----------------|--------|
473
- | Brain + SQLite graph | Rich: shared frameworks, themes, co-occurrence | Graph queries |
474
- | Brain only | Good: venture stage taxonomy, framework connections | Cypher queries |
475
- | SQLite graph only | Good: local graph relationships, room metadata | Local graph |
476
- | Neither (Tier 0) | Basic: stage clustering, name patterns, domain keywords | Registry + filesystem |
477
-
478
- The command always works. Intelligence quality scales with available infrastructure. This is the Tier 0 principle applied to room organization.
479
-
480
- ---
481
-
482
- ## Cross-Surface Notes (Tri-Polar Rule)
483
-
484
- | Surface | Behavior |
485
- |---------|----------|
486
- | **CLI** | Full subcommand syntax as documented above. Scripts run directly. |
487
- | **Desktop** | Larry interprets natural language and maps to subcommands. See natural language mapping at top. |
488
- | **Cowork** | Same registry, same commands. Moves affect all team members sharing the room hierarchy. Announce moves in shared context. |
489
-
490
- ## Error Format
491
-
492
- Always use the 3-line error pattern:
493
-
494
- ```
495
- x What happened
496
- Why: reason
497
- Fix: /mos:command
498
- ```
49
+ - `commands/rooms.md` -- the canonical target with the full portfolio surface (and the `organize` subcommand).
50
+ - `scripts/soft-alias-runner.cjs` -- the shared runner.
51
+ - Canon Part 7 (Reuse Before Build) -- consolidation rationale.
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: persona
3
3
  description: Generate Six-Hats lenses from room data
4
+ help_jtbd: "Get a per-persona view of your venture (role-blend x journey-stage)."
4
5
  body_shape: C (Room Card)
5
6
  serves_jtbd: ["prepare-pitch"]
6
7
  teaching: "When you need fresh perspectives on the room, /mos:persona generates Six-Hats lenses from your room data. Each persona argues from a different stance; you decide what holds."
@@ -1,6 +1,8 @@
1
1
  ---
2
2
  name: pipeline
3
3
  description: Chain a multi-step methodology pipeline
4
+ help_jtbd: "Chain methodologies stage-by-stage."
5
+ body_shape: E
4
6
  argument-hint: '[pipeline-name] [--from-problem-type <x>] [--from-framework <x>]'
5
7
  serves_jtbd: ["plan-execution"]
6
8
  teaching: "When you want several methodologies chained instead of run one-by-one, /mos:pipeline executes a multi-step pipeline with the room as the connecting tissue. Week 7 pattern."
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: present
3
3
  description: Generate the 6-view presentation and open it
4
+ help_jtbd: "Render your room as a presentation deck."
4
5
  body_shape: E (Action Report)
5
6
  body_shape_detail: Generation results as action items, 6 views listed as outputs
6
7
  serves_jtbd: ["prepare-pitch"]
@@ -1,6 +1,8 @@
1
1
  ---
2
2
  name: publish
3
3
  description: Publish the Data Room presentation to Vercel
4
+ help_jtbd: "Publish your room to a live URL."
5
+ body_shape: E
4
6
  argument-hint: [--all|<view>]
5
7
  serves_jtbd: ["prepare-pitch"]
6
8
  teaching: "When the Data Room is ready to share publicly, /mos:publish deploys the presentation to Vercel with a one-click link. From local artifact to shareable URL in one move."