@windyroad/architect 0.21.1 → 0.21.2-preview.1079

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.
@@ -1,6 +1,6 @@
1
1
  # `/wr-architect:capture-adr` Reference
2
2
 
3
- This file hosts the rationale, edge cases, contract trade-offs, and ADR cross-references for the `/wr-architect:capture-adr` skill. SKILL.md is the runtime contract (~190 lines, on-topic per ADR-038 progressive disclosure); this REFERENCE.md is the on-demand expansion for maintainers and curious users.
3
+ This file hosts the rationale, edge cases, contract trade-offs, and ADR cross-references for the `/wr-architect:capture-adr` skill. SKILL.md is the runtime contract (~190 lines, on-topic per the progressive governance disclosure budget progressive disclosure); this REFERENCE.md is the on-demand expansion for maintainers and curious users.
4
4
 
5
5
  ## Why a separate skill?
6
6
 
@@ -8,37 +8,37 @@ The `/wr-architect:create-adr` flow is ~10-15 turns of agent work for a full new
8
8
 
9
9
  That cost is correct for the canonical new-ADR path — the user wants to walk the flow, see the option-comparison prompts, and codify the full MADR shape immediately.
10
10
 
11
- It is wrong for the **aside-invocation** use case. P156 surfaced three repeating patterns where the heavyweight cost is load-bearing friction:
11
+ It is wrong for the **aside-invocation** use case. the lightweight ADR-capture requirement surfaced three repeating patterns where the heavyweight cost is load-bearing friction:
12
12
 
13
- 1. **Mid-AFK-iter design decisions**: agent or user lands on a design choice during a foreground iter (e.g. iter 17 P137 Option C namespace-prefix; iter 19 ADR-056 Phase 2a back-channel write contract). The 10-15 turn ceremony breaks iter cadence — decisions get buried inline in commit bodies or RCA sections.
13
+ 1. **Mid-AFK-iter design decisions**: agent or user lands on a design choice during a foreground iter (e.g. iter 17 the unresolved published-reference failure Option C namespace-prefix; iter 19 the risk-register back-channel write contract Phase 2a back-channel write contract). The 10-15 turn ceremony breaks iter cadence — decisions get buried inline in commit bodies or RCA sections.
14
14
  2. **Architect-review verdict capture**: a `wr-architect:agent` review yields a substantive verdict (PASS-WITH-NOTES / ISSUES-FOUND) whose rationale deserves an ADR-shaped record. Today the verdict + rationale lands in commit messages and rots — future readers grep history but lose the structured trace.
15
15
  3. **User-driven design conversations**: user resolves options (a)/(b)/(c) during conversational work; the settlement currently lives in a problem-ticket RCA section instead of a discoverable ADR.
16
16
 
17
17
  `/wr-architect:capture-adr` is the source-side fix: a lightweight skill that captures the decision in ~5-6 turns with full derived substance. "Lightweight" means zero-interaction + single-commit — not skimpy content.
18
18
 
19
- ## Derived-substance amendment (RFC-045 / P375, 2026-07-06)
19
+ ## Derived-substance amendment (the full-substance capture implementation design / the self-firing cadence requirement, 2026-07-06)
20
20
 
21
- The skill originally shipped (P156, 2026-05-03) with a **deferred-placeholder pattern**: every section the capture didn't fill carried the literal pointer string `(deferred to /wr-architect:create-adr canonical review)`, on the theory that a later canonical-expansion pass would fill them. That pattern failed the P375 rot test — a named re-entry point is not a self-firing cadence; nothing ever triggered the canonical review, the anticipated auto-detect-and-expand tooling was never built, and the sections rotted. User direction 2026-07-05: "It should capture it properly."
21
+ The skill originally shipped (the lightweight ADR-capture requirement, 2026-05-03) with a **deferred-placeholder pattern**: every section the capture didn't fill carried the literal pointer string `(deferred to /wr-architect:create-adr canonical review)`, on the theory that a later canonical-expansion pass would fill them. That pattern failed the self-firing cadence requirement rot test — a named re-entry point is not a self-firing cadence; nothing ever triggered the canonical review, the anticipated auto-detect-and-expand tooling was never built, and the sections rotted. User direction 2026-07-05: "It should capture it properly."
22
22
 
23
- The amended contract (ADR-032 derived-substance amendment; same correction class as ADR-067's silent derivation of capture-problem ratings): **every MADR section is derived for real at capture time** — genuine Decision Drivers, ≥2 real Considered Options (chosen + actually-rejected alternatives), real Good/Neutral/Bad Consequences, testable Confirmation criteria, real Reassessment Criteria, derived decision-makers. No placeholder, pointer, or sentinel strings of any kind. The capturing agent has more decision context in-session than any later pass would; capture is the cheapest moment to write the substance down.
23
+ The amended contract (the governance-skill invocation rule derived-substance amendment; same correction class as the evidence-based effort estimation rule's silent derivation of capture-problem ratings): **every MADR section is derived for real at capture time** — genuine Decision Drivers, ≥2 real Considered Options (chosen + actually-rejected alternatives), real Good/Neutral/Bad Consequences, testable Confirmation criteria, real Reassessment Criteria, derived decision-makers. No placeholder, pointer, or sentinel strings of any kind. The capturing agent has more decision context in-session than any later pass would; capture is the cheapest moment to write the substance down.
24
24
 
25
- The derived substance is provisional. `human-oversight: unconfirmed` states that honestly, and the SessionStart oversight nudge → `/wr-architect:review-decisions` drain is the **self-firing** surface where a human ratifies or amends it (ADR-066). That is the only deferral the skill retains.
25
+ The derived substance is provisional. `human-oversight: unconfirmed` states that honestly, and the SessionStart oversight nudge → `/wr-architect:review-decisions` drain is the **self-firing** surface where a human ratifies or amends it (the architecture human-oversight rule). That is the only deferral the skill retains.
26
26
 
27
- The architect Q-verdict subsections below record the original P156 trade-off analysis for history; where they describe placeholder/sentinel mechanics they are superseded by this amendment.
27
+ The architect Q-verdict subsections below record the original the lightweight ADR-capture requirement trade-off analysis for history; where they describe placeholder/sentinel mechanics they are superseded by this amendment.
28
28
 
29
29
  ## Contract trade-offs
30
30
 
31
31
  ### Skeleton-MADR validity at status `proposed`
32
32
 
33
- Architect Q1 verdict (P156 review, superseded 2026-07-06): the review prompt tolerates not-yet-accepted ADRs at `status: proposed` — it checks "does the proposed change conflict with the decision's outcome?". Under the derived-substance amendment the MADR ≥2-options requirement is satisfied at capture (real options are derived), so there is no skeleton state to cover; `status: proposed` now signals only "derived substance awaiting human ratification + acceptance review".
33
+ Architect Q1 verdict (the lightweight ADR-capture requirement review, superseded 2026-07-06): the review prompt tolerates not-yet-accepted ADRs at `status: proposed` — it checks "does the proposed change conflict with the decision's outcome?". Under the derived-substance amendment the MADR ≥2-options requirement is satisfied at capture (real options are derived), so there is no skeleton state to cover; `status: proposed` now signals only "derived substance awaiting human ratification + acceptance review".
34
34
 
35
35
  ### Considered Options — real alternatives, derived
36
36
 
37
- Architect Q2 verdict (P156, superseded 2026-07-06): the original numbered-placeholder sibling (`2. (deferred — see ...)`) existed only to satisfy ≥2-options lint. Under the derived-substance amendment the capture writes the chosen option PLUS every alternative actually weighed and rejected in the decision context — real options with one-line summaries. If the context genuinely weighed only one option, the capture derives the strongest status-quo/do-nothing alternative and says why it lost. Lint is satisfied by substance, not by a placeholder. Still no AskUserQuestion.
37
+ Architect Q2 verdict (the lightweight ADR-capture requirement, superseded 2026-07-06): the original numbered-placeholder sibling (`2. (deferred — see ...)`) existed only to satisfy ≥2-options lint. Under the derived-substance amendment the capture writes the chosen option PLUS every alternative actually weighed and rejected in the decision context — real options with one-line summaries. If the context genuinely weighed only one option, the capture derives the strongest status-quo/do-nothing alternative and says why it lost. Lint is satisfied by substance, not by a placeholder. Still no AskUserQuestion.
38
38
 
39
39
  ### Frontmatter sentinel values vs. truly minimal
40
40
 
41
- Architect Q5 verdict (P156, superseded 2026-07-06): the original sentinel `decision-makers: [unspecified — fill at canonical review]` was another deferral marker. Under the derived-substance amendment frontmatter is derived: `decision-makers: [<git config user.name>]` plus any decision-owner named in `$ARGUMENTS`; `consulted`/`informed` from context or `[]`. `reassessment-date` defaults to 3 months from today (matches `create-adr` Step 4); the Reassessment Criteria body section carries real reopen conditions derived at capture.
41
+ Architect Q5 verdict (the lightweight ADR-capture requirement, superseded 2026-07-06): the original sentinel `decision-makers: [unspecified — fill at canonical review]` was another deferral marker. Under the derived-substance amendment frontmatter is derived: `decision-makers: [<git config user.name>]` plus any decision-owner named in `$ARGUMENTS`; `consulted`/`informed` from context or `[]`. `reassessment-date` defaults to 3 months from today (matches `create-adr` Step 4); the Reassessment Criteria body section carries real reopen conditions derived at capture.
42
42
 
43
43
  ### Deferred-ratification contract (was: deferred-canonical-expansion)
44
44
 
@@ -53,11 +53,11 @@ Capture-adr skips the interactive confirm-with-user pass that `/wr-architect:cre
53
53
  | MADR conformance at write-time | Full | Full (derived) |
54
54
  | Audit trail (commit) | One commit covers full ADR | One commit covers full derived ADR |
55
55
 
56
- The contract passes the P375 rot test because the ratification path starts from a self-firing trigger (the SessionStart nudge), not a named on-demand skill. The pre-amendment version failed that test: expansion depended on someone remembering to run `/wr-architect:create-adr <NNN>`, and nothing ever fired it.
56
+ The contract passes the self-firing cadence requirement rot test because the ratification path starts from a self-firing trigger (the SessionStart nudge), not a named on-demand skill. The pre-amendment version failed that test: expansion depended on someone remembering to run `/wr-architect:create-adr <NNN>`, and nothing ever fired it.
57
57
 
58
58
  ### No AskUserQuestion at all
59
59
 
60
- Architect Q4 + JTBD review confirmed: capture-adr is a **mechanical-stage skill** per ADR-044's framework-resolution boundary. Every potentially-interactive decision is framework-mediated:
60
+ Architect Q4 + JTBD review confirmed: capture-adr is a **mechanical-stage skill** per the decision-delegation rule's framework-resolution boundary. Every potentially-interactive decision is framework-mediated:
61
61
 
62
62
  - **Considered Options**: silent derivation of chosen + actually-rejected alternatives (≥2 real options at capture).
63
63
  - **Decision Drivers / Consequences / Confirmation**: silent derivation of real content from the decision context.
@@ -65,7 +65,7 @@ Architect Q4 + JTBD review confirmed: capture-adr is a **mechanical-stage skill*
65
65
  - **Decision-makers / consulted / informed**: derived from git `user.name` + context — never a sentinel.
66
66
  - **Multi-decision split**: out of scope. The user invoking capture-adr with a multi-decision payload gets one ADR with the full payload; they re-route to `/wr-architect:create-adr` for the structured Step 2b decision-boundary split.
67
67
 
68
- This mirrors the mechanical-stage carve-out pattern documented in CLAUDE.md (P132 / inverse-P078 trap): when a SKILL contract names a stage as mechanical, do not ask. Per-action consent gates re-ask decisions the user already made and silently undo the load-bearing UX investment.
68
+ This mirrors the mechanical-stage carve-out pattern documented in CLAUDE.md (the mechanical-stage over-asking failure / inverse missed strong-correction capture failure trap): when a SKILL contract names a stage as mechanical, do not ask. Per-action consent gates re-ask decisions the user already made and silently undo the load-bearing UX investment.
69
69
 
70
70
  ## Edge cases
71
71
 
@@ -77,7 +77,7 @@ AFK orchestrators MUST NOT invoke capture-adr with empty arguments — caller-si
77
77
 
78
78
  ### Partial `$ARGUMENTS` (Title only / Title + Decision)
79
79
 
80
- If only Title is supplied, derive Context + Decision from the invoking session's decision context. If Title + Decision (no Context), derive Context. Derivation is real prose from the context at hand — never a placeholder (RFC-045).
80
+ If only Title is supplied, derive Context + Decision from the invoking session's decision context. If Title + Decision (no Context), derive Context. Derivation is real prose from the context at hand — never a placeholder (the full-substance capture implementation design).
81
81
 
82
82
  This is a graceful-degradation case — real captures carry Title + Context + Decision — but the partial-payload path prevents a halt when only some of the payload is spelled out.
83
83
 
@@ -89,13 +89,13 @@ If two captures land on the same kebab-slug (different IDs but identical title f
89
89
 
90
90
  The next-ID formula uses `git ls-tree origin/main` to read the remote-tracking ref without requiring a fetch. If a parallel session minted the same ID for a different decision and pushed it before this session captures, the local read sees the higher origin ID and increments past it.
91
91
 
92
- If the local session has not fetched recently and origin has captures the local doesn't see, the formula may still collide. The renumber audit log line in Step 6 captures the resolution. P040 incident applies.
92
+ If the local session has not fetched recently and origin has captures the local doesn't see, the formula may still collide. The renumber audit log line in Step 6 captures the resolution. the stale-origin preflight failure incident applies.
93
93
 
94
- `--name-only` is required (P056): without it, default `git ls-tree` output carries the 40-char blob SHA which can contain three-digit runs that the digit-extraction regex false-matches. Same fix as create-adr Step 3 / manage-problem Step 3.
94
+ `--name-only` is required (the next-ID origin lookup failure): without it, default `git ls-tree` output carries the 40-char blob SHA which can contain three-digit runs that the digit-extraction regex false-matches. Same fix as create-adr Step 3 / manage-problem Step 3.
95
95
 
96
96
  ### Captured ADR never ratified
97
97
 
98
- If the user captures and never ratifies, the `.proposed.md` ADR remains `human-oversight: unconfirmed` — and the SessionStart oversight nudge re-surfaces it every session until the `/wr-architect:review-decisions` drain handles it. Unlike the pre-RFC-045 never-expanded failure mode, this state cannot rot silently: the nudge is self-firing, and the sections already carry real (if unratified) substance.
98
+ If the user captures and never ratifies, the `.proposed.md` ADR remains `human-oversight: unconfirmed` — and the SessionStart oversight nudge re-surfaces it every session until the `/wr-architect:review-decisions` drain handles it. Unlike the pre-the full-substance capture implementation design never-expanded failure mode, this state cannot rot silently: the nudge is self-firing, and the sections already carry real (if unratified) substance.
99
99
 
100
100
  ### Architect-review verdict capture
101
101
 
@@ -110,13 +110,13 @@ This pattern preserves architect-review verdicts as first-class ADR-shaped recor
110
110
 
111
111
  ### Cross-namespace consistency with capture-problem
112
112
 
113
- The `capture-` verb is consistent across `/wr-itil:capture-problem` and `/wr-architect:capture-adr`. Same dispatch shape, same derive-real-values-at-capture discipline (ADR-067 for capture-problem ratings; RFC-045 for capture-adr sections), same single-commit-per-capture grain, same trailing-pointer signal. Users learn one mental model that spans both. ADR-032 amendment names this symmetry.
113
+ The `capture-` verb is consistent across `/wr-itil:capture-problem` and `/wr-architect:capture-adr`. Same dispatch shape, same derive-real-values-at-capture discipline (the evidence-based effort estimation rule for capture-problem ratings; the full-substance capture implementation design for capture-adr sections), same single-commit-per-capture grain, same trailing-pointer signal. Users learn one mental model that spans both. the governance-skill invocation rule amendment names this symmetry.
114
114
 
115
115
  ## Composition with the rest of the suite
116
116
 
117
117
  ### `/wr-architect:create-adr`
118
118
 
119
- Heavyweight intake counterpart. The two skills share the `docs/decisions/*.proposed.md` directory and the next-ID formula. Cross-skill ordering: capture-adr writes a fully-derived ADR at `<NNN>`; `/wr-architect:create-adr <NNN>` (or `/wr-architect:review-decisions`) is the human-ratification/acceptance surface, not an expansion surface — there are no deferred sections to expand post-RFC-045.
119
+ Heavyweight intake counterpart. The two skills share the `docs/decisions/*.proposed.md` directory and the next-ID formula. Cross-skill ordering: capture-adr writes a fully-derived ADR at `<NNN>`; `/wr-architect:create-adr <NNN>` (or `/wr-architect:review-decisions`) is the human-ratification/acceptance surface, not an expansion surface — there are no deferred sections to expand post-the full-substance capture implementation design.
120
120
 
121
121
  ### `wr-architect:agent`
122
122
 
@@ -128,7 +128,7 @@ Compose with capture-adr when an iter surfaces both a problem AND a related deci
128
128
 
129
129
  ### `/wr-itil:work-problems` (AFK orchestrator)
130
130
 
131
- Iter subprocesses can invoke capture-adr to capture mid-iter design decisions without breaking iter cadence. The AFK carve-out in ADR-032 (line 85) excludes the **background-capture** variant from AFK contexts; the **foreground-lightweight-capture** variant introduced by P156 is fine inside iter subprocesses because it has no `Agent(run_in_background: true)` invocation — it is a normal foreground-synchronous skill that happens to do less work than create-adr.
131
+ Iter subprocesses can invoke capture-adr to capture mid-iter design decisions without breaking iter cadence. The AFK carve-out in the governance-skill invocation rule excludes the **background-capture** variant from AFK contexts; the **foreground-lightweight-capture** variant introduced by the lightweight ADR-capture requirement is fine inside iter subprocesses because it has no `Agent(run_in_background: true)` invocation — it is a normal foreground-synchronous skill that happens to do less work than create-adr.
132
132
 
133
133
  ### `/wr-architect:capture-adr` callers
134
134
 
@@ -136,24 +136,24 @@ The intended invocation surface is `/wr-architect:capture-adr <Title>\n<Context>
136
136
 
137
137
  ## Related ADRs
138
138
 
139
- - **ADR-009** — gate-marker-lifecycle (capture-adr does not write `/tmp` markers; ADR-009 referenced for pattern lineage only).
140
- - **ADR-013** — structured user interaction (Rule 6 fail-safe; capture-adr has no AskUserQuestion branches so Rule 6 is trivially satisfied).
141
- - **ADR-014** — governance skills commit their own work (capture-adr owns its commit).
142
- - **ADR-019** — AFK orchestrator preflight (next-ID formula uses origin-tracking ref per ADR-019 confirmation criterion 2).
143
- - **ADR-032** — governance skill invocation patterns (this skill's parent ADR; foreground-lightweight-capture variant amendment 2026-05-03; derived-substance amendment 2026-07-06 per RFC-045).
144
- - **ADR-038** — progressive disclosure (SKILL.md + REFERENCE.md split shape).
145
- - **ADR-044** — decision-delegation contract (framework-mediated mechanical-stage carve-outs).
146
- - **ADR-049** — bin/ on PATH (capture-adr is self-contained; no new shim required, same as create-adr).
147
- - **ADR-052** — behavioural-tests-default for skill testing (capture-adr's bats fixtures exercise primitives, not SKILL.md prose).
148
- - **ADR-056** (`docs/decisions/056-...md` if present) — example of an inline-shipped substantive ADR that capture-adr could have skeleton-captured first.
139
+ - **the session-scoped marker lifecycle rule** — gate-marker-lifecycle (capture-adr does not write `/tmp` markers; the session-scoped marker lifecycle rule referenced for pattern lineage only).
140
+ - **the structured governance interaction rule** — structured user interaction (Rule 6 fail-safe; capture-adr has no AskUserQuestion branches so Rule 6 is trivially satisfied).
141
+ - **the governance skills commit completed work rule** — governance skills commit their own work (capture-adr owns its commit).
142
+ - **the clean-checkout AFK preflight rule** — AFK orchestrator preflight (next-ID formula uses origin-tracking ref per the clean-checkout AFK preflight rule confirmation criterion 2).
143
+ - **the governance-skill invocation rule** — governance skill invocation patterns (this skill's parent ADR; foreground-lightweight-capture variant amendment 2026-05-03; derived-substance amendment 2026-07-06 per the full-substance capture implementation design).
144
+ - **the progressive governance disclosure budget** — progressive disclosure (SKILL.md + REFERENCE.md split shape).
145
+ - **the decision-delegation rule** — decision-delegation contract (framework-mediated mechanical-stage carve-outs).
146
+ - **the installed script resolution rule** — bin/ on PATH (capture-adr is self-contained; no new shim required, same as create-adr).
147
+ - **the behavioural skill-testing rule** — behavioural-tests-default for skill testing (capture-adr's bats fixtures exercise primitives, not SKILL.md prose).
148
+ - **the risk-register back-channel write contract** (`docs/decisions/056-...md` if present) — example of an inline-shipped substantive ADR that capture-adr could have skeleton-captured first.
149
149
 
150
150
  ## Related problems
151
151
 
152
- - **P014** — parent / master tracker (ADR-032 children).
153
- - **P088** — settled the user-direction-scoped decision: capture-problem + capture-adr are shippable; capture-retro is deferred.
154
- - **P155** — sibling capture-problem skill (just shipped 2026-05-03).
155
- - **P156** — driver ticket.
156
- - **P157** — sibling pending-questions-surface hook.
157
- - **P056** — ticket-creator next-ID lookup blob-SHA false-match (capture-adr's next-ID formula uses the `--name-only` fix).
158
- - **P040** — origin-collision incident referenced in Edge cases.
159
- - **P375** — named re-entry point is not a self-firing cadence; drove the RFC-045 derived-substance amendment.
152
+ - **the missing lightweight governance-capture problem** — parent / master tracker (the governance-skill invocation rule children).
153
+ - **the context-blind retrospective failure** — settled the user-direction-scoped decision: capture-problem + capture-adr are shippable; capture-retro is deferred.
154
+ - **the lightweight problem-capture requirement** — sibling capture-problem skill (just shipped 2026-05-03).
155
+ - **the lightweight ADR-capture requirement** — driver ticket.
156
+ - **the pending-question startup surface requirement** — sibling pending-questions-surface hook.
157
+ - **the next-ID origin lookup failure** — ticket-creator next-ID lookup blob-SHA false-match (capture-adr's next-ID formula uses the `--name-only` fix).
158
+ - **the stale-origin preflight failure** — origin-collision incident referenced in Edge cases.
159
+ - **the self-firing cadence requirement** — named re-entry point is not a self-firing cadence; drove the full-substance capture implementation design derived-substance amendment.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: wr-architect:capture-adr
3
- description: Lightweight ADR-capture skill for aside-invocation during foreground work — derives full MADR substance (Considered Options / Decision Drivers / Consequences / Confirmation / Reassessment) silently from the in-session decision context, single commit, no inline architect-review handoff, no request_user_input. Lightweight means zero-interaction + single-commit, not skimpy content (RFC-045). Use this when the user (or agent mid-iter) wants to record a decision quickly without the ~10-15 turn ceremony of /wr-architect:create-adr. For interactive full-intake new ADR creation where the user authors the options + drivers + consequences + confirmation, use /wr-architect:create-adr.
3
+ description: Lightweight ADR-capture skill for aside-invocation during foreground work — derives full MADR substance (Considered Options / Decision Drivers / Consequences / Confirmation / Reassessment) silently from the in-session decision context, single commit, no inline architect-review handoff, no request_user_input. Lightweight means zero-interaction + single-commit, not skimpy content (the full-substance capture implementation design). Use this when the user (or agent mid-iter) wants to record a decision quickly without the ~10-15 turn ceremony of /wr-architect:create-adr. For interactive full-intake new ADR creation where the user authors the options + drivers + consequences + confirmation, use /wr-architect:create-adr.
4
4
  allowed-tools: Read, Write, Edit, Bash, Grep, Glob
5
5
  ---
6
6
 
@@ -17,9 +17,9 @@ allowed-tools: Read, Write, Edit, Bash, Grep, Glob
17
17
 
18
18
  # Capture ADR Skill
19
19
 
20
- Capture an Architecture Decision Record quickly during foreground work. Lightweight aside-invocation surface that complements the heavyweight `/wr-architect:create-adr` flow. See `REFERENCE.md` in this directory for rationale, edge cases, contract trade-offs, and the ADR-032 foreground-lightweight-capture amendment.
20
+ Capture an Architecture Decision Record quickly during foreground work. Lightweight aside-invocation surface that complements the heavyweight `/wr-architect:create-adr` flow. See `REFERENCE.md` in this directory for rationale, edge cases, contract trade-offs, and the governance-skill invocation rule foreground-lightweight-capture amendment.
21
21
 
22
- This skill is the foreground-lightweight-capture variant of `/wr-architect:create-adr`'s new-ADR path per ADR-032 (P156 amendment, 2026-05-03). The deferred background-capture variant named in ADR-032's original taxonomy remains deferred per P088 settlement.
22
+ This skill is the foreground-lightweight-capture variant of `/wr-architect:create-adr`'s new-ADR path per the governance-skill invocation rule. The deferred background-capture variant named in the governance-skill invocation rule's original taxonomy remains deferred per the context-blind retrospective failure settlement.
23
23
 
24
24
  ## When to invoke
25
25
 
@@ -32,13 +32,13 @@ This skill is the foreground-lightweight-capture variant of `/wr-architect:creat
32
32
  - The decision is contested or under-specified in-session — silent derivation needs a real decision context to derive FROM; if the options were never actually weighed, create-adr's interactive intake is the honest surface.
33
33
  - The decision needs immediate architect review + acceptance (capture-adr writes `.proposed.md`; acceptance review is a follow-up via `/wr-architect:create-adr` or direct architect-agent review).
34
34
 
35
- ## Rule 6 audit (per ADR-032 + ADR-013)
35
+ ## Rule 6 audit (per the governance-skill invocation rule + the structured governance interaction rule)
36
36
 
37
- This skill has **zero request_user_input branches** by design. Each potentially-interactive decision is framework-mediated per ADR-044:
37
+ This skill has **zero request_user_input branches** by design. Each potentially-interactive decision is framework-mediated per the decision-delegation rule:
38
38
 
39
39
  | Decision | Resolution |
40
40
  |----------|-----------|
41
- | Considered Options ≥2 | Silent derivation (ADR-044 category-4): write the chosen option PLUS every alternative that was actually weighed and rejected in the decision context (`$ARGUMENTS` + the invoking session). Real options with one-line summaries — never a placeholder sibling. If the context genuinely weighed only one option, derive the strongest do-nothing / status-quo alternative and say why it lost. |
41
+ | Considered Options ≥2 | Silent derivation (the decision-delegation rule category-4): write the chosen option PLUS every alternative that was actually weighed and rejected in the decision context (`$ARGUMENTS` + the invoking session). Real options with one-line summaries — never a placeholder sibling. If the context genuinely weighed only one option, derive the strongest do-nothing / status-quo alternative and say why it lost. |
42
42
  | Decision drivers | Silent derivation: extract the forces that actually drove the decision from the context (the problem's symptoms, the constraint that ruled options out, the user's stated priorities). |
43
43
  | Consequences | Silent derivation: real Good/Neutral/Bad trade-off analysis of the chosen option. The invoking agent performs the analysis at capture — it has more decision context in-session than any later expansion pass would. |
44
44
  | Confirmation criteria | Silent derivation: testable criteria (a command, an observable behaviour, a hook that fires) confirming the decision is implemented and holding. |
@@ -46,9 +46,9 @@ This skill has **zero request_user_input branches** by design. Each potentially-
46
46
  | Decision-makers / consulted / informed | Silent derivation: `decision-makers: [<git config user.name>]` plus any decision-owner named in `$ARGUMENTS`; `consulted`/`informed` from context or `[]`. Never a sentinel string. |
47
47
  | Empty `$ARGUMENTS` | Halt-with-stderr-directive: print "capture-adr requires Title + 1-line Context + 1-line Decision in $ARGUMENTS — invoke /wr-architect:create-adr instead for the full intake flow" and exit. AFK orchestrators MUST NOT invoke capture-adr with empty arguments — caller-side contract. |
48
48
 
49
- **No placeholder, pointer, or sentinel strings of any kind** (RFC-045 / P375, derived-substance amendment to ADR-032 2026-07-06). The previous deferred-placeholder pattern (`(deferred to /wr-architect:create-adr canonical review)`) named a re-entry point nothing self-firing ever triggered — the sections rotted. Same correction class as ADR-067's silent derivation of capture-problem ratings: derive a real value, always. The derived substance is provisional — that is what `human-oversight: unconfirmed` states honestly, and the SessionStart oversight nudge → `/wr-architect:review-decisions` drain is the self-firing surface where a human ratifies or amends it (ADR-066).
49
+ **No placeholder, pointer, or sentinel strings of any kind** (the full-substance capture implementation design / the self-firing cadence requirement, derived-substance amendment to the governance-skill invocation rule 2026-07-06). The previous deferred-placeholder pattern (`(deferred to /wr-architect:create-adr canonical review)`) named a re-entry point nothing self-firing ever triggered — the sections rotted. Same correction class as the evidence-based effort estimation rule's silent derivation of capture-problem ratings: derive a real value, always. The derived substance is provisional — that is what `human-oversight: unconfirmed` states honestly, and the SessionStart oversight nudge → `/wr-architect:review-decisions` drain is the self-firing surface where a human ratifies or amends it (the architecture human-oversight rule).
50
50
 
51
- Per ADR-013 Rule 6 fail-safe: every branch above resolves without user input, so AFK and interactive contexts behave identically.
51
+ Per the structured governance interaction rule Rule 6 fail-safe: every branch above resolves without user input, so AFK and interactive contexts behave identically.
52
52
 
53
53
  ## Steps
54
54
 
@@ -62,9 +62,9 @@ Empty `$ARGUMENTS` halts per the Rule 6 audit above.
62
62
 
63
63
  Derive a kebab-case title slug from the first 8-10 non-stopword tokens of the Title (matching the existing `create-adr` slug derivation pattern).
64
64
 
65
- #### Title-as-outcome convention (P354)
65
+ #### Title-as-outcome convention (the outcome-shaped ADR title requirement)
66
66
 
67
- ADR titles must name the **decision outcome** as a short noun phrase, not the question being decided. The title is the skim-surface for `docs/decisions/` and the ADR-077 compendium — readers should resolve what was decided from the title alone, without opening the file. User direction 2026-06-03 (P354): *"ADR titles are supposed to be the short version of what was decided, so they are skimmable."*
67
+ ADR titles must name the **decision outcome** as a short noun phrase, not the question being decided. The title is the skim-surface for `docs/decisions/` and the decisions-compendium load rule compendium — readers should resolve what was decided from the title alone, without opening the file. User direction 2026-06-03 (the outcome-shaped ADR title requirement): *"ADR titles are supposed to be the short version of what was decided, so they are skimmable."*
68
68
 
69
69
  **GOOD** (outcome — short noun phrase; drawn from corpus): `marketplace-only-distribution`, `monorepo-per-plugin-packages`, `behavioural-tests-default-for-skill-testing`, `plugin-script-resolution-via-bin-on-path`, `every-fix-goes-through-an-rfc`.
70
70
 
@@ -78,11 +78,11 @@ capture-adr: derived title='<slug>' from $ARGUMENTS — slug appears question-sh
78
78
 
79
79
  The advisory is **advisory-only** (no halt, no retitle). The caller may proceed with the question-shaped slug if they choose; a subsequent `/wr-architect:create-adr <NNN>` acceptance pass picks up the retitle in its Step 5a mechanical retitle-after-decision check.
80
80
 
81
- (Serves JTBD-001 — skimmable titles on the on-disk record; ADR-044 category-4 silent-framework — advisory, not ask.)
81
+ (Serves the automated governance user outcome — skimmable titles on the on-disk record; the decision-delegation rule category-4 silent-framework — advisory, not ask.)
82
82
 
83
83
  ### 2. Compute the next ADR ID
84
84
 
85
- Same P056-safe `local_max + origin_max + 1` formula as `/wr-architect:create-adr` Step 3:
85
+ Same the next-ID origin lookup failure-safe `local_max + origin_max + 1` formula as `/wr-architect:create-adr` Step 3:
86
86
 
87
87
  ```bash
88
88
  local_max=$(ls docs/decisions/*.md 2>/dev/null | sed 's/.*\///' | grep -oE '^[0-9]+' | sort -n | tail -1)
@@ -90,7 +90,7 @@ origin_max=$(git ls-tree --name-only origin/main docs/decisions/ 2>/dev/null | s
90
90
  next=$(printf '%03d' $(( 10#$(echo -e "${local_max:-0}\n${origin_max:-0}" | sort -n | tail -1) + 1 )))
91
91
  ```
92
92
 
93
- `--name-only` is required (P056): without it, each `git ls-tree` line includes the 40-char blob SHA which can contain three-digit runs that the digit-extraction regex false-matches.
93
+ `--name-only` is required (the next-ID origin lookup failure): without it, each `git ls-tree` line includes the 40-char blob SHA which can contain three-digit runs that the digit-extraction regex false-matches.
94
94
 
95
95
  Log the renumber decision in the operation report if origin and local diverged.
96
96
 
@@ -98,7 +98,7 @@ Log the renumber decision in the operation report if origin and local diverged.
98
98
 
99
99
  **File path**: `docs/decisions/<NNN>-<kebab-title>.proposed.md`
100
100
 
101
- **Template** (derived-substance pattern per RFC-045 — every section carries real content derived from `$ARGUMENTS` + the invoking session's decision context; no placeholder, pointer, or sentinel strings of any kind):
101
+ **Template** (derived-substance pattern per the full-substance capture implementation design — every section carries real content derived from `$ARGUMENTS` + the invoking session's decision context; no placeholder, pointer, or sentinel strings of any kind):
102
102
 
103
103
  ```markdown
104
104
  ---
@@ -113,7 +113,7 @@ reassessment-date: <YYYY-MM-DD + 3 months>
113
113
 
114
114
  # <Title>
115
115
 
116
- > Captured via /wr-architect:capture-adr (foreground-lightweight aside-invocation per ADR-032, derived-substance amendment 2026-07-06 / RFC-045). Section content was derived by the capturing agent from the in-session decision context; human-oversight: unconfirmed until ratified at the /wr-architect:review-decisions drain.
116
+ > Captured via /wr-architect:capture-adr (foreground-lightweight aside-invocation per the governance-skill invocation rule, derived-substance amendment 2026-07-06 / the full-substance capture implementation design). Section content was derived by the capturing agent from the in-session decision context; human-oversight: unconfirmed until ratified at the /wr-architect:review-decisions drain.
117
117
 
118
118
  ## Context and Problem Statement
119
119
 
@@ -174,7 +174,7 @@ Content-quality bar: each section must be true to the decision context at hand,
174
174
 
175
175
  Single `Write` to `docs/decisions/<NNN>-<kebab-title>.proposed.md`.
176
176
 
177
- ### 4.5. Refresh the decisions compendium (ADR-077)
177
+ ### 4.5. Refresh the decisions compendium (the decisions-compendium load rule)
178
178
 
179
179
  After the ADR lands, regenerate `docs/decisions/README.md` so the architect-agent routine load surface includes the new entry:
180
180
 
@@ -182,17 +182,17 @@ After the ADR lands, regenerate `docs/decisions/README.md` so the architect-agen
182
182
  bash "<architect-plugin-root>/scripts/generate-decisions-compendium.sh"
183
183
  ```
184
184
 
185
- The compendium is the architect agent's primary load surface per ADR-077; capture-adr owns keeping it fresh (skills + agent are PRIMARY; the `architect-compendium-refresh-discipline.sh` hook is the safety-net backstop). The next step stages both files together.
185
+ The compendium is the architect agent's primary load surface per the decisions-compendium load rule; capture-adr owns keeping it fresh (skills + agent are PRIMARY; the `architect-compendium-refresh-discipline.sh` hook is the safety-net backstop). The next step stages both files together.
186
186
 
187
- ### 5. Commit per ADR-014 — single commit, no architect-review handoff
187
+ ### 5. Commit per the governance skills commit completed work rule — single commit, no architect-review handoff
188
188
 
189
- **Stage list**: the new ADR file AND the refreshed compendium (ADR-077 — both move in the same commit so the architect-compendium-refresh-discipline hook passes).
189
+ **Stage list**: the new ADR file AND the refreshed compendium (the decisions-compendium load rule — both move in the same commit so the architect-compendium-refresh-discipline hook passes).
190
190
 
191
191
  ```bash
192
192
  git add docs/decisions/<NNN>-<kebab-title>.proposed.md docs/decisions/README.md
193
193
  ```
194
194
 
195
- Satisfy the commit gate per ADR-014 — same two-path pattern as `manage-problem` Step 11 / `capture-problem` Step 6:
195
+ Satisfy the commit gate per the governance skills commit completed work rule — same two-path pattern as `manage-problem` Step 11 / `capture-problem` Step 6:
196
196
 
197
197
  - **Primary**: delegate to subagent type `wr-risk-scorer:pipeline` via the Agent tool.
198
198
  - **Fallback**: invoke `/wr-risk-scorer:assess-release` via the Skill tool when the subagent type is unavailable in the current tool surface.
@@ -203,7 +203,7 @@ Commit message:
203
203
  docs(decisions): capture ADR-<NNN> <title>
204
204
  ```
205
205
 
206
- The `capture` verb is the audit signal that this ADR landed via the lightweight aside path (vs. `add` / `accept` for canonical create-adr's full intake). The status remains `proposed` until acceptance review (with human substance-ratification per ADR-064) promotes it.
206
+ The `capture` verb is the audit signal that this ADR landed via the lightweight aside path (vs. `add` / `accept` for canonical create-adr's full intake). The status remains `proposed` until acceptance review (with human substance-ratification per the Needs-Direction handoff rule) promotes it.
207
207
 
208
208
  ### 6. Report
209
209
 
@@ -213,11 +213,11 @@ After the commit, report:
213
213
  - Trailing pointer: `ADR-<NNN> was captured with derived substance and is human-oversight: unconfirmed — the SessionStart oversight nudge will surface it for ratification at /wr-architect:review-decisions (or ratify now if interactive).`
214
214
  - Note any renumber-from-origin-collision log line from Step 2.
215
215
 
216
- The trailing pointer is **not optional** — it is the user-visible signal that the derived substance awaits human ratification. Unlike the pre-RFC-045 contract there is no expansion step: the sections are already real; the drain confirms or amends them.
216
+ The trailing pointer is **not optional** — it is the user-visible signal that the derived substance awaits human ratification. Unlike the pre-the full-substance capture implementation design contract there is no expansion step: the sections are already real; the drain confirms or amends them.
217
217
 
218
- **Confirm-every-ADR gate (ADR-064):** a capture-adr ADR is recorded `proposed` with derived substance but WITHOUT human review of that substance. It must NOT be promoted to `accepted` until a human has ratified the derived content via `/wr-architect:review-decisions` (or a `/wr-architect:create-adr` review-and-confirm pass). Capture records the decision quickly; the ratification — not the capture — is what gives it human oversight. This is prong 1 of P283 (lift auto-/quick-recorded decisions to human-confirmed before they stand).
218
+ **Confirm-every-ADR gate (the Needs-Direction handoff rule):** a capture-adr ADR is recorded `proposed` with derived substance but WITHOUT human review of that substance. It must NOT be promoted to `accepted` until a human has ratified the derived content via `/wr-architect:review-decisions` (or a `/wr-architect:create-adr` review-and-confirm pass). Capture records the decision quickly; the ratification — not the capture — is what gives it human oversight. This is prong 1 of the unpinned architecture direction requirement.
219
219
 
220
- **Oversight marker discipline (ADR-110 / P348).** A capture-adr ADR MUST be born `human-oversight: unconfirmed` — NOT `confirmed`. Capture is the AFK-friendly aside surface; there is no substance-confirm `request_user_input` pass in this flow, so `confirmed` would be a hollow marker (the P348 bug class). The `architect-oversight-marker-discipline.sh` PreToolUse hook will DENY any Edit/Write that introduces `human-oversight: confirmed` without a matching session-scoped evidence marker. The frontmatter (Step 3 above) MUST include `human-oversight: unconfirmed` so the ADR enters the world honestly self-identified as needing user confirmation. The drain (`/wr-architect:review-decisions`) and a `/wr-architect:create-adr <NNN>` review pass are the surfaces that legitimately promote it to `confirmed` via `bash "<architect-plugin-root>/scripts/mark-oversight-confirmed.sh"` + the gated marker write.
220
+ **Oversight marker discipline (the genuine ratification marker rule / the false human-oversight marker failure).** A capture-adr ADR MUST be born `human-oversight: unconfirmed` — NOT `confirmed`. Capture is the AFK-friendly aside surface; there is no substance-confirm `request_user_input` pass in this flow, so `confirmed` would be a hollow marker (the false human-oversight marker failure bug class). The `architect-oversight-marker-discipline.sh` PreToolUse hook will DENY any Edit/Write that introduces `human-oversight: confirmed` without a matching session-scoped evidence marker. The frontmatter (Step 3 above) MUST include `human-oversight: unconfirmed` so the ADR enters the world honestly self-identified as needing user confirmation. The drain (`/wr-architect:review-decisions`) and a `/wr-architect:create-adr <NNN>` review pass are the surfaces that legitimately promote it to `confirmed` via `bash "<architect-plugin-root>/scripts/mark-oversight-confirmed.sh"` + the gated marker write.
221
221
 
222
222
  ## Composition with create-adr
223
223
 
@@ -235,19 +235,19 @@ The trailing pointer is **not optional** — it is the user-visible signal that
235
235
  | Commit grain | One commit per intake | One commit per capture |
236
236
  | Use case | Full-intake new ADR; user wants to author the flow interactively | Aside-invocation; capture-and-continue |
237
237
 
238
- The two skills share the `docs/decisions/*.proposed.md` directory and the next-ID formula. Category-1 reconciliation (per the ADR-032 derived-substance amendment): create-adr's Step 2 dispatch table classifies Drivers/Options/Consequences/Confirmation as category-1 "only the user knows" — that governs the interactive intake surface. On the capture surface the same fields are derived-provisional substance under `human-oversight: unconfirmed`, ratified at the ADR-066 drain (the ADR-067 lift-auto-decisions-to-human pattern). Capture derives-then-ratifies; create-adr asks-then-records.
238
+ The two skills share the `docs/decisions/*.proposed.md` directory and the next-ID formula. Category-1 reconciliation (per the governance-skill invocation rule derived-substance amendment): create-adr's Step 2 dispatch table classifies Drivers/Options/Consequences/Confirmation as category-1 "only the user knows" — that governs the interactive intake surface. On the capture surface the same fields are derived-provisional substance under `human-oversight: unconfirmed`, ratified at the architecture human-oversight rule drain (the evidence-based effort estimation rule lift-auto-decisions-to-human pattern). Capture derives-then-ratifies; create-adr asks-then-records.
239
239
 
240
240
  ## Related
241
241
 
242
- - **P156** (`docs/problems/156-ship-capture-adr-skill.open.md`) — driver ticket.
243
- - **P014** (`docs/problems/014-aside-invocation-for-governance-skills.open.md`) — parent / master tracker.
244
- - **P155** (`docs/problems/155-ship-capture-problem-skill.verifying.md`) — sibling capture-problem skill.
245
- - **P157** — sibling pending-questions-surface hook.
246
- - **ADR-032** (`docs/decisions/032-governance-skill-invocation-patterns.proposed.md`) — foreground-lightweight-capture variant amendment (P156 amendment, 2026-05-03).
247
- - **ADR-038** — progressive-disclosure pattern (SKILL.md + REFERENCE.md split).
248
- - **ADR-044** — decision-delegation contract (framework-mediated mechanical-stage carve-outs).
249
- - **ADR-049** — bin/ on PATH (capture-adr is self-contained; no shim required, same as create-adr).
250
- - **ADR-052** — behavioural-tests-default for skill testing.
242
+ - **the lightweight ADR-capture requirement** (`docs/problems/156-ship-capture-adr-skill.open.md`) — driver ticket.
243
+ - **the missing lightweight governance-capture problem** (`docs/problems/014-aside-invocation-for-governance-skills.open.md`) — parent / master tracker.
244
+ - **the lightweight problem-capture requirement** (`docs/problems/155-ship-capture-problem-skill.verifying.md`) — sibling capture-problem skill.
245
+ - **the pending-question startup surface requirement** — sibling pending-questions-surface hook.
246
+ - **the governance-skill invocation rule** (`docs/decisions/032-governance-skill-invocation-patterns.proposed.md`) — foreground-lightweight-capture variant amendment (the lightweight ADR-capture requirement amendment, 2026-05-03).
247
+ - **the progressive governance disclosure budget** — progressive-disclosure pattern (SKILL.md + REFERENCE.md split).
248
+ - **the decision-delegation rule** — decision-delegation contract (framework-mediated mechanical-stage carve-outs).
249
+ - **the installed script resolution rule** — bin/ on PATH (capture-adr is self-contained; no shim required, same as create-adr).
250
+ - **the behavioural skill-testing rule** — behavioural-tests-default for skill testing.
251
251
  - `<architect-plugin-root>/skills/create-adr/SKILL.md` — heavyweight intake counterpart.
252
252
  - `<architect-plugin-root>/agents/agent.md` — wr-architect:agent review surface; reviews `.proposed.md` ADRs at acceptance delegation.
253
253