@rsaglobaltech/specgate 0.20.0 → 0.22.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 (273) hide show
  1. package/CHANGELOG.md +208 -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/BriefCards.js +320 -0
  14. package/dist/packages/core/src/domain/BriefCards.js.map +1 -0
  15. package/dist/packages/core/src/domain/ChangeTemplates.js +19 -0
  16. package/dist/packages/core/src/domain/ChangeTemplates.js.map +1 -1
  17. package/dist/packages/core/src/domain/DeltaSpec.js +14 -7
  18. package/dist/packages/core/src/domain/DeltaSpec.js.map +1 -1
  19. package/dist/packages/core/src/domain/DerivedMatrix.js +2 -2
  20. package/dist/packages/core/src/domain/DerivedMatrix.js.map +1 -1
  21. package/dist/packages/core/src/domain/Diagnostic.js.map +1 -1
  22. package/dist/packages/core/src/domain/DoneVerification.js +3 -3
  23. package/dist/packages/core/src/domain/DoneVerification.js.map +1 -1
  24. package/dist/packages/core/src/domain/DraftChecklist.js +6 -2
  25. package/dist/packages/core/src/domain/DraftChecklist.js.map +1 -1
  26. package/dist/packages/core/src/domain/GherkinQuality.js +5 -2
  27. package/dist/packages/core/src/domain/GherkinQuality.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 +41 -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/TicketText.js +337 -0
  44. package/dist/packages/core/src/domain/TicketText.js.map +1 -0
  45. package/dist/packages/core/src/domain/TraceabilityFormat.js.map +1 -1
  46. package/dist/packages/core/src/domain/TraceabilityMatrix.js +3 -3
  47. package/dist/packages/core/src/domain/TraceabilityMatrix.js.map +1 -1
  48. package/dist/packages/core/src/domain/YamlLite.js +3 -0
  49. package/dist/packages/core/src/domain/YamlLite.js.map +1 -1
  50. package/dist/packages/core/src/infrastructure/ChangeWorkspace.js +7 -3
  51. package/dist/packages/core/src/infrastructure/ChangeWorkspace.js.map +1 -1
  52. package/dist/packages/core/src/infrastructure/ConsoleReporter.js.map +1 -1
  53. package/dist/packages/core/src/infrastructure/DiskLanguageRepository.js +1 -0
  54. package/dist/packages/core/src/infrastructure/DiskLanguageRepository.js.map +1 -1
  55. package/dist/packages/core/src/infrastructure/DiskPackDeltaRepository.js +3 -1
  56. package/dist/packages/core/src/infrastructure/DiskPackDeltaRepository.js.map +1 -1
  57. package/dist/packages/core/src/infrastructure/DiskPackRepository.js +0 -2
  58. package/dist/packages/core/src/infrastructure/DiskPackRepository.js.map +1 -1
  59. package/dist/packages/core/src/infrastructure/DiskRequirementGraphRepository.js.map +1 -1
  60. package/dist/packages/core/src/infrastructure/GitContributionStager.js +0 -4
  61. package/dist/packages/core/src/infrastructure/GitContributionStager.js.map +1 -1
  62. package/dist/packages/core/src/infrastructure/GitMergeDriver.js +0 -3
  63. package/dist/packages/core/src/infrastructure/GitMergeDriver.js.map +1 -1
  64. package/dist/packages/core/src/infrastructure/HarnessConfigFile.js +7 -13
  65. package/dist/packages/core/src/infrastructure/HarnessConfigFile.js.map +1 -1
  66. package/dist/packages/core/src/infrastructure/IdsAcrossBranches.js +48 -0
  67. package/dist/packages/core/src/infrastructure/IdsAcrossBranches.js.map +1 -0
  68. package/dist/packages/core/src/infrastructure/PackChangeDeposit.js.map +1 -1
  69. package/dist/packages/core/src/infrastructure/RemotePackResolver.js +0 -7
  70. package/dist/packages/core/src/infrastructure/RemotePackResolver.js.map +1 -1
  71. package/dist/packages/core/src/infrastructure/SpecopsConfigFile.js.map +1 -1
  72. package/dist/packages/core/test/unit/declared-artifacts.test.js +6 -2
  73. package/dist/packages/core/test/unit/declared-artifacts.test.js.map +1 -1
  74. package/dist/packages/core/test/unit/derived-matrix.test.js +3 -0
  75. package/dist/packages/core/test/unit/derived-matrix.test.js.map +1 -1
  76. package/dist/packages/core/test/unit/done-verification.test.js +3 -0
  77. package/dist/packages/core/test/unit/done-verification.test.js.map +1 -1
  78. package/dist/packages/core/test/unit/matrix-dependencies.test.js.map +1 -1
  79. package/dist/packages/core/test/unit/reconciliation.test.js.map +1 -1
  80. package/dist/packages/core/test/unit/requirement-readiness.test.js +2 -2
  81. package/dist/packages/core/test/unit/requirement-readiness.test.js.map +1 -1
  82. package/dist/packages/core/test/unit/resume-state.test.js +4 -1
  83. package/dist/packages/core/test/unit/resume-state.test.js.map +1 -1
  84. package/dist/packages/core/test/unit/run-budget.test.js +3 -0
  85. package/dist/packages/core/test/unit/run-budget.test.js.map +1 -1
  86. package/dist/packages/core/test/unit/untouched-delta.test.js +52 -0
  87. package/dist/packages/core/test/unit/untouched-delta.test.js.map +1 -0
  88. package/dist/packages/core/test/unit/validate-project.test.js +6 -2
  89. package/dist/packages/core/test/unit/validate-project.test.js.map +1 -1
  90. package/dist/packages/mcp-spec-driven/src/server.js +4 -3
  91. package/dist/packages/mcp-spec-driven/src/server.js.map +1 -1
  92. package/dist/packages/mcp-spec-driven/src/tools.js.map +1 -1
  93. package/dist/scripts/agents/commands.js +52 -38
  94. package/dist/scripts/agents/commands.js.map +1 -1
  95. package/dist/scripts/agents/contract-file.js +44 -0
  96. package/dist/scripts/agents/contract-file.js.map +1 -1
  97. package/dist/scripts/agents/detect.js.map +1 -1
  98. package/dist/scripts/agents/init.js.map +1 -1
  99. package/dist/scripts/alm/cli.js +16 -5
  100. package/dist/scripts/alm/cli.js.map +1 -1
  101. package/dist/scripts/alm/core.js +1 -0
  102. package/dist/scripts/alm/core.js.map +1 -1
  103. package/dist/scripts/alm/port.js +1 -1
  104. package/dist/scripts/alm/port.js.map +1 -1
  105. package/dist/scripts/alm/providers/http-client.js +46 -3
  106. package/dist/scripts/alm/providers/http-client.js.map +1 -1
  107. package/dist/scripts/alm/providers/jira.js +108 -32
  108. package/dist/scripts/alm/providers/jira.js.map +1 -1
  109. package/dist/scripts/apply.js +9 -0
  110. package/dist/scripts/apply.js.map +1 -0
  111. package/dist/scripts/archive.js +9 -0
  112. package/dist/scripts/archive.js.map +1 -0
  113. package/dist/scripts/change/archive.js.map +1 -1
  114. package/dist/scripts/change/artifacts.js.map +1 -1
  115. package/dist/scripts/change/delta.js +0 -8
  116. package/dist/scripts/change/delta.js.map +1 -1
  117. package/dist/scripts/change/instructions.js +9 -11
  118. package/dist/scripts/change/instructions.js.map +1 -1
  119. package/dist/scripts/cli/commands/alm/PrCommand.js +198 -0
  120. package/dist/scripts/cli/commands/alm/PrCommand.js.map +1 -0
  121. package/dist/scripts/cli/commands/alm/PullCommand.js +4 -2
  122. package/dist/scripts/cli/commands/alm/PullCommand.js.map +1 -1
  123. package/dist/scripts/cli/commands/change/ChangeCommand.js +119 -19
  124. package/dist/scripts/cli/commands/change/ChangeCommand.js.map +1 -1
  125. package/dist/scripts/cli/commands/change/TicketCommand.js +657 -0
  126. package/dist/scripts/cli/commands/change/TicketCommand.js.map +1 -0
  127. package/dist/scripts/cli/commands/config/ConfigSetCommand.js +1 -1
  128. package/dist/scripts/cli/commands/config/ConfigSetCommand.js.map +1 -1
  129. package/dist/scripts/cli/commands/harness/RunCommand.js +225 -35
  130. package/dist/scripts/cli/commands/harness/RunCommand.js.map +1 -1
  131. package/dist/scripts/cli/commands/mcp/McpInstallCommand.js +1 -0
  132. package/dist/scripts/cli/commands/mcp/McpInstallCommand.js.map +1 -1
  133. package/dist/scripts/cli/commands/pack/BundlePackCommand.js +2 -1
  134. package/dist/scripts/cli/commands/pack/BundlePackCommand.js.map +1 -1
  135. package/dist/scripts/cli/commands/pack/ExpandDomainPackCommand.js +32 -17
  136. package/dist/scripts/cli/commands/pack/ExpandDomainPackCommand.js.map +1 -1
  137. package/dist/scripts/cli/commands/pack/InferPackCommand.js +8 -5
  138. package/dist/scripts/cli/commands/pack/InferPackCommand.js.map +1 -1
  139. package/dist/scripts/cli/commands/pack/LintPackCommand.js +36 -44
  140. package/dist/scripts/cli/commands/pack/LintPackCommand.js.map +1 -1
  141. package/dist/scripts/cli/commands/pack/pack-args.js.map +1 -1
  142. package/dist/scripts/cli/commands/project/AddCommand.js.map +1 -1
  143. package/dist/scripts/cli/commands/project/AdoptCommand.js +62 -2
  144. package/dist/scripts/cli/commands/project/AdoptCommand.js.map +1 -1
  145. package/dist/scripts/cli/commands/project/InitFromPackCommand.js.map +1 -1
  146. package/dist/scripts/cli/commands/project/InitProjectCommand.js +2 -1
  147. package/dist/scripts/cli/commands/project/InitProjectCommand.js.map +1 -1
  148. package/dist/scripts/cli/commands/project/OnboardCommand.js +40 -4
  149. package/dist/scripts/cli/commands/project/OnboardCommand.js.map +1 -1
  150. package/dist/scripts/cli/commands/project/UpdateCommand.js +4 -0
  151. package/dist/scripts/cli/commands/project/UpdateCommand.js.map +1 -1
  152. package/dist/scripts/cli/commands/project/WizardCommand.js.map +1 -1
  153. package/dist/scripts/cli/commands/quality/CheckCommand.js +86 -10
  154. package/dist/scripts/cli/commands/quality/CheckCommand.js.map +1 -1
  155. package/dist/scripts/cli/commands/quality/DoctorCommand.js +8 -4
  156. package/dist/scripts/cli/commands/quality/DoctorCommand.js.map +1 -1
  157. package/dist/scripts/cli/commands/quality/FixCommand.js.map +1 -1
  158. package/dist/scripts/cli/commands/quality/LicenseCheckCommand.js +3 -1
  159. package/dist/scripts/cli/commands/quality/LicenseCheckCommand.js.map +1 -1
  160. package/dist/scripts/cli/commands/quality/ReportCommand.js +8 -3
  161. package/dist/scripts/cli/commands/quality/ReportCommand.js.map +1 -1
  162. package/dist/scripts/cli/commands/quality/ValidateSpecsCommand.js +39 -30
  163. package/dist/scripts/cli/commands/quality/ValidateSpecsCommand.js.map +1 -1
  164. package/dist/scripts/cli/commands/quality/VerifyCommand.js +3 -2
  165. package/dist/scripts/cli/commands/quality/VerifyCommand.js.map +1 -1
  166. package/dist/scripts/cli/commands/spec/DoneCommand.js +182 -77
  167. package/dist/scripts/cli/commands/spec/DoneCommand.js.map +1 -1
  168. package/dist/scripts/cli/commands/spec/DraftCommand.js +292 -56
  169. package/dist/scripts/cli/commands/spec/DraftCommand.js.map +1 -1
  170. package/dist/scripts/cli/commands/spec/ExploreCommand.js +224 -0
  171. package/dist/scripts/cli/commands/spec/ExploreCommand.js.map +1 -0
  172. package/dist/scripts/cli/commands/spec/MatrixCommand.js +35 -5
  173. package/dist/scripts/cli/commands/spec/MatrixCommand.js.map +1 -1
  174. package/dist/scripts/cli/commands/spec/NewCommand.js +4 -4
  175. package/dist/scripts/cli/commands/spec/NewCommand.js.map +1 -1
  176. package/dist/scripts/cli/commands/spec/PetCommand.js.map +1 -1
  177. package/dist/scripts/cli/commands/spec/PlanCommand.js +8 -3
  178. package/dist/scripts/cli/commands/spec/PlanCommand.js.map +1 -1
  179. package/dist/scripts/cli/commands/spec/ReqCommand.js +8 -9
  180. package/dist/scripts/cli/commands/spec/ReqCommand.js.map +1 -1
  181. package/dist/scripts/cli/commands/spec/StatusCommand.js +105 -26
  182. package/dist/scripts/cli/commands/spec/StatusCommand.js.map +1 -1
  183. package/dist/scripts/cli/commands/spec/StudioCommand.js +76 -4
  184. package/dist/scripts/cli/commands/spec/StudioCommand.js.map +1 -1
  185. package/dist/scripts/cli/commands/specops/ContributeCommand.js +6 -2
  186. package/dist/scripts/cli/commands/specops/ContributeCommand.js.map +1 -1
  187. package/dist/scripts/cli/commands/specops/DiffCommand.js +19 -5
  188. package/dist/scripts/cli/commands/specops/DiffCommand.js.map +1 -1
  189. package/dist/scripts/cli/commands/specops/SyncCommand.js +4 -2
  190. package/dist/scripts/cli/commands/specops/SyncCommand.js.map +1 -1
  191. package/dist/scripts/docs/build-site.js.map +1 -1
  192. package/dist/scripts/docs/icons.js +0 -6
  193. package/dist/scripts/docs/icons.js.map +1 -1
  194. package/dist/scripts/docs/journey-storyboard.js +56 -47
  195. package/dist/scripts/docs/journey-storyboard.js.map +1 -1
  196. package/dist/scripts/docs/nav.js +5 -0
  197. package/dist/scripts/docs/nav.js.map +1 -1
  198. package/dist/scripts/docs/record-journey.js +93 -30
  199. package/dist/scripts/docs/record-journey.js.map +1 -1
  200. package/dist/scripts/docs/record-terminal.js +1 -1
  201. package/dist/scripts/docs/record-terminal.js.map +1 -1
  202. package/dist/scripts/docs/terminal-storyboard.js +24 -21
  203. package/dist/scripts/docs/terminal-storyboard.js.map +1 -1
  204. package/dist/scripts/draft/brief-check.js +34 -0
  205. package/dist/scripts/draft/brief-check.js.map +1 -0
  206. package/dist/scripts/draft/brief-setup.js +190 -24
  207. package/dist/scripts/draft/brief-setup.js.map +1 -1
  208. package/dist/scripts/draft/confined-agent.js +1 -0
  209. package/dist/scripts/draft/confined-agent.js.map +1 -1
  210. package/dist/scripts/draft/drafting-guide.js +49 -6
  211. package/dist/scripts/draft/drafting-guide.js.map +1 -1
  212. package/dist/scripts/draft/ticket-guide.js +129 -0
  213. package/dist/scripts/draft/ticket-guide.js.map +1 -0
  214. package/dist/scripts/explore.js +10 -0
  215. package/dist/scripts/explore.js.map +1 -0
  216. package/dist/scripts/gen_mcp_tools.js +15 -7
  217. package/dist/scripts/gen_mcp_tools.js.map +1 -1
  218. package/dist/scripts/harness/events.js +202 -0
  219. package/dist/scripts/harness/events.js.map +1 -0
  220. package/dist/scripts/harness/init.js +6 -2
  221. package/dist/scripts/harness/init.js.map +1 -1
  222. package/dist/scripts/harness/run.js +2 -1
  223. package/dist/scripts/harness/run.js.map +1 -1
  224. package/dist/scripts/lib/agent.js.map +1 -1
  225. package/dist/scripts/lib/base-ids.js +179 -0
  226. package/dist/scripts/lib/base-ids.js.map +1 -0
  227. package/dist/scripts/lib/capability-specs.js.map +1 -1
  228. package/dist/scripts/lib/diagnostics.js +0 -10
  229. package/dist/scripts/lib/diagnostics.js.map +1 -1
  230. package/dist/scripts/lib/harness-events.js +74 -0
  231. package/dist/scripts/lib/harness-events.js.map +1 -0
  232. package/dist/scripts/lib/in-flight.js +191 -0
  233. package/dist/scripts/lib/in-flight.js.map +1 -0
  234. package/dist/scripts/lib/live-model.js +145 -0
  235. package/dist/scripts/lib/live-model.js.map +1 -0
  236. package/dist/scripts/lib/live-page.js +89 -0
  237. package/dist/scripts/lib/live-page.js.map +1 -0
  238. package/dist/scripts/lib/monorepo-fanout.js.map +1 -1
  239. package/dist/scripts/lib/placeholders.js.map +1 -1
  240. package/dist/scripts/lib/project-root.js.map +1 -1
  241. package/dist/scripts/lib/run-with-deadline.js +6 -1
  242. package/dist/scripts/lib/run-with-deadline.js.map +1 -1
  243. package/dist/scripts/lib/surface.js +95 -30
  244. package/dist/scripts/lib/surface.js.map +1 -1
  245. package/dist/scripts/lib/ticket-keys.js +140 -0
  246. package/dist/scripts/lib/ticket-keys.js.map +1 -0
  247. package/dist/scripts/lib/tour.js +149 -0
  248. package/dist/scripts/lib/tour.js.map +1 -0
  249. package/dist/scripts/propose.js +27 -0
  250. package/dist/scripts/propose.js.map +1 -0
  251. package/dist/scripts/schema/cli.js +1 -1
  252. package/dist/scripts/schema/cli.js.map +1 -1
  253. package/dist/scripts/schema/registry.js +1 -0
  254. package/dist/scripts/schema/registry.js.map +1 -1
  255. package/dist/scripts/specops/add.js +2 -1
  256. package/dist/scripts/specops/add.js.map +1 -1
  257. package/dist/scripts/specops/against_lock.js +22 -25
  258. package/dist/scripts/specops/against_lock.js.map +1 -1
  259. package/dist/scripts/specops/as_change.js.map +1 -1
  260. package/dist/scripts/specops/lock.js +0 -5
  261. package/dist/scripts/specops/lock.js.map +1 -1
  262. package/dist/scripts/specops/manifest.js +0 -8
  263. package/dist/scripts/specops/manifest.js.map +1 -1
  264. package/dist/scripts/specops/remove.js +2 -1
  265. package/dist/scripts/specops/remove.js.map +1 -1
  266. package/dist/scripts/specops/verify.js.map +1 -1
  267. package/dist/scripts/vcs/github-pr.js +88 -0
  268. package/dist/scripts/vcs/github-pr.js.map +1 -0
  269. package/package.json +1 -1
  270. package/templates/adopt/spec.md.tpl +1 -1
  271. package/templates/adopt/traceability.md.tpl +1 -1
  272. package/templates/base/AGENTS.md.tpl +14 -7
  273. package/templates/harness/prompt-prefix.md.tpl +1 -1
@@ -39,7 +39,6 @@ exports.baselineDir = baselineDir;
39
39
  exports.sha256 = sha256;
40
40
  exports.newManifest = newManifest;
41
41
  exports.readManifest = readManifest;
42
- exports.writeManifest = writeManifest;
43
42
  exports.readBaseline = readBaseline;
44
43
  exports.snapshotBaseline = snapshotBaseline;
45
44
  const DiskManifestRepository_1 = require("../../packages/core/src/infrastructure/DiskManifestRepository");
@@ -66,13 +65,6 @@ function readManifest(projectDir) {
66
65
  const manifest = repo.readManifest();
67
66
  return manifest ? manifest.toJSON() : null;
68
67
  }
69
- function writeManifest(projectDir, manifestJson, options = {}) {
70
- const repo = new DiskManifestRepository_1.DiskManifestRepository(projectDir);
71
- const manifest = manifestJson
72
- ? new SpecopsManifest_1.SpecopsManifest(manifestJson.specops_manifest_version, manifestJson.packs || {})
73
- : SpecopsManifest_1.SpecopsManifest.createEmpty();
74
- return repo.writeManifest(manifest, options);
75
- }
76
68
  function readBaseline(projectDir, packId, rel) {
77
69
  const repo = new DiskManifestRepository_1.DiskManifestRepository(projectDir);
78
70
  return repo.readBaseline(packId, rel);
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../scripts/specops/manifest.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,oCAEC;AAED,kCAEC;AAED,wBAEC;AAED,kCAEC;AAMD,oCAIC;AAED,sCAWC;AAED,oCAGC;AAED,4CAiBC;AAtED,0GAAuG;AACvG,oFAAgG;AAChG,gDAAkC;AAErB,QAAA,WAAW,GAAG,iCAAe,CAAC,OAAO,CAAC;AACtC,QAAA,gBAAgB,GAAG,iCAAe,CAAC,gBAAgB,CAAC;AACpD,QAAA,iBAAiB,GAAG,iCAAe,CAAC,QAAQ,CAAC;AAC7C,QAAA,gBAAgB,GAAG,iCAAe,CAAC,wBAAwB,CAAC;AAEzE,SAAgB,YAAY,CAAC,UAAkB;IAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,mBAAW,EAAE,yBAAiB,CAAC,CAAC;AAC/D,CAAC;AAED,SAAgB,WAAW,CAAC,UAAkB,EAAE,MAAc;IAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,mBAAW,EAAE,wBAAgB,EAAE,MAAM,CAAC,CAAC;AACtE,CAAC;AAED,SAAgB,MAAM,CAAC,OAAe;IACpC,OAAO,iCAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,WAAW;IACzB,OAAO,iCAAe,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC;AAChD,CAAC;AAMD,SAAgB,YAAY,CAAC,UAAkB;IAC7C,MAAM,IAAI,GAAG,IAAI,+CAAsB,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IACrC,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC;AAED,SAAgB,aAAa,CAC3B,UAAkB,EAClB,YAAiB,EACjB,UAAwB,EAAE;IAE1B,MAAM,IAAI,GAAG,IAAI,+CAAsB,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,YAAY;QAC3B,CAAC,CAAC,IAAI,iCAAe,CAAC,YAAY,CAAC,wBAAwB,EAAE,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC;QACtF,CAAC,CAAC,iCAAe,CAAC,WAAW,EAAE,CAAC;IAElC,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED,SAAgB,YAAY,CAAC,UAAkB,EAAE,MAAc,EAAE,GAAW;IAC1E,MAAM,IAAI,GAAG,IAAI,+CAAsB,CAAC,UAAU,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACxC,CAAC;AAED,SAAgB,gBAAgB,CAC9B,UAAkB,EAClB,MAAc,EACd,OAAoD,EACpD,OAAgC,EAAE,EAClC,UAAwB,EAAE;IAE1B,MAAM,IAAI,GAAG,IAAI,+CAAsB,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IAEvE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,iCAAe,CAAC,WAAW,EAAE,CAAC;QACtE,QAAQ,CAAC,kBAAkB,CAAC,MAAM,EAAG,IAAI,CAAC,OAAkB,IAAI,EAAE,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QACnF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../scripts/specops/manifest.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,oCAEC;AAED,kCAEC;AAED,wBAEC;AAQD,kCAEC;AAMD,oCAIC;AAED,oCAGC;AAED,4CAiBC;AAnED,0GAAuG;AACvG,oFAIwD;AACxD,gDAAkC;AAErB,QAAA,WAAW,GAAG,iCAAe,CAAC,OAAO,CAAC;AACtC,QAAA,gBAAgB,GAAG,iCAAe,CAAC,gBAAgB,CAAC;AACpD,QAAA,iBAAiB,GAAG,iCAAe,CAAC,QAAQ,CAAC;AAC7C,QAAA,gBAAgB,GAAG,iCAAe,CAAC,wBAAwB,CAAC;AAEzE,SAAgB,YAAY,CAAC,UAAkB;IAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,mBAAW,EAAE,yBAAiB,CAAC,CAAC;AAC/D,CAAC;AAED,SAAgB,WAAW,CAAC,UAAkB,EAAE,MAAc;IAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,mBAAW,EAAE,wBAAgB,EAAE,MAAM,CAAC,CAAC;AACtE,CAAC;AAED,SAAgB,MAAM,CAAC,OAAe;IACpC,OAAO,iCAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC;AAQD,SAAgB,WAAW;IACzB,OAAO,iCAAe,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC;AAChD,CAAC;AAMD,SAAgB,YAAY,CAAC,UAAkB;IAC7C,MAAM,IAAI,GAAG,IAAI,+CAAsB,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IACrC,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC;AAED,SAAgB,YAAY,CAAC,UAAkB,EAAE,MAAc,EAAE,GAAW;IAC1E,MAAM,IAAI,GAAG,IAAI,+CAAsB,CAAC,UAAU,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACxC,CAAC;AAED,SAAgB,gBAAgB,CAC9B,UAAkB,EAClB,MAAc,EACd,OAAoD,EACpD,OAAgC,EAAE,EAClC,UAAwB,EAAE;IAE1B,MAAM,IAAI,GAAG,IAAI,+CAAsB,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IAEvE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,iCAAe,CAAC,WAAW,EAAE,CAAC;QACtE,QAAQ,CAAC,kBAAkB,CAAC,MAAM,EAAG,IAAI,CAAC,OAAkB,IAAI,EAAE,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QACnF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -13,6 +13,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.RemoveCommand = void 0;
14
14
  exports.parseArgs = parseArgs;
15
15
  const project_root_1 = require("../lib/project-root");
16
+ const diagnostics_1 = require("../lib/diagnostics");
16
17
  const DiskLockfileRepository_1 = require("../../packages/core/src/infrastructure/DiskLockfileRepository");
17
18
  const RemovePackUseCase_1 = require("../../packages/core/src/application/RemovePackUseCase");
18
19
  const Lockfile_1 = require("../../packages/core/src/domain/Lockfile");
@@ -68,7 +69,7 @@ class RemoveCommand extends command_1.BaseCommand {
68
69
  projectDir = (0, project_root_1.resolveProjectDir)(opts.projectDir, { requireSentinel: true });
69
70
  }
70
71
  catch (err) {
71
- process.stderr.write(`${err.message}\n`);
72
+ process.stderr.write(`${(0, diagnostics_1.errorMessage)(err)}\n`);
72
73
  process.exit(2);
73
74
  }
74
75
  const repo = new DiskLockfileRepository_1.DiskLockfileRepository(projectDir);
@@ -1 +1 @@
1
- {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../scripts/specops/remove.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../scripts/specops/remove.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../scripts/specops/verify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../scripts/specops/verify.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBH,8CAeC;AAMD,gDAUC;AAcD,gDAcC;AAMD,sDAmBC;AA1GD,4CAA8B;AAC9B,gDAAkC;AAClC,oDAAsC;AACtC,2DAA+C;AAC/C,sEAAwE;AAExE,SAAS,SAAS,CAAC,GAAW;IAC5B,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACjE,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;YAAE,SAAS;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,KAAK,CAAC,WAAW,EAAE;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;;YACjD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,OAAe;IAC/C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,uCAAuC,OAAO,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC;SAC7B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACnF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACzC,KAAK,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,KAAK,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,UAAU,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,UAAkB;IACnD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;IAC7D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC;IAClE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAA,wBAAa,EAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC;QACzD,OAAO,EAAE,kBAAkB,EAAE,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC;IACvC,CAAC;AACH,CAAC;AASD;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,MAAc,EAAE,OAAe;IAChE,MAAM,GAAG,GAAG,IAAA,8BAAS,EAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1F,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IAC9E,CAAC;IACD,MAAM,MAAM,GAAG,IAAA,8BAAS,EAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/F,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IACpF,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;KAC5D,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,qBAAqB,CACnC,SAAmE,EACnE,MAAc,EACd,OAAe,EACf,YAAoB;IAEpB,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,OAAO,KAAK,OAAO;QAAE,OAAO;IAC7E,IAAI,SAAS,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CACb,mCAAmC,MAAM,IAAI,OAAO,KAAK;YACvD,qBAAqB,SAAS,CAAC,MAAM,IAAI;YACzC,qBAAqB,YAAY,IAAI;YACrC,0EAA0E;YAC1E,4CAA4C;YAC5C,2EAA2E;YAC3E,yEAAyE;YACzE,oDAAoD,CACvD,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ /**
3
+ * One pull request per ticket, on GitHub (ADR-0039 §4).
4
+ *
5
+ * The pull request belongs to the repository, not to the ALM: this lives
6
+ * outside `scripts/alm/`, whose port still only creates, reads, closes and
7
+ * lists issues. It opens or updates a pull request, and nothing else — no
8
+ * merge, no close, no branch deletion. The token comes from the environment
9
+ * variable `pr.token_env` names and is never printed.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.prConfig = prConfig;
13
+ exports.mergeBody = mergeBody;
14
+ exports.openOrUpdatePr = openOrUpdatePr;
15
+ const http_client_1 = require("../alm/providers/http-client");
16
+ /** The `pr:` block of `alm.config.yaml`, checked; throws with a fix. */
17
+ function prConfig(raw) {
18
+ const pr = (raw && typeof raw === "object" ? raw : {});
19
+ const provider = String(pr.provider ?? "github");
20
+ if (provider !== "github") {
21
+ throw new Error(`pr.provider '${provider}' is not supported.\nFix: set pr.provider: github.`);
22
+ }
23
+ const repo = String(pr.repo ?? "");
24
+ if (!/^[\w.-]+\/[\w.-]+$/.test(repo)) {
25
+ throw new Error("alm.config.yaml has no pr.repo.\nFix: add\npr:\n provider: github\n repo: <owner>/<repo>\n base: develop\n token_env: GITHUB_TOKEN");
26
+ }
27
+ const apiUrl = String(pr.base_url ?? "https://api.github.com").replace(/\/$/, "");
28
+ (0, http_client_1.assertSecureUrl)(apiUrl, "pr.base_url");
29
+ return {
30
+ repo,
31
+ base: String(pr.base ?? "develop"),
32
+ tokenEnv: String(pr.token_env ?? "GITHUB_TOKEN"),
33
+ apiUrl,
34
+ };
35
+ }
36
+ const BLOCK = /<!-- specgate:pr [^>]*-->[\s\S]*?<!-- \/specgate:pr -->/;
37
+ /** The block's opening marker, its closer deleted: everything after it was ours. */
38
+ const OPENED = /<!-- specgate:pr [^>]*-->[\s\S]*$/;
39
+ /** The description with Specgate's block replaced, or added after what is there. */
40
+ function mergeBody(current, block) {
41
+ if (BLOCK.test(current))
42
+ return current.replace(BLOCK, () => block);
43
+ if (OPENED.test(current))
44
+ return current.replace(OPENED, () => block);
45
+ return current.trim() ? `${current.trimEnd()}\n\n${block}` : block;
46
+ }
47
+ async function openOrUpdatePr(cfg, pr, fetchImpl = globalThis.fetch) {
48
+ const token = process.env[cfg.tokenEnv];
49
+ if (!token) {
50
+ throw new Error(`Environment variable ${cfg.tokenEnv} is not set.\n` +
51
+ "Fix: export a token that may write pull requests to this repository " +
52
+ "(a fine-grained token: Contents and Pull requests, read and write).");
53
+ }
54
+ const headers = {
55
+ Authorization: `Bearer ${token}`,
56
+ Accept: "application/vnd.github+json",
57
+ "Content-Type": "application/json",
58
+ "X-GitHub-Api-Version": "2022-11-28",
59
+ };
60
+ const call = async (path, what, init = {}) => {
61
+ const res = await fetchImpl(`${cfg.apiUrl}${path}`, { ...init, headers });
62
+ if (!res.ok) {
63
+ const text = await res.text().catch(() => "");
64
+ throw new Error(`GitHub: ${what} failed: HTTP ${res.status} ${text.slice(0, 300)}`);
65
+ }
66
+ return (await res.json());
67
+ };
68
+ const owner = cfg.repo.split("/")[0];
69
+ const open = await call(`/repos/${cfg.repo}/pulls?head=${encodeURIComponent(`${owner}:${pr.head}`)}` +
70
+ `&base=${encodeURIComponent(cfg.base)}&state=open`, `list the pull requests of ${pr.head}`);
71
+ const mine = open.find((p) => !p.base || p.base.ref === cfg.base);
72
+ if (mine) {
73
+ // What a person wrote stays: the title, once it names the ticket, and
74
+ // every line outside Specgate's own block of the description.
75
+ const patch = { body: mergeBody(mine.body ?? "", pr.body) };
76
+ const key = pr.key.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
77
+ if (!new RegExp(`(^|[^A-Z0-9_-])${key}(?![0-9])`).test(mine.title ?? ""))
78
+ patch.title = pr.title;
79
+ const updated = await call(`/repos/${cfg.repo}/pulls/${mine.number}`, `update pull request #${mine.number}`, { method: "PATCH", body: JSON.stringify(patch) });
80
+ return { number: updated.number, url: updated.html_url, action: "updated" };
81
+ }
82
+ const created = await call(`/repos/${cfg.repo}/pulls`, `open a pull request for ${pr.head}`, {
83
+ method: "POST",
84
+ body: JSON.stringify({ title: pr.title, head: pr.head, base: cfg.base, body: pr.body }),
85
+ });
86
+ return { number: created.number, url: created.html_url, action: "created" };
87
+ }
88
+ //# sourceMappingURL=github-pr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-pr.js","sourceRoot":"","sources":["../../../scripts/vcs/github-pr.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rsaglobaltech/specgate",
3
- "version": "0.20.0",
3
+ "version": "0.22.0",
4
4
  "description": "Specs as executable contracts — requirements, scenarios and traceability that CI enforces.",
5
5
  "license": "MIT",
6
6
  "type": "commonjs",
@@ -3,7 +3,7 @@
3
3
  > Adopted into Spec-Driven Development on an existing codebase (brownfield).
4
4
  > `specgate new "<title>"` adds the next `REQ-NNN`: a draft section below and
5
5
  > a tagged scenario under `features/` — rewrite both. A test that mentions the
6
- > id is linked to it; `specgate done REQ-NNN` closes it once the gate passes.
6
+ > id is linked to it; `specgate apply REQ-NNN` closes it once the gate passes.
7
7
  > Existing behaviour is retro-filled requirement by requirement — start with
8
8
  > the ones your team is actively changing.
9
9
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Every requirement in `spec.md` maps to a scenario, its feature file, and the
4
4
  artifacts that implement and verify it. `specgate plan` lists
5
- what is still missing; `specgate done REQ-NNN` flips a row to
5
+ what is still missing; `specgate apply REQ-NNN` flips a row to
6
6
  Implemented.
7
7
 
8
8
  | Requirement | Scenario ID | Feature file | Use Case | Command/Query | Aggregate | Event | Technical artifact | Test artifact | Status |
@@ -8,20 +8,27 @@ This project uses spec-driven development with `specgate`. `spec.md`,
8
8
 
9
9
  ## Work
10
10
 
11
+ The loop is propose → test → apply → archive:
12
+
11
13
  1. `specgate status` — what is left, and the next requirement.
12
- 2. Write the test first and name the requirement in it (`REQ-007`, and its
14
+ 2. New behaviour: `specgate propose <change-id>`, then write its delta.
15
+ 3. Write the test first and name the requirement in it (`REQ-007`, and its
13
16
  scenario `SCN-007a` when there is one). That mention is the link.
14
- 3. Implement until `specgate check` passes: specs, links, coverage, tests.
15
- 4. `specgate done REQ-007` — refused unless the gate passes.
17
+ 4. Implement until `specgate check` passes: specs, links, coverage, tests.
18
+ 5. `specgate apply REQ-007` — refused unless the gate passes.
19
+ 6. `specgate archive <change-id>` — only once every requirement in it is
20
+ applied, and only when the person reviewing the change says so.
16
21
 
17
22
  Each step in detail: the `/specgate:*` commands, or
18
23
  `specgate change instructions <artifact> --json`.
19
24
 
20
- ## From a plan or brief
25
+ ## From a brief or a Jira ticket
21
26
 
22
- `specgate draft` names the next module of `docs/brief.md`; `specgate draft
23
- <module>` opens it and writes `DRAFTING.md` — follow it, then re-run until
24
- "Ready to review". Never archive a draft yourself: a person reviews it.
27
+ `specgate propose --from-brief <module>` or `specgate propose --from-ticket
28
+ <KEY>` opens the draft and writes `DRAFTING.md` — follow it, then re-run until
29
+ "Ready to review". Never archive a draft yourself: a person reviews it. Never
30
+ edit a change's `ticket.md`; start every commit message with the ticket key
31
+ (`KAN-13 REQ-007: …`), and never use Smart Commits (`#done`): they write to Jira.
25
32
 
26
33
  ## Never
27
34
 
@@ -20,7 +20,7 @@ from a domain pack:
20
20
  stop and say so in your final message. Editing a scenario so your code
21
21
  passes is the one failure mode that makes this whole exercise worthless.
22
22
  - `docs/specs/**` — spec.md, the traceability matrix, domain model, use cases,
23
- commands, events, aggregates, ADRs. `specgate done` updates the matrix; you do
23
+ commands, events, aggregates, ADRs. `specgate apply` updates the matrix; you do
24
24
  not.
25
25
  - `AI_RULES.md`, `spec.md`, `.specops.lock`, `.specops/**`.
26
26