@windyroad/architect 0.15.2 → 0.15.3-preview.583

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.
@@ -123,5 +123,5 @@
123
123
  }
124
124
  },
125
125
  "name": "wr-architect",
126
- "version": "0.15.2"
126
+ "version": "0.15.3"
127
127
  }
@@ -105,6 +105,13 @@ case "$FILE_PATH" in
105
105
  exit 0 ;;
106
106
  */docs/stories/*|docs/stories/*)
107
107
  exit 0 ;;
108
+ # Retros — ask-hygiene + run-retro narrative trail written routinely by
109
+ # `/wr-retrospective:run-retro` (Step 2d + Step 5). Not architecture
110
+ # content; the gate firing on every retro append forces a subagent
111
+ # round-trip before a non-load-bearing narrative artefact can land.
112
+ # Mirrors docs/problems and docs/jtbd peer-plugin-policy exemptions. P203.
113
+ */docs/retros/*|docs/retros/*)
114
+ exit 0 ;;
108
115
  esac
109
116
 
110
117
  # Check gate
@@ -96,3 +96,22 @@ assert_path_allowed() {
96
96
  @test "architect: exempts docs/stories/README.md (P170 / ADR-060)" {
97
97
  assert_path_allowed "$PWD/docs/stories/README.md"
98
98
  }
99
+
100
+ # --- Retros exemption (P203) ---
101
+ # `docs/retros/*` is the ask-hygiene + run-retro narrative trail written
102
+ # routinely by `/wr-retrospective:run-retro` Step 2d + Step 5. Routine
103
+ # appends should not fire the architect gate — they are not load-bearing
104
+ # architecture content. Mirrors the docs/problems and docs/jtbd peer-
105
+ # plugin-policy exemptions.
106
+
107
+ @test "architect: exempts docs/retros/ ask-hygiene file (P203)" {
108
+ assert_path_allowed "$PWD/docs/retros/2026-06-06-some-iter-ask-hygiene.md"
109
+ }
110
+
111
+ @test "architect: exempts docs/retros/ analyze-context file (P203)" {
112
+ assert_path_allowed "$PWD/docs/retros/2026-06-06-context-analysis.md"
113
+ }
114
+
115
+ @test "architect: exempts docs/retros/ retro narrative file (P203)" {
116
+ assert_path_allowed "$PWD/docs/retros/2026-06-06-session-wrap.md"
117
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@windyroad/architect",
3
- "version": "0.15.2",
3
+ "version": "0.15.3-preview.583",
4
4
  "description": "Architecture decision enforcement for AI coding agents",
5
5
  "bin": {
6
6
  "windyroad-architect": "./bin/install.mjs"
@@ -85,6 +85,8 @@ Before writing the ADR file, perform a decision-boundary analysis on the gathere
85
85
 
86
86
  **Non-interactive fallback**: When `AskUserQuestion` is unavailable (e.g., non-interactive/AFK mode), automatically split into separate ADRs with consecutive IDs and note the auto-split in output. Do not block creation.
87
87
 
88
+ **ADR-013 Rule 6 carve-out audit (P352, 2026-06-06 amendment)**: the universal AFK default is **queue-and-continue**; this site is a documented **AUTO-DEFAULT** carve-out. Authorising principle: policy-authorised safe default per ADR-044 category 4 (silent framework). Splitting is fully reversible (manual combine via supersession), the framework's WSJF / lifecycle model rewards explicit per-decision ranking, and "split when in doubt" is the persona-correct safe heuristic for JTBD-006 (the loop progresses; over-splits are cheap to combine; halt would cost more loop throughput than the over-split risk). Note: the Step 5 substance-confirm HALT below is a separate carve-out authorised by ADR-074 — substance-confirm cannot AUTO-DEFAULT because the dependent work (Decision Outcome / Consequences / Confirmation / Pros and Cons drafting) is built ON the chosen option.
89
+
88
90
  **Split implementation**: When splitting, assign consecutive IDs. Cross-reference each ADR in the other's Related section or as a linked decision in the consequences.
89
91
 
90
92
  **Scope**: Scoped to new ADR creation only (steps 2–5). Does not apply to supersession handling (step 6), where the scope of the new decision is already known and bounded.
@@ -238,6 +240,8 @@ oversight-date: YYYY-MM-DD # today
238
240
 
239
241
  The `wr-architect-mark-oversight-confirmed` call writes the session-scoped evidence marker (`/tmp/oversight-confirmed-<sha>-<sid>`) that the `architect-oversight-marker-discipline.sh` PreToolUse hook reads to authorise the subsequent Edit/Write — without the helper call, the hook will DENY the marker write. AFK iter subprocesses spawned via `claude -p` have no `AskUserQuestion` access; they MUST write `human-oversight: unconfirmed` instead (the AFK fallback enum value codified in ADR-066 amendment 2026-06-02), which the drain (`/wr-architect:review-decisions`) later promotes interactively. Calling the helper without a real user substance-confirm event is the P348 hollow-marker bug — every legitimate marker write traces back to an `AskUserQuestion` answer in the same turn.
240
242
 
243
+ **ADR-013 Rule 6 carve-out audit (P352, 2026-06-06 amendment)**: the universal AFK default is queue-and-continue. This Step 5 substance-confirm HALT-and-write-`human-oversight: unconfirmed` shape is a documented carve-out, authorised by **ADR-074** (Confirm decision substance before building dependent work). Rationale: an ADR with `human-oversight: confirmed` enters the world born-confirmed (it does not appear in `/wr-architect:review-decisions`' unoversighted set), so dependent work — every implementation that cites this ADR as authority — would be built on substance that was never user-affirmed. AFK writing `human-oversight: unconfirmed` IS the queue-and-continue shape: the loop continues; the substance-confirm decision is queued to the next interactive drain. Persona-correct for JTBD-006 ("queued for my return, not guessed at"); the carve-out is from the auto-confirm shape, not from queue-and-continue itself.
244
+
241
245
  **Mismatch handling.** If the substance-confirm answer selects a DIFFERENT option than the draft was authored against:
242
246
 
243
247
  - DO NOT write the marker.