@rsaglobaltech/specgate 0.17.4 → 0.17.6
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 +61 -0
- package/README.md +33 -33
- package/dist/packages/core/src/domain/DoneVerification.js +2 -2
- package/dist/packages/core/src/domain/DoneVerification.js.map +1 -1
- package/dist/packages/core/src/domain/ResumeState.js +23 -4
- package/dist/packages/core/src/domain/ResumeState.js.map +1 -1
- package/dist/packages/core/src/domain/SpecSections.js +24 -0
- package/dist/packages/core/src/domain/SpecSections.js.map +1 -1
- package/dist/packages/core/src/domain/WriteScope.js +42 -8
- package/dist/packages/core/src/domain/WriteScope.js.map +1 -1
- package/dist/packages/core/src/infrastructure/HarnessConfigFile.js +29 -0
- package/dist/packages/core/src/infrastructure/HarnessConfigFile.js.map +1 -1
- package/dist/packages/core/test/unit/spec-sections.test.js +12 -0
- package/dist/packages/core/test/unit/spec-sections.test.js.map +1 -1
- package/dist/packages/core/test/unit/write-scope-status.test.js +4 -0
- package/dist/packages/core/test/unit/write-scope-status.test.js.map +1 -1
- package/dist/scripts/cli/commands/config/ConfigSetCommand.js +42 -2
- package/dist/scripts/cli/commands/config/ConfigSetCommand.js.map +1 -1
- package/dist/scripts/cli/commands/harness/RunCommand.js +3 -5
- package/dist/scripts/cli/commands/harness/RunCommand.js.map +1 -1
- package/dist/scripts/cli/commands/project/InitProjectCommand.js +1 -1
- package/dist/scripts/cli/commands/project/InitProjectCommand.js.map +1 -1
- package/dist/scripts/cli/commands/quality/CheckCommand.js +1 -1
- package/dist/scripts/cli/commands/quality/CheckCommand.js.map +1 -1
- package/dist/scripts/cli/commands/quality/ValidateSpecsCommand.js +74 -0
- package/dist/scripts/cli/commands/quality/ValidateSpecsCommand.js.map +1 -1
- package/dist/scripts/docs/nav.js +10 -0
- package/dist/scripts/docs/nav.js.map +1 -1
- package/dist/scripts/lib/deadline-runner.js +43 -0
- package/dist/scripts/lib/deadline-runner.js.map +1 -0
- package/dist/scripts/lib/run-with-deadline.js +63 -0
- package/dist/scripts/lib/run-with-deadline.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,67 @@ The release process is in [`docs/release-process.md`](docs/release-process.md).
|
|
|
8
8
|
|
|
9
9
|
## [Unreleased]
|
|
10
10
|
|
|
11
|
+
## [0.17.6] — 2026-10-10
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
|
|
15
|
+
- **`done` refuses a requirement whose obligation is still the template (#67).**
|
|
16
|
+
`specgate new` writes "The system MUST satisfy: <title>." with a note to
|
|
17
|
+
replace it; the sentence states MUST, so it passed every rule and `done`
|
|
18
|
+
closed the requirement on it. A delivered requirement (or the one `done` is
|
|
19
|
+
closing) whose section still carries either line now fails
|
|
20
|
+
`validate --strict` with `requirement_template_obligation`, naming the file.
|
|
21
|
+
Draft and Needs Clarification still owe nothing.
|
|
22
|
+
- **The test command is configured without the harness (#68).**
|
|
23
|
+
`specgate config set test_cmd "npm test"` (and `config get test_cmd`) writes
|
|
24
|
+
`test_cmd:` to `harness.config.yaml`, keeping every other line, or creates it.
|
|
25
|
+
`check`'s warning now names this command instead of `harness init`, whose
|
|
26
|
+
output talks about agents to teams that do not use one.
|
|
27
|
+
|
|
28
|
+
### Documentation
|
|
29
|
+
|
|
30
|
+
- **A real tutorial video, from an empty directory** (`scripts/demo/tutorial/`):
|
|
31
|
+
`npm init`, the published package, a requirement written by hand (the
|
|
32
|
+
obligation in `vim`, the scenario, the test, the code), `done` refusing a red
|
|
33
|
+
suite, `check`, `ci init` and the commit — in 16:9 and 9:16, in Spanish. It
|
|
34
|
+
replaces the 55-second social clip, which copied its files in off camera.
|
|
35
|
+
- **The README comparison row** now states what a team learns before its first
|
|
36
|
+
pull request — five commands, the other 26 opt-in — instead of a warning.
|
|
37
|
+
|
|
38
|
+
### Security
|
|
39
|
+
|
|
40
|
+
- **Two CodeQL findings fixed.** The parser of archived harness prompt names used
|
|
41
|
+
a regular expression that ran polynomially on names repeating `-attempt-`
|
|
42
|
+
(js/polynomial-redos); it now reads the name by hand, with the same result
|
|
43
|
+
(checked against the old expression on 20 000 generated names). A no-op
|
|
44
|
+
replacement in the agent contract's checks is gone (js/identity-replacement).
|
|
45
|
+
|
|
46
|
+
### Documentation
|
|
47
|
+
|
|
48
|
+
- **Two new guides.** *From a client brief* — the brief, a draft per module,
|
|
49
|
+
assumptions and open questions, the D1–D10 checklist, writing in Spanish, and
|
|
50
|
+
what the checklist cannot see. *Already on OpenSpec* — `verify`, scenario ids,
|
|
51
|
+
V1–V7, adopting with `--since`, the GitHub Action.
|
|
52
|
+
- **The harness** documents when it does not retry, the per-attempt time limit,
|
|
53
|
+
and the build in the gate; **the README** covers drafting from a brief,
|
|
54
|
+
`verify` for OpenSpec teams and how releases are tested on real products.
|
|
55
|
+
|
|
56
|
+
## [0.17.5] — 2026-10-09
|
|
57
|
+
|
|
58
|
+
### Fixed
|
|
59
|
+
|
|
60
|
+
- **The harness accepts the `done` it asks for, whatever order `done` writes.**
|
|
61
|
+
0.17.3 allowed a status-only change to a spec trace, comparing the text; but
|
|
62
|
+
`done` also reorders the attributes, so the change still looked like an edit
|
|
63
|
+
and two requirements lost an attempt each. Attributes are now compared as a
|
|
64
|
+
set.
|
|
65
|
+
- **An agent that runs out of time is stopped, not orphaned.** On timeout the
|
|
66
|
+
harness killed the shell it had started and moved on, leaving an agent that
|
|
67
|
+
ignores SIGTERM still running in the worktree — in credito-tienda one hung
|
|
68
|
+
for 53 minutes under a 20-minute limit until a person killed it. The agent
|
|
69
|
+
now runs in its own process group, and the whole group is killed at the
|
|
70
|
+
deadline.
|
|
71
|
+
|
|
11
72
|
## [0.17.4] — 2026-10-09
|
|
12
73
|
|
|
13
74
|
### Fixed
|
package/README.md
CHANGED
|
@@ -20,9 +20,6 @@
|
|
|
20
20
|
|
|
21
21
|
## ⚡ Start
|
|
22
22
|
|
|
23
|
-
> **The npm package is scoped; the binary is not.** `spec-gate` already claims the
|
|
24
|
-
> unscoped name ([ADR-0024](docs/specs/adr/0024-the-tool-is-renamed-the-format-is-not.md)). You type `specgate`; `csda` still works too.
|
|
25
|
-
|
|
26
23
|
```bash
|
|
27
24
|
npm i -g @rsaglobaltech/specgate # or prefix every command with npx @rsaglobaltech/specgate@latest
|
|
28
25
|
|
|
@@ -34,11 +31,8 @@ specgate ci init # the gate as a CI job — GitHub, GitLab, Az
|
|
|
34
31
|
specgate check # the gate, locally
|
|
35
32
|
```
|
|
36
33
|
|
|
37
|
-
Requires **Node.js ≥ 22** — or none
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
docker run --rm -v "$PWD:/workspace" ghcr.io/rsaglobaltech/specgate check
|
|
41
|
-
```
|
|
34
|
+
Requires **Node.js ≥ 22** — or none with Docker: `docker run --rm -v "$PWD:/workspace" ghcr.io/rsaglobaltech/specgate check`.
|
|
35
|
+
The package is scoped, the binary is not ([ADR-0024](docs/specs/adr/0024-the-tool-is-renamed-the-format-is-not.md)).
|
|
42
36
|
|
|
43
37
|
→ [Getting started](docs/getting-started.md) · [Your team's first pull request](docs/first-pr.md) · [Quickstart for joiners](docs/quickstart.md)
|
|
44
38
|
|
|
@@ -65,11 +59,11 @@ Everything else — packs, changes, the harness, ALM sync — is in `specgate --
|
|
|
65
59
|
|
|
66
60
|
Each level is useful on its own and never requires the ones above it.
|
|
67
61
|
|
|
68
|
-
| Level
|
|
69
|
-
|
|
|
70
|
-
| **L1** | Traceable specs in your repo
|
|
71
|
-
| **L2** | A PR gate enforcing spec and test coverage
|
|
72
|
-
| **L3** | Versioned, reusable domain requirements
|
|
62
|
+
| Level | You get | Commands | Cost |
|
|
63
|
+
| ------ | ------------------------------------------------ | ---------------------------- | ------- |
|
|
64
|
+
| **L1** | Traceable specs in your repo | `init`, `new`, `done` | ~1 hour |
|
|
65
|
+
| **L2** | A PR gate enforcing spec and test coverage | `check`, `ci init` | ~1 hour |
|
|
66
|
+
| **L3** | Versioned, reusable domain requirements | `specops add / sync / diff` | ~1 day |
|
|
73
67
|
| **L4** | Agent-driven delivery, one requirement at a time | `agents init`, `harness run` | ~1 week |
|
|
74
68
|
|
|
75
69
|
## 🛠️ What it does
|
|
@@ -88,6 +82,13 @@ and writes the feature files, so a merged proposal cannot quietly become
|
|
|
88
82
|
undone work.
|
|
89
83
|
→ [Your team's first pull request](docs/first-pr.md) · [Reviewing changes](docs/reviewing-changes.md)
|
|
90
84
|
|
|
85
|
+
**From a brief, or from OpenSpec.** `specgate draft --check` holds a draft
|
|
86
|
+
written from a client's brief to ten rules — scenarios per actor and surface,
|
|
87
|
+
sourced laws, every value in the brief or listed as an assumption, open
|
|
88
|
+
questions that block. Teams on OpenSpec keep it: `specgate verify` fails while
|
|
89
|
+
a change claims a scenario no test names.
|
|
90
|
+
→ [From a client brief](docs/from-a-brief.md) · [Already on OpenSpec](docs/openspec.md)
|
|
91
|
+
|
|
91
92
|
**Your agent works the same loop.** `specgate agents init` gives Claude Code,
|
|
92
93
|
Cursor, Copilot, Windsurf, Aider, Gemini, Cline, Codex or Antigravity the five
|
|
93
94
|
steps as slash commands (`/specgate:new`, `/specgate:done`, …) from one
|
|
@@ -102,26 +103,28 @@ upgrade as intent with `specops diff --as-change`, not as a file diff.
|
|
|
102
103
|
|
|
103
104
|
**Unattended delivery.** `specgate harness run` drives plan → agent → verify →
|
|
104
105
|
done for every pending requirement, each in its own git worktree; it never
|
|
105
|
-
merges. The agent is any shell command with `{prompt_file}
|
|
106
|
+
merges. The agent is any shell command with `{prompt_file}`; it stops where retrying cannot help.
|
|
106
107
|
`specgate alm sync` keeps Jira, Azure Boards or GitHub Issues in step.
|
|
107
108
|
→ [The harness](docs/harness.md) · [Jira, Azure Boards and GitHub Issues](docs/alm.md)
|
|
108
109
|
|
|
109
110
|
**Tested as you install it.** Every release runs an end-to-end suite over every
|
|
110
|
-
command, against the packed tarball, on Linux, macOS and Windows
|
|
111
|
+
command, against the packed tarball, on Linux, macOS and Windows; releases
|
|
112
|
+
since 0.14 come from building real products with it, from brief to running app.
|
|
111
113
|
|
|
112
114
|
## 🆚 How it compares
|
|
113
115
|
|
|
114
|
-
| Capability
|
|
115
|
-
|
|
|
116
|
-
| Change lifecycle
|
|
117
|
-
| Versioned domain packs
|
|
118
|
-
| Traceability matrix + CI gate
|
|
119
|
-
| Agent JSON contract
|
|
120
|
-
|
|
|
121
|
-
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
116
|
+
| Capability | **this** | [OpenSpec](https://github.com/Fission-AI/OpenSpec) | [spec-kit](https://github.com/github/spec-kit) | [Cursor rules](https://docs.cursor.com/context/rules-for-ai) | README only |
|
|
117
|
+
| -------------------------------------- | :--------------------: | :------------------------------------------------: | :--------------------------------------------: | :----------------------------------------------------------: | :---------: |
|
|
118
|
+
| Change lifecycle | ✅ | ✅ | ❌ | ❌ | ❌ |
|
|
119
|
+
| Versioned domain packs | ✅ | ❌ | ⚠️ | ❌ | ❌ |
|
|
120
|
+
| Traceability matrix + CI gate | ✅ | ❌ | ⚠️ | ❌ | ❌ |
|
|
121
|
+
| Agent JSON contract | ✅ | ✅ | ❌ | ❌ | ❌ |
|
|
122
|
+
| Draft checklist from a brief | ✅ | ❌ | ⚠️ | ❌ | ❌ |
|
|
123
|
+
| Proves OpenSpec's "done" against tests | ✅ `verify` | ❌ | ❌ | ❌ | ❌ |
|
|
124
|
+
| Vendor-neutral | ✅ | ✅ | ✅ | ❌ | ✅ |
|
|
125
|
+
| Commands to learn before the first PR | ✅ 5 (26 more, opt-in) | ✅ | ✅ | ✅ | ✅ |
|
|
126
|
+
|
|
127
|
+
OpenSpec is the closest tool: if you want the change loop without packs or an enforced matrix, it fits better.
|
|
125
128
|
→ [Full matrix, trade-offs and migration paths](docs/comparisons.md)
|
|
126
129
|
|
|
127
130
|
## 📚 Documentation
|
|
@@ -132,16 +135,13 @@ loop without versioned packs or an enforced matrix, theirs is the better fit.
|
|
|
132
135
|
|
|
133
136
|
## 🧰 Companion tools
|
|
134
137
|
|
|
135
|
-
[Language server](packages/lsp-spec-driven) · [VS Code extension](packages/vscode-spec-driven) ·
|
|
136
|
-
[
|
|
137
|
-
without Node · Docker image `ghcr.io/rsaglobaltech/specgate`
|
|
138
|
+
[Language server](packages/lsp-spec-driven) · [VS Code extension](packages/vscode-spec-driven) · [Maven](packages/maven-plugin) and
|
|
139
|
+
[Gradle](packages/gradle-plugin) plugins for builds without Node · Docker image `ghcr.io/rsaglobaltech/specgate`
|
|
138
140
|
|
|
139
141
|
## 🤝 Contributing
|
|
140
142
|
|
|
141
|
-
PRs welcome — see [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
142
|
-
|
|
143
|
-
[MAINTAINERS.md](MAINTAINERS.md) says who owns what;
|
|
144
|
-
[SECURITY.md](SECURITY.md) is how to report a vulnerability privately.
|
|
143
|
+
PRs welcome — see [CONTRIBUTING.md](CONTRIBUTING.md) (good first: templates, validator rules,
|
|
144
|
+
domain packs) · [MAINTAINERS.md](MAINTAINERS.md) · [SECURITY.md](SECURITY.md) for private reports.
|
|
145
145
|
|
|
146
146
|
## 📄 License
|
|
147
147
|
|
|
@@ -81,8 +81,8 @@ function planGateCheck(projectDir, testCmd) {
|
|
|
81
81
|
exports.NO_TEST_COMMAND_WARNING = Object.freeze({
|
|
82
82
|
message: "No test command configured — this checked the specification, not the code.",
|
|
83
83
|
fix: [
|
|
84
|
-
'
|
|
85
|
-
"every `done
|
|
84
|
+
'Configure it once with specgate config set test_cmd "<command>" (or pass',
|
|
85
|
+
"--test-cmd) so every `done` and `check` runs it. A requirement marked Implemented on a static",
|
|
86
86
|
"check alone is a claim nothing executed.",
|
|
87
87
|
],
|
|
88
88
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DoneVerification.js","sourceRoot":"","sources":["../../../../../packages/core/src/domain/DoneVerification.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;;;AAyCH,oDAwBC;AAUD,sCAKC;AA9CD;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAClC,UAAkB,EAClB,IAAsB;IAEtB,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;IAE9E,MAAM,YAAY,GAAG,CAAC,UAAU,CAAC,CAAC;IAClC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,0EAA0E;QAC1E,oEAAoE;QACpE,sEAAsE;QACtE,oEAAoE;QACpE,yEAAyE;QACzE,2DAA2D;QAC3D,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,IAAI,CAAC,KAAK;QAAE,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAE9D,MAAM,KAAK,GAAuB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;IAE9E,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,IAAI,OAAO,KAAK,EAAE;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAEpE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,KAAK,EAAE,EAAE,CAAC;AACpD,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,aAAa,CAAC,UAAkB,EAAE,OAAgB;IAChE,MAAM,KAAK,GAAuB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;IAC1F,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,GAAG,KAAK,EAAE;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5D,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC;AAChD,CAAC;AAED,mEAAmE;AACtD,QAAA,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC;IACnD,OAAO,EAAE,4EAA4E;IACrF,GAAG,EAAE;QACH,
|
|
1
|
+
{"version":3,"file":"DoneVerification.js","sourceRoot":"","sources":["../../../../../packages/core/src/domain/DoneVerification.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;;;AAyCH,oDAwBC;AAUD,sCAKC;AA9CD;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAClC,UAAkB,EAClB,IAAsB;IAEtB,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;IAE9E,MAAM,YAAY,GAAG,CAAC,UAAU,CAAC,CAAC;IAClC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,0EAA0E;QAC1E,oEAAoE;QACpE,sEAAsE;QACtE,oEAAoE;QACpE,yEAAyE;QACzE,2DAA2D;QAC3D,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,IAAI,CAAC,KAAK;QAAE,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAE9D,MAAM,KAAK,GAAuB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;IAE9E,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,IAAI,OAAO,KAAK,EAAE;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAEpE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,KAAK,EAAE,EAAE,CAAC;AACpD,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,aAAa,CAAC,UAAkB,EAAE,OAAgB;IAChE,MAAM,KAAK,GAAuB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;IAC1F,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,GAAG,KAAK,EAAE;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5D,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC;AAChD,CAAC;AAED,mEAAmE;AACtD,QAAA,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC;IACnD,OAAO,EAAE,4EAA4E;IACrF,GAAG,EAAE;QACH,0EAA0E;QAC1E,+FAA+F;QAC/F,0CAA0C;KAC3C;CACF,CAAC,CAAC"}
|
|
@@ -53,13 +53,32 @@ exports.previousFailureFromPrompt = previousFailureFromPrompt;
|
|
|
53
53
|
* well have dropped a note in that directory.
|
|
54
54
|
*/
|
|
55
55
|
function parseArchivedPromptName(fileName) {
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
// Taken apart by hand: `^(REQ-\d+)-(.+)-attempt-(\d+)-([^.]+)\.md$` ran
|
|
57
|
+
// polynomially on names with many "-attempt-" (CodeQL js/polynomial-redos).
|
|
58
|
+
// Same result — the stamp runs to the last "-attempt-", as `.+` did.
|
|
59
|
+
if (!fileName.endsWith(".md"))
|
|
58
60
|
return null;
|
|
59
|
-
const
|
|
61
|
+
const base = fileName.slice(0, -3);
|
|
62
|
+
const req = /^REQ-\d+-/.exec(base);
|
|
63
|
+
if (!req)
|
|
64
|
+
return null;
|
|
65
|
+
const rest = base.slice(req[0].length);
|
|
66
|
+
const at = rest.lastIndexOf("-attempt-");
|
|
67
|
+
if (at < 1)
|
|
68
|
+
return null;
|
|
69
|
+
const stamp = rest.slice(0, at);
|
|
70
|
+
const tail = rest.slice(at + "-attempt-".length);
|
|
71
|
+
const dash = tail.indexOf("-");
|
|
72
|
+
if (dash < 1)
|
|
73
|
+
return null;
|
|
74
|
+
const digits = tail.slice(0, dash);
|
|
75
|
+
const role = tail.slice(dash + 1);
|
|
76
|
+
if (!/^\d+$/.test(digits) || role === "" || role.includes("."))
|
|
77
|
+
return null;
|
|
78
|
+
const attempt = Number(digits);
|
|
60
79
|
if (!Number.isInteger(attempt) || attempt < 1)
|
|
61
80
|
return null;
|
|
62
|
-
return { requirement:
|
|
81
|
+
return { requirement: req[0].slice(0, -1), stamp, attempt, role, fileName };
|
|
63
82
|
}
|
|
64
83
|
/**
|
|
65
84
|
* Where to pick up, given the archive filenames and how the last attempt ended.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResumeState.js","sourceRoot":"","sources":["../../../../../packages/core/src/domain/ResumeState.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;;AAkBH,
|
|
1
|
+
{"version":3,"file":"ResumeState.js","sourceRoot":"","sources":["../../../../../packages/core/src/domain/ResumeState.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
*/
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
34
|
exports.renderRequirementSection = renderRequirementSection;
|
|
35
|
+
exports.templateObligationLines = templateObligationLines;
|
|
35
36
|
exports.hasRequirementSection = hasRequirementSection;
|
|
36
37
|
exports.requirementSections = requirementSections;
|
|
37
38
|
exports.appendRequirementSection = appendRequirementSection;
|
|
@@ -50,6 +51,29 @@ function renderRequirementSection(reqId, title) {
|
|
|
50
51
|
`obligation — what must hold, under which conditions, and how it is ` +
|
|
51
52
|
`observed.\n`);
|
|
52
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* The lines of a requirement section that are still what `specgate new` wrote
|
|
56
|
+
* (#67). Empty once the author has replaced them.
|
|
57
|
+
*
|
|
58
|
+
* The placeholder above passes `--strict-requirements` on purpose, so nothing
|
|
59
|
+
* else in the gate notices it: `done` closed a requirement whose only
|
|
60
|
+
* obligation was "The system MUST satisfy: <its title>." The sentence is
|
|
61
|
+
* matched against the section's own title, so a real obligation that happens
|
|
62
|
+
* to start with "satisfy:" is not mistaken for it.
|
|
63
|
+
*/
|
|
64
|
+
function templateObligationLines(section) {
|
|
65
|
+
const lines = String(section || "")
|
|
66
|
+
.replace(/\r\n/g, "\n")
|
|
67
|
+
.split("\n");
|
|
68
|
+
const heading = /^#{2,4}\s+REQ-[A-Za-z0-9.]+\s+—\s+(.*)$/.exec((lines[0] || "").trim());
|
|
69
|
+
const title = heading ? heading[1].trim() : null;
|
|
70
|
+
return lines
|
|
71
|
+
.map((l) => l.trim())
|
|
72
|
+
.filter((l) => l.startsWith("> Written by Specgate. Replace this sentence") ||
|
|
73
|
+
(title !== null &&
|
|
74
|
+
(l === `The system MUST satisfy: ${title}.` ||
|
|
75
|
+
l === "The system MUST satisfy: the behaviour named above.")));
|
|
76
|
+
}
|
|
53
77
|
/**
|
|
54
78
|
* A requirement heading, at any level from `##` to `####`.
|
|
55
79
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpecSections.js","sourceRoot":"","sources":["../../../../../packages/core/src/domain/SpecSections.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;;AAGH,4DAcC;AAyDD,sDAWC;AAQD,kDAiBC;AASD,4DAcC;AAQD,8DAkCC;
|
|
1
|
+
{"version":3,"file":"SpecSections.js","sourceRoot":"","sources":["../../../../../packages/core/src/domain/SpecSections.ts"],"names":[],"mappings":"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"}
|
|
@@ -158,13 +158,45 @@ const isTraceLine = (line) => {
|
|
|
158
158
|
const t = line.trim();
|
|
159
159
|
return (t.startsWith("<!--") && t.endsWith("-->") && t.slice(4).trimStart().startsWith("csda:trace"));
|
|
160
160
|
};
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
161
|
+
/**
|
|
162
|
+
* A trace's attributes without `status=`, sorted: `specgate done` writes the
|
|
163
|
+
* status and also rewrites the attribute order (`actor=` moved after
|
|
164
|
+
* `feature=`), so comparing the text missed a status-only change and
|
|
165
|
+
* write-scope rejected it anyway (#65). Tokens are read by hand — a quoted
|
|
166
|
+
* value may hold spaces — so the scan stays linear (CodeQL polynomial-redos).
|
|
167
|
+
*/
|
|
168
|
+
const attributesWithoutStatus = (line) => {
|
|
169
|
+
const t = line.trim();
|
|
170
|
+
const body = t.slice(t.indexOf("csda:trace") + "csda:trace".length, t.lastIndexOf("-->"));
|
|
171
|
+
const tokens = [];
|
|
172
|
+
let current = "";
|
|
173
|
+
let quote = "";
|
|
174
|
+
for (const ch of body) {
|
|
175
|
+
if (quote) {
|
|
176
|
+
current += ch;
|
|
177
|
+
if (ch === quote)
|
|
178
|
+
quote = "";
|
|
179
|
+
}
|
|
180
|
+
else if (ch === '"' || ch === "'") {
|
|
181
|
+
current += ch;
|
|
182
|
+
quote = ch;
|
|
183
|
+
}
|
|
184
|
+
else if (ch === " " || ch === "\t") {
|
|
185
|
+
if (current)
|
|
186
|
+
tokens.push(current);
|
|
187
|
+
current = "";
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
current += ch;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
if (current)
|
|
194
|
+
tokens.push(current);
|
|
195
|
+
return tokens
|
|
196
|
+
.filter((x) => !x.startsWith("status="))
|
|
197
|
+
.sort()
|
|
198
|
+
.join(" ");
|
|
199
|
+
};
|
|
168
200
|
/**
|
|
169
201
|
* Whether a unified diff (`git diff -U0`) changes nothing but the `status=` of
|
|
170
202
|
* `csda:trace` lines — exactly what `specgate done` writes.
|
|
@@ -188,6 +220,8 @@ function onlyTraceStatusChanged(diff) {
|
|
|
188
220
|
}
|
|
189
221
|
if (removed.length === 0 || removed.length !== added.length)
|
|
190
222
|
return false;
|
|
191
|
-
return removed.every((r, i) => isTraceLine(r) &&
|
|
223
|
+
return removed.every((r, i) => isTraceLine(r) &&
|
|
224
|
+
isTraceLine(added[i]) &&
|
|
225
|
+
attributesWithoutStatus(r) === attributesWithoutStatus(added[i]));
|
|
192
226
|
}
|
|
193
227
|
//# sourceMappingURL=WriteScope.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WriteScope.js","sourceRoot":"","sources":["../../../../../packages/core/src/domain/WriteScope.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;;;AAmDH,kCA4BC;AAGD,8CAMC;AAQD,0CAUC;AAYD,wCAqBC;
|
|
1
|
+
{"version":3,"file":"WriteScope.js","sourceRoot":"","sources":["../../../../../packages/core/src/domain/WriteScope.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,6 +65,7 @@ exports.resolveProfileAgent = resolveProfileAgent;
|
|
|
65
65
|
exports.resolveHarnessSettings = resolveHarnessSettings;
|
|
66
66
|
exports.readProfileRules = readProfileRules;
|
|
67
67
|
exports.readCostHints = readCostHints;
|
|
68
|
+
exports.writeHarnessTestCmd = writeHarnessTestCmd;
|
|
68
69
|
const fs = __importStar(require("node:fs"));
|
|
69
70
|
const path = __importStar(require("node:path"));
|
|
70
71
|
const YamlLite_1 = require("../domain/YamlLite");
|
|
@@ -380,4 +381,32 @@ function isAdvisoryProfile(projectDir, profileName) {
|
|
|
380
381
|
const profile = (doc.profiles || {})[profileName];
|
|
381
382
|
return Boolean(profile && profile.advisory === true);
|
|
382
383
|
}
|
|
384
|
+
/**
|
|
385
|
+
* Set `test_cmd:` in harness.config.yaml, creating the file when there is none
|
|
386
|
+
* (#68). `check` and `done` read the test command from here, and until this
|
|
387
|
+
* existed only `harness init` wrote it — a command that talks about agents and
|
|
388
|
+
* prompts to a team that does not use the harness. Every other line is kept:
|
|
389
|
+
* the first `test_cmd:` line (or the commented one `harness init` leaves when it
|
|
390
|
+
* detects nothing) is replaced, otherwise the key is appended.
|
|
391
|
+
*/
|
|
392
|
+
function writeHarnessTestCmd(projectDir, testCmd) {
|
|
393
|
+
const filePath = path.join(projectDir, exports.HARNESS_CONFIG_FILE);
|
|
394
|
+
const quoted = /["\\]/.test(testCmd) ? `'${testCmd.replace(/'/g, "''")}'` : `"${testCmd}"`;
|
|
395
|
+
const line = `test_cmd: ${quoted}`;
|
|
396
|
+
if (!fs.existsSync(filePath)) {
|
|
397
|
+
fs.writeFileSync(filePath, `harness_version: 1\n${line}\n`, "utf8");
|
|
398
|
+
return filePath;
|
|
399
|
+
}
|
|
400
|
+
const lines = fs.readFileSync(filePath, "utf8").split("\n");
|
|
401
|
+
const at = lines.findIndex((l) => /^#?\s*test_cmd:/.test(l));
|
|
402
|
+
if (at >= 0)
|
|
403
|
+
lines[at] = line;
|
|
404
|
+
else {
|
|
405
|
+
if (lines[lines.length - 1] === "")
|
|
406
|
+
lines.pop();
|
|
407
|
+
lines.push(line, "");
|
|
408
|
+
}
|
|
409
|
+
fs.writeFileSync(filePath, lines.join("\n"), "utf8");
|
|
410
|
+
return filePath;
|
|
411
|
+
}
|
|
383
412
|
//# sourceMappingURL=HarnessConfigFile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HarnessConfigFile.js","sourceRoot":"","sources":["../../../../../packages/core/src/infrastructure/HarnessConfigFile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HarnessConfigFile.js","sourceRoot":"","sources":["../../../../../packages/core/src/infrastructure/HarnessConfigFile.ts"],"names":[],"mappings":"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"}
|
|
@@ -143,4 +143,16 @@ const SpecSections_1 = require("../../src/domain/SpecSections");
|
|
|
143
143
|
assert.equal((0, SpecSections_1.hasRequirementSection)(spec, "REQ-005"), false, `'${cell}' should not count`);
|
|
144
144
|
}
|
|
145
145
|
});
|
|
146
|
+
(0, node_test_1.test)("the generated obligation is recognised until it is replaced (#67)", () => {
|
|
147
|
+
const section = (0, SpecSections_1.renderRequirementSection)("REQ-002", "El carrito suma el total");
|
|
148
|
+
assert.equal((0, SpecSections_1.templateObligationLines)(section).length, 2);
|
|
149
|
+
const rewritten = section
|
|
150
|
+
.replace("The system MUST satisfy: El carrito suma el total.", "El sistema DEBE sumar precio por cantidad de cada línea.")
|
|
151
|
+
.replace(/^> Written by Specgate\..*$/m, "");
|
|
152
|
+
assert.deepEqual((0, SpecSections_1.templateObligationLines)(rewritten), []);
|
|
153
|
+
});
|
|
154
|
+
(0, node_test_1.test)("a real obligation that says 'satisfy:' is not the template", () => {
|
|
155
|
+
const section = "## REQ-003 — Orders are valid\n\nThe system MUST satisfy: every rule in docs/rules.md.\n";
|
|
156
|
+
assert.deepEqual((0, SpecSections_1.templateObligationLines)(section), []);
|
|
157
|
+
});
|
|
146
158
|
//# sourceMappingURL=spec-sections.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-sections.test.js","sourceRoot":"","sources":["../../../../../packages/core/test/unit/spec-sections.test.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,yCAAiC;AACjC,2DAA6C;AAE7C,
|
|
1
|
+
{"version":3,"file":"spec-sections.test.js","sourceRoot":"","sources":["../../../../../packages/core/test/unit/spec-sections.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,4 +47,8 @@ const TRACE = "<!-- csda:trace feature=features/feedback/REQ-212.feature kind=bu
|
|
|
47
47
|
assert.equal((0, WriteScope_1.onlyTraceStatusChanged)(diff("- ENTONCES no sale ningún correo", "- ENTONCES sale un correo")), false);
|
|
48
48
|
assert.equal((0, WriteScope_1.onlyTraceStatusChanged)(""), false);
|
|
49
49
|
});
|
|
50
|
+
(0, node_test_1.test)("#65: done also reorders the attributes; still a status-only change", () => {
|
|
51
|
+
assert.equal((0, WriteScope_1.onlyTraceStatusChanged)(diff("<!-- csda:trace actor=Propietario feature=features/escaparate/REQ-220.feature kind=functional -->", "<!-- csda:trace status=Implemented feature=features/escaparate/REQ-220.feature actor=Propietario kind=functional -->")), true);
|
|
52
|
+
assert.equal((0, WriteScope_1.onlyTraceStatusChanged)(diff('<!-- csda:trace actor=Cliente status="Needs Clarification" kind=functional -->', "<!-- csda:trace kind=functional actor=Cliente -->")), true, "a quoted status with a space is one attribute");
|
|
53
|
+
});
|
|
50
54
|
//# sourceMappingURL=write-scope-status.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-scope-status.test.js","sourceRoot":"","sources":["../../../../../packages/core/test/unit/write-scope-status.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gGAAgG;AAChG,yCAAiC;AACjC,2DAA6C;AAC7C,4DAAqE;AAErE,MAAM,IAAI,GAAG,CAAC,MAAc,EAAE,KAAa,EAAE,EAAE,CAC7C,yDAAyD,MAAM,MAAM,KAAK,IAAI,CAAC;AACjF,MAAM,KAAK,GAAG,kFAAkF,CAAC;AAEjG,IAAA,gBAAI,EAAC,2DAA2D,EAAE,GAAG,EAAE;IACrE,MAAM,CAAC,KAAK,CACV,IAAA,mCAAsB,EACpB,IAAI,CACF,KAAK,EACL,qGAAqG,CACtG,CACF,EACD,IAAI,CACL,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,gBAAI,EAAC,yDAAyD,EAAE,GAAG,EAAE;IACnE,MAAM,CAAC,KAAK,CACV,IAAA,mCAAsB,EACpB,IAAI,CACF,KAAK,EACL,0FAA0F,CAC3F,CACF,EACD,KAAK,CACN,CAAC;IACF,MAAM,CAAC,KAAK,CACV,IAAA,mCAAsB,EAAC,IAAI,CAAC,kCAAkC,EAAE,2BAA2B,CAAC,CAAC,EAC7F,KAAK,CACN,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,IAAA,mCAAsB,EAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"write-scope-status.test.js","sourceRoot":"","sources":["../../../../../packages/core/test/unit/write-scope-status.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gGAAgG;AAChG,yCAAiC;AACjC,2DAA6C;AAC7C,4DAAqE;AAErE,MAAM,IAAI,GAAG,CAAC,MAAc,EAAE,KAAa,EAAE,EAAE,CAC7C,yDAAyD,MAAM,MAAM,KAAK,IAAI,CAAC;AACjF,MAAM,KAAK,GAAG,kFAAkF,CAAC;AAEjG,IAAA,gBAAI,EAAC,2DAA2D,EAAE,GAAG,EAAE;IACrE,MAAM,CAAC,KAAK,CACV,IAAA,mCAAsB,EACpB,IAAI,CACF,KAAK,EACL,qGAAqG,CACtG,CACF,EACD,IAAI,CACL,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,gBAAI,EAAC,yDAAyD,EAAE,GAAG,EAAE;IACnE,MAAM,CAAC,KAAK,CACV,IAAA,mCAAsB,EACpB,IAAI,CACF,KAAK,EACL,0FAA0F,CAC3F,CACF,EACD,KAAK,CACN,CAAC;IACF,MAAM,CAAC,KAAK,CACV,IAAA,mCAAsB,EAAC,IAAI,CAAC,kCAAkC,EAAE,2BAA2B,CAAC,CAAC,EAC7F,KAAK,CACN,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,IAAA,mCAAsB,EAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC;AAEH,IAAA,gBAAI,EAAC,oEAAoE,EAAE,GAAG,EAAE;IAC9E,MAAM,CAAC,KAAK,CACV,IAAA,mCAAsB,EACpB,IAAI,CACF,mGAAmG,EACnG,sHAAsH,CACvH,CACF,EACD,IAAI,CACL,CAAC;IACF,MAAM,CAAC,KAAK,CACV,IAAA,mCAAsB,EACpB,IAAI,CACF,gFAAgF,EAChF,mDAAmD,CACpD,CACF,EACD,IAAI,EACJ,+CAA+C,CAChD,CAAC;AACJ,CAAC,CAAC,CAAC"}
|