@rsaglobaltech/specgate 0.19.1 → 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 (253) hide show
  1. package/CHANGELOG.md +164 -4
  2. package/README.md +31 -31
  3. package/bin/specgate.ts +26 -20
  4. package/dist/bin/specgate.js +16 -11
  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 +12 -4
  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/HarnessConfig.js +1 -0
  27. package/dist/packages/core/src/domain/HarnessConfig.js.map +1 -1
  28. package/dist/packages/core/src/domain/HarnessEvents.js +129 -0
  29. package/dist/packages/core/src/domain/HarnessEvents.js.map +1 -0
  30. package/dist/packages/core/src/domain/HarnessRun.js.map +1 -1
  31. package/dist/packages/core/src/domain/Language.js +5 -2
  32. package/dist/packages/core/src/domain/Language.js.map +1 -1
  33. package/dist/packages/core/src/domain/PackContribution.js.map +1 -1
  34. package/dist/packages/core/src/domain/PackDelta.js +5 -2
  35. package/dist/packages/core/src/domain/PackDelta.js.map +1 -1
  36. package/dist/packages/core/src/domain/PackSpec.js +16 -2
  37. package/dist/packages/core/src/domain/PackSpec.js.map +1 -1
  38. package/dist/packages/core/src/domain/QuotedText.js +36 -0
  39. package/dist/packages/core/src/domain/QuotedText.js.map +1 -0
  40. package/dist/packages/core/src/domain/RequirementPlan.js.map +1 -1
  41. package/dist/packages/core/src/domain/SpecParser.js +2 -9
  42. package/dist/packages/core/src/domain/SpecParser.js.map +1 -1
  43. package/dist/packages/core/src/domain/TraceabilityFormat.js.map +1 -1
  44. package/dist/packages/core/src/domain/TraceabilityMatrix.js +3 -3
  45. package/dist/packages/core/src/domain/TraceabilityMatrix.js.map +1 -1
  46. package/dist/packages/core/src/domain/YamlLite.js +3 -0
  47. package/dist/packages/core/src/domain/YamlLite.js.map +1 -1
  48. package/dist/packages/core/src/infrastructure/ChangeWorkspace.js.map +1 -1
  49. package/dist/packages/core/src/infrastructure/ConsoleReporter.js.map +1 -1
  50. package/dist/packages/core/src/infrastructure/DiskLanguageRepository.js +1 -0
  51. package/dist/packages/core/src/infrastructure/DiskLanguageRepository.js.map +1 -1
  52. package/dist/packages/core/src/infrastructure/DiskPackDeltaRepository.js +3 -1
  53. package/dist/packages/core/src/infrastructure/DiskPackDeltaRepository.js.map +1 -1
  54. package/dist/packages/core/src/infrastructure/DiskPackRepository.js +0 -2
  55. package/dist/packages/core/src/infrastructure/DiskPackRepository.js.map +1 -1
  56. package/dist/packages/core/src/infrastructure/DiskRequirementGraphRepository.js.map +1 -1
  57. package/dist/packages/core/src/infrastructure/GitContributionStager.js +0 -4
  58. package/dist/packages/core/src/infrastructure/GitContributionStager.js.map +1 -1
  59. package/dist/packages/core/src/infrastructure/GitMergeDriver.js +0 -3
  60. package/dist/packages/core/src/infrastructure/GitMergeDriver.js.map +1 -1
  61. package/dist/packages/core/src/infrastructure/HarnessConfigFile.js +16 -13
  62. package/dist/packages/core/src/infrastructure/HarnessConfigFile.js.map +1 -1
  63. package/dist/packages/core/src/infrastructure/PackChangeDeposit.js.map +1 -1
  64. package/dist/packages/core/src/infrastructure/RemotePackResolver.js +0 -7
  65. package/dist/packages/core/src/infrastructure/RemotePackResolver.js.map +1 -1
  66. package/dist/packages/core/src/infrastructure/SpecopsConfigFile.js.map +1 -1
  67. package/dist/packages/core/test/unit/declared-artifacts.test.js +6 -2
  68. package/dist/packages/core/test/unit/declared-artifacts.test.js.map +1 -1
  69. package/dist/packages/core/test/unit/derived-matrix.test.js +3 -0
  70. package/dist/packages/core/test/unit/derived-matrix.test.js.map +1 -1
  71. package/dist/packages/core/test/unit/done-verification.test.js +3 -0
  72. package/dist/packages/core/test/unit/done-verification.test.js.map +1 -1
  73. package/dist/packages/core/test/unit/matrix-dependencies.test.js.map +1 -1
  74. package/dist/packages/core/test/unit/reconciliation.test.js.map +1 -1
  75. package/dist/packages/core/test/unit/requirement-readiness.test.js +2 -2
  76. package/dist/packages/core/test/unit/requirement-readiness.test.js.map +1 -1
  77. package/dist/packages/core/test/unit/resume-state.test.js +4 -1
  78. package/dist/packages/core/test/unit/resume-state.test.js.map +1 -1
  79. package/dist/packages/core/test/unit/run-budget.test.js +3 -0
  80. package/dist/packages/core/test/unit/run-budget.test.js.map +1 -1
  81. package/dist/packages/core/test/unit/untouched-delta.test.js +52 -0
  82. package/dist/packages/core/test/unit/untouched-delta.test.js.map +1 -0
  83. package/dist/packages/core/test/unit/validate-project.test.js +6 -2
  84. package/dist/packages/core/test/unit/validate-project.test.js.map +1 -1
  85. package/dist/packages/mcp-spec-driven/src/server.js +4 -3
  86. package/dist/packages/mcp-spec-driven/src/server.js.map +1 -1
  87. package/dist/packages/mcp-spec-driven/src/tools.js.map +1 -1
  88. package/dist/scripts/add.js +10 -0
  89. package/dist/scripts/add.js.map +1 -0
  90. package/dist/scripts/agents/commands.js +49 -37
  91. package/dist/scripts/agents/commands.js.map +1 -1
  92. package/dist/scripts/agents/detect.js.map +1 -1
  93. package/dist/scripts/agents/init.js.map +1 -1
  94. package/dist/scripts/alm/cli.js +2 -2
  95. package/dist/scripts/alm/cli.js.map +1 -1
  96. package/dist/scripts/alm/core.js +1 -0
  97. package/dist/scripts/alm/core.js.map +1 -1
  98. package/dist/scripts/apply.js +9 -0
  99. package/dist/scripts/apply.js.map +1 -0
  100. package/dist/scripts/archive.js +9 -0
  101. package/dist/scripts/archive.js.map +1 -0
  102. package/dist/scripts/change/archive.js.map +1 -1
  103. package/dist/scripts/change/artifacts.js.map +1 -1
  104. package/dist/scripts/change/delta.js +0 -8
  105. package/dist/scripts/change/delta.js.map +1 -1
  106. package/dist/scripts/change/instructions.js +9 -11
  107. package/dist/scripts/change/instructions.js.map +1 -1
  108. package/dist/scripts/cli/commands/alm/PullCommand.js +4 -2
  109. package/dist/scripts/cli/commands/alm/PullCommand.js.map +1 -1
  110. package/dist/scripts/cli/commands/change/ChangeCommand.js +91 -17
  111. package/dist/scripts/cli/commands/change/ChangeCommand.js.map +1 -1
  112. package/dist/scripts/cli/commands/config/ConfigSetCommand.js +20 -11
  113. package/dist/scripts/cli/commands/config/ConfigSetCommand.js.map +1 -1
  114. package/dist/scripts/cli/commands/harness/RunCommand.js +243 -34
  115. package/dist/scripts/cli/commands/harness/RunCommand.js.map +1 -1
  116. package/dist/scripts/cli/commands/mcp/McpInstallCommand.js +1 -0
  117. package/dist/scripts/cli/commands/mcp/McpInstallCommand.js.map +1 -1
  118. package/dist/scripts/cli/commands/pack/BundlePackCommand.js +2 -1
  119. package/dist/scripts/cli/commands/pack/BundlePackCommand.js.map +1 -1
  120. package/dist/scripts/cli/commands/pack/ExpandDomainPackCommand.js +32 -17
  121. package/dist/scripts/cli/commands/pack/ExpandDomainPackCommand.js.map +1 -1
  122. package/dist/scripts/cli/commands/pack/InferPackCommand.js +8 -5
  123. package/dist/scripts/cli/commands/pack/InferPackCommand.js.map +1 -1
  124. package/dist/scripts/cli/commands/pack/LintPackCommand.js +36 -44
  125. package/dist/scripts/cli/commands/pack/LintPackCommand.js.map +1 -1
  126. package/dist/scripts/cli/commands/pack/pack-args.js.map +1 -1
  127. package/dist/scripts/cli/commands/project/AddCommand.js +75 -0
  128. package/dist/scripts/cli/commands/project/AddCommand.js.map +1 -0
  129. package/dist/scripts/cli/commands/project/AdoptCommand.js +4 -2
  130. package/dist/scripts/cli/commands/project/AdoptCommand.js.map +1 -1
  131. package/dist/scripts/cli/commands/project/Forja.js +104 -0
  132. package/dist/scripts/cli/commands/project/Forja.js.map +1 -0
  133. package/dist/scripts/cli/commands/project/InitFromPackCommand.js.map +1 -1
  134. package/dist/scripts/cli/commands/project/InitProjectCommand.js +55 -2
  135. package/dist/scripts/cli/commands/project/InitProjectCommand.js.map +1 -1
  136. package/dist/scripts/cli/commands/project/OnboardCommand.js +40 -4
  137. package/dist/scripts/cli/commands/project/OnboardCommand.js.map +1 -1
  138. package/dist/scripts/cli/commands/project/UpdateCommand.js.map +1 -1
  139. package/dist/scripts/cli/commands/project/WizardCommand.js.map +1 -1
  140. package/dist/scripts/cli/commands/quality/CheckCommand.js +96 -17
  141. package/dist/scripts/cli/commands/quality/CheckCommand.js.map +1 -1
  142. package/dist/scripts/cli/commands/quality/DoctorCommand.js +8 -4
  143. package/dist/scripts/cli/commands/quality/DoctorCommand.js.map +1 -1
  144. package/dist/scripts/cli/commands/quality/FixCommand.js.map +1 -1
  145. package/dist/scripts/cli/commands/quality/LicenseCheckCommand.js +3 -1
  146. package/dist/scripts/cli/commands/quality/LicenseCheckCommand.js.map +1 -1
  147. package/dist/scripts/cli/commands/quality/ReportCommand.js +8 -3
  148. package/dist/scripts/cli/commands/quality/ReportCommand.js.map +1 -1
  149. package/dist/scripts/cli/commands/quality/ValidateSpecsCommand.js +39 -30
  150. package/dist/scripts/cli/commands/quality/ValidateSpecsCommand.js.map +1 -1
  151. package/dist/scripts/cli/commands/quality/VerifyCommand.js +3 -2
  152. package/dist/scripts/cli/commands/quality/VerifyCommand.js.map +1 -1
  153. package/dist/scripts/cli/commands/spec/DoneCommand.js +212 -80
  154. package/dist/scripts/cli/commands/spec/DoneCommand.js.map +1 -1
  155. package/dist/scripts/cli/commands/spec/DraftCommand.js +56 -33
  156. package/dist/scripts/cli/commands/spec/DraftCommand.js.map +1 -1
  157. package/dist/scripts/cli/commands/spec/ExploreCommand.js +224 -0
  158. package/dist/scripts/cli/commands/spec/ExploreCommand.js.map +1 -0
  159. package/dist/scripts/cli/commands/spec/MatrixCommand.js +35 -5
  160. package/dist/scripts/cli/commands/spec/MatrixCommand.js.map +1 -1
  161. package/dist/scripts/cli/commands/spec/NewCommand.js +4 -4
  162. package/dist/scripts/cli/commands/spec/NewCommand.js.map +1 -1
  163. package/dist/scripts/cli/commands/spec/PetCommand.js.map +1 -1
  164. package/dist/scripts/cli/commands/spec/PlanCommand.js +8 -3
  165. package/dist/scripts/cli/commands/spec/PlanCommand.js.map +1 -1
  166. package/dist/scripts/cli/commands/spec/ReqCommand.js +8 -9
  167. package/dist/scripts/cli/commands/spec/ReqCommand.js.map +1 -1
  168. package/dist/scripts/cli/commands/spec/StatusCommand.js +121 -23
  169. package/dist/scripts/cli/commands/spec/StatusCommand.js.map +1 -1
  170. package/dist/scripts/cli/commands/spec/StudioCommand.js +76 -4
  171. package/dist/scripts/cli/commands/spec/StudioCommand.js.map +1 -1
  172. package/dist/scripts/cli/commands/specops/ContributeCommand.js +6 -2
  173. package/dist/scripts/cli/commands/specops/ContributeCommand.js.map +1 -1
  174. package/dist/scripts/cli/commands/specops/DiffCommand.js +19 -5
  175. package/dist/scripts/cli/commands/specops/DiffCommand.js.map +1 -1
  176. package/dist/scripts/cli/commands/specops/SyncCommand.js +4 -2
  177. package/dist/scripts/cli/commands/specops/SyncCommand.js.map +1 -1
  178. package/dist/scripts/docs/build-site.js +81 -1
  179. package/dist/scripts/docs/build-site.js.map +1 -1
  180. package/dist/scripts/docs/components.js +6 -1
  181. package/dist/scripts/docs/components.js.map +1 -1
  182. package/dist/scripts/docs/icons.js +0 -6
  183. package/dist/scripts/docs/icons.js.map +1 -1
  184. package/dist/scripts/docs/journey-storyboard.js +23 -20
  185. package/dist/scripts/docs/journey-storyboard.js.map +1 -1
  186. package/dist/scripts/docs/nav.js +136 -22
  187. package/dist/scripts/docs/nav.js.map +1 -1
  188. package/dist/scripts/docs/record-terminal.js +1 -1
  189. package/dist/scripts/docs/record-terminal.js.map +1 -1
  190. package/dist/scripts/docs/terminal-storyboard.js +24 -21
  191. package/dist/scripts/docs/terminal-storyboard.js.map +1 -1
  192. package/dist/scripts/draft/brief-setup.js +9 -8
  193. package/dist/scripts/draft/brief-setup.js.map +1 -1
  194. package/dist/scripts/draft/confined-agent.js +3 -2
  195. package/dist/scripts/draft/confined-agent.js.map +1 -1
  196. package/dist/scripts/draft/drafting-guide.js +7 -6
  197. package/dist/scripts/draft/drafting-guide.js.map +1 -1
  198. package/dist/scripts/explore.js +10 -0
  199. package/dist/scripts/explore.js.map +1 -0
  200. package/dist/scripts/gen_mcp_tools.js +15 -7
  201. package/dist/scripts/gen_mcp_tools.js.map +1 -1
  202. package/dist/scripts/harness/events.js +202 -0
  203. package/dist/scripts/harness/events.js.map +1 -0
  204. package/dist/scripts/harness/init.js +6 -2
  205. package/dist/scripts/harness/init.js.map +1 -1
  206. package/dist/scripts/harness/run.js +2 -1
  207. package/dist/scripts/harness/run.js.map +1 -1
  208. package/dist/scripts/lib/agent.js.map +1 -1
  209. package/dist/scripts/lib/base-ids.js +179 -0
  210. package/dist/scripts/lib/base-ids.js.map +1 -0
  211. package/dist/scripts/lib/capability-specs.js.map +1 -1
  212. package/dist/scripts/lib/diagnostics.js +0 -10
  213. package/dist/scripts/lib/diagnostics.js.map +1 -1
  214. package/dist/scripts/lib/harness-events.js +74 -0
  215. package/dist/scripts/lib/harness-events.js.map +1 -0
  216. package/dist/scripts/lib/in-flight.js +191 -0
  217. package/dist/scripts/lib/in-flight.js.map +1 -0
  218. package/dist/scripts/lib/live-model.js +145 -0
  219. package/dist/scripts/lib/live-model.js.map +1 -0
  220. package/dist/scripts/lib/live-page.js +89 -0
  221. package/dist/scripts/lib/live-page.js.map +1 -0
  222. package/dist/scripts/lib/monorepo-fanout.js.map +1 -1
  223. package/dist/scripts/lib/placeholders.js.map +1 -1
  224. package/dist/scripts/lib/project-root.js.map +1 -1
  225. package/dist/scripts/lib/run-with-deadline.js +6 -1
  226. package/dist/scripts/lib/run-with-deadline.js.map +1 -1
  227. package/dist/scripts/lib/surface.js +109 -24
  228. package/dist/scripts/lib/surface.js.map +1 -1
  229. package/dist/scripts/lib/tour.js +149 -0
  230. package/dist/scripts/lib/tour.js.map +1 -0
  231. package/dist/scripts/propose.js +21 -0
  232. package/dist/scripts/propose.js.map +1 -0
  233. package/dist/scripts/schema/cli.js +1 -1
  234. package/dist/scripts/schema/cli.js.map +1 -1
  235. package/dist/scripts/schema/registry.js +1 -0
  236. package/dist/scripts/schema/registry.js.map +1 -1
  237. package/dist/scripts/specops/add.js +2 -1
  238. package/dist/scripts/specops/add.js.map +1 -1
  239. package/dist/scripts/specops/against_lock.js +22 -25
  240. package/dist/scripts/specops/against_lock.js.map +1 -1
  241. package/dist/scripts/specops/as_change.js.map +1 -1
  242. package/dist/scripts/specops/lock.js +0 -5
  243. package/dist/scripts/specops/lock.js.map +1 -1
  244. package/dist/scripts/specops/manifest.js +0 -8
  245. package/dist/scripts/specops/manifest.js.map +1 -1
  246. package/dist/scripts/specops/remove.js +2 -1
  247. package/dist/scripts/specops/remove.js.map +1 -1
  248. package/dist/scripts/specops/verify.js.map +1 -1
  249. package/package.json +1 -1
  250. package/templates/adopt/spec.md.tpl +1 -1
  251. package/templates/adopt/traceability.md.tpl +1 -1
  252. package/templates/base/AGENTS.md.tpl +12 -6
  253. 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,40 +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,
266
+ archCmd: harness.archCmd,
195
267
  });
196
- if (!opts.json)
197
- process.stdout.write(ui.header(`done ${opts.reqId}`, opts.status));
198
268
  for (const step of plan.steps) {
199
269
  const exec = () => step.stage === "validate"
200
270
  ? (0, node_child_process_1.spawnSync)(process.execPath, [
@@ -209,14 +279,16 @@ class DoneCommand extends command_1.BaseCommand {
209
279
  shell: true,
210
280
  });
211
281
  const label = step.stage === "validate"
212
- ? `Specification ${ui.muted(`the gate, for ${opts.reqId}`)}`
213
- : `Tests ${ui.muted(step.argv[0])}`;
282
+ ? `Specification ${ui.muted(`the gate, for ${id}`)}`
283
+ : step.stage === "arch"
284
+ ? `Architecture ${ui.muted(step.argv[0])}`
285
+ : `Tests ${ui.muted(step.argv[0])}`;
214
286
  const run = opts.json ? exec() : ui.task(label, exec, (r) => ({ ok: r.status === 0 }));
215
287
  if (run.status === 0)
216
288
  continue;
217
289
  // The output is the evidence, and it goes out *before* the diagnostic:
218
290
  // `io.fail` never returns, so anything written after it is dead code.
219
- const detail = `${run.stdout || ""}${run.stderr || ""}`.trim();
291
+ const detail = toProject(`${run.stdout || ""}${run.stderr || ""}`.trim());
220
292
  if (detail && !opts.json)
221
293
  process.stderr.write("\n" + indent(detail) + "\n\n");
222
294
  // Over JSON (and so over MCP) the reason has to travel in the document:
@@ -224,41 +296,39 @@ class DoneCommand extends command_1.BaseCommand {
224
296
  let findings = [];
225
297
  if (opts.json && step.stage === "validate") {
226
298
  try {
227
- const doc = JSON.parse(String(run.stdout).slice(String(run.stdout).indexOf("{")));
228
- 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);
229
305
  }
230
306
  catch {
231
307
  // Not JSON: the diagnostic below still says it failed.
232
308
  }
233
309
  }
310
+ const again = `specgate ${verb} ${id}`;
234
311
  io.fail(NULL_SHAPE, [
235
312
  ...findings,
236
- (0, diagnostics_1.error)(step.stage === "validate" ? "done_validate_failed" : "done_tests_failed", step.stage === "validate"
313
+ (0, diagnostics_1.error)(step.stage === "validate"
314
+ ? "done_validate_failed"
315
+ : step.stage === "arch"
316
+ ? "done_arch_failed"
317
+ : "done_tests_failed", step.stage === "validate"
237
318
  ? `not marked ${opts.status}: validation failed.`
238
- : `not marked ${opts.status}: the project's tests failed.`, {
239
- target: opts.reqId,
319
+ : step.stage === "arch"
320
+ ? `not marked ${opts.status}: the architecture check failed.`
321
+ : `not marked ${opts.status}: the project's tests failed.`, {
322
+ target: id,
240
323
  fix: step.stage === "validate"
241
- ? "Fix what validate reports, then run `done` again."
242
- : `Make \`${step.argv[0]}\` pass, then run \`done\` again. A requirement ` +
243
- `marked Implemented over a red suite is the claim this gate exists to stop.`,
324
+ ? `fix what validate reports above, then run ${again}`
325
+ : step.stage === "arch"
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}`,
244
328
  }),
245
329
  ]);
246
330
  }
247
- // A generated matrix gets its status from spec.md: writing the row would
248
- // be undone by the next regeneration.
249
- const derivedRows = (0, derived_writes_1.isDerivedProject)(projectDir)
250
- ? (0, derived_writes_1.writeRequirementFields)(projectDir, opts.reqId, { status: opts.status })
251
- : undefined;
252
- const result = derivedRows === undefined
253
- ? new UpdateRequirementStatusUseCase_1.UpdateRequirementStatusUseCase(new DiskTraceabilityRepository_1.DiskTraceabilityRepository()).execute(projectDir, opts.reqId, opts.status)
254
- : derivedRows === null
255
- ? {
256
- ok: false,
257
- code: "requirement_not_in_matrix",
258
- error: `${opts.reqId} has no section in spec.md or in a capability spec.`,
259
- updated: 0,
260
- }
261
- : { ok: true, updated: derivedRows };
331
+ const result = writeStatus(projectDir, dir, owner, id, opts.status);
262
332
  if (!result.ok) {
263
333
  if (result.code === "traceability_not_found") {
264
334
  io.usage(NULL_SHAPE, [
@@ -270,20 +340,18 @@ class DoneCommand extends command_1.BaseCommand {
270
340
  }
271
341
  else {
272
342
  io.fail(NULL_SHAPE, [
273
- (0, diagnostics_1.error)("requirement_not_in_matrix", result.error || `${opts.reqId} not found in traceability.md.`, {
274
- target: opts.reqId,
275
- 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.`,
276
346
  }),
277
347
  ]);
278
348
  }
279
349
  }
280
350
  const updated = result.updated;
281
- io.emit({ requirement: { id: opts.reqId, status: opts.status, rowsUpdated: updated } }, () => process.stdout.write("\n" +
282
- 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} ` +
283
353
  ui.muted(`(${updated} row${updated > 1 ? "s" : ""} updated)`)) +
284
- (plan.testsUnverified
285
- ? ""
286
- : ui.next("specgate status", "what is left, and the next requirement"))));
354
+ (plan.testsUnverified ? "" : nextAfter(queue().items, id, owner, view))));
287
355
  // Said out loud, after the tick, because this is the command that writes
288
356
  // `Implemented` into the record other people read. A project nothing ran is
289
357
  // not a project that passed.
@@ -318,6 +386,7 @@ class DoneCommand extends command_1.BaseCommand {
318
386
  projectDir = (0, project_root_1.resolveProjectDir)(opts.projectDir);
319
387
  }
320
388
  catch (err) {
389
+ // `resolveProjectDir` throws Errors.
321
390
  io.usage(NULL_SHAPE, [
322
391
  (0, diagnostics_1.error)("project_not_found", err.message, {
323
392
  fix: "Run from inside a spec-driven project, or pass --project-dir.",
@@ -326,12 +395,15 @@ class DoneCommand extends command_1.BaseCommand {
326
395
  return;
327
396
  }
328
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;
329
401
  const ids = [...new Set(opts.reqIds)];
330
402
  const results = new Map();
331
403
  const harness = (0, HarnessConfigFile_1.readHarnessConfig)(projectDir) || {};
332
404
  const testCmd = opts.testCmd || harness.testCmd;
333
405
  const gated = opts.check && exports.DELIVERED_STATUSES.includes(opts.status);
334
- const tracePath = path.join(projectDir, "docs", "specs", "traceability.md");
406
+ const tracePath = path.join(dir, TRACE);
335
407
  for (const id of ids) {
336
408
  if (gated && fs.existsSync(tracePath)) {
337
409
  const blocker = (0, DoneVerification_1.deliveryBlocker)(fs.readFileSync(tracePath, "utf8"), id);
@@ -340,7 +412,7 @@ class DoneCommand extends command_1.BaseCommand {
340
412
  continue;
341
413
  }
342
414
  }
343
- const plan = (0, DoneVerification_1.planDoneVerification)(projectDir, {
415
+ const plan = (0, DoneVerification_1.planDoneVerification)(dir, {
344
416
  check: opts.check,
345
417
  strict: opts.strict,
346
418
  reqId: id,
@@ -354,7 +426,7 @@ class DoneCommand extends command_1.BaseCommand {
354
426
  ok: false,
355
427
  code: "done_validate_failed",
356
428
  message: "validation failed",
357
- detail: `${run.stdout || ""}${run.stderr || ""}`.trim(),
429
+ detail: (view ? view.toProject : (t) => t)(`${run.stdout || ""}${run.stderr || ""}`.trim()),
358
430
  });
359
431
  continue;
360
432
  }
@@ -363,7 +435,23 @@ class DoneCommand extends command_1.BaseCommand {
363
435
  }
364
436
  const passing = ids.filter((id) => results.get(id).ok);
365
437
  let testsUnverified = false;
366
- if (passing.length > 0 && opts.check) {
438
+ const archCmd = (harness.archCmd || "").trim();
439
+ if (passing.length > 0 && opts.check && archCmd) {
440
+ const run = (0, node_child_process_1.spawnSync)(archCmd, { cwd: projectDir, encoding: "utf8", shell: true });
441
+ if (run.status !== 0) {
442
+ const detail = `${run.stdout || ""}${run.stderr || ""}`.trim();
443
+ if (detail && !opts.json)
444
+ process.stderr.write(indent(detail) + "\n\n");
445
+ for (const id of passing) {
446
+ results.set(id, {
447
+ ok: false,
448
+ code: "done_arch_failed",
449
+ message: "the architecture check failed",
450
+ });
451
+ }
452
+ }
453
+ }
454
+ if (passing.length > 0 && opts.check && passing.every((id) => results.get(id).ok)) {
367
455
  const cmd = (testCmd || "").trim();
368
456
  if (cmd === "") {
369
457
  testsUnverified = true;
@@ -385,18 +473,8 @@ class DoneCommand extends command_1.BaseCommand {
385
473
  }
386
474
  }
387
475
  for (const id of ids.filter((x) => results.get(x).ok)) {
388
- const derivedRows = (0, derived_writes_1.isDerivedProject)(projectDir)
389
- ? (0, derived_writes_1.writeRequirementFields)(projectDir, id, { status: opts.status })
390
- : undefined;
391
- const result = derivedRows === undefined
392
- ? new UpdateRequirementStatusUseCase_1.UpdateRequirementStatusUseCase(new DiskTraceabilityRepository_1.DiskTraceabilityRepository()).execute(projectDir, id, opts.status)
393
- : derivedRows === null
394
- ? {
395
- ok: false,
396
- error: `${id} has no section in spec.md or in a capability spec.`,
397
- updated: 0,
398
- }
399
- : { 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);
400
478
  if (!result.ok) {
401
479
  results.set(id, {
402
480
  ok: false,
@@ -418,7 +496,7 @@ class DoneCommand extends command_1.BaseCommand {
418
496
  process.stdout.write(`${JSON.stringify(doc, null, 2)}\n`);
419
497
  }
420
498
  else {
421
- process.stdout.write(ui.header(`done ${ids.join(" ")}`, opts.status));
499
+ process.stdout.write(ui.header(`${this.verb} ${ids.join(" ")}`, opts.status));
422
500
  for (const id of ids) {
423
501
  const r = results.get(id);
424
502
  if (r.ok) {
@@ -450,4 +528,58 @@ function indent(text) {
450
528
  .map((l) => ` ${l}`)
451
529
  .join("\n");
452
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
+ }
453
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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"}