@selvakumaresra/specship 0.7.0 → 0.10.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.
Files changed (143) hide show
  1. package/commands/ss-domain.md +98 -0
  2. package/commands/ss-triage.md +177 -0
  3. package/dist/bin/specship.js +308 -0
  4. package/dist/bin/specship.js.map +1 -1
  5. package/dist/db/migrations.d.ts +1 -1
  6. package/dist/db/migrations.d.ts.map +1 -1
  7. package/dist/db/migrations.js +28 -1
  8. package/dist/db/migrations.js.map +1 -1
  9. package/dist/db/schema.sql +26 -2
  10. package/dist/db/spec-queries.d.ts +29 -0
  11. package/dist/db/spec-queries.d.ts.map +1 -1
  12. package/dist/db/spec-queries.js +63 -0
  13. package/dist/db/spec-queries.js.map +1 -1
  14. package/dist/enforce/enforce.d.ts +70 -0
  15. package/dist/enforce/enforce.d.ts.map +1 -0
  16. package/dist/enforce/enforce.js +125 -0
  17. package/dist/enforce/enforce.js.map +1 -0
  18. package/dist/extraction/specs/markdown-spec-extractor.d.ts +21 -0
  19. package/dist/extraction/specs/markdown-spec-extractor.d.ts.map +1 -1
  20. package/dist/extraction/specs/markdown-spec-extractor.js +144 -0
  21. package/dist/extraction/specs/markdown-spec-extractor.js.map +1 -1
  22. package/dist/fitness/fitness.d.ts +75 -0
  23. package/dist/fitness/fitness.d.ts.map +1 -0
  24. package/dist/fitness/fitness.js +204 -0
  25. package/dist/fitness/fitness.js.map +1 -0
  26. package/dist/graph/maintainability.d.ts +101 -0
  27. package/dist/graph/maintainability.d.ts.map +1 -0
  28. package/dist/graph/maintainability.js +278 -0
  29. package/dist/graph/maintainability.js.map +1 -0
  30. package/dist/index.d.ts +65 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +149 -1
  33. package/dist/index.js.map +1 -1
  34. package/dist/installer/instructions-template.d.ts +5 -4
  35. package/dist/installer/instructions-template.d.ts.map +1 -1
  36. package/dist/installer/instructions-template.js +10 -4
  37. package/dist/installer/instructions-template.js.map +1 -1
  38. package/dist/installer/targets/claude.d.ts.map +1 -1
  39. package/dist/installer/targets/claude.js +4 -0
  40. package/dist/installer/targets/claude.js.map +1 -1
  41. package/dist/installer/targets/shared.d.ts.map +1 -1
  42. package/dist/installer/targets/shared.js +4 -0
  43. package/dist/installer/targets/shared.js.map +1 -1
  44. package/dist/mcp/fitness-tool.d.ts +12 -0
  45. package/dist/mcp/fitness-tool.d.ts.map +1 -0
  46. package/dist/mcp/fitness-tool.js +46 -0
  47. package/dist/mcp/fitness-tool.js.map +1 -0
  48. package/dist/mcp/maintainability-tool.d.ts +13 -0
  49. package/dist/mcp/maintainability-tool.d.ts.map +1 -0
  50. package/dist/mcp/maintainability-tool.js +64 -0
  51. package/dist/mcp/maintainability-tool.js.map +1 -0
  52. package/dist/mcp/server-instructions.d.ts +1 -1
  53. package/dist/mcp/server-instructions.d.ts.map +1 -1
  54. package/dist/mcp/server-instructions.js +3 -2
  55. package/dist/mcp/server-instructions.js.map +1 -1
  56. package/dist/mcp/spec-tools.d.ts.map +1 -1
  57. package/dist/mcp/spec-tools.js +115 -1
  58. package/dist/mcp/spec-tools.js.map +1 -1
  59. package/dist/mcp/tools.d.ts +13 -0
  60. package/dist/mcp/tools.d.ts.map +1 -1
  61. package/dist/mcp/tools.js +75 -0
  62. package/dist/mcp/tools.js.map +1 -1
  63. package/dist/reflect/apply.d.ts +31 -0
  64. package/dist/reflect/apply.d.ts.map +1 -0
  65. package/dist/reflect/apply.js +286 -0
  66. package/dist/reflect/apply.js.map +1 -0
  67. package/dist/reflect/hash.d.ts +20 -0
  68. package/dist/reflect/hash.d.ts.map +1 -0
  69. package/dist/reflect/hash.js +36 -0
  70. package/dist/reflect/hash.js.map +1 -0
  71. package/dist/reflect/index.d.ts +16 -0
  72. package/dist/reflect/index.d.ts.map +1 -0
  73. package/dist/reflect/index.js +43 -0
  74. package/dist/reflect/index.js.map +1 -0
  75. package/dist/reflect/miner.d.ts +21 -0
  76. package/dist/reflect/miner.d.ts.map +1 -0
  77. package/dist/reflect/miner.js +463 -0
  78. package/dist/reflect/miner.js.map +1 -0
  79. package/dist/reflect/store.d.ts +31 -0
  80. package/dist/reflect/store.d.ts.map +1 -0
  81. package/dist/reflect/store.js +101 -0
  82. package/dist/reflect/store.js.map +1 -0
  83. package/dist/reflect/sweep.d.ts +26 -0
  84. package/dist/reflect/sweep.d.ts.map +1 -0
  85. package/dist/reflect/sweep.js +42 -0
  86. package/dist/reflect/sweep.js.map +1 -0
  87. package/dist/reflect/targets.d.ts +52 -0
  88. package/dist/reflect/targets.d.ts.map +1 -0
  89. package/dist/reflect/targets.js +192 -0
  90. package/dist/reflect/targets.js.map +1 -0
  91. package/dist/reflect/types.d.ts +96 -0
  92. package/dist/reflect/types.d.ts.map +1 -0
  93. package/dist/reflect/types.js +13 -0
  94. package/dist/reflect/types.js.map +1 -0
  95. package/dist/resolution/domain-gap-seed.d.ts +60 -0
  96. package/dist/resolution/domain-gap-seed.d.ts.map +1 -0
  97. package/dist/resolution/domain-gap-seed.js +87 -0
  98. package/dist/resolution/domain-gap-seed.js.map +1 -0
  99. package/dist/resolution/spec-link-resolver.d.ts +46 -1
  100. package/dist/resolution/spec-link-resolver.d.ts.map +1 -1
  101. package/dist/resolution/spec-link-resolver.js +78 -0
  102. package/dist/resolution/spec-link-resolver.js.map +1 -1
  103. package/dist/server/routes/domain.js +0 -0
  104. package/dist/server/routes/events.js +20 -0
  105. package/dist/server/routes/maintainability.js +18 -0
  106. package/dist/server/routes/reflect.js +93 -0
  107. package/dist/server/server.js +6 -0
  108. package/dist/types.d.ts +4 -2
  109. package/dist/types.d.ts.map +1 -1
  110. package/dist/types.js +6 -0
  111. package/dist/types.js.map +1 -1
  112. package/dist/web/chunk-EZZBWC7Z.js +1 -0
  113. package/dist/web/chunk-ITHLF4GI.js +1 -0
  114. package/dist/web/{chunk-UBOZGQNK.js → chunk-IZQXYQNQ.js} +1 -1
  115. package/dist/web/chunk-JBO7ZIPO.js +1 -0
  116. package/dist/web/chunk-JQXCRIK2.js +1 -0
  117. package/dist/web/{chunk-ASZ77FMZ.js → chunk-JT2YIHPL.js} +1 -1
  118. package/dist/web/{chunk-WLIMNDS3.js → chunk-ONKHTXHJ.js} +1 -1
  119. package/dist/web/{chunk-FHZHD2ZG.js → chunk-P5JX67LT.js} +1 -1
  120. package/dist/web/chunk-PDTQX2UL.js +6 -0
  121. package/dist/web/chunk-TPDB5GJN.js +1 -0
  122. package/dist/web/{chunk-RASJHUXS.js → chunk-XWDR6MPC.js} +1 -1
  123. package/dist/web/chunk-Y6WWDS4R.js +1 -0
  124. package/dist/web/chunk-Z5L3T5EO.js +1 -0
  125. package/dist/web/{chunk-D5OCNEJA.js → chunk-ZG7H3XPL.js} +1 -1
  126. package/dist/web/index.html +1 -1
  127. package/dist/web/main-GYPY5V5H.js +1 -0
  128. package/dist/workflows/executor.d.ts.map +1 -1
  129. package/dist/workflows/executor.js +3 -0
  130. package/dist/workflows/executor.js.map +1 -1
  131. package/dist/workflows/runners/prompt.d.ts +31 -8
  132. package/dist/workflows/runners/prompt.d.ts.map +1 -1
  133. package/dist/workflows/runners/prompt.js +117 -23
  134. package/dist/workflows/runners/prompt.js.map +1 -1
  135. package/dist/workflows/runners/types.d.ts +7 -1
  136. package/dist/workflows/runners/types.d.ts.map +1 -1
  137. package/package.json +1 -1
  138. package/dist/web/chunk-HGBF7AY5.js +0 -1
  139. package/dist/web/chunk-JQ534IB6.js +0 -6
  140. package/dist/web/chunk-MVOMVPYB.js +0 -1
  141. package/dist/web/chunk-NZEZCT65.js +0 -1
  142. package/dist/web/chunk-WQWYTRFN.js +0 -1
  143. package/dist/web/main-LHCYPOXF.js +0 -1
@@ -52,7 +52,7 @@ exports.SPEC_LINK_KINDS = [
52
52
  exports.specToolDefinitions = [
53
53
  {
54
54
  name: 'specship_spec',
55
- description: 'Fetch a spec/requirement by its ID. Call this FIRST whenever the user mentions a spec ID (e.g., REQ-AUTH-005) or a requirement. Returns the spec body, its parent doc and sibling requirements, and the code it currently links to with link state (verified / drifted / orphaned). Use this instead of Read-ing the spec file — it returns more (linked code + state) than the file alone. Called WITHOUT a spec_id, it returns the project\'s spec lifecycle funnel: brainstormed ideas → specs → implemented, with per-document rollups.',
55
+ description: 'Fetch a spec/requirement by its ID. Call this FIRST whenever the user mentions a spec ID (e.g., REQ-AUTH-005) or a requirement. Returns the spec body, its parent doc and sibling requirements, and the code it currently links to with link state (verified / drifted / orphaned). Use this instead of Read-ing the spec file — it returns more (linked code + state) than the file alone. Called WITHOUT a spec_id, it returns the project\'s spec lifecycle funnel: brainstormed ideas → specs → implemented, with per-document rollups. Pass `query` instead to SEARCH specs by free text — call this FIRST when a user describes a change (a bug, an error, a one-line enhancement) and you need to find which existing spec it belongs to; it returns scored, ranked candidates (id, title, kind, snippet) over the spec full-text index.',
56
56
  inputSchema: {
57
57
  type: 'object',
58
58
  properties: {
@@ -60,6 +60,10 @@ exports.specToolDefinitions = [
60
60
  type: 'string',
61
61
  description: 'Embedded spec ID (e.g., "REQ-AUTH-005", "AUTH-DOC"). Omit to get the lifecycle funnel.',
62
62
  },
63
+ query: {
64
+ type: 'string',
65
+ description: 'Free-text query to SEARCH specs (instead of fetching one by id). Returns scored, ranked candidate specs matched over the spec full-text index — use to find which existing spec a described change belongs to.',
66
+ },
63
67
  projectPath: projectPathProperty,
64
68
  },
65
69
  },
@@ -159,6 +163,40 @@ function formatLink(link) {
159
163
  const conf = link.confidence !== undefined ? ` (${link.confidence.toFixed(2)})` : '';
160
164
  return ` - [${link.state}${driftSuffix}] ${resolved} ${link.kind} → ${link.targetFilePath}:${link.targetQualifiedName} <${link.provenance}${conf}> #${link.id}`;
161
165
  }
166
+ /**
167
+ * Build the spec-search results markdown (REQ-TRIAGE-001): scored, ranked specs
168
+ * matched over the spec FTS index for a free-text `query`. Shown when
169
+ * `specship_spec` is called with a `query`. Each hit carries id, title, kind,
170
+ * score, and a body snippet — enough to act on without a follow-up fetch (A1).
171
+ * An empty / spec-less index returns an explicit "no specs to search" result,
172
+ * not an error (A3); a query that matches nothing returns a clear no-match note.
173
+ */
174
+ function buildSpecSearch(sq, query) {
175
+ // Distinguish "nothing indexed" (A3) from "indexed, but no match" up front.
176
+ if (sq.getAllSpecs().length === 0) {
177
+ return `# Spec search — "${query}"\n\n_No specs to search — the index has no specs yet. Author one with /ss-spec-author or /ss-brainstorm._`;
178
+ }
179
+ const results = sq.searchSpecs(query);
180
+ const lines = [];
181
+ lines.push(`# Spec search — "${query}"`);
182
+ lines.push('');
183
+ if (results.length === 0) {
184
+ lines.push('_No matching specs. Try different terms, or author a new spec with /ss-spec-author._');
185
+ return lines.join('\n');
186
+ }
187
+ lines.push(`Found ${results.length} candidate${results.length === 1 ? '' : 's'}, best first:`);
188
+ lines.push('');
189
+ for (const { spec, score, snippet } of results) {
190
+ lines.push(`### ${spec.id} — ${spec.title}`);
191
+ lines.push(`*kind: ${spec.kind}* · *score: ${score.toFixed(2)}* · *source: ${spec.sourcePath}*`);
192
+ if (snippet && snippet.trim().length > 0) {
193
+ lines.push(`> ${snippet.replace(/\s+/g, ' ').trim()}`);
194
+ }
195
+ lines.push('');
196
+ }
197
+ lines.push('_Fetch any candidate by id (specship_spec) for its full body + linked code._');
198
+ return lines.join('\n');
199
+ }
162
200
  /**
163
201
  * Build the spec lifecycle funnel markdown (REQ-FUNNEL-005): brainstormed ideas
164
202
  * → specs → implemented, with per-document rollups. Shown when `specship_spec`
@@ -239,6 +277,16 @@ function buildFunnel(sq) {
239
277
  async function handleSpecshipSpec(cg, args) {
240
278
  const specId = args.spec_id;
241
279
  const sq = cg.getSpecQueries();
280
+ // Query mode (REQ-TRIAGE-001): a free-text `query` returns scored, ranked
281
+ // specs over the spec FTS index. Takes precedence over the other modes when
282
+ // present; spec_id detail and the no-arg funnel are unchanged (A2).
283
+ const queryArg = args.query;
284
+ if (typeof queryArg === 'string' && queryArg.trim().length > 0) {
285
+ return text(buildSpecSearch(sq, queryArg));
286
+ }
287
+ if (queryArg !== undefined && queryArg !== null && typeof queryArg !== 'string') {
288
+ return error('query must be a string');
289
+ }
242
290
  // No id → the lifecycle funnel (REQ-FUNNEL-005). The id case below is unchanged.
243
291
  if (specId === undefined || specId === null || specId === '') {
244
292
  return text(buildFunnel(sq));
@@ -280,6 +328,72 @@ async function handleSpecshipSpec(cg, args) {
280
328
  for (const link of links)
281
329
  lines.push(formatLink(link));
282
330
  }
331
+ // Inherited code (REQ-DOMAIN-002): a domain fact carries no direct code links;
332
+ // its code association + drift are inherited transitively through the
333
+ // requirement specs it depends on (parent_id / depends_on). Also covers any
334
+ // link-less spec that declares spec deps. Drift surfaces automatically because
335
+ // each inherited link renders its live `state` (A1 + A2). A fact that resolves
336
+ // to no inherited code is reported as a gap, never an error (A3).
337
+ const dep = spec.metadata?.depends_on;
338
+ const hasSpecDeps = (typeof spec.parentId === 'string' && spec.parentId.length > 0) ||
339
+ (Array.isArray(dep) ? dep.length > 0 : typeof dep === 'string' && dep.length > 0);
340
+ if (spec.kind === 'domain' || (links.length === 0 && hasSpecDeps)) {
341
+ const inherited = cg.getSpecLinkResolver().getInheritedLinks(spec);
342
+ lines.push('');
343
+ if (inherited.links.length > 0) {
344
+ lines.push('## Inherited code');
345
+ lines.push('_Code linked transitively through the specs this fact depends on. Drift here is inherited — no domain-specific drift state._');
346
+ const byVia = new Map();
347
+ for (const { viaSpecId, link } of inherited.links) {
348
+ const arr = byVia.get(viaSpecId) ?? [];
349
+ arr.push(link);
350
+ byVia.set(viaSpecId, arr);
351
+ }
352
+ for (const [viaSpecId, viaLinks] of byVia) {
353
+ const viaSpec = sq.getSpecById(viaSpecId);
354
+ lines.push(`### via ${viaSpecId}${viaSpec ? ` — ${viaSpec.title}` : ''}`);
355
+ for (const link of viaLinks)
356
+ lines.push(formatLink(link));
357
+ }
358
+ }
359
+ else {
360
+ lines.push('## Gap');
361
+ lines.push('_Unlinked fact (proposed). No requirement spec linked yet._');
362
+ }
363
+ // Declared-but-missing dependency ids are a gap, not an error.
364
+ if (inherited.gaps.length > 0) {
365
+ lines.push('');
366
+ lines.push(`_Declared spec dependencies not found in the index: ${inherited.gaps.join(', ')}._`);
367
+ }
368
+ }
369
+ // Linked domain facts (REQ-DOMAIN-005.A1): the inverse of the inherited-code
370
+ // path above. A domain fact attaches to a requirement via `depends_on` (or
371
+ // `parent_id`), so querying the *requirement* must surface the domain
372
+ // knowledge layered on top of it — not just its code. Domain facts are few
373
+ // and human-confirmed, so we render each fact's body inline (no extra call).
374
+ if (spec.kind !== 'domain') {
375
+ const dependentFacts = sq.getSpecsByKind('domain').filter((f) => {
376
+ if (f.id === spec.id)
377
+ return false;
378
+ if (f.parentId === spec.id)
379
+ return true;
380
+ const d = f.metadata?.depends_on;
381
+ if (Array.isArray(d))
382
+ return d.includes(spec.id);
383
+ return typeof d === 'string' && d === spec.id;
384
+ });
385
+ if (dependentFacts.length > 0) {
386
+ lines.push('');
387
+ lines.push('## Domain facts');
388
+ lines.push('_Human-confirmed domain knowledge linked to this spec (from the domain layer)._');
389
+ for (const f of dependentFacts) {
390
+ const factType = f.metadata?.type;
391
+ const typeSuffix = typeof factType === 'string' ? ` · ${factType}` : '';
392
+ lines.push(`### ${f.id} — ${f.title}${typeSuffix}`);
393
+ lines.push((f.body || '').trim() || '_(empty)_');
394
+ }
395
+ }
396
+ }
283
397
  return text(lines.join('\n'));
284
398
  }
285
399
  async function handleSpecshipLinkAssert(cg, args) {
@@ -1 +1 @@
1
- {"version":3,"file":"spec-tools.js","sourceRoot":"","sources":["../../src/mcp/spec-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spec-tools.js","sourceRoot":"","sources":["../../src/mcp/spec-tools.ts"],"names":[],"mappings":"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"}
@@ -274,6 +274,19 @@ export declare class ToolHandler {
274
274
  * that have no dependents (nothing to warn about), and returns '' when none
275
275
  * qualify so a leaf-only exploration stays clean.
276
276
  */
277
+ /**
278
+ * Domain-facts section for `specship_explore` (REQ-DOMAIN-005.A2). Domain
279
+ * facts live in the spec layer, not the node graph, so explore's symbol
280
+ * search never reaches them. When the query names a documented domain term
281
+ * or entity, surface the matching human-confirmed fact bodies inline so the
282
+ * agent gets the authoritative project semantics without a second call.
283
+ *
284
+ * Additive + silent: returns '' unless a domain fact matches a query token,
285
+ * so it never bloats a normal code exploration (the hot-path guard in
286
+ * CLAUDE.md). Facts are few and human-authored, so a linear scan + token
287
+ * match is cheap and precise enough.
288
+ */
289
+ private buildDomainFactsSection;
277
290
  private buildBlastRadiusSection;
278
291
  /**
279
292
  * Graph-connectivity relevance via Random-Walk-with-Restart (personalized
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
package/dist/mcp/tools.js CHANGED
@@ -275,6 +275,8 @@ const projectPathProperty = {
275
275
  * All tools support cross-project queries via the optional `projectPath` parameter.
276
276
  */
277
277
  const spec_tools_1 = require("./spec-tools");
278
+ const maintainability_tool_1 = require("./maintainability-tool");
279
+ const fitness_tool_1 = require("./fitness-tool");
278
280
  const designer_tools_1 = require("./designer-tools");
279
281
  exports.tools = [
280
282
  {
@@ -455,6 +457,8 @@ exports.tools = [
455
457
  },
456
458
  // Spec-layer tools (v5): see ./spec-tools.ts for handlers.
457
459
  ...spec_tools_1.specToolDefinitions,
460
+ ...maintainability_tool_1.maintainabilityToolDefinitions,
461
+ ...fitness_tool_1.fitnessToolDefinitions,
458
462
  // Designer tools: claude.ai/design driving, vendored from @pro-vi/designer.
459
463
  // See ./designer-tools.ts for handlers. Drives a debug Chrome over CDP.
460
464
  ...designer_tools_1.designerToolDefinitions,
@@ -940,6 +944,12 @@ class ToolHandler {
940
944
  case 'specship_drifted':
941
945
  result = await (0, spec_tools_1.handleSpecshipDrifted)(this.getSpecShip(args.projectPath), args);
942
946
  break;
947
+ case 'specship_maintainability':
948
+ result = await (0, maintainability_tool_1.handleSpecshipMaintainability)(this.getSpecShip(args.projectPath), args);
949
+ break;
950
+ case 'specship_fitness':
951
+ result = await (0, fitness_tool_1.handleSpecshipFitness)(this.getSpecShip(args.projectPath), args);
952
+ break;
943
953
  // Designer tools are independent of the code graph — return directly,
944
954
  // bypassing the worktree/staleness notice wrappers (which assume a
945
955
  // code-graph query).
@@ -1341,6 +1351,57 @@ class ToolHandler {
1341
1351
  * that have no dependents (nothing to warn about), and returns '' when none
1342
1352
  * qualify so a leaf-only exploration stays clean.
1343
1353
  */
1354
+ /**
1355
+ * Domain-facts section for `specship_explore` (REQ-DOMAIN-005.A2). Domain
1356
+ * facts live in the spec layer, not the node graph, so explore's symbol
1357
+ * search never reaches them. When the query names a documented domain term
1358
+ * or entity, surface the matching human-confirmed fact bodies inline so the
1359
+ * agent gets the authoritative project semantics without a second call.
1360
+ *
1361
+ * Additive + silent: returns '' unless a domain fact matches a query token,
1362
+ * so it never bloats a normal code exploration (the hot-path guard in
1363
+ * CLAUDE.md). Facts are few and human-authored, so a linear scan + token
1364
+ * match is cheap and precise enough.
1365
+ */
1366
+ buildDomainFactsSection(cg, query) {
1367
+ let facts;
1368
+ try {
1369
+ facts = cg.getSpecQueries().getSpecsByKind('domain');
1370
+ }
1371
+ catch {
1372
+ return '';
1373
+ }
1374
+ if (!facts || facts.length === 0)
1375
+ return '';
1376
+ // Tokens of length >= 4 keep the match precise — short words ("the", "id")
1377
+ // would match almost any fact body.
1378
+ const tokens = [...new Set(query.toLowerCase().split(/[^a-z0-9_]+/i).filter((t) => t.length >= 4))];
1379
+ if (tokens.length === 0)
1380
+ return '';
1381
+ const matched = facts
1382
+ .filter((f) => {
1383
+ const hay = `${f.title} ${f.body ?? ''}`.toLowerCase();
1384
+ return tokens.some((t) => hay.includes(t));
1385
+ })
1386
+ .slice(0, 5);
1387
+ if (matched.length === 0)
1388
+ return '';
1389
+ const out = [
1390
+ '### Domain facts',
1391
+ '',
1392
+ '_Human-confirmed domain knowledge matching this query (from the spec layer, not code). Treat as authoritative project context — no need to look further for these terms._',
1393
+ '',
1394
+ ];
1395
+ for (const f of matched) {
1396
+ const factType = f.metadata?.type;
1397
+ const typeSuffix = typeof factType === 'string' ? ` · ${factType}` : '';
1398
+ out.push(`#### ${f.id} — ${f.title}${typeSuffix}`);
1399
+ const body = (f.body ?? '').trim();
1400
+ out.push(body.length > 800 ? `${body.slice(0, 800)}…` : body || '_(empty)_');
1401
+ out.push('');
1402
+ }
1403
+ return out.join('\n');
1404
+ }
1344
1405
  buildBlastRadiusSection(cg, subgraph) {
1345
1406
  const ROOT_CAP = 5; // only the symbols the query actually targeted
1346
1407
  const FILE_CAP = 4; // caller files listed per symbol before "+N more"
@@ -1513,6 +1574,13 @@ class ToolHandler {
1513
1574
  minScore: 0.2,
1514
1575
  });
1515
1576
  if (subgraph.nodes.size === 0) {
1577
+ // No code matched — but a documented domain term may still have a fact
1578
+ // (it lives in the spec layer, not the node graph). Surface it so naming
1579
+ // a pure domain concept isn't a dead end (REQ-DOMAIN-005.A2).
1580
+ const domainOnly = this.buildDomainFactsSection(cg, query);
1581
+ if (domainOnly) {
1582
+ return this.textResult(`## Exploration: ${query}\n\n${domainOnly}`);
1583
+ }
1516
1584
  return this.textResult(`No relevant code found for "${query}"`);
1517
1585
  }
1518
1586
  // Graph-aware glue: findRelevantContext builds the subgraph from name/text
@@ -1819,6 +1887,13 @@ class ToolHandler {
1819
1887
  `Found ${subgraph.nodes.size} symbols across ${fileGroups.size} files.`,
1820
1888
  '',
1821
1889
  ];
1890
+ // Domain facts (REQ-DOMAIN-005.A2): if the query names a documented domain
1891
+ // term/entity, lead with the human-confirmed fact body. Placed near the top
1892
+ // (before the source sections) so it is never lost to the output-budget
1893
+ // truncation that drops trailing file sections.
1894
+ const domainFacts = this.buildDomainFactsSection(cg, query);
1895
+ if (domainFacts)
1896
+ lines.push(domainFacts);
1822
1897
  // Blast radius (always-on, compact): for the entry symbols, who depends on
1823
1898
  // them + which tests cover them — locations only, no source — so the agent
1824
1899
  // knows what to update/verify before editing without a separate call.