instar 1.3.497 → 1.3.498
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/PostUpdateMigrator.d.ts +1 -0
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +61 -0
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/package.json +1 -1
- package/skills/instar-dev/SKILL.md +2 -1
- package/skills/instar-dev/templates/side-effects-artifact.md +30 -1
- package/skills/spec-converge/SKILL.md +1 -1
- package/src/data/builtin-manifest.json +19 -19
- package/upgrades/1.3.498.md +51 -0
- package/upgrades/side-effects/multi-machine-posture-review-dimension.md +76 -0
package/package.json
CHANGED
|
@@ -97,7 +97,8 @@ The review must answer each of the following in writing. "No issue identified" i
|
|
|
97
97
|
4. **Signal vs authority compliance** — does this hold blocking authority with brittle logic, or does it produce a signal that feeds a smart gate? (Required reference: `docs/signal-vs-authority.md`.)
|
|
98
98
|
5. **Interactions** — does it shadow another check, get shadowed by one, double-fire, race with adjacent cleanup?
|
|
99
99
|
6. **External surfaces** — does it change anything visible to other agents, other users, other systems? Does it depend on timing, conversation state, or runtime conditions we can't fully control?
|
|
100
|
-
7. **
|
|
100
|
+
7. **Multi-machine posture (Cross-Machine Coherence)** — when this agent runs on MORE than one machine, what is this feature's posture: replicated (name the replication path) / proxied-on-read (name the merged read) / machine-local BY DESIGN (with the reason)? A silent single-machine-only assumption is the defect this question exists to catch (~20 features shipped machine-blind before it was added — 2026-06-12 audit, topic 13481). Also: user-facing notices need one-voice gating; durable state must not strand on topic transfer; generated URLs must survive machine boundaries.
|
|
101
|
+
8. **Rollback cost** — if this turns out wrong in production, what's the back-out? Hot-fix release? Data migration? Agent state repair?
|
|
101
102
|
|
|
102
103
|
### Phase 4.5 — No-deferrals check (enforced in pre-commit)
|
|
103
104
|
|
|
@@ -101,7 +101,36 @@
|
|
|
101
101
|
|
|
102
102
|
---
|
|
103
103
|
|
|
104
|
-
## 7.
|
|
104
|
+
## 7. Multi-machine posture (Cross-Machine Coherence)
|
|
105
|
+
|
|
106
|
+
**When this agent runs on MORE THAN ONE machine, what is this feature's posture?**
|
|
107
|
+
Declare exactly one, with the reason. "I didn't think about multi-machine" is the
|
|
108
|
+
defect this section exists to catch — ~20 features shipped machine-blind before this
|
|
109
|
+
question was added (2026-06-12 audit, topic 13481; the converged
|
|
110
|
+
MULTI-MACHINE-SEAMLESSNESS-SPEC is the cleanup bill).
|
|
111
|
+
|
|
112
|
+
- **replicated** — the state/behavior follows the agent across machines (name the
|
|
113
|
+
replication path: coherence-journal kind, secret-sync, heartbeat field, …).
|
|
114
|
+
- **proxied-on-read** — machine-local state served pool-wide via a merged/scoped read
|
|
115
|
+
(name the read: `?scope=pool`, mesh relay, …).
|
|
116
|
+
- **machine-local BY DESIGN** — give the reason it SHOULD differ per machine
|
|
117
|
+
(machine-specific truths, security boundary, pure per-machine observability).
|
|
118
|
+
"By design" without a reason is not an answer.
|
|
119
|
+
- **single-machine-only assumption** — NOT a valid posture for new features. If the
|
|
120
|
+
feature breaks or duplicates when a second machine exists (double notices, stranded
|
|
121
|
+
state, dashboard blindness, broken links), that is a finding to resolve before
|
|
122
|
+
shipping, not a posture to declare.
|
|
123
|
+
|
|
124
|
+
Also answer explicitly: does it emit user-facing notices (one-voice gating needed?),
|
|
125
|
+
hold durable state (does it strand on topic transfer?), or generate URLs (do they
|
|
126
|
+
survive machine boundaries?).
|
|
127
|
+
|
|
128
|
+
[Specific. "Machine-local by design: the reap-log is a per-machine audit trail; the
|
|
129
|
+
pool-wide question is answered by a proxied-on-read merged view." Not abstractions.]
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## 8. Rollback cost
|
|
105
134
|
|
|
106
135
|
**If this turns out wrong in production, what's the back-out?**
|
|
107
136
|
|
|
@@ -68,7 +68,7 @@ The skill spawns reviewers in parallel:
|
|
|
68
68
|
- **Security.** Attack surfaces, leaks, privilege escalation, auth on endpoints, prompt injection vectors, rotation races.
|
|
69
69
|
- **Scalability/performance.** Hot-path cost, concurrent writes, memory churn, fail-open semantics, hook latency.
|
|
70
70
|
- **Adversarial.** Misbehaving-session scenarios — bad-entry poisoning, self-reinforcing loops, stale claims, authority ambiguity, kind gaming.
|
|
71
|
-
- **Integration/deployment.** Migration, backup/restore, multi-machine, config knobs, dashboard surface, rollback.
|
|
71
|
+
- **Integration/deployment.** Migration, backup/restore, multi-machine, config knobs, dashboard surface, rollback. **Multi-machine posture (Cross-Machine Coherence — mandatory check):** every feature/state surface the spec introduces must declare its posture when the agent runs on more than one machine — replicated (named replication path) / proxied-on-read (named merged read) / machine-local BY DESIGN (with the reason). A spec whose features silently assume a single machine is a MATERIAL finding: ~20 features shipped machine-blind before this check existed (2026-06-12 audit, topic 13481; MULTI-MACHINE-SEAMLESSNESS-SPEC is the cleanup bill). Probe specifically: user-facing notices (one-voice gating?), durable state (strands on topic transfer?), generated URLs (survive machine boundaries?).
|
|
72
72
|
- **Decision-Completeness.** (Autonomy Principle 2 — `docs/specs/AUTONOMY-PRINCIPLES-ENFORCEMENT-SPEC.md` Piece 2.) Enumerates every point where the building agent would have to **stop mid-run and ask the user**. Each must be either **frontloaded** into a `## Frontloaded Decisions` section or explicitly tagged **cheap-to-change-after** because the work ships behind a named dark/dry-run/read-only phase. The reviewer **CONTESTS every cheap tag** — it independently asserts reversibility, and a closed non-cheap taxonomy overrides any tag: anything touching **durable external side-effects, money, identity, or a published/user-visible interface is NEVER cheap**, regardless of a "ships dark" label. A contested tag the reviewer rejects is a **material finding that blocks convergence**. Prompt: `templates/reviewer-decision-completeness.md`. Applies to ALL specs through this skill (D7) — no size gate, no per-spec override (D11; the rejected `disposition: override` escape hatch would reopen the exact skip-hatch Principle 2 closes).
|
|
73
73
|
- **Lessons-aware.** Loads the canonical Instar Design Principles + Lessons Learned index (`docs/INSTAR-DESIGN-PRINCIPLES-AND-LESSONS.md`) plus the running agent's local `.instar/memory/feedback_*.md` entries, then checks the spec for (a) direct contradictions of documented principles/lessons, (b) applicable lessons the spec fails to engage with, (c) behavioral lessons violated by agent-facing surfaces the spec proposes, and **(d) FOUNDATION/SUBSYSTEM AUDIT — the design the spec TESTS, EXTENDS, or BUILDS ON, not just the spec's own surface: does that foundation violate a known standard or repeat a known mistake?** The audit MUST reach one layer below the spec boundary. A spec can be internally clean while faithfully testing or extending a flawed foundation — e.g. a test-harness spec that correctly proves a permission gate which *itself* holds brittle blocking authority in violation of Signal-vs-Authority, or an extension spec built on a subsystem with an unaddressed gap. Taking the underlying subsystem "as given" is exactly how a standards violation survives review: the spec passes, the foundation's flaw is never weighed. When the foundation is flawed, the finding is "this spec is sound but the subsystem it depends on violates standard X / repeats mistake Y — surface it before building on/around it." Catches the "Phase 2" anti-pattern, the spec-converge-pre-auth-circular failure mode (see `feedback_spec_converge_pre_auth_circular`), and the foundation-not-audited gap (the Slack-permission-gate brittle-enum-as-authority that the harness convergence cleared because it audited only the harness, 2026-06-09).
|
|
74
74
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./builtin-manifest.schema.json",
|
|
3
3
|
"schemaVersion": 1,
|
|
4
|
-
"generatedAt": "2026-06-
|
|
5
|
-
"instarVersion": "1.3.
|
|
4
|
+
"generatedAt": "2026-06-12T22:17:19.275Z",
|
|
5
|
+
"instarVersion": "1.3.498",
|
|
6
6
|
"entryCount": 201,
|
|
7
7
|
"entries": {
|
|
8
8
|
"hook:session-start": {
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"domain": "identity",
|
|
12
12
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
13
13
|
"installedPath": ".instar/hooks/instar/session-start.sh",
|
|
14
|
-
"contentHash": "
|
|
14
|
+
"contentHash": "a909f0a1078bd61ce110cee9f691a717430714af40eb83bb49d86b31450372b7",
|
|
15
15
|
"since": "2025-01-01"
|
|
16
16
|
},
|
|
17
17
|
"hook:dangerous-command-guard": {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"domain": "safety",
|
|
21
21
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
22
22
|
"installedPath": ".instar/hooks/instar/dangerous-command-guard.sh",
|
|
23
|
-
"contentHash": "
|
|
23
|
+
"contentHash": "a909f0a1078bd61ce110cee9f691a717430714af40eb83bb49d86b31450372b7",
|
|
24
24
|
"since": "2025-01-01"
|
|
25
25
|
},
|
|
26
26
|
"hook:grounding-before-messaging": {
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"domain": "safety",
|
|
30
30
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
31
31
|
"installedPath": ".instar/hooks/instar/grounding-before-messaging.sh",
|
|
32
|
-
"contentHash": "
|
|
32
|
+
"contentHash": "a909f0a1078bd61ce110cee9f691a717430714af40eb83bb49d86b31450372b7",
|
|
33
33
|
"since": "2025-01-01"
|
|
34
34
|
},
|
|
35
35
|
"hook:compaction-recovery": {
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"domain": "identity",
|
|
39
39
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
40
40
|
"installedPath": ".instar/hooks/instar/compaction-recovery.sh",
|
|
41
|
-
"contentHash": "
|
|
41
|
+
"contentHash": "a909f0a1078bd61ce110cee9f691a717430714af40eb83bb49d86b31450372b7",
|
|
42
42
|
"since": "2025-01-01"
|
|
43
43
|
},
|
|
44
44
|
"hook:external-operation-gate": {
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"domain": "safety",
|
|
48
48
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
49
49
|
"installedPath": ".instar/hooks/instar/external-operation-gate.js",
|
|
50
|
-
"contentHash": "
|
|
50
|
+
"contentHash": "a909f0a1078bd61ce110cee9f691a717430714af40eb83bb49d86b31450372b7",
|
|
51
51
|
"since": "2025-01-01"
|
|
52
52
|
},
|
|
53
53
|
"hook:deferral-detector": {
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"domain": "safety",
|
|
57
57
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
58
58
|
"installedPath": ".instar/hooks/instar/deferral-detector.js",
|
|
59
|
-
"contentHash": "
|
|
59
|
+
"contentHash": "a909f0a1078bd61ce110cee9f691a717430714af40eb83bb49d86b31450372b7",
|
|
60
60
|
"since": "2025-01-01"
|
|
61
61
|
},
|
|
62
62
|
"hook:self-stop-guard": {
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"domain": "coherence",
|
|
66
66
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
67
67
|
"installedPath": ".instar/hooks/instar/self-stop-guard.js",
|
|
68
|
-
"contentHash": "
|
|
68
|
+
"contentHash": "a909f0a1078bd61ce110cee9f691a717430714af40eb83bb49d86b31450372b7",
|
|
69
69
|
"since": "2025-01-01"
|
|
70
70
|
},
|
|
71
71
|
"hook:post-action-reflection": {
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"domain": "evolution",
|
|
75
75
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
76
76
|
"installedPath": ".instar/hooks/instar/post-action-reflection.js",
|
|
77
|
-
"contentHash": "
|
|
77
|
+
"contentHash": "a909f0a1078bd61ce110cee9f691a717430714af40eb83bb49d86b31450372b7",
|
|
78
78
|
"since": "2025-01-01"
|
|
79
79
|
},
|
|
80
80
|
"hook:external-communication-guard": {
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
"domain": "safety",
|
|
84
84
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
85
85
|
"installedPath": ".instar/hooks/instar/external-communication-guard.js",
|
|
86
|
-
"contentHash": "
|
|
86
|
+
"contentHash": "a909f0a1078bd61ce110cee9f691a717430714af40eb83bb49d86b31450372b7",
|
|
87
87
|
"since": "2025-01-01"
|
|
88
88
|
},
|
|
89
89
|
"hook:scope-coherence-collector": {
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
"domain": "coherence",
|
|
93
93
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
94
94
|
"installedPath": ".instar/hooks/instar/scope-coherence-collector.js",
|
|
95
|
-
"contentHash": "
|
|
95
|
+
"contentHash": "a909f0a1078bd61ce110cee9f691a717430714af40eb83bb49d86b31450372b7",
|
|
96
96
|
"since": "2025-01-01"
|
|
97
97
|
},
|
|
98
98
|
"hook:scope-coherence-checkpoint": {
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
"domain": "coherence",
|
|
102
102
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
103
103
|
"installedPath": ".instar/hooks/instar/scope-coherence-checkpoint.js",
|
|
104
|
-
"contentHash": "
|
|
104
|
+
"contentHash": "a909f0a1078bd61ce110cee9f691a717430714af40eb83bb49d86b31450372b7",
|
|
105
105
|
"since": "2025-01-01"
|
|
106
106
|
},
|
|
107
107
|
"hook:free-text-guard": {
|
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
"domain": "safety",
|
|
111
111
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
112
112
|
"installedPath": ".instar/hooks/instar/free-text-guard.sh",
|
|
113
|
-
"contentHash": "
|
|
113
|
+
"contentHash": "a909f0a1078bd61ce110cee9f691a717430714af40eb83bb49d86b31450372b7",
|
|
114
114
|
"since": "2025-01-01"
|
|
115
115
|
},
|
|
116
116
|
"hook:claim-intercept": {
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
"domain": "coherence",
|
|
120
120
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
121
121
|
"installedPath": ".instar/hooks/instar/claim-intercept.js",
|
|
122
|
-
"contentHash": "
|
|
122
|
+
"contentHash": "a909f0a1078bd61ce110cee9f691a717430714af40eb83bb49d86b31450372b7",
|
|
123
123
|
"since": "2025-01-01"
|
|
124
124
|
},
|
|
125
125
|
"hook:claim-intercept-response": {
|
|
@@ -128,7 +128,7 @@
|
|
|
128
128
|
"domain": "coherence",
|
|
129
129
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
130
130
|
"installedPath": ".instar/hooks/instar/claim-intercept-response.js",
|
|
131
|
-
"contentHash": "
|
|
131
|
+
"contentHash": "a909f0a1078bd61ce110cee9f691a717430714af40eb83bb49d86b31450372b7",
|
|
132
132
|
"since": "2025-01-01"
|
|
133
133
|
},
|
|
134
134
|
"hook:stop-gate-router": {
|
|
@@ -137,7 +137,7 @@
|
|
|
137
137
|
"domain": "safety",
|
|
138
138
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
139
139
|
"installedPath": ".instar/hooks/instar/stop-gate-router.js",
|
|
140
|
-
"contentHash": "
|
|
140
|
+
"contentHash": "a909f0a1078bd61ce110cee9f691a717430714af40eb83bb49d86b31450372b7",
|
|
141
141
|
"since": "2025-01-01"
|
|
142
142
|
},
|
|
143
143
|
"hook:auto-approve-permissions": {
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
"domain": "safety",
|
|
147
147
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
148
148
|
"installedPath": ".instar/hooks/instar/auto-approve-permissions.js",
|
|
149
|
-
"contentHash": "
|
|
149
|
+
"contentHash": "a909f0a1078bd61ce110cee9f691a717430714af40eb83bb49d86b31450372b7",
|
|
150
150
|
"since": "2025-01-01"
|
|
151
151
|
},
|
|
152
152
|
"job:health-check": {
|
|
@@ -1554,7 +1554,7 @@
|
|
|
1554
1554
|
"type": "subsystem",
|
|
1555
1555
|
"domain": "updates",
|
|
1556
1556
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
1557
|
-
"contentHash": "
|
|
1557
|
+
"contentHash": "a909f0a1078bd61ce110cee9f691a717430714af40eb83bb49d86b31450372b7",
|
|
1558
1558
|
"since": "2025-01-01"
|
|
1559
1559
|
},
|
|
1560
1560
|
"subsystem:scheduler": {
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Upgrade Guide — vNEXT
|
|
2
|
+
|
|
3
|
+
<!-- assembled-by: assemble-next-md -->
|
|
4
|
+
<!-- bump: patch -->
|
|
5
|
+
|
|
6
|
+
## What Changed
|
|
7
|
+
|
|
8
|
+
Root-cause fix for "how did ~20 features ship incompatible with the seamless
|
|
9
|
+
multi-machine goal?" (operator question, 2026-06-12 topic 13481): no review surface
|
|
10
|
+
ever asked. Now three do —
|
|
11
|
+
|
|
12
|
+
1. The instar-dev side-effects template gains mandatory **§7 Multi-machine posture**:
|
|
13
|
+
every change declares replicated (named path) / proxied-on-read (named read) /
|
|
14
|
+
machine-local BY DESIGN (with the reason). A silent single-machine assumption is a
|
|
15
|
+
finding, not a posture. (Rollback cost renumbered §7→§8.)
|
|
16
|
+
2. spec-converge's integration/deployment reviewer charter makes the same check
|
|
17
|
+
mandatory at spec time — a machine-blind spec is a MATERIAL finding that blocks
|
|
18
|
+
convergence.
|
|
19
|
+
3. The Cross-Machine Coherence constitution article's "Applied through" is widened to
|
|
20
|
+
name these gates (per-feature posture rule), giving the Standards Enforcement
|
|
21
|
+
Coverage audit a verifiable surface.
|
|
22
|
+
|
|
23
|
+
Deployed agents receive the updated skill content via a new PostUpdateMigrator
|
|
24
|
+
migration (`migrateMultiMachinePostureReviewDimension`) — marker-sniffed,
|
|
25
|
+
fingerprint-guarded (operator-customized files left untouched + reported), idempotent,
|
|
26
|
+
following the migrateSpecConvergeFoundationAudit pattern.
|
|
27
|
+
|
|
28
|
+
## What to Tell Your User
|
|
29
|
+
|
|
30
|
+
- "The development process that builds my features now has a mandatory checkpoint: every new feature must declare, in writing, how it behaves when I run on more than one machine — it travels with me, it's readable from any machine, or it deliberately belongs to one machine for a stated reason. This is the structural fix for the batch of features that previously assumed a single machine."
|
|
31
|
+
|
|
32
|
+
## Summary of New Capabilities
|
|
33
|
+
|
|
34
|
+
| Capability | How to Use |
|
|
35
|
+
|-----------|-----------|
|
|
36
|
+
| Multi-machine posture is a mandatory review dimension | Automatic — enforced in the side-effects template + spec-converge reviews; deployed agents receive the updated review docs on their next update |
|
|
37
|
+
|
|
38
|
+
## Evidence
|
|
39
|
+
|
|
40
|
+
- `tests/unit/PostUpdateMigrator-mmPostureReviewDimension.test.ts` — 4 tests: bundled
|
|
41
|
+
sources really carry the marker; stock installed copies upgraded + idempotent;
|
|
42
|
+
customized copies untouched + reported; missing files skipped silently.
|
|
43
|
+
- `tsc --noEmit` clean; affected suites green.
|
|
44
|
+
- Side-effects artifact: `upgrades/side-effects/multi-machine-posture-review-dimension.md`.
|
|
45
|
+
- Plain-English overview: `docs/eli16/multi-machine-posture-review-dimension.md`.
|
|
46
|
+
|
|
47
|
+
## What Changed for the Review Process
|
|
48
|
+
|
|
49
|
+
This change's own side-effects artifact answers the new question about itself
|
|
50
|
+
(machine-local by design: per-machine installed skill content kept current by each
|
|
51
|
+
machine's update cycle) — the gate is dogfooded on the PR that introduces it.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Side-Effects Review — Multi-machine posture review dimension (Cross-Machine Coherence widening)
|
|
2
|
+
|
|
3
|
+
**Trigger:** operator question, 2026-06-12 topic 13481 ("we have developed so many
|
|
4
|
+
features that have gaps … is it the constitution or our enforcement?"). The audit
|
|
5
|
+
answer: both, but chiefly enforcement — NO review surface ever asked the multi-machine
|
|
6
|
+
question, so ~20 features shipped machine-blind.
|
|
7
|
+
**Change:** (1) side-effects template gains mandatory §7 "Multi-machine posture"
|
|
8
|
+
(replicated / proxied-on-read / machine-local-by-design-with-reason; single-machine
|
|
9
|
+
assumption is a finding, not a posture); (2) the matching Phase-4 question in the
|
|
10
|
+
instar-dev SKILL; (3) a mandatory posture check in spec-converge's
|
|
11
|
+
integration/deployment reviewer charter; (4) the Cross-Machine Coherence article's
|
|
12
|
+
"Applied through" widened to name these gates (so the conformance audit can verify
|
|
13
|
+
them); (5) PostUpdateMigrator migration delivering the updated skill content to
|
|
14
|
+
deployed agents (Migration Parity, "updating existing skill content" — pattern copy of
|
|
15
|
+
migrateSpecConvergeFoundationAudit: marker-sniffed, fingerprint-guarded, idempotent,
|
|
16
|
+
customized files untouched).
|
|
17
|
+
|
|
18
|
+
## 1. Over-block
|
|
19
|
+
The new review question blocks nothing programmatically — it is a required SECTION in
|
|
20
|
+
a review document and a reviewer charter line. The cost it adds is one honest
|
|
21
|
+
paragraph per change. A genuinely machine-agnostic change answers "machine-local by
|
|
22
|
+
design: <reason>" in one line. No legitimate change becomes unshippable.
|
|
23
|
+
|
|
24
|
+
## 2. Under-block
|
|
25
|
+
The question is willpower-adjacent until the conformance audit verifies the section's
|
|
26
|
+
presence (the registry now names the gates, which is what the Standards Enforcement
|
|
27
|
+
Coverage audit reads). A reviewer can still write a lazy posture answer — the
|
|
28
|
+
spec-converge integration reviewer's charter makes a silent single-machine assumption
|
|
29
|
+
a MATERIAL finding, which is the structural counterweight. Programmatic
|
|
30
|
+
section-presence checking in the pre-commit gate is a natural ratchet if lazy answers
|
|
31
|
+
show up (the registry text gives it a home).
|
|
32
|
+
|
|
33
|
+
## 3. Level-of-abstraction fit
|
|
34
|
+
Right layer: the defect was a missing QUESTION at review time, so the fix adds the
|
|
35
|
+
question to both review surfaces (side-effects + spec-converge) and anchors it in the
|
|
36
|
+
constitution article those surfaces trace to. Not duplicated logic — one rule, named
|
|
37
|
+
in the registry, asked at the two existing chokepoints.
|
|
38
|
+
|
|
39
|
+
## 4. Signal vs authority compliance
|
|
40
|
+
No new blocking authority. The template/charter additions are review-content
|
|
41
|
+
requirements; the only "block" is the existing spec-converge materiality bar, which is
|
|
42
|
+
already the convergence mechanism. The migration is a content patch with no decision
|
|
43
|
+
logic.
|
|
44
|
+
|
|
45
|
+
## 5. Interactions
|
|
46
|
+
- The migration follows the established skill-content-update pattern and runs once
|
|
47
|
+
(marker check). It cannot fight installBuiltinSkills (which never overwrites).
|
|
48
|
+
- Renumbering Rollback cost §7→§8 in the template: existing committed artifacts are
|
|
49
|
+
unaffected (the pre-commit gate checks artifact existence/coverage, not section
|
|
50
|
+
numbering).
|
|
51
|
+
- The spec-converge charter addition extends the integration reviewer's prompt
|
|
52
|
+
composition; no phase logic changes.
|
|
53
|
+
|
|
54
|
+
## 6. External surfaces
|
|
55
|
+
None outside the install base. Deployed agents receive updated skill files on their
|
|
56
|
+
next update via the migration; operator-customized files are left untouched and
|
|
57
|
+
reported in the migration result.
|
|
58
|
+
|
|
59
|
+
## 7. Multi-machine posture (Cross-Machine Coherence)
|
|
60
|
+
**machine-local BY DESIGN, with reason** — these are agent-installed skill/template
|
|
61
|
+
files: each machine's install legitimately carries its own copy at its own installed
|
|
62
|
+
version, kept current per machine by PostUpdateMigrator on that machine's update
|
|
63
|
+
cycle. Version skew between machines is bounded by the existing update train (drift
|
|
64
|
+
promoter). No user-facing notices, no durable runtime state, no generated URLs.
|
|
65
|
+
(This section is itself the new question, answered — dogfooded on its own PR.)
|
|
66
|
+
|
|
67
|
+
## 8. Rollback cost
|
|
68
|
+
Revert the template/SKILL/registry edits and ship; the migration is marker-gated so a
|
|
69
|
+
reverted bundle simply stops patching (already-patched agents keep the question — a
|
|
70
|
+
benign residue: it asks reviewers for one honest paragraph). No data, no config, no
|
|
71
|
+
runtime behavior.
|
|
72
|
+
|
|
73
|
+
## Second-pass review
|
|
74
|
+
Not required — no block/allow decisions, no session lifecycle, no
|
|
75
|
+
gate/sentinel/watchdog runtime surface (docs/skills content + a content-patch
|
|
76
|
+
migration following an established pattern).
|