@mindrian_os/cli 1.13.1-beta.2 → 1.13.1-beta.20

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 (3) hide show
  1. package/CHANGELOG.md +140 -5
  2. package/README.md +79 -64
  3. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,3 +1,138 @@
1
+ ## [1.13.1-beta.20] - 2026-06-12
2
+
3
+ ### Added
4
+ - Phase 155 Ignite Flow: `/mos:ignite` front-door orchestrator for new-room onboarding. Three entry doors (Just Talk, directive `--express` / `--from-brief <sha8>`, opportunity promotion), F-selector HITL gate chain (B1 starting point, B2 blueprint approval before any mkdir with embedded nugget routing table, B3 first win), and `navigation.birthRoom()` -- the atomic 7-step birth transaction (scaffold-then-register, 6/6 memory complement incl. FEYNMAN seed + BRAIN derivation enqueue, operator + JTBD transitions, scratchpad gate-answer replay as typed edges, batch confirmNode on approve). onboard / rooms-new / discover / new-project all route into the one front door.
5
+ - `data/room-blueprints.json`: 8 persona blueprint families (exploration / solution-first / problem-first / business-first / portfolio / venture / program / case-study) consumed by the scaffold -- the one-size-fits-all 8-section room is gone; arrival-asset routing picks the family and seeds ROOM.md default_methodologies from the chosen chain.
6
+ - Domain insight sweep (Hooked reward leg): CV/paste -> domains extracted locally -> SIGNAL research on generic domain handles only (research-corpus + 30-day cache reuse) -> cross-domain and sub-domain adjacencies filed as proposed claims + opportunity candidates, surfaced at B3 or right after upload extraction. Adversarial Part 8 egress tripwire test guards the path: CV text never leaves the machine.
7
+ - USER.md convergence: one machine schema across all onboarding surfaces; role_blend populated at room birth for the first time.
8
+
9
+ ### Fixed
10
+ - shallow-doc-parser dead focus write: the upload path called setFocus with wrong arity and invalid setBy, so Phase 115 CV pastes never landed a focus node. Fixed; upload extraction now seeds the local graph as designed.
11
+ - MVA option 2 ("Build a room around this") unstubbed: STUB_MESSAGE_119 replaced by `ignite_from_brief`; the venture_classified receipt nudge points at `/mos:ignite`. The reward-to-room conversion path is whole end to end.
12
+ - CONNECTOR-CONTRACT.md frozen-5 doc drift corrected to the enforced frozen-6 reach bank.
13
+
14
+ ## [1.13.1-beta.18] - 2026-06-12
15
+
16
+ ### Fixed
17
+ - Doctor marketplace-cache drift deadlock (quick-260612-cl7, install-cache family case 8): `checkInstallVersion` is now topology-aware regardless of legacy-dir presence -- on a box with a vestigial `~/.claude/plugins/mindrian-os/` dir plus a live marketplace cache, doctor reports the active root's version and the false CRITICAL drift never forms. When recovery is skipped by design under marketplace-cache topology, doctor records `recoverySkipped`, renders the reason (no more `recovery failed: unknown`), and exits 0 under `--fix`; read-only drift keeps exiting 1 so monitoring signal is preserved.
18
+ - Update checker resolves LATEST from the mindrian-marketplace catalog pin (branch-agnostic `HEAD` ref) instead of main's never-released next-version placeholder -- `/mos:update` and `check-version-and-sha.cjs` stop advertising a beta that does not exist; degraded fallback to main plugin.json is disclosed in REASON when the catalog is unreachable.
19
+ - `/mos:update` changelog fetch anchors on numbered release headings -- users never see the `[Unreleased]` in-progress placeholder during an update (live tester confusion: beta.17-in-progress shown during a beta.16 install).
20
+
21
+ ## [1.13.1-beta.16] - 2026-06-12
22
+
23
+ ### Added
24
+ - Phase 150.8 (meeting micro-knowledge DIKW filing v1): every filed transcript now climbs Ackoff's ladder -- Data (segments) -> Information (typed atomic claims) -> Knowledge (confirmable claims + causal edges) -> Wisdom (`/mos:build-knowledge` renders the typed graph by DIKW rung). `writeClaimNode` truth-claim writer (`lib/core/navigation/typed-claim.cjs`): frozen 6-enum `knowledge_type` (fact / causal / heuristic / anomaly_cue / mental_model / assumption) + `conditions` / `counter_conditions` boundary fields + `valid_from` / `valid_until` temporal validity, all additive JSON properties, minted `proposed` per Canon Part 9.
25
+ - Claimify 4-pass extraction in `/mos:file-meeting` Step 3 (selection -> disambiguation -> decomposition -> typing) with `references/meeting/knowledge-typing.md`; unresolvable referents queue as `ambiguous` claims (never silently dropped) and resurface at SessionStart via `scripts/check-pending-ambiguous.cjs` (mandatory Dismiss, 3-strikes throttle, counts-and-ids-only payload per Part 8).
26
+ - Edge taxonomy amendment (navigator-LOCKED 2026-06-12, canon v1.6 -> v1.7, Appendix D entry 18): `REFINES`, `ROOT_CAUSES`, `INSTANTIATES` join `ALLOWED_EDGE_TYPES` in one atomic lockstep wave (edges.cjs block + floor test + claim-harness C3 arm + canon docs). Meeting claims can now express causal structure as first-class graph edges.
27
+ - Post-filing F.1 selector: three ladder verbs (Review ambiguous / Confirm proposed claims / Build knowledge); the Confirm verb routes through the Phase 129.5 `confirmNode` chokepoint with human `byUser` attribution -- the Knowledge rung is actually confirmable. The cortex-reach-adapter gains an additive `claim` branch so fresh typed claims lift dial reach scores (filing is felt, not just stored).
28
+ - `doctor` class N (silent-disable watchdog): detects the plugin installed-but-disabled state from OUTSIDE the plugin's hook surface -- `npx @mindrian_os/cli doctor` flags it CRITICAL with the exact `claude plugin enable` recovery command (install-cache family case 7; RCA plugin-silent-disable-after-cc-self-upgrade).
29
+
30
+ ### Fixed
31
+ - Phase 150.6 (drift-fix sweep, from the 2026-06-11 Fable 5 full drift audit): Larry's agent/skill prose corrected to shipped facts (6 reach-ids, SENS-01..08, Phase 144 engine flip SHIPPED -- Larry stops under-claiming his own engine every session); npm description + docs point at the live `@mindrian_os/cli` (dead `@mindrian_os/install` deprecated ON the registry); `docs/THE-BRAIN.md` fictional 7-tool table replaced with the real 6 (incl. `brain_ask`); ONE Brain number set across all four surfaces (27,804 nodes incl. 12,401 MethodologyChunk substrate / 19,987 rels / 12,413 Pinecone vectors, live read 2026-06-11, Appendix D entry 16); `/mos:help` drops deprecated `visualize`, surfaces shipped `discover` + `memory-cortex-reach`; `venture_classified` scalar emission un-deadens the Phase 119 receipt nudge (Part 8: boolean + enum only); workspace-guard paths repointed to `~/dev/MindrianOS-Plugin`; F.7 dial renders the declared tri-context Decision Gate header (navigator-LOCKED, SKILL.md:257 glyph collision resolved); Action Footers added to `doctor`/`memory`; pre-commit installer dead-guard bug fixed (guards spliced before the terminal exit 0).
32
+
33
+ ### Changed
34
+ - GATE-0 verdict (consumed by 150.8): the intelligence cascade fires FILE-LEVEL ONLY on meeting artifacts; extraction is the segmentation authority (`SEGMENT_AUTHORITY` contract in intelligence-cascade.cjs). Frozen contracts byte-unchanged throughout both phases: MAX_K=3, DIAL_REACH_K=6, 0.70/0.15, the 6-reach bank. Canon now at v1.7.
35
+
36
+ ## [1.13.1-beta.14] - 2026-06-10
37
+
38
+ ### Fixed
39
+ - Phase 150.5 (sensor turn-contract repair + atomic dial render coupling, SEED-021): the 5 structurally dead production sensors fire again -- `lib/core/insight-sensors.cjs` gains `normalizeTurn` + `deriveTurnSignals` + `SIGNAL_FRESHNESS_MS`; `dispatchSensors` normalizes ONCE at entry (text aliased from userText; signals derived freshness-gated from the two shipped LOCAL side-channels: `last-cascade.json` newFindings -> `artifact_filed`, auto-explore markers -> `first_material`); the caller turn is never mutated. Root cause found by the 2026-06-09 8-agent prior-art fan-out: the hook builds `{userText, sectionPath, sessionId}` while five sensors read `turn.text`/`turn.signals` -- fire_skill stayed null, routing_source never flipped, the dial never rendered for any real navigator.
40
+ - Atomic dial emission (DIAL-ATOM-01): `renderEngineDecisionWithDial` threads the AskUserQuestion contract through the SEED-020 single construction door (`selector-dispatcher.appendAskUserQuestionTrailer`, now a top-level export) so dial text + card contract emit together on the engine arm -- never text-only; a render fault writes a `dial_render_note` into the persisted decision trace instead of vanishing (closes the Phase 140 D-03 silent-failure class at this seam); claim-c2 C2-seen now asserts contract presence, not just the text substring.
41
+ - WR-01 (code review): `isFreshFile` requires non-negative age, so a future-dated side-channel (WSL2/Windows-mount clock skew, archive extraction, backup restore) can never read as fresh indefinitely.
42
+
43
+ ### Added
44
+ - ACPT-06: `doctor --dogfood-acceptance` is now a SIX-leg gate -- the new leg proves a real sensor fires from the production-shaped turn and that dial text + card contract emit atomically (honest-negative: the legacy arm emits neither). `tests/run-all-150.5.sh` is the one-command phase gate (both new suites + ACPT-06 + the D-03a fence + the carried run-all-144/146/150 aggregators).
45
+ - D-01 (navigator-LOCKED 2026-06-09): the HYBRID sensor-fired cold card -- tier-0/cold turns render the dial WITH the live card when a sensor fired; a genuinely cold room stays silent (no dead chrome). The always-interactive surface stays Phase 154's cockpit. larry-personality gains the anti-mimicry doctrine line (no card, no picture).
46
+
47
+ ### Changed
48
+ - Frozen contracts byte-unchanged and fence-proven: MAX_K=3, DIAL_REACH_K=6, the 0.70/0.15 recommend gate, the 6-reach bank, the 3 postures. Zero Brain egress delta (derived signals are closed-enum kind strings from LOCAL fs only).
49
+
50
+ ## [1.13.1-beta.12] - 2026-06-09
51
+
52
+ ### Added
53
+ -
54
+
55
+ ## [1.13.1-beta.10] - 2026-06-08
56
+
57
+ The LARRYREACH connector-spine milestone closes: the Phase-143 sensor spine went from zero consumers to fully wired across all 114 surfaces, the navigation engine flips routing_source legacy->engine on a fired reach, and the loop-fires acceptance gate is GREEN.
58
+
59
+ ### Added
60
+ - Connector Spine + Intelligence Orchestrator (Phase 143.3): the self-extending connector contract -- a `connector:` frontmatter schema (docs/CONNECTOR-CONTRACT.md), a generated `data/connector-registry.json` + generator (scripts/build-connector-registry.cjs) + a `--check` CI tripwire, and `skills/intelligence-orchestrator/SKILL.md`, the first consumer of dispatchSensors that reads the registry (never a hardcoded table). Any skill/command/agent joins the wiring by declaring its connector. Generalizes Phase 122 from the command edge to the whole reach spine.
61
+ - /mos:discover (Phase 143.4): a Larry-led six-movement client + product + JTBD discovery command -- the first product command authored to ride the connector spine -- producing a Discovery Brief + scaffolded room and bridging to plain-language messaging via MOSDeckEngine. Ports the client-discovery-interview skill into the repo.
62
+ - Larry operates + pushes (Phase 143.2): larry-personality gains the Operating-the-Dial + Reading-routing_source doctrine, six proactive PUSH push-lines (each under an existing reach + sensor, each ending at a Decision Gate), conversation-mode as the Shape F.1 lane-picker mapped to Ackoff DIKW, mullins-scaffold Brain-driven cross-framework folders + Ackoff traversal, and ui-system Shape F.7.
63
+ - Scheduled Sensor Activation (Phase 145): the scout suite + whitespace/reverse-salient/opportunity/competitor sensors fire on a session-start-throttled cadence (cron + Cowork scheduled-tasks paths), gated behind the Phase-140 safe-auto-fire guard. Zero Brain egress.
64
+ - Connector retrofit sweep (Phase 144.1): the generator now walks agents/ as well as commands/ + skills/; all spine-eligible commands, skills, and the 9 agents declare connectors; an exhaustive 114-surface coverage gate proves every surface is wired-or-explicitly-allow-listed (53 wired + 61 allow-listed, zero unclassified).
65
+ - Loop-fires acceptance gate (Phase 146): `doctor --dogfood-acceptance` + `tests/run-all-146.sh` prove the wired loop FIRES end-to-end (ACPT-01..05) across the full connector surface, not a sample. Exit 0 means the milestone ships as "Larry Reaches".
66
+
67
+ ### Changed
68
+ - Navigation engine (Phase 144, NAV-01): decide() (lib/core/navigation-engine.cjs) consumes the dispatchSensors spine; a fired reach flips routing_source from legacy to engine. The prompt-side orchestrator (143.3) and the engine-side decide() (144) coexist one-reach-per-beat.
69
+
70
+ ### Fixed
71
+ - commands/jtbd.md now declares its `frameworks:` so it resolves via the command resolver; RETRO-05 connector prereqs (leadership frontmatter, value-proposition drift, structure-argument + challenge-assumptions framework keys, deep-grade Write gap).
72
+
73
+ ## [1.13.1-beta.8] - 2026-06-05
74
+
75
+ First PUBLISHED release of the v1.13.1 "Larry Reaches" work -- consolidates the unreleased beta.5 through beta.7 entries below into one shipped beta (beta.4 was the last version users could install).
76
+
77
+ ### Added
78
+ - Local retrieval spine: getRoomContext() fuses room-home summary + windowed session fragments + graph-ranked neighborhood, seeded by the last ~2 turns; re-exported via the navigation chokepoint; per-turn assembly benchmarked ~1ms against the 1200ms budget. Closes the conversation-to-retrieval loop -- the per-turn hot path no longer forwards userText:null, and the seed stays on the LOCAL lane (Canon Part 8).
79
+ - Capability dial committed to HEAD + the LARRY-04 Hierarchical Navigator doctrine: 5 stable reach ids + 3 stable posture ids (push_forward, hold, pull_back), grounded in the Usher division (the tool reaches; the navigator decides). Framework-led deep research ships as committed doctrine only.
80
+ - FILEVAL read-back filing: typed research/decision evidence files to the local graph and is read-back-validated -- a filing that did not land is surfaced, not swallowed.
81
+ - Sentinel and scout hardening (Phase 140).
82
+
83
+ ### Fixed
84
+ - BUG-01: build-graph-from-sqlite line-53 ReferenceError (lazygraphPath -> roomDbPath); the graph export no longer crashes.
85
+
86
+ ## [1.13.1-beta.7] - 2026-06-05
87
+
88
+ Phase 141 "Larry Reaches" execution step 1: commit the Capability Dial doctrine and the LARRY-04 Hierarchical Navigator to HEAD. This lifts the previously uncommitted dial out of working-tree limbo (D-06 hard ordering) and lays the prompt-layer contract -- 5 reach ids + 3 posture ids -- that Phase 143 keys off. The deep-research reach ships as committed doctrine only (DRSCH-01..04 satisfied at the doctrine level; no executable plumbing). Later Phase 141 plans (getRoomContext, FILEVAL, BUG-01) append to this same entry. Ships as a beta first per release-process.md.
89
+
90
+ ### Added
91
+ - **The Capability Dial is committed to HEAD with `canon_parts: [Part 2, Part 3, Part 8, Part 9]` frontmatter (LARRY-01).** The dial's 5-reach GUIDED-default trigger map (Context Block, contradiction surface, cross-room reach, Brain consult, framework-led deep research) plus Reach rules 1-6 were prose-only in the working tree; they are now tracked doctrine. The deep-research 5th reach row and Reach rule 6 ship as DRSCH doctrine only -- no executable deep-research plumbing in this phase (D-01).
92
+ - **5 stable machine-readable reach ids (LARRY-03, D-05):** `context_block`, `contradiction`, `cross_room`, `brain_consult`, `deep_research`. A drift test (`tests/test-reach-ids-drift.cjs`) asserts the reach bank is EXACTLY these five so the Phase 143 dial-TUI label composer and orchestrator key off a frozen set.
93
+ - **The LARRY-04 Hierarchical Navigator doctrine (D-11/12/13).** A net-new prompt-layer section that grounds both dials in the Usher division -- the tool owns Usher steps 1-2 (perceive + set the stage = the reach = the Capability dial); the human owns steps 3-4 (the act of insight + critical revision). The posture is the bidirectional Usher traversal, encoded as 3 stable posture ids `push_forward` / `hold` / `pull_back` (drift test `tests/test-posture-ids-drift.cjs` asserts exactly three plus the Aronhime quotes). Quotes Prof. Aronhime verbatim ("the insight belongs to you; the reach belongs to the tool"; "reach matters more than raw intelligence"; "restraint is the product working correctly"). Doctrine only in 141; executable sensors (Phase 143) and the navigation engine (Phase 144) defer.
94
+ - **Reach rule 7 (dial arbitration, D-13).** The two dials are two dimensions of ONE decision cycle (CoALA), not two captains: the Capability dial evaluates first, the reach result sets the posture, the Ask-Tell dial sets intensity within it. The user is the only helm (Human-in-Command + AI-in-the-loop). Names the "Reasoning-Action Disconnect" anti-pattern alongside "two captains, one ship"; posture and filing never change silently.
95
+
96
+ ### Changed
97
+ - **Version bumped to 1.13.1-beta.7** in `.claude-plugin/plugin.json` and `package.json` in lockstep with this CHANGELOG entry. The git tag and marketplace publish remain human-gated per release-process.md and are NOT performed by this commit.
98
+
99
+ ## [1.13.1-beta.6] - 2026-06-05
100
+
101
+ Phase 140 sentinel + instrumentation hardening. The five Phase 140 fixes (HARD-01..05) repair the scheduled-scout safety path and the instrumentation surfaces that fed it: the sentinel no longer aborts on a zero-edge snapshot, HSI-to-graph edges now land in a Phase-109-migrated room.db, backup directories stop polluting HSI / reverse-salient results, query-efficiency telemetry records instead of logging 0, and phase deadlines surface as DUE instead of CLEAR. These are user-visible sentinel behavior changes, so they ship in lockstep per release-process.md. Ships as a beta first (release infrastructure always betas before promotion).
102
+
103
+ ### Fixed
104
+ - **HARD-01: sentinel-health-check no longer aborts under `set -euo pipefail` on a zero-edge snapshot.** A `grep -c` returning a two-line `0\n0` (or empty) numeric capture was fed straight into `$(( ))`, tripping the strict-mode arithmetic abort and killing the scheduled scout before it ran. A `sanitize_int` helper (`head -1` + `tr -dc '0-9'` + default 0) now coerces every numeric capture to a single-line integer before arithmetic, so a zero-edge room can no longer take down the sentinel.
105
+ - **HARD-02: HSI-to-graph node inserts now land in a Phase-109-migrated room.db.** Four bare three-column node-write sites violated the Phase-109 nodes-provenance NOT NULL contract (`source_path` / `created_by` / `created_at` / `last_seen_at`), so edges failed with `NOT NULL constraint failed: nodes.source_path`. All four sites now route through one shared NOT-NULL-safe helper (`lib/core/node-insert.cjs::insertNode`) that detects the live schema via `PRAGMA table_info(nodes)` and is safe on both the migrated and un-migrated schema.
106
+ - **HARD-03: HSI and reverse-salient scanners now exclude `.heal-backup/`.** Both independent walkers (`compute-hsi.py` and `rs-engine.py`) crawled the heal backup directory, so backup-dir duplicates polluted HSI and reverse-salient results. `.heal-backup` is now in both independent `SKIP_DIRS` sets. Per the locked decision D-04, only `.heal-backup` was added; no general dot-dir ignore-list was introduced.
107
+ - **HARD-04: query-efficiency telemetry now records all turns instead of logging 0.** The PostToolUse hook (`scripts/query-efficiency-telemetry.cjs`) early-returned on any turn that did not carry a `/mos:` command context, but nothing in the repo ever set that signal, so the telemetry JSONL logged 0 events. The hook now writes a JSONL line for every Read/Grep/Glob turn in a resolvable room; the tool, room, and tokens-used gates are unchanged. The eight-field event shape is preserved (`command` defaults to `''`), so the Canon Part 8 scalar-only invariant holds with no new field and no network surface.
108
+ - **HARD-05: deadline monitor now reads `.planning/STATE.md` phase deadlines.** The monitor scanned only `funding/` and `opportunity-bank/`, so phase deadlines always read CLEAR. It now also scans `.planning/STATE.md` (resolved via a `PLANNING_STATE_FILE` env seam, else repo root), reusing the existing `portable_date_to_epoch` parser and the `epoch == 0` skip guard, and pushes a distinct `phase`-source alert through the existing report path.
109
+
110
+ ### Changed
111
+ - **The scout HSI-to-graph step no longer swallows write failures** (D-03). The previous `2>/dev/null || true` masked a failed graph write; it is replaced by an `if/fi` that surfaces stderr and prints a degraded-step advisory while staying non-fatal, so a silent edge-write failure can no longer hide.
112
+ - **The scout telemetry aggregator gained a `--mos-only` population filter** (D-01a). The published "up to 57x" efficiency claim is defined against the `/mos:` command population; relaxing the telemetry gate to all turns (HARD-04) changes the denominator, so `scripts/scout-telemetry-aggregator.cjs --mos-only` restricts the median / top-5 / threshold-status to `/mos:` turns while the default reports the honest all-turns view. `RELEASE_GATE_THRESHOLD_X` is unchanged at 40; both views always coexist so the published number is never silently redefined.
113
+
114
+ ### Release-gate note (57x claim)
115
+ - **The release gate MUST run `node scripts/scout-telemetry-aggregator.cjs --mos-only` when consuming the "up to 57x" claim before tagging.** Reading the bare all-turns median (relaxed by HARD-04) as the claim's evidence would understate efficiency and could trigger a spurious RETUNE; the claim's denominator is the `/mos:` command population. The claim language itself ("up to 57x") does not change as a result of the gate relaxation -- it remains `/mos:`-specific and measurable via `--mos-only`. Any README / CHANGELOG copy rewrite is a deferred release-process follow-up (140-57X-CLAIM-RECONCILIATION.md), not performed here.
116
+
117
+ ## [1.13.1-beta.4] - 2026-06-04
118
+
119
+ Phase 139 doctor hotfix: stop doctor from scaffolding room artifacts in the wrong directory, and convert its frozen Phase-95 check roster into a version-accumulative engine skeleton. Proven end-to-end by shipping Umbilical Cord as the first registered module. Ships as a beta first per release-process.md (release infrastructure always betas before promotion).
120
+
121
+ ### Fixed (S1 -- doctor WHERE fix + OBS-2 closure)
122
+ - **Doctor no longer mis-scaffolds room artifacts in non-room directories.** Doctor used to guess its target by walking up from `process.cwd()`; run from `~/dev/<repo>` or `~/decks` it found no room and either no-oped or spuriously flagged, and a residual write-ordering gap (OBS-2) let `.mindrian/` + `heal-log.json` land in a rejected target before the guards fired. Fix: one single resolver `lib/core/resolve-umbilical-target.cjs` (precedence `.umbilical` cord -> `.room-root` sentinel -> registry.active) now backs doctor's only cwd-derived target and SKIPS when it resolves to null, and the heal zero-write floor from a non-room cwd is locked by regression test (zero room-artifact writes from a non-room dir). The codebase has been bitten twice by N-independent target guessers; this resolver is one module from day one and all doctor target-resolution routes through it.
123
+
124
+ ### Added (S2 -- accumulative engine skeleton)
125
+ - **Doctor's frozen Phase-95 class roster becomes a forward-healing engine.** A hand-maintained module registry (`data/doctor-modules.json`), doctor's OWN never-regressing applied-through watermark (`~/.mindrian/doctor-applied.json`), and a semver selector (`runAccumulativeEngine` in `scripts/doctor.cjs`) that runs each registered module whose `introduced_version` falls in the `(applied_through, running]` window, idempotently. From this release forward every new Mindrian version can register its own health/migration module and any user on any prior version is healed forward when they run doctor. Doctor keeps its own watermark and never depends on `~/.mindrian-last-version` (session-start overwrites that early). Generalizes the proven `install-state.cjs::migrateIfNeeded` + `deployment-surfaces.json` patterns (Canon Part 7 reuse-before-build); re-running is a no-op.
126
+
127
+ ### Added (S3 -- Umbilical Cord as module #1)
128
+ - **A `.umbilical` marker in a non-room project projects exactly one `AFFILIATED_WITH` edge into the corresponding room.db.** Cords are authoritative at the registry layer and projected into each room.db as LOCAL edges (Canon Part 8: no raw cross-room edges, zero Brain egress). The first registered accumulative-engine module (`lib/core/doctor/umbilical-module.cjs`) reads the marker, projects the edge via the reused `edges.cjs::writeEdge` chokepoint (idempotent UPSERT), and integrity-checks cord-marker bidirectionality (orphan / removed-marker / unprojected). `--fix` SUGGESTS orphan cords for human confirmation but never auto-creates one; edge properties are enum-only (`relation`, `born`) and freeform `note:` text never reaches the edge.
129
+
130
+ ### Added (S4 -- release wiring + module-registration gate)
131
+ - **`release.sh` Step 6.6a verifies the module registry before the tag lands.** For every entry in `data/doctor-modules.json` it asserts the runner file exists, `introduced_version` is valid semver, and `introduced_version <= NEW_VERSION` (a module cannot claim to be introduced in a future version); HARD ABORT with the same rollback semantics as the surrounding Step 6.6 acceptance gate. The umbilical module's `introduced_version` is reconciled to `1.13.1-beta.4` (the exact version this hotfix ships), so the selector's window math ties the module to the version that introduced it. `tests/test-139-acceptance.cjs` runs the whole S1-S4 chain green in one shot as the phase release gate.
132
+
133
+ ### Changed
134
+ - **`ALLOWED_EDGE_TYPES` gains `AFFILIATED_WITH`** (additive; the floor test asserts all prior members are preserved and the set stays frozen).
135
+
1
136
  ## [1.13.1-beta.2] - 2026-06-02
2
137
 
3
138
  ### Fixed (release: marketplace catalog advertised the dev next-bump)
@@ -303,7 +438,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
303
438
 
304
439
  - **Cache pruning on update (Phase 123 Plan-05 -- HARNESS-123-13).** `lib/core/cache-prune.cjs` keeps the active version + N=2 most recent `<pluginsDir>/cache/<marketplace>/mos/<version>/` dirs; NEVER deletes the active (belt-and-suspenders -- the active is unconditionally in the keep-set regardless of mtime); skips entirely if `installed_plugins.json` is missing, unparseable, or has no `mos@mindrian-marketplace` entry. Runs in `scripts/session-start` on version change (best-effort, `|| true`) AND in `scripts/doctor.cjs::performClassJFix` unconditionally on `--fix`. Hermetic Wave-0 test `tests/test-cache-prune.cjs` (6/6) green. (`lib/core/cache-prune.cjs` [new], `scripts/session-start`, `scripts/doctor.cjs`, `tests/test-cache-prune.cjs` [new].)
305
440
 
306
- - **Phase 123 Plan-07 -- single Brain-key resolver + positive session-start status (HARNESS-123-15 + HARNESS-123-16).** Three independent Brain-key lookups (`brain-client.cjs::getApiKey`, `scripts/session-start`'s shell test of `MINDRIAN_BRAIN_KEY`, the `brain-connector` skill's detection order) are collapsed into one source of truth, `lib/core/resolve-brain-key.cjs`. The resolver mirrors `lib/core/active-plugin-root.cjs`'s shape (`{ key, source, available, reason }`) and order (env -> `~/.mindrian.env` -> CWD `.env` -> not-found, the D-31 precedence); SEC-02 POSIX `0o077` permission rejection routes through an explicit `reason` string -- never a silent null. `brain-client.cjs::getApiKey()` is now a one-liner delegating to the resolver (the previous inline 3-path lookup is gone; the docstring is fixed; `Authorization: Bearer` at L218 + L279 and the `BRAIN_REQUEST_TIMEOUT_MS` / `AbortSignal.timeout` / memoized `schema()` / `async function ask` precondition are all upstream of this and untouched). `scripts/session-start`'s Brain block (~L1290-1313) replaces the pre-Plan-7 MCP-centric WARN that tested only the shell env var with a positive 3-case status line: `Brain: HTTP client active (mindrian-brain.onrender.com)` when the key resolves; `Brain: NOT loaded -- permissions too open: ... (run: chmod 600 ~/.mindrian.env)` when SEC-02 rejects; `Brain: not configured (Tier 0)` when nothing is found. The `brain-connector/SKILL.md` Detection section gains a new step 0 (HTTP-path detection via the resolver) and a CLI row in the Tool Names table. `commands/setup.md`'s `~/.mindrian.env` write is now followed by `chmod 600` (SEC-02 fix; no-op on Windows). `install.sh` is annotated -- it does NOT write `~/.mindrian.env` today; if a future code path adds a write, it MUST chmod 600 the file. `docs/install/BRAIN-SETUP.md` and `.env.brain.template` state Bearer-only explicitly and surface the `https://mindrianos.vercel.app/brain-access` request URL + `MINDRIAN_BRAIN_URL` override. Wave-0 hermetic test `tests/test-resolve-brain-key.cjs` (9 scenarios -- env wins / mindrian-env wins over CWD / CWD fallback / not-found / SEC-02 reject / Canon Part 8 grep / getApiKey delegation / brain-client preconditions / FLAG-3 home-default structural assertion) all green; registered in `lib/memory/run-feynman-tests.cjs`. (`lib/core/resolve-brain-key.cjs` [new], `lib/core/brain-client.cjs`, `scripts/session-start`, `skills/brain-connector/SKILL.md`, `commands/setup.md`, `install.sh`, `docs/install/BRAIN-SETUP.md`, `.env.brain.template`, `tests/test-resolve-brain-key.cjs` [new], `lib/memory/run-feynman-tests.cjs`, `lib/memory/security-trifecta.test.cjs`.)
441
+ - **Phase 123 Plan-07 -- single Brain-key resolver + positive session-start status (HARNESS-123-15 + HARNESS-123-16).** Three independent Brain-key lookups (`brain-client.cjs::getApiKey`, `scripts/session-start`'s shell test of `MINDRIAN_BRAIN_KEY`, the `brain-connector` skill's detection order) are collapsed into one source of truth, `lib/core/resolve-brain-key.cjs`. The resolver mirrors `lib/core/active-plugin-root.cjs`'s shape (`{ key, source, available, reason }`) and order (env -> `~/.mindrian.env` -> CWD `.env` -> not-found, the D-31 precedence); SEC-02 POSIX `0o077` permission rejection routes through an explicit `reason` string -- never a silent null. `brain-client.cjs::getApiKey()` is now a one-liner delegating to the resolver (the previous inline 3-path lookup is gone; the docstring is fixed; `Authorization: Bearer` at L218 + L279 and the `BRAIN_REQUEST_TIMEOUT_MS` / `AbortSignal.timeout` / memoized `schema()` / `async function ask` precondition are all upstream of this and untouched). `scripts/session-start`'s Brain block (~L1290-1313) replaces the pre-Plan-7 MCP-centric WARN that tested only the shell env var with a positive 3-case status line: `Brain: HTTP client active (mindrian-brain.onrender.com)` when the key resolves; `Brain: NOT loaded -- permissions too open: ... (run: chmod 600 ~/.mindrian.env)` when SEC-02 rejects; `Brain: not configured (Tier 0)` when nothing is found. The `brain-connector/SKILL.md` Detection section gains a new step 0 (HTTP-path detection via the resolver) and a CLI row in the Tool Names table. `commands/setup.md`'s `~/.mindrian.env` write is now followed by `chmod 600` (SEC-02 fix; no-op on Windows). `install.sh` is annotated -- it does NOT write `~/.mindrian.env` today; if a future code path adds a write, it MUST chmod 600 the file. `docs/install/BRAIN-SETUP.md` and `.env.brain.template` state Bearer-only explicitly and surface the `https://mindrian-os.com/brain-access` request URL + `MINDRIAN_BRAIN_URL` override. Wave-0 hermetic test `tests/test-resolve-brain-key.cjs` (9 scenarios -- env wins / mindrian-env wins over CWD / CWD fallback / not-found / SEC-02 reject / Canon Part 8 grep / getApiKey delegation / brain-client preconditions / FLAG-3 home-default structural assertion) all green; registered in `lib/memory/run-feynman-tests.cjs`. (`lib/core/resolve-brain-key.cjs` [new], `lib/core/brain-client.cjs`, `scripts/session-start`, `skills/brain-connector/SKILL.md`, `commands/setup.md`, `install.sh`, `docs/install/BRAIN-SETUP.md`, `.env.brain.template`, `tests/test-resolve-brain-key.cjs` [new], `lib/memory/run-feynman-tests.cjs`, `lib/memory/security-trifecta.test.cjs`.)
307
442
 
308
443
  ### Fixed
309
444
 
@@ -312,7 +447,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
312
447
  - **`scripts/release.sh:40`'s `IFS='.' read -r MAJOR MINOR PATCH`** mangled pre-release versions (`PATCH=0-beta` from `1.13.0-beta.11`), which is why beta.10 / 11 / 12 were hand-rolled and beta.13 is the first `release.sh`-cut pre-release. Replaced with `semver.inc()` (Plan 123-01).
313
448
  - **`scripts/doctor.cjs:40`'s hardcoded `INSTALL_DIR = ~/.claude/plugins/mindrian-os/`** was the `MODULE_NOT_FOUND` source on marketplace-only installs (the disease that surfaced Bug 7). NEW code (class I + class J + new wire-ins) resolves via `resolveActivePluginRoot()`; `INSTALL_DIR` is preserved for existing class A but no longer the source of truth for new code (Plan 123-03).
314
449
  - **`scripts/session-start:419`'s `~/.mindrian-last-version` write inside the cold-start `else` branch** never fired on a session WITH an active room -- which is why room-sessions read stale (Pitfall 7). The new install-state record block writes it unconditionally as the single writer in earliest steps; the line-419 write is removed; the line-101 read of the PREVIOUS value is preserved for the transition banner (Plan 123-02).
315
- - **`commands/setup.md:145`'s stale URL `mindrianos-jsagirs-projects.vercel.app/brain-access`** -> `mindrianos.vercel.app/brain-access` (Plan 123-05; reaffirmed Plan 123-07).
450
+ - **`commands/setup.md:145`'s stale URL `mindrianos-jsagirs-projects.vercel.app/brain-access`** -> `mindrian-os.com/brain-access` (Plan 123-05; reaffirmed Plan 123-07).
316
451
  - **Brain client CHANGELOG prose softened** -- the client currently calls `mindrian-brain.onrender.com`; `brain.mindrian.ai` is the future host; `MINDRIAN_BRAIN_URL` overrides either (Plan 123-07).
317
452
  - **`scripts/release-beta-smoke.sh`** retired -- hard-pinned to a stale Phase-89.6 artifact `EXPECTED_VERSION="1.11.0-beta.1"`; `doctor --acceptance --pre-tag` supersedes it (Plan 123-04).
318
453
  - **`brain-client.cjs::getApiKey()` precedence** -- was env -> CWD `.env` -> `~/.mindrian.env`; now (via the resolver delegation) env -> `~/.mindrian.env` -> CWD `.env` per D-31. Deliberate: on a maintainer's machine the home file is the canonical key, the CWD file is project-local override (Plan 123-07).
@@ -323,7 +458,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
323
458
  ### Changed
324
459
 
325
460
  - **`data/deployment-surfaces.json`** added -- hand-maintained static manifest; 6 surfaces; reuses the `data/` layout convention from Phase 122 but NOT the generator/`--check` pattern (this file isn't derived from anything; nothing to `--check` it against). Schema extension in Plan-03: optional `path_within_file` field on `exact-value` surfaces points at a JSON sub-field (e.g. `statusLine.command` inside `settings.json`); class-J's `exact-value` check extracts via that path before comparing.
326
- - **`docs/install/BRAIN-SETUP.md`** + **`.env.brain.template`**: state explicitly that auth is `Authorization: Bearer <key>` only (NOT `x-api-key`); surface the `https://mindrianos.vercel.app/brain-access` URL in the no-key fallback (Plan 123-07).
461
+ - **`docs/install/BRAIN-SETUP.md`** + **`.env.brain.template`**: state explicitly that auth is `Authorization: Bearer <key>` only (NOT `x-api-key`); surface the `https://mindrian-os.com/brain-access` URL in the no-key fallback (Plan 123-07).
327
462
  - **`docs/CANON-PHASE-MAP.md`**: Phase 123 mapped under **Part 6** (dog-fooding the install lifecycle -- one record + one manifest + one command + one release script; the plugin's own install state honors the plugin's canon) and **Part 7** (reuse justification -- ~90% of Phase 123 extends shipped code; net-new files are `data/deployment-surfaces.json`, `lib/core/resolve-brain-key.cjs`, `lib/core/cache-prune.cjs`, the per-class fixtures) (Plan 123-06 Task 4).
328
463
  - **`@mindrian_os/cli` -> `@mindrian_os/install` doc/test sweep** -- forward-facing references across `docs/install/PACKAGING-PATHS.md`, `tests/manual/95.6-windows-cold-install-acceptance.md`, `tests/test-release-npm-gate.sh`, `docs/INSTALL-LIFECYCLE-HARNESS.md` (lines 91/104/124), plus older `@mindrian/os` mentions in `[private case archive]`, `docs/UI-UX-CONVERGENCE-2026-05-10/04-REVERSE-SALIENT-INSTALL.md`, `[private tester archive]`, `docs/testers/outbox/2026-05-07-gary-laben-welcome.md`. Historical CHANGELOG entries stay as the historical record. After the sweep, `grep -rln "@mindrian_os/cli" docs/install/ commands/ tests/test-*.sh scripts/release.sh` returns nothing (Plan 123-05).
329
464
 
@@ -2768,7 +2903,7 @@ onboard_steps:
2768
2903
 
2769
2904
  ### Fixed
2770
2905
 
2771
- - **Wiki template empty-artifacts bug.** `/mos:snapshot` exports and other presentation generator outputs were producing sections with `sec.artifacts = []`, so clicking any section in the wiki sidebar showed no article content. The template at `templates/presentation/wiki.html` was designed to consume artifact data the generator at `scripts/generate-presentation.cjs` `collectSections` never populated. Reported by Lawrence Aronhime (lawrence@mindrian.ai) on 2026-04-13 23:23 after he built a same-night workaround on his own machine by injecting artifact content directly into `ROOM_DATA`. The bug had been sitting in `collectSections` since v1.9.6 (2026-04-11) and survived eight subsequent releases (v1.9.7, v1.9.8, v1.9.9, v1.10.0, v1.10.2, v1.10.3, v1.10.4) because nothing touched that file across those eight releases.
2906
+ - **Wiki template empty-artifacts bug.** `/mos:snapshot` exports and other presentation generator outputs were producing sections with `sec.artifacts = []`, so clicking any section in the wiki sidebar showed no article content. The template at `templates/presentation/wiki.html` was designed to consume artifact data the generator at `scripts/generate-presentation.cjs` `collectSections` never populated. Reported by Lawrence Aronhime (lawrence@mindrian-os.com) on 2026-04-13 23:23 after he built a same-night workaround on his own machine by injecting artifact content directly into `ROOM_DATA`. The bug had been sitting in `collectSections` since v1.9.6 (2026-04-11) and survived eight subsequent releases (v1.9.7, v1.9.8, v1.9.9, v1.10.0, v1.10.2, v1.10.3, v1.10.4) because nothing touched that file across those eight releases.
2772
2907
 
2773
2908
  ### Added
2774
2909
 
@@ -2802,7 +2937,7 @@ Upgrade path: standard two-command `/plugin marketplace update` followed by `cla
2802
2937
 
2803
2938
  ### Credit
2804
2939
 
2805
- Bug reported by Lawrence Aronhime (lawrence@mindrian.ai) on 2026-04-13 23:23. Lawrence has been running beta builds since v1.9.x and holds the lawrence@mindrian.ai admin Brain API key issued 2026-03-26. He built a same-night workaround on his own machine by injecting artifact data directly into `ROOM_DATA`, then filed the bug for the rest of the beta cohort. Eight releases shipped between his report and this fix. Thank you, Lawrence.
2940
+ Bug reported by Lawrence Aronhime (lawrence@mindrian-os.com) on 2026-04-13 23:23. Lawrence has been running beta builds since v1.9.x and holds the lawrence@mindrian-os.com admin Brain API key issued 2026-03-26. He built a same-night workaround on his own machine by injecting artifact data directly into `ROOM_DATA`, then filed the bug for the rest of the beta cohort. Eight releases shipped between his report and this fix. Thank you, Lawrence.
2806
2941
 
2807
2942
  ## [1.10.4] - 2026-04-14
2808
2943
 
package/README.md CHANGED
@@ -1,99 +1,63 @@
1
1
  <div align="center">
2
- <img src="https://mindrianos-jsagirs-projects.vercel.app/logo_dark.svg" alt="MindrianOS" width="200" />
2
+ <img src="https://mindrian-os.com/logo_dark.svg" alt="MindrianOS" width="200" />
3
3
 
4
4
  # MindrianOS
5
5
 
6
- **When you are walking through a problem worth solving and you cannot yet name what is missing, MindrianOS is the thinking partner that walks beside you.**
6
+ **Talk to Larry. The room writes itself.**
7
+
8
+ A thinking partner that sits above your AI. You talk through a problem worth solving. Larry finds the real problem before you solve the wrong one, brings the right method at the moment you need it, pushes back when your confidence outruns your evidence, and turns the conversation into a structured room that remembers every decision and catches what you missed.
7
9
 
8
10
  Powered by PWS (Problems Worth Solving), an innovation methodology built and tested through 20 years of teaching by Prof. Lawrence Aronhime.
9
11
  Engineered by Jonathan Sagir.
10
12
 
11
- [![Version](https://img.shields.io/badge/v1.13.0-The_Closed_Loop-1E3A6E)](CHANGELOG.md)
13
+ [![Version](https://img.shields.io/badge/version-1.13.1--beta-1E3A6E)](CHANGELOG.md)
12
14
  [![License](https://img.shields.io/badge/license-BSL_1.1-C8A43C)](LICENSE)
13
15
  [![Works on](https://img.shields.io/badge/CLI_+_Desktop_+_Cowork-2D6B4A)](#three-surfaces)
14
16
 
15
- [Website](https://mindrianos-jsagirs-projects.vercel.app) ·
16
- [Marketplace](https://github.com/jsagir/mindrian-marketplace) ·
17
- [Brain Access](https://mindrianos-jsagirs-projects.vercel.app/brain-access)
17
+ [Website](https://mindrian-os.com) &middot;
18
+ [Marketplace](https://github.com/jsagir/mindrian-marketplace) &middot;
19
+ [Brain Access](https://mindrian-os.com/brain-access)
18
20
  </div>
19
21
 
20
22
  ---
21
23
 
22
24
  ## The answer first
23
25
 
24
- > When you talk to Larry about what you are working on, MindrianOS turns the conversation into a structured room, remembers your decisions across sessions, and surfaces the contradictions you would otherwise miss.
25
-
26
- You do not learn a tool. You talk. The room takes shape underneath the conversation. Whatever you said yesterday is still working for you today.
27
-
28
- ---
29
-
30
- ## How it works (in three pieces)
31
-
32
- ### Larry is the thinking partner
33
-
34
- Larry is the AI you talk to. Larry asks the questions that reframe the problem before you try to solve it, suggests the method that fits where you are, and files what you say into your room without making you stop to organize. You do not have to know the framework names. You describe what you are doing. Larry routes you.
35
-
36
- ### The Data Room is your venture made legible
37
-
38
- Every conversation, every meeting, every decision lands in a folder structure organized by venture stage: the problem, the market, the solution, the team, the money, the IP, the meetings, the opportunities. You open it in your file manager. You back it up like any other folder. You own it.
26
+ > You do not operate MindrianOS. You talk to Larry. Larry is the thinking partner; the room is the receipt. Every conversation reframes the problem before you solve it, sequences the right framework for where you are, pushes back when your confidence outruns your evidence, and leaves behind a structured room that remembers every decision so nothing you learned is lost.
39
27
 
40
- ### The room surfaces what you cannot see
41
-
42
- Every time you add something new, the system compares it against everything already there. Larry tells you what just changed. What contradicts what. What connects to what. What is now missing. What you stopped checking weeks ago.
43
-
44
- You decide: APPROVE, REJECT (with a reason), or DEFER. The reason becomes part of the room. The next scan is smarter.
28
+ You never learn a tool. You talk. The room takes shape underneath the conversation. Commands exist, but they are internals, and Larry routes you to them when they help. Whatever you said yesterday is still working for you today.
45
29
 
46
30
  ---
47
31
 
48
- ## What v1.13.0 changed (The Closed Loop)
49
-
50
- Before this release, MindrianOS could file your work and surface intelligence, but the loop did not always close. You would say something, the system would react, and nothing carried forward. v1.13.0 closes the loop:
51
-
52
- - **Larry leads turn one.** The first thing you see is a conversation, not a command menu.
53
- - **Your first sentence becomes a room.** Type a venture sentence, get a 30-second brief and a populated room before you have to commit anything else.
54
- - **Tensions persist across sessions.** Larry remembers what was unresolved and brings it back when relevant.
55
- - **Every conversation produces an artifact.** A first session leaves you with a real room, not an empty wizard.
56
- - **Decisions teach the system.** Your approvals, your rejections, your reasons become part of the room's working memory.
32
+ ## Four jobs it does for you
57
33
 
58
- Currently shipping as `v1.13.0-beta.19`. Final `v1.13.0` is imminent.
34
+ - **Find the problem.** Larry reframes what you are working on before you try to solve it, so you spend your effort on the real problem, not the first one you saw.
35
+ - **Show what you missed.** Every new entry is compared against everything already in the room. Contradictions, gaps, and cross-project connections surface on their own.
36
+ - **Build what you could not alone.** The right framework at the right stage, chained intelligently, across more domains than one mind can hold at once.
37
+ - **Defend what you decided.** Every decision and the reason behind it becomes working memory you can stand behind weeks later.
59
38
 
60
39
  ---
61
40
 
62
- ## What you do in a session
63
-
64
- Talk. Type a command when you know the shortcut. Let Larry teach you when you do not.
65
-
66
- ```bash
67
- /mos:new-project # tell Larry what you are exploring
68
- /mos:beautiful-question # reframe the problem before solving it
69
- /mos:analyze-needs # who has this problem, how badly, what they have tried
70
- /mos:lean-canvas # one-page business model
71
- /mos:file-meeting # paste a transcript, Larry files it
72
- /mos:opportunities # what grants match this room right now
73
- /mos:query "what is the weakest assumption in my financial model?"
74
- /mos:grade # honest assessment against real ventures
75
- ```
76
-
77
- You do not have to memorize these. Describe what you are trying to do. Larry routes you.
41
+ ## How it works (three pieces)
78
42
 
79
- ---
43
+ ### Larry is the product
80
44
 
81
- ## Why the room compounds
45
+ Larry is the AI you talk to, and the conversation is the whole surface. Larry asks the questions that reframe the problem before you try to solve it, brings the method that fits where you are, and files what you say into your room without making you stop to organize. You do not have to know any framework names. You describe what you are doing. Larry routes you. There is nothing else to learn.
82
46
 
83
- Most tools get messier the more you put in. Search ranks worse. Folders bloat. The AI forgets what you told it last session. MindrianOS goes the other way.
47
+ ### The room is the receipt
84
48
 
85
- The mechanism is plain. Everything you say to Larry, every meeting you file, every decision you make and reason you give becomes part of your room. The room is searchable, structured, and remembered. Every NEW entry compares against everything already there.
49
+ You talk; the room writes itself. Every conversation, every meeting, every decision lands in a folder structure organized by venture stage: the problem, the market, the solution, the team, the money, the IP, the meetings, the opportunities. You open it in your file manager. You back it up like any other folder. You own it. You never filed a thing.
86
50
 
87
- Day one, you have a folder.
51
+ ### The room surfaces what you cannot see
88
52
 
89
- Day thirty, you have a folder that catches the contradiction between yesterday's strategy call and last week's customer interview, because nothing about either was forgotten. Larry brings back the assumption you made in week two when you are about to make a decision in week eight that depends on it. The room finds the connection between two meetings that happened a month apart that nobody remembers being related.
90
-
91
- Nothing forgets. Everything compares. Your own past work works for you.
53
+ Every time you add something new, the system compares it against everything already there. Larry tells you what just changed, what contradicts what, what connects to what, and what is now missing. You decide: APPROVE, REJECT (with a reason), or DEFER. The reason becomes part of the room. The next scan is smarter.
92
54
 
93
55
  ---
94
56
 
95
57
  ## Install
96
58
 
59
+ Built for people who have never opened a terminal. Full walkthrough at [the install guide](https://mindrian-os.com/docs/install).
60
+
97
61
  ### npm (one line, recommended)
98
62
 
99
63
  ```bash
@@ -126,9 +90,42 @@ A note on install prompts: Claude Code asks you to approve each shell command. 1
126
90
 
127
91
  ---
128
92
 
93
+ ## What you do in a session
94
+
95
+ Talk. That is the whole interface. You describe what you are trying to do, and Larry routes you.
96
+
97
+ The commands below are internals. You never have to memorize them or type them. Larry reaches for them on your behalf. They are here for the times you already know the shortcut and want it.
98
+
99
+ ```bash
100
+ /mos:new-project # tell Larry what you are exploring
101
+ /mos:beautiful-question # reframe the problem before solving it
102
+ /mos:analyze-needs # who has this problem, how badly, what they have tried
103
+ /mos:lean-canvas # one-page business model
104
+ /mos:file-meeting # paste a transcript, Larry files it
105
+ /mos:opportunities # what grants match this room right now
106
+ /mos:graph "what is the weakest assumption in my financial model?"
107
+ /mos:grade # honest assessment against real ventures
108
+ ```
109
+
110
+ If you do not know which one to run, that is the normal case. Just talk.
111
+
112
+ ---
113
+
114
+ ## Why the room compounds
115
+
116
+ Most tools get messier the more you put in. Search ranks worse. Folders bloat. The AI forgets what you told it last session. MindrianOS goes the other way.
117
+
118
+ Think of Larry as a thinking partner who also keeps the minutes, and reads them back to you when this week contradicts last week. Everything you say, every meeting you file, every decision you make and reason you give becomes part of your room. The room is searchable, structured, and remembered, and every new entry compares against everything already there.
119
+
120
+ Day one, you have a folder. Day thirty, you have a folder that catches the contradiction between yesterday's strategy call and last week's customer interview, brings back the assumption you made in week two when you are about to make a decision in week eight that depends on it, and finds the connection between two meetings a month apart that nobody remembers being related.
121
+
122
+ Nothing forgets. Everything compares. Your own past work works for you.
123
+
124
+ ---
125
+
129
126
  ## Three surfaces
130
127
 
131
- MindrianOS works wherever Claude works.
128
+ MindrianOS works wherever Claude works. Same Larry, same room, every surface.
132
129
 
133
130
  | Surface | What it gives you |
134
131
  |---------|-------------------|
@@ -138,6 +135,22 @@ MindrianOS works wherever Claude works.
138
135
 
139
136
  ---
140
137
 
138
+ ## The Brain (optional)
139
+
140
+ The Brain is a shared teaching graph that connects your findings across projects. It holds two stores: one for connections, one for meanings. Connecting it makes Larry sharper. Not connecting it is fine; the pedagogy is intrinsic to Larry, so the system still teaches you.
141
+
142
+ The Brain never sees your room. Brain queries carry methodology questions only, never your notes, never your decisions, never your meetings.
143
+
144
+ Request access: [mindrian-os.com/brain-access](https://mindrian-os.com/brain-access)
145
+
146
+ ---
147
+
148
+ ## Pricing
149
+
150
+ Free plugin. It requires a paid Claude plan (Claude Pro, $20/mo, or higher) because it runs on top of Claude. The Brain is an optional add-on.
151
+
152
+ ---
153
+
141
154
  ## The privacy line
142
155
 
143
156
  MindrianOS reads your workspace and writes only to your rooms (default: `~/MindrianRooms/`) and to session state (`./.mindrian/`). It does not push anything to the Brain. Brain queries carry methodology questions only, never your notes, never your decisions, never your meetings.
@@ -150,21 +163,23 @@ For zero permission prompts during a session: `claude --dangerously-skip-permiss
150
163
 
151
164
  PWS (Problems Worth Solving) is not a checklist. It is a way of thinking about ventures as wicked problems that need to be reframed before they can be solved, and that demand a working memory because nobody can hold the whole thing in their head.
152
165
 
153
- Larry is the personality that delivers PWS in your terminal. The teaching is intrinsic. You do not have to know the framework names. Larry asks the question, suggests the move, shows the chain. You decide.
166
+ Larry is the personality that delivers PWS in your terminal, and the teaching is intrinsic. You do not have to know the framework names. Larry asks the question, suggests the move, shows the chain. You decide.
154
167
 
155
168
  ---
156
169
 
157
170
  ## Links
158
171
 
159
- - **Website**: [mindrianos-jsagirs-projects.vercel.app](https://mindrianos-jsagirs-projects.vercel.app)
172
+ - **Website**: [mindrian-os.com](https://mindrian-os.com)
160
173
  - **Marketplace**: [github.com/jsagir/mindrian-marketplace](https://github.com/jsagir/mindrian-marketplace)
161
174
  - **Changelog**: [CHANGELOG.md](CHANGELOG.md)
162
- - **Brain Access**: [Request API Key](https://mindrianos-jsagirs-projects.vercel.app/brain-access)
175
+ - **Brain Access**: [Request API Key](https://mindrian-os.com/brain-access)
163
176
  - **PWS, Prof. Lawrence Aronhime**: [LinkedIn](https://www.linkedin.com/in/lawrence-aronhime-8363894/)
164
177
  - **Jonathan Sagir**: [LinkedIn](https://www.linkedin.com/in/jonathansagir/)
165
178
 
166
179
  ---
167
180
 
181
+ Install MindrianOS. Start thinking with Larry.
182
+
168
183
  ## License
169
184
 
170
185
  Source-available (BSL 1.1), not open source. Copyright Jonathan Sagir and PWS / Mindrian.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mindrian_os/cli",
3
- "version": "1.13.1-beta.2",
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).",
3
+ "version": "1.13.1-beta.20",
4
+ "description": "Install MindrianOS into Claude Code with one command -- `npx @mindrian_os/cli`. 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",
7
7
  "parity": "node lib/parity/check-parity.cjs",