@rsaglobaltech/specgate 0.22.0 → 0.22.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.
Files changed (55) hide show
  1. package/CHANGELOG.md +135 -51
  2. package/README.md +81 -96
  3. package/dist/packages/core/src/domain/CapabilitySpecMerge.js +83 -0
  4. package/dist/packages/core/src/domain/CapabilitySpecMerge.js.map +1 -0
  5. package/dist/packages/core/test/unit/capability-spec-merge.test.js +104 -0
  6. package/dist/packages/core/test/unit/capability-spec-merge.test.js.map +1 -0
  7. package/dist/packages/mcp-spec-driven/src/native-tools.js +1 -1
  8. package/dist/packages/mcp-spec-driven/src/native-tools.js.map +1 -1
  9. package/dist/scripts/agents/commands.js +7 -7
  10. package/dist/scripts/agents/commands.js.map +1 -1
  11. package/dist/scripts/agents/detect.js +1 -0
  12. package/dist/scripts/agents/detect.js.map +1 -1
  13. package/dist/scripts/agents/init.js +13 -0
  14. package/dist/scripts/agents/init.js.map +1 -1
  15. package/dist/scripts/alm/cli.js +3 -2
  16. package/dist/scripts/alm/cli.js.map +1 -1
  17. package/dist/scripts/cli/commands/change/ChangeCommand.js +22 -1
  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/quality/CheckCommand.js +15 -5
  22. package/dist/scripts/cli/commands/quality/CheckCommand.js.map +1 -1
  23. package/dist/scripts/cli/commands/quality/DoctorCommand.js +22 -8
  24. package/dist/scripts/cli/commands/quality/DoctorCommand.js.map +1 -1
  25. package/dist/scripts/docs/journey-storyboard.js +34 -17
  26. package/dist/scripts/docs/journey-storyboard.js.map +1 -1
  27. package/dist/scripts/docs/nav.js +155 -143
  28. package/dist/scripts/docs/nav.js.map +1 -1
  29. package/dist/scripts/docs/record-journey.js +46 -19
  30. package/dist/scripts/docs/record-journey.js.map +1 -1
  31. package/dist/scripts/docs/terminal-storyboard.js +15 -11
  32. package/dist/scripts/docs/terminal-storyboard.js.map +1 -1
  33. package/dist/scripts/draft/drafting-guide.js +4 -0
  34. package/dist/scripts/draft/drafting-guide.js.map +1 -1
  35. package/dist/scripts/draft/ticket-guide.js +4 -0
  36. package/dist/scripts/draft/ticket-guide.js.map +1 -1
  37. package/dist/scripts/harness/init.js +85 -25
  38. package/dist/scripts/harness/init.js.map +1 -1
  39. package/dist/scripts/harness/prompt.js +13 -1
  40. package/dist/scripts/harness/prompt.js.map +1 -1
  41. package/dist/scripts/lib/base-ids.js +7 -0
  42. package/dist/scripts/lib/base-ids.js.map +1 -1
  43. package/dist/scripts/lib/change-base.js +230 -0
  44. package/dist/scripts/lib/change-base.js.map +1 -0
  45. package/dist/scripts/lib/change-overlap.js +234 -0
  46. package/dist/scripts/lib/change-overlap.js.map +1 -0
  47. package/dist/scripts/lib/surface.js +8 -0
  48. package/dist/scripts/lib/surface.js.map +1 -1
  49. package/dist/scripts/lib/ticket-keys.js +48 -3
  50. package/dist/scripts/lib/ticket-keys.js.map +1 -1
  51. package/dist/scripts/merge-capability-spec.js +87 -0
  52. package/dist/scripts/merge-capability-spec.js.map +1 -0
  53. package/dist/scripts/vcs/github-pr.js +1 -1
  54. package/dist/scripts/vcs/github-pr.js.map +1 -1
  55. package/package.json +1 -1
@@ -0,0 +1,230 @@
1
+ "use strict";
2
+ /**
3
+ * A change never replaces a requirement that moved under it (REQ-168).
4
+ *
5
+ * A MODIFIED or REMOVED delta restates a requirement as its author read it.
6
+ * If another change rewrites that requirement and merges first, archiving this
7
+ * delta replaces the merged text with a rewrite of the old one — no conflict,
8
+ * a green gate, and the other ticket's rule gone. `change_overlap` (REQ-160)
9
+ * sees the two only while both are open, and the capability spec merge driver
10
+ * (REQ-166) only when both rewrites meet in one merge.
11
+ *
12
+ * So the text a change was drafted against is fingerprinted in its
13
+ * `change.yaml` the first time the gate sees it — a file, so it survives a
14
+ * rebase where commit history would not — and compared from then on. Before
15
+ * the branch has brought the base in, git alone shows the move: the
16
+ * requirement differs between the base and where the two last met.
17
+ */
18
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ var desc = Object.getOwnPropertyDescriptor(m, k);
21
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
22
+ desc = { enumerable: true, get: function() { return m[k]; } };
23
+ }
24
+ Object.defineProperty(o, k2, desc);
25
+ }) : (function(o, m, k, k2) {
26
+ if (k2 === undefined) k2 = k;
27
+ o[k2] = m[k];
28
+ }));
29
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
30
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
31
+ }) : function(o, v) {
32
+ o["default"] = v;
33
+ });
34
+ var __importStar = (this && this.__importStar) || (function () {
35
+ var ownKeys = function(o) {
36
+ ownKeys = Object.getOwnPropertyNames || function (o) {
37
+ var ar = [];
38
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
39
+ return ar;
40
+ };
41
+ return ownKeys(o);
42
+ };
43
+ return function (mod) {
44
+ if (mod && mod.__esModule) return mod;
45
+ var result = {};
46
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
47
+ __setModuleDefault(result, mod);
48
+ return result;
49
+ };
50
+ })();
51
+ Object.defineProperty(exports, "__esModule", { value: true });
52
+ exports.fingerprint = fingerprint;
53
+ exports.recordBases = recordBases;
54
+ exports.archiveBaseMoved = archiveBaseMoved;
55
+ exports.changeBaseFindings = changeBaseFindings;
56
+ const node_crypto_1 = require("node:crypto");
57
+ const node_child_process_1 = require("node:child_process");
58
+ const fs = __importStar(require("node:fs"));
59
+ const path = __importStar(require("node:path"));
60
+ const diagnostics_1 = require("./diagnostics");
61
+ const ticket_keys_1 = require("./ticket-keys");
62
+ const CapabilitySpecMerge_1 = require("../../packages/core/src/domain/CapabilitySpecMerge");
63
+ const CHANGES = path.join("docs", "specs", "changes");
64
+ const CAPABILITIES = path.join("docs", "specs", "capabilities");
65
+ const SECTION = /^## (ADDED|MODIFIED|REMOVED|RENAMED) Requirements/;
66
+ const REQUIREMENT = /^###\s+Requirement:\s+(REQ-[\w.]+)/;
67
+ const BASED_ON = /^based_on:\s*\[([^\]]*)\]\s*$/m;
68
+ function git(dir, args) {
69
+ return (0, node_child_process_1.spawnSync)("git", ["-C", dir, ...args], { encoding: "utf8" });
70
+ }
71
+ /** The text that matters: the trace comment flips with every `apply`. */
72
+ function fingerprint(block) {
73
+ const text = block
74
+ .replace(/\r\n/g, "\n")
75
+ .split("\n")
76
+ .filter((l) => !/^<!--\s*specgate:trace\b/.test(l.trim()))
77
+ .map((l) => l.trimEnd())
78
+ .join("\n")
79
+ .trim();
80
+ return (0, node_crypto_1.createHash)("sha256").update(text).digest("hex").slice(0, 12);
81
+ }
82
+ /** The requirements a change modifies or removes, with their capability. */
83
+ function rewrites(projectDir, changeId) {
84
+ const specs = path.join(projectDir, CHANGES, changeId, "specs");
85
+ if (!fs.existsSync(specs))
86
+ return [];
87
+ const out = [];
88
+ for (const capability of fs.readdirSync(specs)) {
89
+ const delta = path.join(specs, capability, "spec.md");
90
+ if (!fs.existsSync(delta))
91
+ continue;
92
+ let section = "";
93
+ for (const line of fs.readFileSync(delta, "utf8").split("\n")) {
94
+ const s = SECTION.exec(line);
95
+ if (s)
96
+ section = s[1];
97
+ const r = REQUIREMENT.exec(line);
98
+ if (r && (section === "MODIFIED" || section === "REMOVED"))
99
+ out.push({ id: r[1], capability });
100
+ }
101
+ }
102
+ return out;
103
+ }
104
+ function openChanges(projectDir) {
105
+ const dir = path.join(projectDir, CHANGES);
106
+ if (!fs.existsSync(dir))
107
+ return [];
108
+ return fs
109
+ .readdirSync(dir, { withFileTypes: true })
110
+ .filter((e) => e.isDirectory() && e.name !== "archive" && !e.name.startsWith("."))
111
+ .map((e) => e.name);
112
+ }
113
+ const capabilityFile = (capability) => path.join(CAPABILITIES, capability, "spec.md");
114
+ function blockNow(projectDir, w) {
115
+ try {
116
+ const text = fs.readFileSync(path.join(projectDir, capabilityFile(w.capability)), "utf8");
117
+ return (0, CapabilitySpecMerge_1.requirementBlocks)(text).get(w.id);
118
+ }
119
+ catch {
120
+ return undefined;
121
+ }
122
+ }
123
+ function blockAt(projectDir, ref, prefix, w) {
124
+ const file = [prefix, capabilityFile(w.capability)].filter(Boolean).join("/");
125
+ const r = git(projectDir, ["show", `${ref}:${file.split(path.sep).join("/")}`]);
126
+ return r.status === 0 ? (0, CapabilitySpecMerge_1.requirementBlocks)(r.stdout).get(w.id) : undefined;
127
+ }
128
+ const yamlPath = (projectDir, changeId) => path.join(projectDir, CHANGES, changeId, "change.yaml");
129
+ function recorded(projectDir, changeId) {
130
+ let yaml = "";
131
+ try {
132
+ yaml = fs.readFileSync(yamlPath(projectDir, changeId), "utf8");
133
+ }
134
+ catch {
135
+ return new Map();
136
+ }
137
+ const list = BASED_ON.exec(yaml)?.[1] ?? "";
138
+ return new Map(list
139
+ .split(",")
140
+ .map((e) => e.trim().split("@"))
141
+ .filter(([id, sha]) => id && sha)
142
+ .map(([id, sha]) => [id, sha]));
143
+ }
144
+ /**
145
+ * Fingerprint what each open change rewrites and has no record of yet — or,
146
+ * for `rebased`, all of one change's, after its delta was rewritten over the
147
+ * moved text. Returns the ids written.
148
+ */
149
+ function recordBases(projectDir, only) {
150
+ const written = [];
151
+ for (const changeId of only ? [only.changeId] : openChanges(projectDir)) {
152
+ const file = yamlPath(projectDir, changeId);
153
+ if (!fs.existsSync(file))
154
+ continue;
155
+ const have = only?.rebased ? new Map() : recorded(projectDir, changeId);
156
+ const next = new Map(have);
157
+ for (const w of rewrites(projectDir, changeId)) {
158
+ if (next.has(w.id))
159
+ continue;
160
+ const block = blockNow(projectDir, w);
161
+ if (block === undefined)
162
+ continue;
163
+ next.set(w.id, fingerprint(block));
164
+ written.push(w.id);
165
+ }
166
+ const before = recorded(projectDir, changeId);
167
+ const same = next.size === before.size && [...next].every(([k, v]) => before.get(k) === v);
168
+ if (same)
169
+ continue;
170
+ const line = `based_on: [${[...next].map(([id, sha]) => `${id}@${sha}`).join(", ")}]`;
171
+ const yaml = fs.readFileSync(file, "utf8");
172
+ fs.writeFileSync(file, BASED_ON.test(yaml) ? yaml.replace(BASED_ON, line) : `${yaml.replace(/\n*$/, "\n")}${line}\n`, "utf8");
173
+ }
174
+ return written;
175
+ }
176
+ const rewriteFix = (changeId, w) => `Rewrite ${w.id} in ${path.join(CHANGES, changeId, "specs", w.capability, "spec.md")} over ` +
177
+ `${capabilityFile(w.capability)} as it reads now, keeping what the other change added; then ` +
178
+ `run \`specgate change validate ${changeId} --rebased\`.`;
179
+ /** The requirements one change rewrites that moved since it recorded them. */
180
+ function movedSinceRecorded(projectDir, changeId) {
181
+ const have = recorded(projectDir, changeId);
182
+ return rewrites(projectDir, changeId).filter((w) => {
183
+ const sha = have.get(w.id);
184
+ const block = blockNow(projectDir, w);
185
+ return sha !== undefined && block !== undefined && fingerprint(block) !== sha;
186
+ });
187
+ }
188
+ /** Archive's refusal: an error per requirement that moved under the change. */
189
+ function archiveBaseMoved(projectDir, changeId) {
190
+ return movedSinceRecorded(projectDir, changeId).map((w) => (0, diagnostics_1.error)("change_base_moved", `${w.id} changed after ${changeId} was drafted against it: archiving would replace it as it reads now.`, { target: w.id, fix: rewriteFix(changeId, w) }));
191
+ }
192
+ /**
193
+ * `change_base_moved` warnings for `check`: moved since recorded, or — before
194
+ * the branch caught up — different on the base from where the two last met.
195
+ */
196
+ function changeBaseFindings(projectDir, given) {
197
+ const out = [];
198
+ let base = null;
199
+ try {
200
+ base = (0, ticket_keys_1.ticketBase)(projectDir, given);
201
+ }
202
+ catch {
203
+ base = null;
204
+ }
205
+ const met = base ? git(projectDir, ["merge-base", "HEAD", base]) : null;
206
+ const prefix = git(projectDir, ["rev-parse", "--show-prefix"]).stdout.trim().replace(/\/$/, "");
207
+ for (const changeId of openChanges(projectDir)) {
208
+ const moved = new Set(movedSinceRecorded(projectDir, changeId).map((w) => w.id));
209
+ for (const w of rewrites(projectDir, changeId)) {
210
+ if (moved.has(w.id)) {
211
+ out.push((0, diagnostics_1.warning)("change_base_moved", `${w.id} changed after ${changeId} was drafted against it: archiving would replace it as it reads now.`, { target: w.id, fix: rewriteFix(changeId, w) }));
212
+ continue;
213
+ }
214
+ if (!base || !met || met.status !== 0)
215
+ continue;
216
+ const then = blockAt(projectDir, met.stdout.trim(), prefix, w);
217
+ const there = blockAt(projectDir, base, prefix, w);
218
+ if (then === undefined || there === undefined || fingerprint(then) === fingerprint(there)) {
219
+ continue;
220
+ }
221
+ out.push((0, diagnostics_1.warning)("change_base_moved", `${w.id}, which ${changeId} rewrites, has changed on ${base} since this branch started.`, {
222
+ target: w.id,
223
+ fix: `Merge ${base} into this branch, rewrite ${w.id} in the delta over the requirement ` +
224
+ `as merged, then run \`specgate change validate ${changeId} --rebased\`.`,
225
+ }));
226
+ }
227
+ }
228
+ return out;
229
+ }
230
+ //# sourceMappingURL=change-base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change-base.js","sourceRoot":"","sources":["../../../scripts/lib/change-base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,234 @@
1
+ "use strict";
2
+ /**
3
+ * Two open changes that rewrite the same requirement (REQ-160).
4
+ *
5
+ * With one change per ticket, two developers can each modify REQ-012 on their
6
+ * own branch. Reserved ids do not help — the requirement already exists — and
7
+ * git only notices when the text conflicts: two rewrites that touch different
8
+ * lines merge cleanly, and the second silently replaces the first. So the
9
+ * changes are read where they are: the working tree, and every local and
10
+ * remote-tracking branch not yet merged into this one (`git grep`, no
11
+ * checkout).
12
+ */
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || (function () {
30
+ var ownKeys = function(o) {
31
+ ownKeys = Object.getOwnPropertyNames || function (o) {
32
+ var ar = [];
33
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
34
+ return ar;
35
+ };
36
+ return ownKeys(o);
37
+ };
38
+ return function (mod) {
39
+ if (mod && mod.__esModule) return mod;
40
+ var result = {};
41
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
42
+ __setModuleDefault(result, mod);
43
+ return result;
44
+ };
45
+ })();
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ exports.changeOverlaps = changeOverlaps;
48
+ const node_child_process_1 = require("node:child_process");
49
+ const fs = __importStar(require("node:fs"));
50
+ const path = __importStar(require("node:path"));
51
+ const diagnostics_1 = require("./diagnostics");
52
+ const CHANGES = "docs/specs/changes";
53
+ /** Refs per `git grep` call: a long branch list stays under the argument limit. */
54
+ const BATCH = 200;
55
+ const SECTION = /^## (ADDED|MODIFIED|REMOVED|RENAMED) Requirements/;
56
+ const REQUIREMENT = /^###\s+Requirement:\s+(REQ-[\w.]+)/;
57
+ /** A path inside an open change's delta, with the change's id. */
58
+ const OPEN_DELTA = /^docs\/specs\/changes\/([^/]+)\/specs\/.+\.md$/;
59
+ function git(dir, args) {
60
+ return (0, node_child_process_1.spawnSync)("git", ["-C", dir, ...args], { encoding: "utf8", maxBuffer: 64 * 1024 * 1024 });
61
+ }
62
+ const isOpen = (changeId) => changeId !== "archive" && !changeId.startsWith(".");
63
+ const touches = () => ({ rewrites: new Set(), adds: new Set() });
64
+ function read(lines, into) {
65
+ let section = "";
66
+ for (const line of lines) {
67
+ const s = SECTION.exec(line);
68
+ if (s) {
69
+ section = s[1];
70
+ continue;
71
+ }
72
+ const r = REQUIREMENT.exec(line);
73
+ if (!r)
74
+ continue;
75
+ if (section === "MODIFIED" || section === "REMOVED")
76
+ into.rewrites.add(r[1]);
77
+ else if (section === "ADDED")
78
+ into.adds.add(r[1]);
79
+ }
80
+ }
81
+ const empty = (t) => t.rewrites.size === 0 && t.adds.size === 0;
82
+ function deltaFiles(dir) {
83
+ if (!fs.existsSync(dir))
84
+ return [];
85
+ return fs.readdirSync(dir, { withFileTypes: true }).flatMap((e) => {
86
+ const full = path.join(dir, e.name);
87
+ return e.isDirectory() ? deltaFiles(full) : e.name.endsWith(".md") ? [full] : [];
88
+ });
89
+ }
90
+ /** Open change → what it does to requirements, in the working tree. */
91
+ function localChanges(projectDir) {
92
+ const out = new Map();
93
+ const changes = path.join(projectDir, CHANGES);
94
+ if (!fs.existsSync(changes))
95
+ return out;
96
+ for (const e of fs.readdirSync(changes, { withFileTypes: true })) {
97
+ if (!e.isDirectory() || !isOpen(e.name))
98
+ continue;
99
+ const t = touches();
100
+ for (const file of deltaFiles(path.join(changes, e.name, "specs"))) {
101
+ read(fs.readFileSync(file, "utf8").split("\n"), t);
102
+ }
103
+ if (!empty(t))
104
+ out.set(e.name, t);
105
+ }
106
+ return out;
107
+ }
108
+ const shortRef = (ref) => ref.replace(/^refs\/(heads|remotes)\//, "");
109
+ /** Branches not yet merged into HEAD: the ones whose open changes can still collide. */
110
+ function unmergedRefs(projectDir) {
111
+ const current = git(projectDir, ["symbolic-ref", "-q", "HEAD"]).stdout.trim();
112
+ const refs = git(projectDir, [
113
+ "for-each-ref",
114
+ "--format=%(refname)",
115
+ "refs/heads",
116
+ "refs/remotes",
117
+ ]);
118
+ if (refs.status !== 0)
119
+ return [];
120
+ return refs.stdout
121
+ .split("\n")
122
+ .map((r) => r.trim())
123
+ .filter((r) => r && r !== current && !r.endsWith("/HEAD"))
124
+ .filter((r) => git(projectDir, ["merge-base", "--is-ancestor", r, "HEAD"]).status !== 0);
125
+ }
126
+ /** `branch → change → what it does`, read from every unmerged branch. */
127
+ function branchChanges(projectDir) {
128
+ const out = new Map();
129
+ const refs = unmergedRefs(projectDir);
130
+ for (let i = 0; i < refs.length; i += BATCH) {
131
+ const batch = refs.slice(i, i + BATCH);
132
+ const found = git(projectDir, [
133
+ "grep",
134
+ "-n",
135
+ "-E",
136
+ "^(## (ADDED|MODIFIED|REMOVED|RENAMED) Requirements|### +Requirement: +REQ-)",
137
+ ...batch,
138
+ "--",
139
+ CHANGES,
140
+ ]);
141
+ // 1 is "no match", which is an answer.
142
+ if (found.status !== 0)
143
+ continue;
144
+ const byFile = new Map();
145
+ for (const line of found.stdout.split("\n")) {
146
+ const ref = batch.find((r) => line.startsWith(`${r}:`));
147
+ if (!ref)
148
+ continue;
149
+ const rest = line.slice(ref.length + 1);
150
+ const m = /^([^:]+):\d+:(.*)$/.exec(rest);
151
+ if (!m)
152
+ continue;
153
+ const key = `${ref}\u0000${m[1]}`;
154
+ if (!byFile.has(key))
155
+ byFile.set(key, []);
156
+ byFile.get(key).push(m[2]);
157
+ }
158
+ for (const [key, lines] of byFile) {
159
+ const [ref, file] = key.split("\u0000");
160
+ const change = OPEN_DELTA.exec(file)?.[1];
161
+ if (!change || !isOpen(change))
162
+ continue;
163
+ const branch = shortRef(ref);
164
+ if (!out.has(branch))
165
+ out.set(branch, new Map());
166
+ const changes = out.get(branch);
167
+ if (!changes.has(change))
168
+ changes.set(change, touches());
169
+ read(lines, changes.get(change));
170
+ }
171
+ }
172
+ return out;
173
+ }
174
+ const CLASH_FIX = "Two requirements cannot share an id. Renumber the one whose branch is not merged yet: " +
175
+ "a new id above both, in its delta and in the tests that name it.";
176
+ const FIX = "Agree which goes first. Merge that one, bring it into the other branch, and draft the second " +
177
+ "change again over the requirement as merged, so neither rewrite silently replaces the other.";
178
+ /**
179
+ * `change_overlap` for each requirement an open change here rewrites that
180
+ * another open change also rewrites — on this branch or on an unmerged one —
181
+ * and `change_id_clash` for each id it adds that a change on an unmerged
182
+ * branch adds too.
183
+ */
184
+ function changeOverlaps(projectDir) {
185
+ const local = localChanges(projectDir);
186
+ if (local.size === 0)
187
+ return [];
188
+ const out = [];
189
+ const said = new Set();
190
+ const clash = (req, mine, other, where) => {
191
+ const key = `clash\u0000${req}\u0000${other}`;
192
+ if (said.has(key))
193
+ return;
194
+ said.add(key);
195
+ out.push((0, diagnostics_1.warning)("change_id_clash", `${req} is added by ${mine} and also by change ${other} ${where}.`, {
196
+ target: req,
197
+ fix: CLASH_FIX,
198
+ }));
199
+ };
200
+ const say = (req, mine, other, where) => {
201
+ const key = `${req}\u0000${[mine, other].sort().join("\u0000")}`;
202
+ if (said.has(key))
203
+ return;
204
+ said.add(key);
205
+ out.push((0, diagnostics_1.warning)("change_overlap", `${req} is rewritten by ${mine} and also by change ${other} ${where}.`, { target: req, fix: FIX }));
206
+ };
207
+ const ids = [...local.keys()];
208
+ for (let i = 0; i < ids.length; i++) {
209
+ for (let j = i + 1; j < ids.length; j++) {
210
+ for (const req of local.get(ids[i]).rewrites) {
211
+ if (local.get(ids[j]).rewrites.has(req))
212
+ say(req, ids[i], ids[j], "on this branch");
213
+ }
214
+ }
215
+ }
216
+ for (const [branch, changes] of branchChanges(projectDir)) {
217
+ for (const [other, theirs] of changes) {
218
+ // The same change on its own pushed branch, or an older copy of it.
219
+ if (local.has(other))
220
+ continue;
221
+ for (const [mine, t] of local) {
222
+ for (const req of t.rewrites)
223
+ if (theirs.rewrites.has(req))
224
+ say(req, mine, other, `on ${branch}`);
225
+ // Reserved on two clones before either fetched the other (REQ-164).
226
+ for (const req of t.adds)
227
+ if (theirs.adds.has(req))
228
+ clash(req, mine, other, `on ${branch}`);
229
+ }
230
+ }
231
+ }
232
+ return out;
233
+ }
234
+ //# sourceMappingURL=change-overlap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change-overlap.js","sourceRoot":"","sources":["../../../scripts/lib/change-overlap.ts"],"names":[],"mappings":"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"}
@@ -116,6 +116,12 @@ exports.SURFACE = [
116
116
  // No `help` block on purpose: git calls this, a person does not, so it is
117
117
  // a hidden command rather than a line in a menu nobody can act on.
118
118
  },
119
+ {
120
+ // Plumbing too: the merge driver for docs/specs/capabilities/*/spec.md.
121
+ name: "merge-capability-spec",
122
+ script: ["merge-capability-spec.js"],
123
+ mcp: false,
124
+ },
119
125
  {
120
126
  name: "status",
121
127
  script: ["status.js"],
@@ -161,6 +167,8 @@ exports.SURFACE = [
161
167
  { name: "link" },
162
168
  { name: "status" },
163
169
  { name: "pull", editsContract: true, json: { key: "pulled", gate: false } },
170
+ // Pushes a branch and opens a pull request: a person's step, not an MCP tool.
171
+ { name: "pr", mcp: false },
164
172
  ],
165
173
  },
166
174
  {
@@ -1 +1 @@
1
- {"version":3,"file":"surface.js","sourceRoot":"","sources":["../../../scripts/lib/surface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"surface.js","sourceRoot":"","sources":["../../../scripts/lib/surface.ts"],"names":[],"mappings":"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"}