@wemuda/launchrail 1.16.0 → 1.18.0

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/dist/lib/adr.js CHANGED
@@ -3,61 +3,341 @@ import { join } from "node:path";
3
3
  export const ADR_DIR = "docs/adr";
4
4
  export const ADR_TEMPLATE_FILENAME = "0000-template.md";
5
5
  export const ADR_REGISTRY_PATH = `${ADR_DIR}/README.md`;
6
- const ADR_FILENAME = /^(\d{4})-.+\.md$/;
6
+ export const ADR_INDEX_START = "<!-- adr-index:start — generated by `launchrail adr index`; edit the records, not this table -->";
7
+ export const ADR_INDEX_END = "<!-- adr-index:end -->";
8
+ /** Legacy numbered records: `0031-adr-registry.md`. A dated filename is not a numbered one. */
9
+ const NUMBERED_FILENAME = /^(\d{4})-(?!\d{2}-\d{2}-)(.+)\.md$/;
10
+ /** Dated records: `2026-09-11-adr-date-slug-identifiers.md` — the date is when the decision was made. */
11
+ const DATED_FILENAME = /^(\d{4}-\d{2}-\d{2})-([a-z0-9][a-z0-9-]*)\.md$/;
7
12
  const TITLE_PREFIX = /^ADR[-\s]?\d+\s*[:—–-]\s*/i;
8
- function adrTitle(abs, file) {
9
- try {
10
- const heading = /^#\s+(.+)$/m.exec(readFileSync(abs, "utf8"))?.[1];
11
- if (heading)
12
- return heading.replace(TITLE_PREFIX, "").trim();
13
- }
14
- catch {
15
- // Unreadable file — fall through to the filename.
16
- }
13
+ function parseFilename(file) {
14
+ const dated = DATED_FILENAME.exec(file);
15
+ if (dated?.[1] !== undefined && dated[2] !== undefined)
16
+ return { id: dated[2], date: dated[1] };
17
+ const numbered = NUMBERED_FILENAME.exec(file);
18
+ if (numbered?.[1] !== undefined)
19
+ return { id: numbered[1], date: null };
20
+ return null;
21
+ }
22
+ function adrTitle(source, file) {
23
+ const heading = /^#\s+(.+)$/m.exec(source)?.[1];
24
+ if (heading)
25
+ return heading.replace(TITLE_PREFIX, "").trim();
17
26
  return file.replace(/\.md$/, "");
18
27
  }
28
+ /** The first paragraph under `## Status`, whitespace-collapsed onto one line. */
29
+ function adrStatus(source) {
30
+ const match = /^##\s+Status[^\n]*\n([\s\S]*?)(?=^##\s|(?![\s\S]))/m.exec(source);
31
+ if (!match)
32
+ return "";
33
+ const paragraph = (match[1] ?? "").trim().split(/\n\s*\n/)[0] ?? "";
34
+ return paragraph.replace(/\s+/g, " ").trim();
35
+ }
19
36
  /**
20
37
  * The decision records already in a repository's docs/adr/ (template and
21
- * registry excluded), sorted by number then filename. Read-only.
38
+ * registry excluded), sorted by filename — numbered records first, dated
39
+ * records after them in date order, so the mixed corpus reads as a timeline.
40
+ * Read-only.
22
41
  */
23
42
  export function scanAdrs(cwd) {
24
43
  const dir = join(cwd, ADR_DIR);
25
44
  if (!existsSync(dir))
26
45
  return [];
27
- return readdirSync(dir)
28
- .filter((file) => file !== ADR_TEMPLATE_FILENAME && ADR_FILENAME.test(file))
29
- .sort()
30
- .map((file) => ({
31
- // The filter above guarantees the four leading digits.
32
- number: file.slice(0, 4),
33
- file,
34
- title: adrTitle(join(dir, file), file),
35
- }));
36
- }
37
- /** Numbers claimed by more than one record — every reference by number is ambiguous. */
38
- export function duplicateAdrNumbers(entries) {
39
- const counts = new Map();
46
+ const entries = [];
47
+ for (const file of readdirSync(dir).sort()) {
48
+ if (file === ADR_TEMPLATE_FILENAME)
49
+ continue;
50
+ const parsed = parseFilename(file);
51
+ if (!parsed)
52
+ continue;
53
+ let source = "";
54
+ try {
55
+ source = readFileSync(join(dir, file), "utf8");
56
+ }
57
+ catch {
58
+ // Unreadable file — title falls back to the filename, status to empty.
59
+ }
60
+ entries.push({ ...parsed, file, title: adrTitle(source, file), status: adrStatus(source) });
61
+ }
62
+ return entries;
63
+ }
64
+ /**
65
+ * Ids (numbers or slugs) claimed by more than one record, each with the files
66
+ * that claim it — every reference by such an id is ambiguous.
67
+ */
68
+ export function adrDuplicates(entries) {
69
+ const byId = new Map();
40
70
  for (const entry of entries)
41
- counts.set(entry.number, (counts.get(entry.number) ?? 0) + 1);
42
- return [...counts.entries()].filter(([, n]) => n > 1).map(([number]) => number);
71
+ byId.set(entry.id, [...(byId.get(entry.id) ?? []), entry.file]);
72
+ return [...byId.entries()].filter(([, files]) => files.length > 1).map(([id, files]) => ({ id, files }));
43
73
  }
44
74
  /** Records whose filename never appears in the registry — rows the index is missing. */
45
75
  export function unindexedAdrs(registrySource, entries) {
46
76
  return entries.filter((entry) => !registrySource.includes(entry.file));
47
77
  }
78
+ const FORWARD = { supersedes: "supersedes", amends: "amends", extends: "extends" };
79
+ const BACKWARD = {
80
+ "superseded by": "supersedes",
81
+ "amended by": "amends",
82
+ "extended by": "extends",
83
+ };
84
+ const RELATION_KEYWORD = /\b(partially\s+superseded\s+by|superseded\s+by|amended\s+by|extended\s+by|supersedes|amends|extends)\b/gi;
85
+ /** A clause ends at the next relation keyword, a semicolon, or a sentence end. */
86
+ const CLAUSE_END = /;|\.\s|\.$/;
87
+ /** Every record the clause names: link targets that are record files, or `ADR-NNNN` mentions. */
88
+ function refsIn(clause, byFile, byNumber) {
89
+ const refs = [];
90
+ const seen = new Set();
91
+ const push = (entry) => {
92
+ if (entry && !seen.has(entry.file)) {
93
+ seen.add(entry.file);
94
+ refs.push(entry);
95
+ }
96
+ };
97
+ for (const match of clause.matchAll(/\]\(([^)\s]+)\)/g))
98
+ push(byFile.get((match[1] ?? "").split("/").pop() ?? ""));
99
+ for (const match of clause.matchAll(/\bADR[-\s]?(\d{4})\b/g))
100
+ push(byNumber.get(match[1] ?? ""));
101
+ return refs;
102
+ }
103
+ /**
104
+ * The relation graph declared across the corpus. A record declares what it
105
+ * `supersedes`/`amends`/`extends` in its own `## Status`; legacy records may also
106
+ * carry the reverse (`amended by …`). Both directions feed one graph, keyed by
107
+ * the earlier record's file, so the index can print back-references that no
108
+ * record had to be edited to carry.
109
+ */
110
+ export function adrRelations(entries) {
111
+ const byFile = new Map(entries.map((e) => [e.file, e]));
112
+ const byNumber = new Map(entries.filter((e) => e.date === null).map((e) => [e.id, e]));
113
+ const graph = new Map();
114
+ const link = (target, relation, source) => {
115
+ if (target.file === source.file)
116
+ return;
117
+ const slot = graph.get(target.file) ?? { supersedes: [], amends: [], extends: [] };
118
+ if (!slot[relation].some((e) => e.file === source.file))
119
+ slot[relation].push(source);
120
+ graph.set(target.file, slot);
121
+ };
122
+ for (const entry of entries) {
123
+ const keywords = [...entry.status.matchAll(RELATION_KEYWORD)];
124
+ keywords.forEach((match, i) => {
125
+ const start = match.index + match[0].length;
126
+ const rest = entry.status.slice(start, keywords[i + 1]?.index ?? entry.status.length);
127
+ const end = CLAUSE_END.exec(rest);
128
+ const clause = end ? rest.slice(0, end.index) : rest;
129
+ const keyword = (match[1] ?? "").toLowerCase().replace(/\s+/g, " ").replace(/^partially /, "");
130
+ const refs = refsIn(clause, byFile, byNumber);
131
+ const forward = FORWARD[keyword];
132
+ const backward = BACKWARD[keyword];
133
+ if (forward)
134
+ for (const target of refs)
135
+ link(target, forward, entry);
136
+ else if (backward)
137
+ for (const source of refs)
138
+ link(entry, backward, source);
139
+ });
140
+ }
141
+ return graph;
142
+ }
143
+ // --- Index ---------------------------------------------------------------------
144
+ /** The leading word of the status line (`Accepted`, `Superseded`, …); Unclassified when there is no status at all. */
145
+ function stateOf(status) {
146
+ const word = /^([A-Za-z]+)/.exec(status)?.[1];
147
+ if (!word)
148
+ return "Unclassified";
149
+ return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
150
+ }
151
+ function idLink(entry) {
152
+ return `[${entry.id}](${entry.file})`;
153
+ }
154
+ /**
155
+ * One record's status cell: its state, the relations it declares, and the
156
+ * back-references derived from later records. Superseded records also name
157
+ * their successor(s), the one fact a reader must not miss.
158
+ */
159
+ export function adrStatusCell(entry, entries, graph = adrRelations(entries)) {
160
+ const state = stateOf(entry.status);
161
+ const declared = { supersedes: [], amends: [], extends: [] };
162
+ for (const [file, slot] of graph) {
163
+ for (const relation of ["supersedes", "amends", "extends"]) {
164
+ if (slot[relation].some((e) => e.file === entry.file)) {
165
+ const target = entries.find((e) => e.file === file);
166
+ if (target)
167
+ declared[relation].push(target);
168
+ }
169
+ }
170
+ }
171
+ const received = graph.get(entry.file) ?? { supersedes: [], amends: [], extends: [] };
172
+ const list = (records) => records.map(idLink).join(", ");
173
+ const parts = [];
174
+ if (received.supersedes.length > 0 && state === "Superseded")
175
+ parts.push(`**Superseded by ${list(received.supersedes)}**`);
176
+ else if (received.supersedes.length > 0)
177
+ parts.push(`${state} — partially superseded by ${list(received.supersedes)}`);
178
+ else
179
+ parts.push(state);
180
+ if (declared.supersedes.length > 0)
181
+ parts.push(`supersedes ${list(declared.supersedes)}`);
182
+ if (declared.amends.length > 0)
183
+ parts.push(`amends ${list(declared.amends)}`);
184
+ if (declared.extends.length > 0)
185
+ parts.push(`extends ${list(declared.extends)}`);
186
+ if (received.amends.length > 0)
187
+ parts.push(`amended by ${list(received.amends)}`);
188
+ if (received.extends.length > 0)
189
+ parts.push(`extended by ${list(received.extends)}`);
190
+ return parts.join("; ");
191
+ }
192
+ /** The generated index table, markers included. */
193
+ export function adrIndexTable(entries) {
194
+ const graph = adrRelations(entries);
195
+ const header = "| ADR | Decided | Title | Status |\n| --- | --- | --- | --- |";
196
+ const rows = entries.map((e) => `| ${idLink(e)} | ${e.date ?? "—"} | ${e.title.replace(/\|/g, "\\|")} | ${adrStatusCell(e, entries, graph)} |`);
197
+ return [ADR_INDEX_START, header, ...rows, ADR_INDEX_END].join("\n");
198
+ }
199
+ /**
200
+ * The registry with its index table regenerated in place. Between the markers
201
+ * when they exist; otherwise the first table under `## Index` is replaced and
202
+ * the markers introduced around it (a registry written before the generator
203
+ * migrates on its first run). Null when the registry has neither.
204
+ */
205
+ export function withRegeneratedIndex(registrySource, entries) {
206
+ const table = adrIndexTable(entries);
207
+ const start = registrySource.indexOf("<!-- adr-index:start");
208
+ const end = registrySource.indexOf(ADR_INDEX_END);
209
+ if (start !== -1 && end !== -1 && end > start) {
210
+ return registrySource.slice(0, start) + table + registrySource.slice(end + ADR_INDEX_END.length);
211
+ }
212
+ const heading = /^##\s+Index\s*$/m.exec(registrySource);
213
+ if (!heading)
214
+ return null;
215
+ const afterHeading = heading.index + heading[0].length;
216
+ const rest = registrySource.slice(afterHeading);
217
+ const tableMatch = /\n(\|[^\n]*\n)+/.exec(rest);
218
+ if (!tableMatch)
219
+ return null;
220
+ const before = registrySource.slice(0, afterHeading + tableMatch.index);
221
+ const after = rest.slice(tableMatch.index + tableMatch[0].length);
222
+ return `${before}\n${table}\n${after}`;
223
+ }
224
+ // --- Minting guidance: a managed contract, a seeded summary, a one-time heal ----
225
+ //
226
+ // How a record is minted is an *operational instruction* the toolchain must be
227
+ // able to keep current. The authoritative copy therefore lives in the managed
228
+ // workflow instructions (`.launchrail/CLAUDE.generated.md`), which sync rewrites
229
+ // every version. The seeded registry and template carry only a project-owned
230
+ // summary and defer to it. The strings below are shared by the seed and by the
231
+ // heal migration so both write the same bytes, and the pre-date-slug versions
232
+ // are pinned exactly so the migration corrects a repo Launchrail seeded before
233
+ // the dated-identifier scheme without ever touching one a project has edited.
234
+ /** The seeded ADR template: date-and-slug titled, teaching the forward-declared relation model. */
235
+ export const ADR_TEMPLATE = `# Short decision title
236
+
237
+ ## Status
238
+ Proposed | Accepted | Superseded by [slug](YYYY-MM-DD-slug.md)
239
+
240
+ Name here what this record supersedes, amends, or extends, linking the earlier record by file (\`Accepted — amends [slug](YYYY-MM-DD-slug.md): what changed\`). The registry index ([README.md](README.md)) derives the reverse links, so an earlier record need not be edited when this one amends it; when this record is superseded later, this line is rewritten to name the successor. Re-run \`launchrail adr index\` after any change here.
241
+
242
+ ## Context
243
+ What requirement or constraint requires a decision?
244
+
245
+ ## Decision
246
+ What was selected?
247
+
248
+ ## Alternatives considered
249
+ What realistic alternatives were rejected?
250
+
251
+ ## Consequences
252
+ What becomes easier, harder, or constrained?
253
+
254
+ ## Revisit when
255
+ What change would justify reconsidering this decision?
256
+ `;
257
+ /** The `# ADR-NNNN:`-titled template seeded before the dated-identifier ADR (byte-stable until then). */
258
+ export const PRE_DATE_SLUG_ADR_TEMPLATE = `# ADR-NNNN: Short decision title
259
+
260
+ ## Status
261
+ Proposed | Accepted | Accepted — amended by ADR-NNNN | Superseded by ADR-NNNN
262
+
263
+ When a later ADR amends or supersedes this one, update this line and the registry index ([README.md](README.md)) in the same commit.
264
+
265
+ ## Context
266
+ What requirement or constraint requires a decision?
267
+
268
+ ## Decision
269
+ What was selected?
270
+
271
+ ## Alternatives considered
272
+ What realistic alternatives were rejected?
273
+
274
+ ## Consequences
275
+ What becomes easier, harder, or constrained?
276
+
277
+ ## Revisit when
278
+ What change would justify reconsidering this decision?
279
+ `;
280
+ /** The registry's project-owned summary of how records are minted; defers to the managed contract. */
281
+ export const ADR_MAINTAINING_SECTION = `## Maintaining this registry
282
+
283
+ - New ADRs copy [0000-template.md](0000-template.md) to \`YYYY-MM-DD-short-slug.md\` — the date the decision was made, then a slug unique in this directory. There is no sequence number to claim, so parallel branches never collide, and nothing is renumbered.
284
+ - The index table between the markers is **generated**: run \`launchrail adr index\` after adding or re-statusing a record (and after merging), and commit the result. Never hand-edit the rows; the rest of this file is yours.
285
+ - A new ADR declares what it supersedes, amends, or extends in its own \`## Status\` line, linking the earlier record by file. The index derives the reverse links, so amending an ADR does not require editing it. A superseded ADR's \`## Status\` line is still rewritten to name its successor — that is the one fact a reader of the record alone must not miss.
286
+ - Never delete or rename an ADR once it is referenced; superseded ADRs are historical records other documents link to.
287
+ - The naming and relation mechanics above summarize a contract Launchrail keeps current in the managed workflow instructions (\`.launchrail/CLAUDE.generated.md\`); if this seeded summary ever drifts from that managed contract, the managed contract is what holds.`;
288
+ /**
289
+ * The "Maintaining this registry" section seeded before the dated-identifier ADR —
290
+ * the one that told agents to "take the next free number". Byte-stable from
291
+ * ADR-0031 until that ADR, so `healRegistryMinting` matches it exactly.
292
+ */
293
+ export const PRE_DATE_SLUG_MAINTAINING_SECTION = `## Maintaining this registry
294
+
295
+ - New ADRs copy [0000-template.md](0000-template.md), take the next free number (\`NNNN-short-slug.md\` — check both this index and the files on disk), and add their row here **in the same commit**. The shared row turns two branches minting the same number into a visible merge conflict instead of a silent collision.
296
+ - When a new ADR supersedes or amends an earlier one — including reversing part of the earlier one's context — update the earlier ADR's \`## Status\` line and its row here in the same commit.
297
+ - Never delete or renumber an ADR once it is referenced; superseded ADRs are historical records other documents link to.`;
298
+ const MAINTAINING_HEADING = "## Maintaining this registry";
299
+ /** Slice a registry into the text before/at/after its "Maintaining this registry" section (to the next `## ` heading or EOF). */
300
+ function maintainingSlice(source) {
301
+ const start = source.indexOf(MAINTAINING_HEADING);
302
+ if (start === -1)
303
+ return null;
304
+ const bodyStart = start + MAINTAINING_HEADING.length;
305
+ const nextRel = source.slice(bodyStart).search(/\n## /);
306
+ const end = nextRel === -1 ? source.length : bodyStart + nextRel;
307
+ return { before: source.slice(0, start), section: source.slice(start, end), after: source.slice(end) };
308
+ }
309
+ /**
310
+ * Correct a registry's minting guidance in place. Returns `healed` (with the
311
+ * rewritten source) only when the section is exactly the pre-date-slug text
312
+ * Launchrail seeded; `current` when it already matches the canonical section;
313
+ * `modified` when a project has edited it (left untouched — it is theirs);
314
+ * `absent` when there is no such section. The heal migration acts only on
315
+ * `healed`; the others are no-ops, which keeps a re-run empty.
316
+ */
317
+ export function healRegistryMinting(source) {
318
+ const slice = maintainingSlice(source);
319
+ if (!slice)
320
+ return { state: "absent", next: source };
321
+ const found = slice.section.trim();
322
+ if (found === ADR_MAINTAINING_SECTION.trim())
323
+ return { state: "current", next: source };
324
+ if (found === PRE_DATE_SLUG_MAINTAINING_SECTION.trim()) {
325
+ const tail = slice.after === "" ? "\n" : slice.after;
326
+ return { state: "healed", next: slice.before + ADR_MAINTAINING_SECTION.trim() + tail };
327
+ }
328
+ return { state: "modified", next: source };
329
+ }
48
330
  /**
49
331
  * The seeded ADR registry. When init/sync adopts a repository that already has
50
- * decision records, the index prefills from them (status Unclassified — only
51
- * the project can know which decisions still stand); a fresh repository gets
52
- * the empty index. Seeded once, then project-owned: the project maintains it.
332
+ * decision records, the index prefills from them; a fresh repository gets the
333
+ * empty index. Seeded once, then project-owned — but the table between the
334
+ * markers is regenerated by `launchrail adr index`, so the project maintains
335
+ * the records and the live picture, never the rows.
53
336
  */
54
337
  export function adrRegistryContent(entries) {
55
- const header = "| ADR | Title | Status |\n| --- | --- | --- |";
56
- const rows = entries.map((e) => `| [${e.number}](${e.file}) | ${e.title} | Unclassified |`).join("\n");
57
- const index = entries.length === 0 ? header : `${header}\n${rows}`;
58
- const unclassifiedNote = entries.length === 0
59
- ? ""
60
- : "\n\nRows marked **Unclassified** existed before this registry was seeded. Classify each as you next touch its area: set the record's status (`Accepted`, `Accepted — amended by ADR-NNNN`, `Superseded by ADR-NNNN`) and mirror it here.";
338
+ const unclassifiedNote = entries.some((e) => e.status === "")
339
+ ? "\n\nRows marked **Unclassified** carry no `## Status` section yet. Classify each as you next touch its area: give the record a status line (`Accepted`, `Superseded by [id](file)`, …) and re-run `launchrail adr index`."
340
+ : "";
61
341
  const livePicture = entries.length === 0
62
342
  ? "_No decisions recorded yet. When ADRs land, summarize here how they compose into the current system, and name the few a newcomer should read first._"
63
343
  : "_Not yet written. Summarize how the accepted decisions compose into the current system, and name the few ADRs a newcomer should read first._";
@@ -69,7 +349,7 @@ An ADR records a decision and the context it was made in. It is **not documentat
69
349
 
70
350
  ## Index
71
351
 
72
- ${index}${unclassifiedNote}
352
+ ${adrIndexTable(entries)}${unclassifiedNote}
73
353
 
74
354
  ## The live picture
75
355
 
@@ -77,11 +357,7 @@ How the accepted decisions compose into the current system. This section describ
77
357
 
78
358
  ${livePicture}
79
359
 
80
- ## Maintaining this registry
81
-
82
- - New ADRs copy [0000-template.md](0000-template.md), take the next free number (\`NNNN-short-slug.md\` — check both this index and the files on disk), and add their row here **in the same commit**. The shared row turns two branches minting the same number into a visible merge conflict instead of a silent collision.
83
- - When a new ADR supersedes or amends an earlier one — including reversing part of the earlier one's context — update the earlier ADR's \`## Status\` line and its row here in the same commit.
84
- - Never delete or renumber an ADR once it is referenced; superseded ADRs are historical records other documents link to.
360
+ ${ADR_MAINTAINING_SECTION}
85
361
  `;
86
362
  }
87
363
  //# sourceMappingURL=adr.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adr.js","sourceRoot":"","sources":["../../src/lib/adr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adr.js","sourceRoot":"","sources":["../../src/lib/adr.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { existsSync, readFileSync, rmdirSync, unlinkSync, writeFileSync } from "node:fs";
2
2
  import { dirname, join } from "node:path";
3
+ import { ADR_DIR, ADR_REGISTRY_PATH, ADR_TEMPLATE, ADR_TEMPLATE_FILENAME, healRegistryMinting, PRE_DATE_SLUG_ADR_TEMPLATE, } from "./adr.js";
3
4
  import { sha256 } from "./checksum.js";
4
5
  import { applyPluginDeclaration, applyRalphGuardHook, applyRemovePluginDeclaration, CLAUDE_SETTINGS_PATH, planPluginDeclaration, planRalphGuardHook, planRemovePluginDeclaration, RETIRED_SUPERPOWERS_DECLARATION, } from "./claudeSettings.js";
5
6
  import { RETIRED_BROWSER_TESTING_SEEDS } from "./browser-testing.js";
@@ -338,6 +339,56 @@ export const MIGRATIONS = [
338
339
  };
339
340
  },
340
341
  },
342
+ {
343
+ id: "2026-09-heal-adr-minting-guidance",
344
+ description: "rewrite the pre-date-slug ADR minting guidance seeded before the dated-identifier ADR — the registry's Maintaining section and the 0000-template — so agents name records by date and slug instead of minting colliding numbers (managed-not-seeded-guidance)",
345
+ plan(ctx) {
346
+ // The forward fix (naming, `adr index`, the seed) only reached new repos;
347
+ // this carries it into repos seeded earlier. Sync deliberately never
348
+ // rewrites a seeded file, so the correction rides this one-time migration
349
+ // instead — and only over the exact prose Launchrail wrote, so a section a
350
+ // project has since edited (or ejected) stays theirs. The authoritative
351
+ // rule now lives in the managed workflow instructions, which the same sync
352
+ // regenerates right after this runs.
353
+ const changes = [];
354
+ const writes = [];
355
+ const registryEntry = ctx.lockfile.files[ADR_REGISTRY_PATH];
356
+ const registryPath = join(ctx.cwd, ADR_REGISTRY_PATH);
357
+ if (existsSync(registryPath) && registryEntry?.class !== "ejected") {
358
+ const heal = healRegistryMinting(readFileSync(registryPath, "utf8"));
359
+ if (heal.state === "healed") {
360
+ changes.push(`${ADR_REGISTRY_PATH} — replace the pre-date-slug "Maintaining this registry" guidance (mint the next number → name by date and slug)`);
361
+ writes.push(() => {
362
+ writeFileSync(registryPath, heal.next, "utf8");
363
+ if (registryEntry)
364
+ ctx.lockfile.files[ADR_REGISTRY_PATH] = { class: registryEntry.class, checksum: sha256(heal.next) };
365
+ });
366
+ }
367
+ }
368
+ const templateRel = `${ADR_DIR}/${ADR_TEMPLATE_FILENAME}`;
369
+ const templateEntry = ctx.lockfile.files[templateRel];
370
+ const templatePath = join(ctx.cwd, ADR_DIR, ADR_TEMPLATE_FILENAME);
371
+ if (existsSync(templatePath) &&
372
+ templateEntry?.class !== "ejected" &&
373
+ readFileSync(templatePath, "utf8") === PRE_DATE_SLUG_ADR_TEMPLATE) {
374
+ changes.push(`${templateRel} — replace the pre-date-slug ADR template (ADR-NNNN title → date and slug)`);
375
+ writes.push(() => {
376
+ writeFileSync(templatePath, ADR_TEMPLATE, "utf8");
377
+ if (templateEntry)
378
+ ctx.lockfile.files[templateRel] = { class: templateEntry.class, checksum: sha256(ADR_TEMPLATE) };
379
+ });
380
+ }
381
+ if (changes.length === 0)
382
+ return { changes: [], apply: () => { } };
383
+ return {
384
+ changes,
385
+ apply: () => {
386
+ for (const write of writes)
387
+ write();
388
+ },
389
+ };
390
+ },
391
+ },
341
392
  ];
342
393
  export function migrationIds(registry = MIGRATIONS) {
343
394
  return registry.map((migration) => migration.id);
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/lib/migrations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/lib/migrations.ts"],"names":[],"mappings":"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"}