instar 1.3.499 → 1.3.500

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instar",
3
- "version": "1.3.499",
3
+ "version": "1.3.500",
4
4
  "description": "Coherence infrastructure for self-evolving AI agents — on the Claude Code or Codex subscription you already have.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -61,6 +61,29 @@ The skill adds `review-convergence`, `review-iterations`, `review-completed-at`,
61
61
 
62
62
  ### Phase 1 — Initial review round
63
63
 
64
+ **Standards-Conformance Gate auto-invocation (MANDATORY, every round).** Before
65
+ spawning the reviewers, the agent calls the constitution inspector against the spec
66
+ and feeds its report into the round as a reviewer input:
67
+
68
+ ```bash
69
+ AUTH=$(python3 -c "import json; print(json.load(open('.instar/config.json')).get('authToken',''))" 2>/dev/null)
70
+ PORT=$(python3 -c "import json; print(json.load(open('.instar/config.json')).get('port',4040))" 2>/dev/null)
71
+ curl -sS -m 90 -X POST -H "Authorization: Bearer ${AUTH:-$INSTAR_AUTH_TOKEN}" -H 'Content-Type: application/json' \
72
+ -d "{\"specPath\": \"$(realpath docs/specs/<slug>.md)\"}" \
73
+ "http://localhost:${PORT}/spec/conformance-check"
74
+ ```
75
+
76
+ The report is SIGNAL-ONLY (it never blocks — Signal vs. Authority), but it is not
77
+ optional to RUN: its per-standard flags are handed to the reviewers alongside the
78
+ spec (the lessons-aware reviewer in particular must engage every flagged standard),
79
+ and the convergence report's Iteration Summary records one line per round —
80
+ `Standards-Conformance Gate: ran (N flags)` or, honestly, `unavailable: <reason>`
81
+ (server down / route 503). An unavailable gate NEVER blocks convergence, but a
82
+ SKIPPED-without-reason gate fails report validation. This closes the 2026-06-12
83
+ finding (topic 13481): the gate shipped 2026-05-24 explicitly staged for this exact
84
+ wiring, and the staging lived only in prose — zero runs in 19 days. Auto-invocation
85
+ is now part of the round itself, not a remembered follow-up.
86
+
64
87
  The skill spawns reviewers in parallel:
65
88
 
66
89
  **Internal reviewers (Claude subagents):**
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "./builtin-manifest.schema.json",
3
3
  "schemaVersion": 1,
4
- "generatedAt": "2026-06-12T22:38:17.006Z",
5
- "instarVersion": "1.3.499",
4
+ "generatedAt": "2026-06-12T22:55:28.388Z",
5
+ "instarVersion": "1.3.500",
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": "1c55628007e83a3bb8eb4ef113dd0811cdfb01086d46cba9d7ebf5f3707e5562",
14
+ "contentHash": "4cadffedf5765aee7afb11ed290bbcf43545059d7dc85cea865a8982fd414f9b",
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": "1c55628007e83a3bb8eb4ef113dd0811cdfb01086d46cba9d7ebf5f3707e5562",
23
+ "contentHash": "4cadffedf5765aee7afb11ed290bbcf43545059d7dc85cea865a8982fd414f9b",
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": "1c55628007e83a3bb8eb4ef113dd0811cdfb01086d46cba9d7ebf5f3707e5562",
32
+ "contentHash": "4cadffedf5765aee7afb11ed290bbcf43545059d7dc85cea865a8982fd414f9b",
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": "1c55628007e83a3bb8eb4ef113dd0811cdfb01086d46cba9d7ebf5f3707e5562",
41
+ "contentHash": "4cadffedf5765aee7afb11ed290bbcf43545059d7dc85cea865a8982fd414f9b",
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": "1c55628007e83a3bb8eb4ef113dd0811cdfb01086d46cba9d7ebf5f3707e5562",
50
+ "contentHash": "4cadffedf5765aee7afb11ed290bbcf43545059d7dc85cea865a8982fd414f9b",
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": "1c55628007e83a3bb8eb4ef113dd0811cdfb01086d46cba9d7ebf5f3707e5562",
59
+ "contentHash": "4cadffedf5765aee7afb11ed290bbcf43545059d7dc85cea865a8982fd414f9b",
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": "1c55628007e83a3bb8eb4ef113dd0811cdfb01086d46cba9d7ebf5f3707e5562",
68
+ "contentHash": "4cadffedf5765aee7afb11ed290bbcf43545059d7dc85cea865a8982fd414f9b",
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": "1c55628007e83a3bb8eb4ef113dd0811cdfb01086d46cba9d7ebf5f3707e5562",
77
+ "contentHash": "4cadffedf5765aee7afb11ed290bbcf43545059d7dc85cea865a8982fd414f9b",
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": "1c55628007e83a3bb8eb4ef113dd0811cdfb01086d46cba9d7ebf5f3707e5562",
86
+ "contentHash": "4cadffedf5765aee7afb11ed290bbcf43545059d7dc85cea865a8982fd414f9b",
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": "1c55628007e83a3bb8eb4ef113dd0811cdfb01086d46cba9d7ebf5f3707e5562",
95
+ "contentHash": "4cadffedf5765aee7afb11ed290bbcf43545059d7dc85cea865a8982fd414f9b",
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": "1c55628007e83a3bb8eb4ef113dd0811cdfb01086d46cba9d7ebf5f3707e5562",
104
+ "contentHash": "4cadffedf5765aee7afb11ed290bbcf43545059d7dc85cea865a8982fd414f9b",
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": "1c55628007e83a3bb8eb4ef113dd0811cdfb01086d46cba9d7ebf5f3707e5562",
113
+ "contentHash": "4cadffedf5765aee7afb11ed290bbcf43545059d7dc85cea865a8982fd414f9b",
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": "1c55628007e83a3bb8eb4ef113dd0811cdfb01086d46cba9d7ebf5f3707e5562",
122
+ "contentHash": "4cadffedf5765aee7afb11ed290bbcf43545059d7dc85cea865a8982fd414f9b",
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": "1c55628007e83a3bb8eb4ef113dd0811cdfb01086d46cba9d7ebf5f3707e5562",
131
+ "contentHash": "4cadffedf5765aee7afb11ed290bbcf43545059d7dc85cea865a8982fd414f9b",
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": "1c55628007e83a3bb8eb4ef113dd0811cdfb01086d46cba9d7ebf5f3707e5562",
140
+ "contentHash": "4cadffedf5765aee7afb11ed290bbcf43545059d7dc85cea865a8982fd414f9b",
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": "1c55628007e83a3bb8eb4ef113dd0811cdfb01086d46cba9d7ebf5f3707e5562",
149
+ "contentHash": "4cadffedf5765aee7afb11ed290bbcf43545059d7dc85cea865a8982fd414f9b",
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": "1c55628007e83a3bb8eb4ef113dd0811cdfb01086d46cba9d7ebf5f3707e5562",
1557
+ "contentHash": "4cadffedf5765aee7afb11ed290bbcf43545059d7dc85cea865a8982fd414f9b",
1558
1558
  "since": "2025-01-01"
1559
1559
  },
1560
1560
  "subsystem:scheduler": {
@@ -0,0 +1,43 @@
1
+ # Upgrade Guide — vNEXT
2
+
3
+ <!-- assembled-by: assemble-next-md -->
4
+ <!-- bump: patch -->
5
+
6
+ ## What Changed
7
+
8
+ The Standards-Conformance Gate (shipped 2026-05-24, #373: reads the constitution,
9
+ checks any spec against every standard, signal-only) had ZERO runs in 19 days —
10
+ its spec-review wiring was staged in prose and never tracked (operator finding,
11
+ 2026-06-12 topic 13481). Now: spec-converge Phase 1 carries a MANDATORY
12
+ auto-invocation step (`POST /spec/conformance-check`; flags feed the reviewers; each
13
+ round's report records `ran (N flags)` or an honest `unavailable: <reason>`; an
14
+ unexplained skip fails report validation). The constitution registry prose is updated
15
+ to the true current state, and `migrateConformanceGateAutoInvoke` delivers the
16
+ updated skill content to deployed agents (marker/fingerprint pattern, customized
17
+ files untouched, idempotent). The wider documented-only→enforced program is tracked
18
+ as CMT-1426.
19
+
20
+ ## What to Tell Your User
21
+
22
+ - "The inspector that checks every new plan against my constitution now runs
23
+ automatically on every spec review — it had been built but sat unused for three
24
+ weeks because the follow-up to wire it in was never tracked. That gap is closed,
25
+ and converting the rest of the constitution's written rules into enforced gates is
26
+ now a tracked program."
27
+
28
+ ## Summary of New Capabilities
29
+
30
+ | Capability | How to Use |
31
+ |-----------|-----------|
32
+ | Constitution check on every spec review | Automatic — recorded per round in each convergence report |
33
+
34
+ ## Evidence
35
+
36
+ - `tests/unit/PostUpdateMigrator-conformanceAutoInvoke.test.ts` — 4 tests: bundled
37
+ skill carries the step; stock copies upgraded + idempotent; customized copies
38
+ untouched; registry prose honesty locked (the stale "not yet auto-invoked" claim
39
+ can never silently return).
40
+ - `tsc --noEmit` clean; migration suites green.
41
+ - Side-effects: `upgrades/side-effects/conformance-gate-autoinvoke.md` (answers the
42
+ new §7 multi-machine posture question shipped this morning — the gate dogfooding
43
+ itself twice in one day). ELI16: `docs/eli16/conformance-gate-autoinvoke.md`.
@@ -0,0 +1,58 @@
1
+ # Side-Effects Review — Standards-Conformance Gate auto-invocation
2
+
3
+ **Trigger:** operator finding (2026-06-12 topic 13481): the gate shipped 2026-05-24
4
+ explicitly staged for spec-review wiring; the staging lived only in registry prose →
5
+ zero runs in 19 days. ("What's the point of building something and not using it?")
6
+ **Change:** spec-converge Phase 1 gains a MANDATORY auto-invocation step — call
7
+ `POST /spec/conformance-check`, feed the per-standard flags to the reviewers, record
8
+ `ran (N flags)` / `unavailable: <reason>` per round in the convergence report; a
9
+ skipped-without-reason gate fails report validation. Registry prose updated to the
10
+ honest current state (auto-invoked as of 2026-06-12, CMT-1426 tracks the wider
11
+ enforcement-ratio program). PostUpdateMigrator delivers the updated skill content to
12
+ deployed agents (established marker/fingerprint pattern).
13
+
14
+ ## 1. Over-block
15
+ None: the gate's report is signal-only and an UNAVAILABLE gate (server down, 503)
16
+ never blocks convergence — only an unexplained skip fails validation, which costs one
17
+ honest sentence.
18
+
19
+ ## 2. Under-block
20
+ The mandate lives in skill instructions + report validation, not a programmatic hook
21
+ — a determined skip mislabeled "unavailable" would pass until the conformance
22
+ metrics funnel (GET /spec/conformance-metrics, already shipped) shows zero runs
23
+ against nonzero convergences; CMT-1426's cadence reviews exactly that number. Named
24
+ honestly: this is the signal-first phase per Signal vs. Authority.
25
+
26
+ ## 3. Level-of-abstraction fit
27
+ The wiring belongs in the round that consumes it (Phase 1) — not a cron, not a
28
+ separate job: the gate's value is per-spec flags reaching the reviewers of that spec.
29
+
30
+ ## 4. Signal vs authority compliance
31
+ Fully signal-only by construction; blocking authority remains a later, earned phase
32
+ (unchanged from the gate's own converged spec).
33
+
34
+ ## 5. Interactions
35
+ Composes with the existing 8-reviewer round (a ninth input, not a new reviewer
36
+ spawn); the conformance route's extended timeout budget (middleware) already exists;
37
+ migration ordering with the posture migration converges either way (both copy the
38
+ same bundled file; markers are distinct).
39
+
40
+ ## 6. External surfaces
41
+ None beyond the install base (skill content + registry prose + migration).
42
+
43
+ ## 7. Multi-machine posture (Cross-Machine Coherence)
44
+ **machine-local BY DESIGN, with reason** — per-machine installed skill content kept
45
+ current by each machine's own update cycle (same posture as PR #1088's files). The
46
+ conformance CHECK itself runs against the local server of whichever machine runs the
47
+ spec review — correct, since the spec being reviewed lives in that machine's
48
+ worktree. No user-facing notices, no durable runtime state, no generated URLs.
49
+
50
+ ## 8. Rollback cost
51
+ Revert the skill/registry edits and ship; the migration is marker-gated (a reverted
52
+ bundle stops patching; already-patched agents keep a mandatory step that calls a
53
+ still-existing, signal-only route — benign).
54
+
55
+ ## Second-pass review
56
+ Not required — no block/allow runtime decisions, no session lifecycle, no
57
+ gate/sentinel/watchdog RUNTIME surface (the "gate" here is review-process content;
58
+ the route it calls is unchanged).