instar 1.3.998 → 1.3.1000

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.
@@ -54,6 +54,13 @@ export interface CapabilityMap {
54
54
  agentEvolved: number;
55
55
  userConfigured: number;
56
56
  unmapped: number;
57
+ /**
58
+ * Whether the builtin manifest — the source of `instarProvided` provenance — was
59
+ * actually readable. When this is not `loaded`, a low `instarProvided` count means
60
+ * the provenance data is MISSING, not that the agent lacks builtin capabilities.
61
+ * Reported so an absent manifest can never be read as a finding about the agent.
62
+ */
63
+ builtinManifest: 'loaded' | 'not-found' | 'unreadable';
57
64
  };
58
65
  domains: CapabilityDomain[];
59
66
  _links: {
@@ -107,6 +114,48 @@ export interface DriftReport {
107
114
  impact: string;
108
115
  }>;
109
116
  }
117
+ /** Outcome of a builtin-manifest load — see loadBuiltinManifestFrom(). */
118
+ export interface BuiltinManifestLoad {
119
+ entries: Record<string, BuiltinManifestEntry>;
120
+ state: 'loaded' | 'not-found' | 'unreadable';
121
+ path: string | null;
122
+ error: string | null;
123
+ }
124
+ /**
125
+ * Candidate locations for the generated builtin manifest, in resolution order, relative
126
+ * to the directory of the module doing the reading.
127
+ *
128
+ * WHY A LIST AND NOT ONE PATH. The manifest is generated by
129
+ * scripts/generate-builtin-manifest.cjs into `src/data/`, and package.json's `files`
130
+ * ships `src/data` — so the data IS published. But the reader resolved
131
+ * `__dirname/../data`, which is `src/data` in a SOURCE checkout and `dist/data` in a
132
+ * COMPILED install. `dist/data` does not exist: tsc does not copy .json, and nothing else
133
+ * writes it. Verified in a real install — dist/data/builtin-manifest.json ABSENT,
134
+ * src/data/builtin-manifest.json PRESENT (62,717 bytes).
135
+ *
136
+ * So the old path worked in every source checkout (hence every test) and failed in every
137
+ * deployed agent. Both layouts are enumerated rather than picking one, because a build
138
+ * step that copies the file into dist/ is a step that can be skipped — and this read must
139
+ * not depend on it.
140
+ *
141
+ * EXPORTED, and parameterised by `moduleDir`, so tests exercise THIS function rather than
142
+ * a copy of its logic. A test that reimplements the resolution it is checking cannot fail
143
+ * when the resolution changes — which is precisely the class of blindness this bug is
144
+ * made of.
145
+ */
146
+ export declare function builtinManifestCandidates(moduleDir: string): string[];
147
+ /**
148
+ * Load the builtin manifest, reporting WHICH of the three outcomes occurred.
149
+ *
150
+ * The previous implementation returned a bare `{}` for all three — found-and-empty,
151
+ * not-found, and unparseable alike — so a deployed agent reporting zero builtin
152
+ * capabilities was indistinguishable from an agent that genuinely has none. That is the
153
+ * same shape as `catch { return []; }`: an absence rendered as a confident answer.
154
+ *
155
+ * This stays a SIGNAL: a missing manifest still yields an empty entry set and the map
156
+ * still builds. Nothing here throws in production.
157
+ */
158
+ export declare function loadBuiltinManifestFrom(moduleDir: string): BuiltinManifestLoad;
110
159
  export interface BuiltinManifestEntry {
111
160
  id: string;
112
161
  type: string;
@@ -128,11 +177,19 @@ export interface CapabilityMapperConfig {
128
177
  export declare class CapabilityMapper {
129
178
  private config;
130
179
  private builtinManifest;
180
+ /** How the builtin manifest load actually went — see loadBuiltinManifest(). */
181
+ private builtinManifestState;
131
182
  private integrity;
132
183
  private isRefreshing;
133
184
  private lastMap;
134
185
  private lastRefreshTime;
135
186
  constructor(config: CapabilityMapperConfig);
187
+ /**
188
+ * Whether the builtin manifest actually loaded, for callers that must not read an
189
+ * empty capability set as a finding. `not-found`/`unreadable` mean the provenance
190
+ * data is MISSING, not that the agent has no builtin capabilities.
191
+ */
192
+ getBuiltinManifestState(): 'loaded' | 'not-found' | 'unreadable';
136
193
  /**
137
194
  * Perform a full scan and return the capability map.
138
195
  * Persists the manifest with HMAC signing.
@@ -178,6 +235,35 @@ export declare class CapabilityMapper {
178
235
  private get manifestPath();
179
236
  private persistManifest;
180
237
  private loadPersistedManifest;
238
+ /**
239
+ * Candidate locations for the generated builtin manifest, in resolution order.
240
+ *
241
+ * WHY A LIST AND NOT ONE PATH. The manifest is generated by
242
+ * scripts/generate-builtin-manifest.cjs into `src/data/`, and package.json's `files`
243
+ * ships `src/data` — so the data IS published. But the reader resolved
244
+ * `__dirname/../data`, which is `src/data` in a SOURCE checkout and `dist/data` in a
245
+ * COMPILED install. `dist/data` does not exist: tsc does not copy .json, and nothing
246
+ * else writes it. Verified in a real install — dist/data/builtin-manifest.json ABSENT,
247
+ * src/data/builtin-manifest.json PRESENT (62,717 bytes).
248
+ *
249
+ * So the old path worked in every source checkout (hence every test) and failed in
250
+ * every deployed agent. Both layouts are enumerated here rather than picking one,
251
+ * because a build step that copies the file into dist/ is a step that can be skipped —
252
+ * and this read must not depend on it.
253
+ */
254
+ private builtinManifestCandidates;
255
+ /**
256
+ * Load the builtin manifest, reporting WHICH of the three outcomes occurred.
257
+ *
258
+ * The previous implementation returned a bare `{}` for all three — found-and-empty,
259
+ * not-found, and unparseable — so a deployed agent reporting zero builtin capabilities
260
+ * was indistinguishable from an agent that genuinely has none. That is the same shape
261
+ * as `catch { return []; }`: an absence rendered as a confident answer. The state is
262
+ * returned alongside the entries so a caller can tell the difference.
263
+ *
264
+ * This stays a SIGNAL: a missing manifest still yields an empty entry set and the map
265
+ * still builds. Nothing here throws in production.
266
+ */
181
267
  private loadBuiltinManifest;
182
268
  private loadEvolutionProposals;
183
269
  private hashContent;
@@ -1 +1 @@
1
- {"version":3,"file":"CapabilityMapper.d.ts","sourceRoot":"","sources":["../../src/core/CapabilityMapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CapabilityMapper.d.ts","sourceRoot":"","sources":["../../src/core/CapabilityMapper.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,89 @@ import * as path from 'path';
18
18
  import * as crypto from 'crypto';
19
19
  import { fileURLToPath } from 'node:url';
20
20
  import { ManifestIntegrity } from '../security/ManifestIntegrity.js';
21
+ /**
22
+ * Candidate locations for the generated builtin manifest, in resolution order, relative
23
+ * to the directory of the module doing the reading.
24
+ *
25
+ * WHY A LIST AND NOT ONE PATH. The manifest is generated by
26
+ * scripts/generate-builtin-manifest.cjs into `src/data/`, and package.json's `files`
27
+ * ships `src/data` — so the data IS published. But the reader resolved
28
+ * `__dirname/../data`, which is `src/data` in a SOURCE checkout and `dist/data` in a
29
+ * COMPILED install. `dist/data` does not exist: tsc does not copy .json, and nothing else
30
+ * writes it. Verified in a real install — dist/data/builtin-manifest.json ABSENT,
31
+ * src/data/builtin-manifest.json PRESENT (62,717 bytes).
32
+ *
33
+ * So the old path worked in every source checkout (hence every test) and failed in every
34
+ * deployed agent. Both layouts are enumerated rather than picking one, because a build
35
+ * step that copies the file into dist/ is a step that can be skipped — and this read must
36
+ * not depend on it.
37
+ *
38
+ * EXPORTED, and parameterised by `moduleDir`, so tests exercise THIS function rather than
39
+ * a copy of its logic. A test that reimplements the resolution it is checking cannot fail
40
+ * when the resolution changes — which is precisely the class of blindness this bug is
41
+ * made of.
42
+ */
43
+ export function builtinManifestCandidates(moduleDir) {
44
+ return [
45
+ // Source checkout: src/core → src/data. Also an installed layout IF a build ever
46
+ // copies the manifest into dist/data.
47
+ path.join(moduleDir, '..', 'data', 'builtin-manifest.json'),
48
+ // Installed package: dist/core → <packageRoot>/src/data (what `files` actually ships).
49
+ path.join(moduleDir, '..', '..', 'src', 'data', 'builtin-manifest.json'),
50
+ ];
51
+ }
52
+ /**
53
+ * Load the builtin manifest, reporting WHICH of the three outcomes occurred.
54
+ *
55
+ * The previous implementation returned a bare `{}` for all three — found-and-empty,
56
+ * not-found, and unparseable alike — so a deployed agent reporting zero builtin
57
+ * capabilities was indistinguishable from an agent that genuinely has none. That is the
58
+ * same shape as `catch { return []; }`: an absence rendered as a confident answer.
59
+ *
60
+ * This stays a SIGNAL: a missing manifest still yields an empty entry set and the map
61
+ * still builds. Nothing here throws in production.
62
+ */
63
+ export function loadBuiltinManifestFrom(moduleDir) {
64
+ for (const manifestPath of builtinManifestCandidates(moduleDir)) {
65
+ let raw;
66
+ try {
67
+ if (!fs.existsSync(manifestPath))
68
+ continue;
69
+ raw = fs.readFileSync(manifestPath, 'utf-8');
70
+ }
71
+ catch (err) {
72
+ // Present but unreadable (permissions, a truncated write) — a real failure, and NOT
73
+ // the same as absent. Reported rather than falling through to the next candidate,
74
+ // which would hide it behind a second miss.
75
+ //
76
+ // @silent-fallback-ok — this is the OPPOSITE of a silent fallback and is the point
77
+ // of this change. The exception is converted into an explicit, observable
78
+ // `unreadable` state carrying the path and the error message, surfaced to callers as
79
+ // `summary.builtinManifest`. The code this replaced was the genuine silent fallback:
80
+ // `catch { /* fall through */ } return {}`, which made an unreadable manifest
81
+ // indistinguishable from an agent with no builtin capabilities.
82
+ return {
83
+ entries: {}, state: 'unreadable', path: manifestPath,
84
+ error: err instanceof Error ? err.message : String(err),
85
+ };
86
+ }
87
+ try {
88
+ const data = JSON.parse(raw);
89
+ return { entries: data.entries ?? {}, state: 'loaded', path: manifestPath, error: null };
90
+ }
91
+ catch (err) {
92
+ // @silent-fallback-ok — same rationale as the read catch above: a parse failure
93
+ // becomes an explicit `unreadable` state with the offending path and the parse
94
+ // error, not a swallowed exception. The whole purpose of this function is that
95
+ // "could not read it" and "it was empty" stop being the same answer.
96
+ return {
97
+ entries: {}, state: 'unreadable', path: manifestPath,
98
+ error: err instanceof Error ? err.message : String(err),
99
+ };
100
+ }
101
+ }
102
+ return { entries: {}, state: 'not-found', path: null, error: null };
103
+ }
21
104
  // ── Domain Definitions ───────────────────────────────────────────────
22
105
  const DOMAINS = {
23
106
  communication: {
@@ -65,15 +148,27 @@ const DOMAINS = {
65
148
  export class CapabilityMapper {
66
149
  config;
67
150
  builtinManifest;
151
+ /** How the builtin manifest load actually went — see loadBuiltinManifest(). */
152
+ builtinManifestState;
68
153
  integrity;
69
154
  isRefreshing = false;
70
155
  lastMap = null;
71
156
  lastRefreshTime = null;
72
157
  constructor(config) {
73
158
  this.config = config;
74
- this.builtinManifest = this.loadBuiltinManifest();
159
+ const manifest = this.loadBuiltinManifest();
160
+ this.builtinManifest = manifest.entries;
161
+ this.builtinManifestState = manifest.state;
75
162
  this.integrity = new ManifestIntegrity(path.join(config.stateDir, 'state'));
76
163
  }
164
+ /**
165
+ * Whether the builtin manifest actually loaded, for callers that must not read an
166
+ * empty capability set as a finding. `not-found`/`unreadable` mean the provenance
167
+ * data is MISSING, not that the agent has no builtin capabilities.
168
+ */
169
+ getBuiltinManifestState() {
170
+ return this.builtinManifestState;
171
+ }
77
172
  // ── Public API ───────────────────────────────────────────────────
78
173
  /**
79
174
  * Perform a full scan and return the capability map.
@@ -689,6 +784,7 @@ export class CapabilityMapper {
689
784
  agentEvolved: allCaps.filter(c => c.provenance === 'agent').length,
690
785
  userConfigured: allCaps.filter(c => c.provenance === 'user').length,
691
786
  unmapped: allCaps.filter(c => c.provenance === 'unknown').length,
787
+ builtinManifest: this.builtinManifestState,
692
788
  };
693
789
  const domainLinks = {};
694
790
  for (const d of domains) {
@@ -848,18 +944,39 @@ export class CapabilityMapper {
848
944
  }
849
945
  }
850
946
  // ── Helpers ──────────────────────────────────────────────────────
947
+ /**
948
+ * Candidate locations for the generated builtin manifest, in resolution order.
949
+ *
950
+ * WHY A LIST AND NOT ONE PATH. The manifest is generated by
951
+ * scripts/generate-builtin-manifest.cjs into `src/data/`, and package.json's `files`
952
+ * ships `src/data` — so the data IS published. But the reader resolved
953
+ * `__dirname/../data`, which is `src/data` in a SOURCE checkout and `dist/data` in a
954
+ * COMPILED install. `dist/data` does not exist: tsc does not copy .json, and nothing
955
+ * else writes it. Verified in a real install — dist/data/builtin-manifest.json ABSENT,
956
+ * src/data/builtin-manifest.json PRESENT (62,717 bytes).
957
+ *
958
+ * So the old path worked in every source checkout (hence every test) and failed in
959
+ * every deployed agent. Both layouts are enumerated here rather than picking one,
960
+ * because a build step that copies the file into dist/ is a step that can be skipped —
961
+ * and this read must not depend on it.
962
+ */
963
+ builtinManifestCandidates() {
964
+ return builtinManifestCandidates(path.dirname(fileURLToPath(import.meta.url)));
965
+ }
966
+ /**
967
+ * Load the builtin manifest, reporting WHICH of the three outcomes occurred.
968
+ *
969
+ * The previous implementation returned a bare `{}` for all three — found-and-empty,
970
+ * not-found, and unparseable — so a deployed agent reporting zero builtin capabilities
971
+ * was indistinguishable from an agent that genuinely has none. That is the same shape
972
+ * as `catch { return []; }`: an absence rendered as a confident answer. The state is
973
+ * returned alongside the entries so a caller can tell the difference.
974
+ *
975
+ * This stays a SIGNAL: a missing manifest still yields an empty entry set and the map
976
+ * still builds. Nothing here throws in production.
977
+ */
851
978
  loadBuiltinManifest() {
852
- try {
853
- // Try loading from the installed package first
854
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
855
- const manifestPath = path.join(__dirname, '..', 'data', 'builtin-manifest.json');
856
- if (fs.existsSync(manifestPath)) {
857
- const data = JSON.parse(fs.readFileSync(manifestPath, 'utf-8'));
858
- return data.entries ?? {};
859
- }
860
- }
861
- catch { /* fall through */ }
862
- return {};
979
+ return loadBuiltinManifestFrom(path.dirname(fileURLToPath(import.meta.url)));
863
980
  }
864
981
  loadEvolutionProposals() {
865
982
  const map = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"CapabilityMapper.js","sourceRoot":"","sources":["../../src/core/CapabilityMapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CapabilityMapper.js","sourceRoot":"","sources":["../../src/core/CapabilityMapper.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.998",
3
+ "version": "1.3.1000",
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",
@@ -46,6 +46,7 @@
46
46
  import fs from 'node:fs';
47
47
  import path from 'node:path';
48
48
  import crypto from 'node:crypto';
49
+ import { execFileSync } from 'node:child_process';
49
50
 
50
51
  const ROOT = path.resolve(path.dirname(new URL(import.meta.url).pathname), '..', '..', '..');
51
52
 
@@ -157,6 +158,107 @@ function buildToolchain() {
157
158
  }
158
159
  }
159
160
 
161
+ /**
162
+ * Verify the commit gate is actually INSTALLED before writing a trace that implies it ran.
163
+ *
164
+ * THE FAILURE THIS EXISTS TO CATCH. A worktree created with `git worktree add` and a
165
+ * symlinked (or absent) node_modules has no husky shim, so `core.hooksPath` points at a
166
+ * directory that does not exist. `git commit` then runs NO hook: it prints nothing and
167
+ * succeeds. **A working gate and an uninstalled gate look identical on screen — silence.**
168
+ * That is not hypothetical; it happened on 2026-07-27 and a whole change was committed
169
+ * believing the gate had passed it, when the gate had never executed.
170
+ *
171
+ * The gate cannot report its own absence — an uninstalled hook cannot run to say it is
172
+ * uninstalled. So the check belongs at the nearest chokepoint the agent DOES invoke by
173
+ * hand, which is this script. Writing a trace is the step that asserts "this change came
174
+ * through the skill", and that assertion is false if the gate cannot execute.
175
+ *
176
+ * SCOPE HONESTY: this is a SIGNAL, not an authority. It refuses to write the trace and
177
+ * says why; it cannot block a commit, because the very condition it detects is the one
178
+ * where no commit hook runs. Without a trace an in-scope commit is refused ANYWAY once the
179
+ * hook IS installed — so the two layers compose rather than overlap. Its whole job is to
180
+ * turn a silent absence into a loud one at the moment the agent would otherwise proceed.
181
+ *
182
+ * Set INSTAR_DEV_ALLOW_UNINSTALLED_GATE=1 to proceed anyway (a genuinely hookless
183
+ * environment, e.g. a test harness). The override is recorded IN THE TRACE rather than
184
+ * merely permitted, so a trace written without a live gate can never later be mistaken for
185
+ * one the gate approved.
186
+ */
187
+ function inspectGateInstallation() {
188
+ const result = { installed: false, reason: '', hooksPath: null };
189
+ let hooksPath;
190
+ try {
191
+ hooksPath = execFileSync('git', ['config', '--get', 'core.hooksPath'], {
192
+ cwd: ROOT, encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'],
193
+ }).trim();
194
+ } catch {
195
+ hooksPath = '';
196
+ }
197
+
198
+ if (!hooksPath) {
199
+ // No hooksPath set at all — git falls back to .git/hooks. Check there instead of
200
+ // assuming absence: a repo may legitimately install the hook the classic way.
201
+ let gitDir;
202
+ try {
203
+ gitDir = execFileSync('git', ['rev-parse', '--git-dir'], {
204
+ cwd: ROOT, encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'],
205
+ }).trim();
206
+ } catch {
207
+ // NOT A GIT REPOSITORY AT ALL — the check does not apply.
208
+ //
209
+ // This is not a loophole, it is the check's actual scope. The hazard being guarded
210
+ // is "a git repo whose commit hook will not run". Where there is no repo there is no
211
+ // commit, so there is nothing to gate and nothing to be misled about. Test harnesses
212
+ // that drive this script inside a bare temp directory land here.
213
+ //
214
+ // Deliberately NOT solved by making every such harness set the override env var:
215
+ // that would push the burden onto whoever writes the next test remembering to do it,
216
+ // which is the willpower-over-structure trade this whole change exists to remove.
217
+ // It is also not a meaningful bypass — an agent cannot make the instar repo stop
218
+ // being a git repository.
219
+ return { installed: true, reason: '', hooksPath: null, notApplicable: true };
220
+ }
221
+ const classic = path.resolve(ROOT, gitDir, 'hooks', 'pre-commit');
222
+ if (fs.existsSync(classic)) return { installed: true, reason: '', hooksPath: classic };
223
+ return { ...result, reason: 'core.hooksPath is unset and .git/hooks/pre-commit does not exist' };
224
+ }
225
+
226
+ result.hooksPath = hooksPath;
227
+ const resolved = path.resolve(ROOT, hooksPath);
228
+ if (!fs.existsSync(resolved)) {
229
+ return { ...result, reason: `core.hooksPath is "${hooksPath}" but that directory does not exist — husky is not installed in this worktree (run \`npm ci\` then \`npx husky\`)` };
230
+ }
231
+ const preCommit = path.join(resolved, 'pre-commit');
232
+ if (!fs.existsSync(preCommit)) {
233
+ return { ...result, reason: `core.hooksPath is "${hooksPath}" but it contains no pre-commit hook` };
234
+ }
235
+ return { installed: true, reason: '', hooksPath };
236
+ }
237
+
238
+ const gate = inspectGateInstallation();
239
+ const gateOverridden = process.env.INSTAR_DEV_ALLOW_UNINSTALLED_GATE === '1';
240
+ if (!gate.installed && !gateOverridden) {
241
+ console.error('');
242
+ console.error(' ╔════════════════════════════════════════════════════════════════════╗');
243
+ console.error(' ║ REFUSING to write a trace — the commit gate is NOT installed ║');
244
+ console.error(' ╚════════════════════════════════════════════════════════════════════╝');
245
+ console.error('');
246
+ console.error(` ${gate.reason}`);
247
+ console.error('');
248
+ console.error(' A trace asserts this change came through /instar-dev. With no hook');
249
+ console.error(' installed, `git commit` runs NOTHING and succeeds silently — a passing');
250
+ console.error(' gate and an absent gate look identical on screen. Writing the trace now');
251
+ console.error(' would record an approval that was never given.');
252
+ console.error('');
253
+ console.error(' Fix it in this worktree: npm ci && npx husky');
254
+ console.error(' Then verify: git config core.hooksPath && ls .husky/_');
255
+ console.error('');
256
+ console.error(' If this environment genuinely has no hooks (e.g. a test harness), set');
257
+ console.error(' INSTAR_DEV_ALLOW_UNINSTALLED_GATE=1 — the override is recorded in the trace.');
258
+ console.error('');
259
+ process.exit(1);
260
+ }
261
+
160
262
  const artifactPath = path.resolve(ROOT, artifact);
161
263
  if (!fs.existsSync(artifactPath)) {
162
264
  console.error(`Artifact not found: ${artifact}`);
@@ -235,6 +337,10 @@ const trace = {
235
337
  // Duplicate-build guard §3.4 — omitted when no stub exists so pre-guard
236
338
  // traces round-trip byte-identically.
237
339
  ...(duplicateBuildCheck ? { duplicateBuildCheck } : {}),
340
+ // Recorded ONLY when the gate-installation check was overridden, so a trace written
341
+ // without a live commit gate can never later be mistaken for one the gate approved.
342
+ // Absent on every normal trace, so existing traces round-trip byte-identically.
343
+ ...(gate.installed ? {} : { gateInstallationOverridden: true, gateInstallationReason: gate.reason }),
238
344
  };
239
345
 
240
346
  fs.writeFileSync(traceFile, JSON.stringify(trace, null, 2) + '\n');
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "./builtin-manifest.schema.json",
3
3
  "schemaVersion": 1,
4
- "generatedAt": "2026-07-27T07:59:39.801Z",
5
- "instarVersion": "1.3.998",
4
+ "generatedAt": "2026-07-27T09:44:56.135Z",
5
+ "instarVersion": "1.3.1000",
6
6
  "entryCount": 202,
7
7
  "entries": {
8
8
  "hook:session-start": {
@@ -0,0 +1,60 @@
1
+ # Upgrade Guide — vNEXT
2
+
3
+ <!-- assembled-by: assemble-next-md -->
4
+ <!-- bump: patch -->
5
+
6
+ ## What Changed
7
+
8
+ `skills/instar-dev/scripts/write-trace.mjs` now verifies the instar-dev commit gate is actually
9
+ installed before writing a trace, and refuses with an explanation when it is not.
10
+
11
+ A worktree created with `git worktree add` inherits `core.hooksPath` (typically `.husky/_`) from the
12
+ shared repo config, while that directory does not exist until `npm ci` plus `npx husky` have run. In
13
+ that state `git commit` executes no hook: it prints nothing and succeeds. A working gate and an
14
+ uninstalled gate are indistinguishable on screen, because both are silent — and on 2026-07-27 a
15
+ change was committed on the belief the gate had passed it when the gate had never run.
16
+
17
+ The gate cannot detect its own absence, since an uninstalled hook cannot execute to say so. The check
18
+ therefore lives at the nearest chokepoint invoked by hand: writing the trace, which is the step that
19
+ asserts the change came through the skill. `INSTAR_DEV_ALLOW_UNINSTALLED_GATE=1` overrides it, and
20
+ the override is recorded in the trace so an unguarded trace can never be mistaken for an approved one.
21
+
22
+ ## What to Tell Your User
23
+
24
+ None — internal change (no user-facing surface).
25
+
26
+ ## Summary of New Capabilities
27
+
28
+ None — internal change (no user-facing surface).
29
+
30
+ ## Evidence
31
+
32
+ Verified against a real hookless worktree before any test was written — `core.hooksPath` was already
33
+ `.husky/_` in a freshly added worktree with no shim, confirming silently-no-gate is the default state
34
+ rather than an exotic misconfiguration:
35
+
36
+ ```
37
+ core.hooksPath is ".husky/_" but that directory does not exist — husky is not installed
38
+ ```
39
+
40
+ Falsified by neutering the check in the script:
41
+
42
+ ```
43
+ × THE FIX: refuses to write a trace when hooksPath points at a missing directory
44
+ → expected +0 to be 1
45
+ × refuses when hooksPath is unset AND no classic hook exists
46
+ Tests 2 failed | 4 passed (6)
47
+ ```
48
+
49
+ Restored byte-identical. The over-block was found by running the suites chosen from the diff rather
50
+ than the files authored: the first implementation broke seven tests in `write-trace-tier` and
51
+ `duplicate-build-guard-gates`, both of which drive the script inside bare temp directories. Scoping
52
+ the check to git repositories only fixed it — a directory that is not a repo has no commit to gate.
53
+ Final: `Test Files 3 passed (3) · Tests 23 passed (23)`.
54
+
55
+ ## Known limits
56
+
57
+ The check verifies a pre-commit hook exists; it does not verify it is executable, non-empty, or that
58
+ it is the instar-dev gate rather than another hook. A hook that exits 0 immediately would satisfy it
59
+ while gating nothing. It also cannot help retroactively — a commit already made without the gate
60
+ leaves no marker, because nothing ran to leave one.
@@ -0,0 +1,86 @@
1
+ # Upgrade Guide — vNEXT
2
+
3
+ <!-- assembled-by: assemble-next-md -->
4
+ <!-- bump: patch -->
5
+
6
+ ## What Changed
7
+
8
+ `CapabilityMapper.loadBuiltinManifest()` resolved the builtin manifest as
9
+ `__dirname/../data/builtin-manifest.json`. In a source checkout that is `src/core → src/data`, which
10
+ exists. In a compiled install it is `dist/core → dist/data`, which does not — tsc does not copy JSON
11
+ and nothing else writes it, while the manifest actually ships at `src/data/` via package.json
12
+ `files`.
13
+
14
+ Verified on a real install: `dist/data/builtin-manifest.json` **absent**,
15
+ `src/data/builtin-manifest.json` **present (62,717 bytes)**.
16
+
17
+ The failure was then silent twice over: a missing file fell through to `return {}`, and a parse error
18
+ was caught and also returned `{}`. An empty map is indistinguishable from "this agent has no builtin
19
+ capabilities", so every deployed agent reported zero builtins with nothing saying why.
20
+
21
+ Resolution now enumerates both layouts, and the loader reports `loaded` / `not-found` / `unreadable`.
22
+ That state is surfaced as `summary.builtinManifest` on the capability map, so a low builtin count can
23
+ be told apart from unreadable provenance data. It remains a signal: a missing manifest still yields an
24
+ empty entry set, the map still builds, and nothing throws.
25
+
26
+ ## What to Tell Your User
27
+
28
+ Your agent can now correctly tell which of its abilities came built in.
29
+
30
+ It ships with a list of everything it has out of the box, and it was looking for that list in a
31
+ folder that only exists while the code is being developed, not in the version you actually install.
32
+ So on every installed agent the list came back empty, and your agent quietly reported that it had no
33
+ built-in abilities at all — with nothing to indicate the information had simply failed to load.
34
+
35
+ It now looks in the right place. And if that information is ever genuinely missing or damaged, it
36
+ says so plainly instead of reporting an empty answer as though it were the truth, because a confident
37
+ wrong answer is worse than an honest gap.
38
+
39
+ One thing you may notice: on your next update, the breakdown of where your agent's abilities came
40
+ from will shift, with more of them correctly attributed as built in. That is the fix working, not a
41
+ change in what your agent can do.
42
+
43
+ ## Summary of New Capabilities
44
+
45
+ No new endpoint, command, or configuration. The capability map summary gains a field reporting
46
+ whether the builtin manifest loaded, was not found, or was unreadable.
47
+
48
+ ## Evidence
49
+
50
+ Falsified by restoring each half of the defect in production and confirming the tests fail.
51
+
52
+ Collapsing the candidate list back to the single original path:
53
+
54
+ ```
55
+ × THE BUG: resolves in an INSTALLED layout, where the manifest ships at src/data
56
+ → expected 'not-found' to be 'loaded'
57
+ × a genuinely EMPTY manifest reports loaded — the other side of the boundary
58
+ × an UNPARSEABLE manifest reports unreadable, with the path and the parse error
59
+ × enumerates both layouts, in order
60
+ Tests 4 failed | 4 passed (8)
61
+ ```
62
+
63
+ Conflating a missing manifest with a loaded one:
64
+
65
+ ```
66
+ × a MISSING manifest reports not-found — never confused with loaded-and-empty
67
+ → expected 'loaded' to be 'not-found'
68
+ Tests 2 failed | 6 passed (8)
69
+ ```
70
+
71
+ Both restored byte-identical. Green across every suite touching the changed file:
72
+ `Test Files 4 passed (4) · Tests 181 passed (181)` (`builtin-manifest-resolution`,
73
+ `capability-mapper`, `capability-mapper-advanced`, `builtin-manifest`); `tsc --noEmit` exit 0.
74
+
75
+ The tests were rewritten before landing: the first draft reimplemented the resolution inside the test
76
+ and asserted against that copy, which cannot fail when production changes — the same blindness the
77
+ bug is made of. Production now exports the resolution parameterised by a module directory, and the
78
+ tests call it directly.
79
+
80
+ ## Known limits
81
+
82
+ The load state is reported but not acted on — nothing raises an alert when it is `not-found` on a
83
+ deployed agent, so a broken install still looks normal to anyone not reading the field. And this does
84
+ not settle *why* `dist/data` was expected: if a build step was meant to copy the manifest there, that
85
+ step still does not exist. Reading from both locations is the safer direction, not an answer to that
86
+ question.
@@ -0,0 +1,93 @@
1
+ # Side-effects review — builtin manifest path resolution + load-state honesty
2
+
3
+ **Change:** `CapabilityMapper.loadBuiltinManifest()` resolved `__dirname/../data/builtin-manifest.json`,
4
+ which is `dist/data/` in a compiled install — a directory that does not exist. Resolution now
5
+ enumerates both the source and installed layouts, and reports `loaded` / `not-found` / `unreadable`
6
+ instead of returning a bare `{}` for all three.
7
+
8
+ **Decision point touched?** Yes, in the weak sense: `builtinManifest[id]` drives capability
9
+ *provenance* (instar / agent / user). It gates no action and blocks nothing, but it does decide what
10
+ the map claims about origin — which is why an unreadable manifest silently reading as "no builtins"
11
+ mattered.
12
+
13
+ ---
14
+
15
+ ## 1. Over-block
16
+
17
+ Nothing is newly blocked or rejected. The change is strictly widening (one candidate path becomes
18
+ two) plus an added report field. No input that previously succeeded now fails.
19
+
20
+ The only behavioural sharpening: a manifest that is present but *unparseable* now returns
21
+ `state: 'unreadable'` instead of silently yielding `{}`. Callers still receive an empty entry set, so
22
+ nothing downstream breaks — they simply gain the ability to tell the difference.
23
+
24
+ ## 2. Under-block
25
+
26
+ The load state is reported but not yet *acted on*. `summary.builtinManifest` makes an unreadable
27
+ manifest visible to a reader of `/capability-map`; nothing raises an attention item, logs a warning,
28
+ or fails a health check when it is `not-found` on a deployed agent. That is deliberate for this
29
+ change (signal before authority), and it means an install with a genuinely broken manifest will still
30
+ look normal to anyone not reading the field. Stated rather than implied.
31
+
32
+ Also not addressed: **why** `dist/data` was expected in the first place. If the intended design was
33
+ for the build to copy the manifest into `dist/`, that build step still does not exist. This change
34
+ makes the read work regardless, which is the safer direction, but it does not settle the question.
35
+
36
+ ## 3. Level-of-abstraction fit
37
+
38
+ Correct layer. The defect is in how one module locates its own data file, and the fix is in that
39
+ module. The resolution is exported as a pure function taking a module directory — the minimum needed
40
+ to make it testable — rather than being pushed into a shared path helper, which would be a wider
41
+ change than the bug warrants.
42
+
43
+ ## 4. Signal vs authority compliance
44
+
45
+ Compliant, and improved. The manifest was already a signal (provenance labelling). Previously it
46
+ failed *silently*, which is the pattern `docs/signal-vs-authority.md` warns about: a component that
47
+ cannot report its own degradation. It now reports state while retaining exactly the same
48
+ non-blocking, non-throwing behaviour. No new authority is introduced.
49
+
50
+ ## 5. Interactions
51
+
52
+ `CapabilityMap.summary` gains one field (`builtinManifest`). This is an additive change to a
53
+ serialised read surface consumed by `/capability-map` and its compact rendering. Existing consumers
54
+ that read known fields are unaffected; a consumer doing exact-shape validation on the summary object
55
+ would see a new key.
56
+
57
+ `loadBuiltinManifestFrom` and `builtinManifestCandidates` are newly exported from
58
+ `CapabilityMapper.ts`. That widens the module's public surface by two pure functions with no side
59
+ effects beyond reading a file.
60
+
61
+ No change to when the manifest is loaded (still once, in the constructor), so no new I/O on any hot
62
+ path.
63
+
64
+ ## 6. External surfaces
65
+
66
+ `GET /capability-map` responses gain `summary.builtinManifest`. No endpoint added or removed, no
67
+ config key, no agent-visible behaviour change beyond more accurate provenance on installs where the
68
+ manifest previously failed to load — which is expected to be *all* of them.
69
+
70
+ Worth stating plainly: on deployed agents this change will cause builtin provenance to start
71
+ resolving where it previously did not. Capability counts by provenance will shift — `instarProvided`
72
+ up, `unmapped` down. That is the fix working, but it will look like a change in the numbers.
73
+
74
+ ## 7. Multi-machine posture
75
+
76
+ **Machine-local by design, and correctly so.** The manifest is a static artifact shipped inside the
77
+ installed package: every machine reads its own copy from its own filesystem, and there is nothing to
78
+ replicate, proxy, or reconcile. Two machines on different instar versions will legitimately hold
79
+ different manifests, which is the correct behaviour — the manifest describes *that install*.
80
+
81
+ No `machine-local-justification` marker is needed here because this introduces no new state surface;
82
+ it corrects the path of an existing per-install read.
83
+
84
+ ## 8. Rollback cost
85
+
86
+ Low. Revert the module: the resolution returns to a single path and the summary field disappears.
87
+ No data migration, no persisted state, no schema change, no agent state to repair. Consumers of the
88
+ new summary field would see it vanish, which is why it is additive and optional rather than replacing
89
+ an existing field.
90
+
91
+ The one thing a rollback re-creates is the original defect — deployed agents silently reporting zero
92
+ builtins — so a rollback should be accompanied by an explanation of what failed, or it will look like
93
+ the bug returning on its own.
@@ -0,0 +1,83 @@
1
+ # Side-effects review — write-trace gate-installation self-check
2
+
3
+ **Change:** `skills/instar-dev/scripts/write-trace.mjs` refuses to write a trace when the instar-dev
4
+ commit gate is not installed (hooksPath points at a missing directory, or no pre-commit hook exists).
5
+ Overridable via `INSTAR_DEV_ALLOW_UNINSTALLED_GATE=1`, and the override is recorded in the trace.
6
+
7
+ **Decision point touched?** Yes. This adds a refusal — the script now declines an operation it
8
+ previously always performed. Per `docs/signal-vs-authority.md` the refusal is deliberately scoped as
9
+ a SIGNAL: it cannot block a commit (the detected condition is precisely the one where no commit hook
10
+ runs), it only refuses to emit an artifact that would assert an approval that never happened.
11
+
12
+ ---
13
+
14
+ ## 1. Over-block
15
+
16
+ Real and found during the build, not theorised. The first implementation refused inside any directory
17
+ whose hooks were absent, which broke seven existing tests in `write-trace-tier.test.ts` and
18
+ `duplicate-build-guard-gates.test.ts` — both drive the script inside bare temp directories.
19
+
20
+ Resolved by scoping the check to its actual hazard: a *git repository* whose hook will not run. A
21
+ directory that is not a git repo has no commit to gate, so the check does not apply. Deliberately NOT
22
+ resolved by setting the override env var in each harness — that would push the burden onto whoever
23
+ writes the next test remembering to do it, which is the willpower-over-structure trade this change
24
+ exists to remove.
25
+
26
+ Remaining over-block risk: a repo that installs its pre-commit hook by some mechanism other than
27
+ `core.hooksPath` or `.git/hooks/pre-commit` would be refused incorrectly. No such mechanism is used
28
+ in this repo. The override exists for exactly that case and records itself.
29
+
30
+ ## 2. Under-block
31
+
32
+ The check verifies a pre-commit hook *exists*; it does not verify it is executable, non-empty, or that
33
+ it is actually the instar-dev gate rather than some other hook. A repo with a hook file that exits 0
34
+ immediately would pass this check while gating nothing. Named rather than fixed: deeper verification
35
+ would mean executing or parsing the hook, which is a larger change than the failure being closed.
36
+
37
+ It also cannot help after the fact. A commit already made without the gate leaves no marker, because
38
+ nothing ran to leave one.
39
+
40
+ ## 3. Level-of-abstraction fit
41
+
42
+ Correct, and the placement is the substance of the change. The gate cannot detect its own absence —
43
+ an uninstalled hook cannot execute to report that it is uninstalled — so the check must live in
44
+ something that actually runs. Trace-writing is the nearest chokepoint the agent invokes by hand, and
45
+ it is the step whose whole meaning is "this change came through the skill". Putting the check
46
+ anywhere the agent might skip would reproduce the original problem one layer out.
47
+
48
+ ## 4. Signal vs authority compliance
49
+
50
+ Compliant by construction. It holds no blocking authority over commits and could not acquire any:
51
+ the condition it detects is defined by the absence of the mechanism that would do the blocking. It
52
+ refuses to produce an artifact, which is the weakest possible action, and it fails loudly rather than
53
+ silently. The escape hatch is recorded rather than merely permitted, so an overridden trace is
54
+ distinguishable from an approved one by field presence.
55
+
56
+ ## 5. Interactions
57
+
58
+ Composes with the pre-commit gate rather than duplicating it: without a trace an in-scope commit is
59
+ refused anyway *once the hook is installed*, so the two layers cover different halves of the same
60
+ failure. The trace gains two fields (`gateInstallationOverridden`, `gateInstallationReason`) emitted
61
+ ONLY on override, so every normal trace round-trips byte-identically and existing readers are
62
+ unaffected.
63
+
64
+ Adds two `git config` / `git rev-parse` subprocess calls to a script that already shells out. No hot
65
+ path; runs once per commit at most.
66
+
67
+ ## 6. External surfaces
68
+
69
+ None. `write-trace.mjs` is a development-time script in the instar repo, not shipped behaviour, not
70
+ an endpoint, not agent-visible at runtime. The only observers are instar developers and CI.
71
+
72
+ ## 7. Multi-machine posture
73
+
74
+ Not applicable — this is a development-time script operating on the local checkout. It introduces no
75
+ state, no persistence, and nothing to replicate, proxy, or reconcile. Every machine that develops
76
+ instar runs its own copy against its own worktree, which is the correct and only sensible posture.
77
+
78
+ ## 8. Rollback cost
79
+
80
+ Trivial. Remove the check function and its call site; the trace fields disappear with it (they are
81
+ emitted only on override, so nothing else references them). No data migration, no persisted state, no
82
+ agent state. The rollback re-creates the original silent-gate hazard, so it should be accompanied by
83
+ a reason.