@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.
- package/CHANGELOG.md +191 -2
- package/README.md +2 -2
- 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
|
-
[](CHANGELOG.md)
|
|
14
14
|
[](LICENSE)
|
|
15
15
|
[](#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
|
|
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.
|
|
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",
|