@windyroad/itil 0.47.4-preview.539 → 0.47.5-preview.542

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.
@@ -497,5 +497,5 @@
497
497
  }
498
498
  },
499
499
  "name": "wr-itil",
500
- "version": "0.47.4"
500
+ "version": "0.47.5"
501
501
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@windyroad/itil",
3
- "version": "0.47.4-preview.539",
3
+ "version": "0.47.5-preview.542",
4
4
  "description": "ITIL-aligned IT service management for Claude Code (problem, and future incident/change skills)",
5
5
  "bin": {
6
6
  "windyroad-itil": "./bin/install.mjs"
@@ -60,11 +60,11 @@ The `.verifying.md` suffix distinguishes "fix released, awaiting user verificati
60
60
 
61
61
  **Parked problems** are excluded from WSJF ranking and work selection. They are listed separately in review output so users can see them without them polluting the backlog. To park a problem:
62
62
  1. **If the park reason is `upstream-blocked`**, run the external-root-cause detection block at Step 7 first (see "External-root-cause detection (P063)"). Park without recording the upstream dependency in `## Related` would be the canonical audit-trail gap this block closes.
63
- 2. `git mv docs/problems/<NNN>-<title>.<current>.md docs/problems/<NNN>-<title>.parked.md`
63
+ 2. `git mv docs/problems/<current>/<NNN>-<title>.md docs/problems/parked/<NNN>-<title>.md`
64
64
  3. Update the Status field to "Parked"
65
65
  4. Add a `## Parked` section with: reason for parking, expected trigger to un-park, date parked
66
66
 
67
- To un-park: `git mv` back to `.open.md` (or `.known-error.md` if root cause is confirmed), update Status, remove `## Parked` section.
67
+ To un-park: `git mv` back to `docs/problems/open/<NNN>-<title>.md` (or `docs/problems/known-error/<NNN>-<title>.md` if root cause is confirmed), update Status, remove `## Parked` section.
68
68
 
69
69
  **Verification Pending problems** are also excluded from WSJF ranking — their remaining work is user-side verification, not dev effort. They appear in a dedicated "Verification Queue" section in review output so the user can see what's waiting on them without mixing with dev-work ranking. See step 9c for the queue layout.
70
70
 
@@ -465,7 +465,7 @@ Before writing the problem file, perform a concern-boundary analysis on the gath
465
465
 
466
466
  ### 5. For new problems: Write the problem file
467
467
 
468
- **File path**: `docs/problems/<NNN>-<kebab-case-title>.open.md`
468
+ **File path**: `docs/problems/open/<NNN>-<kebab-case-title>.md`
469
469
 
470
470
  **Template**:
471
471
 
@@ -678,9 +678,9 @@ The work-problems orchestrator's `upstream-blocked` skip path (see `packages/iti
678
678
  > **Staging trap (P057).** `git mv` stages only the rename — it does NOT pick up subsequent `Edit`-tool content changes. After the `Edit` tool modifies the renamed file (Status field, `## Fix Released` section, etc.), re-stage it explicitly: `git add <new>`. Without the explicit re-stage, the transition commit captures the rename-only change and the content edit leaks into the next commit, corrupting the audit trail. This rule applies to every `git mv` block below (Open → Known Error, Known Error → Verification Pending, Verification Pending → Closed) and to the supersession rename in `create-adr` Step 6.
679
679
 
680
680
  ```bash
681
- git mv docs/problems/<NNN>-<title>.open.md docs/problems/<NNN>-<title>.known-error.md
681
+ git mv docs/problems/open/<NNN>-<title>.md docs/problems/known-error/<NNN>-<title>.md
682
682
  # ... use the Edit tool to update the Status field ...
683
- git add docs/problems/<NNN>-<title>.known-error.md
683
+ git add docs/problems/known-error/<NNN>-<title>.md
684
684
  ```
685
685
 
686
686
  Update the "Status" field in the file to "Known Error".
@@ -691,20 +691,20 @@ When the fix for a Known Error ships, transition the ticket in a single commit.
691
691
 
692
692
  **Seed `Release vehicle` reference BEFORE the rename (P330).** BEFORE the `git mv` to `.verifying.md`, edit the `.known-error.md` ticket body to append a `**Release vehicle**: .changeset/<name>.md` paragraph at the END of the `## Fix Strategy` section (create the section if absent). The `<name>.md` is the kebab-case slug of the changeset file the fix commit authored under `.changeset/` (e.g. `wr-itil-p330-option-b.md`). The seed eliminates the `wr-itil-derive-release-vehicle <NNN>` helper's exit-2 routing on standalone K→V iters — the helper greps the ticket body for `.changeset/<name>.md` and exits 2 when absent; seeding the reference at fix-ship time (when the changeset name is fresh in scope, since the fix commit just created it) makes the helper exit 0 deterministically on first call. The exit-2 recovery routing documented in `/wr-itil:transition-problem` Step 6 remains as the legacy-ticket fallback. Matches the user's documented workaround pattern across 3 of 4 standalone K→V dogfoods in the 2026-05-30 session (P316 / P281 / P302 — see P330 § Symptoms).
693
693
 
694
- > **Two P057 staging-trap windows on K→V (seed + rename).** The seed Edit on `.known-error.md` is the FIRST P057 window; the Edit that updates Status / writes `## Fix Released` AFTER the `git mv` is the SECOND. Consolidate staging into a SINGLE `git add docs/problems/<NNN>-<title>.verifying.md` AFTER both Edits + the `git mv`. `git mv` operates on the index entry — the body content the index references at rename time is the post-seed content, so the seed Edit's content is carried across the rename automatically; the single final `git add` re-stages the post-rename file with the post-`Edit` Status + `## Fix Released` content. The seed step does NOT introduce a separate `git add` of the `.known-error.md` path — staging discipline stays single-call by riding the rename's index entry.
694
+ > **Two P057 staging-trap windows on K→V (seed + rename).** The seed Edit on `.known-error.md` is the FIRST P057 window; the Edit that updates Status / writes `## Fix Released` AFTER the `git mv` is the SECOND. Consolidate staging into a SINGLE `git add docs/problems/verifying/<NNN>-<title>.md` AFTER both Edits + the `git mv`. `git mv` operates on the index entry — the body content the index references at rename time is the post-seed content, so the seed Edit's content is carried across the rename automatically; the single final `git add` re-stages the post-rename file with the post-`Edit` Status + `## Fix Released` content. The seed step does NOT introduce a separate `git add` of the `known-error/` path — staging discipline stays single-call by riding the rename's index entry.
695
695
 
696
696
  ```bash
697
697
  # Step 1 — seed `**Release vehicle**: .changeset/<name>.md` in the Fix Strategy section
698
- # ... use the Edit tool to append the seed paragraph to docs/problems/<NNN>-<title>.known-error.md ...
698
+ # ... use the Edit tool to append the seed paragraph to docs/problems/known-error/<NNN>-<title>.md ...
699
699
 
700
700
  # Step 2 — rename
701
- git mv docs/problems/<NNN>-<title>.known-error.md docs/problems/<NNN>-<title>.verifying.md
701
+ git mv docs/problems/known-error/<NNN>-<title>.md docs/problems/verifying/<NNN>-<title>.md
702
702
 
703
703
  # Step 3 — update Status + add `## Fix Released` section
704
- # ... use the Edit tool on docs/problems/<NNN>-<title>.verifying.md ...
704
+ # ... use the Edit tool on docs/problems/verifying/<NNN>-<title>.md ...
705
705
 
706
706
  # Step 4 — single re-stage covers both Edit windows
707
- git add docs/problems/<NNN>-<title>.verifying.md
707
+ git add docs/problems/verifying/<NNN>-<title>.md
708
708
  ```
709
709
 
710
710
  Then edit the file:
@@ -720,9 +720,9 @@ Both the `git mv` and the file edits belong in the same commit as the fix implem
720
720
  Only the user can make this call. When they explicitly confirm the fix works in production:
721
721
 
722
722
  ```bash
723
- git mv docs/problems/<NNN>-<title>.verifying.md docs/problems/<NNN>-<title>.closed.md
723
+ git mv docs/problems/verifying/<NNN>-<title>.md docs/problems/closed/<NNN>-<title>.md
724
724
  # ... use the Edit tool to update the Status field to "Closed" ...
725
- git add docs/problems/<NNN>-<title>.closed.md
725
+ git add docs/problems/closed/<NNN>-<title>.md
726
726
  ```
727
727
 
728
728
  Update the "Status" field to "Closed". Reference the problem ID in the closure commit message (e.g., "Closes P008"). Step 9d's verification prompt is the structured path that fires this transition during `manage-problem review`. Re-stage the `.closed.md` file explicitly after the Edit (P057 staging trap).
@@ -809,7 +809,7 @@ Enumerate via dual-tolerant glob `docs/problems/*.open.md docs/problems/*.known-
809
809
  8. **Calculate WSJF** = (Severity × Status Multiplier) / Effort Divisor
810
810
  9. **Update the Priority line** in the problem file if the score changed
811
811
  10. **Auto-transition to Known Error**: If an open problem has confirmed root cause AND a workaround documented (even "feature disabled"), automatically transition it to known-error:
812
- - `git mv docs/problems/<NNN>-<title>.open.md docs/problems/<NNN>-<title>.known-error.md`
812
+ - `git mv docs/problems/open/<NNN>-<title>.md docs/problems/known-error/<NNN>-<title>.md`
813
813
  - Update the Status field to "Known Error"
814
814
  - This happens automatically — do not ask the user
815
815
 
@@ -44,7 +44,7 @@ setup() {
44
44
  # lands AFTER the rename in the prose, the agent reading top-to-bottom would do the
45
45
  # rename first and the seed-on-known-error-path would target a non-existent file.
46
46
  seed_line=$(grep -nE 'Seed `Release vehicle` reference BEFORE the rename' "$MANAGE_PROBLEM_SKILL" | head -1 | cut -d: -f1)
47
- rename_line=$(grep -nE 'git mv docs/problems/<NNN>-<title>\.known-error\.md docs/problems/<NNN>-<title>\.verifying\.md' "$MANAGE_PROBLEM_SKILL" | head -1 | cut -d: -f1)
47
+ rename_line=$(grep -nE 'git mv docs/problems/known-error/<NNN>-<title>\.md docs/problems/verifying/<NNN>-<title>\.md' "$MANAGE_PROBLEM_SKILL" | head -1 | cut -d: -f1)
48
48
  [ -n "$seed_line" ]
49
49
  [ -n "$rename_line" ]
50
50
  [ "$seed_line" -lt "$rename_line" ]
@@ -69,8 +69,8 @@ For each `MISSING` entry, read the ticket file to extract the row data:
69
69
 
70
70
  ```bash
71
71
  # For WSJF Rankings ADD:
72
- grep -E '^\*\*(Status|Priority|Effort|WSJF)\*\*:' docs/problems/<NNN>-*.open.md
73
- grep -E '^# Problem <NNN>:' docs/problems/<NNN>-*.open.md
72
+ grep -E '^\*\*(Status|Priority|Effort|WSJF)\*\*:' docs/problems/open/<NNN>-*.md
73
+ grep -E '^# Problem <NNN>:' docs/problems/open/<NNN>-*.md
74
74
  ```
75
75
 
76
76
  Render the WSJF Rankings row in the existing format:
@@ -82,7 +82,7 @@ Render the WSJF Rankings row in the existing format:
82
82
  For each `MISSING` Verification Queue entry, read the `## Fix Released` block:
83
83
 
84
84
  ```bash
85
- sed -n '/^## Fix Released/,/^## /p' docs/problems/<NNN>-*.verifying.md
85
+ sed -n '/^## Fix Released/,/^## /p' docs/problems/verifying/<NNN>-*.md
86
86
  ```
87
87
 
88
88
  Render the Verification Queue row in the existing format. The `Likely verified?` cell carries an **evidence-first** value per P186 (supersedes the original P048 Candidate 4 14-day heuristic). <!-- LIKELY-VERIFIED-CELL-SHAPE: evidence-based per P186 --> When reconcile-readme synthesises a missing row, default the cell to `no — not observed` — the row is being added because some prior session committed the `.verifying.md` transition without staging the README refresh; reconcile-readme has no session-observed evidence to cite. Subsequent `/wr-itil:review-problems` Step 4 or `run-retro` Step 4a passes populate `yes — observed: <evidence>` when the user verifies. Drift on the cell shape re-opens P186.
@@ -45,7 +45,7 @@ For each open / known-error ticket (dual-tolerant enumeration spans `docs/proble
45
45
  8. **Calculate WSJF** = (Severity × Status Multiplier) / Effort Divisor. Status Multiplier is 1.0 for Open, 2.0 for Known Error (per `/wr-itil:manage-problem`'s WSJF table — re-read if unsure).
46
46
  9. **Update the Priority and WSJF lines** in the problem file if the scores changed.
47
47
  10. **Auto-transition to Known Error** — if an open problem has confirmed root cause AND a workaround documented (even "feature disabled"), automatically transition it:
48
- - `git mv docs/problems/<NNN>-<title>.open.md docs/problems/<NNN>-<title>.known-error.md`
48
+ - `git mv docs/problems/open/<NNN>-<title>.md docs/problems/known-error/<NNN>-<title>.md`
49
49
  - Update the Status field to "Known Error".
50
50
  - Re-stage explicitly per the P057 staging trap: `git add <new-path>` after the Edit.
51
51
  - This happens automatically — do not ask the user. The transition's fix-strategy is documented; only the shipping is outstanding.
@@ -140,29 +140,29 @@ Per destination, run the rename + edit + explicit re-stage sequence. The explici
140
140
  **Open → Known Error**:
141
141
 
142
142
  ```bash
143
- git mv docs/problems/<NNN>-<title>.open.md docs/problems/<NNN>-<title>.known-error.md
143
+ git mv docs/problems/open/<NNN>-<title>.md docs/problems/known-error/<NNN>-<title>.md
144
144
  # ... use the Edit tool to update the Status field to "Known Error" ...
145
- git add docs/problems/<NNN>-<title>.known-error.md
145
+ git add docs/problems/known-error/<NNN>-<title>.md
146
146
  ```
147
147
 
148
148
  **Known Error → Verification Pending** (per ADR-022, on release):
149
149
 
150
150
  **Seed `Release vehicle` reference BEFORE the rename (P330).** BEFORE the `git mv` to `.verifying.md`, edit the `.known-error.md` ticket body to append a `**Release vehicle**: .changeset/<name>.md` paragraph at the END of the `## Fix Strategy` section (create the section if absent). The `<name>.md` is the kebab-case slug of the changeset file the fix commit authored under `.changeset/` (e.g. `wr-itil-p330-option-b.md`). The seed makes the `wr-itil-derive-release-vehicle <NNN>` helper invocation below exit 0 deterministically on first call (the helper greps the ticket body for `.changeset/<name>.md` and exits 2 when absent — Option B-codified per P330 closes that exit-2 routing on standalone K→V iters). The exit-2 fallback in the routing table below remains as the legacy-ticket recovery path for tickets shipped before P330's codification. Mirrors the `/wr-itil:manage-problem` Step 7 seed step (copy-not-move per ADR-010 amended / P093).
151
151
 
152
- > **Two P057 staging-trap windows on K→V (seed + rename).** The seed Edit on `.known-error.md` is the FIRST P057 window; the Edit that updates Status / writes `## Fix Released` AFTER the `git mv` is the SECOND. Consolidate staging into a SINGLE `git add docs/problems/<NNN>-<title>.verifying.md` AFTER both Edits + the `git mv`. `git mv` operates on the index entry — the body content the index references at rename time is the post-seed content, so the seed Edit's content is carried across the rename automatically; the single final `git add` re-stages the post-rename file with the post-`Edit` Status + `## Fix Released` content. The seed step does NOT introduce a separate `git add` of the `.known-error.md` path — staging discipline stays single-call by riding the rename's index entry.
152
+ > **Two P057 staging-trap windows on K→V (seed + rename).** The seed Edit on `.known-error.md` is the FIRST P057 window; the Edit that updates Status / writes `## Fix Released` AFTER the `git mv` is the SECOND. Consolidate staging into a SINGLE `git add docs/problems/verifying/<NNN>-<title>.md` AFTER both Edits + the `git mv`. `git mv` operates on the index entry — the body content the index references at rename time is the post-seed content, so the seed Edit's content is carried across the rename automatically; the single final `git add` re-stages the post-rename file with the post-`Edit` Status + `## Fix Released` content. The seed step does NOT introduce a separate `git add` of the `known-error/` path — staging discipline stays single-call by riding the rename's index entry.
153
153
 
154
154
  ```bash
155
155
  # Step 1 — seed `**Release vehicle**: .changeset/<name>.md` in the Fix Strategy section
156
- # ... use the Edit tool to append the seed paragraph to docs/problems/<NNN>-<title>.known-error.md ...
156
+ # ... use the Edit tool to append the seed paragraph to docs/problems/known-error/<NNN>-<title>.md ...
157
157
 
158
158
  # Step 2 — rename
159
- git mv docs/problems/<NNN>-<title>.known-error.md docs/problems/<NNN>-<title>.verifying.md
159
+ git mv docs/problems/known-error/<NNN>-<title>.md docs/problems/verifying/<NNN>-<title>.md
160
160
 
161
161
  # Step 3 — update Status to "Verification Pending" AND add the `## Fix Released` section
162
- # ... use the Edit tool on docs/problems/<NNN>-<title>.verifying.md ...
162
+ # ... use the Edit tool on docs/problems/verifying/<NNN>-<title>.md ...
163
163
 
164
164
  # Step 4 — single re-stage covers both Edit windows (P057 + P330)
165
- git add docs/problems/<NNN>-<title>.verifying.md
165
+ git add docs/problems/verifying/<NNN>-<title>.md
166
166
  ```
167
167
 
168
168
  The `## Fix Released` section contains: release marker (version, commit SHA, or date), one-sentence fix summary, "Awaiting user verification" line, and any exercise evidence from the releasing session. The `.verifying.md` suffix signals to every downstream consumer (work-problems classifier, review step 9d, README rendering) that the remaining work is user-side verification — no file-body scan needed.
@@ -199,9 +199,9 @@ Use the structured values verbatim when authoring the `## Fix Released` section'
199
199
  **Verification Pending → Closed**:
200
200
 
201
201
  ```bash
202
- git mv docs/problems/<NNN>-<title>.verifying.md docs/problems/<NNN>-<title>.closed.md
202
+ git mv docs/problems/verifying/<NNN>-<title>.md docs/problems/closed/<NNN>-<title>.md
203
203
  # ... use the Edit tool to update the Status field to "Closed" ...
204
- git add docs/problems/<NNN>-<title>.closed.md
204
+ git add docs/problems/closed/<NNN>-<title>.md
205
205
  ```
206
206
 
207
207
  ### 7. Refresh docs/problems/README.md (P062)
@@ -135,24 +135,24 @@ The detection is per-pair; each Open → Known Error pair runs its own check ind
135
135
 
136
136
  ```bash
137
137
  # Open → Known Error
138
- git mv docs/problems/<NNN>-<title>.open.md docs/problems/<NNN>-<title>.known-error.md
138
+ git mv docs/problems/open/<NNN>-<title>.md docs/problems/known-error/<NNN>-<title>.md
139
139
  # Edit Status field to "Known Error"
140
- git add docs/problems/<NNN>-<title>.known-error.md
140
+ git add docs/problems/known-error/<NNN>-<title>.md
141
141
  ```
142
142
 
143
143
  ```bash
144
144
  # Known Error → Verification Pending (per ADR-022)
145
- git mv docs/problems/<NNN>-<title>.known-error.md docs/problems/<NNN>-<title>.verifying.md
145
+ git mv docs/problems/known-error/<NNN>-<title>.md docs/problems/verifying/<NNN>-<title>.md
146
146
  # Edit Status to "Verification Pending" AND add ## Fix Released section
147
147
  # (release marker, one-sentence summary, Awaiting user verification)
148
- git add docs/problems/<NNN>-<title>.verifying.md
148
+ git add docs/problems/verifying/<NNN>-<title>.md
149
149
  ```
150
150
 
151
151
  ```bash
152
152
  # Verification Pending → Closed
153
- git mv docs/problems/<NNN>-<title>.verifying.md docs/problems/<NNN>-<title>.closed.md
153
+ git mv docs/problems/verifying/<NNN>-<title>.md docs/problems/closed/<NNN>-<title>.md
154
154
  # Edit Status field to "Closed"
155
- git add docs/problems/<NNN>-<title>.closed.md
155
+ git add docs/problems/closed/<NNN>-<title>.md
156
156
  ```
157
157
 
158
158
  If `git mv` or `git add` fails for a pair (e.g. the file has been moved by a parallel process), record the pair as `git-failed` with the error and continue to the next pair. Do NOT attempt to roll back prior pairs' staged renames — those are now part of the in-progress batch.