@specship/specship-win32-arm64 0.24.0 → 0.25.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 (139) hide show
  1. package/lib/dist/activation/steering.d.ts +4 -4
  2. package/lib/dist/activation/steering.d.ts.map +1 -1
  3. package/lib/dist/activation/steering.js +6 -6
  4. package/lib/dist/activation/steering.js.map +1 -1
  5. package/lib/dist/bin/specship.js +232 -40
  6. package/lib/dist/bin/specship.js.map +1 -1
  7. package/lib/dist/commands/specship/learn.md +5 -3
  8. package/lib/dist/commands/specship/spec.md +73 -15
  9. package/lib/dist/db/spec-queries.d.ts +73 -3
  10. package/lib/dist/db/spec-queries.d.ts.map +1 -1
  11. package/lib/dist/db/spec-queries.js +139 -5
  12. package/lib/dist/db/spec-queries.js.map +1 -1
  13. package/lib/dist/enforce/changed-files.d.ts +28 -0
  14. package/lib/dist/enforce/changed-files.d.ts.map +1 -0
  15. package/lib/dist/enforce/changed-files.js +72 -0
  16. package/lib/dist/enforce/changed-files.js.map +1 -0
  17. package/lib/dist/enforce/enforce.d.ts +28 -1
  18. package/lib/dist/enforce/enforce.d.ts.map +1 -1
  19. package/lib/dist/enforce/enforce.js +37 -5
  20. package/lib/dist/enforce/enforce.js.map +1 -1
  21. package/lib/dist/extraction/grammars.d.ts +10 -0
  22. package/lib/dist/extraction/grammars.d.ts.map +1 -1
  23. package/lib/dist/extraction/grammars.js +32 -3
  24. package/lib/dist/extraction/grammars.js.map +1 -1
  25. package/lib/dist/extraction/index.d.ts +7 -0
  26. package/lib/dist/extraction/index.d.ts.map +1 -1
  27. package/lib/dist/extraction/index.js.map +1 -1
  28. package/lib/dist/extraction/specs/markdown-spec-extractor.d.ts +7 -0
  29. package/lib/dist/extraction/specs/markdown-spec-extractor.d.ts.map +1 -1
  30. package/lib/dist/extraction/specs/markdown-spec-extractor.js +81 -8
  31. package/lib/dist/extraction/specs/markdown-spec-extractor.js.map +1 -1
  32. package/lib/dist/extraction/wasm/tree-sitter-pascal.wasm.gz +0 -0
  33. package/lib/dist/extraction/wasm/tree-sitter-scala.wasm.gz +0 -0
  34. package/lib/dist/graph/spec-coverage.d.ts +86 -0
  35. package/lib/dist/graph/spec-coverage.d.ts.map +1 -0
  36. package/lib/dist/graph/spec-coverage.js +152 -0
  37. package/lib/dist/graph/spec-coverage.js.map +1 -0
  38. package/lib/dist/index.d.ts +69 -6
  39. package/lib/dist/index.d.ts.map +1 -1
  40. package/lib/dist/index.js +133 -21
  41. package/lib/dist/index.js.map +1 -1
  42. package/lib/dist/installer/index.d.ts +33 -8
  43. package/lib/dist/installer/index.d.ts.map +1 -1
  44. package/lib/dist/installer/index.js +50 -50
  45. package/lib/dist/installer/index.js.map +1 -1
  46. package/lib/dist/installer/init-offer.d.ts +14 -9
  47. package/lib/dist/installer/init-offer.d.ts.map +1 -1
  48. package/lib/dist/installer/init-offer.js +13 -9
  49. package/lib/dist/installer/init-offer.js.map +1 -1
  50. package/lib/dist/installer/install-defaults.d.ts +62 -0
  51. package/lib/dist/installer/install-defaults.d.ts.map +1 -0
  52. package/lib/dist/installer/install-defaults.js +67 -0
  53. package/lib/dist/installer/install-defaults.js.map +1 -0
  54. package/lib/dist/installer/targets/claude.d.ts +14 -0
  55. package/lib/dist/installer/targets/claude.d.ts.map +1 -1
  56. package/lib/dist/installer/targets/claude.js +64 -0
  57. package/lib/dist/installer/targets/claude.js.map +1 -1
  58. package/lib/dist/installer/targets/shared.js +4 -4
  59. package/lib/dist/installer/targets/shared.js.map +1 -1
  60. package/lib/dist/mcp/fitness-tool.d.ts +5 -6
  61. package/lib/dist/mcp/fitness-tool.d.ts.map +1 -1
  62. package/lib/dist/mcp/fitness-tool.js +0 -16
  63. package/lib/dist/mcp/fitness-tool.js.map +1 -1
  64. package/lib/dist/mcp/health-tool.d.ts +26 -0
  65. package/lib/dist/mcp/health-tool.d.ts.map +1 -0
  66. package/lib/dist/mcp/health-tool.js +50 -0
  67. package/lib/dist/mcp/health-tool.js.map +1 -0
  68. package/lib/dist/mcp/maintainability-tool.d.ts +5 -7
  69. package/lib/dist/mcp/maintainability-tool.d.ts.map +1 -1
  70. package/lib/dist/mcp/maintainability-tool.js +0 -16
  71. package/lib/dist/mcp/maintainability-tool.js.map +1 -1
  72. package/lib/dist/mcp/model-context.d.ts +13 -2
  73. package/lib/dist/mcp/model-context.d.ts.map +1 -1
  74. package/lib/dist/mcp/model-context.js +39 -12
  75. package/lib/dist/mcp/model-context.js.map +1 -1
  76. package/lib/dist/mcp/proxy.d.ts.map +1 -1
  77. package/lib/dist/mcp/proxy.js +4 -1
  78. package/lib/dist/mcp/proxy.js.map +1 -1
  79. package/lib/dist/mcp/server-instructions.d.ts +1 -1
  80. package/lib/dist/mcp/server-instructions.d.ts.map +1 -1
  81. package/lib/dist/mcp/server-instructions.js +5 -4
  82. package/lib/dist/mcp/server-instructions.js.map +1 -1
  83. package/lib/dist/mcp/spec-tools.d.ts.map +1 -1
  84. package/lib/dist/mcp/spec-tools.js +213 -28
  85. package/lib/dist/mcp/spec-tools.js.map +1 -1
  86. package/lib/dist/mcp/tools.d.ts +12 -8
  87. package/lib/dist/mcp/tools.d.ts.map +1 -1
  88. package/lib/dist/mcp/tools.js +89 -48
  89. package/lib/dist/mcp/tools.js.map +1 -1
  90. package/lib/dist/resolution/spec-link-resolver.d.ts +44 -2
  91. package/lib/dist/resolution/spec-link-resolver.d.ts.map +1 -1
  92. package/lib/dist/resolution/spec-link-resolver.js +132 -0
  93. package/lib/dist/resolution/spec-link-resolver.js.map +1 -1
  94. package/lib/dist/resolution/test-title-links.d.ts +62 -0
  95. package/lib/dist/resolution/test-title-links.d.ts.map +1 -0
  96. package/lib/dist/resolution/test-title-links.js +108 -0
  97. package/lib/dist/resolution/test-title-links.js.map +1 -0
  98. package/lib/dist/search/query-parser.d.ts.map +1 -1
  99. package/lib/dist/search/query-parser.js +6 -1
  100. package/lib/dist/search/query-parser.js.map +1 -1
  101. package/lib/dist/server/project-registry.js +1 -1
  102. package/lib/dist/server/routes/claude.js +9 -36
  103. package/lib/dist/server/routes/graph.js +53 -7
  104. package/lib/dist/server/routes/mcp.js +4 -3
  105. package/lib/dist/server/routes/projects.js +4 -4
  106. package/lib/dist/server/routes/spec.js +49 -7
  107. package/lib/dist/server/server.js +29 -17
  108. package/lib/dist/skills/spec-author/SKILL.md +164 -0
  109. package/lib/dist/skills/spec-author/references/format.md +210 -0
  110. package/lib/dist/skills/spec-author/references/gap-questions.md +152 -0
  111. package/lib/dist/skills/spec-author/references/quality-rubric.md +125 -0
  112. package/lib/dist/skills/spec-author/references/review-checklist.md +175 -0
  113. package/lib/dist/spec-lint/lint.d.ts +82 -0
  114. package/lib/dist/spec-lint/lint.d.ts.map +1 -0
  115. package/lib/dist/spec-lint/lint.js +430 -0
  116. package/lib/dist/spec-lint/lint.js.map +1 -0
  117. package/lib/dist/statusline/index.js.map +1 -1
  118. package/lib/dist/statusline/render.d.ts +1 -1
  119. package/lib/dist/statusline/render.d.ts.map +1 -1
  120. package/lib/dist/statusline/render.js +3 -1
  121. package/lib/dist/statusline/render.js.map +1 -1
  122. package/lib/dist/ui/assets/index-BzuUWUAE.js +50 -0
  123. package/lib/dist/ui/index.html +1 -1
  124. package/lib/dist/verify/report-ingest.d.ts +88 -0
  125. package/lib/dist/verify/report-ingest.d.ts.map +1 -0
  126. package/lib/dist/verify/report-ingest.js +269 -0
  127. package/lib/dist/verify/report-ingest.js.map +1 -0
  128. package/lib/dist/workflows/defaults/spec-fix.yaml +103 -12
  129. package/lib/dist/workflows/defaults/spec-implement-mixed.yaml +264 -21
  130. package/lib/dist/workflows/defaults/spec-implement.yaml +260 -19
  131. package/lib/dist/workflows/defaults/spec-verify.yaml +60 -9
  132. package/lib/node_modules/.package-lock.json +1 -1
  133. package/lib/package.json +7 -3
  134. package/package.json +1 -1
  135. package/lib/dist/extraction/wasm/tree-sitter-pascal.wasm +0 -0
  136. package/lib/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
  137. package/lib/dist/server/ingest/impact-query.js +0 -343
  138. package/lib/dist/server/routes/events.js +0 -152
  139. package/lib/dist/ui/assets/index-CjjaftDw.js +0 -50
@@ -55,6 +55,8 @@ exports.renderLinkedSpecsForNode = renderLinkedSpecsForNode;
55
55
  const behaviour_surface_1 = require("../behaviour/behaviour-surface");
56
56
  const spec_file_writeback_1 = require("../extraction/specs/spec-file-writeback");
57
57
  const spec_link_resolver_1 = require("../resolution/spec-link-resolver");
58
+ const test_title_links_1 = require("../resolution/test-title-links");
59
+ const spec_coverage_1 = require("../graph/spec-coverage");
58
60
  const brief_link_resolver_1 = require("../resolution/brief-link-resolver");
59
61
  const projectPathProperty = {
60
62
  type: 'string',
@@ -103,7 +105,7 @@ exports.REQUIREMENT_STATUSES = [
103
105
  exports.specToolDefinitions = [
104
106
  {
105
107
  name: 'specship_spec',
106
- 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 `list: true` for a flat inventory instead: every requirement grouped by document with exactly one rolled-up status each (authored / in-progress / implemented / verified / needs-attention) plus per-status totals. Pass `ideas: true` for the ideas review view: exactly the idea-state briefs (unlinked brainstorm briefs) with each one\'s age since capture and labels, closing with the promotion hand-off (`/specship:spec new <brief-id>`). 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.',
108
+ 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 `list: true` for a flat inventory instead: every requirement grouped by document with exactly one rolled-up status each (authored / in-progress / implemented / verified / needs-attention) plus per-status totals. Pass `ideas: true` for the ideas review view: exactly the idea-state briefs (unlinked brainstorm briefs) with each one\'s age since capture and labels, closing with the promotion hand-off (`/specship:spec new <brief-id>`). 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. Pass `coverage: true` (with or without a spec_id) for the TEST-COVERAGE rollup: per requirement and per acceptance criterion, a verdict of untested / tested / verified / broken derived from `tests` links only — use it to answer "is this actually proven" rather than "is there code".',
107
109
  inputSchema: {
108
110
  type: 'object',
109
111
  properties: {
@@ -123,6 +125,10 @@ exports.specToolDefinitions = [
123
125
  type: 'boolean',
124
126
  description: 'Provide with no spec_id to get the ideas review view: exactly the idea-state briefs (unlinked brainstorm briefs), each with its age since capture and labels, closing with the promotion hand-off (/specship:spec new <brief-id>). A free-text `query`, `list`, and a `spec_id` all take precedence.',
125
127
  },
128
+ coverage: {
129
+ type: 'boolean',
130
+ description: "Return the spec's TEST-COVERAGE rollup instead of its detail: per requirement and per acceptance criterion, the implements/tests link counts and a verdict (untested / tested / verified / broken). The verdict derives from `tests` links only — implemented code is never counted as met. Omit spec_id for the whole project.",
131
+ },
126
132
  behaviour_surface: {
127
133
  type: 'boolean',
128
134
  description: "With a spec_id, return that requirement's BEHAVIOUR SURFACE instead of its detail: the code it links to plus the surrounding routes / components / handlers, grouped into a UI tier (Playwright targets) and a backend/batch tier (API/job targets). Use to author end-to-end tests for a requirement.",
@@ -133,7 +139,7 @@ exports.specToolDefinitions = [
133
139
  },
134
140
  {
135
141
  name: 'specship_link_assert',
136
- description: 'Declare that a code symbol implements (or tests / documents / validates) a spec. Call this AFTER editing code in response to a spec — before reporting done. Idempotent: calling it again refreshes the link with the latest signature snapshot. Higher-priority signal than the // @implements REQ-X comment backstop (the extractor catches comment-only links automatically).',
142
+ description: 'Declare that a code symbol implements (or tests / documents / validates) a spec. Call this AFTER editing code in response to a spec — before reporting done. Idempotent: calling it again refreshes the link with the latest signature snapshot. The target is validated against the graph: a file:symbol that does not resolve is REFUSED with near-miss suggestions rather than recorded, so pass the fully-qualified name exactly as indexed (specship_search if unsure). Higher-priority signal than the // @implements REQ-X comment backstop (the extractor catches comment-only links automatically).',
137
143
  inputSchema: {
138
144
  type: 'object',
139
145
  properties: {
@@ -167,7 +173,7 @@ exports.specToolDefinitions = [
167
173
  },
168
174
  {
169
175
  name: 'specship_link_verify',
170
- description: 'Report the outcome of verifying a spec→code link (e.g., after running tests). pass → state moves to "verified"; fail → "broken" with the optional reason in metadata. Use this in spec-verify / spec-fix workflows or after manual test runs.',
176
+ description: 'Report the outcome of verifying a spec→code link (e.g., after running tests). pass → state moves to "verified"; fail → "broken". The reason, an ISO timestamp, and any test names passed as `evidence` are persisted on the link and shown wherever it is rendered — pass the test name(s) you actually ran. Use this in spec-verify / spec-fix workflows or after manual test runs.',
171
177
  inputSchema: {
172
178
  type: 'object',
173
179
  properties: {
@@ -182,7 +188,12 @@ exports.specToolDefinitions = [
182
188
  },
183
189
  reason: {
184
190
  type: 'string',
185
- description: 'Optional explanation (test name, failure message, etc.)',
191
+ description: 'Optional explanation (what was run, failure message, etc.). Persisted on the link with a timestamp.',
192
+ },
193
+ evidence: {
194
+ type: 'array',
195
+ description: 'The test(s) this verdict is based on, e.g. ["__tests__/auth.test.ts:signs in a user"]. Persisted as the link\'s verification evidence.',
196
+ items: { type: 'string' },
186
197
  },
187
198
  projectPath: projectPathProperty,
188
199
  },
@@ -219,12 +230,89 @@ const error = (msg) => ({
219
230
  content: [{ type: 'text', text: `Error: ${msg}` }],
220
231
  isError: true,
221
232
  });
222
- /** Format one link line for inclusion in `specship_spec` / `specship_drifted`. */
233
+ /**
234
+ * Test evidence that came from a FILE, not from an agent's own assertion
235
+ * (REQ-REVINT-005.A2). A `verifies:` block gives provenance
236
+ * `spec-declaration`; an `@verifies REQ-X` comment on the test gives
237
+ * `code-comment`. `agent-asserted` is a DB-only row the implementing agent can
238
+ * write itself, so it must not count toward promotion eligibility.
239
+ */
240
+ function isFileDerivedEvidence(link) {
241
+ if (link.provenance !== 'spec-declaration' && link.provenance !== 'code-comment') {
242
+ return false;
243
+ }
244
+ // …and it must point INTO a test file (REQ-VSTATE-002.A4): a `verifies:`
245
+ // bullet or `@verifies` marker on a fixture is a declaration, not evidence.
246
+ return !(0, test_title_links_1.isNonTestEvidence)(link);
247
+ }
248
+ /**
249
+ * The persisted verification record on a link, if any (REQ-REVINT-004). Shaped
250
+ * by the verify handlers; read defensively because `metadata` is free-form.
251
+ */
252
+ function verificationOf(link) {
253
+ const v = link.metadata?.verification;
254
+ if (!v || typeof v !== 'object')
255
+ return null;
256
+ const rec = v;
257
+ const evidence = Array.isArray(rec.evidence)
258
+ ? rec.evidence.filter((e) => typeof e === 'string')
259
+ : undefined;
260
+ return {
261
+ verifiedAt: typeof rec.verifiedAt === 'string' ? rec.verifiedAt : undefined,
262
+ reason: typeof rec.reason === 'string' ? rec.reason : undefined,
263
+ evidence,
264
+ };
265
+ }
266
+ /**
267
+ * Format one link line for inclusion in `specship_spec` / `specship_drifted`.
268
+ * A verified / broken link renders its persisted evidence on a second line
269
+ * (REQ-REVINT-004.A2) so the state is auditable wherever links are shown.
270
+ */
223
271
  function formatLink(link) {
224
272
  const resolved = link.resolvedNodeId ? '✓' : '✗';
225
273
  const driftSuffix = link.driftAxis ? ` [drift=${link.driftAxis}]` : '';
226
274
  const conf = link.confidence !== undefined ? ` (${link.confidence.toFixed(2)})` : '';
227
- return ` - [${link.state}${driftSuffix}] ${resolved} ${link.kind} → ${link.targetFilePath}:${link.targetQualifiedName} <${link.provenance}${conf}> #${link.id}`;
275
+ const head = ` - [${link.state}${driftSuffix}] ${resolved} ${link.kind} → ${link.targetFilePath}:${link.targetQualifiedName} <${link.provenance}${conf}> #${link.id}`;
276
+ const v = verificationOf(link);
277
+ if (!v || !v.verifiedAt)
278
+ return head;
279
+ const parts = [`verified ${v.verifiedAt}`];
280
+ if (v.evidence?.length)
281
+ parts.push(`evidence: ${v.evidence.join(', ')}`);
282
+ if (v.reason)
283
+ parts.push(v.reason);
284
+ return `${head}\n ↳ ${parts.join(' · ')}`;
285
+ }
286
+ /**
287
+ * Render the coverage rollup for the agent (REQ-VSTATE-006.A2).
288
+ *
289
+ * Leads with the verdict per criterion because that is the actionable unit: an
290
+ * `untested` line names exactly which criterion still needs a test, and the
291
+ * counts behind it show whether the gap is "no code" or "code, no proof".
292
+ */
293
+ function renderCoverage(report) {
294
+ const lines = [];
295
+ const scope = report.specId ?? 'project';
296
+ lines.push(`# Spec coverage — ${scope}`);
297
+ lines.push('');
298
+ lines.push('_Verdicts derive from `tests` links only. An `implements` link is a claim, not evidence — a criterion with code but no test reads `untested`._');
299
+ lines.push('');
300
+ if (report.requirements.length === 0) {
301
+ lines.push(report.specId
302
+ ? `_No requirements under "${report.specId}" — nothing to report._`
303
+ : '_No requirements indexed yet._');
304
+ return lines.join('\n');
305
+ }
306
+ for (const req of report.requirements) {
307
+ lines.push(`## ${req.specId} — ${req.title}`);
308
+ lines.push(`**${req.verdict}** · implements: ${req.implementsLinks.count} · tests: ${req.testsLinks.count} · criteria with tests: ${req.criteriaWithTests}/${req.criteriaCount}`);
309
+ for (const c of req.criteria) {
310
+ lines.push(`- [${c.verdict}] ${c.specId} — implements: ${c.implementsLinks.count}, tests: ${c.testsLinks.count}`);
311
+ }
312
+ lines.push('');
313
+ }
314
+ lines.push((0, spec_coverage_1.formatCoverageLine)(report));
315
+ return lines.join('\n');
228
316
  }
229
317
  /**
230
318
  * Build the spec-search results markdown (REQ-TRIAGE-001): scored, ranked specs
@@ -553,6 +641,13 @@ async function handleSpecshipSpec(cg, args) {
553
641
  if (args.ideas === true) {
554
642
  return text(buildIdeas(sq));
555
643
  }
644
+ // Coverage mode (REQ-VSTATE-006.A2): with or without a spec_id, return the
645
+ // test-coverage rollup. Sits before the no-id funnel branch so
646
+ // `coverage: true` alone reports the whole project.
647
+ if (args.coverage === true) {
648
+ const scope = typeof specId === 'string' && specId.length > 0 ? specId : undefined;
649
+ return text(renderCoverage(cg.getSpecCoverage(scope)));
650
+ }
556
651
  // No id → the lifecycle funnel (REQ-FUNNEL-005). The id case below is unchanged.
557
652
  if (specId === undefined || specId === null || specId === '') {
558
653
  return text(buildFunnel(sq));
@@ -604,7 +699,9 @@ async function handleSpecshipSpec(cg, args) {
604
699
  // Evidence status (VERIFY-EVID-DOC, REQ-VEVID-003): distinguish
605
700
  // "implemented, evidenced" from "implemented, no test evidence" — the
606
701
  // latter can never promote to verified until evidence is declared.
607
- const hasEvidence = links.some((l) => l.kind === 'tests');
702
+ // File-derived only, matching the promotion gate (REQ-REVINT-005.A2) — an
703
+ // agent-asserted tests row must not read as evidence here either.
704
+ const hasEvidence = links.some((l) => l.kind === 'tests' && isFileDerivedEvidence(l));
608
705
  const hasImplements = links.some((l) => l.kind === 'implements');
609
706
  if (hasImplements && !hasEvidence && spec.kind === 'requirement') {
610
707
  lines.push('');
@@ -682,6 +779,62 @@ async function handleSpecshipSpec(cg, args) {
682
779
  }
683
780
  return text(lines.join('\n'));
684
781
  }
782
+ /**
783
+ * Near-miss suggestions for an assert target that doesn't resolve
784
+ * (REQ-REVINT-003.A2): the same symbol name found in OTHER files, plus
785
+ * same-file symbols whose name is close to what was asserted. The agent gets a
786
+ * retry target, not a listing — both lists are capped. Never throws: a failed
787
+ * lookup degrades to "no suggestions", because the refusal itself is the
788
+ * load-bearing part.
789
+ */
790
+ const SUGGESTION_CAP = 5;
791
+ /**
792
+ * How close two lowercased symbol names are, for near-miss ranking: 0 = not a
793
+ * candidate. A containment either way scores highest; otherwise a shared
794
+ * leading run of ≥3 characters, which is what catches the common failure mode
795
+ * (a mistyped or half-remembered tail — `authentikate` for `authenticate`).
796
+ */
797
+ function nameCloseness(needle, candidate) {
798
+ if (needle === candidate)
799
+ return Number.MAX_SAFE_INTEGER;
800
+ if (candidate.includes(needle) || needle.includes(candidate))
801
+ return 1000;
802
+ let shared = 0;
803
+ while (shared < needle.length && shared < candidate.length && needle[shared] === candidate[shared])
804
+ shared++;
805
+ return shared >= 3 ? shared : 0;
806
+ }
807
+ function nearMissSuggestions(cg, filePath, qualifiedName) {
808
+ const base = qualifiedName.split('.').pop() ?? qualifiedName;
809
+ const lines = [];
810
+ try {
811
+ const elsewhere = cg
812
+ .getNodesByName(base)
813
+ .filter((n) => n.filePath !== filePath)
814
+ .slice(0, SUGGESTION_CAP);
815
+ if (elsewhere.length > 0) {
816
+ lines.push(`Same symbol name in other files: ${elsewhere.map((n) => `${n.filePath}:${n.qualifiedName}`).join(', ')}`);
817
+ }
818
+ const needle = base.toLowerCase();
819
+ const sameFile = cg
820
+ .getNodesInFile(filePath)
821
+ .map((n) => ({ n, score: nameCloseness(needle, n.name.toLowerCase()) }))
822
+ .filter((c) => c.score > 0)
823
+ .sort((a, z) => z.score - a.score)
824
+ .slice(0, SUGGESTION_CAP)
825
+ .map((c) => c.n);
826
+ if (sameFile.length > 0) {
827
+ lines.push(`Similar symbols in ${filePath}: ${sameFile.map((n) => n.qualifiedName).join(', ')}`);
828
+ }
829
+ }
830
+ catch {
831
+ // Index unavailable — fall through to the no-suggestion form.
832
+ }
833
+ if (lines.length === 0) {
834
+ return `No near-miss candidates found — check the path and the fully-qualified name (use specship_search).`;
835
+ }
836
+ return lines.join('\n');
837
+ }
685
838
  async function handleSpecshipLinkAssert(cg, args) {
686
839
  const specId = args.spec_id;
687
840
  const targetFilePath = args.target_file_path;
@@ -706,39 +859,50 @@ async function handleSpecshipLinkAssert(cg, args) {
706
859
  if (!spec) {
707
860
  return error(`Spec "${specId}" not found. Make sure the spec file is indexed (specship index).`);
708
861
  }
709
- // Find current node (if any) so we can snapshot its signature.
862
+ // Validate the target BEFORE recording anything (REQ-REVINT-003): a typo'd
863
+ // or invented symbol used to land as `implemented` and poison the funnel
864
+ // until a later resolver pass demoted it.
710
865
  const resolver = cg.getSpecLinkResolver();
711
- // Use the resolver's logical target lookup indirectly via SpecQueries: a
712
- // separate small lookup keeps spec-tools standalone.
713
- const candidates = cg
714
- .getSpecQueries()
715
- .getLinksByLogicalTarget(targetFilePath, targetQualifiedName);
716
- // The lookup above returns existing links, not current nodes — use the
717
- // queries directly for that.
718
- // Lightweight node lookup via QueryBuilder is not exposed here, so let the
719
- // resolver fill in resolved_node_id on its next pass; we leave it NULL
720
- // for this assertion and rely on the upcoming resolveAll to populate.
721
- void candidates;
866
+ let node = resolver.findLogicalTarget(targetFilePath, targetQualifiedName, targetNodeKind);
867
+ if (!node && !cg.isIndexing()) {
868
+ // The index lags writes by ~1s, so a symbol the agent just wrote may not be
869
+ // extracted yet. Sync before refusing — otherwise a correct assertion made
870
+ // immediately after an edit would be rejected on a timing artifact.
871
+ try {
872
+ await cg.sync();
873
+ }
874
+ catch {
875
+ // Sync failure isn't the agent's problem here — fall through to the
876
+ // refusal, which tells it what to do next either way.
877
+ }
878
+ node = resolver.findLogicalTarget(targetFilePath, targetQualifiedName, targetNodeKind);
879
+ }
880
+ if (!node) {
881
+ return error(`${targetFilePath}:${targetQualifiedName} does not resolve to an indexed symbol, so no link was recorded ` +
882
+ `(a link to a symbol that doesn't exist is indistinguishable from an orphan).\n` +
883
+ nearMissSuggestions(cg, targetFilePath, targetQualifiedName) +
884
+ `\nRe-call specship_link_assert with a target that exists, or add a \`- ${targetFilePath}:${targetQualifiedName}\` ` +
885
+ `bullet under \`implementations:\` in ${spec.sourcePath} once the symbol is written.`);
886
+ }
722
887
  const now = Date.now();
723
888
  const linkId = sq.upsertSpecLink({
724
889
  specId,
725
890
  targetFilePath,
726
891
  targetQualifiedName,
727
892
  targetNodeKind,
728
- resolvedNodeId: undefined,
893
+ // Resolved node id + signature snapshot (A1): the signature is the drift
894
+ // baseline the resolver compares against on every later pass.
895
+ resolvedNodeId: node.id,
729
896
  kind,
730
897
  state: 'implemented',
731
898
  driftAxis: null,
732
899
  specHashAtLink: spec.contentHash,
733
- nodeSigAtLink: undefined,
900
+ nodeSigAtLink: node.signature,
734
901
  provenance: 'agent-asserted',
735
902
  confidence: 1.0,
736
903
  createdAt: now,
737
904
  updatedAt: now,
738
905
  });
739
- // Run the resolver against this single file so resolved_node_id gets
740
- // populated immediately (otherwise it sits NULL until the next index/sync).
741
- resolver.resolveLinksForFiles([targetFilePath]);
742
906
  // Persist the assertion into the spec file's `implementations:` block —
743
907
  // the file is the source of truth; the DB row alone would vanish on a full
744
908
  // reindex (LINK-TRUTH-DOC, REQ-LINKWB-001). `implements` only: `verifies`
@@ -758,6 +922,11 @@ async function handleSpecshipLinkVerify(cg, args) {
758
922
  const linkId = args.link_id;
759
923
  const result = args.result;
760
924
  const reason = typeof args.reason === 'string' ? args.reason : undefined;
925
+ const evidence = Array.isArray(args.evidence)
926
+ ? args.evidence.filter((e) => typeof e === 'string' && e.length > 0)
927
+ : typeof args.evidence === 'string' && args.evidence.length > 0
928
+ ? [args.evidence]
929
+ : [];
761
930
  if (typeof linkId !== 'number' || !Number.isFinite(linkId)) {
762
931
  return error('link_id is required (number)');
763
932
  }
@@ -774,12 +943,15 @@ async function handleSpecshipLinkVerify(cg, args) {
774
943
  // least one declared test-evidence link (kind='tests', from a `verifies:`
775
944
  // block or an `@verifies REQ-X` comment on the test). A green suite alone
776
945
  // proves nothing about THIS spec — evidence-less specs cap at
777
- // `implemented` (REQ-VEVID-002.A2).
946
+ // `implemented` (REQ-VEVID-002.A2). Only FILE-DERIVED evidence counts
947
+ // (REQ-REVINT-005.A2): an agent-asserted tests link is a DB-only row the
948
+ // implementing agent can mint for itself, so it would let a run promote past
949
+ // its own gate.
778
950
  if (result === 'pass' && link.kind === 'implements') {
779
- const evidence = sq
951
+ const evidenceLinks = sq
780
952
  .getLinksBySpec(link.specId)
781
- .filter((l) => l.kind === 'tests');
782
- if (evidence.length === 0) {
953
+ .filter((l) => l.kind === 'tests' && isFileDerivedEvidence(l));
954
+ if (evidenceLinks.length === 0) {
783
955
  return error(`Cannot promote ${link.specId} to verified: no test evidence is linked to it. ` +
784
956
  `Declare the test(s) that prove this requirement — add a \`verifies:\` block to the spec ` +
785
957
  `(e.g. \`- __tests__/foo.test.ts:testName\`) or an \`@verifies ${link.specId}\` comment on the test — ` +
@@ -788,6 +960,19 @@ async function handleSpecshipLinkVerify(cg, args) {
788
960
  }
789
961
  const newState = result === 'pass' ? 'verified' : 'broken';
790
962
  sq.updateSpecLinkState(linkId, newState, null);
963
+ // Persist the verification evidence (REQ-REVINT-004): `verified` is a proof
964
+ // claim, so the reason, the moment it was made, and any test identity the
965
+ // caller supplied have to outlive the call. The timestamp is recorded even
966
+ // with no reason (A3) — evidence is never silently absent.
967
+ const verification = {
968
+ result,
969
+ verifiedAt: new Date().toISOString(),
970
+ };
971
+ if (reason)
972
+ verification.reason = reason;
973
+ if (evidence.length > 0)
974
+ verification.evidence = evidence;
975
+ sq.updateSpecLinkMetadata(linkId, { ...(link.metadata ?? {}), verification });
791
976
  // JIRA push (REQ-JIRAPUB-005): a verified acceptance criterion on a
792
977
  // JIRA-backed spec advances its published Sub-task (and, when all Sub-tasks
793
978
  // are done, the Story). Strictly best-effort AFTER the verify is recorded —
@@ -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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"}
@@ -171,13 +171,16 @@ export declare function integrationEnabled(name: IntegrationName, env?: NodeJS.P
171
171
  export declare function toolIntegration(toolName: string): IntegrationName | null;
172
172
  /** Drop tools whose integration isn't enabled (REQ-INTEG-001.A1/A2). */
173
173
  export declare function filterIntegrationTools(list: ToolDefinition[], env?: NodeJS.ProcessEnv): ToolDefinition[];
174
+ export declare function applyLiteTierTrim(list: ToolDefinition[], hint: string | null): ToolDefinition[];
174
175
  /**
175
176
  * Allowlist-filtered tool definitions WITHOUT an engine — the static surface the
176
177
  * proxy answers `tools/list` with before any project is open. Mirrors
177
178
  * `ToolHandler.getTools()` in the no-SpecShip case (the dynamic per-repo budget
178
179
  * note in a description only adds once `cg` is loaded; the schemas are static).
180
+ * When a project-root hint is given, the lite-tier trim applies here too
181
+ * (REQ-LOWMODEL-004.A4) — the marker file needs no DB open.
179
182
  */
180
- export declare function getStaticTools(): ToolDefinition[];
183
+ export declare function getStaticTools(projectRootHint?: string | null): ToolDefinition[];
181
184
  /**
182
185
  * Tool handler that executes tools against a SpecShip instance
183
186
  *
@@ -294,11 +297,11 @@ export declare class ToolHandler {
294
297
  /**
295
298
  * Model-aware compaction (MODCTX-DOC, REQ-MODCTX-002/003). Resolves the
296
299
  * session's model tier (status-line marker / SPECSHIP_MODEL; SPECSHIP_COMPACT=0
297
- * disables) and, on haiku/sonnet, compresses the response's prose
300
+ * disables) and, on the lite/standard tiers, compresses the response's prose
298
301
  * scaffolding — fenced code stays byte-verbatim. Full tier is identity.
299
302
  */
300
303
  /**
301
- * Tier-change listeners (LOWMODEL-DOC, REQ-LOWMODEL-004.A3): the haiku
304
+ * Tier-change listeners (LOWMODEL-DOC, REQ-LOWMODEL-004.A3): the lite-tier
302
305
  * menu trim changes `tools/list`, so a mid-session /model switch must ride
303
306
  * an MCP `notifications/tools/list_changed`. Sessions subscribe here; the
304
307
  * change is detected on the next code-graph call (the same funnel that
@@ -450,12 +453,13 @@ export declare class ToolHandler {
450
453
  */
451
454
  private formatTrail;
452
455
  /**
453
- * Handle specship_version (REQ-MCPVER-001). Identifies the running MCP
454
- * server process — the version an agent's tools are being served by,
455
- * how it was installed, node version, and (if bound) the project root.
456
- * Zero-arg, synchronous, never touches the DB, safe with no project.
456
+ * Server identity (REQ-MCPVER-001, folded into specship_status by
457
+ * REQ-SURF-006). Identifies the running MCP server process — the version an
458
+ * agent's tools are being served by, how it was installed, node version, and
459
+ * (if bound) the project root. Synchronous, never touches the DB, safe with
460
+ * no project open.
457
461
  */
458
- private handleVersion;
462
+ private identityBlock;
459
463
  /**
460
464
  * Handle specship_status
461
465
  */
@@ -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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"}