@mindrian_os/install 1.13.0-beta.11 → 1.13.0-beta.12

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.
@@ -5,7 +5,7 @@ section: lib/workflow
5
5
  purpose: Workflow layer -- the framework <-> command registry resolver. The sole door from "framework" to "/mos: command".
6
6
  founding_phase: 122
7
7
  phase: 122
8
- milestone: v1.13.0-beta.11
8
+ milestone: v1.13.0-beta.12
9
9
  canon_parts: [7, 8]
10
10
  created: 2026-05-12
11
11
  ---
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mindrian_os/install",
3
- "version": "1.13.0-beta.11",
3
+ "version": "1.13.0-beta.12",
4
4
  "description": "Install MindrianOS into Claude Code with one command -- `npx @mindrian_os/install`. Ships the MindrianOS plugin (Larry + PWS methodology + Data Room) plus a setup/diagnostics CLI (install/doctor/update).",
5
5
  "scripts": {
6
6
  "mcp": "node bin/mindrian-mcp-server.cjs",
@@ -1,226 +1,15 @@
1
- # Brain Command Trigger Schema
1
+ # Brain Command Trigger Schema -- REMOVED (Phase 122, v1.13.0-beta)
2
2
 
3
- ## Purpose
3
+ This document used to describe a "commands are first-class Neo4j nodes with typed trigger relationships" design. That design was never built into the live Brain (no such label exists in the deployed graph), and it is a latent **Canon Part 8** breach in prose: it asserts that plugin commands live in the Brain. Per Canon Part 8 (`docs/MINDRIAN-CANON.md`), the Brain is a repository of strategic thinking tools, never a repository of plugin internals or user data. Commands never enter the Brain.
4
4
 
5
- Commands are first-class nodes in the Neo4j Brain. They have typed relationships to Frameworks, ProblemTypes, VentureStages, and Signals that define WHEN they should fire. The Brain doesn't just recommend frameworks -- it recommends ACTIONS mapped to specific /mos: commands with trigger conditions.
5
+ ## What replaced it
6
6
 
7
- ## Node: Command
7
+ The framework-to-command mapping is now plugin-local, generated, and CI-checked:
8
8
 
9
- ```cypher
10
- CREATE (c:Command {
11
- name: '/mos:find-analogies',
12
- slug: 'find-analogies',
13
- category: 'intelligence', // infrastructure | methodology | intelligence | export | meeting | funding
14
- description: 'Cross-domain analogy discovery via structural isomorphism',
15
- jtbd_when: 'stuck on a problem that feels unique to your domain',
16
- jtbd_want: 'discover that other industries already solved the same structural conflict',
17
- jtbd_so: 'adapt their approach instead of inventing from scratch',
18
- time_estimate: '5 minutes',
19
- flags: ['--brain', '--external'], // available flags
20
- min_sections: 2, // minimum populated sections to be relevant
21
- requires_brain: false, // works without Brain (but better with)
22
- powerhouse: true // v1.6.0+ feature
23
- })
24
- ```
9
+ - **Source of truth:** the `frameworks:` key in each `commands/*.md` frontmatter. Contract: `docs/COMMAND-FRONTMATTER.md`.
10
+ - **Generated registry:** `data/command-registry.json` -- built from frontmatter by `scripts/build-command-registry.cjs`; never hand-edited; pre-commit + Feynman-runner tripwire on drift.
11
+ - **The only door at runtime:** `lib/workflow/command-resolver.cjs` (`commandsForFramework`, `composeWorkflow`, `validateChainAutonomy`).
12
+ - **The Brain side:** `lib/brain/chain-recommender.cjs` ranks WHICH frameworks to chain next via the Brain's `FEEDS_INTO` traversal -- framework names + problem-type enums only, never a command string, never user content.
13
+ - **The full picture:** `docs/WORKFLOWS.md`.
25
14
 
26
- ## Relationships
27
-
28
- ### TRIGGERED_BY_SIGNAL
29
-
30
- Links a Command to the Room Signal types that should trigger it.
31
-
32
- ```cypher
33
- // When a CONTRADICTS edge exists between sections -> suggest find-analogies
34
- CREATE (cmd:Command {name: '/mos:find-analogies'})-[:TRIGGERED_BY_SIGNAL {
35
- signal_type: 'TENSION', // TENSION | BLIND_SPOT | BOTTLENECK | PATTERN | SURPRISE
36
- priority: 1, // 1=highest, 5=lowest
37
- condition: 'contradicts_count >= 1',
38
- jtbd_framing: 'When your Sections have unresolved Tensions, you want to see how other domains resolved the same structural conflict'
39
- }]->(sig:SignalType {name: 'TENSION'})
40
-
41
- // When 3+ sections have gaps -> suggest act --swarm
42
- CREATE (cmd:Command {name: '/mos:act --swarm'})-[:TRIGGERED_BY_SIGNAL {
43
- signal_type: 'BLIND_SPOT',
44
- priority: 1,
45
- condition: 'gap_count >= 3',
46
- jtbd_framing: 'When 3+ Sections have Blind Spots, you want to fill them all at once instead of one at a time'
47
- }]->(sig:SignalType {name: 'BLIND_SPOT'})
48
-
49
- // When reverse salients detected -> suggest specific methodology for lagging section
50
- CREATE (cmd:Command {name: '/mos:act'})-[:TRIGGERED_BY_SIGNAL {
51
- signal_type: 'BOTTLENECK',
52
- priority: 2,
53
- condition: 'reverse_salient_count >= 1',
54
- jtbd_framing: 'When a Section lags behind the others, you want to close the gap before it compounds'
55
- }]->(sig:SignalType {name: 'BOTTLENECK'})
56
- ```
57
-
58
- ### FOLLOWS_FRAMEWORK
59
-
60
- Links a Command to the Framework it should follow (chaining).
61
-
62
- ```cypher
63
- // After JTBD analysis -> suggest Blue Ocean
64
- CREATE (cmd:Command {name: '/mos:dominant-designs'})-[:FOLLOWS_FRAMEWORK {
65
- confidence: 0.85,
66
- reason: 'JTBD reveals customer needs; dominant designs reveals competitive whitespace',
67
- hop_distance: 1
68
- }]->(f:Framework {name: 'Jobs-to-Be-Done'})
69
-
70
- // After find-analogies -> suggest validate (stress-test the analogy)
71
- CREATE (cmd:Command {name: '/mos:validate'})-[:FOLLOWS_FRAMEWORK {
72
- confidence: 0.90,
73
- reason: 'Analogies must be stress-tested before acting on them',
74
- hop_distance: 1
75
- }]->(f:Framework {name: 'Design-by-Analogy'})
76
-
77
- // After grade --full -> suggest act --swarm on weak sections
78
- CREATE (cmd:Command {name: '/mos:act --swarm'})-[:FOLLOWS_FRAMEWORK {
79
- confidence: 0.80,
80
- reason: 'Grading reveals gaps; swarm attacks them in parallel',
81
- hop_distance: 1
82
- }]->(f:Framework {name: 'Assessment'})
83
- ```
84
-
85
- ### RELEVANT_AT_STAGE
86
-
87
- Links a Command to VentureStages where it's most impactful.
88
-
89
- ```cypher
90
- // find-analogies is most powerful at Discovery and Design stages
91
- CREATE (cmd:Command {name: '/mos:find-analogies'})-[:RELEVANT_AT_STAGE {
92
- impact: 'high',
93
- reason: 'Discovery needs fresh perspectives; Design needs proven patterns'
94
- }]->(stage:VentureStage {name: 'Discovery'})
95
-
96
- // grade --full becomes critical at Investment stage
97
- CREATE (cmd:Command {name: '/mos:grade --full'})-[:RELEVANT_AT_STAGE {
98
- impact: 'critical',
99
- reason: 'Investment stage demands rigor across every Section'
100
- }]->(stage:VentureStage {name: 'Investment'})
101
-
102
- // scout is always relevant but especially at Validation
103
- CREATE (cmd:Command {name: '/mos:scout'})-[:RELEVANT_AT_STAGE {
104
- impact: 'high',
105
- reason: 'Validation stage has deadlines and competitor dynamics'
106
- }]->(stage:VentureStage {name: 'Validation'})
107
- ```
108
-
109
- ### ADDRESSES_PROBLEM_TYPE
110
-
111
- Links a Command to ProblemTypes it solves (via multi-hop through Frameworks).
112
-
113
- ```cypher
114
- // find-analogies addresses wicked problems (via Design-by-Analogy framework)
115
- CREATE (cmd:Command {name: '/mos:find-analogies'})-[:ADDRESSES_PROBLEM_TYPE {
116
- via_framework: 'Design-by-Analogy',
117
- effectiveness: 0.85
118
- }]->(pt:ProblemType {name: 'wicked'})
119
-
120
- // act --swarm addresses complex problems with multiple dimensions
121
- CREATE (cmd:Command {name: '/mos:act --swarm'})-[:ADDRESSES_PROBLEM_TYPE {
122
- via_framework: 'Multiple simultaneous frameworks',
123
- effectiveness: 0.90
124
- }]->(pt:ProblemType {name: 'ill-defined-complex'})
125
- ```
126
-
127
- ### RESOLVES_TENSION_BETWEEN
128
-
129
- Links a Command to Framework pairs that commonly produce contradictions.
130
-
131
- ```cypher
132
- // find-analogies resolves tensions between pricing frameworks and competitive positioning
133
- CREATE (cmd:Command {name: '/mos:find-analogies'})-[:RESOLVES_TENSION_BETWEEN {
134
- framework_a: 'Lean Canvas',
135
- framework_b: 'Competitive Analysis',
136
- resolution_pattern: 'Cross-domain structural isomorphism finds how other industries resolved pricing vs positioning'
137
- }]->(tension:TensionType {name: 'pricing_vs_positioning'})
138
- ```
139
-
140
- ## Multi-Hop Proactive Query
141
-
142
- The power of this schema is MULTI-HOP reasoning. The Brain can traverse:
143
-
144
- ```
145
- User's Room State
146
- -> Current Frameworks (from Room artifacts)
147
- -> FEEDS_INTO relationships (what comes next)
148
- -> Command nodes (which /mos: command delivers it)
149
- -> TRIGGERED_BY_SIGNAL (is the trigger condition met?)
150
- -> Return ranked command suggestion with full JTBD framing
151
- ```
152
-
153
- ### Query: brain_proactive_command (Pattern 10d)
154
-
155
- ```cypher
156
- // Multi-hop: Room frameworks -> next framework -> command -> trigger check
157
- MATCH (current:Framework)<-[:FOLLOWS_FRAMEWORK]-(cmd:Command)
158
- WHERE current.name IN $room_frameworks
159
-
160
- // Check if command is relevant at this venture stage
161
- OPTIONAL MATCH (cmd)-[stage_rel:RELEVANT_AT_STAGE]->(stage:VentureStage {name: $venture_stage})
162
-
163
- // Check if command is triggered by current signals
164
- OPTIONAL MATCH (cmd)-[trigger:TRIGGERED_BY_SIGNAL]->(sig:SignalType)
165
-
166
- // Get success data
167
- OPTIONAL MATCH (current)-[:APPLIED_IN]->(example:Example)
168
- WHERE example.grade_numeric >= 80
169
-
170
- RETURN cmd.name AS command,
171
- cmd.jtbd_when AS when_situation,
172
- cmd.jtbd_want AS want_motivation,
173
- cmd.jtbd_so AS so_outcome,
174
- cmd.time_estimate AS time,
175
- cmd.flags AS available_flags,
176
- stage_rel.impact AS stage_impact,
177
- trigger.signal_type AS triggered_by,
178
- trigger.condition AS trigger_condition,
179
- trigger.jtbd_framing AS trigger_framing,
180
- count(example) AS success_count
181
- ORDER BY stage_rel.impact DESC, trigger.priority ASC, success_count DESC
182
- LIMIT 5
183
- ```
184
-
185
- **Parameters:**
186
- - `$room_frameworks` -- frameworks used in Room (from artifact frontmatter)
187
- - `$venture_stage` -- from STATE.md
188
-
189
- **Output:** Ranked command suggestions with full JTBD framing, trigger conditions, and success data from real projects.
190
-
191
- ## Seeding Script
192
-
193
- The Command nodes and trigger relationships need to be seeded into Neo4j. Create a script that:
194
-
195
- 1. Reads all commands/*.md files
196
- 2. Extracts: name, description, allowed-tools, category
197
- 3. Generates JTBD statements from the command's purpose
198
- 4. Creates Command nodes with relationships to:
199
- - Frameworks they follow (from methodology chaining rules)
200
- - VentureStages they're relevant at (from problem-types.md)
201
- - SignalTypes that trigger them (from proactive-intelligence patterns)
202
- 5. Runs the Cypher via `mcp__neo4j-brain__write_neo4j_cypher`
203
-
204
- Script location: `scripts/seed-brain-commands.cjs`
205
-
206
- ## The Intelligence Hierarchy (Updated)
207
-
208
- ```
209
- LEVEL 3 (Brain + Room + Signals):
210
- brain_proactive_command (Pattern 10d)
211
- Multi-hop: frameworks -> commands -> triggers -> JTBD
212
- Calibrated from 100+ real projects
213
- Knows which sequences ACTUALLY produced results
214
-
215
- LEVEL 2 (Room + Local Fabric):
216
- Larry's JTBD provoked suggestions (every 3-7 turns)
217
- KuzuDB Tensions, Bottlenecks, Surprises, Convergences
218
- Good but not cross-venture calibrated
219
-
220
- LEVEL 1 (No Room):
221
- Generic stage-based defaults
222
- methodology/index.md routing table
223
- Better than nothing
224
- ```
225
-
226
- Brain-connected users get LEVEL 3: the Brain literally tells Larry which command to suggest, when, and why -- backed by data from 100+ real ventures. The JTBD framing is baked into the Command node itself. Larry just reads it and presents it naturally.
15
+ Trigger conditions (which signal surfaces which next step) live in the navigation engine (Phase 91 family) and the cascade hooks (Phase 116/117) -- locally, where the room state is, not in the Brain.
@@ -1,81 +1,24 @@
1
- # Methodology Index -- Command Routing Reference
1
+ # Methodology Index -- Pointer
2
2
 
3
- *All MindrianOS methodology commands. Used for progressive disclosure and framework routing.*
3
+ > Phase 122 (Workflow Layer) replaced the hand-maintained framework-to-command routing table that used to live here. That table drifted (it is the exact drift class the Workflow Layer was built to delete). The authoritative mapping is now generated, CI-checked, and resolved at runtime through one door.
4
4
 
5
5
  ---
6
6
 
7
- ## Infrastructure Commands
7
+ ## Where the framework-to-command mapping lives now
8
8
 
9
- | Command | Description | Default Room |
10
- |---------|-------------|--------------|
11
- | `/mos:new-project` | Start a new venture project -- Larry explores your idea and creates your Data Room | (creates all rooms) |
12
- | `/mos:help` | Larry recommends 2-3 relevant commands based on your room state | (none) |
13
- | `/mos:status` | Room overview, venture stage, gaps, suggested next action | (none) |
14
- | `/mos:room` | View, add, or export Data Room sections | (none) |
9
+ - **Source of truth:** the `frameworks:` key in each `commands/*.md` frontmatter (one place, nothing else asserts it). Contract: `docs/COMMAND-FRONTMATTER.md`.
10
+ - **Generated registry:** `data/command-registry.json` -- built from that frontmatter by `scripts/build-command-registry.cjs`; never hand-edited. A pre-commit tripwire (`build-command-registry.cjs --check`) and the Feynman test runner fail the build on a stale registry or an unresolvable framework name.
11
+ - **The only door at runtime:** `lib/workflow/command-resolver.cjs` (`commandsForFramework(<framework>)`, `composeWorkflow(<framework-chain>)`, `validateChainAutonomy(...)`). Larry never names a `/mos:` command from memory -- every command he surfaces came back from the resolver. If a framework has no command yet, the resolver returns `null` and the answer is "run it manually" (degrade, do not fabricate).
12
+ - **The Brain side:** `lib/brain/chain-recommender.cjs` ranks WHICH frameworks to chain next via the Brain's `FEEDS_INTO` traversal -- framework names + problem-type enums only. Turning a recommended framework into a `/mos:` command is the resolver's job, not the Brain's. Commands NEVER enter the Brain (Canon Part 8). See `docs/WORKFLOWS.md` for the full Brain <-> registry <-> Larry join.
15
13
 
16
- ---
17
-
18
- ## Methodology Commands (26)
19
-
20
- | Command | Description | Default Room |
21
- |---------|-------------|--------------|
22
- | `/mos:beautiful-question` | Reframe your challenge into a question worth answering -- Why / What If / How | problem-definition |
23
- | `/mos:map-unknowns` | Map what you know, don't know, and can't see -- Known/Unknown Matrix | problem-definition |
24
- | `/mos:challenge-assumptions` | Stress-test your assumptions before the market does -- Devil's Advocate | competitive-analysis |
25
- | `/mos:analyze-systems` | Decompose complex systems into layers -- find where leverage lives | solution-design |
26
- | `/mos:leadership` | Leadership coaching -- what kind of leader does your team actually need? | team-execution |
27
- | `/mos:lean-canvas` | Build your business model on one page -- 9 boxes, no fluff | business-model |
28
- | `/mos:systems-thinking` | See feedback loops, stocks, flows, and leverage points in your system | solution-design |
29
- | `/mos:explore-domains` | Map the innovation domains around your venture -- find where fields collide | problem-definition |
30
- | `/mos:structure-argument` | Build a Minto Pyramid -- structure your thinking top-down | problem-definition |
31
- | `/mos:think-hats` | Six Thinking Hats -- explore your problem from 6 perspectives | solution-design |
32
- | `/mos:analyze-needs` | Jobs to Be Done -- discover what progress your customers hire for | market-analysis |
33
- | `/mos:find-bottlenecks` | Reverse Salient -- find the bottleneck holding your system back | solution-design |
34
- | `/mos:build-thesis` | Build an investment thesis -- structure your venture's narrative | financial-model |
35
- | `/mos:grade` | Assess your progress -- get honest feedback on your venture thinking | (all rooms) |
36
- | `/mos:explore-trends` | Trending to the Absurd -- push current trends to their logical extreme | market-analysis |
37
- | `/mos:analyze-timing` | S-Curve analysis -- is the technology ready? Is the market ready? | market-analysis |
38
- | `/mos:scenario-plan` | Map plausible futures and prepare for each | market-analysis |
39
- | `/mos:validate` | Check claims against evidence -- Validation Compass | competitive-analysis |
40
- | `/mos:build-knowledge` | Ackoff's Pyramid -- climb from data to wisdom | problem-definition |
41
- | `/mos:explore-futures` | Oracle -- explore long-range futures and weak signals | market-analysis |
42
- | `/mos:root-cause` | Trace problems to their source -- 5 Whys, Fishbone, and more | problem-definition |
43
- | `/mos:macro-trends` | Identify large-scale shifts affecting your domain | market-analysis |
44
- | `/mos:dominant-designs` | Analyze convergence patterns in your market | competitive-analysis |
45
- | `/mos:user-needs` | Deep dive into user behavior and motivation | market-analysis |
46
- | `/mos:score-innovation` | HSI scoring -- cross-domain innovation opportunity assessment | (all rooms) |
47
- | `/mos:diagnose` | Problem type classification + framework recommendation | (none) |
48
-
49
- ---
50
-
51
- ## Venture Stage Routing
52
-
53
- | Venture Stage | Recommended Commands |
54
- |---------------|---------------------|
55
- | **Pre-Opportunity** | new-project, beautiful-question, explore-domains, explore-trends, map-unknowns |
56
- | **Discovery** | analyze-needs, challenge-assumptions, explore-domains, structure-argument, build-knowledge |
57
- | **Validation** | validate, find-bottlenecks, analyze-timing, map-unknowns, challenge-assumptions |
58
- | **Design** | think-hats, structure-argument, scenario-plan, analyze-systems, systems-thinking, lean-canvas |
59
- | **Investment** | build-thesis, grade, root-cause, build-knowledge, score-innovation |
60
-
61
- ---
62
-
63
- ## Brain-Powered Commands (5)
64
-
65
- *Require Brain MCP connection. Run `/mos:setup brain` to enable.*
66
-
67
- | Command | Description | Default Room |
68
- |---------|-------------|--------------|
69
- | `/mos:suggest-next` | Graph-informed recommendation -- what should you work on next? (Requires Brain) | (none) |
70
- | `/mos:find-connections` | Cross-domain pattern discovery -- what connects to your work? (Requires Brain) | (none) |
71
- | `/mos:compare-ventures` | Who else did something like this -- and what happened? (Requires Brain) | (none) |
72
- | `/mos:deep-grade` | Calibrated venture assessment -- scored against 100+ real projects (Requires Brain) | competitive-analysis |
73
- | `/mos:research` | External web research with Brain cross-reference -- find evidence for your venture (Requires Brain) | market-analysis |
14
+ For a human-readable list of commands with descriptions, see `commands/help.md` (the `/mos:help` surface) or `docs/COMMAND-FRONTMATTER.md`. For the closed-loop picture, see `docs/WORKFLOWS.md`.
74
15
 
75
16
  ---
76
17
 
77
18
  ## Design-by-Analogy Reference Files
78
19
 
20
+ These are reference *data* files (not a framework-to-command map), loaded on demand by the Design-by-Analogy pipeline:
21
+
79
22
  | File | Description |
80
23
  |------|-------------|
81
24
  | `triz-matrix.json` | 39x39 TRIZ contradiction matrix mapping engineering parameter pairs to inventive principles |
@@ -88,10 +31,4 @@ Used by the Design-by-Analogy pipeline (`/mos:find-analogies`) and `enrichContra
88
31
 
89
32
  ## Brain Enhancement
90
33
 
91
- When Brain MCP is connected, methodology commands gain:
92
- - Contextual framework chaining (Brain recommends the perfect next framework)
93
- - Calibrated grading (100+ real student projects)
94
- - Cross-domain pattern matching (21K+ knowledge graph nodes)
95
- - Framework sequencing based on your specific room state
96
-
97
- Without Brain, all commands work using embedded reference definitions.
34
+ When Brain MCP is connected, methodology commands gain contextual framework chaining (the Brain ranks the next framework via `FEEDS_INTO`), calibrated grading (100+ real student projects), and cross-domain pattern matching (21K+ knowledge graph nodes). Without Brain, all commands work using embedded reference definitions. Either way, the framework-to-command mapping comes from the plugin-local `data/command-registry.json` via `lib/workflow/command-resolver.cjs` -- not from the Brain, not from memory.
@@ -90,13 +90,11 @@ RETURN f.name AS available_framework
90
90
 
91
91
  ## Brain-Powered Command Suggestions
92
92
 
93
- Brain has Command nodes linked to Frameworks, VentureStages, SignalTypes. Level 3 intelligence from 100+ real projects.
93
+ **The command for a framework is whatever `command-resolver.commandsForFramework(<framework>)` returns** (`lib/workflow/command-resolver.cjs`, reading the generated `data/command-registry.json`) -- or, if none, "run <framework> manually -- there is no /mos: for it". For a chain, use `composeWorkflow(<framework-chain>)`. **Commands NEVER live in the Brain (Canon Part 8): the Brain holds methodology -- the FEEDS_INTO chains -- and the `recommendFrameworkChain` traversal in `lib/brain/chain-recommender.cjs` carries framework names + problem-type enums only, never a command string, never user content; the plugin-local registry holds the framework-to-command mapping.** Larry never names a `/mos:` from memory. If the resolver returns nothing, the answer is "run <framework> manually".
94
94
 
95
- Query `brain_proactive_command` for ranked suggestions with JTBD framing, trigger conditions, stage impact. Pick top match for current Room Signals. Present via JTBD formula from Command node fields.
95
+ The Brain ranks WHICH frameworks to suggest next (the FEEDS_INTO traversal in `lib/brain/chain-recommender.cjs`); turning a recommended framework into a `/mos:` command is the resolver's job, not the Brain's, not memory. Fallback when the Brain is unreachable: local Room heuristics from the navigation engine + the `larry-personality` skill -- still resolving any command through `lib/workflow/command-resolver.cjs`.
96
96
 
97
- Multi-hop: Room frameworks -> FOLLOWS_FRAMEWORK -> Command -> TRIGGERED_BY_SIGNAL -> Signals -> RELEVANT_AT_STAGE -> Stage
98
-
99
- Fallback: local Room heuristics from larry-personality provoked suggestions.
97
+ See `docs/WORKFLOWS.md` for the full Brain <-> registry <-> Larry join and the Canon Part 8 boundary.
100
98
 
101
99
  ## Delegation
102
100
 
@@ -8,17 +8,19 @@ description: >
8
8
 
9
9
  # PWS Methodology -- Framework Routing
10
10
 
11
- ## Brain-First, References-Fallback
11
+ ## The Resolver Is the Only Door
12
12
 
13
- If Brain is connected, use it for framework suggestions -- it knows room state and recommends contextually. Otherwise, load `references/methodology/index.md` for the command routing index.
13
+ Framework-to-command routing goes through `lib/workflow/command-resolver.cjs` -- the generated `data/command-registry.json` (built from each command's frontmatter, validated against the Brain's framework names). Larry NEVER names a `/mos:` command from memory: every command Larry surfaces came back from the resolver (`commandsForFramework(<framework>)`, or `composeWorkflow(<framework-chain>)` for a sequence). If a framework has no command yet, say so -- "run <framework> manually -- there is no /mos: for it" -- never invent one (degrade, do not fabricate).
14
14
 
15
- ## 26 Methodology Commands
15
+ The Brain still informs WHICH frameworks to chain (the FEEDS_INTO traversal, via `lib/brain/chain-recommender.cjs` `recommendFrameworkChain` -- framework names + problem-type enums only; Canon Part 8: the Brain holds methodology, never commands). The plugin-local registry holds the framework-to-command mapping. When the Brain is unreachable, the resolver still gives framework -> command from the registry; when there is no registry either, fall back to framework-only advice. Each layer fails to a true statement.
16
16
 
17
- All follow the same pattern: thin command file + detailed reference loaded on demand. Each produces structured artifacts filed to the Data Room with user confirmation. Full list: `references/methodology/index.md`.
17
+ ## Methodology Commands
18
+
19
+ All follow the same pattern: thin command file + detailed reference loaded on demand. Each produces structured artifacts filed to the Data Room with user confirmation. The authoritative framework -> command index is `data/command-registry.json` (resolved via `lib/workflow/command-resolver.cjs`); the frontmatter contract is `docs/COMMAND-FRONTMATTER.md`; the closed-loop picture is `docs/WORKFLOWS.md`. (`references/methodology/index.md` is now just a pointer to those -- it no longer hand-maintains a command table.)
18
20
 
19
21
  ## Framework Routing Rule
20
22
 
21
- When Larry recognizes a problem type, apply the methodology through conversation, never by announcing it. The index enables `/mos:help` to recommend commands based on room state.
23
+ When Larry recognizes a problem type, apply the methodology through conversation, never by announcing it. To recommend a command (e.g. for `/mos:help` or `/mos:suggest-next`), resolve the framework through `lib/workflow/command-resolver.cjs` / the generated registry -- never name a `/mos:` from memory.
22
24
 
23
25
  ## Design-by-Analogy (DbA)
24
26