adr-kit 0.12.0 → 0.14.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.
Files changed (96) hide show
  1. package/README.md +62 -209
  2. package/README.zh.md +54 -174
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +40 -25
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/archive.d.ts +2 -0
  7. package/dist/commands/archive.d.ts.map +1 -0
  8. package/dist/commands/archive.js +62 -0
  9. package/dist/commands/archive.js.map +1 -0
  10. package/dist/commands/completion.d.ts.map +1 -1
  11. package/dist/commands/completion.js +5 -4
  12. package/dist/commands/completion.js.map +1 -1
  13. package/dist/commands/{accept.d.ts → implement.d.ts} +2 -2
  14. package/dist/commands/implement.d.ts.map +1 -0
  15. package/dist/commands/implement.js +42 -0
  16. package/dist/commands/implement.js.map +1 -0
  17. package/dist/commands/init.d.ts.map +1 -1
  18. package/dist/commands/init.js +5 -3
  19. package/dist/commands/init.js.map +1 -1
  20. package/dist/commands/instructions.d.ts.map +1 -1
  21. package/dist/commands/instructions.js +24 -81
  22. package/dist/commands/instructions.js.map +1 -1
  23. package/dist/commands/list.d.ts.map +1 -1
  24. package/dist/commands/list.js +9 -14
  25. package/dist/commands/list.js.map +1 -1
  26. package/dist/commands/propose.d.ts.map +1 -1
  27. package/dist/commands/propose.js +9 -10
  28. package/dist/commands/propose.js.map +1 -1
  29. package/dist/commands/{decide.d.ts → record.d.ts} +2 -2
  30. package/dist/commands/record.d.ts.map +1 -0
  31. package/dist/commands/{decide.js → record.js} +6 -6
  32. package/dist/commands/{decide.js.map → record.js.map} +1 -1
  33. package/dist/commands/reject.d.ts +1 -1
  34. package/dist/commands/reject.d.ts.map +1 -1
  35. package/dist/commands/reject.js +24 -8
  36. package/dist/commands/reject.js.map +1 -1
  37. package/dist/commands/show.d.ts.map +1 -1
  38. package/dist/commands/show.js +2 -16
  39. package/dist/commands/show.js.map +1 -1
  40. package/dist/commands/status.d.ts.map +1 -1
  41. package/dist/commands/status.js +6 -17
  42. package/dist/commands/status.js.map +1 -1
  43. package/dist/commands/supersede.d.ts.map +1 -1
  44. package/dist/commands/supersede.js +44 -10
  45. package/dist/commands/supersede.js.map +1 -1
  46. package/dist/commands/update.d.ts.map +1 -1
  47. package/dist/commands/update.js +4 -1
  48. package/dist/commands/update.js.map +1 -1
  49. package/dist/commands/validate.d.ts +1 -1
  50. package/dist/commands/validate.d.ts.map +1 -1
  51. package/dist/commands/validate.js +11 -3
  52. package/dist/commands/validate.js.map +1 -1
  53. package/dist/core/adr.d.ts +22 -20
  54. package/dist/core/adr.d.ts.map +1 -1
  55. package/dist/core/adr.js +97 -14
  56. package/dist/core/adr.js.map +1 -1
  57. package/dist/core/archive-seal.d.ts +48 -0
  58. package/dist/core/archive-seal.d.ts.map +1 -0
  59. package/dist/core/archive-seal.js +122 -0
  60. package/dist/core/archive-seal.js.map +1 -0
  61. package/dist/core/cli-options.d.ts +2 -2
  62. package/dist/core/cli-options.d.ts.map +1 -1
  63. package/dist/core/cli-options.js +8 -6
  64. package/dist/core/cli-options.js.map +1 -1
  65. package/dist/core/config.d.ts +1 -1
  66. package/dist/core/git.d.ts +17 -0
  67. package/dist/core/git.d.ts.map +1 -1
  68. package/dist/core/git.js +50 -0
  69. package/dist/core/git.js.map +1 -1
  70. package/dist/core/graph-html.js +5 -5
  71. package/dist/core/graph-html.js.map +1 -1
  72. package/dist/core/graph.d.ts +2 -1
  73. package/dist/core/graph.d.ts.map +1 -1
  74. package/dist/core/graph.js +9 -4
  75. package/dist/core/graph.js.map +1 -1
  76. package/dist/core/repository.d.ts +3 -11
  77. package/dist/core/repository.d.ts.map +1 -1
  78. package/dist/core/repository.js +52 -136
  79. package/dist/core/repository.js.map +1 -1
  80. package/dist/core/templates.d.ts +6 -7
  81. package/dist/core/templates.d.ts.map +1 -1
  82. package/dist/core/templates.js +11 -12
  83. package/dist/core/templates.js.map +1 -1
  84. package/dist/core/tool-integrations.d.ts +24 -0
  85. package/dist/core/tool-integrations.d.ts.map +1 -1
  86. package/dist/core/tool-integrations.js +129 -423
  87. package/dist/core/tool-integrations.js.map +1 -1
  88. package/dist/core/validate.d.ts +20 -6
  89. package/dist/core/validate.d.ts.map +1 -1
  90. package/dist/core/validate.js +302 -90
  91. package/dist/core/validate.js.map +1 -1
  92. package/package.json +1 -1
  93. package/dist/commands/accept.d.ts.map +0 -1
  94. package/dist/commands/accept.js +0 -42
  95. package/dist/commands/accept.js.map +0 -1
  96. package/dist/commands/decide.d.ts.map +0 -1
@@ -1,15 +1,10 @@
1
1
  import { existsSync, mkdirSync, readdirSync, readFileSync, rmSync, writeFileSync, } from 'node:fs';
2
2
  import { basename, dirname, join, posix, relative, resolve } from 'node:path';
3
3
  import { ADR_DIR, CONFIG_FILE, configPath } from './config.js';
4
+ import { emptyArchiveManifest, writeArchiveManifest } from './archive-seal.js';
4
5
  import { parseAdrFile } from './adr.js';
5
- /** Durable records live in one folder; status is carried in the front matter. */
6
- export const FOLDERS = ['decisions'];
7
- /**
8
- * Ephemeral proposal drafts. Created lazily on the first `adrkit propose`,
9
- * gitignored (init writes `adr/.gitignore`), never validated by `adrkit
10
- * validate` and never durable until `accept` promotes one into decisions/.
11
- */
12
- export const DRAFTS_DIR = '.drafts';
6
+ /** Lifecycle folders are the repository inventory. */
7
+ export const FOLDERS = ['proposed', 'implemented', 'rejected', 'archived'];
13
8
  function initConfig(tools, workflows) {
14
9
  // 列表的空格必须与 writeListConfig 里 yaml 库的发射格式逐字节一致
15
10
  // (`[ a, b ]`,空为 `[]`),否则裸 update 会把 init 写的 config 重排一遍。
@@ -17,11 +12,11 @@ function initConfig(tools, workflows) {
17
12
  // tools 始终作为顶层键输出:全注释的 YAML 文档会被解析为空,
18
13
  // readConfig 的 isMap 检查会报 "top-level value must be a mapping"。
19
14
  const toolsYaml = `tools: ${list(tools)}\n`;
20
- // workflows 仅在选择子集时输出:缺省即全部,老配置无需迁移。
15
+ // workflows 仅在选择子集时输出:缺省即全部。
21
16
  const workflowsYaml = workflows === undefined ? '' : `\n# Workflow subset written by adrkit init --workflows.\nworkflows: ${list(workflows)}\n`;
22
17
  return `# ADR Kit configuration
23
18
  # Fill in \`context\` and it is injected as a comment into every new
24
- # proposal/decision draft (adrkit propose / adrkit decide).
19
+ # proposal/decision template (adrkit propose / adrkit record).
25
20
  # context: |
26
21
  # Tech stack: TypeScript
27
22
  # Conventions that decision records should respect.
@@ -39,79 +34,33 @@ ${toolsYaml}${workflowsYaml}
39
34
  }
40
35
  const INIT_README = `# Architecture Decision Records
41
36
 
42
- This directory is an ADR Kit repository. Each record is plain Markdown with a
43
- machine-checkable header. Decisions are durable; proposals are ephemeral drafts.
44
-
45
- ## Folders
46
-
47
- | Folder | Meaning |
48
- | --- | --- |
49
- | \`decisions/\` | Decisions, numbered sequentially, immutable history (accepted or superseded) |
50
- | \`.drafts/\` | Proposal drafts, gitignored and ephemeral - promote one with \`adrkit accept\` or discard it with \`adrkit reject\` |
51
-
52
- Never delete or modify a decision: retire one with \`adrkit supersede\` instead.
53
- Deleting reuses its number, which silently breaks every \`ADR-N\` reference to it.
54
-
55
- Rejection is recorded in a decision's \`Alternatives considered\` section, never
56
- as a standalone record.
57
-
58
- ## Record format
59
-
60
- Every record starts with a YAML front matter block:
61
-
62
- \`\`\`markdown
63
- ---
64
- status: accepted | superseded
65
- date: YYYY-MM-DD
66
- raised-by: human | agent
67
- decided-by: human | agent
68
- created: YYYY-MM-DD
69
- commit: abc1234
70
- tags: [frontend]
71
- ---
37
+ Records follow the lifecycle folders proposed/, implemented/, rejected/, and
38
+ archived/. A proposal is unshipped even when its direction has been settled.
39
+ Implemented records describe shipped decisions and receive stable ADR numbers.
40
+ Every formally rejected proposal remains in rejected/ with its reason.
41
+ Archived records are frozen history, not current authority. Each one is
42
+ sealed in adr/archived/MANIFEST.json; adrkit validate checks the seal, and
43
+ adrkit validate --base <git-ref> proves the archive only grows.
72
44
 
73
- # ADR: N <title>
74
- \`\`\`
45
+ Never delete a numbered decision: its stable N may be referenced elsewhere.
46
+ Implemented records may refresh factual paths, symbols, and defaults, but a
47
+ changed choice needs a new record. Archive or supersede rather than erase it.
75
48
 
76
- Decisions use \`# ADR: N <title>\` and require \`Problem\`, \`Decision\`,
77
- \`Alternatives considered\`, and \`Consequences\`. Superseded decisions add
78
- \`superseded-by: N\`. The \`date\` field records when the current status was
79
- reached; the CLI stamps it at every lifecycle move, alongside the git \`commit\`
80
- the decision was recorded against. \`created\` is the birth date, stamped once
81
- and never re-stamped, so the time axis survives later lifecycle moves. The
82
- \`raised-by\` records who put the decision on the table and \`decided-by\` records
83
- whose judgment settled it: \`human\` when a person determined the direction —
84
- they stated it, changed a proposal into what shipped, or you are recording one
85
- they made earlier — \`agent\` when it came from the agent's own judgment,
86
- including when a person only let it through. The two are independent: a person
87
- may raise what the agent settles, and the agent may raise what a person
88
- settles. \`decide\` and \`accept\` require the caller to declare both with
89
- \`--raised-by\` and \`--decided-by\`, and the CLI neither infers nor verifies
90
- either, so neither establishes who chose or authorized the decision. The CLI
91
- writes them at those moves and preserves them when a decision is superseded.
92
- When the writer cannot tell which value applies, ask the person before recording
93
- rather than guessing. The record body is where the nuance lives: when an agent
94
- proposed and a person redirected or approved the result, say so in
95
- \`## Decision\` rather than trying to split the field.
96
- Likewise, \`accepted\` means a recorded decision, not proof of human review.
97
- Commit identity stays in git. Optional \`tags\` (kebab-case keywords) let
98
- \`adrkit graph\` group and filter decisions by theme. Drafts (\`adr/.drafts/\`,
99
- \`status: proposed\`) require \`Problem\`, \`Proposal\`, \`Alternatives considered\`,
100
- \`Acceptance criteria\`, and \`Risks\`, and carry neither \`raised-by\` nor
101
- \`decided-by\`; \`adrkit accept\`
102
- promotes one into a decision, and \`adrkit reject\` discards it without leaving
103
- a record.
49
+ The canonical header includes status, date, and created: YYYY-MM-DD (the
50
+ birth date, never re-stamped). Numbered records declare raised-by: human | agent
51
+ and decided-by: human | agent; these are provenance declarations, not proof
52
+ of approval. Optional tags: [frontend] classify records by theme.
104
53
 
105
- A decision may also carry an optional \`## Deliberation\` appendix: the design
106
- tree behind the choice, stored as a nested Markdown list whose nodes may be
107
- tagged \`[settled]\`, \`[rejected]\`, or \`[open]\`. A follow-up question is
108
- nested under the node that raised it, so depth is the dependency. Render it
109
- with \`adrkit tree <name>\` (text by default, \`--mermaid\` for a graph,
110
- \`--html\` for an offline interactive card tree). Render the whole set with
111
- \`adrkit graph --html\`, an offline decision map that marks records
112
- carrying a tree.
54
+ Use adrkit propose for unshipped work, adrkit implement after it ships, and
55
+ adrkit record for an already-shipped decision. Use adrkit reject with a reason
56
+ for a proposal that will not ship. A full replacement archives the old
57
+ implemented record through adrkit supersede; adrkit archive also retires
58
+ implemented guidance whose rationale is no longer needed in the active set.
113
59
 
114
- Run \`adrkit validate\` to check every record.
60
+ Run adrkit list to discover records. Read relevant implemented records in
61
+ full, check relevant proposed and rejected records, and consult archived
62
+ records only for history. Do not decide relevance by title alone.
63
+ Run adrkit validate to check the repository.
115
64
  `;
116
65
  export function initRepository(targetDir, tools = [], workflows) {
117
66
  const root = resolve(targetDir);
@@ -131,12 +80,10 @@ export function initRepository(targetDir, tools = [], workflows) {
131
80
  const config = configPath(root);
132
81
  writeFileSync(config, initConfig(tools, workflows));
133
82
  created.push(`${ADR_DIR}/${CONFIG_FILE}`);
134
- // Drafts are ephemeral and must never be committed; the guard ships with init
135
- // so a draft can never leak into git, even before the first propose creates
136
- // the directory.
137
- const gitignore = join(adrRoot, '.gitignore');
138
- writeFileSync(gitignore, `${DRAFTS_DIR}\n`);
139
- created.push(`${ADR_DIR}/.gitignore`);
83
+ // The archive seal starts empty: archive and supersede append entries as
84
+ // records retire, and validate checks the manifest against archived bytes.
85
+ writeArchiveManifest(root, emptyArchiveManifest());
86
+ created.push(`${ADR_DIR}/archived/MANIFEST.json`);
140
87
  const readme = join(adrRoot, 'README.md');
141
88
  writeFileSync(readme, INIT_README);
142
89
  created.push(`${ADR_DIR}/README.md`);
@@ -146,12 +93,10 @@ export function adrRoot(root) {
146
93
  return join(root, ADR_DIR);
147
94
  }
148
95
  /**
149
- * Physical directory name for a folder value. The drafts folder is named
150
- * `.drafts` (dot-prefixed, gitignored) while the value carried on AdrRecord is
151
- * the bare `drafts`.
96
+ * Physical directory name for a lifecycle folder.
152
97
  */
153
98
  function folderDirName(folder) {
154
- return folder === 'drafts' ? DRAFTS_DIR : folder;
99
+ return folder;
155
100
  }
156
101
  export function folderPath(root, folder) {
157
102
  return join(adrRoot(root), folderDirName(folder));
@@ -182,12 +127,15 @@ export function listRecords(root) {
182
127
  const folderDelta = folderOrder(a.folder) - folderOrder(b.folder);
183
128
  if (folderDelta !== 0)
184
129
  return folderDelta;
185
- if (a.folder === 'decisions')
186
- return (a.number ?? 0) - (b.number ?? 0);
130
+ if (a.number !== undefined && b.number !== undefined)
131
+ return a.number - b.number;
187
132
  return a.fileName.localeCompare(b.fileName);
188
133
  });
189
134
  return records;
190
135
  }
136
+ export function listProposals(root) {
137
+ return listRecords(root).filter((record) => record.folder === 'proposed');
138
+ }
191
139
  function fileNameMatchesQuery(fileName, needle) {
192
140
  const bareName = fileName.replace(/\.md$/, '');
193
141
  const slug = bareName.replace(/^\d{4}-\d{2}-\d{2}-/, '').replace(/^\d+-/, '');
@@ -216,7 +164,7 @@ function listRecordsForResolve(root, needle) {
216
164
  }
217
165
  catch (error) {
218
166
  const bareName = entry.replace(/\.md$/, '');
219
- const numberMatch = folder === 'decisions' ? bareName.match(/^(\d+)-/) : null;
167
+ const numberMatch = folder === 'implemented' || folder === 'archived' ? bareName.match(/^(\d+)-/) : null;
220
168
  const isTarget = fileNameMatchesQuery(entry, needle) ||
221
169
  (numberMatch !== null && numberMatch[1] === needle);
222
170
  if (isTarget) {
@@ -243,7 +191,7 @@ export function resolveRecord(root, query) {
243
191
  if (record.title === needle || `# ADR: ${record.title}` === needle) {
244
192
  return true;
245
193
  }
246
- if (record.folder === 'decisions') {
194
+ if (record.folder === 'implemented' || record.folder === 'archived') {
247
195
  if (String(record.number ?? 0) === needle) {
248
196
  return true;
249
197
  }
@@ -266,7 +214,7 @@ export function resolveRecord(root, query) {
266
214
  export function nextDecisionNumber(root) {
267
215
  let max = 0;
268
216
  for (const record of listRecords(root)) {
269
- if (record.folder === 'decisions' && (record.number ?? 0) > max) {
217
+ if ((record.folder === 'implemented' || record.folder === 'archived') && (record.number ?? 0) > max) {
270
218
  max = record.number ?? 0;
271
219
  }
272
220
  }
@@ -274,9 +222,7 @@ export function nextDecisionNumber(root) {
274
222
  }
275
223
  export function writeRecord(root, folder, fileName, content) {
276
224
  const path = join(folderPath(root, folder), fileName);
277
- // mkdir-on-write: a target folder may not exist yet (e.g. .drafts/ before the
278
- // first propose, or a decisions/ that was removed). Creating it on demand
279
- // keeps every lifecycle command correct without eager directory ceremony.
225
+ // A removed lifecycle folder is recreated on write.
280
226
  mkdirSync(dirname(path), { recursive: true });
281
227
  writeFileSync(path, content);
282
228
  return path;
@@ -284,46 +230,17 @@ export function writeRecord(root, folder, fileName, content) {
284
230
  export function removeRecord(record) {
285
231
  rmSync(record.path);
286
232
  }
287
- /** Path to the ephemeral drafts folder (`adr/.drafts/`). */
288
- export function draftsPath(root) {
289
- return join(adrRoot(root), DRAFTS_DIR);
290
- }
291
- export function listDrafts(root) {
292
- const dir = draftsPath(root);
293
- if (!existsSync(dir))
294
- return [];
295
- const drafts = [];
296
- for (const entry of readdirSync(dir)) {
297
- if (!entry.endsWith('.md'))
298
- continue;
299
- const path = join(dir, entry);
300
- try {
301
- const draft = parseAdrFile(path);
302
- draft.folder = 'drafts';
303
- drafts.push(draft);
304
- }
305
- catch (error) {
306
- const message = error instanceof Error ? error.message : String(error);
307
- throw new Error(`failed to parse ${relative(root, path)}: ${message}`);
308
- }
309
- }
310
- drafts.sort((a, b) => a.fileName.localeCompare(b.fileName));
311
- return drafts;
312
- }
313
- function draftMatchesQuery(draft, needle) {
314
- if (fileNameMatchesQuery(draft.fileName, needle))
315
- return true;
316
- return draft.title === needle || `# ADR: ${draft.title}` === needle;
317
- }
318
- export function resolveDraft(root, query) {
233
+ export function resolveProposed(root, query) {
319
234
  const needle = query.trim();
320
- const drafts = listDrafts(root);
321
- const candidates = drafts.filter((draft) => draftMatchesQuery(draft, needle));
235
+ const candidates = listRecords(root).filter((record) => record.folder === 'proposed' &&
236
+ (fileNameMatchesQuery(record.fileName, needle) ||
237
+ record.title === needle ||
238
+ `# ADR: ${record.title}` === needle));
322
239
  if (candidates.length === 0) {
323
- throw new Error(`no draft proposal matches "${query}"`);
240
+ throw new Error(`no proposal matches "${query}"`);
324
241
  }
325
242
  if (candidates.length > 1) {
326
- const paths = candidates.map((draft) => relative(root, draft.path)).join(', ');
243
+ const paths = candidates.map((record) => relative(root, record.path)).join(', ');
327
244
  throw new Error(`"${query}" is ambiguous; matches: ${paths}`);
328
245
  }
329
246
  return candidates[0];
@@ -332,7 +249,7 @@ export function readRecord(record) {
332
249
  return readFileSync(record.path, 'utf8');
333
250
  }
334
251
  export function displayName(record) {
335
- if (record.folder === 'decisions' && Number.isInteger(record.number)) {
252
+ if ((record.folder === 'implemented' || record.folder === 'archived') && Number.isInteger(record.number)) {
336
253
  const titleWithoutNumber = record.title.replace(/^\d+\s+/, '');
337
254
  return `[${record.number}] ${titleWithoutNumber}`;
338
255
  }
@@ -340,8 +257,7 @@ export function displayName(record) {
340
257
  }
341
258
  export function relativePath(record) {
342
259
  // 始终输出 POSIX 风格路径:CLI 输出是用户可见文本,Windows 上也要
343
- // 显示 adr/.drafts/... 而不是 adr\.drafts\...(与其它命令的硬编码
344
- // 拼接保持一致,且测试断言跨平台稳定)。
260
+ // CLI paths remain POSIX-style on every host.
345
261
  return posix.join(ADR_DIR, folderDirName(record.folder), basename(record.path));
346
262
  }
347
263
  //# sourceMappingURL=repository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/core/repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/core/repository.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,7 @@ import { type AdrRecord, type DecidedBy, type RaisedBy } from './adr.js';
3
3
  type FrontMatterValue = string | number | string[];
4
4
  /**
5
5
  * Render a YAML front matter block. Fields are written in the canonical
6
- * order (status, date, raised-by, decided-by, created, commit, superseded-by,
7
- * reason, tags); only the fields
6
+ * order from FRONT_MATTER_ORDER; only the fields
8
7
  * present in `fields` are emitted.
9
8
  */
10
9
  export declare function frontMatter(fields: Record<string, FrontMatterValue>): string;
@@ -16,20 +15,20 @@ export declare function proposalTemplate(title: string, context?: string): strin
16
15
  */
17
16
  export declare function decisionTemplate(number: number, title: string, context: string | undefined, commit: string | undefined, decidedBy: DecidedBy, raisedBy: RaisedBy): string;
18
17
  /**
19
- * Convert a draft proposal into an accepted decision using the same mechanical
18
+ * Convert a proposal into an implemented decision using the mechanical
20
19
  * rewrite the format requires: Proposal becomes Decision, and the
21
20
  * acceptance criteria and risks are folded into Consequences. `commit` anchors
22
21
  * the decision to the code state it was recorded against.
23
22
  *
24
23
  * `decidedBy` is the declaration made for the promoted decision, not the
25
- * draft's: the front matter below is rebuilt from a fixed field map, so a
26
- * `decided-by` key written by hand into a draft has no path into the decision.
24
+ * proposal's: the front matter below is rebuilt from a fixed field map, so a
25
+ * `decided-by` key written by hand into a proposal has no path into the decision.
27
26
  * It is required for the same reason the skeleton requires it: every durable
28
27
  * record has to name where the choice came from.
29
28
  */
30
29
  export declare function proposalToDecision(proposal: AdrRecord, number: number, commit: string | undefined, decidedBy: DecidedBy, raisedBy: RaisedBy): string;
31
30
  /**
32
- * Proposal sections that have no place in an accepted decision and would be
31
+ * Proposal sections that have no place in an implemented decision and would be
33
32
  * silently discarded by `proposalToDecision`. Only proposal-era leftovers
34
33
  * (for example `Plan`, `Migration plan`) qualify; every other extra section
35
34
  * is carried through the rewrite. Callers should surface these so a
@@ -41,7 +40,7 @@ export declare function droppedSections(proposal: AdrRecord): string[];
41
40
  * block, merge `patch` over it, and re-emit the fields in canonical order.
42
41
  * Supersede stamps only the retiring record and its immediate successor link;
43
42
  * earlier records keep their historical links when the chain grows.
44
- * Every non-creating move (accept, reject, supersede) must stamp the date so
43
+ * Every lifecycle move (implement, reject, archive, supersede) must stamp the date so
45
44
  * the front matter always reflects the current status; the Markdown body is
46
45
  * left untouched. Only canonical fields survive: a key outside
47
46
  * `FRONT_MATTER_ORDER` is dropped rather than copied through, because writing
@@ -1 +1 @@
1
- {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/core/templates.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,QAAQ,EACd,MAAM,UAAU,CAAC;AAoClB,0DAA0D;AAC1D,KAAK,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AAEnD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,MAAM,CAO5E;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAyBxE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,GACjB,MAAM,CA6BR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,SAAS,EACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,GACjB,MAAM,CAgER;AAMD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,SAAS,GAAG,MAAM,EAAE,CAI7D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,MAAM,CAoBnG"}
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/core/templates.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,QAAQ,EACd,MAAM,UAAU,CAAC;AAoClB,0DAA0D;AAC1D,KAAK,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AAEnD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,MAAM,CAO5E;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAyBxE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,GACjB,MAAM,CA6BR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,SAAS,EACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,GACjB,MAAM,CAgER;AAMD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,SAAS,GAAG,MAAM,EAAE,CAI7D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,MAAM,CAoBnG"}
@@ -1,6 +1,6 @@
1
1
  import { parse, stringify } from 'yaml';
2
2
  import { FRONT_MATTER_ORDER, PROPOSAL_ERA_HEADINGS, section, todayStamp, } from './adr.js';
3
- /** Proposal sections that survive the mechanical accept rewrite. */
3
+ /** Proposal sections that survive the mechanical implementation rewrite. */
4
4
  const PRESERVED_SECTIONS = [
5
5
  'Problem',
6
6
  'Proposal',
@@ -9,7 +9,7 @@ const PRESERVED_SECTIONS = [
9
9
  'Risks',
10
10
  ];
11
11
  /**
12
- * Proposal-era leftovers the accept rewrite cannot fold anywhere. The full
12
+ * Proposal-era leftovers the implementation rewrite cannot fold anywhere. The full
13
13
  * PROPOSAL_ERA_HEADINGS set is wider (it also names Proposal/Acceptance
14
14
  * criteria/Risks, which the rewrite folds into Decision/Consequences); only
15
15
  * these headings are genuinely dropped, with a warning.
@@ -17,7 +17,7 @@ const PRESERVED_SECTIONS = [
17
17
  const DROPPED_SECTION_HEADINGS = PROPOSAL_ERA_HEADINGS.filter((heading) => !PRESERVED_SECTIONS.includes(heading));
18
18
  /**
19
19
  * 把 config.yaml 的 context 注入模板:放在标题块之后、第一个 section 之前。
20
- * 解析器忽略游离文本(current 为 null 时不收集),accept 的机械改写也会
20
+ * 解析器忽略游离文本(current 为 null 时不收集),implement 的机械改写也会
21
21
  * 丢弃它。注释只在草案期可见,正是写作者需要项目上下文的时刻。
22
22
  */
23
23
  function contextBlock(context) {
@@ -32,8 +32,7 @@ ${text}
32
32
  }
33
33
  /**
34
34
  * Render a YAML front matter block. Fields are written in the canonical
35
- * order (status, date, raised-by, decided-by, created, commit, superseded-by,
36
- * reason, tags); only the fields
35
+ * order from FRONT_MATTER_ORDER; only the fields
37
36
  * present in `fields` are emitted.
38
37
  */
39
38
  export function frontMatter(fields) {
@@ -78,7 +77,7 @@ ${contextBlock(context)}## Problem
78
77
  */
79
78
  export function decisionTemplate(number, title, context, commit, decidedBy, raisedBy) {
80
79
  const fields = {
81
- status: 'accepted',
80
+ status: 'implemented',
82
81
  date: todayStamp(),
83
82
  created: todayStamp(),
84
83
  'raised-by': raisedBy,
@@ -108,14 +107,14 @@ ${contextBlock(context)}## Problem
108
107
  `;
109
108
  }
110
109
  /**
111
- * Convert a draft proposal into an accepted decision using the same mechanical
110
+ * Convert a proposal into an implemented decision using the mechanical
112
111
  * rewrite the format requires: Proposal becomes Decision, and the
113
112
  * acceptance criteria and risks are folded into Consequences. `commit` anchors
114
113
  * the decision to the code state it was recorded against.
115
114
  *
116
115
  * `decidedBy` is the declaration made for the promoted decision, not the
117
- * draft's: the front matter below is rebuilt from a fixed field map, so a
118
- * `decided-by` key written by hand into a draft has no path into the decision.
116
+ * proposal's: the front matter below is rebuilt from a fixed field map, so a
117
+ * `decided-by` key written by hand into a proposal has no path into the decision.
119
118
  * It is required for the same reason the skeleton requires it: every durable
120
119
  * record has to name where the choice came from.
121
120
  */
@@ -142,7 +141,7 @@ export function proposalToDecision(proposal, number, commit, decidedBy, raisedBy
142
141
  const passthrough = proposal.sections.filter((candidate) => !PRESERVED_SECTIONS.includes(candidate.heading) &&
143
142
  !DROPPED_SECTION_HEADINGS.includes(candidate.heading));
144
143
  const fields = {
145
- status: 'accepted',
144
+ status: 'implemented',
146
145
  date: todayStamp(),
147
146
  // The decision inherits the proposal's birth date: created is stamped
148
147
  // once, at propose time, and survives the promotion.
@@ -184,7 +183,7 @@ function sectionBody(record, heading) {
184
183
  return section(record, heading)?.trim() ?? '';
185
184
  }
186
185
  /**
187
- * Proposal sections that have no place in an accepted decision and would be
186
+ * Proposal sections that have no place in an implemented decision and would be
188
187
  * silently discarded by `proposalToDecision`. Only proposal-era leftovers
189
188
  * (for example `Plan`, `Migration plan`) qualify; every other extra section
190
189
  * is carried through the rewrite. Callers should surface these so a
@@ -200,7 +199,7 @@ export function droppedSections(proposal) {
200
199
  * block, merge `patch` over it, and re-emit the fields in canonical order.
201
200
  * Supersede stamps only the retiring record and its immediate successor link;
202
201
  * earlier records keep their historical links when the chain grows.
203
- * Every non-creating move (accept, reject, supersede) must stamp the date so
202
+ * Every lifecycle move (implement, reject, archive, supersede) must stamp the date so
204
203
  * the front matter always reflects the current status; the Markdown body is
205
204
  * left untouched. Only canonical fields survive: a key outside
206
205
  * `FRONT_MATTER_ORDER` is dropped rather than copied through, because writing
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/core/templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/core/templates.ts"],"names":[],"mappings":"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"}
@@ -42,4 +42,28 @@ export declare function removeToolIntegrations(root: string, keys: string[]): st
42
42
  */
43
43
  export declare function removeWorkflowIntegrations(root: string, tools: IntegrationTarget[], workflows: string[]): void;
44
44
  export declare function integrationSummary(root: string, created: ToolIntegration[]): string[];
45
+ /** Heading of the standing-orders section the init workflow asks agents to paste. */
46
+ export declare const STANDING_ORDERS_HEADING = "## Reading architecture decisions";
47
+ /**
48
+ * A distinctive sentence from the section body. The init workflow allows an
49
+ * agent to "update an equivalent section", so a section with a reworked
50
+ * heading still counts; this phrase is what makes that honest instead of a
51
+ * heading-only match.
52
+ */
53
+ export declare const STANDING_ORDERS_RULE = "Record an ADR when an architectural choice";
54
+ /**
55
+ * The agent instruction file (AGENTS.md, then CLAUDE.md) that carries the
56
+ * standing-orders section, or undefined when neither does. Reading only —
57
+ * the files belong to the user, and the CLI never rewrites them.
58
+ */
59
+ export declare function standingOrdersFile(root: string): string | undefined;
60
+ /**
61
+ * The note for init/update output when no instruction file carries the
62
+ * standing orders. Integration files being installed is what makes the
63
+ * paste step meaningful, so an empty selection (an explicit `--tools none`
64
+ * opt-out) stays quiet. The pointer is derived from what was actually
65
+ * installed: a `--workflows` subset without the init workflow cannot name a
66
+ * file that does not exist.
67
+ */
68
+ export declare function standingOrdersNote(root: string, integrations: ToolIntegration[]): string | undefined;
45
69
  //# sourceMappingURL=tool-integrations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-integrations.d.ts","sourceRoot":"","sources":["../../src/core/tool-integrations.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAapD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAID,eAAO,MAAM,SAAS,EAAE,QAAQ,EAyd/B,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,cAAc,EAAE,MAAM,EAElC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAkBlE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,iBAAiB,EAAE,CAqBzE;AAaD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,iBAAiB,EAAE,EAC1B,SAAS,GAAE,MAAM,EAAmB,GACnC,eAAe,EAAE,CAgCnB;AAwBD,yEAAyE;AACzE,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAEjE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAyB7E;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,iBAAiB,EAAE,EAC1B,SAAS,EAAE,MAAM,EAAE,GAClB,IAAI,CAeN;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,EAAE,CAErF"}
1
+ {"version":3,"file":"tool-integrations.d.ts","sourceRoot":"","sources":["../../src/core/tool-integrations.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAapD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAID,eAAO,MAAM,SAAS,EAAE,QAAQ,EA8H/B,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,cAAc,EAAE,MAAM,EAElC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAkBlE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,iBAAiB,EAAE,CAqBzE;AAaD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,iBAAiB,EAAE,EAC1B,SAAS,GAAE,MAAM,EAAmB,GACnC,eAAe,EAAE,CAgCnB;AAwBD,yEAAyE;AACzE,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAEjE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAyB7E;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,iBAAiB,EAAE,EAC1B,SAAS,EAAE,MAAM,EAAE,GAClB,IAAI,CAeN;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,EAAE,CAErF;AAED,qFAAqF;AACrF,eAAO,MAAM,uBAAuB,sCAAsC,CAAC;AAE3E;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,+CAA+C,CAAC;AAEjF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAYnE;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,eAAe,EAAE,GAC9B,MAAM,GAAG,SAAS,CAcpB"}