@cstart/coldstart 2.1.1 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/kb/lint.js CHANGED
@@ -10,10 +10,27 @@
10
10
  * orphan flow/lesson never referenced by any other note
11
11
  * absence-stale an absence note's stored search now returns hits
12
12
  * malformed unparseable/invalid raw records (tolerant-reader warnings)
13
+ * ignored-anchor a note anchors a .coldstartignore'd file. Capture
14
+ * filters ignored files AT THE ROOT (the hook's evidence
15
+ * layer), so this only catches leaks from un-elicited
16
+ * writes (MCP kb_write, manual specs). REPORT-only by
17
+ * design — no write-time validation layer.
13
18
  */
14
19
  import { stampCoversTerms } from './notes-index.js';
15
20
  import { stampAnchors } from './freshness.js';
16
21
  import { loadAll } from './store.js';
22
+ /** The hook-side matcher, reused so lint and capture agree byte-for-byte on
23
+ * what "ignored" means (hooks/ sits beside dist/ in repo and package alike).
24
+ * Fail-open: matcher unavailable → no ignored-anchor findings. */
25
+ async function loadIgnoreMatcher(root) {
26
+ try {
27
+ const mod = (await import(new URL('../../hooks/ignore.mjs', import.meta.url).href));
28
+ return mod.loadIgnore(root);
29
+ }
30
+ catch {
31
+ return null;
32
+ }
33
+ }
17
34
  const DUP_JACCARD = 0.6;
18
35
  export async function kbLint(root, notesIndex) {
19
36
  const { notes, warnings } = loadAll(root);
@@ -65,6 +82,17 @@ export async function kbLint(root, notesIndex) {
65
82
  findings.push({ check: 'orphan', note: n.id, detail: `no other note references ${n.id} — fine if new; a signal if old and unused` });
66
83
  }
67
84
  }
85
+ // ignored anchors — notes about files the notebook is told not to note
86
+ const isIgnored = await loadIgnoreMatcher(root);
87
+ if (isIgnored) {
88
+ for (const n of active) {
89
+ for (const a of n.anchors) {
90
+ if (isIgnored(a.path)) {
91
+ findings.push({ check: 'ignored-anchor', note: n.id, detail: `anchors ${a.path} — .coldstartignore'd (capture skips these; this note arrived via an un-elicited write). Retract it or un-ignore the path.` });
92
+ }
93
+ }
94
+ }
95
+ }
68
96
  // absence stamps (keeper re-runs the stored searches; skipped without a notes index)
69
97
  if (notesIndex) {
70
98
  for (const n of active) {
@@ -1 +1 @@
1
- {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/kb/lint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/kb/lint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { WriteSpec } from './write.js';
2
+ export declare const WRITE_GUIDE_SHAPES = "kb write \u2014 spec shapes (JSON, one note per spec; include only fields you have):\n\n file (single purpose \u2014 the DEFAULT for file notes):\n {\"type\":\"file-single\",\"path\":\"src/x.py\",\n \"summary\":\"its one purpose + how (1-3 sentences)\",\n \"aliases\":[\"symptom or search words\"]}\n\n file (hub \u2014 ONLY for grab-bag files with NO single purpose: models.py, utils,\n helpers. One facet PER SYMBOL you worked with. Touching many symbols\n does not make a file a hub; a single-purpose file stays file-single):\n {\"type\":\"file-hub\",\"path\":\"src/y.py\",\"aliases\":[\"search words\"],\n \"facets\":[{\"symbol\":\"ClassOrFn\",\"detail\":\"the non-obvious thing about THIS symbol\",\n \"flows\":[\"<flow id or the flow's exact title>\"]}]}\n\n flow (product-level mechanism \u2014 see the capture checklist's gate):\n {\"type\":\"flow\",\"title\":\"how X happens\",\"aliases\":[\"other words for X\"],\n \"summary\":\"first sentence = the product-level fact the file notes miss\",\n \"steps\":[{\"path\":\"src/a.py\",\"symbols\":[\"entry\"],\"role\":\"receives the request\"}],\n \"invariants\":[\"what must hold\"],\"verified\":[\"src/a.py\"]}\n\n lesson (confirmed ABSENCE only \u2014 one file/symbol facts are facets, not lessons):\n {\"type\":\"lesson\",\"kind\":\"absence\",\"title\":\"no retry logic in this repo\",\n \"body\":\"what you looked for + that it is not there\",\n \"scope\":{\"terms\":[\"search\",\"terms\"]}}\n\n update an existing note: same spec + its \"id\" (fields merge; yours win).\n retract a wrong claim: {\"op\":\"retract\",\"id\":\"<id>\",\"reason\":\"...\"}\n\nRules the writer enforces (fix any WARNING it prints, in this session):\n - paths are join keys: repo-relative, exactly as in the repo\n - \"verified\" re-stamps freshness: list ONLY files you opened this session\n - never compose ids yourself \u2014 reference flows by exact title or an id\n copied from kb search output";
3
+ export declare function writeGuideCli(): string;
4
+ export declare function writeGuideMcp(): string;
5
+ /** Flow-evidence check: how many of the spec's step files did THIS session
6
+ * actually content-read? Reads the capture markers (v2 evidence records)
7
+ * the elicit hooks maintain. No marker → no opinion (returns null). */
8
+ export declare function flowEvidenceCount(spec: WriteSpec, session: string): {
9
+ read: number;
10
+ steps: number;
11
+ } | null;
12
+ /** The WARN text (never a rejection) when a flow's steps lack read evidence.
13
+ * null when the spec is not a flow, no session is known, or evidence is fine. */
14
+ export declare function flowEvidenceWarning(spec: WriteSpec, session: string | undefined): string | null;
15
+ //# sourceMappingURL=write-guide.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-guide.d.ts","sourceRoot":"","sources":["../../src/kb/write-guide.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAK5C,eAAO,MAAM,kBAAkB,0+DAgCE,CAAC;AAElC,wBAAgB,aAAa,IAAI,MAAM,CAStC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAKtC;AAOD;;wEAEwE;AACxE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAsB1G;AAED;kFACkF;AAClF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAS/F"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * write-guide.ts — the `kb write` spec guide + flow-evidence check, shared by
3
+ * the CLI (`kb write` with no spec / --session) and the MCP kb_write tool so
4
+ * both surfaces behave identically (parity rule: every kb surface exists on
5
+ * CLI and MCP with the same semantics; only the invocation howto differs).
6
+ */
7
+ import { readdirSync, readFileSync } from 'node:fs';
8
+ import { join } from 'node:path';
9
+ import { tmpdir } from 'node:os';
10
+ // The capture checklist inlines only the two common file-note shapes
11
+ // (zero-bounce path); everything else lives here so the prompt stays small
12
+ // and this stays current.
13
+ export const WRITE_GUIDE_SHAPES = `kb write — spec shapes (JSON, one note per spec; include only fields you have):
14
+
15
+ file (single purpose — the DEFAULT for file notes):
16
+ {"type":"file-single","path":"src/x.py",
17
+ "summary":"its one purpose + how (1-3 sentences)",
18
+ "aliases":["symptom or search words"]}
19
+
20
+ file (hub — ONLY for grab-bag files with NO single purpose: models.py, utils,
21
+ helpers. One facet PER SYMBOL you worked with. Touching many symbols
22
+ does not make a file a hub; a single-purpose file stays file-single):
23
+ {"type":"file-hub","path":"src/y.py","aliases":["search words"],
24
+ "facets":[{"symbol":"ClassOrFn","detail":"the non-obvious thing about THIS symbol",
25
+ "flows":["<flow id or the flow's exact title>"]}]}
26
+
27
+ flow (product-level mechanism — see the capture checklist's gate):
28
+ {"type":"flow","title":"how X happens","aliases":["other words for X"],
29
+ "summary":"first sentence = the product-level fact the file notes miss",
30
+ "steps":[{"path":"src/a.py","symbols":["entry"],"role":"receives the request"}],
31
+ "invariants":["what must hold"],"verified":["src/a.py"]}
32
+
33
+ lesson (confirmed ABSENCE only — one file/symbol facts are facets, not lessons):
34
+ {"type":"lesson","kind":"absence","title":"no retry logic in this repo",
35
+ "body":"what you looked for + that it is not there",
36
+ "scope":{"terms":["search","terms"]}}
37
+
38
+ update an existing note: same spec + its "id" (fields merge; yours win).
39
+ retract a wrong claim: {"op":"retract","id":"<id>","reason":"..."}
40
+
41
+ Rules the writer enforces (fix any WARNING it prints, in this session):
42
+ - paths are join keys: repo-relative, exactly as in the repo
43
+ - "verified" re-stamps freshness: list ONLY files you opened this session
44
+ - never compose ids yourself — reference flows by exact title or an id
45
+ copied from kb search output`;
46
+ export function writeGuideCli() {
47
+ return `${WRITE_GUIDE_SHAPES}
48
+
49
+ How to run (one Bash block total — author specs as heredocs, chain with &&):
50
+ cat > /tmp/spec1.json <<'SPEC'
51
+ { ... }
52
+ SPEC
53
+ node <cli> kb write /tmp/spec1.json --root <root> --session <sid> --force
54
+ Flows before the file notes that reference them.`;
55
+ }
56
+ export function writeGuideMcp() {
57
+ return `${WRITE_GUIDE_SHAPES}
58
+
59
+ How to run: call kb_write again with \`spec\` set to one of these shapes.
60
+ Flows before the file notes that reference them.`;
61
+ }
62
+ // Capture markers are per-host (Claude / Cursor / Codex elicit hooks) but all
63
+ // share the v2 evidence-record state shape; the flow-evidence check reads
64
+ // whichever host produced this session's marker.
65
+ const MARKER_PREFIXES = ['coldstart-kb-', 'coldstart-cursor-kb-', 'coldstart-codex-kb-'];
66
+ /** Flow-evidence check: how many of the spec's step files did THIS session
67
+ * actually content-read? Reads the capture markers (v2 evidence records)
68
+ * the elicit hooks maintain. No marker → no opinion (returns null). */
69
+ export function flowEvidenceCount(spec, session) {
70
+ const steps = spec.steps ?? [];
71
+ const paths = steps.map((s) => s?.path).filter(Boolean);
72
+ if (!paths.length)
73
+ return null;
74
+ try {
75
+ const safe = session.replace(/[^A-Za-z0-9_-]/g, '');
76
+ const markers = readdirSync(tmpdir()).filter((f) => MARKER_PREFIXES.some((p) => f.startsWith(`${p}${safe}-`)) && f.endsWith('.json'));
77
+ if (!markers.length)
78
+ return null;
79
+ const read = new Set();
80
+ for (const m of markers) {
81
+ try {
82
+ const state = JSON.parse(readFileSync(join(tmpdir(), m), 'utf8'));
83
+ if (state?.v !== 2 || !state.files)
84
+ continue;
85
+ for (const [rel, f] of Object.entries(state.files)) {
86
+ if ((f.reads ?? 0) + (f.edits ?? 0) + (f.gs ?? 0) > 0)
87
+ read.add(rel);
88
+ }
89
+ }
90
+ catch { /* one bad marker never blocks a write */ }
91
+ }
92
+ if (!read.size)
93
+ return null;
94
+ return { read: paths.filter((p) => read.has(p)).length, steps: paths.length };
95
+ }
96
+ catch {
97
+ return null;
98
+ }
99
+ }
100
+ /** The WARN text (never a rejection) when a flow's steps lack read evidence.
101
+ * null when the spec is not a flow, no session is known, or evidence is fine. */
102
+ export function flowEvidenceWarning(spec, session) {
103
+ if (!spec || spec.type !== 'flow' || !session)
104
+ return null;
105
+ const ev = flowEvidenceCount(spec, session);
106
+ if (!ev || ev.read >= 2)
107
+ return null;
108
+ return (`flow evidence: only ${ev.read} of ${ev.steps} step files were actually read this session — ` +
109
+ `a flow assembled from search hits is the classic bad flow. Keep it only if you truly ` +
110
+ `verified the chain; otherwise retract it now (op "retract").`);
111
+ }
112
+ //# sourceMappingURL=write-guide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-guide.js","sourceRoot":"","sources":["../../src/kb/write-guide.ts"],"names":[],"mappings":"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"}
@@ -87,8 +87,12 @@ export declare const TOOL_DEFINITIONS: readonly [{
87
87
  readonly type: "boolean";
88
88
  readonly description: "Phase-2 answer: declare this a genuinely new concept, bypassing the candidate matches from a prior `candidates` response.";
89
89
  };
90
+ readonly session: {
91
+ readonly type: "string";
92
+ readonly description: "Optional session id (given in a capture prompt). Enables the flow-evidence check: a flow whose step files this session never actually read gets a warning.";
93
+ };
90
94
  };
91
- readonly required: readonly ["spec"];
95
+ readonly required: readonly [];
92
96
  };
93
97
  }, {
94
98
  readonly name: "kb_status";
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/server/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAOnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAUxD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuInB,CAAC;AAKX,MAAM,WAAW,gBAAgB;IAC/B;uEACmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,EACvC,IAAI,GAAE,gBAAqB,GAC1B,IAAI,CA2IN;AAKD,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,IAAI,GAAE,gBAAqB,GAAG,MAAM,CAO5G;AAKD,wBAAsB,cAAc,CAClC,OAAO,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,EACjD,UAAU,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,EACvC,IAAI,GAAE,gBAAqB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAsBf"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/server/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAOnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAUxD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2InB,CAAC;AAKX,MAAM,WAAW,gBAAgB;IAC/B;uEACmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,EACvC,IAAI,GAAE,gBAAqB,GAC1B,IAAI,CAoJN;AAKD,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,IAAI,GAAE,gBAAqB,GAAG,MAAM,CAO5G;AAKD,wBAAsB,cAAc,CAClC,OAAO,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,EACjD,UAAU,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,EACvC,IAAI,GAAE,gBAAqB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAsBf"}
@@ -101,7 +101,7 @@ export const TOOL_DEFINITIONS = [
101
101
  name: 'kb_write',
102
102
  description: 'Save or correct a NOTEBOOK note after finishing real work here — you have the files in context, so no future agent is better placed to record what you learned. Write a file note (what a file is for), a flow note (how a task spans files), or an absence lesson (a confirmed "there is no X"). Also the tool to FIX or RETRACT a note you used that proved wrong (`op: "put"` replaces, `op: "retract"` removes).\n\n' +
103
103
  'TWO-PHASE reuse gate: a flow/lesson `spec` sent WITHOUT an `id` first searches the notebook for the same concept. If plausible matches exist, kb_write returns `{status:"candidates", candidates:[...]}` INSTEAD of writing — re-call with `into: "<id>"` to merge into an existing note, or `is_new: true` to declare a genuinely new one. This makes note identity reliable (matching, not guessing an exact title). File notes skip the gate (id derives from the path).\n\n' +
104
- 'The `spec` shape is documented in coldstart.md — briefly: `type` ("file"|"flow"|"lesson", or sugar "file-hub"/"file-single"), `title`, `summary`, `anchors` ([{path, symbols?}] — the addresses the note is about, which drive freshness), plus type-specific fields (file: facets/character; flow: steps; lesson: kind:"absence"/scope/body). This tool WRITES to the repo notebook; it never commits to git — publishing notes is a human-only step (`coldstart kb commit`).',
104
+ 'The `spec` shape is documented in coldstart.md — briefly: `type` ("file"|"flow"|"lesson", or sugar "file-hub"/"file-single"), `title`, `summary`, `anchors` ([{path, symbols?}] — the addresses the note is about, which drive freshness), plus type-specific fields (file: facets/character; flow: steps; lesson: kind:"absence"/scope/body). Call with NO arguments to get the full spec guide. This tool WRITES to the repo notebook; it never commits to git — publishing notes is a human-only step (`coldstart kb commit`).',
105
105
  inputSchema: {
106
106
  type: 'object',
107
107
  properties: {
@@ -117,8 +117,12 @@ export const TOOL_DEFINITIONS = [
117
117
  type: 'boolean',
118
118
  description: 'Phase-2 answer: declare this a genuinely new concept, bypassing the candidate matches from a prior `candidates` response.',
119
119
  },
120
+ session: {
121
+ type: 'string',
122
+ description: 'Optional session id (given in a capture prompt). Enables the flow-evidence check: a flow whose step files this session never actually read gets a warning.',
123
+ },
120
124
  },
121
- required: ['spec'],
125
+ required: [],
122
126
  },
123
127
  },
124
128
  {
@@ -197,9 +201,11 @@ export function registerToolHandlers(server, getContext, opts = {}) {
197
201
  case 'kb_write': {
198
202
  const { kbWrite } = await import('../kb/write.js');
199
203
  const { initSkeleton } = await import('../kb/store.js');
204
+ const { writeGuideMcp, flowEvidenceWarning } = await import('../kb/write-guide.js');
200
205
  const spec = params['spec'];
201
206
  if (!spec || typeof spec !== 'object' || Array.isArray(spec)) {
202
- result = { error: 'kb_write needs a `spec` object see coldstart.md for its shape' };
207
+ // Parity with `kb write` (no spec): return the full guide, not an error.
208
+ result = { __rawText: writeGuideMcp() };
203
209
  break;
204
210
  }
205
211
  initSkeleton(index.rootDir); // first write creates the notebook
@@ -218,7 +224,12 @@ export function registerToolHandlers(server, getContext, opts = {}) {
218
224
  };
219
225
  }
220
226
  else {
221
- result = { status: 'written', op: wres.op, id: wres.id, warnings: wres.warnings ?? [] };
227
+ const warnings = [...(wres.warnings ?? [])];
228
+ // Flow-evidence WARN (never a rejection) — parity with `kb write --session`.
229
+ const flowWarn = flowEvidenceWarning(spec, params['session'] ? String(params['session']) : undefined);
230
+ if (flowWarn)
231
+ warnings.push(flowWarn);
232
+ result = { status: 'written', op: wres.op, id: wres.id, warnings };
222
233
  }
223
234
  break;
224
235
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/server/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/server/mcp.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"unwire.d.ts","sourceRoot":"","sources":["../src/unwire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AA0OH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CA6D/C"}
1
+ {"version":3,"file":"unwire.d.ts","sourceRoot":"","sources":["../src/unwire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AA0OH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CA+D/C"}
package/dist/unwire.js CHANGED
@@ -285,6 +285,8 @@ export async function runUnwire() {
285
285
  nbRes = 'removed';
286
286
  }
287
287
  out(` .coldstart/notebook — ${label(nbRes)} (--purge: notes deleted)`);
288
+ out(` .coldstartignore — ${label(removeFile(path.join(cwd, '.coldstart', '.coldstartignore')))}`);
289
+ out(` .coldstart/.gitignore — ${label(removeFile(path.join(cwd, '.coldstart', '.gitignore')))}`);
288
290
  out(` .gitignore — ${label(removeNotebookGitignore(cwd))} .coldstart/ line`);
289
291
  out(` .gitattributes — ${label(removeNotebookGitattributes(cwd))} merge=union line`);
290
292
  rmEmptyDirs(path.join(cwd, '.coldstart'));
@@ -1 +1 @@
1
- {"version":3,"file":"unwire.js","sourceRoot":"","sources":["../src/unwire.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unwire.js","sourceRoot":"","sources":["../src/unwire.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,158 @@
1
+ /**
2
+ * capture-payload.mjs — the capture prompt (v5, finalized 2026-07-17).
3
+ *
4
+ * Replaces the 370-line v4 elicit prompt. Structure: purpose → decide gate →
5
+ * worklist → per-note rules → flows → write. Decide-time rules ONLY — spec
6
+ * shapes for the common file notes stay inline (zero-bounce path; file notes
7
+ * are ~97% of volume), flow/lesson formats live behind `kb write` (no spec →
8
+ * prints the guide). The arming mechanism is invisible to the agent: only its
9
+ * consequences show (which files, their ranking, their annotations).
10
+ *
11
+ * Envelopes:
12
+ * inject — delivered on the NEXT user prompt (UserPromptSubmit channel):
13
+ * handle capture, then the user's request.
14
+ * block — Stop-block (HEAD-drift / cap backlog only): handle, then stop.
15
+ * subagent — SubagentStop block: handle, then RESTATE the deliverable last
16
+ * (the coordinator only sees the final message — #61).
17
+ */
18
+
19
+ import { readFileSync } from "node:fs";
20
+ import { join } from "node:path";
21
+
22
+ /**
23
+ * SPIKE (experimental, undocumented): a repo can replace the shipped checklist
24
+ * with its own `.coldstart/checklist.md`. Placeholders {{WORKLIST}}, {{CLI}},
25
+ * {{ROOT}}, {{SID}} are substituted. The worklist is LOAD-BEARING (it is the
26
+ * scope rule) — an override that omits {{WORKLIST}} gets it appended anyway.
27
+ * Trigger mechanics stay in code; only the prompt text is overridable. Merge
28
+ * semantics when the shipped default evolves = none (the override wins
29
+ * wholesale) — revisit before promoting past spike.
30
+ */
31
+ function loadChecklistOverride(root) {
32
+ try {
33
+ const text = readFileSync(join(root, ".coldstart", "checklist.md"), "utf8");
34
+ return text.trim() ? text : null;
35
+ } catch { return null; }
36
+ }
37
+
38
+ /**
39
+ * worklist entry: { path, tier, retouches, notes: [{id, type, state}], noConsumers }
40
+ * tier: "edited ×N" | "read" | "skimmed"
41
+ */
42
+ function worklistLines(entries) {
43
+ const lines = [];
44
+ for (const e of entries) {
45
+ const ann = [];
46
+ ann.push(`[${e.tier}]`);
47
+ if (!e.notes?.length) {
48
+ ann.push("no note yet");
49
+ } else {
50
+ for (const n of e.notes) {
51
+ if (n.state === "fresh") {
52
+ ann.push(`note ${n.id} (fresh) → update ONLY if this session taught something the note lacks (.coldstart/notebook/notes/${n.id}.md)`);
53
+ } else if (n.state === "changed" || n.state === "missing") {
54
+ ann.push(`note ${n.id} (STALE) → fix or re-stamp; list the path in "verified" (.coldstart/notebook/notes/${n.id}.md)`);
55
+ } else {
56
+ ann.push(`note ${n.id} → read it first, update by its "id" (.coldstart/notebook/notes/${n.id}.md)`);
57
+ }
58
+ }
59
+ }
60
+ if (e.noConsumers) ann.push("no consumers in import graph");
61
+ lines.push(`- ${e.path} ${ann.join(" · ")}`);
62
+ }
63
+ return lines.join("\n");
64
+ }
65
+
66
+ export function buildCapturePayload({ root, cli, sid, entries, envelope }) {
67
+ const opening = envelope === "block"
68
+ ? "Handle capture now, then stop."
69
+ : "Handle capture first, then continue with the user's request.";
70
+
71
+ const tail = envelope === "subagent"
72
+ ? `\nOnce you have handled the notebook — whether you wrote notes or decided none were \
73
+ needed — remember you were spawned as a subagent. The coordinator that spawned you receives \
74
+ ONLY your final message, so your last message must repeat, in full, the result you produced \
75
+ for it — your findings, not the notebook decision.`
76
+ : "";
77
+
78
+ const override = loadChecklistOverride(root);
79
+ if (override) {
80
+ const worklist = worklistLines(entries);
81
+ let body = override
82
+ .replaceAll("{{CLI}}", String(cli))
83
+ .replaceAll("{{ROOT}}", String(root))
84
+ .replaceAll("{{SID}}", String(sid));
85
+ body = body.includes("{{WORKLIST}}")
86
+ ? body.replaceAll("{{WORKLIST}}", worklist)
87
+ : `${body.trimEnd()}\n\nWORKLIST — files you actually read this session, most-worked first \
88
+ (the complete scope; never write a note for an unlisted file):\n\n${worklist}`;
89
+ return `**Notebook capture point.** ${opening}\n\n${body.trimEnd()}${tail}`;
90
+ }
91
+
92
+ return `**Notebook capture point.** You have completed work and gathered knowledge as part \
93
+ of it — knowledge a future agent could use. This repo keeps that knowledge in a notebook: \
94
+ notes are searched and served to future cold agents when their task matches. ${opening}
95
+
96
+ DECIDE FIRST — as the agent who worked on this task, you know its exact intent:
97
+ 1. So you, not any rule, are best suited to judge whether this work was about the code in \
98
+ the PRESENT. Notes are backed by present code only: if the task was investigating an older \
99
+ branch, reviewing a PR, or reading vendored/generated code, that knowledge is about the past \
100
+ or the future — write nothing and say so.
101
+ 2. If nothing about the current code is worth recording, no note is the right answer. If a \
102
+ future agent would not act differently for knowing it, don't store it.
103
+ 3. The worklist below is the complete scope. Unlisted files are out — ignored \
104
+ (.coldstartignore) or already captured. Never write a note for an unlisted file.
105
+
106
+ WORKLIST — files you actually read this session, most-worked first:
107
+
108
+ ${worklistLines(entries)}
109
+
110
+ FOR EACH NOTE:
111
+ 4. Say only what you verified in THIS file, this session. A confident whole-file claim from \
112
+ a partial read is the #1 bad note.
113
+ 5. One note per file, ever. Existing note → read it, update by its "id".
114
+ 6. How a file is USED: the code graph already shows imports and callers — never restate \
115
+ them. But wiring the graph cannot see (string registry, template reference, DI container, \
116
+ naming convention) is exactly what to record — ONLY if you actually observed it in this \
117
+ session's work. Never guess at usage or go searching for it now. Files flagged "no consumers \
118
+ in import graph" are where an observed usage fact matters most.
119
+ 7. Fixed a bug? The cause goes in the culpable file's note; the SYMPTOM words go in \
120
+ "aliases" — symptoms are what a future agent will search.
121
+ 8. Read a note this session that proved wrong? Correct or retract it now — you are the warm \
122
+ agent; there is no "next".
123
+ 9. Firsthand only: nothing from a subagent's report you didn't verify yourself.
124
+ 10. "verified" lists only files you opened this session. Never one you didn't.
125
+ 11. Never copy secret VALUES (env contents, tokens, keys) into a note — notes are committed \
126
+ to git.
127
+
128
+ FLOWS — rare. While investigating you will see flows everywhere: every file connects to \
129
+ something, every feature has a chain. Those connections are not flow notes — at that rate, \
130
+ everything would be a flow.
131
+ A flow note records PRODUCT-level knowledge: how the system behaves as a whole, knowledge no \
132
+ single file owns. The test, for every candidate: is this about how the CODEBASE works, or \
133
+ about how one file works? File-level → it belongs in that file's note. Product-level → flow.
134
+ Examples that can qualify:
135
+ - how authentication works end-to-end
136
+ - how UI components get rendered under different conditions
137
+ - how a file is consumed along a path when its imports don't reveal it and the gotcha spans \
138
+ the path (a single non-obvious consumer is NOT a flow — it goes in that file's own note, rule 6)
139
+ The summary's FIRST sentence states the product-level fact — the thing a reader of all the \
140
+ file notes would still be missing.
141
+ Steps are the minimal chain, each with its role. kb write WARNS when fewer than two steps \
142
+ are files you read this session — a flow assembled from grep hits is the classic bad flow; \
143
+ take that warning seriously.
144
+ Never a flow: a feature's parts-list, a relationship the import graph already shows, a \
145
+ mechanism living in one file.
146
+ kb search first — update the existing flow, never a near-duplicate.
147
+
148
+ WRITE — one Bash block total: specs as heredocs, writes chained with &&.
149
+ {"type":"file-single","path":"src/x.py","summary":"1-3 sentences","aliases":["symptom words"]}
150
+ {"type":"file-hub","path":"src/y.py","facets":[{"symbol":"Fn","detail":"the non-obvious thing"}]}
151
+ file-single is the DEFAULT. A file with one purpose gets one summary even if you worked \
152
+ with several of its symbols. file-hub is ONLY for grab-bag files that have no single purpose \
153
+ (models.py, utils, helpers) — there, knowledge lives per symbol. Touching many symbols does \
154
+ not make a file a hub; having no one purpose does.
155
+ Update = the same spec plus "id":"<id from the worklist>".
156
+ node ${cli} kb write /tmp/spec1.json --root ${root} --session ${sid} --force
157
+ Flow/lesson shapes: run \`node ${cli} kb write --root ${root}\` with no spec — it prints the full guide.${tail}`;
158
+ }