@rsaglobaltech/specgate 0.8.1 → 0.9.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 (121) hide show
  1. package/CHANGELOG.md +98 -0
  2. package/README.md +8 -8
  3. package/bin/specgate.ts +13 -2
  4. package/dist/bin/specgate.js +11 -1
  5. package/dist/bin/specgate.js.map +1 -1
  6. package/dist/packages/core/src/application/GenerateAgentPromptUseCase.js +56 -0
  7. package/dist/packages/core/src/application/GenerateAgentPromptUseCase.js.map +1 -1
  8. package/dist/packages/core/src/application/ValidateProjectUseCase.js +54 -0
  9. package/dist/packages/core/src/application/ValidateProjectUseCase.js.map +1 -1
  10. package/dist/packages/core/src/domain/AdversarialProbe.js +75 -0
  11. package/dist/packages/core/src/domain/AdversarialProbe.js.map +1 -0
  12. package/dist/packages/core/src/domain/AgentPrompt.js +52 -3
  13. package/dist/packages/core/src/domain/AgentPrompt.js.map +1 -1
  14. package/dist/packages/core/src/domain/DeclaredArtifacts.js +25 -0
  15. package/dist/packages/core/src/domain/DeclaredArtifacts.js.map +1 -1
  16. package/dist/packages/core/src/domain/DoneVerification.js +68 -0
  17. package/dist/packages/core/src/domain/DoneVerification.js.map +1 -0
  18. package/dist/packages/core/src/domain/GateCommandIntegrity.js +139 -0
  19. package/dist/packages/core/src/domain/GateCommandIntegrity.js.map +1 -0
  20. package/dist/packages/core/src/domain/HarnessConfig.js +6 -0
  21. package/dist/packages/core/src/domain/HarnessConfig.js.map +1 -1
  22. package/dist/packages/core/src/domain/MultiStack.js +96 -0
  23. package/dist/packages/core/src/domain/MultiStack.js.map +1 -0
  24. package/dist/packages/core/src/domain/Precedents.js +96 -0
  25. package/dist/packages/core/src/domain/Precedents.js.map +1 -0
  26. package/dist/packages/core/src/domain/RequirementRemoval.js +161 -0
  27. package/dist/packages/core/src/domain/RequirementRemoval.js.map +1 -0
  28. package/dist/packages/core/src/domain/ScenarioCoverage.js +178 -0
  29. package/dist/packages/core/src/domain/ScenarioCoverage.js.map +1 -0
  30. package/dist/packages/core/src/domain/SpecSections.js +206 -0
  31. package/dist/packages/core/src/domain/SpecSections.js.map +1 -0
  32. package/dist/packages/core/src/domain/TestCommand.js +82 -0
  33. package/dist/packages/core/src/domain/TestCommand.js.map +1 -0
  34. package/dist/packages/core/src/domain/TraceabilityFormat.js +37 -1
  35. package/dist/packages/core/src/domain/TraceabilityFormat.js.map +1 -1
  36. package/dist/packages/core/src/infrastructure/HarnessConfigFile.js +31 -0
  37. package/dist/packages/core/src/infrastructure/HarnessConfigFile.js.map +1 -1
  38. package/dist/packages/core/test/unit/adversarial-probe.test.js +81 -0
  39. package/dist/packages/core/test/unit/adversarial-probe.test.js.map +1 -0
  40. package/dist/packages/core/test/unit/done-verification.test.js +83 -0
  41. package/dist/packages/core/test/unit/done-verification.test.js.map +1 -0
  42. package/dist/packages/core/test/unit/gate-command-integrity.test.js +114 -0
  43. package/dist/packages/core/test/unit/gate-command-integrity.test.js.map +1 -0
  44. package/dist/packages/core/test/unit/multi-stack.test.js +86 -0
  45. package/dist/packages/core/test/unit/multi-stack.test.js.map +1 -0
  46. package/dist/packages/core/test/unit/precedents.test.js +99 -0
  47. package/dist/packages/core/test/unit/precedents.test.js.map +1 -0
  48. package/dist/packages/core/test/unit/requirement-removal.test.js +124 -0
  49. package/dist/packages/core/test/unit/requirement-removal.test.js.map +1 -0
  50. package/dist/packages/core/test/unit/scenario-coverage.test.js +146 -0
  51. package/dist/packages/core/test/unit/scenario-coverage.test.js.map +1 -0
  52. package/dist/packages/core/test/unit/spec-sections.test.js +146 -0
  53. package/dist/packages/core/test/unit/spec-sections.test.js.map +1 -0
  54. package/dist/packages/core/test/unit/test-command.test.js +81 -0
  55. package/dist/packages/core/test/unit/test-command.test.js.map +1 -0
  56. package/dist/packages/core/test/unit/validate-project.test.js +21 -0
  57. package/dist/packages/core/test/unit/validate-project.test.js.map +1 -1
  58. package/dist/scripts/agents/commands.js +1 -1
  59. package/dist/scripts/agents/commands.js.map +1 -1
  60. package/dist/scripts/agents/init.js +1 -1
  61. package/dist/scripts/agents/init.js.map +1 -1
  62. package/dist/scripts/change/instructions.js +2 -2
  63. package/dist/scripts/change/instructions.js.map +1 -1
  64. package/dist/scripts/cli/commands/change/ChangeCommand.js +2 -2
  65. package/dist/scripts/cli/commands/change/ChangeCommand.js.map +1 -1
  66. package/dist/scripts/cli/commands/config/CiInitCommand.js +1 -1
  67. package/dist/scripts/cli/commands/config/CiInitCommand.js.map +1 -1
  68. package/dist/scripts/cli/commands/harness/RunCommand.js +203 -4
  69. package/dist/scripts/cli/commands/harness/RunCommand.js.map +1 -1
  70. package/dist/scripts/cli/commands/pack/InferPackCommand.js +331 -31
  71. package/dist/scripts/cli/commands/pack/InferPackCommand.js.map +1 -1
  72. package/dist/scripts/cli/commands/project/AdoptCommand.js +81 -4
  73. package/dist/scripts/cli/commands/project/AdoptCommand.js.map +1 -1
  74. package/dist/scripts/cli/commands/project/InitProjectCommand.js +245 -45
  75. package/dist/scripts/cli/commands/project/InitProjectCommand.js.map +1 -1
  76. package/dist/scripts/cli/commands/quality/DoctorCommand.js +20 -2
  77. package/dist/scripts/cli/commands/quality/DoctorCommand.js.map +1 -1
  78. package/dist/scripts/cli/commands/quality/FixCommand.js +1 -1
  79. package/dist/scripts/cli/commands/quality/FixCommand.js.map +1 -1
  80. package/dist/scripts/cli/commands/quality/ReportCommand.js +1 -1
  81. package/dist/scripts/cli/commands/quality/ReportCommand.js.map +1 -1
  82. package/dist/scripts/cli/commands/quality/ValidateSpecsCommand.js +340 -18
  83. package/dist/scripts/cli/commands/quality/ValidateSpecsCommand.js.map +1 -1
  84. package/dist/scripts/cli/commands/spec/DoneCommand.js +108 -0
  85. package/dist/scripts/cli/commands/spec/DoneCommand.js.map +1 -1
  86. package/dist/scripts/cli/commands/spec/PlanCommand.js +7 -1
  87. package/dist/scripts/cli/commands/spec/PlanCommand.js.map +1 -1
  88. package/dist/scripts/cli/commands/spec/ReqCommand.js +112 -2
  89. package/dist/scripts/cli/commands/spec/ReqCommand.js.map +1 -1
  90. package/dist/scripts/cli/commands/spec/StatusCommand.js +2 -2
  91. package/dist/scripts/cli/commands/spec/StatusCommand.js.map +1 -1
  92. package/dist/scripts/docs/build-site.js +145 -35
  93. package/dist/scripts/docs/build-site.js.map +1 -1
  94. package/dist/scripts/docs/components.js +208 -0
  95. package/dist/scripts/docs/components.js.map +1 -0
  96. package/dist/scripts/docs/highlight.js +180 -0
  97. package/dist/scripts/docs/highlight.js.map +1 -0
  98. package/dist/scripts/docs/icons.js +63 -0
  99. package/dist/scripts/docs/icons.js.map +1 -0
  100. package/dist/scripts/docs/nav.js +9 -3
  101. package/dist/scripts/docs/nav.js.map +1 -1
  102. package/dist/scripts/gen_mcp_tools.js +22 -2
  103. package/dist/scripts/gen_mcp_tools.js.map +1 -1
  104. package/dist/scripts/harness/init.js +101 -40
  105. package/dist/scripts/harness/init.js.map +1 -1
  106. package/dist/scripts/harness/worktree-lock.js +161 -0
  107. package/dist/scripts/harness/worktree-lock.js.map +1 -0
  108. package/dist/scripts/infer_pack.js +4 -1
  109. package/dist/scripts/infer_pack.js.map +1 -1
  110. package/dist/scripts/lib/surface.js +35 -7
  111. package/dist/scripts/lib/surface.js.map +1 -1
  112. package/package.json +5 -2
  113. package/templates/adopt/AI_RULES.md.tpl +1 -1
  114. package/templates/adopt/spec.md.tpl +4 -4
  115. package/templates/base/spec.md.tpl +12 -0
  116. package/templates/ci/azure.yml.tpl +2 -2
  117. package/templates/ci/github.yml.tpl +2 -2
  118. package/templates/ci/gitlab.yml.tpl +1 -1
  119. package/templates/ci/jenkins.tpl +1 -1
  120. package/templates/contracts/test-strategy.md.tpl +2 -2
  121. package/templates/harness/prompt-prefix.md.tpl +2 -5
@@ -44,16 +44,20 @@ const DiskProjectRepository_1 = require("../../../../packages/core/src/infrastru
44
44
  const diagnostics_1 = require("../../../lib/diagnostics");
45
45
  const against_lock_1 = require("../../../specops/against_lock");
46
46
  const requirement_graph_1 = require("../../../lib/requirement-graph");
47
+ const MultiStack_1 = require("../../../../packages/core/src/domain/MultiStack");
48
+ const ScenarioCoverage_1 = require("../../../../packages/core/src/domain/ScenarioCoverage");
49
+ const TraceabilityFormat_1 = require("../../../../packages/core/src/domain/TraceabilityFormat");
50
+ const crypto = __importStar(require("node:crypto"));
47
51
  const agent_1 = require("../../../lib/agent");
48
52
  const placeholders_1 = require("../../../lib/placeholders");
49
53
  const command_1 = require("../../../lib/command");
50
54
  const ValidateProjectUseCase_1 = require("../../../../packages/core/src/application/ValidateProjectUseCase");
51
55
  const DiskTraceabilityRepository_1 = require("../../../../packages/core/src/infrastructure/DiskTraceabilityRepository");
52
- const TraceabilityFormat_1 = require("../../../../packages/core/src/domain/TraceabilityFormat");
56
+ const TraceabilityFormat_2 = require("../../../../packages/core/src/domain/TraceabilityFormat");
53
57
  const project_root_1 = require("../../../lib/project-root");
54
58
  const GherkinQuality_1 = require("../../../../packages/core/src/domain/GherkinQuality");
55
59
  const GherkinTags_1 = require("../../../../packages/core/src/domain/GherkinTags");
56
- const TraceabilityFormat_2 = require("../../../../packages/core/src/domain/TraceabilityFormat");
60
+ const TraceabilityFormat_3 = require("../../../../packages/core/src/domain/TraceabilityFormat");
57
61
  const RequirementSyntax_1 = require("../../../../packages/core/src/domain/RequirementSyntax");
58
62
  const DeclaredArtifacts_1 = require("../../../../packages/core/src/domain/DeclaredArtifacts");
59
63
  const SpecParser_1 = require("../../../../packages/core/src/domain/SpecParser");
@@ -69,7 +73,8 @@ class ValidateSpecsCommand extends command_1.BaseCommand {
69
73
  }
70
74
  usage() {
71
75
  process.stdout.write("🔎 Usage:\n" +
72
- " validate_specs.js <project_dir> [--strict-tdd] [--strict-scenarios] " +
76
+ " specgate validate <project_dir> [--strict] [--strict-tdd] [--strict-scenarios] " +
77
+ " [--strict-coverage] " +
73
78
  "[--strict-requirements] [--strict-links] [--against-lock]\n\n" +
74
79
  "Checks:\n" +
75
80
  "- minimum SDD structure\n" +
@@ -93,6 +98,14 @@ class ValidateSpecsCommand extends command_1.BaseCommand {
93
98
  "--strict-requirements additionally enforces, over docs/specs/capabilities/**/spec.md:\n" +
94
99
  "- Every requirement states an obligation (SHALL / MUST / SHOULD / MAY / DEBE / DEBERÁ)\n" +
95
100
  "- A requirement that opens with IF resolves with THEN in the same sentence\n\n" +
101
+ "--strict is the gate: every check below, in one flag. Prefer it — the\n" +
102
+ "individual flags exist so an existing CI invocation keeps meaning what it meant.\n\n" +
103
+ "--strict-coverage additionally enforces:\n" +
104
+ "- Every scenario in a declared feature file is named by the test artifact that\n" +
105
+ " claims to prove it\n" +
106
+ "- Every declared test artifact names its requirement or one of its scenarios —\n" +
107
+ " a path that exists is not evidence that it proves anything\n" +
108
+ " Both are name matches, so this is opt-in: it does not run your suite\n\n" +
96
109
  "--strict-links additionally enforces:\n" +
97
110
  "- Every Feature file / Technical artifact / Test artifact the matrix declares as a\n" +
98
111
  " path still exists on disk\n");
@@ -138,7 +151,64 @@ class ValidateSpecsCommand extends command_1.BaseCommand {
138
151
  this.logFix(fixLines);
139
152
  process.exit(exitCode);
140
153
  }
141
- validateMonorepo(targetDir, strictTdd, strictScenarios, strictRequirements, strictLinks) {
154
+ /**
155
+ * A shared spec that is only shared by convention is not shared.
156
+ *
157
+ * `init --multi-stack` symlinks spec.md, features/ and the ADR index into
158
+ * every stack, so there is one file with several names. Windows refuses to
159
+ * create symlinks without Developer Mode, and scaffolding copies instead —
160
+ * at which point "shared" is a claim rather than a fact, and the three stacks
161
+ * can quietly start describing different products.
162
+ *
163
+ * So the guarantee moves into the gate: a copy that no longer matches the
164
+ * root is an error. Symlinked trees skip this, because they cannot drift.
165
+ */
166
+ sharedSpecDrift(rootDir, projectRel) {
167
+ const digest = (target) => {
168
+ const h = crypto.createHash("sha256");
169
+ const stat = fs.statSync(target);
170
+ if (stat.isFile()) {
171
+ h.update(fs.readFileSync(target));
172
+ return h.digest("hex");
173
+ }
174
+ const entries = [];
175
+ const walkInto = (dir) => {
176
+ for (const name of fs.readdirSync(dir).sort()) {
177
+ const full = path.join(dir, name);
178
+ if (fs.statSync(full).isDirectory())
179
+ walkInto(full);
180
+ else
181
+ entries.push(path.relative(target, full).split(path.sep).join("/"));
182
+ }
183
+ };
184
+ walkInto(target);
185
+ for (const rel of entries) {
186
+ h.update(rel);
187
+ h.update(fs.readFileSync(path.join(target, rel)));
188
+ }
189
+ return h.digest("hex");
190
+ };
191
+ const drifted = [];
192
+ for (const shared of MultiStack_1.SHARED_PATHS) {
193
+ const atRoot = path.join(rootDir, shared);
194
+ const inProject = path.join(projectRel, shared);
195
+ if (!fs.existsSync(atRoot) || !fs.existsSync(inProject))
196
+ continue;
197
+ // A link cannot drift from what it points at.
198
+ const link = fs.lstatSync(inProject, { throwIfNoEntry: false });
199
+ if (link && link.isSymbolicLink())
200
+ continue;
201
+ try {
202
+ if (digest(atRoot) !== digest(inProject))
203
+ drifted.push(shared);
204
+ }
205
+ catch {
206
+ // Unreadable is a different problem, and the normal checks report it.
207
+ }
208
+ }
209
+ return drifted;
210
+ }
211
+ validateMonorepo(targetDir, strictTdd, strictScenarios, strictRequirements, strictLinks, strictCoverage) {
142
212
  const cfgPath = path.join(targetDir, "specops.config.yaml");
143
213
  if (!fs.existsSync(cfgPath))
144
214
  return null;
@@ -181,9 +251,24 @@ class ValidateSpecsCommand extends command_1.BaseCommand {
181
251
  args.push("--strict-requirements");
182
252
  if (strictLinks)
183
253
  args.push("--strict-links");
254
+ if (strictCoverage)
255
+ args.push("--strict-coverage");
184
256
  const r = (0, node_child_process_1.spawnSync)(process.execPath, args, { encoding: "utf8" });
185
257
  process.stdout.write(r.stdout || "");
186
258
  process.stderr.write(r.stderr || "");
259
+ const drifted = this.sharedSpecDrift(targetDir, subDir);
260
+ if (drifted.length > 0) {
261
+ this.logError(`Shared spec has drifted in ${rel}: ${drifted.join(", ")} no longer matches the root`);
262
+ this.logFix([
263
+ "These paths are meant to be one artifact for the whole tree. They were copied",
264
+ "rather than symlinked (this platform would not create links), so an edit in one",
265
+ "stack does not reach the others.",
266
+ `Fix: copy the root's version over ${rel}'s, or move the edit to the root and`,
267
+ "copy outward — then commit both.",
268
+ ]);
269
+ results.push({ project: rel, ok: false, detail: "shared spec drift" });
270
+ continue;
271
+ }
187
272
  results.push({ project: rel, ok: r.status === 0 });
188
273
  }
189
274
  const failures = results.filter((r) => !r.ok);
@@ -254,7 +339,7 @@ class ValidateSpecsCommand extends command_1.BaseCommand {
254
339
  checkScenarioTags(targetDir, traceContent) {
255
340
  let rows = [];
256
341
  try {
257
- rows = (0, TraceabilityFormat_2.parseTraceabilityRows)(traceContent).rows || [];
342
+ rows = (0, TraceabilityFormat_3.parseTraceabilityRows)(traceContent).rows || [];
258
343
  }
259
344
  catch {
260
345
  return;
@@ -312,7 +397,7 @@ class ValidateSpecsCommand extends command_1.BaseCommand {
312
397
  checkDeclaredArtifactsExist(targetDir, traceContent) {
313
398
  let rows = [];
314
399
  try {
315
- rows = (0, TraceabilityFormat_2.parseTraceabilityRows)(traceContent).rows || [];
400
+ rows = (0, TraceabilityFormat_3.parseTraceabilityRows)(traceContent).rows || [];
316
401
  }
317
402
  catch {
318
403
  return;
@@ -327,9 +412,9 @@ class ValidateSpecsCommand extends command_1.BaseCommand {
327
412
  for (const row of rows) {
328
413
  for (const [label, key] of columns) {
329
414
  for (const declared of (0, DeclaredArtifacts_1.declaredPaths)(row[key])) {
330
- // A cell may anchor a line range (`src/auth/login.ts#L15-L89`); the
331
- // anchor is not part of the filesystem path.
332
- const rel = declared.split("#")[0];
415
+ // A cell may point into a file — an anchor (`login.ts#L15-L89`) or a
416
+ // test selector (`test_x.py::test_y`). Neither is part of the filename.
417
+ const rel = (0, DeclaredArtifacts_1.artifactFile)(declared);
333
418
  if (!rel || seen.has(`${row.requirement || row.feature}::${rel}`))
334
419
  continue;
335
420
  if (fs.existsSync(path.join(targetDir, rel)))
@@ -358,6 +443,162 @@ class ValidateSpecsCommand extends command_1.BaseCommand {
358
443
  ]);
359
444
  process.exit(1);
360
445
  }
446
+ /**
447
+ * `--strict-coverage`: every declared scenario is named by something that
448
+ * claims to prove it (#168).
449
+ *
450
+ * A row names one `Scenario ID` and one feature file; the file may hold five
451
+ * scenarios, and nothing related the other four to anything. Measured: a
452
+ * feature declaring three scenarios with tests covering two passed
453
+ * `--strict-tdd --strict-scenarios --strict-links` all at once, with the row
454
+ * on `Implemented`.
455
+ *
456
+ * It is behind its own flag on purpose. The check is a name match — this tool
457
+ * does not run the suite and cannot know which assertion belongs to which
458
+ * scenario — and a project that names its tests some other way would fail
459
+ * through no fault of its own. Opting in is the honest interface for a
460
+ * heuristic.
461
+ */
462
+ checkScenarioCoverage(targetDir, traceContent) {
463
+ let rows = [];
464
+ try {
465
+ rows = (0, TraceabilityFormat_3.parseTraceabilityRows)(traceContent).rows || [];
466
+ }
467
+ catch {
468
+ return;
469
+ }
470
+ const readAll = (rel) => {
471
+ const full = path.join(targetDir, (0, DeclaredArtifacts_1.artifactFile)(rel));
472
+ if (!fs.existsSync(full))
473
+ return [];
474
+ const stat = fs.statSync(full);
475
+ if (stat.isFile())
476
+ return [fs.readFileSync(full, "utf8")];
477
+ const out = [];
478
+ const walkTests = (dir) => {
479
+ for (const name of fs.readdirSync(dir)) {
480
+ const child = path.join(dir, name);
481
+ if (fs.statSync(child).isDirectory())
482
+ walkTests(child);
483
+ else
484
+ out.push(fs.readFileSync(child, "utf8"));
485
+ }
486
+ };
487
+ walkTests(full);
488
+ return out;
489
+ };
490
+ const findings = [];
491
+ const advisories = [];
492
+ const seen = new Set();
493
+ // Read every row once first, so the check can calibrate before it judges.
494
+ const readRow = (row) => {
495
+ const declaredTests = (0, DeclaredArtifacts_1.declaredPaths)(row.testArtifact).filter((t) => t && t !== "-" && t.toUpperCase() !== "TBD");
496
+ const featureRel = (0, DeclaredArtifacts_1.declaredPaths)(row.featureFile)[0];
497
+ const featurePath = featureRel ? path.join(targetDir, (0, DeclaredArtifacts_1.artifactFile)(featureRel)) : null;
498
+ return {
499
+ requirement: row.requirement || "",
500
+ featureRel,
501
+ feature: featurePath && fs.existsSync(featurePath) ? fs.readFileSync(featurePath, "utf8") : "",
502
+ tests: declaredTests.flatMap(readAll),
503
+ declaredTests,
504
+ };
505
+ };
506
+ const read = rows.map(readRow).filter((r) => r.declaredTests.length > 0);
507
+ // Does this project name requirements in its tests at all? A brownfield
508
+ // adoption points rows at tests written years before this tool existed, and
509
+ // the only way to satisfy a name match there is to edit them — which is the
510
+ // one thing `adopt` promises it will never make you do.
511
+ const conventionInUse = read.length > 0 && (0, ScenarioCoverage_1.usesNamingConvention)(read);
512
+ if (read.length > 0 && !conventionInUse) {
513
+ this.logWarn("--strict-coverage could not run: no test artifact in this project names its " +
514
+ "requirement or any of its scenarios.");
515
+ this.logFix([
516
+ "This check matches names, and nothing here uses that convention — which is normal",
517
+ "for a repository whose tests predate its specifications. It is not a finding:",
518
+ "failing every row for a convention nobody adopted would be the gate lying.",
519
+ "",
520
+ "To turn it on, name the requirement in the test that proves it — a comment or a",
521
+ "test name mentioning REQ-NNN is enough — and this check starts holding the rest",
522
+ "of the matrix to the same standard.",
523
+ ]);
524
+ return;
525
+ }
526
+ for (const row of rows) {
527
+ // A `TBD` or `-` test artifact is --strict-tdd's finding, not this one:
528
+ // reporting it twice under two flags helps nobody.
529
+ const declaredTests = (0, DeclaredArtifacts_1.declaredPaths)(row.testArtifact).filter((t) => t && t !== "-" && t.toUpperCase() !== "TBD");
530
+ if (declaredTests.length === 0)
531
+ continue;
532
+ const sources = declaredTests.flatMap(readAll);
533
+ const featureRel = (0, DeclaredArtifacts_1.declaredPaths)(row.featureFile)[0];
534
+ const featurePath = featureRel ? path.join(targetDir, (0, DeclaredArtifacts_1.artifactFile)(featureRel)) : null;
535
+ const feature = featurePath && fs.existsSync(featurePath) ? fs.readFileSync(featurePath, "utf8") : "";
536
+ // A row with no scenario has nothing for the per-scenario check to match
537
+ // on — and those are the rows that lie most easily, because `adopt` seeds
538
+ // them with a use case and no scenario. Measured on a real adoption: a
539
+ // "Vet" requirement declared `PetValidatorTests.java` as its proof and
540
+ // every gate stayed green. The requirement id is the only evidence left.
541
+ const requirementId = row.requirement || "";
542
+ // Advisory, not a failure. At row level this cannot tell "the team has
543
+ // not adopted the convention yet" from "this link is a lie", and failing
544
+ // the first to catch the second is what made adding one comment turn
545
+ // three unrelated rows red.
546
+ if ((0, ScenarioCoverage_1.linkIsUnevidenced)(requirementId, feature, sources)) {
547
+ const key = `${requirementId}::unevidenced`;
548
+ if (!seen.has(key)) {
549
+ seen.add(key);
550
+ advisories.push((0, diagnostics_1.warning)("link_without_evidence", `${requirementId}'s test artifact names neither ${requirementId} nor any of ` +
551
+ `its scenarios.`, {
552
+ target: requirementId,
553
+ file: "docs/specs/traceability.md",
554
+ fix: `Name ${requirementId} or one of its scenarios in ` +
555
+ `${declaredTests.join(" or ")}, or point the row at the test that ` +
556
+ `really proves it. A path that exists is not evidence that it proves ` +
557
+ `anything.`,
558
+ }));
559
+ }
560
+ continue;
561
+ }
562
+ if (!featurePath || !fs.existsSync(featurePath))
563
+ continue; // --strict-links reports this.
564
+ for (const scenario of (0, ScenarioCoverage_1.skippedScenarios)(feature, sources)) {
565
+ const key = `${featureRel}::${scenario.title}`;
566
+ if (seen.has(key))
567
+ continue;
568
+ seen.add(key);
569
+ findings.push((0, diagnostics_1.error)("scenario_not_covered", `Nothing proves "${scenario.title}" (${featureRel}).`, {
570
+ target: row.requirement || row.feature,
571
+ file: featureRel,
572
+ fix: `Add a test naming ${scenario.needles[0]} to ` +
573
+ `${declaredTests.join(" or ")}, or delete the scenario if it no ` +
574
+ `longer describes behaviour this project promises.`,
575
+ }));
576
+ }
577
+ }
578
+ // Formatted like the errors, so an advisory carries its code and can be
579
+ // grepped for in CI output the same way.
580
+ for (const a of advisories) {
581
+ process.stderr.write(` ${(0, diagnostics_1.formatDiagnostic)(a)}\n`);
582
+ }
583
+ if (findings.length === 0)
584
+ return;
585
+ if (this.io.json) {
586
+ this.io.fail({ validation: null }, [...findings, ...advisories]);
587
+ return;
588
+ }
589
+ this.logError(`Declared scenarios nothing proves: ${findings.length}`);
590
+ for (const f of findings)
591
+ process.stderr.write(` ${(0, diagnostics_1.formatDiagnostic)(f)}\n`);
592
+ // Each finding already carries its own fix; this is the shared why. It used
593
+ // to say "a scenario no test names" for both codes, which was the wrong
594
+ // advice for half of them.
595
+ this.logFix([
596
+ "A promise with nothing behind it is the thing this gate exists to catch —",
597
+ "and it is what an agent leaves behind when it cannot satisfy a scenario.",
598
+ "Other rows in this project do name what proves them, so these stand out.",
599
+ ]);
600
+ process.exit(1);
601
+ }
361
602
  /**
362
603
  * `--strict-requirements`: EARS-checkable requirement prose, at rest (F6).
363
604
  *
@@ -378,6 +619,29 @@ class ValidateSpecsCommand extends command_1.BaseCommand {
378
619
  * scaffolded projects never grow one — it is the change-lifecycle structure,
379
620
  * not something `specgate init` writes. Nothing to check is not a violation.
380
621
  */
622
+ /**
623
+ * The root `spec.md` plus every capability spec, concatenated.
624
+ *
625
+ * Concatenation is enough because the only question asked of it is "does this
626
+ * requirement have text somewhere". Nothing downstream cares which file the
627
+ * text came from.
628
+ */
629
+ collectSpecProse(targetDir, specPath) {
630
+ const parts = [];
631
+ if (fs.existsSync(specPath))
632
+ parts.push(fs.readFileSync(specPath, "utf8"));
633
+ const capabilitiesDir = path.join(targetDir, ChangeWorkspace_2.CAPABILITIES_DIR);
634
+ if (fs.existsSync(capabilitiesDir)) {
635
+ for (const entry of fs.readdirSync(capabilitiesDir, { withFileTypes: true }).sort()) {
636
+ if (!entry.isDirectory())
637
+ continue;
638
+ const capSpec = path.join(capabilitiesDir, entry.name, "spec.md");
639
+ if (fs.existsSync(capSpec))
640
+ parts.push(fs.readFileSync(capSpec, "utf8"));
641
+ }
642
+ }
643
+ return parts.length > 0 ? parts.join("\n\n") : null;
644
+ }
381
645
  checkRequirementSyntax(targetDir) {
382
646
  const capabilitiesDir = path.join(targetDir, ChangeWorkspace_2.CAPABILITIES_DIR);
383
647
  if (!fs.existsSync(capabilitiesDir))
@@ -423,12 +687,33 @@ class ValidateSpecsCommand extends command_1.BaseCommand {
423
687
  const rawArgs = this.args[0] === "validate" ? this.args.slice(1) : this.args;
424
688
  const argv = rawArgs;
425
689
  this.io = (0, agent_1.agentIo)((0, agent_1.wantsJson)(argv));
426
- const strictTdd = argv.includes("--strict-tdd");
427
- const strictScenarios = argv.includes("--strict-scenarios");
428
- const strictRequirements = argv.includes("--strict-requirements");
429
- const strictLinks = argv.includes("--strict-links");
690
+ // `--strict` is the gate, singular.
691
+ //
692
+ // A cold evaluator counted ten places calling `--strict-tdd` "the gate" —
693
+ // the quickstart, `adopt`'s epilogue, the generated AI_RULES.md, `harness
694
+ // init`, the harness prompt — while `ci init` alone emitted
695
+ // `--strict-tdd --strict-links`. So a user who followed any of the ten got
696
+ // a check that passes on an Implemented requirement whose test file does
697
+ // not exist, and the one place that was right made the other nine look
698
+ // like a mistake rather than a policy.
699
+ //
700
+ // Fixing the wording in ten places would have left the same trap for the
701
+ // eleventh. One name that means all of them is the fix; the individual
702
+ // flags keep working, so every existing CI invocation still means what it
703
+ // meant.
704
+ const strict = argv.includes("--strict");
705
+ const strictTdd = strict || argv.includes("--strict-tdd");
706
+ const strictScenarios = strict || argv.includes("--strict-scenarios");
707
+ const strictRequirements = strict || argv.includes("--strict-requirements");
708
+ const strictLinks = strict || argv.includes("--strict-links");
709
+ const strictCoverage = strict || argv.includes("--strict-coverage");
430
710
  const againstLock = argv.includes("--against-lock");
431
711
  const positional = argv.filter((a) => !a.startsWith("-"));
712
+ // Asking what a command does is not a usage error, and it exits 0.
713
+ if (argv.includes("--help") || argv.includes("-h")) {
714
+ this.usage();
715
+ process.exit(0);
716
+ }
432
717
  const targetDir = positional[0];
433
718
  if (!targetDir) {
434
719
  this.usage();
@@ -440,7 +725,7 @@ class ValidateSpecsCommand extends command_1.BaseCommand {
440
725
  " specgate init",
441
726
  ]);
442
727
  }
443
- const monorepo = this.validateMonorepo(targetDir, strictTdd, strictScenarios, strictRequirements, strictLinks);
728
+ const monorepo = this.validateMonorepo(targetDir, strictTdd, strictScenarios, strictRequirements, strictLinks, strictCoverage);
444
729
  if (monorepo !== null) {
445
730
  process.exit(monorepo.failures === 0 ? 0 : 1);
446
731
  }
@@ -494,7 +779,7 @@ class ValidateSpecsCommand extends command_1.BaseCommand {
494
779
  "spec.md": "Author it from the shipped template (templates/base/spec.md.tpl) — one `## REQ-NNN — <title>` section per requirement.",
495
780
  "AI_RULES.md": "Author it from templates/backend/AI_RULES.md.tpl (or frontend) — it is the agent's project rulebook.",
496
781
  "README.md": "Add a README.md describing how to build and test the project.",
497
- "docs/specs/traceability.md": `Create it with the rich matrix header:\n ${TraceabilityFormat_1.RICH_HEADER}`,
782
+ "docs/specs/traceability.md": `Create it with the rich matrix header:\n ${TraceabilityFormat_2.RICH_HEADER}`,
498
783
  "docs/specs/adr/README.md": "Create docs/specs/adr/README.md as the index of your Architecture Decision Records.",
499
784
  };
500
785
  for (const f of REQUIRED_FILES) {
@@ -549,7 +834,14 @@ class ValidateSpecsCommand extends command_1.BaseCommand {
549
834
  const specPath = path.join(targetDir, "spec.md");
550
835
  const { report, mode, requirements: reqsInMatrix, } = new ValidateProjectUseCase_1.ValidateProjectUseCase(new DiskTraceabilityRepository_1.DiskTraceabilityRepository()).checkMatrix(traceContent, {
551
836
  strictTdd,
552
- specContent: fs.existsSync(specPath) ? fs.readFileSync(specPath, "utf8") : null,
837
+ // Every place a requirement's prose is allowed to live. Three shapes are
838
+ // in the wild and all three are legitimate: `## REQ-NNN` sections (what
839
+ // `adopt` writes), the `| ID | Requirement |` table in §8 (what the
840
+ // original `init` template wrote, and what this repository still uses),
841
+ // and a capability spec under docs/specs/capabilities/ (ADR-0022).
842
+ // Reading only the root spec.md flagged 14 requirements in our own repo
843
+ // that are documented perfectly well one directory down.
844
+ specContent: this.collectSpecProse(targetDir, specPath),
553
845
  });
554
846
  const strictTddViolations = report.findings
555
847
  .filter((f) => f.code === "strict_tdd_violation")
@@ -557,6 +849,15 @@ class ValidateSpecsCommand extends command_1.BaseCommand {
557
849
  for (const finding of report.findings) {
558
850
  if (finding.code === "strict_tdd_violation")
559
851
  continue; // reported together, below
852
+ // Severity decides. This loop used to fail on anything the report
853
+ // carried, which turned the first warning added to `checkMatrix` into a
854
+ // red build — the exact green-to-red flip ADR-0026 exists to avoid.
855
+ if (finding.severity === "warning") {
856
+ this.logWarn(finding.message);
857
+ if (finding.fixLines?.length)
858
+ this.logFix([...finding.fixLines]);
859
+ continue;
860
+ }
560
861
  this.fail(finding.code, finding.message, 1, [...(finding.fixLines || [])]);
561
862
  return;
562
863
  }
@@ -588,6 +889,9 @@ class ValidateSpecsCommand extends command_1.BaseCommand {
588
889
  if (strictLinks) {
589
890
  this.checkDeclaredArtifactsExist(targetDir, traceContent);
590
891
  }
892
+ if (strictCoverage) {
893
+ this.checkScenarioCoverage(targetDir, traceContent);
894
+ }
591
895
  for (const ff of featureFiles.sort()) {
592
896
  const rel = path.relative(targetDir, ff).split(path.sep).join("/");
593
897
  if (!traceContent.includes(rel)) {
@@ -746,8 +1050,26 @@ class ValidateSpecsCommand extends command_1.BaseCommand {
746
1050
  }
747
1051
  this.logInfo("- Base SDD structure: complete");
748
1052
  this.logInfo(`- Traceability mode: ${traceMode}`);
749
- if (strictTdd)
750
- this.logInfo("- Strict TDD gate: passed");
1053
+ if (strictTdd) {
1054
+ // The count travels with the pass. `passed` over rows that were never
1055
+ // checked is how the tool and its own documentation ended up disagreeing.
1056
+ let exempt = 0;
1057
+ try {
1058
+ exempt = (0, TraceabilityFormat_1.countDraftExempt)((0, TraceabilityFormat_3.parseTraceabilityRows)(traceContent).rows || []);
1059
+ }
1060
+ catch {
1061
+ exempt = 0;
1062
+ }
1063
+ this.logInfo(exempt > 0
1064
+ ? `- Strict TDD gate: passed (${exempt} row(s) exempt — still Draft, so not checked)`
1065
+ : "- Strict TDD gate: passed");
1066
+ if (exempt > 0) {
1067
+ this.logFix([
1068
+ "A Draft row owes nothing yet, so --strict-tdd skips it. It starts being",
1069
+ "checked the moment its Status leaves Draft — `specgate done <REQ>` does that.",
1070
+ ]);
1071
+ }
1072
+ }
751
1073
  if (skeletonOnly) {
752
1074
  this.logWarn("Adoption never retro-filled — the only scenario is the adoption baseline.");
753
1075
  this.logFix([
@@ -1 +1 @@
1
- {"version":3,"file":"ValidateSpecsCommand.js","sourceRoot":"","sources":["../../../../../scripts/cli/commands/quality/ValidateSpecsCommand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ValidateSpecsCommand.js","sourceRoot":"","sources":["../../../../../scripts/cli/commands/quality/ValidateSpecsCommand.ts"],"names":[],"mappings":"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"}