@windyroad/itil 0.47.4 → 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.
- package/.claude-plugin/plugin.json +1 -1
- package/package.json +1 -1
- package/skills/manage-problem/SKILL.md +13 -13
- package/skills/manage-problem/test/manage-problem-release-vehicle-seed.bats +1 -1
- package/skills/reconcile-readme/SKILL.md +3 -3
- package/skills/review-problems/SKILL.md +1 -1
- package/skills/transition-problem/SKILL.md +9 -9
- package/skills/transition-problems/SKILL.md +6 -6
package/package.json
CHANGED
|
@@ -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
|
|
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
|
|
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>.
|
|
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>.
|
|
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>.
|
|
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>.
|
|
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>.
|
|
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>.
|
|
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>.
|
|
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>.
|
|
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>.
|
|
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>.
|
|
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>.
|
|
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>\.
|
|
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>-*.
|
|
73
|
-
grep -E '^# Problem <NNN>:' docs/problems/<NNN>-*.
|
|
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>-*.
|
|
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>.
|
|
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>.
|
|
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>.
|
|
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>.
|
|
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>.
|
|
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>.
|
|
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>.
|
|
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>.
|
|
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>.
|
|
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>.
|
|
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>.
|
|
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>.
|
|
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>.
|
|
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>.
|
|
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>.
|
|
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>.
|
|
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.
|