instar 1.3.871 → 1.3.873
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/dist/core/stallCoverageValidator.d.ts +116 -0
- package/dist/core/stallCoverageValidator.d.ts.map +1 -0
- package/dist/core/stallCoverageValidator.js +582 -0
- package/dist/core/stallCoverageValidator.js.map +1 -0
- package/dist/data/stall-classes.d.ts +77 -0
- package/dist/data/stall-classes.d.ts.map +1 -0
- package/dist/data/stall-classes.js +141 -0
- package/dist/data/stall-classes.js.map +1 -0
- package/dist/monitoring/AutonomousLivenessReconciler.d.ts +3 -0
- package/dist/monitoring/AutonomousLivenessReconciler.d.ts.map +1 -1
- package/dist/monitoring/AutonomousLivenessReconciler.js +56 -1
- package/dist/monitoring/AutonomousLivenessReconciler.js.map +1 -1
- package/dist/monitoring/DuplicateSessionReconciler.d.ts +4 -0
- package/dist/monitoring/DuplicateSessionReconciler.d.ts.map +1 -1
- package/dist/monitoring/DuplicateSessionReconciler.js +56 -0
- package/dist/monitoring/DuplicateSessionReconciler.js.map +1 -1
- package/package.json +1 -1
- package/scripts/stall-class-codemod.mjs +121 -0
- package/src/data/builtin-manifest.json +2 -2
- package/src/data/stall-classes.ts +173 -0
- package/upgrades/1.3.872.md +28 -0
- package/upgrades/1.3.873.md +30 -0
- package/upgrades/side-effects/duplicate-safety-outcome-linked-soak.md +82 -0
- package/upgrades/side-effects/stall-coverage-matrix-pr-a.md +153 -0
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# Side-Effects Review — framework-stall-coverage-matrix PR-A
|
|
2
|
+
|
|
3
|
+
**Change:** PR-A of the framework-stall-coverage-matrix standard (spec:
|
|
4
|
+
`docs/specs/framework-stall-coverage-matrix.md`, converged 2026-07-18, approved by
|
|
5
|
+
Justin 2026-07-18 10:29 PDT, topic 29723). Ships: the canonical class registry
|
|
6
|
+
(`src/data/stall-classes.ts`), the matrix validator module, the CI ratchet test in the
|
|
7
|
+
whole-tree push suite, the offline-first class-registry codemod
|
|
8
|
+
(`scripts/stall-class-codemod.mjs`), seed matrices for all four
|
|
9
|
+
`IntelligenceFramework` members (`docs/frameworks/*-stall-coverage.md`), evidence
|
|
10
|
+
tests for claude-code covered rows, and the STANDARDS-REGISTRY.md entry. PR-B
|
|
11
|
+
(runtime gate wiring, acceptance/override machinery, `stall-matrix-live-check` job)
|
|
12
|
+
is the second staged PR per the spec's staged-landing plan — tracked by the spec
|
|
13
|
+
itself, not an ambient deferral.
|
|
14
|
+
|
|
15
|
+
## Phase 1 principle check (recorded)
|
|
16
|
+
|
|
17
|
+
Does this change involve a decision point? **Partially — and deliberately only the
|
|
18
|
+
invariant half.** The validator performs structural validation exclusively:
|
|
19
|
+
front-matter parse, status-token legality, class-list completeness, symbol/evidence
|
|
20
|
+
existence + containment, charset/format checks, calendar aging arithmetic. The spec's
|
|
21
|
+
own "Decision points touched" table classifies these as `invariant`, and
|
|
22
|
+
`docs/signal-vs-authority.md` explicitly exempts hard-invariant validation at the
|
|
23
|
+
system boundary from the signal-vs-authority pattern. Every judgment call the
|
|
24
|
+
standard contains — whether a `covered` claim is TRUE, acceptance of declared
|
|
25
|
+
gaps/N-A reasons, class minting — is routed to a human authority (overseer /
|
|
26
|
+
dashboard-PIN acceptance) by the spec, and NONE of that machinery ships in PR-A. The
|
|
27
|
+
validator emits per-row `mechanically-verified: presence-only` so no downstream
|
|
28
|
+
surface can present `covered` as proven.
|
|
29
|
+
|
|
30
|
+
## 1. Over-block
|
|
31
|
+
|
|
32
|
+
The CI ratchet fails pushes when a matrix is missing, malformed, incomplete, or
|
|
33
|
+
carries dead symbols/evidence. Legitimate inputs it could wrongly reject:
|
|
34
|
+
|
|
35
|
+
- A refactor renaming a detector symbol reds the matrices citing it. This is BY
|
|
36
|
+
DESIGN (matrices cannot rot), and the fix is one line in the matrix in the same
|
|
37
|
+
PR. Named in the failure message.
|
|
38
|
+
- A test file moved out of the push suite's effective collected set invalidates
|
|
39
|
+
evidence citing it — also by design (evidence no runner executes proves nothing).
|
|
40
|
+
- Future-dated `seededAt` is rejected — cannot stall the aging clock. A machine with
|
|
41
|
+
a badly skewed clock could reject a legitimately-seeded same-day row; bounded by
|
|
42
|
+
using date-only granularity (UTC) and accepting `seededAt <= today`.
|
|
43
|
+
- Mitigation for all: failure messages name the class id + rule; the ratchet
|
|
44
|
+
test's assertion message names the one-command fix (run the codemod) for the
|
|
45
|
+
class-growth case and "update the named matrix row" otherwise. No runtime
|
|
46
|
+
behavior is gated in PR-A, so an over-block costs a red push, never a
|
|
47
|
+
degraded agent.
|
|
48
|
+
|
|
49
|
+
## 2. Under-block
|
|
50
|
+
|
|
51
|
+
- CI is hermetic by design: issueRef/closePath LIVENESS and posture/guards
|
|
52
|
+
cross-checks are NOT validated at CI (format only) — they belong to the PR-B gate
|
|
53
|
+
callsite and live-check job. Until PR-B lands, a dead closePath ref is invisible
|
|
54
|
+
to enforcement. Accepted, tracked by the staged-landing plan (PR-B is next in the
|
|
55
|
+
same drive session).
|
|
56
|
+
- The validator checks symbol PRESENCE (file exists + identifier appears), not
|
|
57
|
+
semantic truth of `covered` — by explicit spec design (the mind judges truth; the
|
|
58
|
+
gate report enumeration ships in PR-B).
|
|
59
|
+
- Evidence containment checks are static (identifier + marker + raw-signature
|
|
60
|
+
presence, effective-collection membership) — a maliciously-labeled test could
|
|
61
|
+
carry the markers without asserting anything. The §5 evidence tests shipped here
|
|
62
|
+
are genuine positive-controls; the static check is the structural floor, the
|
|
63
|
+
review is the judgment layer.
|
|
64
|
+
|
|
65
|
+
## 3. Level-of-abstraction fit
|
|
66
|
+
|
|
67
|
+
Right layer. The class registry is data (`src/data/`), mirroring how other canonical
|
|
68
|
+
lists ship. The validator is a standalone module with two planned callsites (CI now,
|
|
69
|
+
gate in PR-B) rather than logic embedded in either — exactly the spec's "one
|
|
70
|
+
validator, two callsites" design. The codemod is a script, not server runtime — the
|
|
71
|
+
sweep/server must never mutate the checked-out tree (SourceTreeGuard posture).
|
|
72
|
+
|
|
73
|
+
## 4. Signal vs authority compliance
|
|
74
|
+
|
|
75
|
+
Compliant. The CI ratchet is a brittle blocker over structural facts — the exempted
|
|
76
|
+
category (hard-invariant validation; same family as "this field must be a number").
|
|
77
|
+
It makes no judgment about meaning or intent. The judgment decision points are
|
|
78
|
+
explicitly deferred to human authorities via PR-B's acceptance machinery, and PR-A
|
|
79
|
+
ships no blocking surface that evaluates content semantics. No new brittle authority
|
|
80
|
+
over message flow, sessions, or agent behavior is introduced.
|
|
81
|
+
|
|
82
|
+
## 5. Interactions
|
|
83
|
+
|
|
84
|
+
- The ratchet test joins the whole-tree push suite (`vitest.push.config.ts`); it
|
|
85
|
+
does not shadow or race any existing check. It shares the conformance-audit
|
|
86
|
+
symbol-check MECHANIC (file exists + identifier appears) but reads different
|
|
87
|
+
artifacts (matrix front-matter vs standards registry) — no double-fire.
|
|
88
|
+
- The codemod writes matrix files only; it never touches the registry or other
|
|
89
|
+
docs. Idempotent re-runs are no-ops (verified by unit test).
|
|
90
|
+
- Framework-issue filings + closePath commitments created by this build ride
|
|
91
|
+
existing ledgers (idempotent dedupKeys; commitment anchors CMT-890 (codex
|
|
92
|
+
gaps), CMT-891 (pi gaps), CMT-892 (claude mid-turn-interrupt), CMT-893
|
|
93
|
+
(covered-dark autoRecovery flip)). No new notification surface — nothing
|
|
94
|
+
here messages users.
|
|
95
|
+
|
|
96
|
+
## 6. External surfaces
|
|
97
|
+
|
|
98
|
+
- New repo artifacts only (docs, src/data, scripts, tests). No API route, no config
|
|
99
|
+
key, no message to any user, no behavior change for deployed agents in PR-A. The
|
|
100
|
+
npm package ships the new module inertly; nothing imports it at runtime yet
|
|
101
|
+
(first runtime consumer is PR-B's gate).
|
|
102
|
+
- No timing/conversation-state dependence. CI runtime cost: one additional test
|
|
103
|
+
file parsing four small matrices — negligible.
|
|
104
|
+
|
|
105
|
+
## 7. Multi-machine posture
|
|
106
|
+
|
|
107
|
+
Matrix artifacts + registry + validator are **unified-via-git** (repo-tracked
|
|
108
|
+
files; every machine sees the same content at the same SHA — the spec's declared
|
|
109
|
+
posture). The build-run side artifacts (framework-issues, commitments) live on the
|
|
110
|
+
development agent's machine — consistent with the apprenticeship registry's
|
|
111
|
+
declared machine-local posture, and the spec's §Multi-machine section names this
|
|
112
|
+
(closePath refs resolve on the gate machine, in PR-B). No stranding risk: PR-A
|
|
113
|
+
creates no per-machine runtime state.
|
|
114
|
+
|
|
115
|
+
## 8. Rollback cost
|
|
116
|
+
|
|
117
|
+
Revert the PR. Matrices/registry/validator/codemod are inert without the PR-B gate;
|
|
118
|
+
the CI ratchet disappears with the revert. No data migration, no agent state, no
|
|
119
|
+
config. The filed framework-issues and closePath commitments remain as tracked
|
|
120
|
+
records (harmless, and still true — the gaps exist whether or not the standard
|
|
121
|
+
ships). Cheapest possible rollback class.
|
|
122
|
+
|
|
123
|
+
## Second-pass review
|
|
124
|
+
|
|
125
|
+
Required? The change contains the words "gate"/"sentinel" only in docs; PR-A wires
|
|
126
|
+
no session-lifecycle, messaging, or dispatch behavior. HOWEVER — the CI ratchet
|
|
127
|
+
blocks pushes repo-wide, which is a block/allow decision on the development
|
|
128
|
+
pipeline, and the standard is safety-relevant. **Second-pass review: YES** (called
|
|
129
|
+
below).
|
|
130
|
+
|
|
131
|
+
### Second-pass reviewer response
|
|
132
|
+
|
|
133
|
+
**Concern raised (2026-07-18):** the artifact's Phase-1 claim "the validator
|
|
134
|
+
emits per-row `mechanically-verified: presence-only`" was contradicted by the
|
|
135
|
+
shipped code — the marker existed in the spec but not in `StallMatrixResult`,
|
|
136
|
+
and the safety-argument property could have silently never landed. Secondary:
|
|
137
|
+
the over-block mitigation overstated the failure messages ("one-command fix"
|
|
138
|
+
was not actually in any output). Everything else verified: refusal hygiene
|
|
139
|
+
holds, validator genuinely hermetic, ratchet is the sole (push-time) blocking
|
|
140
|
+
surface, PR-A/PR-B split matches the spec, signal-vs-authority argument sound
|
|
141
|
+
under the hard-invariant exemption.
|
|
142
|
+
|
|
143
|
+
**Resolution (same session, before commit):** (1) `StallMatrixResult.rows`
|
|
144
|
+
added — one `{classId, status, mechanicallyVerified: 'presence-only'}` record
|
|
145
|
+
per canonical row, asserted by the ratchet test on every matrix; (2) the
|
|
146
|
+
ratchet's assertion message now names the codemod one-command fix for the
|
|
147
|
+
class-growth case; (3) this artifact's over-block wording corrected to match
|
|
148
|
+
the real output. Reviewer's non-blocking observations (basename echo on
|
|
149
|
+
direct-call misuse; conservative substring aging match) accepted as noted —
|
|
150
|
+
both fail in the safe direction.
|
|
151
|
+
|
|
152
|
+
**Post-resolution status: concerns resolved; review concurs with the
|
|
153
|
+
artifact as amended.**
|