@rsaglobaltech/specgate 0.22.1 → 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 (38) hide show
  1. package/CHANGELOG.md +115 -54
  2. package/dist/packages/core/src/domain/CapabilitySpecMerge.js +83 -0
  3. package/dist/packages/core/src/domain/CapabilitySpecMerge.js.map +1 -0
  4. package/dist/packages/core/test/unit/capability-spec-merge.test.js +104 -0
  5. package/dist/packages/core/test/unit/capability-spec-merge.test.js.map +1 -0
  6. package/dist/scripts/agents/detect.js +1 -0
  7. package/dist/scripts/agents/detect.js.map +1 -1
  8. package/dist/scripts/agents/init.js +13 -0
  9. package/dist/scripts/agents/init.js.map +1 -1
  10. package/dist/scripts/cli/commands/change/ChangeCommand.js +21 -0
  11. package/dist/scripts/cli/commands/change/ChangeCommand.js.map +1 -1
  12. package/dist/scripts/cli/commands/change/TicketCommand.js +64 -6
  13. package/dist/scripts/cli/commands/change/TicketCommand.js.map +1 -1
  14. package/dist/scripts/cli/commands/quality/CheckCommand.js +15 -5
  15. package/dist/scripts/cli/commands/quality/CheckCommand.js.map +1 -1
  16. package/dist/scripts/cli/commands/quality/DoctorCommand.js +22 -8
  17. package/dist/scripts/cli/commands/quality/DoctorCommand.js.map +1 -1
  18. package/dist/scripts/draft/drafting-guide.js +4 -0
  19. package/dist/scripts/draft/drafting-guide.js.map +1 -1
  20. package/dist/scripts/draft/ticket-guide.js +4 -0
  21. package/dist/scripts/draft/ticket-guide.js.map +1 -1
  22. package/dist/scripts/harness/init.js +85 -25
  23. package/dist/scripts/harness/init.js.map +1 -1
  24. package/dist/scripts/harness/prompt.js +13 -1
  25. package/dist/scripts/harness/prompt.js.map +1 -1
  26. package/dist/scripts/lib/base-ids.js +7 -0
  27. package/dist/scripts/lib/base-ids.js.map +1 -1
  28. package/dist/scripts/lib/change-base.js +230 -0
  29. package/dist/scripts/lib/change-base.js.map +1 -0
  30. package/dist/scripts/lib/change-overlap.js +234 -0
  31. package/dist/scripts/lib/change-overlap.js.map +1 -0
  32. package/dist/scripts/lib/surface.js +6 -0
  33. package/dist/scripts/lib/surface.js.map +1 -1
  34. package/dist/scripts/lib/ticket-keys.js +48 -3
  35. package/dist/scripts/lib/ticket-keys.js.map +1 -1
  36. package/dist/scripts/merge-capability-spec.js +87 -0
  37. package/dist/scripts/merge-capability-spec.js.map +1 -0
  38. package/package.json +1 -1
@@ -47,7 +47,7 @@ var __importStar = (this && this.__importStar) || (function () {
47
47
  };
48
48
  })();
49
49
  Object.defineProperty(exports, "__esModule", { value: true });
50
- exports.GITATTRIBUTES_LINE = exports.MERGE_DRIVER_NAME = exports.InitCommand = void 0;
50
+ exports.attributesLine = exports.MERGE_DRIVERS = exports.GITATTRIBUTES_LINE = exports.MERGE_DRIVER_NAME = exports.InitCommand = void 0;
51
51
  exports.detectSetupCommand = detectSetupCommand;
52
52
  exports.setupCommand = setupCommand;
53
53
  exports.detectTestCommand = detectTestCommand;
@@ -56,6 +56,7 @@ exports.harnessFiles = harnessFiles;
56
56
  exports.withBuild = withBuild;
57
57
  exports.projectName = projectName;
58
58
  exports.mergeHarnessConfig = mergeHarnessConfig;
59
+ exports.driverCommand = driverCommand;
59
60
  exports.installMergeDriver = installMergeDriver;
60
61
  const fs = __importStar(require("node:fs"));
61
62
  const path = __importStar(require("node:path"));
@@ -463,7 +464,7 @@ class InitCommand extends command_1.BaseCommand {
463
464
  if (driverProblem)
464
465
  status.push(driverProblem);
465
466
  else
466
- status.push((0, diagnostics_1.info)("merge_driver_registered", "docs/specs/traceability.md now merges row by row, so parallel harness branches do not collide.", {
467
+ status.push((0, diagnostics_1.info)("merge_driver_registered", "Parallel branches no longer collide on the traceability matrix or on capability specs: the rules are in .gitattributes, the drivers in this clone's git config.", {
467
468
  target: ".gitattributes",
468
469
  fix: "Commit .gitattributes. Every other clone and CI runs `specgate harness init` once to register the driver in its own git config.",
469
470
  }));
@@ -514,10 +515,55 @@ class InitCommand extends command_1.BaseCommand {
514
515
  }
515
516
  }
516
517
  exports.InitCommand = InitCommand;
517
- // ── the traceability merge driver ────────────────────────────────────────────
518
+ // ── the merge drivers ────────────────────────────────────────────
518
519
  /** What `.gitattributes` must say for git to route the matrix to our driver. */
519
520
  exports.MERGE_DRIVER_NAME = "specgate-matrix";
520
521
  exports.GITATTRIBUTES_LINE = `docs/specs/traceability.md merge=${exports.MERGE_DRIVER_NAME}`;
522
+ exports.MERGE_DRIVERS = [
523
+ {
524
+ name: exports.MERGE_DRIVER_NAME,
525
+ pattern: "docs/specs/traceability.md",
526
+ command: "merge-traceability",
527
+ title: "specgate traceability matrix merge",
528
+ comment: "# Merge the traceability matrix row by row, so parallel harness\n" +
529
+ "# branches do not collide on adjacent rows. Needs the driver registered:\n",
530
+ healthy: "traceability.md merges row by row",
531
+ },
532
+ {
533
+ // REQ-166: two tickets archiving into one capability.
534
+ name: "specgate-spec",
535
+ pattern: "docs/specs/capabilities/*/spec.md",
536
+ command: "merge-capability-spec",
537
+ title: "specgate capability spec merge",
538
+ comment: "# Merge capability specs requirement by requirement, so two tickets that\n" +
539
+ "# archive into the same capability do not collide. Needs the driver registered:\n",
540
+ healthy: "capability specs merge requirement by requirement",
541
+ },
542
+ ];
543
+ const attributesLine = (d) => `${d.pattern} merge=${d.name}`;
544
+ exports.attributesLine = attributesLine;
545
+ /**
546
+ * The command git runs for a driver: `node <file> [args] %O %A %B` while
547
+ * `file` is there, and git's own line merge once it is not (REQ-169).
548
+ *
549
+ * Without a `node_modules` of its own, Maven for one, a project's driver runs
550
+ * this machine's copy of specgate, and copies go away: an npx cache cleared, a
551
+ * global install upgraded. `node` then fails, and git stops the merge with the
552
+ * file holding our side alone — no markers, the other side's text gone from it,
553
+ * and `git add` keeps it that way. Falling back to `git merge-file` leaves the
554
+ * same markers git would have left without the driver.
555
+ *
556
+ * `file` is written as the shell should read it (quoted when it is a path
557
+ * with spaces); the script is single-quoted, so it holds no single quote.
558
+ */
559
+ function driverCommand(file, args = []) {
560
+ const script = "o=$1; a=$2; b=$3; f=$4; shift 3; " +
561
+ 'if [ -f "$f" ]; then exec node "$@" "$o" "$a" "$b"; fi; ' +
562
+ 'echo "specgate: merge driver $f not found, so this file was merged by lines. ' +
563
+ 'Fix: run specgate harness init." >&2; ' +
564
+ 'exec git merge-file -L ours -L base -L theirs "$a" "$o" "$b"';
565
+ return `sh -c '${script}' specgate-merge %O %A %B ${[file, ...args].join(" ")}`;
566
+ }
521
567
  /**
522
568
  * Register the row-wise merge driver for `docs/specs/traceability.md`.
523
569
  *
@@ -545,17 +591,28 @@ exports.GITATTRIBUTES_LINE = `docs/specs/traceability.md merge=${exports.MERGE_D
545
591
  function installMergeDriver(projectDir) {
546
592
  const attributesPath = path.join(projectDir, ".gitattributes");
547
593
  const existing = fs.existsSync(attributesPath) ? fs.readFileSync(attributesPath, "utf8") : "";
594
+ // A path the project already routes elsewhere keeps its rule: the last
595
+ // matching line wins, and a generated matrix is `merge=union` on purpose
596
+ // (ADR-0036), so the row driver appended after it would take that away.
597
+ const routedElsewhere = (d) => existing
598
+ .split("\n")
599
+ .some((l) => l.trim().split(/\s+/)[0] === d.pattern &&
600
+ /merge=/.test(l) &&
601
+ !l.includes(`merge=${d.name}`));
602
+ const drivers = exports.MERGE_DRIVERS.filter((d) => !routedElsewhere(d));
548
603
  let appendedToTracked = false;
549
- if (!existing.includes(exports.GITATTRIBUTES_LINE)) {
604
+ for (const d of drivers) {
605
+ const current = fs.existsSync(attributesPath) ? fs.readFileSync(attributesPath, "utf8") : "";
606
+ if (current.includes((0, exports.attributesLine)(d)))
607
+ continue;
550
608
  // `.gitattributes` is committed, so appending to it changes a file the
551
609
  // whole team shares. A cold evaluator found this the way you always find a
552
610
  // silent write — in `git status`, after the fact — so the command says it.
553
- appendedToTracked = existing !== "";
554
- const separator = existing === "" || existing.endsWith("\n") ? "" : "\n";
555
- fs.appendFileSync(attributesPath, `${separator}# Merge the traceability matrix row by row, so parallel harness\n` +
556
- `# branches do not collide on adjacent rows. Needs the driver registered:\n` +
611
+ appendedToTracked ||= existing !== "";
612
+ const separator = current === "" || current.endsWith("\n") ? "" : "\n";
613
+ fs.appendFileSync(attributesPath, `${separator}${d.comment}` +
557
614
  `# specgate harness init --project-dir .\n` +
558
- `${exports.GITATTRIBUTES_LINE}\n`, "utf8");
615
+ `${(0, exports.attributesLine)(d)}\n`, "utf8");
559
616
  }
560
617
  // How the driver is addressed decides whether it works on anybody else's
561
618
  // clone.
@@ -572,9 +629,9 @@ function installMergeDriver(projectDir) {
572
629
  // next person to find out during a merge.
573
630
  const localBin = path.join(projectDir, "node_modules", "@rsaglobaltech", "specgate", "bin", "specgate.js");
574
631
  const driverIsPortable = fs.existsSync(localBin);
575
- const driverCommand = driverIsPortable
576
- ? `node node_modules/@rsaglobaltech/specgate/bin/specgate.js merge-traceability`
577
- : `node ${JSON.stringify(path.join(__dirname, "..", "merge-traceability.js"))}`;
632
+ const commandFor = (d) => driverIsPortable
633
+ ? driverCommand("node_modules/@rsaglobaltech/specgate/bin/specgate.js", [d.command])
634
+ : driverCommand(JSON.stringify(path.join(__dirname, "..", `${d.command}.js`)));
578
635
  const gitConfig = (key, value) => (0, node_child_process_1.spawnSync)("git", ["-C", projectDir, "config", key, value], { encoding: "utf8" });
579
636
  // Order matters, and getting it wrong is worse than not doing it at all.
580
637
  //
@@ -591,20 +648,23 @@ function installMergeDriver(projectDir) {
591
648
  //
592
649
  // So `driver` goes in first and `name` only follows if it landed; and if it
593
650
  // did not, any stale `name` is removed rather than left pointing at nothing.
594
- const configured = gitConfig(`merge.${exports.MERGE_DRIVER_NAME}.driver`, `${driverCommand} %O %A %B`);
595
- if (configured.status !== 0) {
596
- (0, node_child_process_1.spawnSync)("git", ["-C", projectDir, "config", "--unset", `merge.${exports.MERGE_DRIVER_NAME}.name`], {
597
- encoding: "utf8",
598
- });
599
- return (0, diagnostics_1.warning)("merge_driver_not_registered", "Could not register the traceability merge driver in git config.", {
600
- target: ".gitattributes",
601
- fix: `Run it by hand inside the project:\n` +
602
- ` git config merge.${exports.MERGE_DRIVER_NAME}.driver '${driverCommand} %O %A %B'\n` +
603
- "Until then git uses its built-in merge, which conflicts when two " +
604
- "harness branches touch adjacent rows.",
605
- });
651
+ for (const d of drivers) {
652
+ const driverCommand = commandFor(d);
653
+ const configured = gitConfig(`merge.${d.name}.driver`, driverCommand);
654
+ if (configured.status !== 0) {
655
+ (0, node_child_process_1.spawnSync)("git", ["-C", projectDir, "config", "--unset", `merge.${d.name}.name`], {
656
+ encoding: "utf8",
657
+ });
658
+ return (0, diagnostics_1.warning)("merge_driver_not_registered", `Could not register the ${d.title} driver in git config.`, {
659
+ target: ".gitattributes",
660
+ fix: `Run it by hand inside the project:\n` +
661
+ ` git config merge.${d.name}.driver ${JSON.stringify(driverCommand)}\n` +
662
+ `Until then git merges ${d.pattern} by lines, which conflicts when two ` +
663
+ "parallel branches touch neighbouring lines.",
664
+ });
665
+ }
666
+ gitConfig(`merge.${d.name}.name`, d.title);
606
667
  }
607
- gitConfig(`merge.${exports.MERGE_DRIVER_NAME}.name`, "specgate traceability matrix merge");
608
668
  if (!driverIsPortable) {
609
669
  return (0, diagnostics_1.warning)("merge_driver_is_machine_local", "The merge driver points at this machine's copy of specgate.", {
610
670
  target: ".gitattributes",
@@ -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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"}
@@ -7,12 +7,24 @@ exports.buildPrompt = buildPrompt;
7
7
  const instructions_1 = require("../change/instructions");
8
8
  const DiskHarnessConfigRepository_1 = require("../../packages/core/src/infrastructure/DiskHarnessConfigRepository");
9
9
  const GenerateAgentPromptUseCase_1 = require("../../packages/core/src/application/GenerateAgentPromptUseCase");
10
+ /**
11
+ * The apply stage's rules, as an agent inside the harness must read them. The
12
+ * interactive loop has the agent run `specgate status` and `specgate apply`;
13
+ * here the harness runs the gate and marks the requirement itself, and an
14
+ * agent told to run them ran whatever `specgate` was on its PATH — an old
15
+ * global install with no `apply` — and spent the attempt on it.
16
+ */
17
+ const HARNESS_RULES = [
18
+ ...(instructions_1.STAGES?.apply?.rules ?? []).filter((r) => !/is the queue|Close each requirement with `specgate apply/.test(r)),
19
+ "Do not run `specgate` yourself: when you finish, the harness runs the gate and marks the " +
20
+ "requirement. The `specgate` on your PATH may not even be this project's version.",
21
+ ];
10
22
  function buildPrompt(req, projectDir, opts = {}) {
11
23
  const repo = new DiskHarnessConfigRepository_1.DiskHarnessConfigRepository();
12
24
  const useCase = new GenerateAgentPromptUseCase_1.GenerateAgentPromptUseCase(repo);
13
25
  return useCase.execute(req, projectDir, {
14
26
  ...opts,
15
- stageRules: instructions_1.STAGES?.apply?.rules,
27
+ stageRules: HARNESS_RULES,
16
28
  });
17
29
  }
18
30
  //# sourceMappingURL=prompt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../scripts/harness/prompt.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAYH,kCAYC;AAtBD,yDAAgD;AAChD,oHAAiH;AACjH,+GAA4G;AAQ5G,SAAgB,WAAW,CACzB,GAA4B,EAC5B,UAAkB,EAClB,OAAsB,EAAE;IAExB,MAAM,IAAI,GAAG,IAAI,yDAA2B,EAAE,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAI,uDAA0B,CAAC,IAAI,CAAC,CAAC;IAErD,OAAO,OAAO,CAAC,OAAO,CAAC,GAAwB,EAAE,UAAU,EAAE;QAC3D,GAAG,IAAI;QACP,UAAU,EAAE,qBAAM,EAAE,KAAK,EAAE,KAAK;KACjC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../scripts/harness/prompt.ts"],"names":[],"mappings":";AAAA;;GAEG;;AA2BH,kCAYC;AArCD,yDAAgD;AAChD,oHAAiH;AACjH,+GAA4G;AAQ5G;;;;;;GAMG;AACH,MAAM,aAAa,GAAa;IAC9B,GAAG,CAAC,qBAAM,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,0DAA0D,CAAC,IAAI,CAAC,CAAC,CAAC,CAC3E;IACD,2FAA2F;QACzF,kFAAkF;CACrF,CAAC;AAEF,SAAgB,WAAW,CACzB,GAA4B,EAC5B,UAAkB,EAClB,OAAsB,EAAE;IAExB,MAAM,IAAI,GAAG,IAAI,yDAA2B,EAAE,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAI,uDAA0B,CAAC,IAAI,CAAC,CAAC;IAErD,OAAO,OAAO,CAAC,OAAO,CAAC,GAAwB,EAAE,UAAU,EAAE;QAC3D,GAAG,IAAI;QACP,UAAU,EAAE,aAAa;KAC1B,CAAC,CAAC;AACL,CAAC"}
@@ -160,8 +160,15 @@ function checkIdsAgainstBase(projectDir, given) {
160
160
  }
161
161
  const here = titles(workingTree(projectDir));
162
162
  const there = titles(atRef(projectDir, base, prefix));
163
+ // Only ids this branch introduced can collide. One both sides already held
164
+ // where they last met is concurrent editing, not a reused id (REQ-120):
165
+ // renumbering it would break every test that names it.
166
+ const met = git(projectDir, ["merge-base", "HEAD", base]);
167
+ const inherited = met.status === 0 ? titles(atRef(projectDir, met.stdout.trim(), prefix)) : new Map();
163
168
  const collisions = [];
164
169
  for (const [id, title] of here) {
170
+ if (inherited.has(id))
171
+ continue;
165
172
  const other = there.get(id);
166
173
  if (other !== undefined && norm(other) !== norm(title)) {
167
174
  collisions.push({ id, here: title, base: other });
@@ -1 +1 @@
1
- {"version":3,"file":"base-ids.js","sourceRoot":"","sources":["../../../scripts/lib/base-ids.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-ids.js","sourceRoot":"","sources":["../../../scripts/lib/base-ids.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2HA,kCAKC;AAID,kDAsCC;AA1KD,4CAA8B;AAC9B,gDAAkC;AAClC,2DAA+C;AAC/C,gFAA8E;AAC9E,0EAA0E;AAC1E,wEAA4E;AAC5E,4FAA4F;AAqB5F,yFAAyF;AACzF,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,KAAK,CAAC,OAAO,CAAC,uDAAuD,EAAE,EAAE,CAAC,CAAC;AACpF,CAAC;AAKD,SAAS,MAAM,CAAC,MAAc;IAC5B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,MAAM,KAAK,IAAI;YAAE,SAAS;QAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACpF,KAAK,MAAM,GAAG,IAAI,IAAA,8BAAc,EAAC,IAAA,0BAAa,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACtD,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,EAAE,CAChC,GAAG,KAAK,SAAS;IACjB,2CAA2C,CAAC,IAAI,CAAC,GAAG,CAAC;IACrD,iEAAiE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE9E,SAAS,IAAI,CAAC,IAAY,EAAE,GAAW,EAAE,GAAa;IACpD,IAAI,OAAoB,CAAC;IACzB,IAAI,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAChD,IAAI,CAAC,CAAC,WAAW,EAAE;YAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;aACvC,IAAI,SAAS,CAAC,KAAK,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,UAAkB;IACrC,OAAO;QACL,IAAI;YACF,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3E,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;YACtC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,GAAG;YACN,IAAI,CAAC;gBACH,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;YAC7D,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,GAAG,CAAC,UAAkB,EAAE,IAAc;IAC7C,OAAO,IAAA,8BAAS,EAAC,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,kEAAkE;AAClE,SAAS,QAAQ,CAAC,UAAkB;IAClC,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACpE,CAAC;AAED,SAAS,KAAK,CAAC,UAAkB,EAAE,GAAW,EAAE,MAAc;IAC5D,MAAM,CAAC,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/D,OAAO;QACL,IAAI;YACF,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,EAAE;gBACxB,SAAS;gBACT,IAAI;gBACJ,aAAa;gBACb,GAAG;gBACH,IAAI;gBACJ,CAAC,CAAC,SAAS,CAAC;gBACZ,CAAC,CAAC,YAAY,CAAC;aAChB,CAAC,CAAC;YACH,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAC9B,OAAO,CAAC,CAAC,MAAM;iBACZ,KAAK,CAAC,IAAI,CAAC;iBACX,MAAM,CAAC,OAAO,CAAC;iBACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACrD,MAAM,CAAC,SAAS,CAAC,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,GAAG;YACN,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACxD,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1C,CAAC;KACF,CAAC;AACJ,CAAC;AAED,sEAAsE;AACtE,SAAgB,WAAW,CAAC,UAAkB,EAAE,KAAc;IAC5D,MAAM,MAAM,GAAG,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;IACxD,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC;IAC3E,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/F,CAAC;AAED,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAExE,SAAgB,mBAAmB,CAAC,UAAkB,EAAE,KAAc;IACpE,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IACpC,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC;IACjF,MAAM,IAAI,GAAG,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,uCAAuC,EAAE,CAAC;IACxF,IAAI,CAAC;QACH,IAAA,4BAAgB,EAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,IAAI,2BAA2B,EAAE,CAAC;IAC3E,CAAC;IACD,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3F,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,IAAI,oCAAoC,EAAE,CAAC;IACzF,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,2EAA2E;IAC3E,wEAAwE;IACxE,uDAAuD;IACvD,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1D,MAAM,SAAS,GACb,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;IACtF,MAAM,UAAU,GAAkB,EAAE,CAAC;IACrC,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QAC/B,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QAChC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACvD,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAA,oCAAkB,EAAC,UAAU,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9F,OAAO;QACL,KAAK,EAAE,SAAS;QAChB,IAAI;QACJ,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAClE,QAAQ,EAAE,OAAO,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;KACxD,CAAC;AACJ,CAAC"}
@@ -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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"}