instar 1.3.686 → 1.3.688

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.
@@ -1 +1 @@
1
- {"version":3,"file":"MessagingToneGate.d.ts","sourceRoot":"","sources":["../../src/core/MessagingToneGate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MessagingToneGate.d.ts","sourceRoot":"","sources":["../../src/core/MessagingToneGate.ts"],"names":[],"mappings":"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"}
@@ -398,7 +398,13 @@ Your decision must be traceable to EXACTLY ONE of the explicit rules below. You
398
398
  - **B2_FILE_PATH** — the \`file-path\` signal is detected AND a concrete path is shown for the user to open/edit. Conceptual references ("the config file") are fine even if a path-shaped token appears. (The legacy \`raw-file-path\` upstream signal, if present, corroborates this one.)
399
399
  - **B3_CONFIG_KEY** — the \`config-key\` signal is detected AND the dotted key is presented as something the user must set/edit. Describing the BEHAVIOR a setting controls, without handing the user the key to change, is fine.
400
400
  - **B4_COPY_PASTE_CODE** — the \`copy-paste-code\` signal is detected AND the snippet is clearly offered for the user to copy-paste. A short inline code reference inside an explanation is not automatically a block — judge whether the user is being asked to use it.
401
- - **B5_API_ENDPOINT** — the \`api-endpoint\` signal is detected AND the URL/route is handed to the user to call/open. "The server" / "the endpoint" as nouns, or an internal route mentioned while explaining mechanics, are fine.
401
+ - **B5_API_ENDPOINT** — the \`api-endpoint\` signal is detected AND the URL/route is handed to the user as an API for the USER to CALL themselves — a request they are expected to issue (curl / POST / GET / "hit this endpoint"), or a bare host:port route presented as something to invoke. JUDGE BY INTENT (call-vs-open), NEVER BY SHAPE. The \`api-endpoint\` detector fires on EVERY URL — it cannot tell a call-target from a click-target — so the detected signal ALONE is never a block; you decide from how the URL is being used. DO NOT block a URL the user is meant to OPEN / CLICK / VISIT in a browser: a private-view link (e.g. \`/view/<id>\`, often carrying a \`?token=\`), a Cloudflare tunnel URL (\`*.trycloudflare.com/...\`), a published or Telegraph page, a dashboard link, a download/file link, or any http(s) link shared as a destination to look at. Those are CONTENT the user opens, not an API they call — they PASS even though the signal fired and even though they contain a host, a port, and a path. "The server" / "the endpoint" as nouns, or an internal route mentioned while explaining mechanics, are also fine.
402
+ WORKED EXAMPLES (the discriminator is call-vs-open, never the presence of host:port/path):
403
+ - BLOCK: "To check, run: curl http://localhost:4042/commitments" — an API call handed to the user to issue.
404
+ - BLOCK: "Hit POST /attention to queue it yourself." — a route the user is told to invoke.
405
+ - PASS: "Here's the rendered doc: https://abc123.trycloudflare.com/view/k3p9?token=…" — a link the user clicks to open.
406
+ - PASS: "Your dashboard is at http://localhost:4040/dashboard — PIN 123456" — a destination to visit.
407
+ - PASS: "Published it here: https://telegra.ph/My-Report-06-27" — a page to read.
402
408
  - **B6_ENV_VAR** — the \`env-var\` signal is detected AND the variable is presented for the user to set/export. Naming a variable while explaining behavior is fine.
403
409
  - **B7_CRON_OR_SLUG** — the \`cron-or-slug\` signal is detected AND a cron expression or an internal slug/tracker id is surfaced to the user as something to use or that they can act on. An internal id leaked into user-facing prose is exactly the kind of thing to block; a slug discussed between agent and user about the work itself may be fine — judge by whether it is actionable/meaningful to the user.
404
410
 
@@ -544,7 +550,7 @@ These rules only fire when the producer has explicitly marked the candidate as a
544
550
  - Naming an internal subsystem by its role when discussing what it did.
545
551
  - Quoting short strings from earlier messages for reference (e.g., discussing why a "test" message leaked).
546
552
  - Slash commands that work in chat (/reflect, /help, /build).
547
- - URLs the user can click to visit.
553
+ - URLs the user OPENS / CLICKS / VISITS in a browser — a private-view link (including one carrying a \`?token=\`), a Cloudflare tunnel URL, a published or Telegraph page, a dashboard link, a download/file link, any http(s) destination shared for the user to look at. These are content destinations, not API calls — NEVER block them under B5 (B5 is only for an endpoint the user is told to CALL themselves).
548
554
 
549
555
  ## Response format
550
556
 
@@ -1 +1 @@
1
- {"version":3,"file":"MessagingToneGate.js","sourceRoot":"","sources":["../../src/core/MessagingToneGate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MessagingToneGate.js","sourceRoot":"","sources":["../../src/core/MessagingToneGate.ts"],"names":[],"mappings":"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"}
@@ -128,6 +128,15 @@ export interface ReleaseReadinessSentinelConfig {
128
128
  backlogAgeDaysHigh?: number;
129
129
  hysteresisHours?: number;
130
130
  staleEpisodeTtlDays?: number;
131
+ /**
132
+ * Fast-trigger (RELEASE-FRAGMENT-GATE-SPEC Layer 2, D7): when the block is
133
+ * specifically a missing release-note fragment (guideBlocksPublish) WITH
134
+ * unreleased feature/fix work — the case where publish.yml would SILENTLY
135
+ * SKIP — surface at LOW IMMEDIATELY instead of waiting out the multi-day age
136
+ * floor. This closes the "fresh fragment-less merge sits silent for 2 days"
137
+ * gap that the 2026-06-27 incident exposed. Default on.
138
+ */
139
+ fastTriggerOnGuideBlock?: boolean;
131
140
  }
132
141
  export declare class ReleaseReadinessSentinel extends EventEmitter {
133
142
  private readonly deps;
@@ -1 +1 @@
1
- {"version":3,"file":"ReleaseReadinessSentinel.d.ts","sourceRoot":"","sources":["../../src/monitoring/ReleaseReadinessSentinel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReleaseReadinessSentinel.d.ts","sourceRoot":"","sources":["../../src/monitoring/ReleaseReadinessSentinel.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,7 @@ const DEFAULTS = {
39
39
  backlogAgeDaysHigh: 7,
40
40
  hysteresisHours: 12,
41
41
  staleEpisodeTtlDays: 30,
42
+ fastTriggerOnGuideBlock: true,
42
43
  };
43
44
  const DAY_MS = 24 * 60 * 60 * 1000;
44
45
  const HOUR_MS = 60 * 60 * 1000;
@@ -150,7 +151,8 @@ export class ReleaseReadinessSentinel extends EventEmitter {
150
151
  await this.failLoud(state, 'analyzer', new Error('analyze-release returned no report'));
151
152
  return;
152
153
  }
153
- const blocked = this.isBlocked(report, await this.deps.guideBlocksPublish());
154
+ const guideBlocks = await this.deps.guideBlocksPublish();
155
+ const blocked = this.isBlocked(report, guideBlocks);
154
156
  if (!blocked) {
155
157
  // Backlog clear — resolve any open episodes.
156
158
  await this.resolveAll(state, 'cleared');
@@ -167,14 +169,21 @@ export class ReleaseReadinessSentinel extends EventEmitter {
167
169
  return;
168
170
  }
169
171
  const ageDays = (this.deps.now() - oldest.dateMs) / DAY_MS;
170
- const priority = this.priorityForAge(ageDays);
172
+ const ageBasedPriority = this.priorityForAge(ageDays);
173
+ // Fast-trigger (D7): a missing-fragment block with unreleased feature/fix
174
+ // work is the SILENT-SKIP case — surface at LOW immediately, bypassing the
175
+ // multi-day age floor, instead of letting a fresh fragment-less merge sit
176
+ // silent for days (the 2026-06-27 gap).
177
+ const featureOrFix = report.analysis.commitClassification.features + report.analysis.commitClassification.fixes;
178
+ const fastTriggered = this.cfg.fastTriggerOnGuideBlock && guideBlocks && featureOrFix > 0 && !ageBasedPriority;
179
+ const priority = ageBasedPriority ?? (fastTriggered ? 'LOW' : null);
171
180
  let episode = state.episodes.find((e) => e.oldestSha === oldest.sha && !e.resolvedMs);
172
181
  if (!episode) {
173
182
  episode = { oldestSha: oldest.sha, firstDetectedMs: this.deps.now() };
174
183
  state.episodes.push(episode);
175
184
  }
176
185
  if (!priority) {
177
- // Below the silent threshold — recorded, no message.
186
+ // Below the silent threshold AND not a fast-trigger case — recorded, no message.
178
187
  this.reap(state);
179
188
  return;
180
189
  }
@@ -200,8 +209,8 @@ export class ReleaseReadinessSentinel extends EventEmitter {
200
209
  episode.attentionId = id;
201
210
  episode.lastPriority = priority;
202
211
  state.lastSignalAt = this.deps.now();
203
- this.deps.audit({ kind: 'release-readiness', event: 'signal', oldestSha: oldest.sha, priority, ageDays: days, delivered });
204
- this.emit('signal', { oldestSha: oldest.sha, priority });
212
+ this.deps.audit({ kind: 'release-readiness', event: 'signal', oldestSha: oldest.sha, priority, ageDays: days, delivered, fastTriggered });
213
+ this.emit('signal', { oldestSha: oldest.sha, priority, fastTriggered });
205
214
  }
206
215
  this.reap(state);
207
216
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ReleaseReadinessSentinel.js","sourceRoot":"","sources":["../../src/monitoring/ReleaseReadinessSentinel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReleaseReadinessSentinel.js","sourceRoot":"","sources":["../../src/monitoring/ReleaseReadinessSentinel.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instar",
3
- "version": "1.3.686",
3
+ "version": "1.3.688",
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",
@@ -0,0 +1,152 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * release-fragment-gate (Layer 1) — the server-side PR-time check that a
4
+ * release-affecting PR carries a release-note fragment.
5
+ *
6
+ * ── Why ───────────────────────────────────────────────────────────────
7
+ * A HARD pre-push gate already requires the fragment, but it runs in husky
8
+ * LOCALLY — the server-side squash/bot/auto-merge path that lands most merges
9
+ * never runs husky, so a fragment-less change reaches main and the publish
10
+ * SILENTLY skips the release (2026-06-27: PRs #1295-#1297 stranded ~7h). This
11
+ * gate moves the SAME requirement to the merge boundary, where it cannot be
12
+ * routed around.
13
+ *
14
+ * ── Signal vs Authority ───────────────────────────────────────────────
15
+ * This is an AUTHORITY (it can block a merge), but its veto rests on an
16
+ * OBJECTIVE BINARY — "a release-note fragment file is present, yes/no" — exactly
17
+ * the shape the existing eli16-pr-gate already establishes. The release-relevant
18
+ * path predicate is a FALLIBLE SIGNAL: a false positive is always escapable by
19
+ * adding a one-line `internal-only` fragment. The block is carried by the
20
+ * presence condition, never the predicate's correctness.
21
+ *
22
+ * ── Security ──────────────────────────────────────────────────────────
23
+ * Runs under `on: pull_request` (NOT pull_request_target), read-only token, no
24
+ * PR-head checkout. Untrusted PR title/body arrive via env (process.env), never
25
+ * shell-interpolated. The bot exemption keys on the AUTHENTICATED actor identity
26
+ * (login + type), never a spoofable title string. FAIL-CLOSED: any internal
27
+ * error reports the check FAILED, never green.
28
+ *
29
+ * Pure `checkReleaseFragment(...)` is exported for unit testing; the CLI wrapper
30
+ * reads env set by the workflow and exits 0 (pass/exempt) or 1 (fail).
31
+ */
32
+
33
+ import { isReleaseRelevant } from './release-relevant-paths.mjs';
34
+
35
+ /** A changed file that is a release-note fragment (the opt-out lane is itself such a file). */
36
+ function isFragmentFile(p) {
37
+ if (typeof p !== 'string') return false;
38
+ const norm = p.trim().replace(/\\/g, '/').replace(/^\.\//, '');
39
+ return /^upgrades\/next\/.+\.md$/.test(norm) || norm === 'upgrades/NEXT.md';
40
+ }
41
+
42
+ /**
43
+ * @param {{
44
+ * files?: Array<{ path: string, status?: string }> | string[],
45
+ * authorLogin?: string|null,
46
+ * authorType?: string|null,
47
+ * title?: string|null,
48
+ * releaseBotLogin?: string|null, // the known release-cut bot login (default github-actions[bot])
49
+ * }} pr
50
+ * @returns {{ ok: boolean, exempt?: string, reason?: string, relevant?: string[] }}
51
+ */
52
+ export function checkReleaseFragment(pr) {
53
+ const releaseBotLogin = (pr?.releaseBotLogin ?? 'github-actions[bot]');
54
+
55
+ // ── Exemption: ONLY the authenticated release-cut bot identity ──────
56
+ // Keyed on login + type, NEVER a title/commit-message string. A human-authored
57
+ // PR titled "chore: release …" is still gated (the spoof fails by construction).
58
+ const login = String(pr?.authorLogin ?? '');
59
+ const type = String(pr?.authorType ?? '');
60
+ if (type === 'Bot' && login && login === releaseBotLogin) {
61
+ return { ok: true, exempt: 'release-cut-bot' };
62
+ }
63
+
64
+ // Normalize the changed-file list (accept the files API shape OR a bare path list).
65
+ const rawFiles = Array.isArray(pr?.files) ? pr.files : [];
66
+ const paths = rawFiles.map((f) => (typeof f === 'string' ? f : f?.path)).filter((p) => typeof p === 'string');
67
+
68
+ // (a) Any release-relevant changed path?
69
+ const relevant = paths.filter((p) => isReleaseRelevant(p));
70
+ if (relevant.length === 0) {
71
+ return { ok: true, exempt: 'no-release-relevant-paths' };
72
+ }
73
+
74
+ // (b) A release-note fragment added/modified? (Presence, not content — Layer 1
75
+ // has only the file list. The internal-only opt-out IS such a file, so its
76
+ // presence satisfies this; its legitimacy is verified downstream at
77
+ // assemble-next-md + pre-push-gate §3c.)
78
+ const hasFragment = paths.some(isFragmentFile);
79
+ if (hasFragment) {
80
+ return { ok: true };
81
+ }
82
+
83
+ return { ok: false, reason: 'release-relevant-no-fragment', relevant };
84
+ }
85
+
86
+ // ── CLI (used by .github/workflows/release-fragment-gate.yml) ─────────
87
+ const invokedDirectly =
88
+ process.argv[1] && import.meta.url === new URL(`file://${process.argv[1]}`).href;
89
+
90
+ if (invokedDirectly) {
91
+ // FAIL-CLOSED: any throw below exits non-zero (never a silent green).
92
+ try {
93
+ // The workflow provides the changed-file list as JSON in PR_FILES_JSON
94
+ // (array of { path/filename, status }), and PR_AUTHOR_LOGIN / PR_AUTHOR_TYPE
95
+ // / PR_TITLE from the event. WARN_ONLY=1 reports the verdict without failing
96
+ // (soak phase — spec D2/D3).
97
+ let files = [];
98
+ try {
99
+ const parsed = JSON.parse(process.env.PR_FILES_JSON || '[]');
100
+ if (Array.isArray(parsed)) {
101
+ files = parsed.map((f) => ({ path: f.path ?? f.filename, status: f.status }));
102
+ }
103
+ } catch (e) {
104
+ console.error(`release-fragment-gate: could NOT parse PR_FILES_JSON — failing closed. ${e?.message ?? e}`);
105
+ process.exit(1);
106
+ }
107
+
108
+ const res = checkReleaseFragment({
109
+ files,
110
+ authorLogin: process.env.PR_AUTHOR_LOGIN,
111
+ authorType: process.env.PR_AUTHOR_TYPE,
112
+ title: process.env.PR_TITLE,
113
+ releaseBotLogin: process.env.RELEASE_BOT_LOGIN || undefined,
114
+ });
115
+
116
+ const warnOnly = process.env.WARN_ONLY === '1';
117
+
118
+ if (res.ok) {
119
+ console.log(
120
+ res.exempt
121
+ ? `release-fragment-gate: exempt (${res.exempt}).`
122
+ : 'release-fragment-gate: OK — a release-note fragment is present.',
123
+ );
124
+ // Emit a machine-readable verdict line for the rollout log (spec D3).
125
+ console.log(`::notice::release-fragment-gate verdict=PASS exempt=${res.exempt ?? 'none'}`);
126
+ process.exit(0);
127
+ }
128
+
129
+ const msg =
130
+ `release-fragment-gate: this PR changes release-relevant files but adds NO release-note ` +
131
+ `fragment (upgrades/next/<slug>.md). Without one, the publish pipeline SILENTLY SKIPS the ` +
132
+ `release — your change would merge but never ship (the 2026-06-27 incident).\n` +
133
+ ` Release-relevant files:\n` +
134
+ res.relevant.slice(0, 8).map((f) => ` • ${f}`).join('\n') +
135
+ (res.relevant.length > 8 ? `\n • …and ${res.relevant.length - 8} more` : '') +
136
+ `\n Fix: add upgrades/next/<slug>.md describing the change (via /instar-dev). For a genuinely ` +
137
+ `no-user-impact change, add a fragment carrying the standalone <!-- internal-only --> marker.`;
138
+
139
+ if (warnOnly) {
140
+ console.log(`::warning::${msg.replace(/\n/g, ' ')}`);
141
+ console.log(`::notice::release-fragment-gate verdict=FAIL warn-only=1 (not blocking during soak)`);
142
+ process.exit(0); // soak phase: report, do not block
143
+ }
144
+ console.error(msg);
145
+ console.log(`::notice::release-fragment-gate verdict=FAIL blocking=1`);
146
+ process.exit(1);
147
+ } catch (e) {
148
+ // FAIL-CLOSED — an internal error must turn the check RED, never green.
149
+ console.error(`release-fragment-gate: internal error — failing closed. ${e?.stack ?? e}`);
150
+ process.exit(1);
151
+ }
152
+ }
@@ -134,6 +134,12 @@ const ALLOWLIST = new Set([
134
134
  // previous release. Build-time only; never executes on an agent's
135
135
  // machine. Per INSTAR-JOBS-AS-AGENTMD spec §Drift Classifier.
136
136
  'scripts/classify-default-drift.mjs',
137
+ // release-fragment-gate Layer 2 publish-side annotator — runs READ-ONLY git
138
+ // (`describe --tags`, `diff --name-only -z`, `log`, `ls-files`) inside the
139
+ // publish GitHub Action to detect unreleased release-relevant work on a skip.
140
+ // CI-only; never executes on an agent's machine, and TS isn't compiled there
141
+ // so it cannot import the SafeGitExecutor funnel. Per RELEASE-FRAGMENT-GATE-SPEC.
142
+ 'scripts/release-skip-annotate.mjs',
137
143
  // Tier-3 CI ratchet for the cartographer doc-tree (cartographer-doc-freshness
138
144
  // spec #2). A standalone .mjs (parity with docs-coverage.mjs) that runs in CI
139
145
  // with NO build step, so it cannot import the TS SafeGitExecutor funnel. All
@@ -15,6 +15,7 @@ import path from 'node:path';
15
15
  import { fileURLToPath } from 'node:url';
16
16
  import { validateGuideContent } from './upgrade-guide-validator.mjs';
17
17
  import { assembleNextMd, gatherFragmentInputs, hasInternalOnlyMarker } from './assemble-next-md.mjs';
18
+ import { isReleaseRelevant } from './release-relevant-paths.mjs';
18
19
 
19
20
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
20
21
  const ROOT = path.resolve(__dirname, '..');
@@ -191,13 +192,19 @@ try {
191
192
  const fragmentChanges = changedFiles.filter(f =>
192
193
  f.startsWith('upgrades/next/') || f === 'upgrades/NEXT.md'
193
194
  );
194
- if (srcChanges.length > 0 && fragmentChanges.length === 0) {
195
+ // Release-relevance is now the SHARED predicate (scripts/release-relevant-paths.mjs),
196
+ // the same one the server-side Layer-1 PR gate uses — so "needs a release note?"
197
+ // has one answer in both places. This BROADENS the old src/**.ts-only check to
198
+ // also catch scripts/, .github/workflows/, package.json, and skill code/templates
199
+ // (all of which ship behavior but previously slipped this local gate).
200
+ const releaseRelevantChanges = changedFiles.filter(isReleaseRelevant);
201
+ if (releaseRelevantChanges.length > 0 && fragmentChanges.length === 0) {
195
202
  errors.push(
196
- `${srcChanges.length} source file(s) changed but no release-note fragment was added. ` +
203
+ `${releaseRelevantChanges.length} release-relevant file(s) changed but no release-note fragment was added. ` +
197
204
  `Without upgrades/next/<slug>.md (or upgrades/NEXT.md), publish.yml SILENTLY SKIPS the ` +
198
205
  `release — your change would merge but never ship. Add a fragment describing the change:\n` +
199
- srcChanges.slice(0, 5).map(f => ` • ${f}`).join('\n') +
200
- (srcChanges.length > 5 ? `\n • ...and ${srcChanges.length - 5} more` : '')
206
+ releaseRelevantChanges.slice(0, 5).map(f => ` • ${f}`).join('\n') +
207
+ (releaseRelevantChanges.length > 5 ? `\n • ...and ${releaseRelevantChanges.length - 5} more` : '')
201
208
  );
202
209
  }
203
210
 
@@ -0,0 +1,171 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * release-relevant-paths — the SINGLE SOURCE OF TRUTH for "does this changed
4
+ * file ship behavior that must carry a release-note fragment?"
5
+ *
6
+ * ── Why this exists ───────────────────────────────────────────────────
7
+ * The release-note fragment requirement was enforced by THREE independent
8
+ * predicates that could drift: `pre-push-gate.js §3b` (`src/**.ts` only — too
9
+ * narrow, missed scripts/workflows), and the publish-side skip is path-blind.
10
+ * On 2026-06-27 PRs #1295-#1297 merged with no fragment and the publish ran
11
+ * green and silently skipped (v1.3.685 stuck ~7h). This module is the one
12
+ * predicate the PR-time gate (Layer 1) AND the local pre-push gate share, so
13
+ * "is this release-relevant?" has exactly one answer everywhere.
14
+ *
15
+ * It answers ONE question: "needs a release note?". It is deliberately NOT
16
+ * `instar-dev-precommit.js`'s `inScope()` — that answers a DIFFERENT question
17
+ * ("needs instar-dev review?") and is intentionally narrower; merging them
18
+ * would silently change which changes require review. (See the spec's D6 +
19
+ * the side-effects artifact for the reconciliation.)
20
+ *
21
+ * ── The predicate (spec D6) ───────────────────────────────────────────
22
+ * RELEASE-RELEVANT (positive): src/, scripts/, .husky/, skills/** code +
23
+ * SKILL.md + templates/, package.json, package-lock.json,
24
+ * .github/workflows/**.
25
+ * EXEMPT (never release-relevant, even under a positive root):
26
+ * any *.test.ts, the tests/ tree, the docs/ tree, a bare *.md (notes/readme)
27
+ * that is NOT a SKILL.md or under a skill templates/ dir, the upgrades/ tree
28
+ * (the fragment dir itself), the .instar/ tree (agent-local), and repo
29
+ * dotfiles like .gitignore.
30
+ *
31
+ * Paths are canonicalized (POSIX separators, no leading ./, `..` REJECTED as
32
+ * relevant — the safe direction) and compared case-insensitively on the
33
+ * segment, so `Src/Foo.TS`, `src/../src/x.ts`, and `src/x.ts/` cannot evade.
34
+ *
35
+ * Pure + exported for unit testing; the CLI wrapper classifies a newline/comma
36
+ * list of paths.
37
+ */
38
+
39
+ /** Canonicalize a changed-file path to a comparable POSIX form. Returns null if it escapes the tree. */
40
+ export function canonicalizePath(raw) {
41
+ if (typeof raw !== 'string') return null;
42
+ let p = raw.trim();
43
+ if (!p) return null;
44
+ // Normalize separators + strip a leading ./, collapse duplicate slashes.
45
+ p = p.replace(/\\/g, '/').replace(/\/+/g, '/').replace(/^\.\//, '').replace(/\/+$/, '');
46
+ if (!p) return null;
47
+ // Reject any traversal segment — a `..` path is treated as release-relevant
48
+ // by the caller (fail toward "in scope"), never silently exempt.
49
+ const segments = p.split('/');
50
+ if (segments.some((s) => s === '..')) return { escaped: true, path: p };
51
+ return { escaped: false, path: p };
52
+ }
53
+
54
+ /** Lowercase form for case-insensitive matching (covers macOS/Windows case-fold FS). */
55
+ function lc(p) {
56
+ return p.toLowerCase();
57
+ }
58
+
59
+ /**
60
+ * Is this changed file release-relevant (needs a release-note fragment)?
61
+ * @param {string} rawPath a repo-relative changed-file path
62
+ * @returns {boolean}
63
+ */
64
+ export function isReleaseRelevant(rawPath) {
65
+ const c = canonicalizePath(rawPath);
66
+ if (c === null) return false;
67
+ // A traversal path is ambiguous → bias toward release-relevant (the safe
68
+ // direction: a false "needs a note" is escapable with a one-line fragment; a
69
+ // false exempt silently re-opens the 2026-06-27 silent-skip).
70
+ if (c.escaped) return true;
71
+ const p = lc(c.path);
72
+
73
+ // ── EXEMPT (checked first — exemptions override positive roots) ──────
74
+ // Test files anywhere.
75
+ if (p.endsWith('.test.ts') || p.endsWith('.test.js') || p.endsWith('.test.mjs')) return false;
76
+ if (p === 'tests' || p.startsWith('tests/')) return false;
77
+ // Docs + the release-notes machinery itself.
78
+ if (p === 'docs' || p.startsWith('docs/')) return false;
79
+ if (p === 'upgrades' || p.startsWith('upgrades/')) return false;
80
+ // Agent-local + repo dotfiles that ship no runtime behavior.
81
+ if (p.startsWith('.instar/')) return false;
82
+ if (p.startsWith('.github/') && !p.startsWith('.github/workflows/')) return false; // ISSUE_TEMPLATE etc.
83
+
84
+ // ── POSITIVE (release-relevant) ─────────────────────────────────────
85
+ if (p === 'package.json' || p === 'package-lock.json') return true;
86
+ if (p.startsWith('.github/workflows/')) return true;
87
+ if (p.startsWith('src/')) return true;
88
+ if (p.startsWith('scripts/')) return true;
89
+ if (p.startsWith('.husky/')) return true;
90
+ // Built-in skills under skills/ ship behavior.
91
+ if (p.startsWith('skills/')) return isSkillPathRelevant(p);
92
+ // SHIPPED .claude paths (package.json `files`): .claude/hooks/** and the
93
+ // built-in .claude/skills/<name>/ dirs are hand-maintained behavior that
94
+ // reaches the fleet via npm — NOT exempt (the second-pass-review fix). Other
95
+ // .claude/** is agent-local and not shipped → exempt.
96
+ if (p.startsWith('.claude/hooks/')) return true;
97
+ if (p.startsWith('.claude/skills/') && SHIPPED_CLAUDE_SKILLS.some((n) => p.startsWith(`.claude/skills/${n}/`))) {
98
+ return isSkillPathRelevant(p);
99
+ }
100
+
101
+ // ── Everything else: a bare *.md, assets, examples, site, etc. → exempt.
102
+ return false;
103
+ }
104
+
105
+ /** Built-in .claude/skills/<name> dirs shipped via package.json `files`. */
106
+ const SHIPPED_CLAUDE_SKILLS = ['setup-wizard', 'secret-setup', 'autonomous', 'build'];
107
+
108
+ /**
109
+ * Within a skill dir, classify a path. FAIL TOWARD RELEVANT: a SKILL.md, a
110
+ * templates/ file, or ANY code/data file is relevant; only a bare doc *.md that
111
+ * is NOT a SKILL.md and NOT under templates/ is exempt. (Broadened from a fixed
112
+ * extension allowlist so .cjs/.py/.json and future code types are not silently
113
+ * exempted — the second-pass-review fix.)
114
+ */
115
+ function isSkillPathRelevant(p) {
116
+ if (p.endsWith('/skill.md')) return true;
117
+ if (p.includes('/templates/')) return true;
118
+ if (p.endsWith('.md')) return false; // a non-SKILL.md skill doc
119
+ return true; // any other file under a skill ships behavior/data
120
+ }
121
+
122
+ /**
123
+ * Classify a list of changed-file paths.
124
+ * @param {string[]} paths
125
+ * @returns {{ relevant: string[], exempt: string[] }}
126
+ */
127
+ export function classifyPaths(paths) {
128
+ const relevant = [];
129
+ const exempt = [];
130
+ for (const raw of paths) {
131
+ const c = canonicalizePath(raw);
132
+ const display = c && !c.escaped ? c.path : (typeof raw === 'string' ? raw.trim() : String(raw));
133
+ if (isReleaseRelevant(raw)) relevant.push(display);
134
+ else if (display) exempt.push(display);
135
+ }
136
+ return { relevant, exempt };
137
+ }
138
+
139
+ /**
140
+ * The current top-level shipped/runtime roots, derived from package.json `files`.
141
+ * Used by the anti-drift guard test: a NEW top-level root the predicate does not
142
+ * explicitly classify must fail the test, so a future release-bearing directory
143
+ * cannot silently fall through as a false-negative (spec D6 anti-drift rule).
144
+ * @param {string[]} filesWhitelist package.json `files`
145
+ * @returns {string[]} distinct top-level segments
146
+ */
147
+ export function shippedTopLevelRoots(filesWhitelist) {
148
+ const roots = new Set();
149
+ for (const entry of filesWhitelist || []) {
150
+ const c = canonicalizePath(entry);
151
+ if (!c || c.escaped) continue;
152
+ const top = c.path.split('/')[0];
153
+ if (top) roots.add(top);
154
+ }
155
+ return [...roots].sort();
156
+ }
157
+
158
+ // ── CLI: classify a newline/comma-separated list of paths from argv/stdin ──
159
+ const invokedDirectly =
160
+ process.argv[1] && import.meta.url === new URL(`file://${process.argv[1]}`).href;
161
+
162
+ if (invokedDirectly) {
163
+ const arg = process.argv.slice(2).join(' ').trim();
164
+ let input = arg;
165
+ if (!input) {
166
+ try { input = require('node:fs').readFileSync(0, 'utf8'); } catch { input = ''; }
167
+ }
168
+ const paths = input.split(/[\n,]/).map((s) => s.trim()).filter(Boolean);
169
+ const { relevant, exempt } = classifyPaths(paths);
170
+ process.stdout.write(JSON.stringify({ relevant, exempt, releaseRelevant: relevant.length > 0 }, null, 2) + '\n');
171
+ }
@@ -0,0 +1,133 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * release-skip-annotate (Layer 2, publish-side) — when the publish pipeline is
4
+ * about to SKIP a release (no fragment → no version), check whether
5
+ * release-relevant work has merged since the last published tag, and if so emit
6
+ * a LOUD, count-capped annotation + step summary instead of a silent green run.
7
+ *
8
+ * Spec: docs/specs/RELEASE-FRAGMENT-GATE-SPEC.md (Layer 2, D1/D7/D11).
9
+ *
10
+ * It is a SIGNAL: it NEVER fails the run (always exits 0) and NEVER claims to
11
+ * raise an Attention item (a CI runner cannot reach the agent's Attention store —
12
+ * the durable surface is the agent-side ReleaseReadinessSentinel). Commit data is
13
+ * read NUL-delimited via execFile argv arrays — never a shell string — and never
14
+ * echoed raw through `::`-prefixed workflow commands beyond the bounded message.
15
+ *
16
+ * Boundary (D11): the authoritative window start is the most recent annotated
17
+ * `vX.Y.Z` tag (written only by the release bot, so it is NOT PR-mutable). A
18
+ * missing/unparseable boundary surfaces ALL reachable commits with an eval-note —
19
+ * never a silent empty range.
20
+ *
21
+ * Pure `classifyRange({ files })` is exported for testing; the CLI does the git I/O.
22
+ */
23
+
24
+ import { execFileSync } from 'node:child_process';
25
+ import fs from 'node:fs';
26
+ import { isReleaseRelevant } from './release-relevant-paths.mjs';
27
+
28
+ /**
29
+ * Given a list of changed file paths in the unreleased window, return the
30
+ * release-relevant subset.
31
+ * @param {{ files: string[] }} input
32
+ * @returns {{ relevant: string[] }}
33
+ */
34
+ export function classifyRange({ files }) {
35
+ const relevant = (files || []).filter((f) => isReleaseRelevant(f));
36
+ return { relevant };
37
+ }
38
+
39
+ function git(args) {
40
+ // argv array — never a shell string. NUL-delimited callers split on \0.
41
+ return execFileSync('git', args, { encoding: 'utf8', maxBuffer: 64 * 1024 * 1024 });
42
+ }
43
+
44
+ /** Most recent annotated vX.Y.Z tag reachable from HEAD, or null. */
45
+ function lastReleaseTag() {
46
+ try {
47
+ const out = git(['describe', '--tags', '--match', 'v[0-9]*', '--abbrev=0']).trim();
48
+ return out || null;
49
+ } catch {
50
+ return null;
51
+ }
52
+ }
53
+
54
+ /** Changed files in <range> as an array (NUL-delimited, opaque). */
55
+ function changedFilesInRange(range) {
56
+ // --name-only -z gives NUL-delimited filenames; we never shell-interpolate them.
57
+ const raw = git(['diff', '--name-only', '-z', range]);
58
+ return raw.split('\0').map((s) => s.trim()).filter(Boolean);
59
+ }
60
+
61
+ /** Distinct commit subjects in <range> (count-capped, for the summary only). */
62
+ function commitSubjects(range, cap) {
63
+ try {
64
+ const raw = git(['log', '--no-merges', '--format=%s%x00', range]);
65
+ return raw.split('\0').map((s) => s.trim()).filter(Boolean).slice(0, cap);
66
+ } catch {
67
+ return [];
68
+ }
69
+ }
70
+
71
+ const invokedDirectly =
72
+ process.argv[1] && import.meta.url === new URL(`file://${process.argv[1]}`).href;
73
+
74
+ if (invokedDirectly) {
75
+ const SUMMARY_CAP = 20;
76
+ const emit = (line) => process.stdout.write(line + '\n');
77
+ const summaryFile = process.env.GITHUB_STEP_SUMMARY;
78
+ const writeSummary = (text) => {
79
+ if (summaryFile) {
80
+ try { fs.appendFileSync(summaryFile, text + '\n'); } catch { /* best effort */ }
81
+ }
82
+ };
83
+
84
+ // NEVER throw out of here — Layer 2 is signal-only; always exit 0.
85
+ try {
86
+ const tag = lastReleaseTag();
87
+ const range = tag ? `${tag}..HEAD` : null;
88
+ let files;
89
+ let boundaryNote = '';
90
+ if (range) {
91
+ files = changedFilesInRange(range);
92
+ } else {
93
+ // Missing boundary (e.g. first publish before any vX.Y.Z tag) — surface
94
+ // ALL reachable commits with an eval-note, never a silent empty range.
95
+ boundaryNote = ' (no release tag found — surfacing all reachable history)';
96
+ files = (() => { try { return git(['ls-files']).split('\n').map((s) => s.trim()).filter(Boolean); } catch { return []; } })();
97
+ }
98
+
99
+ const { relevant } = classifyRange({ files });
100
+ if (relevant.length === 0) {
101
+ emit(`::notice::release-skip-annotate: skip is clean — no release-relevant changes since ${tag ?? '(no tag)'}.`);
102
+ process.exit(0);
103
+ }
104
+
105
+ const subjects = range ? commitSubjects(range, SUMMARY_CAP) : [];
106
+ const capped = relevant.slice(0, SUMMARY_CAP);
107
+ const oneLine =
108
+ `release SKIPPED but ${relevant.length} release-relevant file(s) merged since ${tag ?? 'the start'}${boundaryNote} ` +
109
+ `with NO release-note fragment — these changes are NOT being shipped. Add upgrades/next/<slug>.md and re-publish.`;
110
+ emit(`::warning::${oneLine}`);
111
+
112
+ const summary =
113
+ `## ⚠ Release skipped with unreleased release-relevant work\n\n` +
114
+ `The publish run is about to skip (no release-note fragment), but the following ` +
115
+ `release-relevant files merged since \`${tag ?? '(no tag)'}\`${boundaryNote} and will NOT ship until a ` +
116
+ `fragment is added:\n\n` +
117
+ capped.map((f) => `- \`${f}\``).join('\n') +
118
+ (relevant.length > SUMMARY_CAP ? `\n- …and ${relevant.length - SUMMARY_CAP} more` : '') +
119
+ (subjects.length
120
+ ? `\n\nUnreleased commit subjects:\n\n` + subjects.map((s) => `- ${s.replace(/`/g, "'")}`).join('\n')
121
+ : '') +
122
+ `\n\n**Fix:** add \`upgrades/next/<slug>.md\` describing the change (via /instar-dev) and re-publish. ` +
123
+ `The durable, ack-able signal is raised by the agent-side ReleaseReadinessSentinel; this annotation is a ` +
124
+ `best-effort CI surface.\n`;
125
+ writeSummary(summary);
126
+ emit(`::notice::release-skip-annotate verdict=UNRELEASED-WORK count=${relevant.length}`);
127
+ process.exit(0);
128
+ } catch (e) {
129
+ // Signal-only: an internal error must NOT fail the publish run.
130
+ emit(`::warning::release-skip-annotate: internal error (non-fatal, release-skip detection only): ${String(e?.message ?? e)}`);
131
+ process.exit(0);
132
+ }
133
+ }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "./builtin-manifest.schema.json",
3
3
  "schemaVersion": 1,
4
- "generatedAt": "2026-06-27T16:58:29.916Z",
5
- "instarVersion": "1.3.686",
4
+ "generatedAt": "2026-06-27T21:14:22.583Z",
5
+ "instarVersion": "1.3.688",
6
6
  "entryCount": 202,
7
7
  "entries": {
8
8
  "hook:session-start": {
@@ -0,0 +1,26 @@
1
+ # Upgrade Guide — vNEXT
2
+
3
+ <!-- assembled-by: assemble-next-md -->
4
+ <!-- bump: patch -->
5
+
6
+ ## What Changed
7
+
8
+ The outbound tone gate (`MessagingToneGate`) no longer false-positives on user-facing share links. Its `B5_API_ENDPOINT` rule was firing on **any** URL with a host, port, and path — because the `api-endpoint` detector flags every URL and the rule blocked a link "handed to the user to call/open." That swept up the normal way an agent shares a rendered doc: private-view links (`/view/<id>?token=…`), Cloudflare tunnel URLs, published/Telegraph pages, and dashboard links.
9
+
10
+ B5 is now intent-judged: it blocks only a URL handed to the user as an API to **call** themselves (`curl`/`POST`/"hit this endpoint"), and explicitly **passes** a URL meant to be **opened/clicked/visited** in a browser — even though it has a host, a port, and a path. Worked examples on both sides were added so the model judges by call-vs-open intent, not by URL shape, and the `ALWAYS ALLOWED` list now names the exact link classes that must never be blocked. The fix is entirely in the gate's LLM-authority prompt; the brittle detector is unchanged (it stays a broad signal), so no new blocking authority is introduced.
11
+
12
+ ## What to Tell Your User
13
+
14
+ If your agent had started blocking its own "here's your link" messages — saying its safety gate was treating a view/doc link as an exposed endpoint — that's fixed. Signed view links, tunnel URLs, and published pages now pass through cleanly. A genuine "run this curl command yourself" instruction is still held back, as intended.
15
+
16
+ ## Summary of New Capabilities
17
+
18
+ No new capabilities or endpoints — this is a correctness fix to an existing internal gate. Agents simply stop having their legitimate share links blocked.
19
+
20
+ ## Evidence
21
+
22
+ - `src/core/MessagingToneGate.ts` — rewritten `B5_API_ENDPOINT` rule (call-vs-open, worked examples both sides) + strengthened `ALWAYS ALLOWED` URL line.
23
+ - `tests/unit/MessagingToneGate.test.ts` — `describe('B5 link carve-out (prompt teaches call-vs-open)')`: 5 tests covering intent-not-shape wording, the named click/open link classes, a retained BLOCK worked example for a call-target, the ALWAYS-ALLOWED browser-open phrasing, and end-to-end plumbing on both verdicts.
24
+ - `tests/unit/GateSignalDetectors.test.ts` — documents that the `api-endpoint` detector intentionally fires on click/open destinations too (the authority judges call-vs-open).
25
+ - Local: `npx vitest run` on both files → 57 passed; `npm run build` → OK.
26
+ - Live reproduction during development: a Telegram reply quoting a literal `http://localhost:4042/foo` was blocked by the pre-fix gate — the bug, observed first-hand.
@@ -0,0 +1,61 @@
1
+ # Upgrade Guide — vNEXT
2
+
3
+ <!-- assembled-by: assemble-next-md -->
4
+ <!-- bump: patch -->
5
+
6
+ ## What Changed
7
+
8
+ Added the **release-fragment-gate** so a release-affecting PR can no longer merge and
9
+ then SILENTLY skip the release (the 2026-06-27 incident: PRs #1295-#1297 merged with
10
+ no `upgrades/next/` fragment, the publish ran green and cut no version, fixes stranded
11
+ ~7h).
12
+
13
+ The fragment requirement already existed as a HARD local pre-push gate
14
+ (`pre-push-gate.js §3b`) — but husky runs only on a local `git push`, so the
15
+ server-side squash/bot/auto-merge path bypassed it. This change moves the same
16
+ requirement to the merge boundary, server-side, where it can't be routed around:
17
+
18
+ - **Layer 1 — `release-fragment-gate` CI check** (`.github/workflows/release-fragment-gate.yml`
19
+ + `scripts/check-release-fragment.mjs`): on every PR to `main`, a release-relevant
20
+ change with no fragment is flagged. Ships **warn-only** (reports the verdict, never
21
+ blocks) until the spec's D3 criterion is met and it's registered as a required check.
22
+ Security-hardened: `on: pull_request` (never `pull_request_target`), read-only token,
23
+ the gate code loads from the BASE ref (never PR-head), and the bot exemption keys on
24
+ authenticated identity, not a spoofable title. Fail-closed.
25
+ - **Shared predicate** (`scripts/release-relevant-paths.mjs`): one "is this
26
+ release-relevant?" answer, consumed by both the PR gate and the local pre-push gate
27
+ (`§3b` is broadened from `src/**.ts` to also catch `scripts/`, `.github/workflows/`,
28
+ `package.json`, skill code, and shipped `.claude/hooks` + `.claude/skills`).
29
+ - **Layer 2 — loud-skip backstop**: the publish pipeline now emits a loud warning +
30
+ step summary when it would skip with unreleased release-relevant work
31
+ (`scripts/release-skip-annotate.mjs`, signal-only, never fails the run), and the
32
+ `ReleaseReadinessSentinel` gains a **fast-trigger** so a missing-fragment merge
33
+ surfaces immediately instead of waiting out the multi-day age floor.
34
+
35
+ ## What to Tell Your User
36
+
37
+ If a release ever stops cutting versions, the cause is almost always a merged change
38
+ with no "what changed" note — and now you'll be told loudly instead of finding a
39
+ green-but-empty release run hours later. Maintainer agents get an immediate heads-up
40
+ when finished work is sitting unreleased for that reason. Nothing changes for everyday
41
+ users; this is release-pipeline safety for the people who ship instar.
42
+
43
+ ## Summary of New Capabilities
44
+
45
+ - A server-side PR check that catches a release-affecting change shipped without a
46
+ release note, before it merges (starts in warn-only mode).
47
+ - One shared rule for "does this change need a release note?", used by both the
48
+ server check and the local pre-push check.
49
+ - A loud alarm (instead of a silent green run) when the publish pipeline skips a
50
+ release that still has unreleased work, plus an immediate maintainer heads-up.
51
+
52
+ ## Evidence
53
+
54
+ 57 new unit tests (the shared predicate incl. adversarial path-evasion + an anti-drift
55
+ ownership guard, the Layer-1 decision table incl. the bot-spoof evasion case, and the
56
+ Layer-2 classifier) + the extended ReleaseReadinessSentinel suite (fast-trigger fires
57
+ for the missing-fragment case, does NOT fire for a coverage-gap block, honors its
58
+ off-switch). tsc clean. Driven by the converged + approved
59
+ RELEASE-FRAGMENT-GATE-SPEC (3-round spec-converge, 6 internal + codex/gemini external
60
+ reviewers) and an independent second-pass review that caught + fixed a `.claude`
61
+ shipped-path exemption hole before commit.
@@ -0,0 +1,34 @@
1
+ # Tone Gate B5 — Stop Blocking the Links Agents Share — Plain-English Overview
2
+
3
+ > The one-line version: the outbound safety gate was blocking the very links an agent uses to share a doc with you (private-view links, tunnel URLs, published pages) because they *look* like an API endpoint — so we taught it to judge a link by whether you CLICK it or CALL it, not by its shape.
4
+
5
+ ## The problem in one breath
6
+
7
+ Every message an agent sends you passes through a small safety gate that blocks technical leakage — things like a raw API endpoint you'd be told to `curl`. One of its rules ("B5") was firing on *any* URL that has a host, a port, and a path. A signed view link like `…/view/abc?token=…` has exactly that shape, so the gate was blocking the agent's normal "here's your rendered doc" link as if it were an exposed endpoint. Multiple agents hit this. It's the gate failing its own standard: a gate with this much power should be smart enough to tell a useful link from a security problem.
8
+
9
+ ## What already exists
10
+
11
+ - **The outbound tone gate** — a Haiku-backed reviewer that reads each outbound message and either passes it or blocks it, citing exactly one rule. It already has an "ALWAYS ALLOWED" list that *included* "URLs the user can click to visit" — but only as a vague one-liner.
12
+ - **A set of brittle detectors** — cheap pattern-matchers that flag "this message contains something that looks like a CLI command / file path / API endpoint." They are deliberately dumb. The `api-endpoint` detector flags *every* URL, because it can't tell a click-target from a call-target. That's fine — it's only a *signal*.
13
+ - **The signal-vs-authority split** — the detectors raise signals; the LLM is the *authority* that makes the final call using context. The bug was in the authority's instructions, not the detector.
14
+
15
+ ## What this adds
16
+
17
+ The fix is entirely in the gate's instructions (its prompt) plus tests — no new code path, no new blocking power. We rewrote the B5 rule so it fires only when a URL is handed to you as an API to **call yourself** (curl/POST/"hit this endpoint"), and we told it explicitly to **never** block a URL you're meant to **open/click/visit** — a private-view link (even one carrying a `?token=`), a Cloudflare tunnel URL, a published or Telegraph page, a dashboard link, a download link. We added worked examples on *both* sides so the model judges by intent, not by the host:port/path shape. The weak "URLs you can click" line in the ALWAYS-ALLOWED list was promoted to name those exact link kinds.
18
+
19
+ ## The new pieces
20
+
21
+ - **Rewritten B5 rule** — now says, in plain terms: a detected URL alone is never a block; decide from how it's being used. Call-target → block. Open/click destination → pass, even though it has a host, port, and path.
22
+ - **Strengthened ALWAYS-ALLOWED line** — names private-view links, tunnel URLs, published/Telegraph pages, dashboard links, and download links as content destinations that are never blocked under B5.
23
+
24
+ ## The safeguards
25
+
26
+ **Prevents over-blocking (the bug).** The whole point: real, clickable share links now pass. Tests lock the prompt so a future edit can't silently drop the carve-out.
27
+
28
+ **Prevents under-blocking (the worry).** A genuine "run `curl http://…/commitments`" instruction is still blocked as B5. A worked BLOCK example and a test assert this side of the line, so loosening the click-case doesn't open a hole for call-targets.
29
+
30
+ **No new authority.** The change only makes the existing smart authority smarter and *reduces* false-positive blocking. The brittle detector is untouched and keeps being just a signal.
31
+
32
+ ## What ships when
33
+
34
+ It's a single self-contained change — the prompt rewrite, the strengthened allow-line, and the tests ship together in one patch release. Existing agents get it automatically when they update to the new instar version, because the gate is core server code, not an installed template. There's nothing to turn on and nothing to migrate.
@@ -0,0 +1,136 @@
1
+ # Side-Effects Review — release-fragment-gate
2
+
3
+ Spec: `docs/specs/RELEASE-FRAGMENT-GATE-SPEC.md` (converged + approved).
4
+ Change: a server-side PR-time CI gate + a shared release-relevant predicate + a
5
+ publish-side loud-skip annotation + a ReleaseReadinessSentinel fast-trigger, so a
6
+ release-affecting PR can no longer merge and then silently skip the release.
7
+
8
+ ## 1. Over-block — what legitimate inputs does this reject that it shouldn't?
9
+
10
+ - **Layer 1 (PR gate):** a release-relevant PR with no fragment is FAILED. False
11
+ positives = a `src/`/`scripts/` change with genuinely no user impact (refactor,
12
+ logging). Mitigation: the one-line `internal-only` fragment opt-out (diff-verified,
13
+ auditable) clears it. AND the gate **ships warn-only** — it cannot block anything
14
+ until the D3 criterion is met and it is manually registered as required. So
15
+ over-block has zero blast radius at ship time.
16
+ - **Predicate:** biases toward "relevant" on a `..` path (safe direction) — a
17
+ theoretical over-block, but such paths don't occur in normal PRs.
18
+
19
+ ## 2. Under-block — what failure modes does this still miss?
20
+
21
+ - Layer 1 checks fragment **presence, not content** (it has only the file list; reading
22
+ content would require executing PR-head code — the security vector we explicitly
23
+ avoid). A junk/empty fragment passes Layer 1 — but does NOT re-open the silent skip:
24
+ `assemble-next-md` THROWS on a content-less fragment (a loud RED publish), and
25
+ `pre-push-gate §3c` diff-verifies the internal-only legitimacy. Worst case = a loud
26
+ downstream failure, never a silent green.
27
+ - A direct push to `main` that bypasses PRs entirely (admin/ruleset escape) skips
28
+ Layer 1 — caught by Layer 2 (the Sentinel poller reads `main` independent of CI).
29
+ - `[skip ci]` on a release-relevant push disables the publish job (incl. the Layer-2
30
+ annotation) — again caught by the agent-side Sentinel poller, not CI.
31
+
32
+ ## 3. Level-of-abstraction fit
33
+
34
+ Correct layer. The fragment requirement already existed at the **local** (husky)
35
+ layer; this moves the SAME requirement to the **server/merge-boundary** layer where
36
+ it can't be bypassed, and the durable backstop sits in the **agent-side Sentinel**
37
+ that already owns "unreleased work is piling up." No new parallel watcher — the
38
+ Sentinel is extended (fast-trigger), and the existing eli16-pr-gate establishes the
39
+ blocking-presence-check precedent the Layer-1 gate mirrors.
40
+
41
+ ## 4. Signal vs authority compliance (docs/signal-vs-authority.md)
42
+
43
+ Declared explicitly in the spec's `## Signal vs. Authority` section.
44
+ - **Layer 1 = AUTHORITY** but its veto is an OBJECTIVE BINARY ("a fragment file is
45
+ present, yes/no") — the same shape as eli16-pr-gate, NOT a brittle judgment wearing
46
+ blocking authority. The fallible `release-relevant` path predicate is a SIGNAL whose
47
+ false-positives are always escapable via the one-line opt-out — the escape hatch, not
48
+ the predicate's correctness, carries the authority.
49
+ - **Layer 2 = SIGNAL** — the publish annotation never fails the run; the Sentinel
50
+ surfaces an Attention item, never blocks. Compliant.
51
+
52
+ ## 5. Interactions — shadowing / double-fire / races
53
+
54
+ - `pre-push-gate §3b` now consumes the shared predicate (BROADENED from `src/**.ts`).
55
+ It is the LOCAL gate; Layer 1 is the SERVER gate. They check the same thing at two
56
+ layers (defense in depth) — intentional, not a double-fire (different surfaces; a
57
+ local push that passes still gets the server check on the PR).
58
+ - `inScope()` (instar-dev review-scope) is deliberately NOT merged into the shared
59
+ predicate — it answers a DIFFERENT question ("needs instar-dev review?") and is
60
+ narrower. Merging would silently change which changes require review. Documented.
61
+ - The Sentinel fast-trigger only adds a NEW path (fires LOW when it previously stayed
62
+ silent for the missing-fragment case); it does not change the age-based escalation,
63
+ dedup, hysteresis, or resolve logic. The existing "stays silent below threshold"
64
+ test was updated to isolate the age semantic (fast-trigger off) — no behavior was
65
+ weakened, a gap was closed.
66
+
67
+ ## 6. External surfaces
68
+
69
+ - A NEW required-eligible CI check appears on instar-repo PRs (warn-only at first).
70
+ - The publish run gains a `::warning::` + step-summary on a fragment-less skip.
71
+ - The Sentinel may post an Attention item sooner (LOW, immediately) for the
72
+ missing-fragment case. Same surface (Attention queue), earlier timing.
73
+ - No change visible to end-user agents (this is instar-repo dev infrastructure;
74
+ `.github/` does not ship to the fleet; `scripts/` ships but is CI/gate-only).
75
+
76
+ ## 7. Multi-machine posture (Cross-Machine Coherence)
77
+
78
+ - **Layer 1 + Layer 2 publish annotation:** run in GitHub Actions — machine-agnostic,
79
+ no agent state, no multi-machine concern.
80
+ - **Layer 2 Sentinel fast-trigger:** MACHINE-LOCAL BY DESIGN. The `release-readiness-check`
81
+ job is single-owner (one dev agent runs it); dedup state lives in
82
+ `.instar/state/release-readiness.json`. No fenced lease needed — the dedup is advisory
83
+ and the boundary truth lives in `main` (not agent-local), so the worst case if two
84
+ agents ran it is a duplicate Attention raise (re-derived from `main`), never a lost
85
+ signal. On topic/machine transfer the new host re-derives from `main`. Documented in
86
+ the spec's Cross-machine posture section.
87
+
88
+ ## 8. Rollback cost
89
+
90
+ - **Layer 1 workflow:** delete/disable `.github/workflows/release-fragment-gate.yml`
91
+ (or it stays warn-only = non-blocking by default — zero rollback urgency).
92
+ - **Layer 2 publish step:** the new step is `if: skip==true` and exits 0 always;
93
+ removing it is a one-line revert. It cannot break a real publish (it only runs on the
94
+ skip branch and never fails).
95
+ - **Sentinel fast-trigger:** config off-switch `fastTriggerOnGuideBlock: false` (no
96
+ restart-blocking); or revert the src change. The feature ships behind the existing
97
+ `release-readiness-check` job which is `enabled: false` by default, so on the fleet
98
+ it is inert until explicitly enabled.
99
+ - **Shared predicate / pre-push §3b broadening:** the broadening only makes the LOCAL
100
+ gate catch more (scripts/workflows); if it ever false-positives, `INSTAR_PRE_PUSH_SKIP=1`
101
+ is the existing escape and the predicate is a one-file revert.
102
+
103
+ No data migration, no agent-state repair, no hot-fix-release dependency. Every layer
104
+ fails safe (warn-only / signal-only / config-gated-off).
105
+
106
+ ## Second-pass review (Phase 5 — required: touches a gate + a sentinel)
107
+
108
+ An independent reviewer audited the implementation against this artifact.
109
+
110
+ **Concern raised (MEDIUM, RESOLVED):** the shared predicate exempted
111
+ `.claude/hooks/**` and the four shipped `.claude/skills/<name>/` dirs — but those
112
+ ARE shipped to the fleet via `package.json` `files`, so a `.claude`-only behavior
113
+ change would have been wrongly exempt → re-opening the silent-skip for that path
114
+ class. **Fix applied:** the predicate now classifies `.claude/hooks/**` and the
115
+ shipped built-in `.claude/skills/{setup-wizard,secret-setup,autonomous,build}/`
116
+ paths as release-relevant (non-shipped `.claude/**` stays agent-local/exempt); the
117
+ anti-drift test's `KNOWN['.claude']` was corrected to `relevant` and path tests
118
+ added.
119
+
120
+ **Concern raised (LOW, RESOLVED):** the skills-code extension allowlist
121
+ (`.sh/.mjs/.js/.ts`) silently exempted `.cjs`/`.py`/`.json`. **Fix applied:** the
122
+ skill-path classifier now FAILS TOWARD RELEVANT — any non-doc file under a skill is
123
+ relevant; only a bare non-SKILL.md `*.md` outside `templates/` is exempt. Tests
124
+ added for `.cjs`/`.py`.
125
+
126
+ **Concern noted (LOW/INFO, ACCEPTED):** the bot exemption fires for any
127
+ `github-actions[bot]`-authored PR, not strictly the release-cut PR. Keyed on
128
+ authenticated identity (not a spoofable title — evasion test confirms), and Layer 2
129
+ + the Sentinel backstop it. Acceptable; narrow only if a non-release bot ever opens
130
+ release-relevant PRs.
131
+
132
+ **Reviewer verdict on everything else: Concur — no material concerns.** Layer-1
133
+ security (base-ref load, read-only perms, no PR-head exec, env-passing), fail-closed
134
+ behavior, signal-only Layer-2 annotation (NUL-delimited argv, always exit 0),
135
+ publish-step gating, and the strictly-additive Sentinel fast-trigger were all
136
+ independently confirmed correct.
@@ -0,0 +1,122 @@
1
+ # Side-Effects Review — Tone Gate B5: stop blocking user-facing share links
2
+
3
+ **Version / slug:** `tone-gate-b5-link-carveout`
4
+ **Date:** `2026-06-27`
5
+ **Author:** `echo`
6
+ **Second-pass reviewer:** `echo (dedicated reviewer subagent)`
7
+
8
+ ## Summary of the change
9
+
10
+ The outbound MessagingToneGate's B5_API_ENDPOINT rule was blocking user-facing share links — private-view links (`/view/<id>?token=…`), Cloudflare tunnel URLs, published/Telegraph pages, dashboard links — as "exposed endpoints." The `api-endpoint` detector flags **every** URL (it cannot distinguish a call-target from a click-target), and the B5 prompt rule said to block when a URL was "handed to the user to call/**open**." A clickable share link is "handed to the user to open," so the authority blocked it. Reported by multiple agents on and off this machine. Files touched: `src/core/MessagingToneGate.ts` (B5 rule text + ALWAYS-ALLOWED line), `tests/unit/MessagingToneGate.test.ts` (5 prompt/plumbing tests), `tests/unit/GateSignalDetectors.test.ts` (1 detector-breadth test). The only decision point touched is the B5 authority instruction — a prompt-layer change that **relaxes** an over-tight gate; no new code path, no new blocking authority.
11
+
12
+ ## Decision-point inventory
13
+
14
+ - `MessagingToneGate.buildPrompt` → B5_API_ENDPOINT rule (line ~807) — **modify** — narrow B5 to fire only on call-targets; explicitly pass open/click destinations; add worked examples both sides.
15
+ - `MessagingToneGate.buildPrompt` → ALWAYS ALLOWED section (line ~953) — **modify** — promote the vague "URLs the user can click to visit" to specifically name view/tunnel/published/dashboard/download links as never-block-under-B5.
16
+ - `GateSignalDetectors.detectApiEndpoint` — **pass-through** — unchanged; remains intentionally broad (a signal). Documented with a test, not modified.
17
+
18
+ ---
19
+
20
+ ## 1. Over-block
21
+
22
+ **What legitimate inputs does this change reject that it shouldn't?**
23
+
24
+ This change exists to **remove** an over-block, so it adds none. Before: any message containing a clickable view/tunnel/published link could be blocked under B5. After: those pass. The remaining B5 surface is narrower (call-targets only), so over-block strictly decreases. No new legitimate input is rejected.
25
+
26
+ ---
27
+
28
+ ## 2. Under-block
29
+
30
+ **What failure modes does this still miss?**
31
+
32
+ The risk in loosening B5 is letting a genuine "call this API yourself" instruction through. Mitigated: B5 still blocks a URL handed to the user to call (`curl http://…/commitments`, "hit POST /attention"), with a worked BLOCK example in the prompt and a test asserting that side. A truly adversarial framing — an API call disguised as "just open this" — could in principle pass, but (a) that is an agent-authored message, not untrusted user input, and (b) the same residual existed before for any call-target the model misread; this change does not widen it. The B1 (CLI command) rule still independently catches `curl …` presented as a command to run.
33
+
34
+ ---
35
+
36
+ ## 3. Level-of-abstraction fit
37
+
38
+ **Is this at the right layer?**
39
+
40
+ Yes — exactly. The brittle detector (`detectApiEndpoint`) stays a cheap, broad SIGNAL that flags all URLs. The call-vs-open judgment requires intent and context, which is the AUTHORITY's job (the LLM with the full message). Putting the carve-out in the prompt (authority) rather than teaching the regex (detector) to recognize "view links" is the correct split — a regex trying to enumerate every share-link shape would be brittle and wrong. No higher gate should own this; no lower primitive is being re-implemented.
41
+
42
+ ---
43
+
44
+ ## 4. Signal vs authority compliance
45
+
46
+ **Required reference:** [docs/signal-vs-authority.md](../../docs/signal-vs-authority.md)
47
+
48
+ - [x] **No — but the logic is a smart gate with full conversational context (LLM-backed).** The change lives entirely in the LLM authority's instructions. It adds **no** blocking authority and **reduces** existing false-positive blocking. The brittle detector is untouched and remains signal-only.
49
+
50
+ The fix makes the smart authority smarter; it does not push any judgment down into a brittle detector. Fully compliant — arguably the textbook application of the principle (resolve a false positive at the authority, leave the signal broad).
51
+
52
+ ---
53
+
54
+ ## 5. Interactions
55
+
56
+ - **Shadowing:** B5 sits beside B1–B7 in the same single-verdict prompt. Narrowing B5 cannot shadow another rule; a `curl`-style command is still caught by B1 (cli-command) independently. No shadow created or removed.
57
+ - **Double-fire:** none — one gate, one verdict per call. The `api-endpoint` signal still fires (unchanged); only the authority's use of it narrows.
58
+ - **Races:** none — pure prompt text + tests, no shared state, no lifecycle interaction.
59
+ - **Feedback loops:** none.
60
+
61
+ ---
62
+
63
+ ## 6. External surfaces
64
+
65
+ **Does this change anything visible outside the immediate code path?**
66
+
67
+ - Other agents on the machine: yes, positively — every agent's outbound gate stops blocking their share links once they update.
68
+ - Install base: ships as core server code in the next patch; reaches existing agents on update (see §Migration below).
69
+ - External systems: none. Response shape of `review()` is unchanged (same `{pass, rule, issue, suggestion}`); callers (telegram-reply.sh etc.) see identical structure.
70
+ - Persistent state: none.
71
+ - **Operator surface (Mobile-Complete):** no operator-facing actions added or touched. Not applicable.
72
+
73
+ ---
74
+
75
+ ## 6b. Operator-surface quality
76
+
77
+ No operator surface — not applicable. This change touches only the gate prompt and unit tests; no dashboard renderer, approval page, or grant/secret form is involved.
78
+
79
+ ---
80
+
81
+ ## 7. Multi-machine posture (Cross-Machine Coherence)
82
+
83
+ **machine-local BY DESIGN — and identical on every machine.** The gate prompt is compiled server code shipped with the instar version; each machine runs its own gate over its own outbound messages. There is no per-machine state, no replication needed, and no divergence: every machine on the same version evaluates by the same rules. It emits no user-facing notices of its own (it only passes/holds a message the agent already authored, so one-voice gating is unaffected), holds no durable state (nothing to strand on topic transfer), and generates no URLs (it only *evaluates* URLs the agent wrote — and the fix specifically makes a cross-machine tunnel link survive the gate instead of being blocked). No single-machine assumption.
84
+
85
+ ---
86
+
87
+ ## 8. Rollback cost
88
+
89
+ **Pure code change — revert and ship a patch.** No persistent state, no data migration, no agent-state repair. Reverting the one commit restores the prior B5 wording exactly. During the rollback window the only "regression" is the original bug returning (share links blocked again) — no data loss, no corruption, no user-visible breakage beyond that.
90
+
91
+ **Migration Parity:** N/A for installed-file migration. The gate prompt is core server code (`src/core/MessagingToneGate.ts`), not an agent-installed template/hook/config/skill — so existing agents receive it through the normal version update, with no `PostUpdateMigrator` entry required. **Agent Awareness:** no CLAUDE.md template change — this is a behavior fix to an existing internal gate, not a new capability/endpoint/trigger.
92
+
93
+ ---
94
+
95
+ ## Conclusion
96
+
97
+ The review produced no design changes — the fix is a clean, minimal, authority-layer correction that strictly reduces false-positive blocking while preserving the genuine B5 block on call-targets, with tests locking both sides of the boundary. It is the textbook signal-vs-authority application (broad signal, smart authority). No persistent state, no migration, single-commit rollback. Clear to ship.
98
+
99
+ ---
100
+
101
+ ## Second-pass review (if required)
102
+
103
+ **Reviewer:** echo (dedicated reviewer subagent)
104
+ **Independent read of the artifact: concur**
105
+
106
+ Concur with the review. Audited against all five axes:
107
+ - **Under-block (central risk):** robust. B5 still fires on call-targets; the discriminator is intent not shape, with two worked BLOCK examples vs three PASS. The "API call disguised as open" residual is non-widening — it's agent-authored (not adversarial user input), B1_CLI_COMMAND still independently catches a literal `curl …`, and the pre-fix prompt already said "call/open" so any misread call-target passed before too. Net under-block surface does not increase.
108
+ - **Signal-vs-authority:** fully compliant — the diff is entirely inside `buildPrompt()` string literals (the LLM authority); `detectApiEndpoint` is untouched and stays broad, locked by the new detector-breadth test.
109
+ - **Prompt coherence:** no contradiction — "open a link in a browser" is cleanly outside the general ARTIFACT framing's act-on set (copy/paste/run/edit); the new B5 recasts an open/click URL as content, consistent top-to-bottom.
110
+ - **Test quality:** both sides covered; with the LLM mocked, asserting prompt content + verdict-plumbing is the correct deterministic guarantee and would catch the actual regression (dropping the carve-out / BLOCK example / call-vs-open language fails these).
111
+ - **Interactions:** nothing material missed. Non-blocking note: the `http://localhost:4040/dashboard` PASS example is correct for the *gate's* call-vs-open boundary; a separate pre-existing localhost guard governs the automated-send path independently (different layer). Accurate §5/§6 analysis.
112
+
113
+ Clean, minimal, authority-layer-only correction that strictly reduces false-positive blocking while preserving the genuine B5 block. Clear to ship.
114
+
115
+ ---
116
+
117
+ ## Evidence pointers
118
+
119
+ - `tests/unit/MessagingToneGate.test.ts` → `describe('B5 link carve-out (prompt teaches call-vs-open)')` — 5 tests: prompt teaches call-vs-open intent (not shape); names the exact click/open link classes; keeps a BLOCK worked example for a call-target; ALWAYS-ALLOWED names browser-open URLs; plumbing honors both verdicts (view link passes, curl target blocks).
120
+ - `tests/unit/GateSignalDetectors.test.ts` → "fires on click/open destinations too (intentionally broad)" — documents the detector's deliberate breadth.
121
+ - Live reproduction during this session: an attempted Telegram reply quoting `http://localhost:4042/foo` was blocked by the live (pre-fix) gate — the bug, observed first-hand.
122
+ - Local: `npx vitest run` on both files → 57 passed; `npm run build` → OK.