@rsaglobaltech/specgate 0.20.0 → 0.21.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 (241) hide show
  1. package/CHANGELOG.md +115 -0
  2. package/README.md +31 -31
  3. package/bin/specgate.ts +25 -19
  4. package/dist/bin/specgate.js +15 -10
  5. package/dist/bin/specgate.js.map +1 -1
  6. package/dist/packages/core/src/application/AddRequirementUseCase.js +11 -1
  7. package/dist/packages/core/src/application/AddRequirementUseCase.js.map +1 -1
  8. package/dist/packages/core/src/application/ArchiveChangeUseCase.js +7 -2
  9. package/dist/packages/core/src/application/ArchiveChangeUseCase.js.map +1 -1
  10. package/dist/packages/core/src/application/ValidateProjectUseCase.js +9 -3
  11. package/dist/packages/core/src/application/ValidateProjectUseCase.js.map +1 -1
  12. package/dist/packages/core/src/domain/ArchivePlan.js.map +1 -1
  13. package/dist/packages/core/src/domain/ChangeTemplates.js +19 -0
  14. package/dist/packages/core/src/domain/ChangeTemplates.js.map +1 -1
  15. package/dist/packages/core/src/domain/DeltaSpec.js +14 -7
  16. package/dist/packages/core/src/domain/DeltaSpec.js.map +1 -1
  17. package/dist/packages/core/src/domain/DerivedMatrix.js +2 -2
  18. package/dist/packages/core/src/domain/DerivedMatrix.js.map +1 -1
  19. package/dist/packages/core/src/domain/Diagnostic.js.map +1 -1
  20. package/dist/packages/core/src/domain/DoneVerification.js +3 -3
  21. package/dist/packages/core/src/domain/DoneVerification.js.map +1 -1
  22. package/dist/packages/core/src/domain/DraftChecklist.js +1 -1
  23. package/dist/packages/core/src/domain/DraftChecklist.js.map +1 -1
  24. package/dist/packages/core/src/domain/GherkinQuality.js +5 -2
  25. package/dist/packages/core/src/domain/GherkinQuality.js.map +1 -1
  26. package/dist/packages/core/src/domain/HarnessEvents.js +129 -0
  27. package/dist/packages/core/src/domain/HarnessEvents.js.map +1 -0
  28. package/dist/packages/core/src/domain/HarnessRun.js.map +1 -1
  29. package/dist/packages/core/src/domain/Language.js +5 -2
  30. package/dist/packages/core/src/domain/Language.js.map +1 -1
  31. package/dist/packages/core/src/domain/PackContribution.js.map +1 -1
  32. package/dist/packages/core/src/domain/PackDelta.js +5 -2
  33. package/dist/packages/core/src/domain/PackDelta.js.map +1 -1
  34. package/dist/packages/core/src/domain/PackSpec.js +16 -2
  35. package/dist/packages/core/src/domain/PackSpec.js.map +1 -1
  36. package/dist/packages/core/src/domain/QuotedText.js +36 -0
  37. package/dist/packages/core/src/domain/QuotedText.js.map +1 -0
  38. package/dist/packages/core/src/domain/RequirementPlan.js.map +1 -1
  39. package/dist/packages/core/src/domain/SpecParser.js +2 -9
  40. package/dist/packages/core/src/domain/SpecParser.js.map +1 -1
  41. package/dist/packages/core/src/domain/TraceabilityFormat.js.map +1 -1
  42. package/dist/packages/core/src/domain/TraceabilityMatrix.js +3 -3
  43. package/dist/packages/core/src/domain/TraceabilityMatrix.js.map +1 -1
  44. package/dist/packages/core/src/domain/YamlLite.js +3 -0
  45. package/dist/packages/core/src/domain/YamlLite.js.map +1 -1
  46. package/dist/packages/core/src/infrastructure/ChangeWorkspace.js.map +1 -1
  47. package/dist/packages/core/src/infrastructure/ConsoleReporter.js.map +1 -1
  48. package/dist/packages/core/src/infrastructure/DiskLanguageRepository.js +1 -0
  49. package/dist/packages/core/src/infrastructure/DiskLanguageRepository.js.map +1 -1
  50. package/dist/packages/core/src/infrastructure/DiskPackDeltaRepository.js +3 -1
  51. package/dist/packages/core/src/infrastructure/DiskPackDeltaRepository.js.map +1 -1
  52. package/dist/packages/core/src/infrastructure/DiskPackRepository.js +0 -2
  53. package/dist/packages/core/src/infrastructure/DiskPackRepository.js.map +1 -1
  54. package/dist/packages/core/src/infrastructure/DiskRequirementGraphRepository.js.map +1 -1
  55. package/dist/packages/core/src/infrastructure/GitContributionStager.js +0 -4
  56. package/dist/packages/core/src/infrastructure/GitContributionStager.js.map +1 -1
  57. package/dist/packages/core/src/infrastructure/GitMergeDriver.js +0 -3
  58. package/dist/packages/core/src/infrastructure/GitMergeDriver.js.map +1 -1
  59. package/dist/packages/core/src/infrastructure/HarnessConfigFile.js +7 -13
  60. package/dist/packages/core/src/infrastructure/HarnessConfigFile.js.map +1 -1
  61. package/dist/packages/core/src/infrastructure/PackChangeDeposit.js.map +1 -1
  62. package/dist/packages/core/src/infrastructure/RemotePackResolver.js +0 -7
  63. package/dist/packages/core/src/infrastructure/RemotePackResolver.js.map +1 -1
  64. package/dist/packages/core/src/infrastructure/SpecopsConfigFile.js.map +1 -1
  65. package/dist/packages/core/test/unit/declared-artifacts.test.js +6 -2
  66. package/dist/packages/core/test/unit/declared-artifacts.test.js.map +1 -1
  67. package/dist/packages/core/test/unit/derived-matrix.test.js +3 -0
  68. package/dist/packages/core/test/unit/derived-matrix.test.js.map +1 -1
  69. package/dist/packages/core/test/unit/done-verification.test.js +3 -0
  70. package/dist/packages/core/test/unit/done-verification.test.js.map +1 -1
  71. package/dist/packages/core/test/unit/matrix-dependencies.test.js.map +1 -1
  72. package/dist/packages/core/test/unit/reconciliation.test.js.map +1 -1
  73. package/dist/packages/core/test/unit/requirement-readiness.test.js +2 -2
  74. package/dist/packages/core/test/unit/requirement-readiness.test.js.map +1 -1
  75. package/dist/packages/core/test/unit/resume-state.test.js +4 -1
  76. package/dist/packages/core/test/unit/resume-state.test.js.map +1 -1
  77. package/dist/packages/core/test/unit/run-budget.test.js +3 -0
  78. package/dist/packages/core/test/unit/run-budget.test.js.map +1 -1
  79. package/dist/packages/core/test/unit/untouched-delta.test.js +52 -0
  80. package/dist/packages/core/test/unit/untouched-delta.test.js.map +1 -0
  81. package/dist/packages/core/test/unit/validate-project.test.js +6 -2
  82. package/dist/packages/core/test/unit/validate-project.test.js.map +1 -1
  83. package/dist/packages/mcp-spec-driven/src/server.js +4 -3
  84. package/dist/packages/mcp-spec-driven/src/server.js.map +1 -1
  85. package/dist/packages/mcp-spec-driven/src/tools.js.map +1 -1
  86. package/dist/scripts/agents/commands.js +49 -37
  87. package/dist/scripts/agents/commands.js.map +1 -1
  88. package/dist/scripts/agents/detect.js.map +1 -1
  89. package/dist/scripts/agents/init.js.map +1 -1
  90. package/dist/scripts/alm/cli.js +2 -2
  91. package/dist/scripts/alm/cli.js.map +1 -1
  92. package/dist/scripts/alm/core.js +1 -0
  93. package/dist/scripts/alm/core.js.map +1 -1
  94. package/dist/scripts/apply.js +9 -0
  95. package/dist/scripts/apply.js.map +1 -0
  96. package/dist/scripts/archive.js +9 -0
  97. package/dist/scripts/archive.js.map +1 -0
  98. package/dist/scripts/change/archive.js.map +1 -1
  99. package/dist/scripts/change/artifacts.js.map +1 -1
  100. package/dist/scripts/change/delta.js +0 -8
  101. package/dist/scripts/change/delta.js.map +1 -1
  102. package/dist/scripts/change/instructions.js +9 -11
  103. package/dist/scripts/change/instructions.js.map +1 -1
  104. package/dist/scripts/cli/commands/alm/PullCommand.js +4 -2
  105. package/dist/scripts/cli/commands/alm/PullCommand.js.map +1 -1
  106. package/dist/scripts/cli/commands/change/ChangeCommand.js +91 -17
  107. package/dist/scripts/cli/commands/change/ChangeCommand.js.map +1 -1
  108. package/dist/scripts/cli/commands/config/ConfigSetCommand.js +1 -1
  109. package/dist/scripts/cli/commands/config/ConfigSetCommand.js.map +1 -1
  110. package/dist/scripts/cli/commands/harness/RunCommand.js +222 -34
  111. package/dist/scripts/cli/commands/harness/RunCommand.js.map +1 -1
  112. package/dist/scripts/cli/commands/mcp/McpInstallCommand.js +1 -0
  113. package/dist/scripts/cli/commands/mcp/McpInstallCommand.js.map +1 -1
  114. package/dist/scripts/cli/commands/pack/BundlePackCommand.js +2 -1
  115. package/dist/scripts/cli/commands/pack/BundlePackCommand.js.map +1 -1
  116. package/dist/scripts/cli/commands/pack/ExpandDomainPackCommand.js +32 -17
  117. package/dist/scripts/cli/commands/pack/ExpandDomainPackCommand.js.map +1 -1
  118. package/dist/scripts/cli/commands/pack/InferPackCommand.js +8 -5
  119. package/dist/scripts/cli/commands/pack/InferPackCommand.js.map +1 -1
  120. package/dist/scripts/cli/commands/pack/LintPackCommand.js +36 -44
  121. package/dist/scripts/cli/commands/pack/LintPackCommand.js.map +1 -1
  122. package/dist/scripts/cli/commands/pack/pack-args.js.map +1 -1
  123. package/dist/scripts/cli/commands/project/AddCommand.js.map +1 -1
  124. package/dist/scripts/cli/commands/project/AdoptCommand.js +4 -2
  125. package/dist/scripts/cli/commands/project/AdoptCommand.js.map +1 -1
  126. package/dist/scripts/cli/commands/project/InitFromPackCommand.js.map +1 -1
  127. package/dist/scripts/cli/commands/project/InitProjectCommand.js +2 -1
  128. package/dist/scripts/cli/commands/project/InitProjectCommand.js.map +1 -1
  129. package/dist/scripts/cli/commands/project/OnboardCommand.js +40 -4
  130. package/dist/scripts/cli/commands/project/OnboardCommand.js.map +1 -1
  131. package/dist/scripts/cli/commands/project/UpdateCommand.js.map +1 -1
  132. package/dist/scripts/cli/commands/project/WizardCommand.js.map +1 -1
  133. package/dist/scripts/cli/commands/quality/CheckCommand.js +74 -10
  134. package/dist/scripts/cli/commands/quality/CheckCommand.js.map +1 -1
  135. package/dist/scripts/cli/commands/quality/DoctorCommand.js +8 -4
  136. package/dist/scripts/cli/commands/quality/DoctorCommand.js.map +1 -1
  137. package/dist/scripts/cli/commands/quality/FixCommand.js.map +1 -1
  138. package/dist/scripts/cli/commands/quality/LicenseCheckCommand.js +3 -1
  139. package/dist/scripts/cli/commands/quality/LicenseCheckCommand.js.map +1 -1
  140. package/dist/scripts/cli/commands/quality/ReportCommand.js +8 -3
  141. package/dist/scripts/cli/commands/quality/ReportCommand.js.map +1 -1
  142. package/dist/scripts/cli/commands/quality/ValidateSpecsCommand.js +39 -30
  143. package/dist/scripts/cli/commands/quality/ValidateSpecsCommand.js.map +1 -1
  144. package/dist/scripts/cli/commands/quality/VerifyCommand.js +3 -2
  145. package/dist/scripts/cli/commands/quality/VerifyCommand.js.map +1 -1
  146. package/dist/scripts/cli/commands/spec/DoneCommand.js +182 -77
  147. package/dist/scripts/cli/commands/spec/DoneCommand.js.map +1 -1
  148. package/dist/scripts/cli/commands/spec/DraftCommand.js +55 -32
  149. package/dist/scripts/cli/commands/spec/DraftCommand.js.map +1 -1
  150. package/dist/scripts/cli/commands/spec/ExploreCommand.js +224 -0
  151. package/dist/scripts/cli/commands/spec/ExploreCommand.js.map +1 -0
  152. package/dist/scripts/cli/commands/spec/MatrixCommand.js +35 -5
  153. package/dist/scripts/cli/commands/spec/MatrixCommand.js.map +1 -1
  154. package/dist/scripts/cli/commands/spec/NewCommand.js +4 -4
  155. package/dist/scripts/cli/commands/spec/NewCommand.js.map +1 -1
  156. package/dist/scripts/cli/commands/spec/PetCommand.js.map +1 -1
  157. package/dist/scripts/cli/commands/spec/PlanCommand.js +8 -3
  158. package/dist/scripts/cli/commands/spec/PlanCommand.js.map +1 -1
  159. package/dist/scripts/cli/commands/spec/ReqCommand.js +8 -9
  160. package/dist/scripts/cli/commands/spec/ReqCommand.js.map +1 -1
  161. package/dist/scripts/cli/commands/spec/StatusCommand.js +88 -21
  162. package/dist/scripts/cli/commands/spec/StatusCommand.js.map +1 -1
  163. package/dist/scripts/cli/commands/spec/StudioCommand.js +76 -4
  164. package/dist/scripts/cli/commands/spec/StudioCommand.js.map +1 -1
  165. package/dist/scripts/cli/commands/specops/ContributeCommand.js +6 -2
  166. package/dist/scripts/cli/commands/specops/ContributeCommand.js.map +1 -1
  167. package/dist/scripts/cli/commands/specops/DiffCommand.js +19 -5
  168. package/dist/scripts/cli/commands/specops/DiffCommand.js.map +1 -1
  169. package/dist/scripts/cli/commands/specops/SyncCommand.js +4 -2
  170. package/dist/scripts/cli/commands/specops/SyncCommand.js.map +1 -1
  171. package/dist/scripts/docs/build-site.js.map +1 -1
  172. package/dist/scripts/docs/icons.js +0 -6
  173. package/dist/scripts/docs/icons.js.map +1 -1
  174. package/dist/scripts/docs/journey-storyboard.js +23 -20
  175. package/dist/scripts/docs/journey-storyboard.js.map +1 -1
  176. package/dist/scripts/docs/record-terminal.js +1 -1
  177. package/dist/scripts/docs/record-terminal.js.map +1 -1
  178. package/dist/scripts/docs/terminal-storyboard.js +24 -21
  179. package/dist/scripts/docs/terminal-storyboard.js.map +1 -1
  180. package/dist/scripts/draft/brief-setup.js +8 -7
  181. package/dist/scripts/draft/brief-setup.js.map +1 -1
  182. package/dist/scripts/draft/confined-agent.js +1 -0
  183. package/dist/scripts/draft/confined-agent.js.map +1 -1
  184. package/dist/scripts/draft/drafting-guide.js +6 -5
  185. package/dist/scripts/draft/drafting-guide.js.map +1 -1
  186. package/dist/scripts/explore.js +10 -0
  187. package/dist/scripts/explore.js.map +1 -0
  188. package/dist/scripts/gen_mcp_tools.js +15 -7
  189. package/dist/scripts/gen_mcp_tools.js.map +1 -1
  190. package/dist/scripts/harness/events.js +202 -0
  191. package/dist/scripts/harness/events.js.map +1 -0
  192. package/dist/scripts/harness/init.js +6 -2
  193. package/dist/scripts/harness/init.js.map +1 -1
  194. package/dist/scripts/harness/run.js +2 -1
  195. package/dist/scripts/harness/run.js.map +1 -1
  196. package/dist/scripts/lib/agent.js.map +1 -1
  197. package/dist/scripts/lib/base-ids.js +179 -0
  198. package/dist/scripts/lib/base-ids.js.map +1 -0
  199. package/dist/scripts/lib/capability-specs.js.map +1 -1
  200. package/dist/scripts/lib/diagnostics.js +0 -10
  201. package/dist/scripts/lib/diagnostics.js.map +1 -1
  202. package/dist/scripts/lib/harness-events.js +74 -0
  203. package/dist/scripts/lib/harness-events.js.map +1 -0
  204. package/dist/scripts/lib/in-flight.js +191 -0
  205. package/dist/scripts/lib/in-flight.js.map +1 -0
  206. package/dist/scripts/lib/live-model.js +145 -0
  207. package/dist/scripts/lib/live-model.js.map +1 -0
  208. package/dist/scripts/lib/live-page.js +89 -0
  209. package/dist/scripts/lib/live-page.js.map +1 -0
  210. package/dist/scripts/lib/monorepo-fanout.js.map +1 -1
  211. package/dist/scripts/lib/placeholders.js.map +1 -1
  212. package/dist/scripts/lib/project-root.js.map +1 -1
  213. package/dist/scripts/lib/run-with-deadline.js +6 -1
  214. package/dist/scripts/lib/run-with-deadline.js.map +1 -1
  215. package/dist/scripts/lib/surface.js +95 -30
  216. package/dist/scripts/lib/surface.js.map +1 -1
  217. package/dist/scripts/lib/tour.js +149 -0
  218. package/dist/scripts/lib/tour.js.map +1 -0
  219. package/dist/scripts/propose.js +21 -0
  220. package/dist/scripts/propose.js.map +1 -0
  221. package/dist/scripts/schema/cli.js +1 -1
  222. package/dist/scripts/schema/cli.js.map +1 -1
  223. package/dist/scripts/schema/registry.js +1 -0
  224. package/dist/scripts/schema/registry.js.map +1 -1
  225. package/dist/scripts/specops/add.js +2 -1
  226. package/dist/scripts/specops/add.js.map +1 -1
  227. package/dist/scripts/specops/against_lock.js +22 -25
  228. package/dist/scripts/specops/against_lock.js.map +1 -1
  229. package/dist/scripts/specops/as_change.js.map +1 -1
  230. package/dist/scripts/specops/lock.js +0 -5
  231. package/dist/scripts/specops/lock.js.map +1 -1
  232. package/dist/scripts/specops/manifest.js +0 -8
  233. package/dist/scripts/specops/manifest.js.map +1 -1
  234. package/dist/scripts/specops/remove.js +2 -1
  235. package/dist/scripts/specops/remove.js.map +1 -1
  236. package/dist/scripts/specops/verify.js.map +1 -1
  237. package/package.json +1 -1
  238. package/templates/adopt/spec.md.tpl +1 -1
  239. package/templates/adopt/traceability.md.tpl +1 -1
  240. package/templates/base/AGENTS.md.tpl +12 -6
  241. package/templates/harness/prompt-prefix.md.tpl +1 -1
@@ -49,6 +49,10 @@ const path = __importStar(require("node:path"));
49
49
  const project_root_2 = require("../../../lib/project-root");
50
50
  const derived_writes_1 = require("../../../lib/derived-writes");
51
51
  const MatrixCommand_1 = require("./MatrixCommand");
52
+ const in_flight_1 = require("../../../lib/in-flight");
53
+ const StatusCommand_1 = require("./StatusCommand");
54
+ const DerivedMatrixSources_1 = require("../../../../packages/core/src/infrastructure/DerivedMatrixSources");
55
+ const DerivedMatrix_1 = require("../../../../packages/core/src/domain/DerivedMatrix");
52
56
  const ui_1 = require("../../../lib/ui");
53
57
  const ui = __importStar(require("../../../lib/ui"));
54
58
  exports.ALLOWED_STATUSES = [
@@ -105,19 +109,33 @@ function parseArgs(argv) {
105
109
  return opts;
106
110
  }
107
111
  class DoneCommand extends command_1.BaseCommand {
112
+ /** `apply` is the daily name, `done` the one scripts know (ADR-0035): same command. */
113
+ verb;
114
+ constructor(args = [], verb = "done") {
115
+ super(args);
116
+ this.verb = verb;
117
+ }
108
118
  execute() {
109
119
  const opts = parseArgs(this.args);
110
- const io = (0, agent_1.agentIo)(opts.json);
120
+ // Annotated so that `io.fail`, which never returns, narrows what follows it.
121
+ const io = (0, agent_1.agentIo)(Boolean(opts.json));
111
122
  const NULL_SHAPE = { requirement: null };
123
+ const verb = this.verb;
112
124
  // Before the required-argument check: `done --help` used to answer
113
125
  // "REQ-id is required", which is a usage error in response to a question.
114
126
  if (this.args.includes("--help") || this.args.includes("-h")) {
115
- process.stdout.write("Usage:\n" +
116
- " specgate done <REQ-id> [<REQ-id> …] [--status <Status>] [--no-check]\n" +
127
+ process.stdout.write((verb === "done"
128
+ ? "Same as specgate apply: deliver a requirement through the gate.\n\n"
129
+ : "Deliver one requirement: its test first, then the gate marks it Implemented.\n\n") +
130
+ "Usage:\n" +
131
+ ` specgate ${verb} [<REQ-id> …] [--status <Status>] [--no-check]\n` +
117
132
  ' [--test-cmd "<command>"] [--project-dir <path>] [--json]\n\n' +
118
- "Marks a requirement delivered — after the gate `specgate check` runs passes\n" +
119
- "for it. Nothing is written when it fails. Several ids are checked one by one\n" +
120
- "and the project's tests run once for all of them.\n\n" +
133
+ "Without an id, takes the next requirement `specgate status` names. Refused\n" +
134
+ "while no test names the requirement. Marks it delivered when the gate\n" +
135
+ "`specgate check` runs passes for it; nothing is written when it fails. A\n" +
136
+ "requirement of an open change is judged as it will be after archive, and\n" +
137
+ "its status is written in the change's delta. Several ids are checked one by\n" +
138
+ "one and the project's tests run once for all of them.\n\n" +
121
139
  "Options:\n" +
122
140
  ` --status <Status> Target status (default: Implemented).\n` +
123
141
  ` One of: ${exports.ALLOWED_STATUSES.join(", ")}\n` +
@@ -126,22 +144,15 @@ class DoneCommand extends command_1.BaseCommand {
126
144
  " --check, --strict Run the gate for any status, Approved included.\n" +
127
145
  ' --test-cmd "<cmd>" Also run the project\'s tests and require them to pass.\n' +
128
146
  " Read from `test_cmd:` in harness.config.yaml when omitted.\n" +
129
- " Without one, `done` says it checked the specification\n" +
147
+ ` Without one, \`${verb}\` says it checked the specification\n` +
130
148
  " and not the code, rather than reporting a pass.\n" +
131
149
  " --project-dir <p> Project root (auto-detected from cwd if omitted).\n" +
132
150
  " --json Emit one JSON document on stdout.\n");
133
151
  process.exit(agent_1.EXIT.OK);
134
152
  }
135
- if (!opts.reqId) {
136
- io.usage(NULL_SHAPE, [
137
- (0, diagnostics_1.error)("req_id_required", "REQ-id is required (e.g. REQ-007).", {
138
- fix: "Pass the requirement id: specgate done REQ-007",
139
- }),
140
- ]);
141
- }
142
153
  if (opts.reqIds.length > 1)
143
154
  return this.executeMany(opts, io);
144
- if (!/^REQ-\d+$/.test(opts.reqId)) {
155
+ if (opts.reqId && !/^REQ-\d+$/.test(opts.reqId)) {
145
156
  io.usage(NULL_SHAPE, [
146
157
  (0, diagnostics_1.error)("req_id_malformed", `Invalid REQ-id: ${opts.reqId} (expected REQ-NNN).`, {
147
158
  target: opts.reqId,
@@ -154,6 +165,7 @@ class DoneCommand extends command_1.BaseCommand {
154
165
  projectDir = (0, project_root_1.resolveProjectDir)(opts.projectDir);
155
166
  }
156
167
  catch (err) {
168
+ // `resolveProjectDir` throws Errors.
157
169
  io.usage(NULL_SHAPE, [
158
170
  (0, diagnostics_1.error)("project_not_found", err.message, {
159
171
  fix: "Run from inside a spec-driven project, or pass --project-dir.",
@@ -161,41 +173,98 @@ class DoneCommand extends command_1.BaseCommand {
161
173
  ]);
162
174
  return;
163
175
  }
164
- // ── The checks, before anything is written ───────────────────────────────
176
+ // ── The project the gate judges ──────────────────────────────────────────
165
177
  //
166
- // `--check` and `--strict` used to be parsed and discarded, so `done
167
- // REQ-001 --check` printed a tick over a matrix pointing at files that do
168
- // not exist. Four documentation pages said it "validates first".
178
+ // A requirement of an open change lives only in its delta until archive
179
+ // (ADR-0035): the gate judges the project as it will be after archive.
169
180
  // A test written since the last regeneration is new evidence: bring a
170
- // generated matrix up to date before checking it, or `done --check`
171
- // would refuse the very test that makes the requirement deliverable.
181
+ // generated matrix up to date before checking it, or the gate would refuse
182
+ // the very test that makes the requirement deliverable.
172
183
  (0, MatrixCommand_1.refreshDerivedMatrix)(projectDir);
184
+ const view = (0, in_flight_1.inFlightView)(projectDir);
185
+ const dir = view ? view.dir : projectDir;
186
+ const toProject = (t) => (view ? view.toProject(t) : t);
187
+ const queue = () => (0, StatusCommand_1.summarise)(dir, readTrace(dir), projectDir);
188
+ // No id: the next requirement `status` names.
189
+ if (!opts.reqId) {
190
+ const next = fs.existsSync(path.join(dir, TRACE)) ? (0, StatusCommand_1.nextRequirement)(queue().items) : null;
191
+ if (!next) {
192
+ io.fail(NULL_SHAPE, [
193
+ (0, diagnostics_1.error)("nothing_to_apply", "No requirement is waiting to be delivered.", {
194
+ fix: "specgate propose <change-id>",
195
+ }),
196
+ ]);
197
+ }
198
+ opts.reqId = next.requirement;
199
+ opts.reqIds = [next.requirement];
200
+ }
201
+ const id = opts.reqId;
202
+ const owner = view ? view.requirements.find((r) => r.id === id) : undefined;
203
+ const gated = opts.check && exports.DELIVERED_STATUSES.includes(opts.status);
204
+ // A change whose delta cannot be laid over the project cannot be judged.
205
+ const broken = owner && view ? view.problems.filter((d) => d.change === owner.change) : [];
206
+ if (broken.length > 0) {
207
+ io.fail(NULL_SHAPE, [
208
+ ...broken.map(({ fix: _fix, change: _change, ...d }) => d),
209
+ (0, diagnostics_1.error)("change_invalid", `${id}'s change '${owner.change}' does not validate.`, {
210
+ target: owner.change,
211
+ fix: `specgate change validate ${owner.change}`,
212
+ }),
213
+ ]);
214
+ }
215
+ if (!opts.json)
216
+ process.stdout.write(ui.header(`${verb} ${id}`, opts.status));
173
217
  // Before the suite: a requirement waiting for an answer is refused in a
174
218
  // second, with the reason, instead of after the slowest step (#72).
175
- if (opts.check && exports.DELIVERED_STATUSES.includes(opts.status)) {
176
- const tracePath = path.join(projectDir, "docs", "specs", "traceability.md");
219
+ if (gated) {
220
+ const tracePath = path.join(dir, TRACE);
177
221
  const blocker = fs.existsSync(tracePath)
178
- ? (0, DoneVerification_1.deliveryBlocker)(fs.readFileSync(tracePath, "utf8"), opts.reqId)
222
+ ? (0, DoneVerification_1.deliveryBlocker)(fs.readFileSync(tracePath, "utf8"), id)
179
223
  : null;
180
224
  if (blocker) {
181
225
  io.fail(NULL_SHAPE, [
182
226
  (0, diagnostics_1.error)(blocker.code, `not marked ${opts.status}: ${blocker.message}`, {
183
- target: opts.reqId,
227
+ target: id,
184
228
  fix: blocker.fix,
185
229
  }),
186
230
  ]);
187
231
  }
188
232
  }
233
+ // Test first (ADR-0035): on a generated matrix a test that names the
234
+ // requirement — or a `test=` in its trace — is its link, and without one
235
+ // there is nothing to judge. Said before the gate, with the fix, rather
236
+ // than as TDD-1 among everything validate finds.
237
+ if (gated && (0, derived_writes_1.isDerivedProject)(dir)) {
238
+ const rows = (0, DerivedMatrix_1.deriveRows)((0, DerivedMatrixSources_1.readDerivationSources)(dir)).filter((r) => r.requirement === id);
239
+ const tested = (r) => {
240
+ const t = String(r.testArtifact || "")
241
+ .replace(/`/g, "")
242
+ .trim();
243
+ return t !== "" && t !== "-" && t.toUpperCase() !== "TBD";
244
+ };
245
+ if (rows.length > 0 && !rows.some(tested)) {
246
+ const scn = rows.map((r) => r.scenarioId).find((x) => x && x !== "-");
247
+ io.fail(NULL_SHAPE, [
248
+ (0, diagnostics_1.error)("apply_no_test", `${id} has no test that names it yet (TDD-1).`, {
249
+ target: id,
250
+ fix: `write a test that names ${id}${scn ? ` (and its scenario ${scn})` : ""}, then run specgate ${verb} ${id}`,
251
+ }),
252
+ ]);
253
+ }
254
+ }
255
+ // ── The checks, before anything is written ───────────────────────────────
256
+ //
257
+ // `--check` and `--strict` used to be parsed and discarded, so `done
258
+ // REQ-001 --check` printed a tick over a matrix pointing at files that do
259
+ // not exist. Four documentation pages said it "validates first".
189
260
  const harness = (0, HarnessConfigFile_1.readHarnessConfig)(projectDir) || {};
190
- const plan = (0, DoneVerification_1.planDoneVerification)(projectDir, {
261
+ const plan = (0, DoneVerification_1.planDoneVerification)(dir, {
191
262
  check: opts.check,
192
263
  strict: opts.strict,
193
- reqId: opts.reqId || undefined,
264
+ reqId: id,
194
265
  testCmd: opts.testCmd || harness.testCmd,
195
266
  archCmd: harness.archCmd,
196
267
  });
197
- if (!opts.json)
198
- process.stdout.write(ui.header(`done ${opts.reqId}`, opts.status));
199
268
  for (const step of plan.steps) {
200
269
  const exec = () => step.stage === "validate"
201
270
  ? (0, node_child_process_1.spawnSync)(process.execPath, [
@@ -210,7 +279,7 @@ class DoneCommand extends command_1.BaseCommand {
210
279
  shell: true,
211
280
  });
212
281
  const label = step.stage === "validate"
213
- ? `Specification ${ui.muted(`the gate, for ${opts.reqId}`)}`
282
+ ? `Specification ${ui.muted(`the gate, for ${id}`)}`
214
283
  : step.stage === "arch"
215
284
  ? `Architecture ${ui.muted(step.argv[0])}`
216
285
  : `Tests ${ui.muted(step.argv[0])}`;
@@ -219,7 +288,7 @@ class DoneCommand extends command_1.BaseCommand {
219
288
  continue;
220
289
  // The output is the evidence, and it goes out *before* the diagnostic:
221
290
  // `io.fail` never returns, so anything written after it is dead code.
222
- const detail = `${run.stdout || ""}${run.stderr || ""}`.trim();
291
+ const detail = toProject(`${run.stdout || ""}${run.stderr || ""}`.trim());
223
292
  if (detail && !opts.json)
224
293
  process.stderr.write("\n" + indent(detail) + "\n\n");
225
294
  // Over JSON (and so over MCP) the reason has to travel in the document:
@@ -227,13 +296,18 @@ class DoneCommand extends command_1.BaseCommand {
227
296
  let findings = [];
228
297
  if (opts.json && step.stage === "validate") {
229
298
  try {
230
- const doc = JSON.parse(String(run.stdout).slice(String(run.stdout).indexOf("{")));
231
- findings = (doc.status || []).filter((d) => d.severity === "error");
299
+ const stdout = toProject(String(run.stdout));
300
+ const doc = JSON.parse(stdout.slice(stdout.indexOf("{")));
301
+ // One fix line per refusal: the findings say what, the last says how.
302
+ findings = (doc.status || [])
303
+ .filter((d) => d.severity === "error")
304
+ .map(({ fix: _fix, ...d }) => d);
232
305
  }
233
306
  catch {
234
307
  // Not JSON: the diagnostic below still says it failed.
235
308
  }
236
309
  }
310
+ const again = `specgate ${verb} ${id}`;
237
311
  io.fail(NULL_SHAPE, [
238
312
  ...findings,
239
313
  (0, diagnostics_1.error)(step.stage === "validate"
@@ -245,31 +319,16 @@ class DoneCommand extends command_1.BaseCommand {
245
319
  : step.stage === "arch"
246
320
  ? `not marked ${opts.status}: the architecture check failed.`
247
321
  : `not marked ${opts.status}: the project's tests failed.`, {
248
- target: opts.reqId,
322
+ target: id,
249
323
  fix: step.stage === "validate"
250
- ? "Fix what validate reports, then run `done` again."
324
+ ? `fix what validate reports above, then run ${again}`
251
325
  : step.stage === "arch"
252
- ? `Make \`${step.argv[0]}\` pass — move the code where the architecture expects it — then run \`done\` again.`
253
- : `Make \`${step.argv[0]}\` pass, then run \`done\` again. A requirement ` +
254
- `marked Implemented over a red suite is the claim this gate exists to stop.`,
326
+ ? `make \`${step.argv[0]}\` pass — the code where the architecture expects it — then run ${again}`
327
+ : `make \`${step.argv[0]}\` pass, then run ${again}`,
255
328
  }),
256
329
  ]);
257
330
  }
258
- // A generated matrix gets its status from spec.md: writing the row would
259
- // be undone by the next regeneration.
260
- const derivedRows = (0, derived_writes_1.isDerivedProject)(projectDir)
261
- ? (0, derived_writes_1.writeRequirementFields)(projectDir, opts.reqId, { status: opts.status })
262
- : undefined;
263
- const result = derivedRows === undefined
264
- ? new UpdateRequirementStatusUseCase_1.UpdateRequirementStatusUseCase(new DiskTraceabilityRepository_1.DiskTraceabilityRepository()).execute(projectDir, opts.reqId, opts.status)
265
- : derivedRows === null
266
- ? {
267
- ok: false,
268
- code: "requirement_not_in_matrix",
269
- error: `${opts.reqId} has no section in spec.md or in a capability spec.`,
270
- updated: 0,
271
- }
272
- : { ok: true, updated: derivedRows };
331
+ const result = writeStatus(projectDir, dir, owner, id, opts.status);
273
332
  if (!result.ok) {
274
333
  if (result.code === "traceability_not_found") {
275
334
  io.usage(NULL_SHAPE, [
@@ -281,20 +340,18 @@ class DoneCommand extends command_1.BaseCommand {
281
340
  }
282
341
  else {
283
342
  io.fail(NULL_SHAPE, [
284
- (0, diagnostics_1.error)("requirement_not_in_matrix", result.error || `${opts.reqId} not found in traceability.md.`, {
285
- target: opts.reqId,
286
- fix: `Add a row for ${opts.reqId} — \`specgate req add\` writes one for you.`,
343
+ (0, diagnostics_1.error)("requirement_not_in_matrix", result.error || `${id} not found in traceability.md.`, {
344
+ target: id,
345
+ fix: `Add a row for ${id} — \`specgate req add\` writes one for you.`,
287
346
  }),
288
347
  ]);
289
348
  }
290
349
  }
291
350
  const updated = result.updated;
292
- io.emit({ requirement: { id: opts.reqId, status: opts.status, rowsUpdated: updated } }, () => process.stdout.write("\n" +
293
- ui.ok(`${ui_1.c.bold}${opts.reqId}${ui_1.c.reset} ${ui.sym.arrow} ${ui_1.c.ok}${ui_1.c.bold}${opts.status}${ui_1.c.reset} ` +
351
+ io.emit({ requirement: { id, status: opts.status, rowsUpdated: updated } }, () => process.stdout.write("\n" +
352
+ ui.ok(`${ui_1.c.bold}${id}${ui_1.c.reset} ${ui.sym.arrow} ${ui_1.c.ok}${ui_1.c.bold}${opts.status}${ui_1.c.reset} ` +
294
353
  ui.muted(`(${updated} row${updated > 1 ? "s" : ""} updated)`)) +
295
- (plan.testsUnverified
296
- ? ""
297
- : ui.next("specgate status", "what is left, and the next requirement"))));
354
+ (plan.testsUnverified ? "" : nextAfter(queue().items, id, owner, view))));
298
355
  // Said out loud, after the tick, because this is the command that writes
299
356
  // `Implemented` into the record other people read. A project nothing ran is
300
357
  // not a project that passed.
@@ -329,6 +386,7 @@ class DoneCommand extends command_1.BaseCommand {
329
386
  projectDir = (0, project_root_1.resolveProjectDir)(opts.projectDir);
330
387
  }
331
388
  catch (err) {
389
+ // `resolveProjectDir` throws Errors.
332
390
  io.usage(NULL_SHAPE, [
333
391
  (0, diagnostics_1.error)("project_not_found", err.message, {
334
392
  fix: "Run from inside a spec-driven project, or pass --project-dir.",
@@ -337,12 +395,15 @@ class DoneCommand extends command_1.BaseCommand {
337
395
  return;
338
396
  }
339
397
  (0, MatrixCommand_1.refreshDerivedMatrix)(projectDir);
398
+ // Open changes' requirements are judged as they will be after archive (ADR-0035).
399
+ const view = (0, in_flight_1.inFlightView)(projectDir);
400
+ const dir = view ? view.dir : projectDir;
340
401
  const ids = [...new Set(opts.reqIds)];
341
402
  const results = new Map();
342
403
  const harness = (0, HarnessConfigFile_1.readHarnessConfig)(projectDir) || {};
343
404
  const testCmd = opts.testCmd || harness.testCmd;
344
405
  const gated = opts.check && exports.DELIVERED_STATUSES.includes(opts.status);
345
- const tracePath = path.join(projectDir, "docs", "specs", "traceability.md");
406
+ const tracePath = path.join(dir, TRACE);
346
407
  for (const id of ids) {
347
408
  if (gated && fs.existsSync(tracePath)) {
348
409
  const blocker = (0, DoneVerification_1.deliveryBlocker)(fs.readFileSync(tracePath, "utf8"), id);
@@ -351,7 +412,7 @@ class DoneCommand extends command_1.BaseCommand {
351
412
  continue;
352
413
  }
353
414
  }
354
- const plan = (0, DoneVerification_1.planDoneVerification)(projectDir, {
415
+ const plan = (0, DoneVerification_1.planDoneVerification)(dir, {
355
416
  check: opts.check,
356
417
  strict: opts.strict,
357
418
  reqId: id,
@@ -365,7 +426,7 @@ class DoneCommand extends command_1.BaseCommand {
365
426
  ok: false,
366
427
  code: "done_validate_failed",
367
428
  message: "validation failed",
368
- detail: `${run.stdout || ""}${run.stderr || ""}`.trim(),
429
+ detail: (view ? view.toProject : (t) => t)(`${run.stdout || ""}${run.stderr || ""}`.trim()),
369
430
  });
370
431
  continue;
371
432
  }
@@ -412,18 +473,8 @@ class DoneCommand extends command_1.BaseCommand {
412
473
  }
413
474
  }
414
475
  for (const id of ids.filter((x) => results.get(x).ok)) {
415
- const derivedRows = (0, derived_writes_1.isDerivedProject)(projectDir)
416
- ? (0, derived_writes_1.writeRequirementFields)(projectDir, id, { status: opts.status })
417
- : undefined;
418
- const result = derivedRows === undefined
419
- ? new UpdateRequirementStatusUseCase_1.UpdateRequirementStatusUseCase(new DiskTraceabilityRepository_1.DiskTraceabilityRepository()).execute(projectDir, id, opts.status)
420
- : derivedRows === null
421
- ? {
422
- ok: false,
423
- error: `${id} has no section in spec.md or in a capability spec.`,
424
- updated: 0,
425
- }
426
- : { ok: true, updated: derivedRows };
476
+ const owner = view ? view.requirements.find((r) => r.id === id) : undefined;
477
+ const result = writeStatus(projectDir, dir, owner, id, opts.status);
427
478
  if (!result.ok) {
428
479
  results.set(id, {
429
480
  ok: false,
@@ -445,7 +496,7 @@ class DoneCommand extends command_1.BaseCommand {
445
496
  process.stdout.write(`${JSON.stringify(doc, null, 2)}\n`);
446
497
  }
447
498
  else {
448
- process.stdout.write(ui.header(`done ${ids.join(" ")}`, opts.status));
499
+ process.stdout.write(ui.header(`${this.verb} ${ids.join(" ")}`, opts.status));
449
500
  for (const id of ids) {
450
501
  const r = results.get(id);
451
502
  if (r.ok) {
@@ -477,4 +528,58 @@ function indent(text) {
477
528
  .map((l) => ` ${l}`)
478
529
  .join("\n");
479
530
  }
531
+ const TRACE = path.join("docs", "specs", "traceability.md");
532
+ function readTrace(dir) {
533
+ return fs.readFileSync(path.join(dir, TRACE), "utf8");
534
+ }
535
+ /**
536
+ * Write the status to the requirement's one owner: its open change's delta
537
+ * when it is in flight (ADR-0035), spec.md or its capability spec otherwise,
538
+ * or the hand-kept matrix of a project that is not derived.
539
+ */
540
+ function writeStatus(projectDir, judgedDir, owner, id, status) {
541
+ if (owner) {
542
+ const file = path.join(projectDir, owner.deltaFile);
543
+ const next = (0, DerivedMatrix_1.setTraceFields)(fs.readFileSync(file, "utf8"), id, { status });
544
+ if (next === null) {
545
+ return { ok: false, updated: 0, error: `${id} has no section in ${owner.deltaFile}.` };
546
+ }
547
+ fs.writeFileSync(file, next, "utf8");
548
+ const rows = (0, DerivedMatrix_1.deriveRows)((0, DerivedMatrixSources_1.readDerivationSources)(judgedDir)).filter((r) => r.requirement === id).length;
549
+ return { ok: true, updated: Math.max(rows, 1) };
550
+ }
551
+ // A generated matrix gets its status from spec.md: writing the row would
552
+ // be undone by the next regeneration.
553
+ const derivedRows = (0, derived_writes_1.isDerivedProject)(projectDir)
554
+ ? (0, derived_writes_1.writeRequirementFields)(projectDir, id, { status })
555
+ : undefined;
556
+ if (derivedRows === undefined) {
557
+ return new UpdateRequirementStatusUseCase_1.UpdateRequirementStatusUseCase(new DiskTraceabilityRepository_1.DiskTraceabilityRepository()).execute(projectDir, id, status);
558
+ }
559
+ if (derivedRows === null) {
560
+ return {
561
+ ok: false,
562
+ updated: 0,
563
+ code: "requirement_not_in_matrix",
564
+ error: `${id} has no section in spec.md or in a capability spec.`,
565
+ };
566
+ }
567
+ return { ok: true, updated: derivedRows };
568
+ }
569
+ /**
570
+ * What to run after a delivery: the next requirement, or — when that one was
571
+ * its open change's last — archiving the change.
572
+ */
573
+ function nextAfter(items, id, owner, view) {
574
+ if (owner && view) {
575
+ const rest = view.requirements.filter((r) => r.change === owner.change && r.id !== id);
576
+ if (rest.every((r) => in_flight_1.DELIVERED.includes(r.status))) {
577
+ return ui.next(`specgate archive ${owner.change}`, `every requirement of ${owner.change} is delivered`);
578
+ }
579
+ }
580
+ const following = (0, StatusCommand_1.nextRequirement)(items, [id]);
581
+ return following
582
+ ? ui.next(`specgate apply ${following.requirement}`, "the next requirement")
583
+ : ui.next("specgate status", "what is left, and the next requirement");
584
+ }
480
585
  //# sourceMappingURL=DoneCommand.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DoneCommand.js","sourceRoot":"","sources":["../../../../../scripts/cli/commands/spec/DoneCommand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DoneCommand.js","sourceRoot":"","sources":["../../../../../scripts/cli/commands/spec/DoneCommand.ts"],"names":[],"mappings":"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"}