@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.
Files changed (51) hide show
  1. package/CHANGELOG.md +149 -54
  2. package/bin/specgate.ts +6 -1
  3. package/dist/bin/specgate.js +4 -1
  4. package/dist/bin/specgate.js.map +1 -1
  5. package/dist/packages/core/src/domain/BriefCards.js +13 -3
  6. package/dist/packages/core/src/domain/BriefCards.js.map +1 -1
  7. package/dist/packages/core/src/domain/CapabilitySpecMerge.js +83 -0
  8. package/dist/packages/core/src/domain/CapabilitySpecMerge.js.map +1 -0
  9. package/dist/packages/core/src/domain/DraftChecklist.js +19 -5
  10. package/dist/packages/core/src/domain/DraftChecklist.js.map +1 -1
  11. package/dist/packages/core/test/unit/capability-spec-merge.test.js +104 -0
  12. package/dist/packages/core/test/unit/capability-spec-merge.test.js.map +1 -0
  13. package/dist/scripts/agents/detect.js +1 -0
  14. package/dist/scripts/agents/detect.js.map +1 -1
  15. package/dist/scripts/agents/init.js +13 -0
  16. package/dist/scripts/agents/init.js.map +1 -1
  17. package/dist/scripts/cli/commands/change/ChangeCommand.js +21 -0
  18. package/dist/scripts/cli/commands/change/ChangeCommand.js.map +1 -1
  19. package/dist/scripts/cli/commands/change/TicketCommand.js +64 -6
  20. package/dist/scripts/cli/commands/change/TicketCommand.js.map +1 -1
  21. package/dist/scripts/cli/commands/harness/RunCommand.js +66 -0
  22. package/dist/scripts/cli/commands/harness/RunCommand.js.map +1 -1
  23. package/dist/scripts/cli/commands/quality/CheckCommand.js +15 -5
  24. package/dist/scripts/cli/commands/quality/CheckCommand.js.map +1 -1
  25. package/dist/scripts/cli/commands/quality/DoctorCommand.js +22 -8
  26. package/dist/scripts/cli/commands/quality/DoctorCommand.js.map +1 -1
  27. package/dist/scripts/cli/commands/spec/DoneCommand.js +85 -16
  28. package/dist/scripts/cli/commands/spec/DoneCommand.js.map +1 -1
  29. package/dist/scripts/cli/commands/spec/DraftCommand.js +94 -1
  30. package/dist/scripts/cli/commands/spec/DraftCommand.js.map +1 -1
  31. package/dist/scripts/draft/drafting-guide.js +4 -0
  32. package/dist/scripts/draft/drafting-guide.js.map +1 -1
  33. package/dist/scripts/draft/ticket-guide.js +4 -0
  34. package/dist/scripts/draft/ticket-guide.js.map +1 -1
  35. package/dist/scripts/harness/init.js +104 -26
  36. package/dist/scripts/harness/init.js.map +1 -1
  37. package/dist/scripts/harness/prompt.js +13 -1
  38. package/dist/scripts/harness/prompt.js.map +1 -1
  39. package/dist/scripts/lib/base-ids.js +7 -0
  40. package/dist/scripts/lib/base-ids.js.map +1 -1
  41. package/dist/scripts/lib/change-base.js +230 -0
  42. package/dist/scripts/lib/change-base.js.map +1 -0
  43. package/dist/scripts/lib/change-overlap.js +234 -0
  44. package/dist/scripts/lib/change-overlap.js.map +1 -0
  45. package/dist/scripts/lib/surface.js +6 -0
  46. package/dist/scripts/lib/surface.js.map +1 -1
  47. package/dist/scripts/lib/ticket-keys.js +48 -3
  48. package/dist/scripts/lib/ticket-keys.js.map +1 -1
  49. package/dist/scripts/merge-capability-spec.js +87 -0
  50. package/dist/scripts/merge-capability-spec.js.map +1 -0
  51. 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: *From a Jira
22
- ticket* for a team lead setting it up, and *An existing codebase, with work
23
- in Jira* (Maven profiles, a parent POM, Bitbucket and Jenkins).
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
- <module>` refuses with `brief_not_ready` while the brief has an error: an
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 *declares* (a heading or a
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
- usecase` also creates the requirement and names it in the test. Outside a forja
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 *Needs
392
- Clarification* — drug interaction alerts, shipping costs — instead of an
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.** *From a client brief* — the brief, a draft per module,
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. *Already on OpenSpec* — `verify`, scenario ids,
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
- --strict` said "Nothing proves" them. It is now `NEEDS_TEST`.
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
- archive` wrote no `.feature` for a requirement whose trace named none — a
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
- (Q1): …` below the table) no longer keeps its requirement waiting; a value
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
- github` annotates the spec lines; `actions/verify` runs it on pull requests.
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
- --migrate` then wrote 47 placeholder sections into `spec.md` titled after
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
- init` proposes `npm ci` / `pnpm install` / `yarn install` from the
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 *work*; it now flags verdicts ("it works", "should work"), not trade
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 *Domain packs* and in *Specs that cannot lie*. Blank lines
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
- init/lint/infer`, `expand` — to 43, and the change cycle (`new` → `archive`
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 *Ready to close* and *To do*, capped at 12
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 *its declared test and
1284
- code exist*.
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 *not* here: ADR-0014 defers it, and reopening that needs an ADR
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
- /commondir`. Worse, the failure was *attributed*: the run reported the
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 *not published* and never *creatable*; the
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 *user* repositories, and renaming them would be a silent breaking
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
- deprecate` invocation for `create-spec-driven-app`, why the old package is
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 *not* built, is [ADR-0023](docs/specs/adr/0023-checking-content-gate-or-report.md).
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
- per user` is not something a machine can hold code to. RFC 2119 detection also
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 *going to* land in. Planning ahead is not
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
- Requirements` delta carrying the full requirement, with the structured
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 *before*
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 — *"a PR gate enforcing spec and
1622
- test coverage, ~1 hour"* — since the gate was red before the hour started.
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
- template` for every repository.
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 *references* to `bin/specgate.{ts,js}` in `ci.yml`,
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
- Clarification`. `csda plan --format json` now carries `ready` and `blockers[]`
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 *finishes*, so an
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
- "…"`. The real-failure rate reads `—` until somebody marks one: nothing
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
- aging"]` parsed as four items carrying stray quote characters.
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 *description*, so the scenario existed with
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
- · exit 0`.
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
- gate — do not merge as is` subject. The requirement stays `Draft`, because
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 *should* run, but it can
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 *was* 0.1.2, from a global install made
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 *before* `csda done` — so the
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
- *project* directory, which left untracked files behind — and the harness
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 *newer than this CLI* is
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 *as it was at that tag*, which did
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
- archive`. Modify a spec that already shipped through a reviewable delta.
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
- usage();
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([
@@ -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
- usage();
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([
@@ -1 +1 @@
1
- {"version":3,"file":"specgate.js","sourceRoot":"","sources":["../../bin/specgate.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,uCAAyB;AACzB,2CAA6B;AAC7B,iDAA0C;AAE1C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACpD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;AAChE,MAAM,OAAO,GAAW,WAAW,CAAC,OAAO,IAAI,OAAO,CAAC;AAEvD,oDAA6F;AAE7F,8DAA8D;AAE9D,+EAA+E;AAC/E,SAAS,aAAa,CAAC,QAAkB;IACvC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAED,qFAAqF;AAErF,0CAA2C;AAE3C,SAAS,IAAI,CAAC,GAAW;IACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,MAAC,CAAC,IAAI,GAAG,QAAG,CAAC,IAAI,GAAG,MAAC,CAAC,KAAK,KAAK,GAAG,IAAI,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,KAAK,CAAC,GAAW;IACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,MAAC,CAAC,GAAG,GAAG,QAAG,CAAC,IAAI,GAAG,MAAC,CAAC,KAAK,KAAK,GAAG,IAAI,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,MAAM;IACb,OAAO,CACL,IAAI;QACJ,KAAK,MAAC,CAAC,KAAK,GAAG,QAAG,CAAC,KAAK,GAAG,MAAC,CAAC,KAAK,IAAI,MAAC,CAAC,IAAI,WAAW,MAAC,CAAC,KAAK,KAAK,MAAC,CAAC,KAAK,IAAI,OAAO,GAAG,MAAC,CAAC,KAAK,IAAI;QACnG,OAAO,MAAC,CAAC,KAAK,6FAA6F,MAAC,CAAC,KAAK,IAAI,CACvH,CAAC;AACJ,CAAC;AAED,wFAAwF;AACxF,SAAS,OAAO,CAAC,KAAa;IAC5B,MAAM,IAAI,GAAG,QAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACzE,OAAO,OAAO,MAAC,CAAC,IAAI,GAAG,KAAK,GAAG,MAAC,CAAC,KAAK,IAAI,MAAC,CAAC,KAAK,GAAG,IAAI,GAAG,MAAC,CAAC,KAAK,IAAI,CAAC;AACzE,CAAC;AAED;;;;GAIG;AACH,SAAS,GAAG,CAAC,KAAa,EAAE,IAAY,EAAE,OAAe,EAAE,GAAG,GAAG,EAAE;IACjE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACxC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;IACvD,OAAO,OAAO,KAAK,KAAK,MAAC,CAAC,MAAM,GAAG,IAAI,GAAG,MAAC,CAAC,KAAK,GAAG,OAAO,GAAG,MAAC,CAAC,KAAK,GAAG,OAAO,GAAG,MAAC,CAAC,KAAK,IAAI,CAAC;AAChG,CAAC;AAED,SAAS,IAAI,CAAC,IAAY,EAAE,OAAe,EAAE,GAAG,GAAG,EAAE;IACnD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACxC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;IACvD,OAAO,OAAO,MAAC,CAAC,MAAM,GAAG,IAAI,GAAG,MAAC,CAAC,KAAK,GAAG,OAAO,GAAG,MAAC,CAAC,KAAK,GAAG,OAAO,GAAG,MAAC,CAAC,KAAK,IAAI,CAAC;AACtF,CAAC;AAED,SAAS,OAAO,CAAC,IAAY,EAAE,OAAgB;IAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,MAAC,CAAC,KAAK,KAAK,OAAO,GAAG,MAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,OAAO,GAAG,MAAM,OAAO,MAAC,CAAC,KAAK,IAAI,MAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,QAAQ,GACZ,OAAO,CAAC,yCAAyC,EAAE,iCAAiC,CAAC;IACrF,OAAO,CACL,2EAA2E,EAC3E,mCAAmC,CACpC;IACD,OAAO,CACL,oFAAoF,EACpF,2CAA2C,CAC5C;IACD,OAAO,CACL,wEAAwE,EACxE,wBAAwB,CACzB;IACD,OAAO,CACL,iPAAiP,EACjP,oBAAoB,CACrB;IACD,OAAO,CACL,0OAA0O,EAC1O,yCAAyC,CAC1C;IACD,OAAO,CACL,wFAAwF,EACxF,6DAA6D,CAC9D;IACD,OAAO,CACL,8GAA8G,EAC9G,wBAAwB,CACzB;IACD,OAAO,CACL,gFAAgF,EAChF,wCAAwC,CACzC;IACD,OAAO,CACL,8FAA8F,EAC9F,sCAAsC,CACvC;IACD,OAAO,CACL,yDAAyD,EACzD,kDAAkD,CACnD;IACD,OAAO,CACL,6GAA6G,EAC7G,qCAAqC,CACtC,CAAC;AAEJ;;;;;;;;;;;;GAYG;AACH,SAAS,YAAY,CAAC,MAAqB;IACzC,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC1F,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,MAAM,EAAE;QACN,OAAO,CAAC,OAAO,CAAC;QAChB,OAAO,MAAC,CAAC,MAAM,WAAW,MAAC,CAAC,KAAK,IAAI,MAAC,CAAC,IAAI,YAAY,MAAC,CAAC,KAAK,kBAAkB,MAAC,CAAC,KAAK,6CAA6C,MAAC,CAAC,KAAK,IAAI;QAC/I,YAAY,CAAC,IAAA,sBAAY,GAAE,CAAC;QAC5B,OAAO,CAAC,UAAU,CAAC;QACnB,OAAO,CAAC,yCAAyC,EAAE,kCAAkC,CAAC;QACtF,OAAO,CAAC,sCAAsC,EAAE,0BAA0B,CAAC;QAC3E,OAAO,CAAC,+BAA+B,EAAE,+BAA+B,CAAC;QACzE,OAAO,CAAC,gBAAgB,EAAE,wCAAwC,CAAC;QACnE,OAAO,CAAC,sCAAsC,EAAE,mCAAmC,CAAC;QACpF,OAAO,CAAC,MAAM,CAAC;QACf,OAAO,MAAC,CAAC,KAAK,GAAG,IAAA,4BAAkB,GAAE,gEAAgE,MAAC,CAAC,KAAK,IAAI;QAChH,OAAO,MAAC,CAAC,MAAM,mCAAmC,MAAC,CAAC,KAAK,GAAG,MAAC,CAAC,KAAK,sCAAsC,MAAC,CAAC,KAAK,IAAI;QACpH,OAAO,MAAC,CAAC,MAAM,wBAAwB,MAAC,CAAC,KAAK,GAAG,MAAC,CAAC,KAAK,qCAAqC,MAAC,CAAC,KAAK,IAAI;QACxG,IAAI,CACP,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW;IAClB,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACtE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;QAC1F,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC,OAAO,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,kEAAkE;IACpE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,sDAAsD;AACtD,SAAS,UAAU,CAAC,GAAY;IAC9B,IAAI,GAAG,GAAG,OAAO,MAAC,CAAC,KAAK,GAAG,QAAG,CAAC,KAAK,GAAG,MAAC,CAAC,KAAK,IAAI,MAAC,CAAC,IAAI,YAAY,GAAG,CAAC,IAAI,GAAG,MAAC,CAAC,KAAK,4BAA4B,CAAC;IACnH,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,WAAY,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACnF,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACnF,CAAC;IACD,GAAG,IAAI,OAAO,MAAC,CAAC,KAAK,YAAY,GAAG,CAAC,IAAI,6CAA6C,MAAC,CAAC,KAAK,MAAM,CAAC;IACpG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,KAAK,CAAC,IAAwB;IACrC,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,EAAE,CAAC;IACzC,IAAI,WAAW,EAAE,KAAK,MAAM;QAAE,OAAO,SAAS,EAAE,CAAC;IACjD,OAAO,SAAS,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,MAAM,EAAE;QACN,OAAO,CAAC,OAAO,CAAC;QAChB,OAAO,MAAC,CAAC,MAAM,WAAW,MAAC,CAAC,KAAK,IAAI,MAAC,CAAC,IAAI,YAAY,MAAC,CAAC,KAAK,kBAAkB,MAAC,CAAC,KAAK,6CAA6C,MAAC,CAAC,KAAK,IAAI;QAC/I,YAAY,CAAC,IAAA,kBAAQ,GAAE,CAAC;QACxB,OAAO,CAAC,cAAc,CAAC;QACvB,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC;QACrC,IAAI,CAAC,eAAe,EAAE,mBAAmB,CAAC;QAC1C,OAAO,CAAC,UAAU,CAAC;QACnB,QAAQ;QACR,OAAO,CAAC,YAAY,CAAC;QACrB,WAAW,MAAC,CAAC,KAAK,kBAAkB,MAAC,CAAC,KAAK,GAAG,MAAC,CAAC,SAAS,qEAAqE,MAAC,CAAC,KAAK,IAAI;QACzI,WAAW,MAAC,CAAC,KAAK,kBAAkB,MAAC,CAAC,KAAK,GAAG,MAAC,CAAC,SAAS,4CAA4C,MAAC,CAAC,KAAK,IAAI;QAChH,WAAW,MAAC,CAAC,KAAK,kBAAkB,MAAC,CAAC,KAAK,GAAG,MAAC,CAAC,SAAS,mDAAmD,MAAC,CAAC,KAAK,IAAI;QACvH,IAAI,CACP,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAkB;IAC1C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,8BAA8B,UAAU,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,qEAAqE;AACrE,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAC;AAEzF,SAAS,aAAa,CAAC,UAAkB,EAAE,IAAc;IACvD,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,MAAM,MAAM,GAAG,IAAA,yBAAS,EAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,EAAE;QAC5E,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,KAAK,CAAC,6BAA6B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,CAAC,iCAAiC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,MAAa,0BAA0B;IAC9B,OAAO,CAAC,OAAiB,EAAE;QAChC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAElD,2EAA2E;QAC3E,yEAAyE;QACzE,oEAAoE;QACpE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAA,8BAAe,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,GAAG,CAAC;YAChC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpB,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAClE,KAAK,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAChD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAExB,MAAM,GAAG,GAAG,iBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,IAAI,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;YACpC,KAAK,EAAE,CAAC;YACR,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,yEAAyE;QACzE,qEAAqE;QACrE,uEAAuE;QACvE,iEAAiE;QACjE,yEAAyE;QACzE,IAAI,GAAG,CAAC,WAAW,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;YACjF,UAAU,CAAC,GAAG,CAAC,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,GAAG,CAAC,WAAW,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxD,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/D,KAAK,CAAC,WAAW,OAAO,mCAAmC,QAAQ,EAAE,CAAC,CAAC;YACvE,UAAU,CAAC,GAAG,CAAC,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,uEAAuE;QACvE,6EAA6E;QAC7E,IAAI,OAAO,KAAK,MAAM;YAAE,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAI,OAAO,KAAK,UAAU;YAAE,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;YAAE,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAEtF,4EAA4E;QAC5E,8EAA8E;QAC9E,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACzC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACzB,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QAED,yEAAyE;QACzE,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;QACpE,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvE,KAAK,CAAC,WAAW,OAAO,iBAAiB,OAAO,IAAI,QAAQ,eAAe,QAAQ,EAAE,CAAC,CAAC;YACvF,KAAK,EAAE,CAAC;YACR,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,sEAAsE;QACtE,4CAA4C;QAC5C,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,MAAO,CAAC,CAAC;QAC1C,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzB,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnF,CAAC;CACF;AA9ED,gEA8EC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,WAAqB;IACzC,uEAAuE;IACvE,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAClD,IACE,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACtC,CAAC,SAAS,KAAK,CAAC,CAAC,IAAI,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,OAAO,CAAC,EAC5D,CAAC;QACD,KAAK,CACH,oGAAoG,CACrG,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC;QAChD,CAAC,CAAC,aAAa,CAAC,CAAC,mBAAmB,CAAC,CAAC;QACtC,CAAC,CAAC,aAAa,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACvC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACzB,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACrC,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,YAAsB;IAC9C,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACpD,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAEzB,2EAA2E;IAC3E,wEAAwE;IACxE,0EAA0E;IAC1E,+CAA+C;IAC/C,IAAI,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnE,aAAa,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClC,OAAO;IACT,CAAC;IAED,sEAAsE;IACtE,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CACpC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,YAAY,GAAG,CAAC,CAAC,CAC/E,CAAC;IACF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,mEAAmE,CAAC,CAAC;QAC3E,KAAK,EAAE,CAAC;QACR,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;QAC7B,UAAU;QACV,cAAc;QACd,oBAAoB;QACpB,uBAAuB;QACvB,gBAAgB;QAChB,mBAAmB;QACnB,gBAAgB;QAChB,QAAQ;QACR,yEAAyE;QACzE,uEAAuE;QACvE,cAAc;KACf,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7F,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,iCAAiC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClE,KAAK,EAAE,CAAC;QACR,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AACtC,CAAC;AAED;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,IAAc;IAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,iEAAiE;YAC/D,8EAA8E;YAC9E,yBAAyB,CAC5B,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,KAAK,CAAC,4EAA4E,CAAC,CAAC;QACpF,KAAK,EAAE,CAAC;QACR,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IACpD,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACzB,aAAa,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,YAAY,GAChB,OAAO,CAAC,IAAI,KAAK,MAAM;IACvB,CAAC,OAAO,CAAC,IAAI;QACX,CAAC,CAAC,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/E,CAAC,CAAC,KAAK,CAAC,CAAC;AAEb,IAAI,YAAY,EAAE,CAAC;IACjB,IAAI,0BAA0B,EAAE,CAAC,OAAO,EAAE,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"specgate.js","sourceRoot":"","sources":["../../bin/specgate.ts"],"names":[],"mappings":"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"}