@rsaglobaltech/specgate 0.22.1 → 0.22.3
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.
- package/CHANGELOG.md +149 -54
- package/bin/specgate.ts +6 -1
- package/dist/bin/specgate.js +4 -1
- package/dist/bin/specgate.js.map +1 -1
- package/dist/packages/core/src/domain/BriefCards.js +13 -3
- package/dist/packages/core/src/domain/BriefCards.js.map +1 -1
- package/dist/packages/core/src/domain/CapabilitySpecMerge.js +83 -0
- package/dist/packages/core/src/domain/CapabilitySpecMerge.js.map +1 -0
- package/dist/packages/core/src/domain/DraftChecklist.js +19 -5
- package/dist/packages/core/src/domain/DraftChecklist.js.map +1 -1
- package/dist/packages/core/test/unit/capability-spec-merge.test.js +104 -0
- package/dist/packages/core/test/unit/capability-spec-merge.test.js.map +1 -0
- package/dist/scripts/agents/detect.js +1 -0
- package/dist/scripts/agents/detect.js.map +1 -1
- package/dist/scripts/agents/init.js +13 -0
- package/dist/scripts/agents/init.js.map +1 -1
- package/dist/scripts/cli/commands/change/ChangeCommand.js +21 -0
- package/dist/scripts/cli/commands/change/ChangeCommand.js.map +1 -1
- package/dist/scripts/cli/commands/change/TicketCommand.js +64 -6
- package/dist/scripts/cli/commands/change/TicketCommand.js.map +1 -1
- package/dist/scripts/cli/commands/harness/RunCommand.js +66 -0
- package/dist/scripts/cli/commands/harness/RunCommand.js.map +1 -1
- package/dist/scripts/cli/commands/quality/CheckCommand.js +15 -5
- package/dist/scripts/cli/commands/quality/CheckCommand.js.map +1 -1
- package/dist/scripts/cli/commands/quality/DoctorCommand.js +22 -8
- package/dist/scripts/cli/commands/quality/DoctorCommand.js.map +1 -1
- package/dist/scripts/cli/commands/spec/DoneCommand.js +85 -16
- package/dist/scripts/cli/commands/spec/DoneCommand.js.map +1 -1
- package/dist/scripts/cli/commands/spec/DraftCommand.js +94 -1
- package/dist/scripts/cli/commands/spec/DraftCommand.js.map +1 -1
- package/dist/scripts/draft/drafting-guide.js +4 -0
- package/dist/scripts/draft/drafting-guide.js.map +1 -1
- package/dist/scripts/draft/ticket-guide.js +4 -0
- package/dist/scripts/draft/ticket-guide.js.map +1 -1
- package/dist/scripts/harness/init.js +104 -26
- package/dist/scripts/harness/init.js.map +1 -1
- package/dist/scripts/harness/prompt.js +13 -1
- package/dist/scripts/harness/prompt.js.map +1 -1
- package/dist/scripts/lib/base-ids.js +7 -0
- package/dist/scripts/lib/base-ids.js.map +1 -1
- package/dist/scripts/lib/change-base.js +230 -0
- package/dist/scripts/lib/change-base.js.map +1 -0
- package/dist/scripts/lib/change-overlap.js +234 -0
- package/dist/scripts/lib/change-overlap.js.map +1 -0
- package/dist/scripts/lib/surface.js +6 -0
- package/dist/scripts/lib/surface.js.map +1 -1
- package/dist/scripts/lib/ticket-keys.js +48 -3
- package/dist/scripts/lib/ticket-keys.js.map +1 -1
- package/dist/scripts/merge-capability-spec.js +87 -0
- package/dist/scripts/merge-capability-spec.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<!-- specgate:allow-placeholders — release notes quote the {{VAR}} template syntax. -->
|
|
2
|
+
|
|
2
3
|
# Changelog
|
|
3
4
|
|
|
4
5
|
Notable changes, newest first. Follows [Keep a Changelog](https://keepachangelog.com/)
|
|
@@ -8,6 +9,102 @@ The release process is in [`docs/release-process.md`](docs/release-process.md).
|
|
|
8
9
|
|
|
9
10
|
## [Unreleased]
|
|
10
11
|
|
|
12
|
+
## [0.22.3] — 2026-10-25
|
|
13
|
+
|
|
14
|
+
What a first project from a brief tripped over, from statuses to the harness's first attempt: rehearsed on a Spanish brief with eight modules and a Next.js monorepo.
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
|
|
18
|
+
- **Approved owes a test, as the strict gate says** (REQ-173): `apply
|
|
19
|
+
--status Approved` wrote Approved on a requirement no test named, and the
|
|
20
|
+
next `validate --strict` failed TDD-1 for the whole project, so every
|
|
21
|
+
`harness run` went red whatever requirement it worked on. `apply` and `done`
|
|
22
|
+
now refuse it with the TDD-1 reason and the fix, as they already did for
|
|
23
|
+
Implemented; `--no-check` writes it and warns. An unknown `--status`, such
|
|
24
|
+
as `Aproved`, is refused instead of written.
|
|
25
|
+
- **A base the gate already fails is said before any agent runs** (REQ-175):
|
|
26
|
+
the harness gate judges the whole project, so a red base failed every
|
|
27
|
+
attempt for a reason outside its requirement, three paid attempts at a time.
|
|
28
|
+
`harness run` now validates the base first and stops when a requirement
|
|
29
|
+
outside the run is past Draft with no test (TDD-1, TDD-2), which no attempt
|
|
30
|
+
may fix; no branch is created, and `--skip-baseline` runs anyway.
|
|
31
|
+
- **A question that blocks nothing says so** (REQ-176): D7 refused every open
|
|
32
|
+
question without a requirement to block, so a question for later had to be
|
|
33
|
+
dropped. `none` (or `—`, `ninguno`) in its Blocks column makes it a warning;
|
|
34
|
+
an empty cell is still refused. `docs/from-a-brief.md` now shows how to
|
|
35
|
+
answer a question, step by step.
|
|
36
|
+
- **An open draft can reserve more ids** (REQ-177): a draft's ten ids could
|
|
37
|
+
not grow, and agents folded new behaviour into existing requirements to fit.
|
|
38
|
+
`propose --from-brief <module> --reserve <n>` on an open draft now grows its
|
|
39
|
+
ranges and rewrites DRAFTING.md, as long as its range is the last reserved.
|
|
40
|
+
- **Three papercuts on a first project** (REQ-178): B9 no longer warns about
|
|
41
|
+
the one actor of a brief written in the first person; `harness init` keeps
|
|
42
|
+
a `.harness/prompt-prefix.md` you edited instead of refusing, so it can be
|
|
43
|
+
re-run to register the merge drivers; and `validate` without a directory
|
|
44
|
+
names `specgate validate .` instead of printing the whole help.
|
|
45
|
+
|
|
46
|
+
## [0.22.2] — 2026-10-21
|
|
47
|
+
|
|
48
|
+
Parallel tickets that never overwrite each other, rehearsed end to end on a brownfield Maven project with Jira tickets and OpenCode.
|
|
49
|
+
|
|
50
|
+
### Fixed
|
|
51
|
+
|
|
52
|
+
- **A merge driver that is gone falls back to git's merge** (REQ-169): in a
|
|
53
|
+
project without `node_modules`, the drivers run this machine's copy of
|
|
54
|
+
specgate. With that copy gone, git stopped the merge with only your side in
|
|
55
|
+
the file, no markers, and `git add` dropped the other side's text. The
|
|
56
|
+
driver now says it is missing and merges by lines; `specgate doctor` warns.
|
|
57
|
+
Re-run `specgate harness init` in clones registered before this release.
|
|
58
|
+
- **`id_taken_on_base` only for ids the branch introduced** (REQ-120): a
|
|
59
|
+
requirement the base changed after the branch started was reported as an id
|
|
60
|
+
taken, with the advice to renumber it.
|
|
61
|
+
- **A local `develop` nobody updated is not the base** (REQ-148): `pr.base`
|
|
62
|
+
resolves to `origin/develop` unless the local branch already contains it,
|
|
63
|
+
and a ticket's branch no longer tracks its base. Behind origin, every
|
|
64
|
+
colleague's commit merged from `origin/develop` was reported as missing the
|
|
65
|
+
ticket key.
|
|
66
|
+
- **`check` compares ids with `pr.base`** (REQ-120): ticket keys were
|
|
67
|
+
measured from `develop` and ids from the remote's default, `main`, so an id
|
|
68
|
+
taken on `develop` and not yet released went unseen.
|
|
69
|
+
- **`harness init` keeps a generated matrix on `merge=union`**: it appended
|
|
70
|
+
the row driver after the union line, and git takes the last matching line,
|
|
71
|
+
so the matrix could stop a merge again (ADR-0036).
|
|
72
|
+
- **A ticket's branch starts from `develop` with gitflow** (REQ-148): from
|
|
73
|
+
`pr.base`, else the branch you are on, else the remote's default. A clone
|
|
74
|
+
whose default is `main` cut the branch from `origin/main`, without the
|
|
75
|
+
team's work on `develop`; `ticket_key_missing` measures from the same base.
|
|
76
|
+
- **Readable ids from German summaries** (REQ-161): `ß` → `ss`, `ä` → `ae`…;
|
|
77
|
+
"Groß-/Kleinschreibung" made `gro-kleinschreibung`.
|
|
78
|
+
|
|
79
|
+
### Added
|
|
80
|
+
|
|
81
|
+
- **`change_base_moved`** (REQ-168): a change records, in `based_on` in its
|
|
82
|
+
`change.yaml`, the text of each requirement it modifies or removes; `check`
|
|
83
|
+
warns and `archive` refuses when that requirement changed since, and `check`
|
|
84
|
+
warns before the branch has even brought the base in.
|
|
85
|
+
`change validate <change> --rebased` records the new text once the delta is
|
|
86
|
+
rewritten. When two tickets rewrote one requirement, the second used to
|
|
87
|
+
archive over the first with a green gate and no conflict.
|
|
88
|
+
- **Capability specs merge requirement by requirement** (REQ-166):
|
|
89
|
+
`harness init` registers a second git merge driver, `specgate-spec`, for
|
|
90
|
+
`docs/specs/capabilities/*/spec.md`, and `doctor` checks it. Two tickets
|
|
91
|
+
archiving into the same capability used to conflict on the whole file; only
|
|
92
|
+
a requirement both rewrote differently conflicts now.
|
|
93
|
+
- **OpenCode in `agents init`** (REQ-162): `/specgate-*` commands in
|
|
94
|
+
`.opencode/commands/`, detected from `.opencode/` or `opencode.json`.
|
|
95
|
+
- **Opening a ticket's change commits and pushes it** (REQ-165), so the ids it
|
|
96
|
+
reserved are visible to every other clone at once; the branch used to be
|
|
97
|
+
pushed empty, with the reservation left uncommitted on one disk.
|
|
98
|
+
- **`change_id_clash`** (REQ-164), and `propose --from-ticket` fetches
|
|
99
|
+
`origin` before reserving ids (REQ-163): two developers who opened tickets a
|
|
100
|
+
minute apart on two clones both reserved REQ-010.
|
|
101
|
+
- **`change_overlap`** (REQ-160): `check`, and the report on a change opened
|
|
102
|
+
from a ticket, warn when a requirement your open change modifies or removes
|
|
103
|
+
is also rewritten by another open change, on this branch or on any local or
|
|
104
|
+
remote-tracking branch not merged yet. Two tickets rewriting REQ-012 on two
|
|
105
|
+
branches used to surface as a git conflict at the second merge, or not at
|
|
106
|
+
all.
|
|
107
|
+
|
|
11
108
|
## [0.22.1] — 2026-10-20
|
|
12
109
|
|
|
13
110
|
Documentation a newcomer can follow, and the CLI's words brought in line with it.
|
|
@@ -18,9 +115,9 @@ Documentation a newcomer can follow, and the CLI's words brought in line with it
|
|
|
18
115
|
CLI and the first real end-to-end run on Jira Cloud and GitHub. Three
|
|
19
116
|
sources of work (a change, a brief, a Jira ticket) into one lifecycle of
|
|
20
117
|
four verbs; the recorded journeys run `propose`, `apply` and `archive`;
|
|
21
|
-
archive comes before the pull request everywhere. New pages:
|
|
22
|
-
|
|
23
|
-
in
|
|
118
|
+
archive comes before the pull request everywhere. New pages: _From a Jira
|
|
119
|
+
ticket_ for a team lead setting it up, and _An existing codebase, with work
|
|
120
|
+
in Jira_ (Maven profiles, a parent POM, Bitbucket and Jenkins).
|
|
24
121
|
- **The `/specgate:draft` agent command runs `propose --from-brief`**, and the
|
|
25
122
|
MCP write guard names `specgate propose <id>`.
|
|
26
123
|
|
|
@@ -66,7 +163,7 @@ ticket to Done, the board moved by its own automation.
|
|
|
66
163
|
### Changed
|
|
67
164
|
|
|
68
165
|
- **A draft is not opened over a broken brief.** `propose --from-brief
|
|
69
|
-
|
|
166
|
+
<module>` refuses with `brief_not_ready` while the brief has an error: an
|
|
70
167
|
empty body, an empty module section, a module without its section once the
|
|
71
168
|
brief uses sections, or rules without examples. A brief with no module
|
|
72
169
|
sections — a pasted email — drafts as before.
|
|
@@ -188,7 +285,7 @@ while it works (ADR-0037).
|
|
|
188
285
|
|
|
189
286
|
- The placeholder rule ignores code spans, and the vague-step rule code spans
|
|
190
287
|
and quoted text: `` `tool verify <module>` `` is a command, not a template.
|
|
191
|
-
- TDD-3 asks a matrix row for a requirement a spec
|
|
288
|
+
- TDD-3 asks a matrix row for a requirement a spec _declares_ (a heading or a
|
|
192
289
|
requirement table row outside fenced code), not for every id it mentions.
|
|
193
290
|
- A generated matrix is declared `merge=union` in `.gitattributes`: parallel
|
|
194
291
|
branches no longer conflict on it, and `check` regenerates it.
|
|
@@ -252,7 +349,7 @@ while it works (ADR-0037).
|
|
|
252
349
|
runtime dependencies; `SPECGATE_FORJA_CMD` points at another forja.
|
|
253
350
|
- **`specgate add usecase|entity|port`** in a forja project: the class where the
|
|
254
351
|
architecture expects it, its test and its wiring, through `forja add`; `add
|
|
255
|
-
|
|
352
|
+
usecase` also creates the requirement and names it in the test. Outside a forja
|
|
256
353
|
project it says to use `new`. In a forja project, `status` suggests it as the
|
|
257
354
|
next step for a requirement with no code.
|
|
258
355
|
- **`arch_cmd`: your architecture check in the gate** ([ADR-0028](docs/specs/adr/0028-architecture-conformance-is-part-of-the-gate.md), points 1–2).
|
|
@@ -388,8 +485,8 @@ while it works (ADR-0037).
|
|
|
388
485
|
`transfers`, `event-registration`, `clinical-record`, `appointment-booking`,
|
|
389
486
|
`shop-orders` and `time-attendance`: 65 requirements and 85 scenarios, each
|
|
390
487
|
implemented and tested by the product it came from (Spring Boot, Quarkus and
|
|
391
|
-
TypeScript stacks). Questions a pilot could not answer ship as
|
|
392
|
-
|
|
488
|
+
TypeScript stacks). Questions a pilot could not answer ship as _Needs
|
|
489
|
+
Clarification_ — drug interaction alerts, shipping costs — instead of an
|
|
393
490
|
invented answer. Separate id ranges, so a project can install all seven.
|
|
394
491
|
Install them with `specops add` into a project made by `specgate init`;
|
|
395
492
|
`init --from-pack` does not handle a requirement with two scenarios yet.
|
|
@@ -554,9 +651,9 @@ while it works (ADR-0037).
|
|
|
554
651
|
|
|
555
652
|
### Documentation
|
|
556
653
|
|
|
557
|
-
- **Two new guides.**
|
|
654
|
+
- **Two new guides.** _From a client brief_ — the brief, a draft per module,
|
|
558
655
|
assumptions and open questions, the D1–D10 checklist, writing in Spanish, and
|
|
559
|
-
what the checklist cannot see.
|
|
656
|
+
what the checklist cannot see. _Already on OpenSpec_ — `verify`, scenario ids,
|
|
560
657
|
V1–V7, adopting with `--since`, the GitHub Action.
|
|
561
658
|
- **The harness** documents when it does not retry, the per-attempt time limit,
|
|
562
659
|
and the build in the gate; **the README** covers drafting from a brief,
|
|
@@ -643,7 +740,7 @@ From a second and third cycle on the same product (reservas_app), on 0.17.1.
|
|
|
643
740
|
- **`plan` and `status` agree with `validate` about untested scenarios.** A
|
|
644
741
|
requirement with two scenarios no test named was "Ready to close — its test
|
|
645
742
|
is in place", and `NEEDS_STATUS_UPDATE` to the harness, while `validate
|
|
646
|
-
|
|
743
|
+
--strict` said "Nothing proves" them. It is now `NEEDS_TEST`.
|
|
647
744
|
- **`draft --check`:** a requirement can say it lives on one surface
|
|
648
745
|
(`surfaces=web` in its trace), so a menu is not asked for an API scenario
|
|
649
746
|
(D3); a value already in the project's specification — reviewed in an
|
|
@@ -669,7 +766,7 @@ Found building a second real product from a client brief (reservas_app,
|
|
|
669
766
|
written in Spanish).
|
|
670
767
|
|
|
671
768
|
- **A draft archives into feature files, in its own language.** `change
|
|
672
|
-
|
|
769
|
+
archive` wrote no `.feature` for a requirement whose trace named none — a
|
|
673
770
|
draft that passed `draft --check` archived with "0 materialised". Each
|
|
674
771
|
requirement with scenarios now gets `features/<capability>/<REQ>.feature`.
|
|
675
772
|
Scenarios written with `DADO / CUANDO / ENTONCES` become Spanish Gherkin
|
|
@@ -693,7 +790,7 @@ written in Spanish).
|
|
|
693
790
|
the one line that turns it on (`specgate harness init`). The first gate after
|
|
694
791
|
adoption still checks the specification only, as documented.
|
|
695
792
|
- **`draft --check`:** an answered question (an `Answer` column, or `Answer
|
|
696
|
-
|
|
793
|
+
(Q1): …` below the table) no longer keeps its requirement waiting; a value
|
|
697
794
|
repeated in a scenario is one finding, not one per mention; "responsive" is
|
|
698
795
|
not read as a promised response time, and `px` is a unit.
|
|
699
796
|
- **`status` shows the title of a requirement archived from a change** instead
|
|
@@ -709,6 +806,7 @@ written in Spanish).
|
|
|
709
806
|
version, commit or variables do.
|
|
710
807
|
|
|
711
808
|
## [0.16.0] — 2026-10-09
|
|
809
|
+
|
|
712
810
|
### Changed
|
|
713
811
|
|
|
714
812
|
- **`AGENTS.md` is the agent contract; `AI_RULES.md` folds into it**
|
|
@@ -784,7 +882,7 @@ written in Spanish).
|
|
|
784
882
|
(`--run`), or after a scenario's text changed since `--record` pinned it.
|
|
785
883
|
`--since <ref>` gates only claims made after the ref, so adopting it never
|
|
786
884
|
fails a project for its past. `--ids` prints the ids to name; `--format
|
|
787
|
-
|
|
885
|
+
github` annotates the spec lines; `actions/verify` runs it on pull requests.
|
|
788
886
|
Read against OpenSpec's own repository: 747 scenarios, 108 claims, including
|
|
789
887
|
its archived history from before the structured format.
|
|
790
888
|
|
|
@@ -874,7 +972,7 @@ published 0.14.1:
|
|
|
874
972
|
|
|
875
973
|
- **A pack keeps a generated matrix generated.** Installing a pack wrote
|
|
876
974
|
matrix rows and turned the project back into a hand-kept matrix; `matrix
|
|
877
|
-
|
|
975
|
+
--migrate` then wrote 47 placeholder sections into `spec.md` titled after
|
|
878
976
|
use cases. Now each requirement's use case, command, aggregate, event and
|
|
879
977
|
context go into the `csda:trace` of its section — the pack's capability
|
|
880
978
|
spec, or a new `spec.md` section carrying the pack's own description — and
|
|
@@ -889,7 +987,7 @@ published 0.14.1:
|
|
|
889
987
|
scenario: a requirement with two scenarios ran two paid agent sessions on
|
|
890
988
|
the same branch.
|
|
891
989
|
- **`setup_cmd`** prepares each fresh worktree before the agent (`harness
|
|
892
|
-
|
|
990
|
+
init` proposes `npm ci` / `pnpm install` / `yarn install` from the
|
|
893
991
|
lockfile), so the agent can run the tests it writes and `check` no longer
|
|
894
992
|
needs `npm ci` in `test_cmd`. The generated prompt prefix teaches linking by
|
|
895
993
|
mention instead of "the test named in the matrix".
|
|
@@ -912,7 +1010,7 @@ domain packs in a specops repository:
|
|
|
912
1010
|
lines, and the `''` / `\"` escapes inside quotes. A pack generated with
|
|
913
1011
|
PyYAML's defaults failed with "Unexpected YAML token".
|
|
914
1012
|
- **"tag work" is not a vague step.** The vague-step check matched the bare
|
|
915
|
-
word
|
|
1013
|
+
word _work_; it now flags verdicts ("it works", "should work"), not trade
|
|
916
1014
|
terms.
|
|
917
1015
|
- **A requirement can have several scenarios.** On a generated matrix a
|
|
918
1016
|
requirement with two scenarios has two rows, and the gate called it a
|
|
@@ -993,7 +1091,7 @@ Found by following the documentation step by step on the published 0.13.0:
|
|
|
993
1091
|
published.
|
|
994
1092
|
- **Diagrams render on every docs page.** A blank line inside an inlined SVG
|
|
995
1093
|
ended Markdown's HTML block, so the rest of the diagram showed as a block of
|
|
996
|
-
escaped markup on
|
|
1094
|
+
escaped markup on _Domain packs_ and in _Specs that cannot lie_. Blank lines
|
|
997
1095
|
are dropped when a diagram is inlined, and a test fails on any page showing
|
|
998
1096
|
diagram markup as text.
|
|
999
1097
|
- **`mcp install --help` names the clients it supports.** It offered
|
|
@@ -1087,7 +1185,7 @@ Found by following the documentation step by step on the published 0.13.0:
|
|
|
1087
1185
|
`completion`, `studio`, `onboard` — take it from 14 to 34 of 60 commands, and
|
|
1088
1186
|
offline journeys for packs — `specops add/diff/sync/remove` against a local
|
|
1089
1187
|
git remote with tags, `pack bundle` for an air-gapped install, `pack
|
|
1090
|
-
|
|
1188
|
+
init/lint/infer`, `expand` — to 43, and the change cycle (`new` → `archive`
|
|
1091
1189
|
→ delivered with `done`), `change author` reverting an agent's write outside
|
|
1092
1190
|
the change, `harness init/prompt/run/report` and `specops contribute` to 55.
|
|
1093
1191
|
|
|
@@ -1275,13 +1373,13 @@ Agent files generated by earlier versions are named `csda`; run
|
|
|
1275
1373
|
short help and keep working. `adopt`'s next steps now teach `check`, `new`,
|
|
1276
1374
|
`status` and `ci init`.
|
|
1277
1375
|
- **`status` lists the queue itself.** One line per requirement — its title and
|
|
1278
|
-
what it still needs — split into
|
|
1376
|
+
what it still needs — split into _Ready to close_ and _To do_, capped at 12
|
|
1279
1377
|
per group. `Next` names a requirement (`specgate done REQ-003 --strict`)
|
|
1280
1378
|
instead of answering `specgate plan`. `--json` gains a `requirements` array.
|
|
1281
1379
|
`plan` leaves the daily help and keeps the full detail.
|
|
1282
1380
|
- **`plan` no longer says "code & test exist" over a row with no code.** A
|
|
1283
|
-
declared code path is optional; the heading now says
|
|
1284
|
-
code
|
|
1381
|
+
declared code path is optional; the heading now says _its declared test and
|
|
1382
|
+
code exist_.
|
|
1285
1383
|
- **The scenario rules are owed on delivery, like the files.** A Draft row's
|
|
1286
1384
|
feature file is not held to `--strict-scenarios`, so a fresh `specgate new`
|
|
1287
1385
|
does not turn CI red. The three rules that make a suite report a pass it
|
|
@@ -1346,7 +1444,7 @@ Agent files generated by earlier versions are named `csda`; run
|
|
|
1346
1444
|
and `--from` repeats and accepts a directory, so a command shared by three
|
|
1347
1445
|
files is proposed once.
|
|
1348
1446
|
|
|
1349
|
-
`--llm` is
|
|
1447
|
+
`--llm` is _not_ here: ADR-0014 defers it, and reopening that needs an ADR
|
|
1350
1448
|
rather than a flag. Everything above stays a skeleton to review with every
|
|
1351
1449
|
guess carrying its `TODO` — an inference that stops looking like a guess is
|
|
1352
1450
|
the failure mode the ADR names. Closes #32.
|
|
@@ -1390,7 +1488,7 @@ Agent files generated by earlier versions are named `csda`; run
|
|
|
1390
1488
|
runs in its own process and every one creates a worktree in the same
|
|
1391
1489
|
repository; git writes `.git/worktrees/<name>/` incrementally, so a sibling
|
|
1392
1490
|
read an entry that was half there and failed with `failed to read …
|
|
1393
|
-
|
|
1491
|
+
/commondir`. Worse, the failure was _attributed_: the run reported the
|
|
1394
1492
|
requirement as failed with "the agent produced no files", so a race in the
|
|
1395
1493
|
harness read as the agent's fault.
|
|
1396
1494
|
|
|
@@ -1428,7 +1526,7 @@ Agent files generated by earlier versions are named `csda`; run
|
|
|
1428
1526
|
[`spec-gate`](https://www.npmjs.com/package/spec-gate) normalises to exactly
|
|
1429
1527
|
`specgate`, so the registry refuses the name to everyone and reports it as a
|
|
1430
1528
|
credentials error. ADR-0024 had checked availability with `npm view specgate`
|
|
1431
|
-
→ 404, which says
|
|
1529
|
+
→ 404, which says _not published_ and never _creatable_; the
|
|
1432
1530
|
[2026-09-01 addendum](docs/specs/adr/0024-the-tool-is-renamed-the-format-is-not.md)
|
|
1433
1531
|
records both the decision and the bad check that led to it.
|
|
1434
1532
|
|
|
@@ -1470,7 +1568,7 @@ the one that finishes the rename past the layer where it had stopped.
|
|
|
1470
1568
|
**The on-disk format is deliberately unchanged.** `csda:trace`, `csda:value`,
|
|
1471
1569
|
`csda:allow-placeholders` and the `.csda/` directory keep their names. Those
|
|
1472
1570
|
are not branding: they are a parsed format and a config directory that live
|
|
1473
|
-
inside
|
|
1571
|
+
inside _user_ repositories, and renaming them would be a silent breaking
|
|
1474
1572
|
change to every adopted project — surfacing as "requirement not found" rather
|
|
1475
1573
|
than as "your marker prefix changed". Reading both prefixes is a real
|
|
1476
1574
|
migration feature, not a find-and-replace, and it is not built here.
|
|
@@ -1485,7 +1583,7 @@ the one that finishes the rename past the layer where it had stopped.
|
|
|
1485
1583
|
rebuilt in place and keep working.
|
|
1486
1584
|
|
|
1487
1585
|
`docs/release-process.md` gains the one-time cutover: the exact `npm
|
|
1488
|
-
|
|
1586
|
+
deprecate` invocation for `create-spec-driven-app`, why the old package is
|
|
1489
1587
|
deprecated and never unpublished (npm blocks reusing an unpublished name, and
|
|
1490
1588
|
a pinned dependency would break for no gain), and the sequencing constraint —
|
|
1491
1589
|
the rename and the release that publishes `specgate` are one event, because
|
|
@@ -1521,7 +1619,7 @@ The release that starts checking content instead of only paperwork. Every check
|
|
|
1521
1619
|
until now answered "are these documents internally consistent?"; none answered
|
|
1522
1620
|
"does the code say what the spec says?". These do — for the narrow slice where
|
|
1523
1621
|
that question has an honest answer. The reasoning, including what was
|
|
1524
|
-
deliberately
|
|
1622
|
+
deliberately _not_ built, is [ADR-0023](docs/specs/adr/0023-checking-content-gate-or-report.md).
|
|
1525
1623
|
|
|
1526
1624
|
### Added
|
|
1527
1625
|
|
|
@@ -1533,7 +1631,7 @@ deliberately *not* built, is [ADR-0023](docs/specs/adr/0023-checking-content-gat
|
|
|
1533
1631
|
the H13 mistake. These two rules are what a regex can assert honestly.
|
|
1534
1632
|
|
|
1535
1633
|
The point is upstream of any code checking: `- Max 5 failed attempts per hour
|
|
1536
|
-
|
|
1634
|
+
per user` is not something a machine can hold code to. RFC 2119 detection also
|
|
1537
1635
|
stops being duplicated — `DeltaSpec` enforced it for requirements inside a
|
|
1538
1636
|
change while a capability spec at rest was never checked; both now read one
|
|
1539
1637
|
definition.
|
|
@@ -1546,7 +1644,7 @@ deliberately *not* built, is [ADR-0023](docs/specs/adr/0023-checking-content-gat
|
|
|
1546
1644
|
Opt-in, and that was measured rather than assumed: the first version ran
|
|
1547
1645
|
unconditionally on the theory that a missing path has no legitimate reading,
|
|
1548
1646
|
and the test suite disproved it at once — a `Draft` or `In Dev` row routinely
|
|
1549
|
-
names the file a requirement is
|
|
1647
|
+
names the file a requirement is _going to_ land in. Planning ahead is not
|
|
1550
1648
|
documentary drift.
|
|
1551
1649
|
|
|
1552
1650
|
- **Declared-value drift in `csda report`.** Annotate a value on both sides —
|
|
@@ -1570,7 +1668,7 @@ deliberately *not* built, is [ADR-0023](docs/specs/adr/0023-checking-content-gat
|
|
|
1570
1668
|
|
|
1571
1669
|
- **`csda change new <id> --from-value-drift <REQ-ID>:<value_id>`** turns a
|
|
1572
1670
|
diverging value into a reviewable change. It writes a `## MODIFIED
|
|
1573
|
-
|
|
1671
|
+
Requirements` delta carrying the full requirement, with the structured
|
|
1574
1672
|
`value_<id>` rewritten to the value the code declares.
|
|
1575
1673
|
|
|
1576
1674
|
**The prose is left alone.** Turning "expires after 15 minutes" into "after
|
|
@@ -1586,7 +1684,7 @@ deliberately *not* built, is [ADR-0023](docs/specs/adr/0023-checking-content-gat
|
|
|
1586
1684
|
|
|
1587
1685
|
### Fixed
|
|
1588
1686
|
|
|
1589
|
-
- **The gate approved an agent that wrote nothing (H19).** The gate runs
|
|
1687
|
+
- **The gate approved an agent that wrote nothing (H19).** The gate runs _before_
|
|
1590
1688
|
`csda done`, so at gate time the requirement is still `Draft` — and
|
|
1591
1689
|
`--strict-tdd`'s "no `Test Artifact = TBD` past Draft" rule does not apply to a
|
|
1592
1690
|
Draft row. `done` then moved the status to `Implemented` and nothing validated
|
|
@@ -1618,8 +1716,8 @@ deliberately *not* built, is [ADR-0023](docs/specs/adr/0023-checking-content-gat
|
|
|
1618
1716
|
|
|
1619
1717
|
Worse than a red gate on day one: `csda harness run` on a new project **burned
|
|
1620
1718
|
all three agent attempts** failing on something the agent neither caused nor
|
|
1621
|
-
could fix. And it contradicted the README's L2 —
|
|
1622
|
-
test coverage, ~1 hour"
|
|
1719
|
+
could fix. And it contradicted the README's L2 — _"a PR gate enforcing spec and
|
|
1720
|
+
test coverage, ~1 hour"_ — since the gate was red before the hour started.
|
|
1623
1721
|
|
|
1624
1722
|
The placeholder row is gone, replaced by a comment pointing at
|
|
1625
1723
|
`csda req add "<what the requirement does>"`, which writes the row in `spec.md`
|
|
@@ -1675,7 +1773,7 @@ deliberately *not* built, is [ADR-0023](docs/specs/adr/0023-checking-content-gat
|
|
|
1675
1773
|
- **`specgate adopt` did not run at all.** `templates/adopt/spec.md.tpl` asks
|
|
1676
1774
|
for `{{PROPOSED_REQUIREMENTS}}` and nothing supplied it, so the brownfield
|
|
1677
1775
|
entry point died on `Missing variable 'PROPOSED_REQUIREMENTS' required by
|
|
1678
|
-
|
|
1776
|
+
template` for every repository.
|
|
1679
1777
|
|
|
1680
1778
|
Two parallel branches caused it. P6 taught `adopt` to seed one requirement per
|
|
1681
1779
|
capability `onboard` reads off the layout, and added `--monorepo` and
|
|
@@ -1742,7 +1840,7 @@ deliberately *not* built, is [ADR-0023](docs/specs/adr/0023-checking-content-gat
|
|
|
1742
1840
|
- **The landing page claimed 24 commands against a surface of 25.**
|
|
1743
1841
|
|
|
1744
1842
|
- **CI had not run this repository's own gate since the rename.** The rename
|
|
1745
|
-
commit changed the
|
|
1843
|
+
commit changed the _references_ to `bin/specgate.{ts,js}` in `ci.yml`,
|
|
1746
1844
|
`CONTRIBUTING.md` and `AI_RULES.md` without renaming the file, so the step
|
|
1747
1845
|
named "Validate this repository against its own spec gate" ran
|
|
1748
1846
|
`node bin/specgate.js validate .` against a path that did not exist and every
|
|
@@ -1760,7 +1858,6 @@ deliberately *not* built, is [ADR-0023](docs/specs/adr/0023-checking-content-gat
|
|
|
1760
1858
|
masked: the `adopt` regression above failed those files on every platform, so
|
|
1761
1859
|
nothing distinguished "broken everywhere" from "broken on Windows".
|
|
1762
1860
|
|
|
1763
|
-
|
|
1764
1861
|
## [0.7.0] — 2026-08-23
|
|
1765
1862
|
|
|
1766
1863
|
The release that closes the gate on itself. Every item below came from running
|
|
@@ -1777,7 +1874,7 @@ H16, all four measured before anything was written and reproduced after.
|
|
|
1777
1874
|
|
|
1778
1875
|
- **`csda harness run --skip-not-ready`** skips a requirement an agent could not
|
|
1779
1876
|
succeed at — no feature file, unmet dependencies, `Deprecated`, or `Needs
|
|
1780
|
-
|
|
1877
|
+
Clarification`. `csda plan --format json` now carries `ready` and `blockers[]`
|
|
1781
1878
|
per requirement, each blocker with a fix. Default is to warn and run it
|
|
1782
1879
|
anyway; an unrunnable scenario skips regardless, because an empty scenario
|
|
1783
1880
|
passes and a green run over one proves nothing.
|
|
@@ -1785,7 +1882,7 @@ H16, all four measured before anything was written and reproduced after.
|
|
|
1785
1882
|
- **`csda harness run --resume`** continues an interrupted run: it re-attaches to
|
|
1786
1883
|
the branch and, when git still knows of one, to the worktree holding the
|
|
1787
1884
|
agent's uncommitted work. Where it picks up is read from the prompt archive,
|
|
1788
|
-
not the run ledger — the ledger is written when a run
|
|
1885
|
+
not the run ledger — the ledger is written when a run _finishes_, so an
|
|
1789
1886
|
interrupted run leaves none.
|
|
1790
1887
|
|
|
1791
1888
|
- **`csda harness run --budget-seconds` and `--max-requirements`** put a ceiling
|
|
@@ -1810,7 +1907,7 @@ H16, all four measured before anything was written and reproduced after.
|
|
|
1810
1907
|
|
|
1811
1908
|
- **`csda harness report`** gains where attempts end, which requirements spend
|
|
1812
1909
|
every attempt, a series over time, and `--mark-false-failure REQ-NNN --reason
|
|
1813
|
-
|
|
1910
|
+
"…"`. The real-failure rate reads `—` until somebody marks one: nothing
|
|
1814
1911
|
recorded can tell a gate that was wrong from work that was.
|
|
1815
1912
|
|
|
1816
1913
|
- **`depends_on`** on a pack's requirements. The harness cuts a dependent's
|
|
@@ -1860,7 +1957,7 @@ H16, all four measured before anything was written and reproduced after.
|
|
|
1860
1957
|
|
|
1861
1958
|
- **`parseYamlLite` split inline sequences on every comma**, including the ones
|
|
1862
1959
|
inside quotes, so `responsibilities: ["Invoice line items, totals, status,
|
|
1863
|
-
|
|
1960
|
+
aging"]` parsed as four items carrying stray quote characters.
|
|
1864
1961
|
|
|
1865
1962
|
### Security
|
|
1866
1963
|
|
|
@@ -1915,9 +2012,9 @@ date.
|
|
|
1915
2012
|
- **The scenarios shipped in the curated packs were never executed.** 27 of the
|
|
1916
2013
|
28 scenarios under `packs/**` wrote their keywords in upper case —
|
|
1917
2014
|
`GIVEN` / `WHEN` / `THEN` — and Gherkin keywords are case-sensitive. Cucumber
|
|
1918
|
-
read those lines as the scenario's
|
|
2015
|
+
read those lines as the scenario's _description_, so the scenario existed with
|
|
1919
2016
|
**zero steps**, and an empty scenario passes: `1 scenario (1 passed) · 0 steps
|
|
1920
|
-
|
|
2017
|
+
· exit 0`.
|
|
1921
2018
|
|
|
1922
2019
|
Every project seeded with `csda specops add` therefore inherited an acceptance
|
|
1923
2020
|
criterion that approves anything, and a harness run over those requirements
|
|
@@ -1947,7 +2044,7 @@ date.
|
|
|
1947
2044
|
first run already had.
|
|
1948
2045
|
|
|
1949
2046
|
The attempt is now committed on the branch with a `wip(REQ-NNN): FAILED the
|
|
1950
|
-
|
|
2047
|
+
gate — do not merge as is` subject. The requirement stays `Draft`, because
|
|
1951
2048
|
`csda done` never ran, so nothing about the matrix claims the work is good. A
|
|
1952
2049
|
human reads it and decides; git just stops throwing it away. The report says
|
|
1953
2050
|
whether the work was preserved, and distinguishes that from an agent that
|
|
@@ -1958,7 +2055,7 @@ date.
|
|
|
1958
2055
|
a filter silently fails to apply — a runner config pinning its own paths will
|
|
1959
2056
|
override the CLI argument — the gate rejects correct work and the failure is
|
|
1960
2057
|
indistinguishable from broken code. It cost two agent runs to explain the
|
|
1961
|
-
first time. The harness cannot know how many tests
|
|
2058
|
+
first time. The harness cannot know how many tests _should_ run, but it can
|
|
1962
2059
|
notice a command that asked for one feature against output reporting many, and
|
|
1963
2060
|
warn. A hint, not a verdict: a genuine failure must not be explained away.
|
|
1964
2061
|
|
|
@@ -1999,7 +2096,7 @@ date.
|
|
|
1999
2096
|
version and path.
|
|
2000
2097
|
|
|
2001
2098
|
Reported by a user whose `csda -v` kept printing 0.1.2 after installing "the
|
|
2002
|
-
latest". The tool was right — it
|
|
2099
|
+
latest". The tool was right — it _was_ 0.1.2, from a global install made
|
|
2003
2100
|
months earlier. `npx create-spec-driven-app@latest` runs a temporary copy and
|
|
2004
2101
|
never touches a global one, so the two answer different questions and nothing
|
|
2005
2102
|
said so. Three minor versions behind, with no way to notice.
|
|
@@ -2009,8 +2106,7 @@ date.
|
|
|
2009
2106
|
newest is not doctor's business, and a lookup would break the offline and
|
|
2010
2107
|
air-gapped modes the tool promises.
|
|
2011
2108
|
|
|
2012
|
-
- **Doctor's Node check read `>= 20`** for a release after the floor moved to
|
|
2013
|
-
22. It now reads the floor from `package.json` rather than repeating it — the
|
|
2109
|
+
- **Doctor's Node check read `>= 20`** for a release after the floor moved to 22. It now reads the floor from `package.json` rather than repeating it — the
|
|
2014
2110
|
same drift the floor guard exists to prevent, in the one file the guard did
|
|
2015
2111
|
not cover.
|
|
2016
2112
|
|
|
@@ -2019,7 +2115,7 @@ date.
|
|
|
2019
2115
|
### Fixed
|
|
2020
2116
|
|
|
2021
2117
|
- **The gate could not run the scenario it was gating.** `test_cmd` was a fixed
|
|
2022
|
-
string with no substitution, and the gate runs
|
|
2118
|
+
string with no substitution, and the gate runs _before_ `csda done` — so the
|
|
2023
2119
|
requirement is still Draft and `validate --strict-tdd` does not demand its
|
|
2024
2120
|
test either. Between them, `harness run` could mark a requirement Implemented
|
|
2025
2121
|
with its scenario never executed.
|
|
@@ -2034,7 +2130,7 @@ date.
|
|
|
2034
2130
|
With that, the same no-op agent fails at the requirement's own scenario.
|
|
2035
2131
|
|
|
2036
2132
|
- **The harness blocked its own second run.** It archived each prompt into the
|
|
2037
|
-
|
|
2133
|
+
_project_ directory, which left untracked files behind — and the harness
|
|
2038
2134
|
refuses to start on a dirty tree. The archive now goes in the worktree, where
|
|
2039
2135
|
`git add -A` commits it with the work, so the prompt arrives in the branch
|
|
2040
2136
|
under review. That is what an audit copy was for.
|
|
@@ -2130,7 +2226,6 @@ date.
|
|
|
2130
2226
|
migrating is the shape that never worked, and `pack lint` now names exactly
|
|
2131
2227
|
what is wrong with it.
|
|
2132
2228
|
|
|
2133
|
-
|
|
2134
2229
|
- **The CLI is called `csda` in every place it is a command.** The package
|
|
2135
2230
|
ships two binaries — `create-spec-driven-app` and the `csda` alias — and the
|
|
2136
2231
|
two were used interchangeably, so the same command appeared under different
|
|
@@ -2206,7 +2301,7 @@ date.
|
|
|
2206
2301
|
`schema_version` and `.specops.lock`'s `specops_version` were both written by
|
|
2207
2302
|
the CLI and read by nothing, so a file from a newer version was accepted and
|
|
2208
2303
|
then misread field by field. Both now fail up front, naming the versions and
|
|
2209
|
-
the upgrade command. Older files still load — only
|
|
2304
|
+
the upgrade command. Older files still load — only _newer than this CLI_ is
|
|
2210
2305
|
refused.
|
|
2211
2306
|
|
|
2212
2307
|
- **`SECURITY.md`, `MAINTAINERS.md` and `CODEOWNERS`**, with private
|
|
@@ -2310,7 +2405,7 @@ date.
|
|
|
2310
2405
|
runner. The workflow needed QEMU alongside buildx to cross-build.
|
|
2311
2406
|
|
|
2312
2407
|
The 0.2.0 image tag could not be rebuilt in place: re-running a workflow
|
|
2313
|
-
against an old tag checks out the workflow
|
|
2408
|
+
against an old tag checks out the workflow _as it was at that tag_, which did
|
|
2314
2409
|
not yet have the fix. Hence a patch release rather than moving a published
|
|
2315
2410
|
tag.
|
|
2316
2411
|
|
|
@@ -2346,7 +2441,7 @@ and brownfield onboarding have all landed since.
|
|
|
2346
2441
|
### Added
|
|
2347
2442
|
|
|
2348
2443
|
- **Change lifecycle** — `csda change new | list | show | status | validate |
|
|
2349
|
-
|
|
2444
|
+
archive`. Modify a spec that already shipped through a reviewable delta.
|
|
2350
2445
|
Archiving merges it into the spec tree, writes the traceability rows and
|
|
2351
2446
|
materialises the feature files.
|
|
2352
2447
|
- **`csda change instructions <artifact>`** — the single context engine.
|
package/bin/specgate.ts
CHANGED
|
@@ -368,7 +368,12 @@ function dispatchValidate(validateArgs: string[]): void {
|
|
|
368
368
|
);
|
|
369
369
|
if (positional.length !== 1) {
|
|
370
370
|
error(`'validate' expects exactly one positional argument: <project_dir>`);
|
|
371
|
-
|
|
371
|
+
// The one line that answers it, not the whole CLI's help (REQ-178).
|
|
372
|
+
const flags = validateArgs.filter((a) => a.startsWith("-")).join(" ");
|
|
373
|
+
process.stderr.write(
|
|
374
|
+
` For this folder: specgate validate .${flags ? ` ${flags}` : ""}\n` +
|
|
375
|
+
" Every option: specgate validate --help\n"
|
|
376
|
+
);
|
|
372
377
|
process.exit(2);
|
|
373
378
|
}
|
|
374
379
|
const VALIDATE_FLAGS = new Set([
|
package/dist/bin/specgate.js
CHANGED
|
@@ -325,7 +325,10 @@ function dispatchValidate(validateArgs) {
|
|
|
325
325
|
const positional = validateArgs.filter((a, i) => !a.startsWith("-") && !(deliveringAt >= 0 && i === deliveringAt + 1));
|
|
326
326
|
if (positional.length !== 1) {
|
|
327
327
|
error(`'validate' expects exactly one positional argument: <project_dir>`);
|
|
328
|
-
|
|
328
|
+
// The one line that answers it, not the whole CLI's help (REQ-178).
|
|
329
|
+
const flags = validateArgs.filter((a) => a.startsWith("-")).join(" ");
|
|
330
|
+
process.stderr.write(` For this folder: specgate validate .${flags ? ` ${flags}` : ""}\n` +
|
|
331
|
+
" Every option: specgate validate --help\n");
|
|
329
332
|
process.exit(2);
|
|
330
333
|
}
|
|
331
334
|
const VALIDATE_FLAGS = new Set([
|
package/dist/bin/specgate.js.map
CHANGED
|
@@ -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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"}
|