@rsaglobaltech/specgate 1.0.0-rc.1 → 1.0.0-rc.2
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 +21 -0
- package/dist/packages/core/src/domain/ChangeLayers.js +6 -2
- package/dist/packages/core/src/domain/ChangeLayers.js.map +1 -1
- package/dist/packages/core/src/domain/WorkspaceStory.js +176 -0
- package/dist/packages/core/src/domain/WorkspaceStory.js.map +1 -0
- package/dist/scripts/change/instructions.js +8 -0
- package/dist/scripts/change/instructions.js.map +1 -1
- package/dist/scripts/cli/commands/change/ChangeCommand.js +57 -1
- package/dist/scripts/cli/commands/change/ChangeCommand.js.map +1 -1
- package/dist/scripts/cli/commands/project/InitProjectCommand.js +9 -14
- package/dist/scripts/cli/commands/project/InitProjectCommand.js.map +1 -1
- package/dist/scripts/cli/commands/spec/DoneCommand.js +22 -0
- package/dist/scripts/cli/commands/spec/DoneCommand.js.map +1 -1
- package/dist/scripts/cli/commands/spec/StatusCommand.js +73 -0
- package/dist/scripts/cli/commands/spec/StatusCommand.js.map +1 -1
- package/dist/scripts/cli/commands/spec/StudioCommand.js +6 -6
- package/dist/scripts/cli/commands/spec/StudioCommand.js.map +1 -1
- package/dist/scripts/cli/commands/workspace/WorkspaceCommand.js +170 -43
- package/dist/scripts/cli/commands/workspace/WorkspaceCommand.js.map +1 -1
- package/dist/scripts/harness/prompt.js +50 -1
- package/dist/scripts/harness/prompt.js.map +1 -1
- package/dist/scripts/lib/surface.js +1 -1
- package/dist/scripts/lib/surface.js.map +1 -1
- package/dist/scripts/lib/workspace-draft.js +146 -0
- package/dist/scripts/lib/workspace-draft.js.map +1 -0
- package/dist/scripts/lib/workspace-live.js +9 -26
- package/dist/scripts/lib/workspace-live.js.map +1 -1
- package/dist/scripts/lib/workspace.js +219 -6
- package/dist/scripts/lib/workspace.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,27 @@ The release process is in [`docs/release-process.md`](docs/release-process.md).
|
|
|
9
9
|
|
|
10
10
|
## [Unreleased]
|
|
11
11
|
|
|
12
|
+
## [1.0.0-rc.2] — 2026-10-30
|
|
13
|
+
|
|
14
|
+
After the first microservices run of truck-flote (five repositories, one story across three of them, nine requirements delivered in parallel): the workspace takes the client's brief and drafts its stories, a story's intent and criteria reach every repository, the story is built in the order of its dependencies, and `init --yes` adopts the folder it is run in.
|
|
15
|
+
|
|
16
|
+
### Breaking
|
|
17
|
+
|
|
18
|
+
- **`specgate init --yes` adopts a folder that already has code** (REQ-249, modified): it scaffolded a separate project inside it (`my-spec-driven-app/`), so a scripted `init` in a repository made a second one. `--yes` now only skips the questions; `--new`, `--out`, `--config`, `--multi-stack` and `--forja` still scaffold.
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- **`change validate` reports what `change approve` refuses** (REQ-350): a layered change validated, then approval refused it for requirements with no kind. Validation now fails with `change_not_approvable` for each finding approval would block on.
|
|
23
|
+
- **The agent writing a change's requirements is told what they need** (REQ-351): `kind=`, `actor=`, and a feature file of its own.
|
|
24
|
+
- **Two requirements naming one feature file are reported** (REQ-352): `change validate` and `change archive` refuse with `change_feature_shared`; archiving would have kept only one's scenarios.
|
|
25
|
+
- **A delivered requirement ticks its tasks** (REQ-353): `done`, which the harness runs, ticks the tasks of the open change that name the requirement.
|
|
26
|
+
- **`change --help` describes the three layers** (REQ-354), and docs/migrating-to-1.0.md says how to install a candidate just published (`--prefer-online`) and how to move a forja project to it.
|
|
27
|
+
- **The workspace takes the client's brief** (REQ-339..341): `specgate workspace draft` puts a root `brief.md` below a front matter that names the brief's stories and their repositories, `workspace draft <story> --agent "<cmd>"` drafts a story's intent and criteria from the brief, confined to the story, and `specgate status` in a workspace repository shows the workspace and the next step instead of failing on a missing matrix.
|
|
28
|
+
- **Every repository receives the story** (REQ-342..344): `workspace propose` takes a drafted story, copies its intent and criteria into each sub-change's `discover.md` and names the story's other repositories and how to write `depends=` and `api=`; `workspace check` warns `workspace_story_diverged` when a repository's criteria are not the story's; each harness is told the story's other parts.
|
|
29
|
+
- **A story is built in dependency order** (REQ-345): `workspace harness run --story` starts a repository whose part waits on another's undelivered requirement after that repository has finished; the dry run shows the levels.
|
|
30
|
+
- **The live view and the story's cost** (REQ-346, REQ-347): every JSON document of the studio says `charset=utf-8`, and a story's cost counts its archived parts.
|
|
31
|
+
- **Short repository names, and the logs ignored** (REQ-348, REQ-349): `workspace init` names `truck-flote-fleet` as `fleet`, prints name, path and role in their own columns, and ignores `.specgate/workspace-runs/`.
|
|
32
|
+
|
|
12
33
|
## [1.0.0-rc.1] — 2026-10-30
|
|
13
34
|
|
|
14
35
|
The first candidate of the 1.0 line, for teams of several repositories and roles: a change in three layers with their owners, a workspace of repositories with stories across them and its own live view, approvals per layer and harness packages per role, the backlog following the phases, the two gaps measured, principles, drift and API contracts checked, and `specgate migrate 1.0` to move a 0.27 project. Published under the npm dist-tag `next`; `latest` stays 0.27. See [Migrating to 1.0](docs/migrating-to-1.0.md).
|
|
@@ -190,8 +190,12 @@ function acceptanceCriteria(discover) {
|
|
|
190
190
|
}
|
|
191
191
|
return out;
|
|
192
192
|
}
|
|
193
|
-
/**
|
|
194
|
-
|
|
193
|
+
/**
|
|
194
|
+
* Words of how, in a layer about what: the brief's list plus the architecture's.
|
|
195
|
+
* Not "table": a client reads "a table of their shipments"; storage is caught
|
|
196
|
+
* by database, SQL and the brief's own list.
|
|
197
|
+
*/
|
|
198
|
+
const DISCOVER_TECHNICAL = new RegExp(`${BriefCards_1.TECHNICAL.source}|\\b(api|apis|endpoints?|database|base de datos|sql|http|json|microservices?|microservicios?|queue|cola de mensajes|controllers?)\\b`, "i");
|
|
195
199
|
/** REST in capitals only: "the rest of the week" is plain English. */
|
|
196
200
|
const DISCOVER_REST = /\bREST(?:ful)?\b/;
|
|
197
201
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChangeLayers.js","sourceRoot":"","sources":["../../../../../packages/core/src/domain/ChangeLayers.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AA+CH,4CAmBC;AAED,sDAsBC;AAED,oDAeC;AAOD,gDAMC;AAKD,4CASC;AAOD,gDAsBC;AA6BD,gDASC;
|
|
1
|
+
{"version":3,"file":"ChangeLayers.js","sourceRoot":"","sources":["../../../../../packages/core/src/domain/ChangeLayers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* A workspace story as text: the stories a workspace brief names, the
|
|
4
|
+
* sections of a `story.md`, and the names a workspace gives its repositories
|
|
5
|
+
* (REQ-339..348). Pure; reading and writing the files is `scripts/lib`.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.CRITERIA = exports.INTENT = void 0;
|
|
9
|
+
exports.briefFrontMatter = briefFrontMatter;
|
|
10
|
+
exports.briefText = briefText;
|
|
11
|
+
exports.briefStories = briefStories;
|
|
12
|
+
exports.workspaceBriefTemplate = workspaceBriefTemplate;
|
|
13
|
+
exports.section = section;
|
|
14
|
+
exports.criteriaLines = criteriaLines;
|
|
15
|
+
exports.storyTemplate = storyTemplate;
|
|
16
|
+
exports.shortNames = shortNames;
|
|
17
|
+
const FRONT = /^---\r?\n([\s\S]*?)\r?\n---[ \t]*(?:\r?\n|$)/;
|
|
18
|
+
/** The YAML between a brief's leading `---` lines, or null. */
|
|
19
|
+
function briefFrontMatter(text) {
|
|
20
|
+
const m = FRONT.exec(text);
|
|
21
|
+
return m ? m[1] : null;
|
|
22
|
+
}
|
|
23
|
+
/** Everything after the front matter. */
|
|
24
|
+
function briefText(text) {
|
|
25
|
+
const m = FRONT.exec(text);
|
|
26
|
+
return (m ? text.slice(m[0].length) : text).replace(/^(?:[ \t]*\r?\n)+/, "");
|
|
27
|
+
}
|
|
28
|
+
/** `a, b, [c, d]` split on the commas outside brackets. */
|
|
29
|
+
function topLevel(s) {
|
|
30
|
+
const out = [];
|
|
31
|
+
let depth = 0;
|
|
32
|
+
let cur = "";
|
|
33
|
+
for (const ch of s) {
|
|
34
|
+
if (ch === "[")
|
|
35
|
+
depth += 1;
|
|
36
|
+
if (ch === "]")
|
|
37
|
+
depth -= 1;
|
|
38
|
+
if (ch === "," && depth === 0) {
|
|
39
|
+
out.push(cur);
|
|
40
|
+
cur = "";
|
|
41
|
+
}
|
|
42
|
+
else
|
|
43
|
+
cur += ch;
|
|
44
|
+
}
|
|
45
|
+
if (cur.trim())
|
|
46
|
+
out.push(cur);
|
|
47
|
+
return out.map((x) => x.trim()).filter(Boolean);
|
|
48
|
+
}
|
|
49
|
+
const unquote = (s) => s.trim().replace(/^(["'])(.*)\1$/, "$2");
|
|
50
|
+
/**
|
|
51
|
+
* The stories of a workspace brief's front matter (REQ-339):
|
|
52
|
+
*
|
|
53
|
+
* stories:
|
|
54
|
+
* - { id: follow-shipment, title: El cliente sigue su envío, repos: [fleet, tracking] }
|
|
55
|
+
*/
|
|
56
|
+
function briefStories(frontMatter) {
|
|
57
|
+
if (!frontMatter)
|
|
58
|
+
return [];
|
|
59
|
+
const lines = frontMatter.split(/\r?\n/);
|
|
60
|
+
const start = lines.findIndex((l) => /^stories:/.test(l));
|
|
61
|
+
if (start < 0)
|
|
62
|
+
return [];
|
|
63
|
+
const out = [];
|
|
64
|
+
for (const line of lines.slice(start + 1)) {
|
|
65
|
+
if (/^\S/.test(line))
|
|
66
|
+
break;
|
|
67
|
+
const m = /^\s*-\s*\{(.*)\}\s*$/.exec(line);
|
|
68
|
+
if (!m)
|
|
69
|
+
continue;
|
|
70
|
+
const fields = {};
|
|
71
|
+
for (const part of topLevel(m[1])) {
|
|
72
|
+
const kv = /^([a-z_]+)\s*:\s*(.*)$/.exec(part);
|
|
73
|
+
if (kv)
|
|
74
|
+
fields[kv[1]] = kv[2].trim();
|
|
75
|
+
}
|
|
76
|
+
const id = unquote(fields.id || "");
|
|
77
|
+
if (!/^[a-z0-9][a-z0-9-]*$/.test(id))
|
|
78
|
+
continue;
|
|
79
|
+
const repos = /^\[(.*)\]$/.exec(fields.repos || "");
|
|
80
|
+
out.push({
|
|
81
|
+
id,
|
|
82
|
+
title: unquote(fields.title || "") || id.replace(/-/g, " "),
|
|
83
|
+
repos: repos
|
|
84
|
+
? repos[1]
|
|
85
|
+
.split(",")
|
|
86
|
+
.map((r) => unquote(r))
|
|
87
|
+
.filter(Boolean)
|
|
88
|
+
: [],
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
return out;
|
|
92
|
+
}
|
|
93
|
+
/** The front matter `workspace draft` writes above a client's brief. */
|
|
94
|
+
function workspaceBriefTemplate(product, repos) {
|
|
95
|
+
return [
|
|
96
|
+
"---",
|
|
97
|
+
`product: ${product}`,
|
|
98
|
+
"# The business stories of the brief, each split across the repositories it",
|
|
99
|
+
"# touches: `specgate workspace draft <id>` drafts one, `workspace propose <id>`",
|
|
100
|
+
"# opens its change in each repository (REQ-339).",
|
|
101
|
+
`# e.g. - { id: follow-shipment, title: The client follows a shipment, repos: [${repos.slice(0, 2).join(", ")}] }`,
|
|
102
|
+
"stories: []",
|
|
103
|
+
"---",
|
|
104
|
+
"",
|
|
105
|
+
].join("\n");
|
|
106
|
+
}
|
|
107
|
+
/** A `##` section of a Markdown text, without its comments, or "". */
|
|
108
|
+
function section(md, heading) {
|
|
109
|
+
const lines = md.split(/\r?\n/);
|
|
110
|
+
const at = lines.findIndex((l) => /^##\s/.test(l) && heading.test(l));
|
|
111
|
+
if (at < 0)
|
|
112
|
+
return "";
|
|
113
|
+
const body = [];
|
|
114
|
+
for (const l of lines.slice(at + 1)) {
|
|
115
|
+
if (/^##\s/.test(l))
|
|
116
|
+
break;
|
|
117
|
+
body.push(l);
|
|
118
|
+
}
|
|
119
|
+
return body
|
|
120
|
+
.join("\n")
|
|
121
|
+
.replace(/<!--[\s\S]*?-->/g, "")
|
|
122
|
+
.trim();
|
|
123
|
+
}
|
|
124
|
+
exports.INTENT = /intent|intenci[oó]n|context/i;
|
|
125
|
+
exports.CRITERIA = /acceptance criteria|criterios de aceptaci[oó]n|akzeptanzkriterien/i;
|
|
126
|
+
/** A story's (or a Discover's) `AC-n` lines, as written. */
|
|
127
|
+
function criteriaLines(md) {
|
|
128
|
+
return section(md, exports.CRITERIA)
|
|
129
|
+
.split(/\r?\n/)
|
|
130
|
+
.map((l) => l.trim())
|
|
131
|
+
.filter((l) => /^[-*]\s*AC-\d+\s*[:—–-]\s*\S/.test(l))
|
|
132
|
+
.map((l) => l.replace(/^[-*]\s*/, "").replace(/\s+/g, " "));
|
|
133
|
+
}
|
|
134
|
+
/** The `story.md` `workspace draft <id>` writes for a person, or an agent, to fill. */
|
|
135
|
+
function storyTemplate(title, repos) {
|
|
136
|
+
return [
|
|
137
|
+
`# Story: ${title}`,
|
|
138
|
+
"",
|
|
139
|
+
"## Intent",
|
|
140
|
+
"",
|
|
141
|
+
"<!-- The business story, in the words of whoever asked for it: who needs what, and why. It stays as it is while each repository's change works out the how. -->",
|
|
142
|
+
"",
|
|
143
|
+
"## Acceptance criteria",
|
|
144
|
+
"",
|
|
145
|
+
"<!-- One line each, numbered: every repository's design answers the ones it touches. -->",
|
|
146
|
+
"- AC-1:",
|
|
147
|
+
"",
|
|
148
|
+
"## Repositories",
|
|
149
|
+
"",
|
|
150
|
+
...repos.map((r) => `- \`${r}\``),
|
|
151
|
+
"",
|
|
152
|
+
].join("\n");
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* The names a workspace gives sibling folders: without the prefix they all
|
|
156
|
+
* share (`truck-flote-fleet`, `truck-flote-web` → `fleet`, `web`), so ids read
|
|
157
|
+
* `fleet:REQ-012` (REQ-348). Unchanged when stripping would leave a name empty
|
|
158
|
+
* or two names equal.
|
|
159
|
+
*/
|
|
160
|
+
function shortNames(names) {
|
|
161
|
+
if (names.length < 2)
|
|
162
|
+
return names;
|
|
163
|
+
let prefix = names[0];
|
|
164
|
+
for (const n of names.slice(1)) {
|
|
165
|
+
while (prefix && !n.startsWith(prefix))
|
|
166
|
+
prefix = prefix.slice(0, -1);
|
|
167
|
+
}
|
|
168
|
+
const cut = prefix.lastIndexOf("-");
|
|
169
|
+
if (cut < 0)
|
|
170
|
+
return names;
|
|
171
|
+
const keep = prefix.slice(0, cut + 1);
|
|
172
|
+
const short = names.map((n) => n.slice(keep.length));
|
|
173
|
+
const valid = short.every((s) => /^[a-z][a-z0-9-]*$/.test(s));
|
|
174
|
+
return valid && new Set(short).size === short.length ? short : names;
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=WorkspaceStory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkspaceStory.js","sourceRoot":"","sources":["../../../../../packages/core/src/domain/WorkspaceStory.ts"],"names":[],"mappings":"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"}
|
|
@@ -109,8 +109,16 @@ const ARTIFACT_RULES = {
|
|
|
109
109
|
design: DESIGN_RULES,
|
|
110
110
|
tasks: TASKS_RULES,
|
|
111
111
|
};
|
|
112
|
+
// REQ-351: what approval and the harness will ask of each requirement, said
|
|
113
|
+
// to whoever writes them — an agent left them out (truck-flote, MS-10, MS-9).
|
|
114
|
+
const LAYERED_DELTA_RULES = [
|
|
115
|
+
...exports.DELTA_RULES,
|
|
116
|
+
"Every requirement's `<!-- specgate:trace … -->` carries `kind=` (functional, non-functional or business-rule) and `actor=` (who uses it): `change approve` refuses a requirement without them, and `change validate` says so (`change_not_approvable`).",
|
|
117
|
+
"Give each requirement a feature file of its own (`feature=features/<capability>/<REQ-NNN>.feature`): one feature file per requirement, or archiving replaces one's scenarios with another's (`change_feature_shared`).",
|
|
118
|
+
];
|
|
112
119
|
/** A layered change's own rules and templates for the layers it shares with 0.27. */
|
|
113
120
|
const LAYERED_RULES = {
|
|
121
|
+
specs: LAYERED_DELTA_RULES,
|
|
114
122
|
design: LAYERED_DESIGN_RULES,
|
|
115
123
|
tasks: LAYERED_TASKS_RULES,
|
|
116
124
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../../scripts/change/instructions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../../scripts/change/instructions.ts"],"names":[],"mappings":"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"}
|
|
@@ -148,7 +148,7 @@ function usage() {
|
|
|
148
148
|
` ${ui_1.c.bold}USAGE${ui_1.c.reset}\n` +
|
|
149
149
|
` ${ui_1.c.cyan}specgate change${ui_1.c.reset} <new|list|show|status|instructions|author|validate|impact|approve|note|archive> [options]\n\n` +
|
|
150
150
|
` ${ui_1.c.bold}SUBCOMMANDS${ui_1.c.reset}\n` +
|
|
151
|
-
` ${ui_1.c.green}new <id>${ui_1.c.reset} ${ui_1.c.dim}Scaffold a change
|
|
151
|
+
` ${ui_1.c.green}new <id>${ui_1.c.reset} ${ui_1.c.dim}Scaffold a change: discover, design, tasks and a delta (--schema spec-driven keeps 0.27's layout).${ui_1.c.reset}\n` +
|
|
152
152
|
` ${ui_1.c.green}list${ui_1.c.reset} ${ui_1.c.dim}Active changes with task progress.${ui_1.c.reset}\n` +
|
|
153
153
|
` ${ui_1.c.green}show <id>${ui_1.c.reset} ${ui_1.c.dim}Proposal, deltas and what they touch.${ui_1.c.reset}\n` +
|
|
154
154
|
` ${ui_1.c.green}status [id]${ui_1.c.reset} ${ui_1.c.dim}Which artefact to write next.${ui_1.c.reset}\n` +
|
|
@@ -958,6 +958,55 @@ function storyRewritten(projectDir, changeId) {
|
|
|
958
958
|
fix: `The business story stays put while the design changes: restore it (\`git checkout ${sha} -- ${rel(file)}\`), or have ${(0, ChangeLayers_1.layer)("discover").owner} agree the new story.`,
|
|
959
959
|
});
|
|
960
960
|
}
|
|
961
|
+
/**
|
|
962
|
+
* REQ-350: what `change approve` would refuse a layered change for, said by
|
|
963
|
+
* `change validate` first. A change that validated was refused at approval
|
|
964
|
+
* for a requirement with no kind (truck-flote, MS-10): one rule set, run twice.
|
|
965
|
+
*/
|
|
966
|
+
function notApprovable(projectDir, id) {
|
|
967
|
+
let layeredChange = false;
|
|
968
|
+
try {
|
|
969
|
+
layeredChange = (0, ChangeWorkspace_1.readConfig)(projectDir, id).schema === ChangeLayers_1.LAYERED_SCHEMA;
|
|
970
|
+
}
|
|
971
|
+
catch {
|
|
972
|
+
return [];
|
|
973
|
+
}
|
|
974
|
+
if (!layeredChange)
|
|
975
|
+
return [];
|
|
976
|
+
return (0, change_review_1.approvalBlockers)(projectDir, id)
|
|
977
|
+
.filter((b) => b.code !== "draft_no_specs")
|
|
978
|
+
.map((b) => (0, diagnostics_1.error)("change_not_approvable", b.message, {
|
|
979
|
+
target: id,
|
|
980
|
+
fix: `Fix it before review: \`specgate change approve ${id}\` refuses the change until then.`,
|
|
981
|
+
}));
|
|
982
|
+
}
|
|
983
|
+
/**
|
|
984
|
+
* REQ-352: requirements of one change that name the same feature file.
|
|
985
|
+
* Archiving lays one feature file per requirement, so the second replaced the
|
|
986
|
+
* first's scenarios and `check` failed far from the cause (truck-flote, MS-9).
|
|
987
|
+
*/
|
|
988
|
+
function sharedFeatureFiles(projectDir, id) {
|
|
989
|
+
const byFile = new Map();
|
|
990
|
+
for (const d of (0, ChangeWorkspace_1.listDeltas)(projectDir, id)) {
|
|
991
|
+
const delta = (0, SpecParser_1.parseDelta)(fs.readFileSync(d.file, "utf8"));
|
|
992
|
+
for (const r of [...delta.added, ...delta.modified]) {
|
|
993
|
+
const feature = (r.trace && r.trace.feature) || "";
|
|
994
|
+
if (!feature || !r.id)
|
|
995
|
+
continue;
|
|
996
|
+
byFile.set(feature, [...(byFile.get(feature) || []), r.id]);
|
|
997
|
+
}
|
|
998
|
+
}
|
|
999
|
+
const out = [];
|
|
1000
|
+
for (const [file, ids] of byFile) {
|
|
1001
|
+
if (ids.length < 2)
|
|
1002
|
+
continue;
|
|
1003
|
+
out.push((0, diagnostics_1.error)("change_feature_shared", `${ids.join(", ")} all name ${file}: archiving writes one feature file per requirement, so one would replace the others' scenarios.`, {
|
|
1004
|
+
target: id,
|
|
1005
|
+
fix: `Give each requirement a feature file of its own (feature=features/<capability>/${ids[0]}.feature, …).`,
|
|
1006
|
+
}));
|
|
1007
|
+
}
|
|
1008
|
+
return out;
|
|
1009
|
+
}
|
|
961
1010
|
function cmdValidate(opts) {
|
|
962
1011
|
const projectDir = (0, project_root_1.resolveProjectDir)(opts.projectDir);
|
|
963
1012
|
const requested = opts.positional[0];
|
|
@@ -983,6 +1032,7 @@ function cmdValidate(opts) {
|
|
|
983
1032
|
const rewritten = storyRewritten(projectDir, id);
|
|
984
1033
|
if (rewritten)
|
|
985
1034
|
result.diagnostics.push(rewritten);
|
|
1035
|
+
result.diagnostics.push(...sharedFeatureFiles(projectDir, id), ...notApprovable(projectDir, id));
|
|
986
1036
|
const failed = opts.strict ? result.diagnostics.length > 0 : (0, diagnostics_1.hasErrors)(result.diagnostics);
|
|
987
1037
|
// What each delta rewrites, as it reads now: on first sight, or on
|
|
988
1038
|
// --rebased once the delta was rewritten over a requirement that moved (REQ-168).
|
|
@@ -1033,6 +1083,12 @@ function cmdArchive(opts) {
|
|
|
1033
1083
|
}),
|
|
1034
1084
|
]);
|
|
1035
1085
|
}
|
|
1086
|
+
// REQ-352: two requirements naming one feature file would lose scenarios.
|
|
1087
|
+
if (fs.existsSync((0, ChangeWorkspace_1.paths)(projectDir).change(changeId))) {
|
|
1088
|
+
const shared = sharedFeatureFiles(projectDir, changeId);
|
|
1089
|
+
if (shared.length)
|
|
1090
|
+
return fail(opts, nullShape, shared);
|
|
1091
|
+
}
|
|
1036
1092
|
// A draft (a change opened from a brief) is archived only once its
|
|
1037
1093
|
// checklist passes: reservas_app archived one with two findings open and
|
|
1038
1094
|
// nothing said so (#57). `--force` archives anyway, as it does for tasks.
|