@mindrian_os/cli 1.15.3-beta.24 → 1.15.3-beta.28

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 +191 -2
  2. package/README.md +2 -2
  3. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,16 +1,205 @@
1
+ ## [1.15.3-beta.28] - 2026-07-18
2
+
3
+ ### Added
4
+
5
+ - **Eureka: killed two distinct causes of unusable portfolio-scan output, plus a warm-cache
6
+ MCP path.** Live-verified on two independently-chosen real rooms
7
+ (`aion-eureka-synergy`, `iia-deeptech-centers`), not just fixture-green.
8
+
9
+ - **Seam 2 (statement-metadata gap, RESOLVED).** Every entity-entity Opportunity Statement
10
+ was rendering the literal placeholder text "unknown x unknown approach to a unknown x
11
+ unknown cross-domain bridge" instead of a real mechanism. Root cause: Phase 218 wired
12
+ entity nodes (company/technology/market) into the 215 opportunity-statement pipeline but
13
+ patched only the `title` slot for that node class, leaving `section`/`primary_problem`/
14
+ `problems`/`shared_problems` falling through to content-node defaults entity nodes
15
+ structurally can't satisfy. Fixed in `lib/core/eureka/room-native-substrate.cjs`: the
16
+ entity-node branch now inherits `section` from its already-shipped `DESCRIBES` edge to its
17
+ source memory_artifact (55/56 entities have one; pure composition over an existing edge,
18
+ sibling of the prior title fix), with an `entityType` fallback for the remainder, plus a
19
+ relation-edge-typed bridge label (`competes-with`/`uses-component`/`supplies-to`) in
20
+ `scripts/eureka-portfolio-report.cjs` instead of the generic phrase. 22/25 -> 0/25
21
+ "unknown x unknown" statements on both proving rooms.
22
+ - **Seam 3 (candidate-generation gap, RESOLVED).** Real content was getting ranked against
23
+ its own containing section (`problem-definition` x `problem-definition`) because `Section`
24
+ container nodes -- the room's own top-level folder nodes -- were admitted as pairing
25
+ candidates. The critic already had a correctly-firing rejection tag for this
26
+ (`domain_swap_invariant`) but nothing upstream excluded these pairs before they consumed
27
+ ranked-list slots. Fixed with an additive either-endpoint `Section` exclusion at the same
28
+ generation-layer insertion point the 260715-0nj scaffold-pair fix established (Reuse
29
+ Before Build), with an honest `container_pairs_excluded` counter surfaced in provenance.
30
+ 1,575 degenerate pairs (9.8% of the candidate set) excluded on `iia-deeptech-centers`;
31
+ proven a true no-op on `aion-eureka-synergy` (0 Section nodes there) by output diff, not
32
+ by assertion.
33
+ - **New: `eureka-run`/`eureka-status`/`eureka-report` on the `intelligence` MCP router
34
+ tool.** Calls the same governed dispatcher (`scripts/eureka-command.cjs` `main(argv)`)
35
+ in-process instead of spawning a fresh child process per call, so
36
+ `embedding-spine.cjs`'s existing module-level encoder cache stays warm across scans on
37
+ the Phase 198 resident daemon (spiked: same-process call 2 is 0ms vs. call 1's 179ms,
38
+ unmodified cache mechanism). Transport-gated per call: in-process on the http resident
39
+ daemon; detached child on stdio, since `process.stdout` is the JSON-RPC framing channel
40
+ there and the scan writes progress to stdout. Registered on the `intelligence` tool's
41
+ enum only, outside the 65-command CLI/MCP parity array (mirrors the `eureka_critic`
42
+ precedent). `/mos:eureka`'s CLI behavior and output contract are unchanged (verified
43
+ byte-identical).
44
+
45
+ Flagged, deliberately out of scope for this pass: Seam 1 (entity-extraction noise --
46
+ generic-noun and near-duplicate entities still reach the ranker on `aion-eureka-synergy`,
47
+ tracked separately) and a newly-observed WhitespaceZone-dominated pairing pattern on
48
+ `iia-deeptech-centers` (AHP composite doesn't differentiate a room where ~87% of nodes are
49
+ whitespace hypotheses) -- both real, both future work, neither papered over.
50
+
51
+ - **Phase 230: MindrianOS Skill Fleet Optimization -- the harness for testing whether
52
+ MindrianOS's own 124 skills trigger correctly and stay quiet when they shouldn't.**
53
+ Two workstreams. WS1 (trigger-accuracy, all 124 skills): per-family eval-query generation
54
+ exploiting sibling near-misses, a roster-wide judge funnel (one call scores a query against
55
+ all 124 skill descriptions at once, catching competitive collisions isolated per-skill
56
+ grading structurally cannot see), flagged skills escalate to a real live trigger-test loop
57
+ with train/validation-gated description revision. WS2 (code-quality, the ~59 script/
58
+ workflow-backed skills -- the design estimated ~10-20, the real inventory came in ~3x
59
+ higher, disclosed rather than silently re-scoped): adversarially-verified review
60
+ (Refute-or-Promote) with a deterministic evidence-quote anchor so a fabricated finding
61
+ cannot reach the report. Live-smoke-tested end to end on a 13-skill human-approved
62
+ calibration set (`scripts/skillopt-*.cjs`, `lib/core/skillopt-schemas.cjs`,
63
+ `tests/run-all-230.sh`, 9 deterministic legs): the real Skill-fire detector proved correct
64
+ in both directions on fresh live captures (it turned out MindrianOS's own `mos:` skills
65
+ fire via an MCP tool call, not Claude Code's native Skill tool -- caught before anything
66
+ was built on the wrong assumption), and WS2 independently re-discovered the real
67
+ `check-card-fire.cjs` over-enforcement defect (see Fixed, below) with zero false positive
68
+ on a known-clean control. The smoke calibration gate itself came in under tolerance (30%
69
+ agreement vs. an 85% bar) -- accepted as informative, not blocking, since most of the gap
70
+ is real full-roster collisions a human's isolated pre-labels couldn't see plus one disclosed
71
+ query-labeling bug; the reconciliation (fix the labeling bug, re-run smoke) is tracked as
72
+ SEED-061, not silently dropped. **The full 124-skill fleet run and any multi-agent
73
+ Workflow-tool orchestration are explicitly deferred behind a future opt-in -- this release
74
+ ships the harness, not a fleet run.** Nothing was ever written to a real `SKILL.md` or
75
+ script; every proposed change surfaces in a human-approved report only.
76
+
77
+ ### Fixed
78
+
79
+ - **`check-card-fire.cjs` no longer force-fires the Decision-Gate card on plain prose with no
80
+ actual gate.** Two independent over-fire mechanisms, logged three times across 12 days
81
+ (2026-07-05, 2026-07-11, 2026-07-17) before being root-caused against a live 17-record
82
+ intercept-log replay: (1) the backstop's bare numbered-prose detector had a 7/7
83
+ false-positive rate in the logged evidence and zero true catches -- retired outright,
84
+ genuine ASCII-box degrades stay caught by the separate bracket-arm detector, unchanged;
85
+ (2) the primary registry-gated path fired on `ran_entries` alone, which a side-channel
86
+ session-key/TTL union bled into every turn for roughly 10 minutes regardless of relevance
87
+ -- now requires a confirmed, non-empty gate-subject plus relevance against that real
88
+ subject. Verified against all 7 real logged firings (0/7 re-fire) plus the full
89
+ card-fire-specific suite (11/11 + 27 assertions). Trade-off, disclosed not hidden: a lone
90
+ genuine numbered-prose fork no longer force-fires at the hook level and now depends on the
91
+ model's own Phase-210/SEED-021 judgment -- the same trust boundary the existing
92
+ under-firing watch (`feedback_false_success_silent_skip_gates_academy_testers.md`) already
93
+ tracks from the opposite direction.
94
+ - **Per-session room binding no longer re-prompts every turn after a real bind.** The MCP
95
+ `room_bind` tool wrote the session's binding state keyed by the actual Claude session UUID;
96
+ the CLI `UserPromptSubmit` hook read it keyed by `process.env.CLAUDE_SESSION_ID`, which is
97
+ unset in that hook's execution context, so it silently fell back to a
98
+ `sha256(roomDir+day)` hash key that never matched -- confirmed with an exact hash-vs-
99
+ on-disk-filename proof, not inferred. The hook now reads the real session id from its own
100
+ stdin payload first. This also un-breaks Phase 225's zero-score gate (SEED-039), which
101
+ shared the same key-mismatch root and was never separately regressed -- just never covered.
102
+ - **The reach/navigation dial no longer offers a topically-unrelated room or claim with no
103
+ relevance check.** `cross_room` was a permanent member of the reach candidate bank, always
104
+ offered in a cold room's top-3 regardless of what the live conversation was actually about,
105
+ filtered only by advisory instruction text the model had to apply itself. A structural
106
+ relevance gate (`lib/hmi/reach-relevance-gate.cjs`) now suppresses off-topic candidates by
107
+ token overlap against the live turn before they're ever offered; `cross_room` also no
108
+ longer "borrows from itself" (filling its own room-name slot with the current room).
109
+
110
+ ## [1.15.3-beta.26] - 2026-07-16
111
+
112
+ ### Added
113
+ - **Phase 227: Ignite / mode-select timing across turns 1-4 (SEED-060).** The session-start
114
+ mode-selection Decision Gate (Just Talk / Explore+Capture / Build a Room) gets a structural,
115
+ advisory-only backstop: a new `doctor.cjs` check class (`lib/core/mode-select-sidechannel.cjs`
116
+ + `lib/core/doctor/mode-select-checkpoint-module.cjs`) detects a silent skip (the gate neither
117
+ firing a card nor stating a default) and warns, never blocks, never re-fires the gate itself.
118
+ A systemic sweep of methodology skills for the same loose-description auto-fire bypass that
119
+ let `trending-to-absurd` reach for itself on a casual remark before its 2026-06-24 fix found
120
+ and closed 3 trivial instances inline (`MOSDeckEngine`, `client-discovery-interview`,
121
+ `mullins-scaffold`), with the rest reported and explicitly deferred. A scripted regression
122
+ test (`tests/test-227-frontdoor-restraint.cjs`) now proves the front-door restraint fix holds
123
+ without needing a live human tester re-run. `skills/larry-personality/SKILL.md` names ignite
124
+ for the first time and documents the gate's timing with real Hooked-Model (Fogg B=MAP / TARI)
125
+ reasoning: the gate is a Prompt, not an Investment, fired only when the navigator's opener
126
+ does not already signal a lane. `conversation-mode`'s Mode 3 (Build a Room) now routes through
127
+ ignite's Directive/`--express` path instead of calling `/mos:new-project` directly, correctly
128
+ reserving Gate B1's four-door persona pick for sessions that genuinely have not yet
129
+ established a role or venture. Same-day code review (independently re-verified, not
130
+ self-certified) caught and fixed two real defects before this landed: Mode 3's routing text
131
+ originally claimed established context unconditionally even on a cold direct pick with zero
132
+ prior exchange, and the mode-select "card-fired" recorder was wired against text no live code
133
+ path actually renders through `pickShape()`. Both closed at the design level in this same
134
+ pass (independently re-verified: 8/8 + 4/4 tests pass, both diffs re-read after landing),
135
+ not patched around the symptom.
136
+
137
+ - **Phase 229: HUJI Pitch Feedback Module (IN PROGRESS, 8/9 plans -- not yet shipped).**
138
+ MindrianOS's first paying job: turn each student's diarized 5-minute pitch transcript into
139
+ one Minto-structured formative feedback artifact, batch-orchestrated across 200+ submissions
140
+ at a $4-5/unit cost ceiling, local-only scoring (Brain read-only, generic handles per Canon
141
+ Part 8). Built so far: the evidence/feedback zod schemas plus generated JSON Schema
142
+ (`229-01`); a labeled test-inventory harness and `run-all-229.sh` aggregator (`229-02`);
143
+ deterministic code checks covering quote verification, recall, drift, schema validation,
144
+ similarity, cost, and Part-8 hygiene (`229-03`); the `PWS_grading` recipe with a
145
+ score-and-continue rubric (`229-04`); a Stage A intake adapter porting the Claims-Aware
146
+ Fusion Mode A pipeline (`229-05`); an LLM judge spawner with a calibration protocol that
147
+ fails closed below a 0.7 anchor-hygiene bar (`229-06`); and a single-submission runner plus
148
+ batch orchestrator with pool/ledger/resume/retry and G1-G6 per-unit guardrails (`229-07`,
149
+ `229-08`). Not yet shipped: `229-09`, the mandatory demo run and human verdict checkpoint
150
+ this whole pipeline is gated on before any real submission gets scored -- per this project's
151
+ own standing rule, judge accuracy and calibration are a human-verify bar, never
152
+ self-certified.
153
+
1
154
  ## [1.15.3-beta.24] - 2026-07-16
2
155
 
3
156
  ### Added
4
- -
157
+ - No discrete feature completed exactly at this tag. This pre-release snapshot captured
158
+ in-progress work on Phase 227 (the mode-select firing checkpoint, sweep, and Mode 3 routing
159
+ work) and Phase 229 (the HUJI Pitch Feedback Module's Stage A intake adapter) mid-flight,
160
+ neither phase-complete at cut time. Phase 227's full, finished feature set is recorded once
161
+ under `[Unreleased]` above rather than split and duplicated across the interim tags it
162
+ happened to span.
5
163
 
6
164
  ## [1.15.3-beta.22] - 2026-07-16
7
165
 
8
166
  ### Added
9
- -
167
+ - No discrete feature completed exactly at this tag either, for the same reason as beta.24:
168
+ a pre-release snapshot mid-flight through Phase 227 (the skill-description sweep landed
169
+ here) and Phase 229 (PWS_grading recipe + score-and-continue rubric work).
10
170
 
11
171
  ## [1.15.3-beta.20] - 2026-07-16
12
172
 
13
173
  ### Added
174
+ - **Backfilled here (this changelog under-documented this tag at cut time): five phases that
175
+ actually shipped in this release window.**
176
+ - **Phase 222 (reach-ranking-unification).** The three surfaces that suggest a next move
177
+ (`/mos:suggest-next`, the reach-candidates list, and the auto-fire engine) now always
178
+ agree on the top pick instead of occasionally diverging, and the ranking improves over
179
+ a room's own accept/reject history rather than staying static.
180
+ - **Phase 223 (jtbd-driven-intelligence-pipeline, governed bono).** `/mos:bono` is now an
181
+ 8-phase governed research debate with Six-Thinking-Hats-style scrutiny (the Black hat
182
+ must disconfirm first, the White hat must cite-or-retract) and three explicit navigator
183
+ approval pauses (topic, hypothesis, ruling) instead of one collapsed confirmation. New
184
+ `/mos:intel-pipeline` command runs a staged research pipeline oriented on the room's
185
+ active JTBD (calibrate -> decompose -> fan out -> compute -> synthesize -> close), pausing
186
+ for approval twice and disclosing a thin fan-out pass rather than silently proceeding.
187
+ - **Phase 224 (graph-derivation-harness, SEED-034).** Every markdown write to a room now
188
+ enqueues and background-derives typed graph edges, closing the previously twice-reconfirmed
189
+ 0-typed-edge gap on the write path -- no manual "derive" step required.
190
+ - **Phase 225 (per-session-room-binding, SEED-039).** Session-to-room binding now correctly
191
+ supports multi-room binds. Fixed during code review: a binding answer was silently
192
+ collapsing a multi-room selection down to a single room regardless of what was picked.
193
+ - **Phase 226 (eureka-reasoning-mode-fallback, SEED-058).** When the local embedding encoder
194
+ is unavailable, `/mos:eureka` now degrades to a labeled, lower-confidence REASONING MODE
195
+ result (a real short ranked list with an honest caveat naming the degrade cause) instead of
196
+ a hard `pairs_scored: 0` dead end. `banked` is structurally `false` on every reasoning-mode
197
+ row; a later healthy re-run over the same room surfaces the reasoning-to-embedded delta
198
+ instead of silently replacing the earlier result. Same-day code review found and fixed
199
+ three real data-loss edge cases in the upgrade-delta path before this shipped (a repeated
200
+ degrade could silently overwrite a completed reasoning report with no trace; a stale
201
+ session file could let a later healthy run get clobbered; reseeding could silently orphan
202
+ an in-progress judging session).
14
203
  - **Eureka entity extraction gets a two-tier WHAT-vs-WHY classifier.** A free, fully local
15
204
  embedding pass (`lib/core/eureka/embedding-classifier.cjs`) now resolves the confident
16
205
  majority of candidates at zero API spend, reusing the same encoder Eureka's own ranking
package/README.md CHANGED
@@ -10,7 +10,7 @@
10
10
  Powered by PWS (Problems Worth Solving), an innovation methodology built and tested through 20 years of teaching by Prof. Lawrence Aronhime.
11
11
  Engineered by Jonathan Sagir.
12
12
 
13
- [![Version](https://img.shields.io/badge/version-1.15.1--beta.1-1E3A6E)](CHANGELOG.md)
13
+ [![Version](https://img.shields.io/badge/version-1.15.3--beta.26-1E3A6E)](CHANGELOG.md)
14
14
  [![License](https://img.shields.io/badge/license-BSL_1.1-C8A43C)](LICENSE)
15
15
  [![Works on](https://img.shields.io/badge/CLI_+_Desktop_+_Cowork-2D6B4A)](#three-surfaces)
16
16
 
@@ -128,7 +128,7 @@ The commands below are internals. You never have to memorize them or type them.
128
128
  /mos:grade # honest assessment against real ventures
129
129
  ```
130
130
 
131
- That is a slice of 110 commands across 14 skills and 9 agents. If you do not know which one to run, that is the normal case. Just talk: Larry reaches for the right one.
131
+ That is a slice of 111 commands across 124 skills and 9 agents. If you do not know which one to run, that is the normal case. Just talk: Larry reaches for the right one.
132
132
 
133
133
  ---
134
134
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mindrian_os/cli",
3
- "version": "1.15.3-beta.24",
3
+ "version": "1.15.3-beta.28",
4
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",