@windyroad/retrospective 0.27.3 → 0.27.4-preview.1101

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.
@@ -78,5 +78,5 @@
78
78
  }
79
79
  },
80
80
  "name": "wr-retrospective",
81
- "version": "0.27.3"
81
+ "version": "0.27.4"
82
82
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@windyroad/retrospective",
3
- "version": "0.27.3",
3
+ "version": "0.27.4-preview.1101",
4
4
  "description": "Session retrospectives that update briefings and create problem tickets",
5
5
  "bin": {
6
6
  "windyroad-retrospective": "./bin/install.mjs"
@@ -184,7 +184,7 @@ Drift-hint vocabulary: `skill-inventory-drift` (inventory-only per ADR-069). Alw
184
184
 
185
185
  **Already load-bearing (ADR-069)**: the commit-hook `retrospective-readme-jtbd-currency.sh` denies `git commit` when `drift_instances ≥ 1` (skill-inventory-drift), per the carried-forward load-bearing-from-the-start-for-drift-class driver. This Step 2b advisory is the backup / cross-cutting surface — it catches drift in sessions that bypass the commit-hook (`BYPASS_JTBD_CURRENCY=1`) and summarises across packages; it is not the gate.
186
186
 
187
- **ADR-073 auto-create-RFC reassessment advisory (RFC-005 B9, P314).** Step 2b also feeds the ADR-073 reassessment loop. The I13 fix-time RFC-trace gate (ADR-072 placement / ADR-073 auto-create-not-block) auto-creates problem-traced **skeleton** RFCs via `/wr-itil:capture-rfc` whenever a fix is proposed on an RFC-less Known Error. ADR-073's Reassessment Criteria say to revisit the auto-create decision "if auto-created RFCs are systematically under-scoped (a recurring 'the auto-RFC didn't capture the real fix' signal)". The auto-create event is otherwise only logged ephemerally to the `/wr-itil:work-problems` iter-summary `notes`; this advisory makes the reassessment signal durable by reading the auto-created RFCs left on disk and surfacing the ones whose traced problem's fix has already shipped while the RFC scope was never fleshed out. The surfacing channel is the retro summary's Pipeline Instability section (same trust-boundary as the README advisory above — surface the evidence; defer the reassessment to the human).
187
+ **Under-scoped legacy RFC advisory (RFC-005 B9, P314).** Step 2b also reads the legacy RFC document corpus. **This advisory is historical: a fix proposal now draws a release row on a story map and creates no document, so nothing adds to the population it scans.** What it surfaces is the residue of the earlier mechanism documents minted when a fix was proposed on an RFC-less Known Error, whose scope was never written. It reports the ones whose traced problem's fix has already shipped while the document's scope stayed a placeholder. The surfacing channel is the retro summary's Pipeline Instability section (same trust-boundary as the README advisory above — surface the evidence; defer the decision to the human).
188
188
 
189
189
  **Mechanism**: invoke `wr-retrospective-check-autocreate-rfc-scope` (resolves on `$PATH` to the plugin-bundled detector per ADR-049/ADR-080 — invoke by the `wr-retrospective-…` shim name, never a repo-relative `packages/…` path). The detector scans `docs/rfcs/*.proposed.md` for skeleton RFCs (whose `## Scope` still carries the capture-rfc placeholder `(deferred — populate at /wr-itil:manage-rfc accepted transition)`) whose `problems:` frontmatter traces at least one **fix-shipped** problem (located under `docs/problems/verifying/` or `…/closed/`, OR carrying a `## Fix Released` heading, OR carrying a populated `## Fix Strategy` section). It emits:
190
190
 
@@ -195,9 +195,9 @@ Always exits 0 — advisory per ADR-013 Rule 6 / ADR-040 declarative-first; ther
195
195
 
196
196
  **Interpretation**:
197
197
 
198
- 1. **`under_scoped == 0`** — emit a one-line `ADR-073 auto-create-RFC scope: clean (<N> proposed skeletons, 0 under-scoped)` to the retro summary's Pipeline Instability section.
199
- 2. **`under_scoped ≥ 1`** — emit each `AUTOCREATE-RFC under-scoped …` candidate line into the Pipeline Instability section. Each names a skeleton RFC whose fix has shipped but whose scope was never written — the ADR-073 under-scoped signal. Per ADR-013 Rule 6, the user reviews on return: a one-off is the expected living-RFC pattern (flesh the RFC out via `/wr-itil:manage-rfc accepted`); a **recurring** under-scoped population across retros is the ADR-073 reassessment trigger (revisit whether auto-create produces useful vehicles or noise). Same trust-boundary as the categorical detection above — surface the evidence; defer the decision.
200
- 3. **Detector failure** — if the detector exits non-zero (missing `docs/rfcs/`, runtime exception), log the failure inline as `ADR-073 auto-create-RFC advisory failed: <stderr>` but do NOT halt the retro. Same fail-open contract as the README advisory and Step 3's `check-briefing-budgets.sh` defensive trip — the cheap layer degrades to a one-line pointer rather than blocking.
198
+ 1. **`under_scoped == 0`** — emit a one-line `legacy RFC scope: clean (<N> proposed skeletons, 0 under-scoped)` to the retro summary's Pipeline Instability section.
199
+ 2. **`under_scoped ≥ 1`** — emit each `AUTOCREATE-RFC under-scoped …` candidate line into the Pipeline Instability section. Each names a legacy document whose fix has shipped but whose scope was never written. Per ADR-013 Rule 6, the user reviews on return. **The population is closed, so it can only shrink** a count that repeats retro after retro means those candidates have already been ruled on and are awaiting a lifecycle transition, NOT that a mechanism is still producing them. Read a steady count as a queue to drain, never as fresh evidence that something is going wrong. Same trust-boundary as the categorical detection above — surface the evidence; defer the decision.
200
+ 3. **Detector failure** — if the detector exits non-zero (missing `docs/rfcs/`, runtime exception), log the failure inline as `legacy RFC advisory failed: <stderr>` but do NOT halt the retro. Same fail-open contract as the README advisory and Step 3's `check-briefing-budgets.sh` defensive trip — the cheap layer degrades to a one-line pointer rather than blocking.
201
201
 
202
202
  **Interaction with other surfaces:**
203
203