adr-kit 0.13.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 (91) hide show
  1. package/README.md +62 -211
  2. package/README.zh.md +54 -175
  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.js +2 -2
  18. package/dist/commands/init.js.map +1 -1
  19. package/dist/commands/instructions.d.ts.map +1 -1
  20. package/dist/commands/instructions.js +24 -81
  21. package/dist/commands/instructions.js.map +1 -1
  22. package/dist/commands/list.d.ts.map +1 -1
  23. package/dist/commands/list.js +9 -14
  24. package/dist/commands/list.js.map +1 -1
  25. package/dist/commands/propose.d.ts.map +1 -1
  26. package/dist/commands/propose.js +9 -10
  27. package/dist/commands/propose.js.map +1 -1
  28. package/dist/commands/{decide.d.ts → record.d.ts} +2 -2
  29. package/dist/commands/record.d.ts.map +1 -0
  30. package/dist/commands/{decide.js → record.js} +6 -6
  31. package/dist/commands/{decide.js.map → record.js.map} +1 -1
  32. package/dist/commands/reject.d.ts +1 -1
  33. package/dist/commands/reject.d.ts.map +1 -1
  34. package/dist/commands/reject.js +24 -8
  35. package/dist/commands/reject.js.map +1 -1
  36. package/dist/commands/show.d.ts.map +1 -1
  37. package/dist/commands/show.js +2 -16
  38. package/dist/commands/show.js.map +1 -1
  39. package/dist/commands/status.d.ts.map +1 -1
  40. package/dist/commands/status.js +6 -17
  41. package/dist/commands/status.js.map +1 -1
  42. package/dist/commands/supersede.d.ts.map +1 -1
  43. package/dist/commands/supersede.js +44 -10
  44. package/dist/commands/supersede.js.map +1 -1
  45. package/dist/commands/validate.d.ts +1 -1
  46. package/dist/commands/validate.d.ts.map +1 -1
  47. package/dist/commands/validate.js +11 -3
  48. package/dist/commands/validate.js.map +1 -1
  49. package/dist/core/adr.d.ts +22 -20
  50. package/dist/core/adr.d.ts.map +1 -1
  51. package/dist/core/adr.js +31 -10
  52. package/dist/core/adr.js.map +1 -1
  53. package/dist/core/archive-seal.d.ts +48 -0
  54. package/dist/core/archive-seal.d.ts.map +1 -0
  55. package/dist/core/archive-seal.js +122 -0
  56. package/dist/core/archive-seal.js.map +1 -0
  57. package/dist/core/cli-options.d.ts +2 -2
  58. package/dist/core/cli-options.d.ts.map +1 -1
  59. package/dist/core/cli-options.js +8 -6
  60. package/dist/core/cli-options.js.map +1 -1
  61. package/dist/core/config.d.ts +1 -1
  62. package/dist/core/git.d.ts +17 -0
  63. package/dist/core/git.d.ts.map +1 -1
  64. package/dist/core/git.js +50 -0
  65. package/dist/core/git.js.map +1 -1
  66. package/dist/core/graph-html.js +5 -5
  67. package/dist/core/graph-html.js.map +1 -1
  68. package/dist/core/graph.d.ts +2 -1
  69. package/dist/core/graph.d.ts.map +1 -1
  70. package/dist/core/graph.js +9 -4
  71. package/dist/core/graph.js.map +1 -1
  72. package/dist/core/repository.d.ts +3 -11
  73. package/dist/core/repository.d.ts.map +1 -1
  74. package/dist/core/repository.js +52 -136
  75. package/dist/core/repository.js.map +1 -1
  76. package/dist/core/templates.d.ts +6 -7
  77. package/dist/core/templates.d.ts.map +1 -1
  78. package/dist/core/templates.js +11 -12
  79. package/dist/core/templates.js.map +1 -1
  80. package/dist/core/tool-integrations.d.ts.map +1 -1
  81. package/dist/core/tool-integrations.js +77 -422
  82. package/dist/core/tool-integrations.js.map +1 -1
  83. package/dist/core/validate.d.ts +20 -6
  84. package/dist/core/validate.d.ts.map +1 -1
  85. package/dist/core/validate.js +302 -90
  86. package/dist/core/validate.js.map +1 -1
  87. package/package.json +1 -1
  88. package/dist/commands/accept.d.ts.map +0 -1
  89. package/dist/commands/accept.js +0 -42
  90. package/dist/commands/accept.js.map +0 -1
  91. package/dist/commands/decide.d.ts.map +0 -1
@@ -8,474 +8,129 @@ const TARGET_DIRS = {
8
8
  // machine-checked in test/integrations.test.ts.
9
9
  export const WORKFLOWS = [
10
10
  {
11
- name: 'adrkit-init',
12
- description: 'Use when initializing ADR Kit in a repository or when the agent cannot find an adr/ directory.',
11
+ name: "adrkit-init",
12
+ description: "Use when initializing ADR Kit in a repository or when the agent cannot find an adr/ directory.",
13
13
  body: `# ADR Kit Init
14
14
 
15
- ## Overview
15
+ Run \`adrkit init [path]\` for a new repository, or \`adrkit update\` if \`adr/\` exists. Confirm the four lifecycle folders: \`proposed/\`, \`implemented/\`, \`rejected/\`, and \`archived/\`. The CLI installs workflow skills but does not rewrite a project's standing orders.
16
16
 
17
- Create an \`adr/\` repository in the target directory.
17
+ Add or update this section in \`AGENTS.md\` (and \`CLAUDE.md\` when used):
18
18
 
19
- ## Steps
20
-
21
- 1. Decide the target directory (default: current working directory).
22
- 2. For a new repository, run:
23
-
24
- \`\`\`bash
25
- adrkit init [path]
26
- \`\`\`
19
+ ## Reading architecture decisions
27
20
 
28
- If \`adr/\` already exists, run \`adrkit update\` instead and continue with
29
- the project instruction setup below.
21
+ At the start of a coding, design, or review task, if \`adr/\` exists, run \`adrkit list\`. Discover the active inventory, then read relevant implemented records in full with \`adrkit show <N>\` or their files. Check relevant proposed and rejected records; consult archived records only for history. Do not judge relevance by title alone: inspect tags, paths, relationships, and task scope. Compare constraints with current code; explain conflicts or changed assumptions before choosing a different approach. Mention relevant ADR numbers and verify affected behavior. Re-read on a new or resumed task, or when scope changes. Read a \`## Deliberation\` appendix only when its decision is in play.
30
22
 
31
- 3. For a new repository, confirm the output lists \`adr/config.yaml\`, \`adr/decisions\`, and
32
- \`adr/.gitignore\`. Proposals are not a separate folder: they are ephemeral
33
- drafts in \`adr/.drafts/\`, created by \`adrkit propose\`. Durable records
34
- carry \`raised-by\` and \`decided-by\` fields you declare; drafts never do.
23
+ Before creating a record, compare it with the active records covering the same choice or mechanism: extend a duplicate, fully replace through \`adrkit supersede --by\` in the same change, or link a partial overlap while the older record stays active. When shipping or reviewing, keep each active record's realization facts — paths, names, defaults — aligned with shipped code; a changed choice is a new record with an explicit relationship, not a rewrite of old rationale. Archived records are sealed in \`adr/archived/MANIFEST.json\` and never edited.
35
24
 
36
- 4. Add the following section to the project's agent instruction file
37
- (\`AGENTS.md\`; also \`CLAUDE.md\` if that is the team's entry point). Preserve
38
- existing instructions and update an equivalent section instead of adding
39
- a duplicate. This agent step supplies the task-start entry point; the CLI
40
- only installs workflow files. If ADR Kit is already initialized, use
41
- \`adrkit update\` to refresh those files and still check this section.
25
+ Record an ADR when an architectural choice constrains future work and its rationale is not evident from code. Record genuine alternatives and trade-offs, not invented template filler. A grilling session records every choice it settles, but unshipped outcomes remain proposals. Use \`adrkit propose\` for unshipped work, \`adrkit implement\` after it ships, and \`adrkit record\` for an already-shipped decision. \`raised-by\` declares who introduced the choice; \`decided-by\` declares whose judgment settled it. The CLI neither infers nor verifies shipping or provenance.
42
26
 
43
- \`\`\`markdown
44
- ## Reading architecture decisions
45
-
46
- At the start of a coding, design, or review task, if \`adr/\` exists, run
47
- \`adrkit list\` and read every decision in full with \`adrkit show <N>\` (or read
48
- its file). ADR sets are small; do not filter by title alone. Treat accepted
49
- records as decision context, superseded records as history, and pending
50
- drafts as unaccepted proposals. Check relevant decisions against current
51
- code and the task's requirements. Apply the constraints that still hold;
52
- explain conflicts or changed assumptions before choosing a different approach.
53
- Mention relevant ADR numbers in the implementation or review summary and
54
- verify the affected behavior. If no decisions apply, continue normally;
55
- reading does not require creating an ADR. Re-read on a new or resumed task,
56
- or when scope or relevant files change, rather than relying on conversation
57
- memory.
58
-
59
- A \`## Deliberation\` appendix records the design tree behind a decision. It is
60
- reference material: read it only when that decision is in play, not on every
61
- task.
62
-
63
- Record an ADR when an architectural choice will constrain future development
64
- and its rationale is not apparent from code alone. Record only decisions
65
- actually made and genuine alternatives and trade-offs; do not invent reasons
66
- to fill a template. Reuse an existing record for the same choice; record a
67
- replacement when important assumptions change. Routine implementation details,
68
- local fixes, and easily reversible choices need no ADR. If no important
69
- architectural decision was made, create none. When you grill a decision with
70
- the \`adrkit-grill\` workflow, record every decision the session settles: the
71
- session is itself the importance signal, so the bar above governs only the
72
- direct \`decide\`/\`propose\` path. \`accepted\` means a recorded
73
- decision, not proof of human review. \`decided-by\` is a declaration of where the
74
- choice came from, not an inference: \`human\` when a person determined the
75
- direction — they stated it, changed a proposal into what shipped, or you are
76
- recording one they made earlier — \`agent\` when it came from the agent's own
77
- judgment, including when a person only let it through. The CLI neither infers
78
- nor verifies it.
79
- \`\`\`
80
-
81
- ## Rules
82
-
83
- - Never create \`adr/\` directories by hand; use the CLI so the config and
84
- README stay canonical.
85
- - After init, read existing decisions and continue the task. Use
86
- \`adrkit decide "<title>" --raised-by human --decided-by human\` (\`agent\` on
87
- either axis when that is the truth) only for an important architectural choice
88
- already made, or \`adrkit propose "<title>"\` when such a choice still needs
89
- review.`,
27
+ After installation, continue the original task; initializing ADR Kit is not itself a reason to create a record.`,
90
28
  },
91
29
  {
92
- name: 'adrkit-grill',
93
- description: "Use when a decision is still being shaped and its direction is not settled, in a repository with an adr/ directory, or on any 'grill' trigger phrase; grill the user to shared understanding and record every decision the session settles.",
30
+ name: "adrkit-grill",
31
+ description: "Use when a decision is still being shaped or the user asks to grill a plan; question it to shared understanding and record every settled choice.",
94
32
  body: `# ADR Kit Grill
95
33
 
96
- ## Overview
97
-
98
- Interrogate the user about a decision until nothing is left silently
99
- assumed, then record every decision the session settled. The session feeds the
100
- record directly: the root questions become \`## Problem\`, the rejected options
101
- become \`## Alternatives considered\`, and who raised and who overrode feeds
102
- \`raised-by\` and \`decided-by\`.
103
-
104
- The interrogation method is adapted from the \`grilling\` skill in
105
- [mattpocock/skills](https://github.com/mattpocock/skills) (MIT).
34
+ Interrogate the user until the design tree has no silently assumed branch. This method is adapted from mattpocock/skills (MIT). For viewing existing records, use \`adrkit-visualize\`; grilling does not generate HTML by default.
106
35
 
107
- For viewing existing records, use \`adrkit-visualize\`. Grilling itself records
108
- and validates decisions without generating HTML or opening a browser.
36
+ ## Method
109
37
 
110
- ## When to grill
38
+ 1. Run \`adrkit list\`. Read relevant implemented records in full, check relevant proposed and rejected records, and consult archived records for history. Recheck the inventory even if this conversation read it earlier; do not reopen a settled choice without naming that change. As the tree takes shape, search the active records for anything covering the same choice or mechanism, so a settled direction lands in the right record rather than a duplicate.
39
+ 2. Map root questions and their dependent questions. Work in rounds: ask every question on the currently answerable frontier, each with genuine options and your recommendation. A downstream question waits until its prerequisite is answered. Format questions as \`Q1 - <title>\` with a clear recommendation.
40
+ 3. Research repository and environment facts yourself. Do not ask the user for facts you can inspect. Let answers reshape the tree; record which option or question unlocked each follow-up.
41
+ 4. Stop questioning only when the frontier is empty. State the proposed shared understanding and wait for the user's confirmation before acting or writing records.
111
42
 
112
- Grill when a decision is still being shaped and its direction is not settled:
113
- an architectural choice, or any other decision worth stress-testing before it
114
- is recorded. The direct \`decide\`/\`propose\` paths keep the ADR importance bar;
115
- a grilling session is itself the signal that its output is key, so its
116
- decisions are not filtered again at record time.
43
+ ## Recording
117
44
 
118
- ## Method
45
+ Record every choice the session settles; the session is the importance signal. Usually one primary record holds the tree, but split choices that can be superseded independently. An unshipped outcome goes to \`adrkit propose\`, even when the direction is settled. Fill \`## Problem\`, \`## Proposal\`, \`## Alternatives considered\`, \`## Acceptance criteria\`, and \`## Risks\` from actual answers. Keep the tree in an optional \`## Deliberation\` appendix: prefix questions \`Q:\`, options \`A:\`, tag nodes \`[settled]\`, \`[rejected]\`, or \`[open]\`, nest a follow-up beneath what raised it, mark the recommended option, and give rejected options a reason.
119
46
 
120
- 1. Run \`adrkit list\` and read every decision in full with \`adrkit show <N>\`
121
- (or read its file), even if you ran it earlier in this conversation. The
122
- tree must not re-ask what an existing record already settles; reopening a
123
- settled decision is a supersede, not a question.
124
- 2. Map the decision as a design tree: every decision branches into the
125
- decisions that hang off it.
126
- 3. Work the tree in rounds. The frontier is every question whose
127
- prerequisites are already settled: the questions you can ask now without
128
- guessing at answers you have not heard. Ask the whole frontier in one
129
- round, then wait for the user's answers before the next round. Format
130
- each question like:
131
-
132
- \`\`\`
133
- ❓ **Q1 - <question title>**: <question body, with options if any>
134
-
135
- ➡️ <your recommended answer>
136
- \`\`\`
137
-
138
- 4. Each round of answers reshapes the tree: settled decisions push the
139
- frontier outward and unblock the questions that depended on them. A
140
- question whose answer depends on another question still open in this
141
- round belongs to a later round. As each answer settles, note which option
142
- or question raised the next one; the record nests it under that node.
143
- 5. Finding facts is your job, never the user's: when a question needs a fact
144
- from the repository or the environment, look it up yourself (or dispatch
145
- a sub-agent) instead of asking. Do not block on a running lookup; only
146
- the questions downstream of it wait. The decisions are the user's: put
147
- each to them and wait.
148
- 6. The session is done when the frontier is empty: every branch visited,
149
- nothing left silently assumed. Do not act and do not write records until
150
- the user confirms you have reached shared understanding.
151
-
152
- ## Recording the outcome
153
-
154
- 1. Record every decision the session settled; there is no record-time filter.
155
- One session often settles several decisions: usually one primary record
156
- with the rest as branches, but split them when they can be superseded
157
- independently. Run \`adrkit decide "<title>" --raised-by human
158
- --decided-by human\` (or \`agent\` on either axis, per the rule below);
159
- grilling ends in a decision, never a proposal. Then follow the decide
160
- workflow.
161
- 2. Fill the record from the session: \`## Problem\` from the root questions,
162
- \`## Decision\` from the user's answers, \`## Alternatives considered\` from
163
- the frontier options they rejected, \`## Consequences\` from the branches
164
- their answers unlocked. Keep the design tree in an optional
165
- \`## Deliberation\` appendix: prefix a question \`Q:\` and an option \`A:\`, tag
166
- each node \`[settled]\`, \`[rejected]\`, or \`[open]\`, nest each follow-up
167
- question under the option or question that raised it, mark the option you
168
- recommended \`(recommended)\`, and give a rejected option a \` — reason\`.
169
- \`adrkit tree <N>\` renders it (\`--mermaid\`, or \`--html\` for a file). Add 2-4
170
- kebab-case \`tags\` to the front matter.
171
- 3. Declare both provenance axes: \`--raised-by\` is who put the decision on the
172
- table; \`--decided-by\` is whose judgment settled it. \`decided-by\` is \`human\`
173
- when the user's answers determined the direction — especially where they
174
- overrode your recommendations — and \`agent\` when they adopted every
175
- recommendation without engaging. Put the nuance in the body: which
176
- recommendations they changed and which they let through.
177
- 4. Run \`adrkit validate <N>\` until it returns OK.
178
-
179
- ## Rules
180
-
181
- - One round at a time: never stack a question whose answer depends on a
182
- question still open in the same round.
183
- - Never ask the user for a fact you could look up yourself.
184
- - Never write a record mid-session; records follow the user's confirmation
185
- of shared understanding, and then every decision the session settled is
186
- recorded.
187
- - A settled decision the user reopens becomes a supersede once its
188
- replacement is recorded and validated: use \`adrkit supersede\`, and say in
189
- the new record's \`## Problem\` what assumption changed.`,
47
+ State who raised and settled the unshipped choice in prose; proposal front matter has no provenance fields. If the choice has already shipped, use \`adrkit record\` with truthful \`--raised-by\` and \`--decided-by\` declarations. Compare each settled choice with the active records before recording: a full replacement of an implemented decision is recorded and then resolved with \`adrkit supersede --by\` in the same change, a partial replacement keeps the older record active and links both, and a duplicate extends the existing record. Judge overlap from content; the CLI cannot infer it from titles or tags. Run \`adrkit validate <name>\` after filling the record. Report which outcomes are proposals, not implemented guidance; \`adrkit implement\` is reserved for work that actually ships.`,
190
48
  },
191
49
  {
192
- name: 'adrkit-visualize',
50
+ name: "adrkit-visualize",
193
51
  description: "Use when the user asks to visualize an existing ADR, its deliberation tree, or the whole decision set and its relationships.",
194
52
  body: `# ADR Kit Visualize
195
53
 
196
- ## Render the requested view
197
-
198
- When the user asks to visualize a recorded ADR, a grilling result, or the whole
199
- decision set, use these paths directly; do not start a new grilling session or
200
- create another ADR. There are two levels, and the request picks one:
201
-
202
- - **One decision — the decision tree.** Resolve the record with \`adrkit list\`
203
- and \`adrkit show <N>\`, and read its \`## Deliberation\` appendix. If there is
204
- no tree, explain that the record has no recorded deliberation to visualize;
205
- do not invent one. Render it with \`adrkit tree <N> --html > "<path>.html"\`.
206
- - **All decisions — the decision map.** Render the whole set with
207
- \`adrkit graph --html --out "<path>.html"\`. It groups every decision by creation
208
- date, draws supersede and reference edges, and marks the decisions that carry
209
- a deliberation tree. A node links to its record file; it does not expand the
210
- tree yet.
211
-
212
- Both renderers are built in, not agent-designed replacement pages. Write the
213
- map with \`--out\` to any new path the user asks for, a temporary directory
214
- included: the command resolves its record links against the file's own
215
- location, so the cards open wherever it lands. Redirecting stdout instead
216
- leaves record-relative links, which only resolve for a file written inside the
217
- repository. Quote paths and avoid overwriting a record or an existing file.
218
- Check the command succeeded.
219
- Deliver a clickable link; the file is self-contained and works offline. After
220
- successful HTML generation, open the file in the user's default browser unless
221
- the user asks for a file only or says not to open it. A visualization request
222
- is sufficient; do not ask for separate confirmation to open the browser.
223
- Use the platform opener with the quoted file path. If a browser is unavailable
224
- or opening fails, keep the file link and explain that it could not be opened.
225
- The agent opens the browser; the CLI continues to emit HTML to stdout only.
226
-
227
- Generate HTML only on an explicit visualization request, never automatically at
228
- the end of a grilling session. For explicit format requests, both commands support \`--text\` and \`--mermaid\`;
229
- only \`graph\` supports \`--dot\`. Return those formats without opening a browser. Keep Markdown as the source of
230
- truth.`,
54
+ Visualize existing records only when asked. Run \`adrkit list\` first, then read the record or relationships relevant to the requested view. Do not create a decision or invent a deliberation tree to make a picture.
55
+
56
+ - For one record's design tree, use \`adrkit tree <name> --html\` and save stdout to a local HTML file. If no \`## Deliberation\` appendix exists, say so instead of fabricating one.
57
+ - For the numbered decision set, use \`adrkit graph --html --out "<path>.html"\`. The map includes implemented guidance and archived history, but archived records are not current authority. Use \`--tag\` or \`--formal-only\` only when requested or useful to the question.
58
+ - For lightweight previews, \`--text\` or \`--mermaid\` may be enough; do not generate HTML merely because the CLI supports it.
59
+
60
+ When the user requests HTML visualization, open the generated file in the default browser if available and return a clickable file path. If the user asks for a file only or says not to open it, leave the browser alone. If opening is unavailable or fails, explain that briefly and still return the file path. The CLI emits HTML to stdout unless \`graph --out\` is used; the agent owns the browser handoff.`,
231
61
  },
232
62
  {
233
- name: 'adrkit-propose',
234
- description: 'Use when starting a new architecture decision that still needs review before it is accepted.',
63
+ name: "adrkit-propose",
64
+ description: "Use when starting an architectural choice that has not shipped, whether its direction is open or settled.",
235
65
  body: `# ADR Kit Propose
236
66
 
237
- ## Overview
238
-
239
- Create an ephemeral proposal draft in \`adr/.drafts/\`. A draft is temporary:
240
- \`adrkit accept\` promotes it into a decision, \`adrkit reject\` discards it
241
- without leaving a record.
242
-
243
- ## When to record
244
-
245
- Use this workflow for architectural choices that constrain future development
246
- and whose rationale is not apparent from code alone. Routine implementation
247
- details, local fixes, and easily reversible choices need no ADR. Do not create
248
- an ADR for every task or invent alternatives and reasons to fill a template.
249
-
250
- ## Steps
251
-
252
- 1. Run \`adrkit list\` and read every decision in full with \`adrkit show <N>\`
253
- (or read its file), even if you ran it earlier in this conversation.
254
- Check whether this decision supersedes or overlaps an existing one against
255
- current code and requirements. Treat superseded records as history and
256
- pending drafts as unaccepted proposals. Reuse an existing decision when
257
- it already captures the same choice; explain changed assumptions when
258
- replacing one, and use \`adrkit supersede\` after its replacement is recorded
259
- and validated.
260
- 2. Run:
261
-
262
- \`\`\`bash
263
- adrkit propose "<title>"
264
- \`\`\`
265
-
266
- 3. Edit the created draft. Fill every section with real content:
267
- \`## Problem\`, \`## Proposal\`, \`## Alternatives considered\`,
268
- \`## Acceptance criteria\`, \`## Risks\`.
269
- 4. Add 2-4 kebab-case \`tags\` to the front matter (for example \`frontend\`,
270
- \`execution-layer\`) so the decision graph can group by theme.
271
- 5. Promote the completed draft with
272
- \`adrkit accept "<title>" --raised-by human --decided-by human\` (\`agent\` on
273
- either axis when that is the truth); the CLI validates it before promoting.
274
- \`raised-by\` is who put the draft on the table, \`decided-by\` whose judgment
275
- settled it. A person who merely lets a proposal through without engaging
276
- with the choice leaves \`decided-by\` with you: that is \`agent\`, and the body
277
- is where you say they approved it.
278
-
279
- ## Rules
280
-
281
- - Do not skip \`## Alternatives considered\`. A proposal without alternatives
282
- is invalid by design.
283
- - Keep the front matter exactly \`status: proposed\`. Never write \`raised-by\` or
284
- \`decided-by\`: a draft has no decision to attribute, so the values belong to
285
- \`adrkit accept\`, which requires you to declare them. A value written here is
286
- rejected while the draft exists and dropped when it is promoted.`,
67
+ Before writing, run \`adrkit list\` and search the active records — read relevant implemented records in full and check proposed and rejected ones — for anything covering the same choice, mechanism, or rejected alternative. Judge overlap from record content, not titles or tags; the CLI cannot infer it. Classify what you find:
68
+
69
+ - **Duplicate**: extend the existing record instead of opening a new one.
70
+ - **Full replacement**: write the new record, then resolve the old one in the same change with \`adrkit supersede --by\`; never leave duplicate active authority.
71
+ - **Partial replacement**: write the new record, keep the older one active, refresh the facts that remain current in it, and link the two records in prose.
72
+ - **Independent**: proceed without touching unrelated records.
73
+
74
+ Then run \`adrkit propose "<title>"\`; it creates a dated, unnumbered file in \`adr/proposed/\`. Fill Problem, Proposal, Alternatives considered, Acceptance criteria, and Risks with actual content. A settled direction stays proposed until shipped. An uncommitted file is a local working-tree draft; Git commit makes it shared. Run \`adrkit validate <name>\` and resolve missing requirements before formal review. Do not put provenance flags in proposal front matter; describe participants and reasoning in the body.`,
287
75
  },
288
76
  {
289
- name: 'adrkit-decide',
290
- description: 'Use when work establishes an important architectural choice that will constrain future development and whose rationale is not apparent from code alone; record it after the choice is made.',
291
- body: `# ADR Kit Decide
292
-
293
- ## Overview
294
-
295
- Record an already-made decision directly in \`adr/decisions/\` with the next
296
- \`N\` number.
297
-
298
- ## When to record
299
-
300
- Use this workflow for architectural choices that constrain future development
301
- and whose rationale is not apparent from code alone. Routine implementation
302
- details, local fixes, and easily reversible choices need no ADR. Do not create
303
- an ADR for every task or invent alternatives and reasons to fill a template.
304
-
305
- ## Steps
306
-
307
- 1. Run \`adrkit list\` and read every decision in full with \`adrkit show <N>\`
308
- (or read its file), even if you ran it earlier in this conversation.
309
- Check whether this decision supersedes or overlaps an existing one against
310
- current code and requirements. Treat superseded records as history and
311
- pending drafts as unaccepted proposals. Reuse an existing decision when
312
- it already captures the same choice; explain changed assumptions when
313
- replacing one, and use \`adrkit supersede\` after its replacement is recorded
314
- and validated.
315
- 2. Run:
316
-
317
- \`\`\`bash
318
- adrkit decide "<title>" --raised-by human --decided-by human # or agent on either axis
319
- \`\`\`
320
-
321
- 3. Edit the created file and fill \`## Problem\`, \`## Decision\`,
322
- \`## Alternatives considered\`, and \`## Consequences\`. Add 2-4 kebab-case
323
- \`tags\` to the front matter (for example \`frontend\`, \`execution-layer\`)
324
- so the decision graph can group by theme.
325
- 4. Run \`adrkit validate <N>\` until it returns OK.
326
-
327
- ## Rules
328
-
329
- - \`raised-by\` and \`decided-by\` declare the decision's provenance:
330
- \`raised-by\` is who put it on the table, \`decided-by\` whose judgment settled
331
- it. For \`decided-by\`, \`human\` means a person determined the direction — they
332
- stated it, changed your proposal into what shipped, or made it earlier and
333
- you are only recording it now; \`agent\` means it came from your own judgment,
334
- including when a person let your choice through without engaging with it. The
335
- fields record the source of the choice, not who ran the command: recording a
336
- person's decision makes it \`human\`, not \`agent\`. The CLI neither infers nor
337
- verifies either, so put the nuance (who redirected or approved) in the body.
338
- - Accepted decisions must not contain \`## Proposal\`, \`## Acceptance
339
- criteria\`, or \`## Risks\` sections.
340
- - Never edit the \`raised-by\` or \`decided-by\` value afterwards. A wrong value
341
- is a false provenance claim no later check can detect. A record missing the
342
- fields is not a blank to fill on a hunch: write them only when you know where
343
- the choice came from — your own judgment, or the person who directed it — and
344
- ask the person when you do not.
345
- - \`accepted\` means a recorded decision, not proof of human review.
346
- - \`adrkit accept\` is the better path when a proposal already exists.`,
77
+ name: "adrkit-record",
78
+ description: "Use when recording an already-shipped architectural decision directly, without a pending proposal.",
79
+ body: `# ADR Kit Record
80
+
81
+ First run \`adrkit list\` and read relevant implemented records in full; also check proposed and rejected records for the same choice or mechanism. Compare content, not titles or tags — the CLI cannot infer semantic overlap. A duplicate means recording the choice in the existing record instead; a full replacement means recording the new decision and resolving the old one with \`adrkit supersede --by\` in the same change; a partial replacement keeps the older record active with a prose link between them.
82
+
83
+ Confirm the choice has actually shipped, and compare its claimed paths, names, defaults, and mechanisms with the current code and tests; the CLI cannot verify delivery. If a code change altered only the realization of an active decision, update those facts in the existing record rather than recording a new one; a changed choice always needs a new record and an explicit relationship. Run \`adrkit record "<title>" --raised-by <human|agent> --decided-by <human|agent>\`. Fill Problem, Decision, Alternatives considered, and Consequences with the shipped choice and genuine trade-offs. Use \`human\` for a person's judgment, \`agent\` for the agent's; passive human approval does not change an agent-origin choice. Run \`adrkit validate <N>\`.`,
347
84
  },
348
85
  {
349
- name: 'adrkit-validate',
350
- description: 'Use when checking whether ADR files follow the ADR Kit format, especially before accepting a proposal or committing.',
86
+ name: "adrkit-validate",
87
+ description: "Use when checking ADR record format before implementation, rejection, archival, or commit.",
351
88
  body: `# ADR Kit Validate
352
89
 
353
- ## Overview
354
-
355
- Run the machine checks for one record or the whole repository.
356
-
357
- ## Steps
358
-
359
- \`\`\`bash
360
- adrkit validate [name] [--all]
361
- \`\`\`
90
+ Run \`adrkit validate [name]\` for one record or \`adrkit validate\` for the repository. All four lifecycle folders are checked. A fresh proposal or record template intentionally fails until required sections contain real content. Fix the exact reported requirement; do not add placeholder prose merely to pass. Validate again after every lifecycle move.
362
91
 
363
- - With no \`name\`, the whole repository is validated.
364
- - \`name\` resolves by title, file name, or decision number.
365
-
366
- ## Rules
367
-
368
- - Treat any non-OK output as a blocker for \`adrkit accept\`.
369
- - A \`front matter must include "raised-by"\` or \`"decided-by"\` issue on a
370
- record that lacks the field is not yours to repair on a hunch: the value
371
- comes from whoever knows where that choice came from — your own judgment, or
372
- the person who directed it — so ask when you do not.
373
- - \`adrkit validate\` checks durable decisions only; a draft in \`adr/.drafts/\`
374
- is validated by \`adrkit accept\` right before it is promoted.`,
92
+ Repository-wide validation also checks the archive seal: \`adr/archived/MANIFEST.json\` must cover exactly the archived records and match their bytes. When it reports drift — edited bytes, an unsealed file, a missing file, a malformed or missing manifest — restore the sealed bytes, the manifest entry, or the empty manifest; never re-seal changed archived content to make the check pass. Before pushing, \`adrkit validate --base <git-ref>\` additionally proves the archive only grew since that ref: entries sealed at the base must remain byte-identical, so a coordinated edit of an archived file and its hash still fails. An absent base manifest means no prior seals; one that exists but cannot be read fails.`,
375
93
  },
376
94
  {
377
- name: 'adrkit-accept',
378
- description: 'Use when a proposal draft is complete, and the team has decided to accept it.',
379
- body: `# ADR Kit Accept
380
-
381
- ## Overview
382
-
383
- Promote a completed draft to a decision. The CLI validates the draft, assigns
384
- the next \`N\` number, rewrites \`## Proposal\` to \`## Decision\`, folds
385
- \`Acceptance criteria\` and \`Risks\` into \`## Consequences\`, writes
386
- \`adr/decisions/N-*.md\`, and discards the draft from \`adr/.drafts/\`.
387
-
388
- ## Steps
389
-
390
- 1. Review the draft with \`adrkit show "<name>"\`; every section must have real
391
- content before accepting.
392
- 2. Run:
393
-
394
- \`\`\`bash
395
- adrkit accept "<name>" --raised-by human --decided-by human # or agent on either axis
396
- \`\`\`
397
-
398
- 3. Confirm the output names the new \`adr/decisions/N-*.md\` file.
399
-
400
- ## Rules
401
-
402
- - Declare \`raised-by\` and \`decided-by\` when you promote: \`raised-by\` is who
403
- put the draft on the table, \`decided-by\` whose judgment settled it. For
404
- \`decided-by\`, \`human\` means a person determined the direction (they stated
405
- it, changed this draft into what shipped, or you are recording one they made
406
- earlier), \`agent\` means it came from your own judgment, including when a
407
- person only let the draft through. Promotion is the last moment either value
408
- can be set; the CLI records what you declare without inferring or checking
409
- it. If the person redirected or approved your proposal, say so in the body.
410
- - Never accept an invalid draft; the command refuses.
411
- - Re-run \`adrkit show "<name>"\` immediately before accepting, even if you
412
- reviewed it earlier in this conversation; the repo may have changed since.
413
- - \`accepted\` means a recorded decision, not proof of human review.
414
- - Review the generated \`## Consequences\` after accepting.
415
- - The command warns when a proposal contains sections that have no place in
416
- an accepted decision (for example \`## Plan\`); save their content elsewhere
417
- if it still matters.`,
95
+ name: "adrkit-implement",
96
+ description: "Use when a proposal has shipped and should become a numbered, active decision.",
97
+ body: `# ADR Kit Implement
98
+
99
+ Confirm the proposal's work is shipped, not merely accepted for review. Compare the record's claimed paths, names, defaults, and mechanisms with the current code and tests, and check the active records for overlap with this choice: a full replacement is promoted and then resolved with \`adrkit supersede --by\` in the same change, while a partial replacement keeps the older record active and links both. Run \`adrkit show <name>\` and \`adrkit validate <name>\`; resolve errors. Then run \`adrkit implement <name> --raised-by <human|agent> --decided-by <human|agent>\`. The command assigns the next stable ADR number, rewrites proposal sections into a shipped decision, moves the record from \`proposed/\` to \`implemented/\`, and preserves \`created\` and \`tags\`. Inspect the generated Decision and Consequences so they state shipped facts rather than proposal-era intent, then validate the numbered record. Do not infer the two provenance declarations from the command runner.`,
418
100
  },
419
101
  {
420
- name: 'adrkit-reject',
421
- description: 'Use when a proposal draft should be declined and discarded.',
422
- body: `# ADR Kit Reject
423
-
424
- ## Overview
102
+ name: "adrkit-review",
103
+ description: "Use when checking whether changed code and changed decision records still agree; scoped to record coherence, not general code review.",
104
+ body: `# ADR Kit Review
425
105
 
426
- Discard a proposal draft. The CLI deletes the draft from \`adr/.drafts/\` and
427
- leaves no record - rejection lives in the winning decision's
428
- \`## Alternatives considered\`, not in a standalone rejected record.
106
+ Review decision-record coherence for a change, not general code quality. Run \`adrkit list\` first, then:
429
107
 
430
- ## Steps
108
+ - Compare each changed or newly shipped record with the changed code and tests: claimed paths, names, defaults, mechanisms, and verification evidence must match what actually shipped.
109
+ - Search active implemented records for realization facts the change invalidated — moved files, renamed options, altered defaults, changed behavior — and report each stale record for a factual update in the same change. A decision reversal is a new record with an explicit relationship, never a rewrite of old rationale.
110
+ - Look for unresolved supersession: a new record that fully replaces an active one without \`adrkit supersede --by\`, or a partial overlap that should be linked in prose while both stay active.
431
111
 
432
- \`\`\`bash
433
- adrkit reject "<name>" [--reason "<why it was rejected>"]
434
- \`\`\`
112
+ Report evidence-backed findings that name the record and the code evidence. Finding no issue is a valid result; do not demand a record for a mechanical edit. A disagreement with the decision itself is a design question to raise, not a license to rewrite a historical record. Archived records are sealed history: report changes to them rather than editing them.`,
113
+ },
114
+ {
115
+ name: "adrkit-reject",
116
+ description: "Use when a formal proposal is declined and its rejection rationale should be retained.",
117
+ body: `# ADR Kit Reject
435
118
 
436
- ## Rules
119
+ Read the proposal and check its alternatives. Run \`adrkit reject <name> --reason "<why declined>"\`. It moves the dated file from \`proposed/\` to \`rejected/\`, stamps the lifecycle date, and preserves the record and reason. A rejected proposal gets no ADR number. Do not use rejection to erase a settled but merely unshipped choice; that remains proposed.`,
120
+ },
121
+ {
122
+ name: "adrkit-archive",
123
+ description: "Use when an implemented record no longer guides work and current behavior has another authoritative owner.",
124
+ body: `# ADR Kit Archive
437
125
 
438
- - \`--reason\` is optional and is only echoed; nothing is persisted. If the
439
- rejection matters, record it in \`## Alternatives considered\` of the decision
440
- that won.`,
126
+ Confirm the record has shipped, its distinct rationale no longer guides future work, and current behavior has another authoritative owner. Do not archive by age or quota. Run \`adrkit archive <N> --reason "<owner and why retired>"\`. The numbered record moves from \`implemented/\` to frozen \`archived/\`, its number and history remain, and the command appends a content seal for the final archived file to \`adr/archived/MANIFEST.json\`. Validate afterward. Never edit an archived file or its seal after archival; if validation reports drift, restore the sealed bytes. If a newer implemented decision fully replaces it, use \`adrkit supersede --by\` instead; partial replacement leaves the still-relevant record active.`,
441
127
  },
442
128
  {
443
- name: 'adrkit-supersede',
444
- description: 'Use when an accepted decision is replaced by a newer accepted decision and must be retired without deleting history.',
129
+ name: "adrkit-supersede",
130
+ description: "Use when one implemented decision fully replaces another and the old record must become archived history.",
445
131
  body: `# ADR Kit Supersede
446
132
 
447
- ## Overview
448
-
449
- Mark an accepted decision as superseded. The CLI rewrites its front matter
450
- to \`status: superseded\` with \`superseded-by: N\`, stamps the supersede date
451
- on the \`date\` field, and leaves the record in \`adr/decisions/\` as frozen
452
- history.
453
-
454
- ## Steps
455
-
456
- 1. Record the replacement first (\`adrkit decide\` or \`adrkit propose\` +
457
- \`adrkit accept\`), and make sure it validates.
458
- 2. Run:
459
-
460
- \`\`\`bash
461
- adrkit supersede "<old name or number>" --by "<new name or number>"
462
- \`\`\`
463
-
464
- ## Rules
465
-
466
- - \`--by\` must reference an existing accepted decision that is not itself
467
- superseded when this move is made. That replacement may later be superseded
468
- in turn; validation follows the chain to an accepted decision and rejects
469
- missing targets and cycles. Keep earlier historical links unchanged.
470
- - Re-run \`adrkit list\` right before superseding to confirm the \`--by\` target
471
- still exists and is not itself superseded, even if you checked earlier in
472
- this conversation.
473
- - Never hand-edit a superseded record afterwards; it is history, including
474
- its \`raised-by\` and \`decided-by\` values, which the command preserves rather
475
- than replacing with whoever retired it. Superseding changes the record's
476
- status, not who raised or decided it.
477
- - Mention what it supersedes in the new decision's \`## Problem\` section so
478
- the causal link survives in prose.`,
133
+ First record or implement the replacement and validate it. Confirm it fully replaces the old decision; partial overlap calls for prose links while the old record remains active. Run \`adrkit supersede <old> --by <new>\`. Both records must be implemented; the command stamps \`superseded-by\`, moves the old numbered file into \`archived/\`, preserves its provenance and number, and seals the archived file in \`adr/archived/MANIFEST.json\`. Run \`adrkit validate\` to check the chain and the new seal. Do not edit the archived choice or rationale afterward.`,
479
134
  },
480
135
  ];
481
136
  /** Bare workflow names (without the `adrkit-` prefix), in canonical order. */
@@ -1 +1 @@
1
- {"version":3,"file":"tool-integrations.js","sourceRoot":"","sources":["../../src/core/tool-integrations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-integrations.js","sourceRoot":"","sources":["../../src/core/tool-integrations.ts"],"names":[],"mappings":"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"}