@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
package/CHANGELOG.md CHANGED
@@ -8,6 +8,121 @@ The release process is in [`docs/release-process.md`](docs/release-process.md).
8
8
 
9
9
  ## [Unreleased]
10
10
 
11
+ ## [0.21.0] — 2026-10-20
12
+
13
+ The daily loop becomes four verbs over the same gate (ADR-0035), the gate stops
14
+ failing on text that is not a defect (ADR-0036), and the harness can be watched
15
+ while it works (ADR-0037).
16
+
17
+ ### Breaking
18
+
19
+ - **`archive` (and `change archive`) waits for the code.** A change is merged
20
+ into the specs only once every requirement it adds or modifies is
21
+ Implemented; before, it was archived first and delivered after. `--force`
22
+ does not skip this. Drafts from a brief follow the same path: review, apply,
23
+ then archive. Scripts that archived a change before implementing it now get
24
+ `archive_requirements_pending` with the `specgate apply` to run.
25
+ - **`specgate studio` binds to 127.0.0.1** and refuses requests addressed to
26
+ another host name; pass `--host` to serve it elsewhere (a devcontainer).
27
+
28
+ ### Added
29
+
30
+ - **See the harness work** ([ADR-0037](docs/specs/adr/0037-see-the-harness-work.md), change `live-view`).
31
+ - `harness run` writes `.harness/events/<REQ>.jsonl` — attempts, gate stages,
32
+ chain merges — and hands the agent `AGENT_EVENTS_FILE`, `AGENT_EVENTS_REQ`,
33
+ `AGENT_EVENTS_ATTEMPT`.
34
+ - `specgate harness events --from claude` turns Claude Code's stream into
35
+ events; no file contents, tool output or secrets, commands masked.
36
+ - `specgate studio` serves `/live`, `/live.json` and `/live/stream`
37
+ (server-sent events), bound to 127.0.0.1 and refusing foreign Host headers;
38
+ `--host` binds elsewhere on purpose.
39
+ - `specgate explore` — a brief of the project's state for thinking with an
40
+ agent before a change exists; writes nothing.
41
+ - `specgate onboard --tour` — the whole loop on a temporary copy, narrated.
42
+
43
+ - **A gate a team can trust** ([ADR-0036](docs/specs/adr/0036-a-gate-a-team-can-trust.md), change `trust-gate`).
44
+ - `check` compares requirement ids with the base branch (`--base`,
45
+ `SPECGATE_BASE`, or origin's default) and fails on the same id with another
46
+ title (`id_taken_on_base`), naming the next id free on both sides.
47
+ - `harness run --chain`: one requirement at a time, each cut from the
48
+ previous merge, merged with a merge commit when green, the gate run again
49
+ on the merge, a red result undone, the chain stopped at the first failure.
50
+ - `harness run --setup-cmd <cmd|none>`; without it, the install the lockfile
51
+ implies runs in each new worktree. The agent gets `SPECGATE_REQ` and
52
+ `SPECGATE_ATTEMPT`.
53
+ - A corpus fixture of real specification shapes passes `validate --strict`
54
+ with no finding; `SPECGATE_CORPUS` runs the same test over private projects.
55
+
56
+ - **Four verbs, one lifecycle** ([ADR-0035](docs/specs/adr/0035-four-verbs-one-lifecycle.md), change `compact-use`).
57
+ The short help is `init`; `propose`, `apply`, `status`, `archive`; `check`.
58
+ - `specgate propose <id>` opens a change with a delta to write (`change new`);
59
+ `propose --from-brief` drafts the next module of `docs/brief.md` (`draft`).
60
+ - `specgate apply [REQ]` delivers one requirement — the next one when none is
61
+ named: refused while no test names it (`apply_no_test`, with the fix), gated,
62
+ then Implemented. `done` is its old name, with the same result.
63
+ - `specgate archive <id>` merges a change once every requirement it adds or
64
+ modifies is Implemented (`archive_requirements_pending`); `--force` does not
65
+ skip that.
66
+ - **An open change's requirements count while it is in flight.** `status`,
67
+ `apply`, `check` and `harness run` judge the project as it will be after
68
+ archive — a temporary copy with every open change archived into it — and
69
+ `apply` writes the status in the change's delta.
70
+
71
+ ### Changed
72
+
73
+ - The placeholder rule ignores code spans, and the vague-step rule code spans
74
+ and quoted text: `` `tool verify <module>` `` is a command, not a template.
75
+ - TDD-3 asks a matrix row for a requirement a spec *declares* (a heading or a
76
+ requirement table row outside fenced code), not for every id it mentions.
77
+ - A generated matrix is declared `merge=union` in `.gitattributes`: parallel
78
+ branches no longer conflict on it, and `check` regenerates it.
79
+ - `new` and `req add` allocate above the ids open changes reserved.
80
+
81
+ - **A change is archived when its code is done**, not before. Drafts from a
82
+ brief follow the same path: reviewed, applied, then archived. `draft` names
83
+ `specgate apply` once a draft is ready, and the next module to draft skips
84
+ one that is ready.
85
+ - Unchecked tasks are a warning, not a refusal, for a change whose requirements
86
+ all passed the gate; a change with none still needs its tasks ticked.
87
+ - `status` names `specgate apply REQ-…` where it named `specgate done REQ-…`.
88
+ - A delta's scenario findings name their requirement:
89
+ `Scenario "…" of REQ-007 has no steps.`
90
+
91
+ - The codebase compiles under full `strict` TypeScript (`noImplicitAny`,
92
+ `strictNullChecks`, `noUnusedLocals`, `noUnusedParameters`), typed throughout
93
+ instead of `any`; the documentation site, README and CONTRIBUTING teach the
94
+ four-verb loop.
95
+ - Dev dependencies: @cucumber/cucumber 13.3.0, typescript-eslint 8.71.2,
96
+ prettier 3.9.10, js-yaml 5.5.0, marked 18.1.1, @types/node 26.6.5; Pages
97
+ actions `upload-pages-artifact` v5 and `deploy-pages` v5.
98
+
99
+ ### Fixed
100
+
101
+ - `specops diff --as-change` printed `── undefined @ undefined ──` in its human
102
+ output: it read snake_case fields from camelCase results.
103
+ - **The CLI no longer contradicts ADR-0035–0037** (four verbs, trusted gate, live view).
104
+ - `agents init` (and the bundled Claude Code plugin) teaches propose → test →
105
+ apply → archive: `/specgate:propose` opens a change, `/specgate:apply`
106
+ delivers a requirement, `/specgate:archive` runs only once all are applied;
107
+ `/specgate:draft` no longer says to archive before building, and
108
+ `/specgate:done` stays as an alias of apply. `AGENTS.md` says the same.
109
+ - `docs:terminal:check` and `docs:journey:check` no longer crash: the
110
+ storyboards leave the draft open, apply its requirements, and show archive
111
+ waiting for the rest. Recordings and `docs/start/` regenerated.
112
+ - `specgate explore` outside a Specgate project refuses with
113
+ `project_not_found` and a fix line (exit 2) instead of an ENOENT stack.
114
+ - Next-step advice names the new verbs: `propose --from-brief` says
115
+ `specgate propose --from-brief …`, the no-test-command warning and
116
+ `done_needs_clarification` say `apply`, and fixes that named `change new`,
117
+ `change archive` or `done` say `propose`, `archive` or `apply`. The old
118
+ names keep working.
119
+ - `status` with an open draft shows its `questions.md` at the change's real
120
+ path (not under `changes/archive/`), and counts a ready draft as drafted.
121
+ - Right after `specgate propose`, `check` passes: a change whose delta is
122
+ still the untouched skeleton is not judged yet, and `status`/`check` say so
123
+ (`change_delta_unwritten`, info). A delta with real but invalid content
124
+ still fails.
125
+
11
126
  ## [0.20.0] — 2026-10-12
12
127
 
13
128
  ### Added
package/README.md CHANGED
@@ -36,24 +36,24 @@ The package is scoped, the binary is not ([ADR-0024](docs/specs/adr/0024-the-too
36
36
 
37
37
  → [Getting started](docs/getting-started.md) · [Your team's first pull request](docs/first-pr.md) · [Quickstart for joiners](docs/quickstart.md)
38
38
 
39
- ## 🔁 The daily loop — five commands
39
+ ## 🔁 The daily loop — four verbs
40
40
 
41
41
  ```bash
42
- specgate status # what is open, and the next command to run
43
- specgate new "Customers download invoices as PDF" # requirement + scenario, in one step
44
- # rewrite the scenario's <placeholders>, then write a test that mentions REQ-007:
45
- # // REQ-007 — a paid invoice downloads as a PDF
46
- specgate done REQ-007 # runs the gate for it, then marks it Implemented
47
- specgate check # the whole gate — the same one CI runs
42
+ specgate propose add-pdf-invoices # a change: proposal, tasks, a delta to write, REQ ids reserved
43
+ # write REQ-007 and its scenario in the delta, a test that mentions REQ-007, the code
44
+ specgate apply # the next requirement through the gate: Implemented when green
45
+ specgate status # what is open, and the next command to run
46
+ specgate archive add-pdf-invoices # once every requirement in it is Implemented
48
47
  ```
49
48
 
50
- That is all most of a team ever types. **Mentioning `REQ-NNN` in a test is the
51
- link** — there is nothing else to declare. The traceability matrix is
52
- generated from `spec.md`, the scenario tags and your tests; nobody edits it,
53
- and CI fails when the committed copy is out of date. `done` writes nothing
54
- while the gate fails, so a requirement it closes is one CI will not reopen.
55
-
56
- Everything else — packs, changes, the harness, ALM sync — is in `specgate --help --all`.
49
+ `specgate check` is the same gate for CI ([ADR-0035](docs/specs/adr/0035-four-verbs-one-lifecycle.md)).
50
+ **A change is archived when its code is done**: while it is open its
51
+ requirements already count — `status` lists them, `apply` and `check` judge the
52
+ project as it will be after archive — and `archive` refuses one still pending.
53
+ `apply` refuses a requirement no test names and writes nothing while the gate
54
+ fails. **Mentioning `REQ-NNN` in a test is the link**; the matrix is generated.
55
+ From a plan: `specgate propose --from-brief`. Old names (`draft`, `done`…) keep
56
+ working; everything else is in `specgate --help --all`.
57
57
 
58
58
  ## 🪜 Adopt one level at a time
59
59
 
@@ -61,7 +61,7 @@ Each level is useful on its own and never requires the ones above it.
61
61
 
62
62
  | Level | You get | Commands | Cost |
63
63
  | ------ | ------------------------------------------------ | ---------------------------- | ------- |
64
- | **L1** | Traceable specs in your repo | `init`, `new`, `done` | ~1 hour |
64
+ | **L1** | Traceable specs in your repo | `init`, `propose`, `apply`, `archive` | ~1 hour |
65
65
  | **L2** | A PR gate enforcing spec and test coverage | `check`, `ci init` | ~1 hour |
66
66
  | **L3** | Versioned, reusable domain requirements | `specops add / sync / diff` | ~1 day |
67
67
  | **L4** | Agent-driven delivery, one requirement at a time | `agents init`, `harness run` | ~1 week |
@@ -76,24 +76,23 @@ stricter with every delivery. Given a test command, it runs your suite too.
76
76
 
77
77
  **Reviews that read intent.** The reviewer reads the requirement, its
78
78
  scenario and the test that names it — the gate has already proved the
79
- mechanical part. A spec that already shipped changes through a reviewable
80
- delta: only what moves, never a copy. Archiving merges it into the spec tree
81
- and writes the feature files, so a merged proposal cannot quietly become
82
- undone work.
79
+ mechanical part. A change is a reviewable delta: only what moves, never a
80
+ copy. It is archived — merged into the spec tree, with its feature files —
81
+ only once every requirement in it passed the gate, in the same pull request.
83
82
  → [Your team's first pull request](docs/first-pr.md) · [Reviewing changes](docs/reviewing-changes.md)
84
83
 
85
84
  **From a brief, or from OpenSpec.** Save your plan as `docs/brief.md`, run
86
- `specgate draft`: module by module, it briefs your agent and holds the draft
87
- to eleven rules — scenarios per actor and surface, sourced laws, every value in the brief or listed as an assumption, open
88
- questions that block, ids each actor can reach. Teams on OpenSpec keep it: `specgate verify` fails while
85
+ `specgate propose --from-brief`: module by module, it briefs your agent and holds
86
+ the draft to eleven rules — scenarios per actor and surface, sourced laws, every
87
+ value in the brief or listed as an assumption, open questions that block, ids each
88
+ actor can reach. Teams on OpenSpec keep it: `specgate verify` fails while
89
89
  a change claims a scenario no test names.
90
90
  → [A new project, step by step](docs/new-project.md) · [From a client brief](docs/from-a-brief.md) · [Already on OpenSpec](docs/openspec.md)
91
91
 
92
- **Your agent works the same loop.** `specgate agents init` gives Claude Code,
93
- Cursor, Copilot, Windsurf, Aider, Gemini, Cline, Codex or Antigravity the five
94
- steps as slash commands (`/specgate:new`, `/specgate:done`, …) from one
95
- definition. Every daily command speaks JSON with stable codes and a `fix` on
96
- each. The MCP server ships in the package: `specgate mcp install --client claude`.
92
+ **Your agent works the same loop.** `specgate agents init` gives Claude Code, Cursor,
93
+ Copilot, Windsurf, Aider, Gemini, Cline, Codex or Antigravity the loop as slash commands
94
+ (`/specgate:propose`, `/specgate:apply`, …) from one definition. Every daily command speaks
95
+ JSON with stable codes and a `fix` on each. MCP ships in the package: `specgate mcp install --client claude`.
97
96
  → [Agents](docs/agents.md) · [The agent contract](docs/specs/agent-contract.md) · [Automation and MCP](docs/automation.md)
98
97
 
99
98
  **Domain knowledge as a dependency.** A pack is a versioned, schema-validated
@@ -102,9 +101,10 @@ upgrade as intent with `specops diff --as-change`, not as a file diff.
102
101
  → [Domain packs: 7 proven in the pilots, 11 starter examples](docs/domain-packs.md) · [Supply chain](docs/supply-chain.md)
103
102
 
104
103
  **Unattended delivery.** `specgate harness run` drives plan → agent → verify →
105
- done for every pending requirement, each in its own git worktree; it never
106
- merges. The agent is any shell command with `{prompt_file}`; it stops where retrying cannot help.
107
- `specgate alm sync` keeps Jira, Azure Boards or GitHub Issues in step.
104
+ apply for every pending requirement, each in its own git worktree; it merges only
105
+ with `--chain`, only what passed the gate. The agent is any shell command with
106
+ `{prompt_file}`; `specgate studio` shows it at work, at `/live`. `specgate alm sync`
107
+ keeps Jira, Azure Boards or GitHub Issues in step.
108
108
  → [The harness](docs/harness.md) · [Jira, Azure Boards and GitHub Issues](docs/alm.md)
109
109
 
110
110
  **Tested as you install it.** Every release runs an end-to-end suite over every
@@ -122,7 +122,7 @@ since 0.14 come from building real products with it, from brief to running app.
122
122
  | Draft checklist from a brief | ✅ | ❌ | ⚠️ | ❌ | ❌ |
123
123
  | Proves OpenSpec's "done" against tests | ✅ `verify` | ❌ | ❌ | ❌ | ❌ |
124
124
  | Vendor-neutral | ✅ | ✅ | ✅ | ❌ | ✅ |
125
- | Commands to learn before the first PR | ✅ 5 (26 more, opt-in) | ✅ | ✅ | ✅ | ✅ |
125
+ | Commands to learn before the first PR | ✅ 6 (31 more, opt-in) | ✅ | ✅ | ✅ | ✅ |
126
126
 
127
127
  OpenSpec is the closest tool: if you want the change loop without packs or an enforced matrix, it fits better.
128
128
  → [Full matrix, trade-offs and migration paths](docs/comparisons.md)
package/bin/specgate.ts CHANGED
@@ -10,6 +10,7 @@ const packageJson = require(path.join(rootDir, "package.json"));
10
10
  const VERSION: string = packageJson.version || "0.0.0";
11
11
  import { ICommand } from "../scripts/lib/command";
12
12
  import { SURFACE, helpRows, coreHelpRows, hiddenCommandCount } from "../scripts/lib/surface";
13
+ import type { Command, HelpSection } from "../scripts/lib/surface";
13
14
  import { findProjectRoot } from "../scripts/lib/project-root";
14
15
 
15
16
  /** Resolve a registry row's `script` segments to a path under dist/scripts. */
@@ -119,18 +120,19 @@ const EXAMPLES =
119
120
  /**
120
121
  * The daily loop, narrowed.
121
122
  *
122
- * The surface grew past twenty, which is more than anyone reads. A new user
123
- * needs `init` or `adopt` once, then lives in status → plan → req → change →
124
- * validate → done. Everything else is real but not first — `--help --all`
125
- * shows it, and `specgate config set profile full` makes that the default.
123
+ * The surface grew past thirty, which is more than anyone reads. A new user
124
+ * needs `init` once, then lives in propose → apply → status → archive, with
125
+ * `check` in CI (ADR-0035). Everything else is real but not first —
126
+ * `--help --all` shows it, and `specgate config set profile full` makes that
127
+ * the default.
126
128
  *
127
129
  * Both help profiles are rendered from the surface registry, so a command
128
130
  * cannot exist without appearing in one of them or being deliberately absent
129
131
  * from both.
130
132
  */
131
- function renderGroups(groups: any[]): string {
133
+ function renderGroups(groups: HelpSection[]): string {
132
134
  return groups
133
- .map((g) => section(g.title) + g.rows.map((r: any) => cmd(r.icon, r.label, r.summary)).join(""))
135
+ .map((g) => section(g.title) + g.rows.map((r) => cmd(r.icon, r.label, r.summary)).join(""))
134
136
  .join("");
135
137
  }
136
138
 
@@ -140,15 +142,16 @@ function usageCore() {
140
142
  section("Usage") +
141
143
  ` ${c.accent}specgate${c.reset} ${c.bold}<command>${c.reset} [options] ${c.muted}specgate <command> --help for its options${c.reset}\n` +
142
144
  renderGroups(coreHelpRows()) +
145
+ section("Examples") +
146
+ example(`npx @rsaglobaltech/specgate@latest init`, "Existing repo or empty directory") +
147
+ example(`specgate propose add-dynamic-pricing`, "An idea becomes a change") +
148
+ example(`specgate propose --from-brief`, "Your plan is in docs/brief.md") +
149
+ example(`specgate apply`, "The next requirement, through the gate") +
150
+ example(`specgate archive add-dynamic-pricing`, "Every requirement in it delivered") +
143
151
  section("More") +
144
152
  ` ${c.muted}${hiddenCommandCount()} more commands cover packs, automation, agents and reporting.${c.reset}\n` +
153
+ ` ${c.accent}specgate config set profile full${c.reset}${c.muted} make the full list the default${c.reset}\n` +
145
154
  ` ${c.accent}specgate --help --all${c.reset}${c.muted} show every command${c.reset}\n` +
146
- ` ${c.accent}specgate config set profile full${c.reset}${c.muted} make that the default${c.reset}\n` +
147
- section("Examples") +
148
- example(`npx @rsaglobaltech/specgate@latest init`, "Existing repo or empty directory") +
149
- example(`specgate draft`, "Your plan is in docs/brief.md") +
150
- example(`specgate status`, "Start of day") +
151
- example(`specgate check`, "Before a pull request") +
152
155
  "\n"
153
156
  );
154
157
  }
@@ -169,10 +172,11 @@ function helpProfile(): string {
169
172
  return "core";
170
173
  }
171
174
 
172
- function groupUsage(row: any) {
175
+ /** Called only for a row that groups sub-commands. */
176
+ function groupUsage(row: Command) {
173
177
  let out = `\n ${c.brand}${sym.brand}${c.reset} ${c.bold}specgate ${row.name}${c.reset} <sub-command> [options]\n`;
174
178
  out += section("Sub-commands");
175
- for (const s of row.subcommands) {
179
+ for (const s of row.subcommands!) {
176
180
  const summary = (s.help && s.help.summary) || (row.help && row.help.summary) || "";
177
181
  out += cmd((s.help && s.help.icon) || "·", `${row.name} ${s.name}`, summary, 20);
178
182
  }
@@ -260,7 +264,7 @@ export class CreateSpecDrivenAppCommand implements ICommand {
260
264
 
261
265
  const command = args[0];
262
266
 
263
- const row = SURFACE.find((c: any) => c.name === command);
267
+ const row = SURFACE.find((c) => c.name === command);
264
268
  if (!row) {
265
269
  info(`Unknown command: ${command}`);
266
270
  usage();
@@ -277,7 +281,7 @@ export class CreateSpecDrivenAppCommand implements ICommand {
277
281
  process.exit(0);
278
282
  }
279
283
  if (row.subcommands && !row.script && args.length === 1) {
280
- const expected = row.subcommands.map((s: any) => s.name).join(", ");
284
+ const expected = row.subcommands.map((s) => s.name).join(", ");
281
285
  error(`Unknown ${command} sub-command: (none). Expected: ${expected}`);
282
286
  groupUsage(row);
283
287
  process.exit(2);
@@ -300,15 +304,17 @@ export class CreateSpecDrivenAppCommand implements ICommand {
300
304
 
301
305
  // Otherwise the sub-command is the route, and an unknown one stops here.
302
306
  const subName = args[1];
303
- const sub = (row.subcommands || []).find((s: any) => s.name === subName);
307
+ const sub = (row.subcommands || []).find((s) => s.name === subName);
304
308
  if (!sub) {
305
- const expected = (row.subcommands || []).map((s: any) => s.name).join(", ");
309
+ const expected = (row.subcommands || []).map((s) => s.name).join(", ");
306
310
  error(`Unknown ${command} sub-command: ${subName || "(none)"}. Expected: ${expected}`);
307
311
  usage();
308
312
  process.exit(2);
309
313
  }
310
314
 
311
- const target = resolveScript(sub.script);
315
+ // A row without its own script scripts every sub-command; the surface
316
+ // registry test holds the registry to that.
317
+ const target = resolveScript(sub.script!);
312
318
  ensureExecutable(target);
313
319
  runNodeScript(target, args.slice(sub.argsFrom === undefined ? 2 : sub.argsFrom));
314
320
  }
@@ -104,10 +104,11 @@ const EXAMPLES = example(`npx @rsaglobaltech/specgate@latest init`, "Generate a
104
104
  /**
105
105
  * The daily loop, narrowed.
106
106
  *
107
- * The surface grew past twenty, which is more than anyone reads. A new user
108
- * needs `init` or `adopt` once, then lives in status → plan → req → change →
109
- * validate → done. Everything else is real but not first — `--help --all`
110
- * shows it, and `specgate config set profile full` makes that the default.
107
+ * The surface grew past thirty, which is more than anyone reads. A new user
108
+ * needs `init` once, then lives in propose → apply → status → archive, with
109
+ * `check` in CI (ADR-0035). Everything else is real but not first —
110
+ * `--help --all` shows it, and `specgate config set profile full` makes that
111
+ * the default.
111
112
  *
112
113
  * Both help profiles are rendered from the surface registry, so a command
113
114
  * cannot exist without appearing in one of them or being deliberately absent
@@ -123,15 +124,16 @@ function usageCore() {
123
124
  section("Usage") +
124
125
  ` ${ui_1.c.accent}specgate${ui_1.c.reset} ${ui_1.c.bold}<command>${ui_1.c.reset} [options] ${ui_1.c.muted}specgate <command> --help for its options${ui_1.c.reset}\n` +
125
126
  renderGroups((0, surface_1.coreHelpRows)()) +
127
+ section("Examples") +
128
+ example(`npx @rsaglobaltech/specgate@latest init`, "Existing repo or empty directory") +
129
+ example(`specgate propose add-dynamic-pricing`, "An idea becomes a change") +
130
+ example(`specgate propose --from-brief`, "Your plan is in docs/brief.md") +
131
+ example(`specgate apply`, "The next requirement, through the gate") +
132
+ example(`specgate archive add-dynamic-pricing`, "Every requirement in it delivered") +
126
133
  section("More") +
127
134
  ` ${ui_1.c.muted}${(0, surface_1.hiddenCommandCount)()} more commands cover packs, automation, agents and reporting.${ui_1.c.reset}\n` +
135
+ ` ${ui_1.c.accent}specgate config set profile full${ui_1.c.reset}${ui_1.c.muted} make the full list the default${ui_1.c.reset}\n` +
128
136
  ` ${ui_1.c.accent}specgate --help --all${ui_1.c.reset}${ui_1.c.muted} show every command${ui_1.c.reset}\n` +
129
- ` ${ui_1.c.accent}specgate config set profile full${ui_1.c.reset}${ui_1.c.muted} make that the default${ui_1.c.reset}\n` +
130
- section("Examples") +
131
- example(`npx @rsaglobaltech/specgate@latest init`, "Existing repo or empty directory") +
132
- example(`specgate draft`, "Your plan is in docs/brief.md") +
133
- example(`specgate status`, "Start of day") +
134
- example(`specgate check`, "Before a pull request") +
135
137
  "\n");
136
138
  }
137
139
  /**
@@ -152,6 +154,7 @@ function helpProfile() {
152
154
  }
153
155
  return "core";
154
156
  }
157
+ /** Called only for a row that groups sub-commands. */
155
158
  function groupUsage(row) {
156
159
  let out = `\n ${ui_1.c.brand}${ui_1.sym.brand}${ui_1.c.reset} ${ui_1.c.bold}specgate ${row.name}${ui_1.c.reset} <sub-command> [options]\n`;
157
160
  out += section("Sub-commands");
@@ -275,6 +278,8 @@ class CreateSpecDrivenAppCommand {
275
278
  usage();
276
279
  process.exit(2);
277
280
  }
281
+ // A row without its own script scripts every sub-command; the surface
282
+ // registry test holds the registry to that.
278
283
  const target = resolveScript(sub.script);
279
284
  ensureExecutable(target);
280
285
  runNodeScript(target, args.slice(sub.argsFrom === undefined ? 2 : sub.argsFrom));
@@ -1 +1 @@
1
- {"version":3,"file":"specgate.js","sourceRoot":"","sources":["../../bin/specgate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"specgate.js","sourceRoot":"","sources":["../../bin/specgate.ts"],"names":[],"mappings":"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"}
@@ -8,9 +8,19 @@ class AddRequirementUseCase {
8
8
  constructor(traceRepo) {
9
9
  this.traceRepo = traceRepo;
10
10
  }
11
- execute(projectDir, fields) {
11
+ /**
12
+ * `reservedUpTo`: the highest id number an open change has reserved. A new
13
+ * id goes above it, so a requirement added while a change is open never takes
14
+ * an id that change will use (ADR-0036).
15
+ */
16
+ execute(projectDir, fields, reservedUpTo = 0) {
12
17
  const rawContent = this.traceRepo.readTraceability(projectDir) || "";
13
18
  const parsed = rawContent ? (0, TraceabilityFormat_1.parseTraceabilityRows)(rawContent) : { rows: [] };
19
+ if (!fields.requirement && reservedUpTo > 0) {
20
+ const next = Number(TraceabilityMatrix_1.TraceabilityMatrix.nextReqId(parsed.rows || []).slice(4));
21
+ const n = Math.max(next, reservedUpTo + 1);
22
+ fields = { ...fields, requirement: `REQ-${String(n).padStart(3, "0")}` };
23
+ }
14
24
  const result = TraceabilityMatrix_1.TraceabilityMatrix.appendRequirement(rawContent, fields, parsed.rows || []);
15
25
  this.traceRepo.writeTraceability(projectDir, result.content);
16
26
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"AddRequirementUseCase.js","sourceRoot":"","sources":["../../../../../packages/core/src/application/AddRequirementUseCase.ts"],"names":[],"mappings":";;;AACA,qEAAkE;AAClE,qEAAqE;AAuBrE,MAAa,qBAAqB;IACZ;IAApB,YAAoB,SAAkC;QAAlC,cAAS,GAAT,SAAS,CAAyB;IAAG,CAAC;IAEnD,OAAO,CAAC,UAAkB,EAAE,MAA4B;QAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACrE,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,IAAA,0CAAqB,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAE7E,MAAM,MAAM,GAAG,uCAAkB,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC3F,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAE7D,OAAO;YACL,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAC;IACJ,CAAC;CACF;AAhBD,sDAgBC"}
1
+ {"version":3,"file":"AddRequirementUseCase.js","sourceRoot":"","sources":["../../../../../packages/core/src/application/AddRequirementUseCase.ts"],"names":[],"mappings":";;;AACA,qEAAkE;AAClE,qEAAqE;AAyBrE,MAAa,qBAAqB;IACZ;IAApB,YAAoB,SAAkC;QAAlC,cAAS,GAAT,SAAS,CAAyB;IAAG,CAAC;IAE1D;;;;OAIG;IACI,OAAO,CACZ,UAAkB,EAClB,MAA4B,EAC5B,YAAY,GAAG,CAAC;QAEhB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACrE,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,IAAA,0CAAqB,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAC7E,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,uCAAkB,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9E,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;YAC3C,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;QAC3E,CAAC;QAED,MAAM,MAAM,GAAG,uCAAkB,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC3F,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAE7D,OAAO;YACL,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAC;IACJ,CAAC;CACF;AA9BD,sDA8BC"}
@@ -70,10 +70,15 @@ class ArchiveChangeUseCase {
70
70
  // (`specgate draft`) is what says it is ready, and `change archive`
71
71
  // already refuses one that is not (#57). Asking the person to also tick
72
72
  // boxes nobody wrote was a second gate with nothing behind it (#94).
73
+ // A change whose requirements all passed the gate (`gated`, ADR-0035) has
74
+ // its evidence; unchecked boxes are then said, not enforced.
73
75
  if (progress.remaining > 0 && !o.force && !o.draft) {
74
- plan.diagnostics.push((0, Diagnostic_1.error)("archive_tasks_incomplete", `Change "${changeId}" still has ${progress.remaining} unchecked task(s).`, {
76
+ const finding = o.gated ? Diagnostic_1.warning : Diagnostic_1.error;
77
+ (o.gated ? plan.warnings : plan.diagnostics).push(finding("archive_tasks_incomplete", `Change "${changeId}" still has ${progress.remaining} unchecked task(s).`, {
75
78
  target: changeId,
76
- fix: "Finish the tasks, or pass --force to archive anyway.",
79
+ fix: o.gated
80
+ ? "Tick them in tasks.md if they are done; the gate already passed for every requirement."
81
+ : "Finish the tasks, or pass --force to archive anyway.",
77
82
  }));
78
83
  }
79
84
  const deltas = config.skip_specs ? [] : this.repo.listDeltas(changeId);
@@ -1 +1 @@
1
- {"version":3,"file":"ArchiveChangeUseCase.js","sourceRoot":"","sources":["../../../../../packages/core/src/application/ArchiveChangeUseCase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArchiveChangeUseCase.js","sourceRoot":"","sources":["../../../../../packages/core/src/application/ArchiveChangeUseCase.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.POST_DRAFT_STATUS = exports.ALLOWED_STATUS = exports.RICH_HEADER = exports.LEGACY_HEADER = exports.ValidateProjectUseCase = void 0;
4
4
  const ValidationReport_1 = require("../domain/ValidationReport");
5
5
  const SpecSections_1 = require("../domain/SpecSections");
6
+ const QuotedText_1 = require("../domain/QuotedText");
6
7
  const DerivedMatrix_1 = require("../domain/DerivedMatrix");
7
8
  const TraceabilityFormat_1 = require("../domain/TraceabilityFormat");
8
9
  Object.defineProperty(exports, "ALLOWED_STATUS", { enumerable: true, get: function () { return TraceabilityFormat_1.ALLOWED_STATUS; } });
@@ -109,7 +110,7 @@ class ValidateProjectUseCase {
109
110
  target: status,
110
111
  fixLines: [
111
112
  `Allowed statuses: ${[...TraceabilityFormat_1.ALLOWED_STATUS].join(" · ")}`,
112
- "Use `specgate done <REQ-id>` to flip a row to Implemented safely.",
113
+ "Use `specgate apply <REQ-id>` to flip a row to Implemented safely.",
113
114
  ],
114
115
  });
115
116
  }
@@ -131,7 +132,7 @@ class ValidateProjectUseCase {
131
132
  target: requirementId,
132
133
  fixLines: [
133
134
  "Answer the question that blocks it (the `Answer` column of its change's questions.md),",
134
- 'remove `status="Needs Clarification"` from its `specgate:trace`, write its test, then run `done`.',
135
+ 'remove `status="Needs Clarification"` from its `specgate:trace`, write its test, then run `specgate apply`.',
135
136
  ],
136
137
  });
137
138
  }
@@ -150,7 +151,12 @@ class ValidateProjectUseCase {
150
151
  }
151
152
  }
152
153
  if (strictTdd && mode === "rich" && typeof opts.specContent === "string") {
153
- for (const reqId of new Set(opts.specContent.match(/\bREQ-\d+\b/g) || [])) {
154
+ // A requirement the spec *declares* — a heading or a requirement table
155
+ // row, outside fenced examples — owes a row. An id a sentence, a scenario
156
+ // or a code span merely mentions does not (ADR-0036): demanding one made
157
+ // authors reword specs around the gate.
158
+ const declaredIds = (0, SpecSections_1.requirementSections)((0, QuotedText_1.withoutFences)(opts.specContent)).filter((id) => /^REQ-\d+$/.test(id));
159
+ for (const reqId of new Set(declaredIds)) {
154
160
  if (!requirements.has(reqId)) {
155
161
  report.addError("strict_tdd_violation", `[TDD-3] Requirement ${reqId} found in spec.md but has no row in traceability.md`, { target: "TDD-3" });
156
162
  }