@rsaglobaltech/specgate 0.16.0 → 0.17.1
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 +72 -0
- package/dist/packages/core/src/application/ArchiveChangeUseCase.js +6 -1
- package/dist/packages/core/src/application/ArchiveChangeUseCase.js.map +1 -1
- package/dist/packages/core/src/application/GenerateAgentPromptUseCase.js +10 -1
- package/dist/packages/core/src/application/GenerateAgentPromptUseCase.js.map +1 -1
- package/dist/packages/core/src/domain/AgentPrompt.js +2 -2
- package/dist/packages/core/src/domain/AgentPrompt.js.map +1 -1
- package/dist/packages/core/src/domain/DeltaFeature.js +66 -4
- package/dist/packages/core/src/domain/DeltaFeature.js.map +1 -1
- package/dist/packages/core/src/domain/DraftChecklist.js +87 -5
- package/dist/packages/core/src/domain/DraftChecklist.js.map +1 -1
- package/dist/packages/core/src/domain/GherkinQuality.js +11 -3
- package/dist/packages/core/src/domain/GherkinQuality.js.map +1 -1
- package/dist/packages/core/src/domain/HarnessReport.js +2 -0
- package/dist/packages/core/src/domain/HarnessReport.js.map +1 -1
- package/dist/packages/core/src/domain/HarnessRun.js.map +1 -1
- package/dist/packages/core/src/domain/MultiStack.js +2 -2
- package/dist/packages/core/src/domain/MultiStack.js.map +1 -1
- package/dist/packages/core/src/domain/RetryPolicy.js +50 -0
- package/dist/packages/core/src/domain/RetryPolicy.js.map +1 -0
- package/dist/packages/core/src/domain/WriteScope.js +1 -0
- package/dist/packages/core/src/domain/WriteScope.js.map +1 -1
- package/dist/packages/core/test/unit/delta-feature.test.js +25 -0
- package/dist/packages/core/test/unit/delta-feature.test.js.map +1 -1
- package/dist/packages/core/test/unit/gherkin-quality.test.js +19 -1
- package/dist/packages/core/test/unit/gherkin-quality.test.js.map +1 -1
- package/dist/packages/core/test/unit/retry-policy.test.js +59 -0
- package/dist/packages/core/test/unit/retry-policy.test.js.map +1 -0
- package/dist/scripts/agents/commands.js +2 -2
- package/dist/scripts/agents/commands.js.map +1 -1
- package/dist/scripts/agents/contract-file.js +165 -0
- package/dist/scripts/agents/contract-file.js.map +1 -0
- package/dist/scripts/agents/detect.js +97 -0
- package/dist/scripts/agents/detect.js.map +1 -0
- package/dist/scripts/agents/init.js +59 -35
- package/dist/scripts/agents/init.js.map +1 -1
- package/dist/scripts/change/instructions.js +14 -6
- package/dist/scripts/change/instructions.js.map +1 -1
- package/dist/scripts/cli/commands/harness/RunCommand.js +37 -3
- package/dist/scripts/cli/commands/harness/RunCommand.js.map +1 -1
- package/dist/scripts/cli/commands/project/AdoptCommand.js +42 -5
- package/dist/scripts/cli/commands/project/AdoptCommand.js.map +1 -1
- package/dist/scripts/cli/commands/project/InitProjectCommand.js +39 -6
- package/dist/scripts/cli/commands/project/InitProjectCommand.js.map +1 -1
- package/dist/scripts/cli/commands/project/UpdateCommand.js +18 -3
- package/dist/scripts/cli/commands/project/UpdateCommand.js.map +1 -1
- package/dist/scripts/cli/commands/quality/CheckCommand.js +14 -2
- package/dist/scripts/cli/commands/quality/CheckCommand.js.map +1 -1
- package/dist/scripts/cli/commands/quality/DoctorCommand.js +11 -6
- package/dist/scripts/cli/commands/quality/DoctorCommand.js.map +1 -1
- package/dist/scripts/cli/commands/quality/ValidateSpecsCommand.js +5 -2
- package/dist/scripts/cli/commands/quality/ValidateSpecsCommand.js.map +1 -1
- package/dist/scripts/cli/commands/spec/DraftCommand.js +2 -1
- package/dist/scripts/cli/commands/spec/DraftCommand.js.map +1 -1
- package/dist/scripts/cli/commands/spec/StatusCommand.js +8 -1
- package/dist/scripts/cli/commands/spec/StatusCommand.js.map +1 -1
- package/dist/scripts/cli/commands/specops/SyncCommand.js +21 -1
- package/dist/scripts/cli/commands/specops/SyncCommand.js.map +1 -1
- package/dist/scripts/docs/nav.js +98 -88
- package/dist/scripts/docs/nav.js.map +1 -1
- package/dist/scripts/harness/init.js +72 -50
- package/dist/scripts/harness/init.js.map +1 -1
- package/package.json +1 -1
- package/templates/adopt/stack-rules.md +3 -0
- package/templates/backend/stack-rules.md +2 -0
- package/templates/base/AGENTS.md.tpl +30 -32
- package/templates/frontend/stack-rules.md +2 -0
- package/templates/mobile/stack-rules.md +7 -0
- package/templates/adopt/AI_RULES.md.tpl +0 -27
- package/templates/backend/AI_RULES.md.tpl +0 -35
- package/templates/frontend/AI_RULES.md.tpl +0 -34
- package/templates/mobile/AI_RULES.md.tpl +0 -56
package/dist/scripts/docs/nav.js
CHANGED
|
@@ -18,15 +18,21 @@ exports.NAV = void 0;
|
|
|
18
18
|
exports.navSlugs = navSlugs;
|
|
19
19
|
exports.navEntry = navEntry;
|
|
20
20
|
exports.neighbours = neighbours;
|
|
21
|
+
/**
|
|
22
|
+
* Simplification plan, phase 6: six places a reader goes, in the order they
|
|
23
|
+
* need them — start, every day, the gate, existing code, reference,
|
|
24
|
+
* extensions — and everything else under "Advanced". Every shipped document
|
|
25
|
+
* is still in exactly one section.
|
|
26
|
+
*/
|
|
21
27
|
exports.NAV = [
|
|
22
28
|
{
|
|
23
|
-
title: "Start
|
|
29
|
+
title: "Start",
|
|
24
30
|
icon: "rocket",
|
|
25
|
-
summary: "
|
|
31
|
+
summary: "Ten minutes from nothing to your first requirement through the gate.",
|
|
26
32
|
entries: [
|
|
27
33
|
{
|
|
28
34
|
slug: "getting-started",
|
|
29
|
-
label: "
|
|
35
|
+
label: "Quickstart — 10 minutes",
|
|
30
36
|
blurb: "Install, scaffold a project, and run the gate for the first time.",
|
|
31
37
|
},
|
|
32
38
|
{
|
|
@@ -34,59 +40,95 @@ exports.NAV = [
|
|
|
34
40
|
label: "You cloned a repo",
|
|
35
41
|
blurb: "Someone handed you a spec-driven repository. Start here instead.",
|
|
36
42
|
},
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
title: "Every day",
|
|
47
|
+
icon: "file",
|
|
48
|
+
summary: "The loop a team runs on every pull request.",
|
|
49
|
+
entries: [
|
|
37
50
|
{
|
|
38
51
|
slug: "first-pr",
|
|
39
52
|
label: "Your team's first PR",
|
|
40
53
|
blurb: "What the author writes, what the reviewer reads, and what to do when check fails.",
|
|
41
54
|
},
|
|
42
55
|
{
|
|
43
|
-
slug: "
|
|
44
|
-
label: "
|
|
45
|
-
blurb: "
|
|
56
|
+
slug: "writing-specs",
|
|
57
|
+
label: "Writing specs",
|
|
58
|
+
blurb: "Requirements, scenarios and the traceability matrix.",
|
|
46
59
|
},
|
|
47
60
|
{
|
|
48
|
-
slug: "
|
|
49
|
-
label: "
|
|
50
|
-
blurb: "
|
|
61
|
+
slug: "reviewing-changes",
|
|
62
|
+
label: "Reviewing changes",
|
|
63
|
+
blurb: "Propose, review and archive a change to specs that already shipped.",
|
|
51
64
|
},
|
|
52
65
|
],
|
|
53
66
|
},
|
|
54
67
|
{
|
|
55
|
-
title: "
|
|
56
|
-
icon: "
|
|
57
|
-
summary: "What a
|
|
68
|
+
title: "The gate in CI",
|
|
69
|
+
icon: "server",
|
|
70
|
+
summary: "What fails a pull request, and how to wire it in.",
|
|
58
71
|
entries: [
|
|
59
72
|
{
|
|
60
|
-
slug: "
|
|
61
|
-
label: "
|
|
62
|
-
blurb: "
|
|
73
|
+
slug: "validating",
|
|
74
|
+
label: "Validating",
|
|
75
|
+
blurb: "Every check the gate runs, what each status owes, and the flags behind check.",
|
|
63
76
|
},
|
|
64
77
|
{
|
|
65
|
-
slug: "
|
|
66
|
-
label: "
|
|
67
|
-
blurb: "
|
|
78
|
+
slug: "automation",
|
|
79
|
+
label: "Automation",
|
|
80
|
+
blurb: "Generate the gate for GitHub, GitLab, Azure or Jenkins.",
|
|
68
81
|
},
|
|
82
|
+
],
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
title: "Existing code",
|
|
86
|
+
icon: "compass",
|
|
87
|
+
summary: "Adopting Specgate on a repository that already ships.",
|
|
88
|
+
entries: [
|
|
69
89
|
{
|
|
70
|
-
slug: "
|
|
71
|
-
label: "
|
|
72
|
-
blurb: "
|
|
90
|
+
slug: "case-studies/case-1",
|
|
91
|
+
label: "Worked example: brownfield adoption",
|
|
92
|
+
blurb: "An illustration — invented company, constructed numbers — of the workflow end to end.",
|
|
73
93
|
},
|
|
74
94
|
{
|
|
75
|
-
slug: "
|
|
76
|
-
label: "
|
|
77
|
-
blurb: "
|
|
95
|
+
slug: "comparisons",
|
|
96
|
+
label: "Comparisons",
|
|
97
|
+
blurb: "How this differs from OpenSpec, Spec Kit and writing it yourself.",
|
|
78
98
|
},
|
|
99
|
+
],
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
title: "Reference",
|
|
103
|
+
icon: "book",
|
|
104
|
+
summary: "Every command, the ideas behind them, and what to do when something fails.",
|
|
105
|
+
entries: [
|
|
79
106
|
{
|
|
80
|
-
slug: "
|
|
81
|
-
label: "
|
|
82
|
-
blurb: "
|
|
107
|
+
slug: "commands",
|
|
108
|
+
label: "Command reference",
|
|
109
|
+
blurb: "Every command, its flags and its JSON shape.",
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
slug: "concepts",
|
|
113
|
+
label: "How Specgate thinks",
|
|
114
|
+
blurb: "Six ideas — requirement, scenario, mention, generated matrix, status, one gate — that explain every command.",
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
slug: "faq",
|
|
118
|
+
label: "FAQ",
|
|
119
|
+
blurb: "The questions a team asks in its first week, answered in two lines each.",
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
slug: "troubleshooting",
|
|
123
|
+
label: "Troubleshooting",
|
|
124
|
+
blurb: "When the gate says no and you disagree.",
|
|
83
125
|
},
|
|
84
126
|
],
|
|
85
127
|
},
|
|
86
128
|
{
|
|
87
|
-
title: "
|
|
129
|
+
title: "Extensions",
|
|
88
130
|
icon: "robot",
|
|
89
|
-
summary: "
|
|
131
|
+
summary: "Agents, MCP, the harness, domain packs and your issue tracker.",
|
|
90
132
|
entries: [
|
|
91
133
|
{
|
|
92
134
|
slug: "agents",
|
|
@@ -98,64 +140,47 @@ exports.NAV = [
|
|
|
98
140
|
label: "The MCP server",
|
|
99
141
|
blurb: "The daily loop as tools for Claude Desktop, Cursor and other MCP clients, and the guard on the spec.",
|
|
100
142
|
},
|
|
101
|
-
{
|
|
102
|
-
slug: "agent-setup",
|
|
103
|
-
label: "Choosing your agent",
|
|
104
|
-
blurb: "Claude, Aider, Cursor or a three-line wrapper — and the two things that bite.",
|
|
105
|
-
},
|
|
106
143
|
{
|
|
107
144
|
slug: "harness",
|
|
108
145
|
label: "The harness",
|
|
109
146
|
blurb: "Unattended delivery: plan → agent → gate → done, one worktree per requirement.",
|
|
110
147
|
},
|
|
111
148
|
{
|
|
112
|
-
slug: "
|
|
113
|
-
label: "
|
|
114
|
-
blurb: "
|
|
115
|
-
},
|
|
116
|
-
],
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
title: "Running it for real",
|
|
120
|
-
icon: "server",
|
|
121
|
-
summary: "CI, boards, and the things an enterprise asks before it says yes.",
|
|
122
|
-
entries: [
|
|
123
|
-
{
|
|
124
|
-
slug: "automation",
|
|
125
|
-
label: "Automation",
|
|
126
|
-
blurb: "Generate the gate for GitHub, GitLab, Azure or Jenkins.",
|
|
149
|
+
slug: "domain-packs",
|
|
150
|
+
label: "Domain packs",
|
|
151
|
+
blurb: "Install a curated domain model instead of writing one from scratch.",
|
|
127
152
|
},
|
|
128
153
|
{
|
|
129
154
|
slug: "alm",
|
|
130
155
|
label: "Jira, Azure Boards, GitHub",
|
|
131
156
|
blurb: "Mirror requirements onto a board without letting the board define them.",
|
|
132
157
|
},
|
|
133
|
-
{
|
|
134
|
-
slug: "deployment",
|
|
135
|
-
label: "Deployment",
|
|
136
|
-
blurb: "How specgate's own docs site, npm package and container image are published.",
|
|
137
|
-
},
|
|
138
|
-
{
|
|
139
|
-
slug: "supply-chain",
|
|
140
|
-
label: "Supply chain",
|
|
141
|
-
blurb: "SBOM, licences, provenance and what ships in the tarball.",
|
|
142
|
-
},
|
|
143
158
|
],
|
|
144
159
|
},
|
|
145
160
|
{
|
|
146
|
-
title: "
|
|
161
|
+
title: "Advanced",
|
|
147
162
|
icon: "book",
|
|
148
|
-
summary: "
|
|
163
|
+
summary: "Longer reads, setups and the reasons behind the design.",
|
|
149
164
|
entries: [
|
|
150
165
|
{
|
|
151
|
-
slug: "
|
|
152
|
-
label: "
|
|
153
|
-
blurb: "
|
|
166
|
+
slug: "walkthrough",
|
|
167
|
+
label: "Walkthrough",
|
|
168
|
+
blurb: "The whole loop end to end, in one sitting.",
|
|
154
169
|
},
|
|
155
170
|
{
|
|
156
|
-
slug: "
|
|
157
|
-
label: "
|
|
158
|
-
blurb: "
|
|
171
|
+
slug: "tutorial",
|
|
172
|
+
label: "Tutorial: Smart Parking",
|
|
173
|
+
blurb: "A complete worked example, from a blank folder to a delivered requirement.",
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
slug: "agent-setup",
|
|
177
|
+
label: "Choosing your agent",
|
|
178
|
+
blurb: "Claude, Aider, Cursor or a three-line wrapper — and the two things that bite.",
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
slug: "bootstrap-prompt",
|
|
182
|
+
label: "Bootstrap prompt",
|
|
183
|
+
blurb: "The prompt that turns an idea into a first specification.",
|
|
159
184
|
},
|
|
160
185
|
{
|
|
161
186
|
slug: "how-to",
|
|
@@ -163,40 +188,25 @@ exports.NAV = [
|
|
|
163
188
|
blurb: "Short answers to specific questions.",
|
|
164
189
|
},
|
|
165
190
|
{
|
|
166
|
-
slug: "
|
|
167
|
-
label: "
|
|
168
|
-
blurb: "
|
|
191
|
+
slug: "deployment",
|
|
192
|
+
label: "Deployment",
|
|
193
|
+
blurb: "How specgate's own docs site, npm package and container image are published.",
|
|
169
194
|
},
|
|
170
195
|
{
|
|
171
|
-
slug: "
|
|
172
|
-
label: "
|
|
173
|
-
blurb: "
|
|
196
|
+
slug: "supply-chain",
|
|
197
|
+
label: "Supply chain",
|
|
198
|
+
blurb: "SBOM, licences, provenance and what ships in the tarball.",
|
|
174
199
|
},
|
|
175
200
|
{
|
|
176
201
|
slug: "release-process",
|
|
177
202
|
label: "Release process",
|
|
178
203
|
blurb: "How a version is cut, and what support it gets.",
|
|
179
204
|
},
|
|
180
|
-
],
|
|
181
|
-
},
|
|
182
|
-
{
|
|
183
|
-
// These two were published and linked from nowhere. They are the two
|
|
184
|
-
// documents that explain *why* the tool is shaped this way, which makes
|
|
185
|
-
// them the wrong ones to leave unreachable.
|
|
186
|
-
title: "Background",
|
|
187
|
-
icon: "compass",
|
|
188
|
-
summary: "Why it works this way.",
|
|
189
|
-
entries: [
|
|
190
205
|
{
|
|
191
206
|
slug: "articles/specs-that-cannot-lie",
|
|
192
207
|
label: "Specs that cannot lie",
|
|
193
208
|
blurb: "The argument the tool is built on, and the defects that shaped it.",
|
|
194
209
|
},
|
|
195
|
-
{
|
|
196
|
-
slug: "case-studies/case-1",
|
|
197
|
-
label: "Worked example: brownfield adoption",
|
|
198
|
-
blurb: "An illustration — invented company, constructed numbers — of the workflow end to end.",
|
|
199
|
-
},
|
|
200
210
|
],
|
|
201
211
|
},
|
|
202
212
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nav.js","sourceRoot":"","sources":["../../../scripts/docs/nav.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;
|
|
1
|
+
{"version":3,"file":"nav.js","sourceRoot":"","sources":["../../../scripts/docs/nav.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,6 +50,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
50
50
|
exports.GITATTRIBUTES_LINE = exports.MERGE_DRIVER_NAME = exports.InitCommand = void 0;
|
|
51
51
|
exports.setupCommand = setupCommand;
|
|
52
52
|
exports.detectTestCommand = detectTestCommand;
|
|
53
|
+
exports.harnessFiles = harnessFiles;
|
|
53
54
|
exports.projectName = projectName;
|
|
54
55
|
exports.installMergeDriver = installMergeDriver;
|
|
55
56
|
const fs = __importStar(require("node:fs"));
|
|
@@ -112,6 +113,65 @@ function detectTestCommand(projectDir) {
|
|
|
112
113
|
},
|
|
113
114
|
}, { preferVerify: true });
|
|
114
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* The files `harness init` writes, as `{ dest, body }`. Shared with
|
|
118
|
+
* `init`/`adopt`, which write them when they detect a test command: `init`
|
|
119
|
+
* printed "Test command: npm test" and the very next `check` said "No test
|
|
120
|
+
* command configured" (reservas_app, #44). One renderer, so a later
|
|
121
|
+
* `harness init` finds the same bytes and reports no conflict.
|
|
122
|
+
*/
|
|
123
|
+
function harnessFiles(projectDir, testCmd) {
|
|
124
|
+
// Rendered into the config as a live key when known, and as a commented-out
|
|
125
|
+
// one when not — see detectTestCommand for why a placeholder would be worse
|
|
126
|
+
// than an absent key.
|
|
127
|
+
// Shared with `doctor`, which used to call a Gherkin quality check
|
|
128
|
+
// "every scenario runnable" in projects where nothing runs one.
|
|
129
|
+
const hasGherkinRunner = (0, TestCommand_1.hasGherkinRunner)({
|
|
130
|
+
exists: (rel) => fs.existsSync(path.join(projectDir, rel)),
|
|
131
|
+
read: (rel) => {
|
|
132
|
+
try {
|
|
133
|
+
return fs.readFileSync(path.join(projectDir, rel), "utf8");
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
});
|
|
140
|
+
const vars = {
|
|
141
|
+
PROJECT_NAME: projectName(projectDir),
|
|
142
|
+
STEP_DEFS_LINE: hasGherkinRunner
|
|
143
|
+
? "- `features/step_definitions/**` and `features/support/**` — step definitions\n" +
|
|
144
|
+
" are code, not specification. This is the one place inside `features/` you\n" +
|
|
145
|
+
" own."
|
|
146
|
+
: "\nThis project has no Gherkin runner, so nothing executes a `.feature` here.\n" +
|
|
147
|
+
"The scenarios are the specification and your tests are the proof: write a\n" +
|
|
148
|
+
"test per scenario that asserts what it says, in the project's own test\n" +
|
|
149
|
+
"framework, and mention the requirement and scenario ids in it\n" +
|
|
150
|
+
"(`REQ-NNN SCN-NNN`) — that mention is the link. Do not add a BDD runner.",
|
|
151
|
+
SCENARIO_STEP: hasGherkinRunner
|
|
152
|
+
? "2. Write or extend the step definitions so the scenario fails **for the right\n" +
|
|
153
|
+
" reason** — a missing implementation, not a typo in a step."
|
|
154
|
+
: "2. Write a test per scenario, mentioning its ids, so it fails **for the right\n" +
|
|
155
|
+
" reason** — a missing implementation, not a typo in the test.",
|
|
156
|
+
SETUP_CMD_LINE: setupCommand(projectDir),
|
|
157
|
+
TEST_CMD_LINE: testCmd
|
|
158
|
+
? `test_cmd: "${testCmd}"`
|
|
159
|
+
: '# test_cmd: "npm test" # ← set this once the project has a test command',
|
|
160
|
+
GATE_COMMAND: testCmd
|
|
161
|
+
? `${testCmd}\n specgate validate . --strict`
|
|
162
|
+
: "specgate validate . --strict",
|
|
163
|
+
};
|
|
164
|
+
return [
|
|
165
|
+
{
|
|
166
|
+
dest: CONFIG_FILE,
|
|
167
|
+
body: (0, PackSpec_1.renderTemplate)(fs.readFileSync(path.join(TEMPLATES, "harness.config.yaml.tpl"), "utf8"), vars),
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
dest: PREFIX_FILE,
|
|
171
|
+
body: (0, PackSpec_1.renderTemplate)(fs.readFileSync(path.join(TEMPLATES, "prompt-prefix.md.tpl"), "utf8"), vars),
|
|
172
|
+
},
|
|
173
|
+
];
|
|
174
|
+
}
|
|
115
175
|
function projectName(projectDir) {
|
|
116
176
|
const specPath = path.join(projectDir, "spec.md");
|
|
117
177
|
if (fs.existsSync(specPath)) {
|
|
@@ -193,56 +253,7 @@ class InitCommand extends command_1.BaseCommand {
|
|
|
193
253
|
return;
|
|
194
254
|
}
|
|
195
255
|
const testCmd = opts.testCmd || detectTestCommand(projectDir);
|
|
196
|
-
|
|
197
|
-
// one when not — see detectTestCommand for why a placeholder would be worse
|
|
198
|
-
// than an absent key.
|
|
199
|
-
// Shared with `doctor`, which used to call a Gherkin quality check
|
|
200
|
-
// "every scenario runnable" in projects where nothing runs one.
|
|
201
|
-
const hasGherkinRunner = (0, TestCommand_1.hasGherkinRunner)({
|
|
202
|
-
exists: (rel) => fs.existsSync(path.join(projectDir, rel)),
|
|
203
|
-
read: (rel) => {
|
|
204
|
-
try {
|
|
205
|
-
return fs.readFileSync(path.join(projectDir, rel), "utf8");
|
|
206
|
-
}
|
|
207
|
-
catch {
|
|
208
|
-
return null;
|
|
209
|
-
}
|
|
210
|
-
},
|
|
211
|
-
});
|
|
212
|
-
const vars = {
|
|
213
|
-
PROJECT_NAME: projectName(projectDir),
|
|
214
|
-
STEP_DEFS_LINE: hasGherkinRunner
|
|
215
|
-
? "- `features/step_definitions/**` and `features/support/**` — step definitions\n" +
|
|
216
|
-
" are code, not specification. This is the one place inside `features/` you\n" +
|
|
217
|
-
" own."
|
|
218
|
-
: "\nThis project has no Gherkin runner, so nothing executes a `.feature` here.\n" +
|
|
219
|
-
"The scenarios are the specification and your tests are the proof: write a\n" +
|
|
220
|
-
"test per scenario that asserts what it says, in the project's own test\n" +
|
|
221
|
-
"framework, and mention the requirement and scenario ids in it\n" +
|
|
222
|
-
"(`REQ-NNN SCN-NNN`) — that mention is the link. Do not add a BDD runner.",
|
|
223
|
-
SCENARIO_STEP: hasGherkinRunner
|
|
224
|
-
? "2. Write or extend the step definitions so the scenario fails **for the right\n" +
|
|
225
|
-
" reason** — a missing implementation, not a typo in a step."
|
|
226
|
-
: "2. Write a test per scenario, mentioning its ids, so it fails **for the right\n" +
|
|
227
|
-
" reason** — a missing implementation, not a typo in the test.",
|
|
228
|
-
SETUP_CMD_LINE: setupCommand(projectDir),
|
|
229
|
-
TEST_CMD_LINE: testCmd
|
|
230
|
-
? `test_cmd: "${testCmd}"`
|
|
231
|
-
: '# test_cmd: "npm test" # ← set this once the project has a test command',
|
|
232
|
-
GATE_COMMAND: testCmd
|
|
233
|
-
? `${testCmd}\n specgate validate . --strict`
|
|
234
|
-
: "specgate validate . --strict",
|
|
235
|
-
};
|
|
236
|
-
const outputs = [
|
|
237
|
-
{
|
|
238
|
-
dest: CONFIG_FILE,
|
|
239
|
-
body: (0, PackSpec_1.renderTemplate)(fs.readFileSync(path.join(TEMPLATES, "harness.config.yaml.tpl"), "utf8"), vars),
|
|
240
|
-
},
|
|
241
|
-
{
|
|
242
|
-
dest: PREFIX_FILE,
|
|
243
|
-
body: (0, PackSpec_1.renderTemplate)(fs.readFileSync(path.join(TEMPLATES, "prompt-prefix.md.tpl"), "utf8"), vars),
|
|
244
|
-
},
|
|
245
|
-
];
|
|
256
|
+
const outputs = harnessFiles(projectDir, testCmd);
|
|
246
257
|
if (opts.stdout) {
|
|
247
258
|
io.emit({ projectDir, testCmd, files: outputs.map((o) => o.dest) }, () => {
|
|
248
259
|
for (const out of outputs) {
|
|
@@ -253,7 +264,18 @@ class InitCommand extends command_1.BaseCommand {
|
|
|
253
264
|
});
|
|
254
265
|
return;
|
|
255
266
|
}
|
|
267
|
+
// A file that already holds exactly what this would write is not a
|
|
268
|
+
// conflict: `init` writes the config when it detects a test command.
|
|
269
|
+
const same = (o) => {
|
|
270
|
+
try {
|
|
271
|
+
return fs.readFileSync(path.join(projectDir, o.dest), "utf8") === o.body;
|
|
272
|
+
}
|
|
273
|
+
catch {
|
|
274
|
+
return false;
|
|
275
|
+
}
|
|
276
|
+
};
|
|
256
277
|
const existing = outputs
|
|
278
|
+
.filter((o) => !same(o))
|
|
257
279
|
.map((o) => o.dest)
|
|
258
280
|
.filter((dest) => fs.existsSync(path.join(projectDir, dest)));
|
|
259
281
|
if (existing.length > 0 && !opts.force) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../scripts/harness/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../scripts/harness/init.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,32 +1,30 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
2. All Gherkin scenarios linked to the changed requirement are passing.
|
|
32
|
-
3. The traceability matrix is updated to reflect the new status.
|
|
1
|
+
# AGENTS.md — {{PROJECT_NAME}}
|
|
2
|
+
|
|
3
|
+
{{PROJECT_TYPE}} project · architecture: {{ARCHITECTURE}} · domain: {{DOMAIN}}
|
|
4
|
+
Stack: {{STACK}} · API: {{API_STYLE}} · Testing: {{TESTING}}
|
|
5
|
+
|
|
6
|
+
This project uses spec-driven development with `specgate`. `spec.md`,
|
|
7
|
+
`features/` and `docs/specs/` are the contract your work is judged against.
|
|
8
|
+
|
|
9
|
+
## Work
|
|
10
|
+
|
|
11
|
+
1. `specgate status` — what is left, and the next requirement.
|
|
12
|
+
2. Write the test first and name the requirement in it (`REQ-007`, and its
|
|
13
|
+
scenario `SCN-007a` when there is one). That mention is the link.
|
|
14
|
+
3. Implement until `specgate check` passes: specs, links, coverage, tests.
|
|
15
|
+
4. `specgate done REQ-007` — refused unless the gate passes.
|
|
16
|
+
|
|
17
|
+
Each step in detail: the `/specgate:*` commands, or
|
|
18
|
+
`specgate change instructions <artifact> --json`.
|
|
19
|
+
|
|
20
|
+
## Never
|
|
21
|
+
|
|
22
|
+
- Edit `spec.md`, `features/`, `docs/specs/` or this file to make a test pass.
|
|
23
|
+
- Choose or replace the stack; if a field above is TBD, stop and ask.
|
|
24
|
+
- Say work is done that `specgate check` has not passed.
|
|
25
|
+
|
|
26
|
+
## Project rules
|
|
27
|
+
|
|
28
|
+
{{STACK_RULES}}
|
|
29
|
+
{{ARCHITECTURE_MODELING_RULES}}
|
|
30
|
+
{{ARCHITECTURE_CHECKS}}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
- Offline is a state, not an error: every screen that reads data says what it shows offline.
|
|
2
|
+
- The process can die at any moment: what the user typed survives backgrounding, unless the scenario says otherwise.
|
|
3
|
+
- Platform differences are stated in the scenario; silent iOS/Android divergence is a defect.
|
|
4
|
+
- A permission is a flow with a denial branch, including a permanent denial.
|
|
5
|
+
- A screen reachable by deep link works cold, with no back stack.
|
|
6
|
+
- Store review is part of done: privacy declarations and permission rationales belong in the spec first.
|
|
7
|
+
- Domain and use-case code import neither the UI framework nor device APIs; both arrive through a port.
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# AI Rules — {{PROJECT_NAME}}
|
|
2
|
-
|
|
3
|
-
Rules for any AI coding agent (and any human) working on this repository.
|
|
4
|
-
|
|
5
|
-
## Project facts
|
|
6
|
-
|
|
7
|
-
- Domain: {{DOMAIN}}
|
|
8
|
-
- Stack: {{STACK}}
|
|
9
|
-
- Testing: {{TESTING}}
|
|
10
|
-
- Test command: `{{TEST_CMD}}`
|
|
11
|
-
|
|
12
|
-
## Boundaries
|
|
13
|
-
|
|
14
|
-
- `spec.md`, `features/**/*.feature` and `docs/specs/traceability.md` are the
|
|
15
|
-
source of truth. Do not edit them to make a failing gate pass.
|
|
16
|
-
- Never delete or weaken an existing test to get to green.
|
|
17
|
-
- Implement one requirement (REQ-NNN) at a time; write or extend the test
|
|
18
|
-
first, then the production code.
|
|
19
|
-
- Keep changes inside this repository; do not modify generated or vendored
|
|
20
|
-
code unless the requirement says so.
|
|
21
|
-
|
|
22
|
-
## Definition of done
|
|
23
|
-
|
|
24
|
-
1. The scenario(s) for the requirement pass.
|
|
25
|
-
2. `{{TEST_CMD}}` passes.
|
|
26
|
-
3. `specgate validate . --strict` passes.
|
|
27
|
-
4. The traceability row is updated via `specgate done REQ-NNN`.
|