@windyroad/itil 2.1.7 → 2.1.8-preview.1160
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/.codex-plugin/plugin.json +1 -1
- package/lib/enumerate-postrelease-kv-candidates.sh +12 -0
- package/package.json +1 -1
- package/skills/transition-problem/SKILL.md +15 -3
- package/skills/transition-problems/SKILL.md +11 -1
- package/skills-codex/transition-problem/SKILL.md +15 -3
- package/skills-codex/transition-problems/SKILL.md +11 -1
|
@@ -83,6 +83,18 @@ enumerate_postrelease_kv_candidates() {
|
|
|
83
83
|
|
|
84
84
|
case "$derive_exit" in
|
|
85
85
|
0)
|
|
86
|
+
local reopened_date release_date
|
|
87
|
+
reopened_date="$(grep -oE '^## Reopened [0-9]{4}-[0-9]{2}-[0-9]{2}$' "$f" \
|
|
88
|
+
| sed 's/^## Reopened //' \
|
|
89
|
+
| tail -1)"
|
|
90
|
+
release_date="$(printf '%s\n' "$derive_out" \
|
|
91
|
+
| sed -n 's/^[[:space:]]*release-date:[[:space:]]*//p' \
|
|
92
|
+
| head -1)"
|
|
93
|
+
if [ -n "$reopened_date" ] && [ -n "$release_date" ] \
|
|
94
|
+
&& [[ "$reopened_date" > "$release_date" ]]; then
|
|
95
|
+
continue
|
|
96
|
+
fi
|
|
97
|
+
|
|
86
98
|
local changeset
|
|
87
99
|
changeset="$(printf '%s\n' "$derive_out" \
|
|
88
100
|
| grep -oE '\.changeset/[a-z0-9._-]+\.md' \
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wr-itil:transition-problem
|
|
3
|
-
description: "Advance a problem ticket's lifecycle status — Open → Known Error, Known Error → Verification Pending (verifying), Verification Pending → Closed. Renames the ticket file, updates the Status field, and refreshes docs/problems/README.md in the same commit. Hosts the transition execution inline (pre-flight checks, the \"Problem 057: `git mv` + Edit + `git add` staging-ordering trap drops content edits from the commit\" problem staging-trap handling, the \"Problem 063: manage-problem does not trigger /wr-itil:report-upstream when root cause is external\" problem external-root-cause detection, the \"Problem 062: `manage-problem` does not refresh `docs/problems/README.md` on single-ticket transitions; fast-path cache goes stale silently\" problem README refresh, the \"Governance Skills Commit Their Own Completed Work\" architecture rule commit) per the \"Rename `wr-problem` Plugin to `wr-itil`\" architecture rule amended \"Split-skill execution ownership\". Use when the user asks to \"transition\", \"close\", \"mark known-error\", or \"release\" a specific ticket."
|
|
3
|
+
description: "Advance a problem ticket's lifecycle status — Open → Known Error, Open or Known Error → Verification Pending (verifying), Verification Pending → Closed. Renames the ticket file, updates the Status field, and refreshes docs/problems/README.md in the same commit. Hosts the transition execution inline (pre-flight checks, the \"Problem 057: `git mv` + Edit + `git add` staging-ordering trap drops content edits from the commit\" problem staging-trap handling, the \"Problem 063: manage-problem does not trigger /wr-itil:report-upstream when root cause is external\" problem external-root-cause detection, the \"Problem 062: `manage-problem` does not refresh `docs/problems/README.md` on single-ticket transitions; fast-path cache goes stale silently\" problem README refresh, the \"Governance Skills Commit Their Own Completed Work\" architecture rule commit) per the \"Rename `wr-problem` Plugin to `wr-itil`\" architecture rule amended \"Split-skill execution ownership\". Use when the user asks to \"transition\", \"close\", \"mark known-error\", or \"release\" a specific ticket."
|
|
4
4
|
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion, Skill
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -25,7 +25,7 @@ The `<NNN>` and `<status>` tokens are **data parameters**, not word-subcommands.
|
|
|
25
25
|
## Scope
|
|
26
26
|
|
|
27
27
|
**In scope:**
|
|
28
|
-
- Validate that the ticket file exists and the destination status is reachable from the current status
|
|
28
|
+
- Validate that the ticket file exists and the destination status is reachable from the current status, including the "Problem lifecycle — add a Verification Pending status between Known Error and Closed" architecture rule's folded Open → Verification Pending route when both stages' checks pass inline.
|
|
29
29
|
- Execute the transition inline: pre-flight checks, the "Problem 063: manage-problem does not trigger /wr-itil:report-upstream when root cause is external" problem external-root-cause detection (for the Open → Known Error destination), `git mv` to the new suffix, Status field edit, `## Fix Released` section write (for the Known Error → Verification Pending destination), the "Problem 057: `git mv` + Edit + `git add` staging-ordering trap drops content edits from the commit" problem staging re-stage, the "Problem 062: `manage-problem` does not refresh `docs/problems/README.md` on single-ticket transitions; fast-path cache goes stale silently" problem README.md refresh, the "Governance Skills Commit Their Own Completed Work" architecture rule commit.
|
|
30
30
|
- Report the outcome (new filename, new Status, commit SHA).
|
|
31
31
|
|
|
@@ -66,6 +66,7 @@ Check the current filename suffix and verify the destination status is reachable
|
|
|
66
66
|
| Current suffix | Destination argument | Valid? |
|
|
67
67
|
|----------------|----------------------|--------|
|
|
68
68
|
| `.open.md` | `known-error` | yes |
|
|
69
|
+
| `.open.md` | `verifying` | yes — **fix on capture**: the "Problem lifecycle — add a Verification Pending status between Known Error and Closed" architecture rule folds both forward stages only when the composed pre-flight below passes. |
|
|
69
70
|
| `.known-error.md` | `verifying` | yes |
|
|
70
71
|
| `.verifying.md` | `close` | yes |
|
|
71
72
|
| `.verifying.md` | `known-error` | yes — **flip-back**: the fix recurred or proved incomplete. Required by `review-problems` Bucket 3, `manage-problem`, and `run-retro` Step 4a, all of which already instruct it. |
|
|
@@ -95,6 +96,8 @@ Destination-specific pre-flight checks gate the transition. If any check fails,
|
|
|
95
96
|
- [ ] A release marker is available (version, commit SHA, or date) so the `## Fix Released` section can name it
|
|
96
97
|
- [ ] **Conditional-deferral check (the "Agent treats conditionally-deferred work (deferred-pending-X-graduation) as permanently out of scope — prematurely transitions parent ticket when X graduates" problem)** — see the dedicated subsection below; halt the transition if any conditional deferral has lifted with unticked work remaining
|
|
97
98
|
|
|
99
|
+
**Open → Verification Pending** (`<status>` = `verifying`) requires all **Open → Known Error** checks, all **Known Error → Verification Pending** checks, and a populated objective `## Fix Released` section. This is the "Problem lifecycle — add a Verification Pending status between Known Error and Closed" architecture rule's fix-on-capture fold, not a pre-flight bypass: root cause, investigation, reproduction, workaround, effort/WSJF, implementation, release marker, and conditional-deferral checks all run before the single rename. The `## Fix Released` section must name the released version, commit SHA, or date; the heading alone does not satisfy the route.
|
|
100
|
+
|
|
98
101
|
#### Conditional-deferral check on K→V (the "Agent treats conditionally-deferred work (deferred-pending-X-graduation) as permanently out of scope — prematurely transitions parent ticket when X graduates" problem) — copy-not-move sibling
|
|
99
102
|
|
|
100
103
|
This subsection is the **copy-not-move sibling** of `/wr-itil:manage-problem` SKILL.md Step 7's "Conditional-deferral check BEFORE the rename (the "Agent treats conditionally-deferred work (deferred-pending-X-graduation) as permanently out of scope — prematurely transitions parent ticket when X graduates" problem)" block per [the "Rename `wr-problem` Plugin to `wr-itil`" architecture rule](../../../docs/decisions/010-rename-wr-problem-to-wr-itil.proposed.md) amended "Split-skill execution ownership" rule (the "Problem 093: `/wr-itil:transition-problem` ↔ `/wr-itil:manage-problem` circular delegation for `<NNN> <status>` args" problem). Both surfaces must carry the check; drift between the two copies re-opens the "Agent treats conditionally-deferred work (deferred-pending-X-graduation) as permanently out of scope — prematurely transitions parent ticket when X graduates" problem's silent-loss failure mode on whichever surface lacks the check.
|
|
@@ -224,6 +227,15 @@ git mv docs/problems/known-error/<NNN>-<title>.md docs/problems/verifying/<NNN>-
|
|
|
224
227
|
git add docs/problems/verifying/<NNN>-<title>.md
|
|
225
228
|
```
|
|
226
229
|
|
|
230
|
+
**Open → Verification Pending** (the "Problem lifecycle — add a Verification Pending status between Known Error and Closed" architecture rule fix-on-capture fold):
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
git mv docs/problems/open/<NNN>-<title>.md docs/problems/verifying/<NNN>-<title>.md
|
|
234
|
+
# Edit Status to "Verification Pending" and preserve the populated
|
|
235
|
+
# ## Fix Released section that passed the composed pre-flight.
|
|
236
|
+
git add docs/problems/verifying/<NNN>-<title>.md
|
|
237
|
+
```
|
|
238
|
+
|
|
227
239
|
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 verification — by evidence or by the user — no file-body scan needed.
|
|
228
240
|
|
|
229
241
|
When this transition is folded into a `fix(<scope>): ... (closes P<NNN>)` commit (the common case), the `git mv` + `Edit` + re-stage + README refresh all join that single commit — never split across commits.
|
|
@@ -357,7 +369,7 @@ Release draining is owned by the caller — `/wr-itil:manage-problem` Step 12 (i
|
|
|
357
369
|
`transition-problem` owns (for the user-initiated transition path):
|
|
358
370
|
- Argument parsing (`<NNN> <status>`).
|
|
359
371
|
- Ticket-file discovery via the dual-tolerant lookup `ls docs/problems/<NNN>-*.md docs/problems/*/<NNN>-*.md` (the ": docs/problems/ flat layout migration — per-state subdirs + adopter auto-migration" release design transitional shape; both layouts).
|
|
360
|
-
- Destination-reachability validation (
|
|
372
|
+
- Destination-reachability validation (ordinary one-step transitions plus the "Problem lifecycle — add a Verification Pending status between Known Error and Closed" architecture rule's composed Open → Verification Pending fix-on-capture fold).
|
|
361
373
|
- Pre-flight checks for the supplied destination.
|
|
362
374
|
- the "Problem 063: manage-problem does not trigger /wr-itil:report-upstream when root cause is external" problem external-root-cause detection (Open → Known Error only) — including the AFK fallback that appends the stable `- **Upstream report pending** —` marker.
|
|
363
375
|
- `git mv` rename + Status field edit + (for `verifying`) `## Fix Released` section write + explicit the "Problem 057: `git mv` + Edit + `git add` staging-ordering trap drops content edits from the commit" problem re-stage.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wr-itil:transition-problems
|
|
3
|
-
description: "Batch-advance multiple problem tickets through the lifecycle in one invocation — Open → Known Error, Known Error → Verification Pending, Verification Pending → Closed. Loops the per-ticket /wr-itil:transition-problem mechanic (rename, Status edit, the \"Problem 057: `git mv` + Edit + `git add` staging-ordering trap drops content edits from the commit\" problem re-stage, the \"Problem 063: manage-problem does not trigger /wr-itil:report-upstream when root cause is external\" problem external-root-cause detection, the \"Problem 062: `manage-problem` does not refresh `docs/problems/README.md` on single-ticket transitions; fast-path cache goes stale silently\" problem README refresh) without paying N× SKILL.md reload latency or violating split-skill execution ownership. Produces ONE shared commit covering all surviving transitions per the \"Governance Skills Commit Their Own Completed Work\" architecture rule batch-grain. Use when closing the Verification Queue at the end of a `/wr-retrospective:run-retro` Step 4a pass, batch-closing release-aged verifyings during `/wr-itil:work-problems` AFK orchestration, or confirming multiple Step 9d verifications in `/wr-itil:manage-problem review`. Singular sibling — `/wr-itil:transition-problem` (one ticket per invocation)."
|
|
3
|
+
description: "Batch-advance multiple problem tickets through the lifecycle in one invocation — Open → Known Error, Open or Known Error → Verification Pending, Verification Pending → Closed. Loops the per-ticket /wr-itil:transition-problem mechanic (rename, Status edit, the \"Problem 057: `git mv` + Edit + `git add` staging-ordering trap drops content edits from the commit\" problem re-stage, the \"Problem 063: manage-problem does not trigger /wr-itil:report-upstream when root cause is external\" problem external-root-cause detection, the \"Problem 062: `manage-problem` does not refresh `docs/problems/README.md` on single-ticket transitions; fast-path cache goes stale silently\" problem README refresh) without paying N× SKILL.md reload latency or violating split-skill execution ownership. Produces ONE shared commit covering all surviving transitions per the \"Governance Skills Commit Their Own Completed Work\" architecture rule batch-grain. Use when closing the Verification Queue at the end of a `/wr-retrospective:run-retro` Step 4a pass, batch-closing release-aged verifyings during `/wr-itil:work-problems` AFK orchestration, or confirming multiple Step 9d verifications in `/wr-itil:manage-problem review`. Singular sibling — `/wr-itil:transition-problem` (one ticket per invocation)."
|
|
4
4
|
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion, Skill, Agent
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -98,6 +98,7 @@ If no file is found OR multiple files are found (suffix-exclusive lifecycle viol
|
|
|
98
98
|
| Current suffix | `<status>` | Valid? |
|
|
99
99
|
|----------------|------------|--------|
|
|
100
100
|
| `.open.md` | `known-error` | yes |
|
|
101
|
+
| `.open.md` | `verifying` | yes — **fix on capture**: the "Problem lifecycle — add a Verification Pending status between Known Error and Closed" architecture rule folds both forward stages only when the composed pre-flight below passes. |
|
|
101
102
|
| `.known-error.md` | `verifying` | yes |
|
|
102
103
|
| `.verifying.md` | `close` | yes |
|
|
103
104
|
| `.verifying.md` | `known-error` | yes — **flip-back**: the fix recurred or proved incomplete. `review-problems` Bucket 3 already instructs this and had no batch path. |
|
|
@@ -110,6 +111,7 @@ Lockstep with `/wr-itil:transition-problem` Step 3 per the drift clause below
|
|
|
110
111
|
|
|
111
112
|
- Open → Known Error (`known-error`): root cause documented; ≥ 1 investigation task ticked; reproduction test or reference; workaround documented; effort bucket re-rated if scope shifted (the "Problem 047: WSJF effort buckets are coarse and not re-rated at lifecycle transitions" problem); status multiplier re-rated from Open 1.0 to Known Error 2.0 and WSJF recomputed with the post-transition status and current Effort (the "WSJF uses the pre-transition status multiplier" problem).
|
|
112
113
|
- Known Error → Verification Pending (`verifying`): fix implemented; release marker available (version, commit SHA, or date) for the `## Fix Released` section.
|
|
114
|
+
- Open → Verification Pending (`verifying`): all Open → Known Error checks and all Known Error → Verification Pending checks above pass inline, including the conditional-deferral check, and the ticket has a populated objective `## Fix Released` section naming a version, commit SHA, or date. The heading alone is insufficient.
|
|
113
115
|
- Verification Pending → Closed (`close`): cited observed evidence or explicit user confirmation authorizes closure. Evidence-backed closure is mechanical and does not require another question. Record the citation and recovery path (`/wr-itil:transition-problem <NNN> known-error`) in each ticket's Status line. A provenance-proven GitHub issue on this project's tracker receives the gated comment and closes; unresolved or non-issue inbound provenance performs no issue mutation. A foreign issue receives the comment but stays open on local evidence alone; that upstream party's confirmation may authorize closure. Pull requests remain comment-only.
|
|
114
116
|
|
|
115
117
|
**Never close on inference** — absence of evidence is not evidence. A pair whose ticket carries no citation records as `pre-flight-failed` with reason `no-evidence` and stays Verification Pending; age, plausibility, and "the fix is on disk" are not observations. **Do-not-close marker check** — run `wr-itil-is-close-blocked <NNN> docs/problems` per pair before closing. Exit 0 → record the pair as `pre-flight-failed` with reason `close-blocked` plus the matched marker line, and continue to the next pair; do NOT close it whatever the evidence says. Exit 2 (unresolvable ref) is a pre-flight failure, not permission.
|
|
@@ -154,6 +156,14 @@ git mv docs/problems/known-error/<NNN>-<title>.md docs/problems/verifying/<NNN>-
|
|
|
154
156
|
git add docs/problems/verifying/<NNN>-<title>.md
|
|
155
157
|
```
|
|
156
158
|
|
|
159
|
+
```bash
|
|
160
|
+
# Open → Verification Pending (the "Problem lifecycle — add a Verification Pending status between Known Error and Closed" architecture rule fix-on-capture fold)
|
|
161
|
+
git mv docs/problems/open/<NNN>-<title>.md docs/problems/verifying/<NNN>-<title>.md
|
|
162
|
+
# Edit Status to "Verification Pending" and preserve the populated
|
|
163
|
+
# ## Fix Released section that passed the composed pre-flight.
|
|
164
|
+
git add docs/problems/verifying/<NNN>-<title>.md
|
|
165
|
+
```
|
|
166
|
+
|
|
157
167
|
```bash
|
|
158
168
|
# Verification Pending → Closed
|
|
159
169
|
git mv docs/problems/verifying/<NNN>-<title>.md docs/problems/closed/<NNN>-<title>.md
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: transition-problem
|
|
3
|
-
description: "Advance a problem ticket's lifecycle status — Open → Known Error, Known Error → Verification Pending (verifying), Verification Pending → Closed. Renames the ticket file, updates the Status field, and refreshes docs/problems/README.md in the same commit. Hosts the transition execution inline (pre-flight checks, the \"Problem 057: `git mv` + Edit + `git add` staging-ordering trap drops content edits from the commit\" problem staging-trap handling, the \"Problem 063: manage-problem does not trigger /wr-itil:report-upstream when root cause is external\" problem external-root-cause detection, the \"Problem 062: `manage-problem` does not refresh `docs/problems/README.md` on single-ticket transitions; fast-path cache goes stale silently\" problem README refresh, the \"Governance Skills Commit Their Own Completed Work\" architecture rule commit) per the \"Rename `wr-problem` Plugin to `wr-itil`\" architecture rule amended \"Split-skill execution ownership\". Use when the user asks to \"transition\", \"close\", \"mark known-error\", or \"release\" a specific ticket."
|
|
3
|
+
description: "Advance a problem ticket's lifecycle status — Open → Known Error, Open or Known Error → Verification Pending (verifying), Verification Pending → Closed. Renames the ticket file, updates the Status field, and refreshes docs/problems/README.md in the same commit. Hosts the transition execution inline (pre-flight checks, the \"Problem 057: `git mv` + Edit + `git add` staging-ordering trap drops content edits from the commit\" problem staging-trap handling, the \"Problem 063: manage-problem does not trigger /wr-itil:report-upstream when root cause is external\" problem external-root-cause detection, the \"Problem 062: `manage-problem` does not refresh `docs/problems/README.md` on single-ticket transitions; fast-path cache goes stale silently\" problem README refresh, the \"Governance Skills Commit Their Own Completed Work\" architecture rule commit) per the \"Rename `wr-problem` Plugin to `wr-itil`\" architecture rule amended \"Split-skill execution ownership\". Use when the user asks to \"transition\", \"close\", \"mark known-error\", or \"release\" a specific ticket."
|
|
4
4
|
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, request_user_input, Skill
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -36,7 +36,7 @@ The `<NNN>` and `<status>` tokens are **data parameters**, not word-subcommands.
|
|
|
36
36
|
## Scope
|
|
37
37
|
|
|
38
38
|
**In scope:**
|
|
39
|
-
- Validate that the ticket file exists and the destination status is reachable from the current status
|
|
39
|
+
- Validate that the ticket file exists and the destination status is reachable from the current status, including the "Problem lifecycle — add a Verification Pending status between Known Error and Closed" architecture rule's folded Open → Verification Pending route when both stages' checks pass inline.
|
|
40
40
|
- Execute the transition inline: pre-flight checks, the "Problem 063: manage-problem does not trigger /wr-itil:report-upstream when root cause is external" problem external-root-cause detection (for the Open → Known Error destination), `git mv` to the new suffix, Status field edit, `## Fix Released` section write (for the Known Error → Verification Pending destination), the "Problem 057: `git mv` + Edit + `git add` staging-ordering trap drops content edits from the commit" problem staging re-stage, the "Problem 062: `manage-problem` does not refresh `docs/problems/README.md` on single-ticket transitions; fast-path cache goes stale silently" problem README.md refresh, the "Governance Skills Commit Their Own Completed Work" architecture rule commit.
|
|
41
41
|
- Report the outcome (new filename, new Status, commit SHA).
|
|
42
42
|
|
|
@@ -77,6 +77,7 @@ Check the current filename suffix and verify the destination status is reachable
|
|
|
77
77
|
| Current suffix | Destination argument | Valid? |
|
|
78
78
|
|----------------|----------------------|--------|
|
|
79
79
|
| `.open.md` | `known-error` | yes |
|
|
80
|
+
| `.open.md` | `verifying` | yes — **fix on capture**: the "Problem lifecycle — add a Verification Pending status between Known Error and Closed" architecture rule folds both forward stages only when the composed pre-flight below passes. |
|
|
80
81
|
| `.known-error.md` | `verifying` | yes |
|
|
81
82
|
| `.verifying.md` | `close` | yes |
|
|
82
83
|
| `.verifying.md` | `known-error` | yes — **flip-back**: the fix recurred or proved incomplete. Required by `review-problems` Bucket 3, `manage-problem`, and `run-retro` Step 4a, all of which already instruct it. |
|
|
@@ -106,6 +107,8 @@ Destination-specific pre-flight checks gate the transition. If any check fails,
|
|
|
106
107
|
- [ ] A release marker is available (version, commit SHA, or date) so the `## Fix Released` section can name it
|
|
107
108
|
- [ ] **Conditional-deferral check (the "Agent treats conditionally-deferred work (deferred-pending-X-graduation) as permanently out of scope — prematurely transitions parent ticket when X graduates" problem)** — see the dedicated subsection below; halt the transition if any conditional deferral has lifted with unticked work remaining
|
|
108
109
|
|
|
110
|
+
**Open → Verification Pending** (`<status>` = `verifying`) requires all **Open → Known Error** checks, all **Known Error → Verification Pending** checks, and a populated objective `## Fix Released` section. This is the "Problem lifecycle — add a Verification Pending status between Known Error and Closed" architecture rule's fix-on-capture fold, not a pre-flight bypass: root cause, investigation, reproduction, workaround, effort/WSJF, implementation, release marker, and conditional-deferral checks all run before the single rename. The `## Fix Released` section must name the released version, commit SHA, or date; the heading alone does not satisfy the route.
|
|
111
|
+
|
|
109
112
|
#### Conditional-deferral check on K→V (the "Agent treats conditionally-deferred work (deferred-pending-X-graduation) as permanently out of scope — prematurely transitions parent ticket when X graduates" problem) — copy-not-move sibling
|
|
110
113
|
|
|
111
114
|
This subsection is the **copy-not-move sibling** of `/wr-itil:manage-problem` SKILL.md Step 7's "Conditional-deferral check BEFORE the rename (the "Agent treats conditionally-deferred work (deferred-pending-X-graduation) as permanently out of scope — prematurely transitions parent ticket when X graduates" problem)" block per [the "Rename `wr-problem` Plugin to `wr-itil`" architecture rule](../../../docs/decisions/010-rename-wr-problem-to-wr-itil.proposed.md) amended "Split-skill execution ownership" rule (the "Problem 093: `/wr-itil:transition-problem` ↔ `/wr-itil:manage-problem` circular delegation for `<NNN> <status>` args" problem). Both surfaces must carry the check; drift between the two copies re-opens the "Agent treats conditionally-deferred work (deferred-pending-X-graduation) as permanently out of scope — prematurely transitions parent ticket when X graduates" problem's silent-loss failure mode on whichever surface lacks the check.
|
|
@@ -235,6 +238,15 @@ git mv docs/problems/known-error/<NNN>-<title>.md docs/problems/verifying/<NNN>-
|
|
|
235
238
|
git add docs/problems/verifying/<NNN>-<title>.md
|
|
236
239
|
```
|
|
237
240
|
|
|
241
|
+
**Open → Verification Pending** (the "Problem lifecycle — add a Verification Pending status between Known Error and Closed" architecture rule fix-on-capture fold):
|
|
242
|
+
|
|
243
|
+
```bash
|
|
244
|
+
git mv docs/problems/open/<NNN>-<title>.md docs/problems/verifying/<NNN>-<title>.md
|
|
245
|
+
# Edit Status to "Verification Pending" and preserve the populated
|
|
246
|
+
# ## Fix Released section that passed the composed pre-flight.
|
|
247
|
+
git add docs/problems/verifying/<NNN>-<title>.md
|
|
248
|
+
```
|
|
249
|
+
|
|
238
250
|
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 verification — by evidence or by the user — no file-body scan needed.
|
|
239
251
|
|
|
240
252
|
When this transition is folded into a `fix(<scope>): ... (closes P<NNN>)` commit (the common case), the `git mv` + `Edit` + re-stage + README refresh all join that single commit — never split across commits.
|
|
@@ -368,7 +380,7 @@ Release draining is owned by the caller — `/wr-itil:manage-problem` Step 12 (i
|
|
|
368
380
|
`transition-problem` owns (for the user-initiated transition path):
|
|
369
381
|
- Argument parsing (`<NNN> <status>`).
|
|
370
382
|
- Ticket-file discovery via the dual-tolerant lookup `ls docs/problems/<NNN>-*.md docs/problems/*/<NNN>-*.md` (the ": docs/problems/ flat layout migration — per-state subdirs + adopter auto-migration" release design transitional shape; both layouts).
|
|
371
|
-
- Destination-reachability validation (
|
|
383
|
+
- Destination-reachability validation (ordinary one-step transitions plus the "Problem lifecycle — add a Verification Pending status between Known Error and Closed" architecture rule's composed Open → Verification Pending fix-on-capture fold).
|
|
372
384
|
- Pre-flight checks for the supplied destination.
|
|
373
385
|
- the "Problem 063: manage-problem does not trigger /wr-itil:report-upstream when root cause is external" problem external-root-cause detection (Open → Known Error only) — including the AFK fallback that appends the stable `- **Upstream report pending** —` marker.
|
|
374
386
|
- `git mv` rename + Status field edit + (for `verifying`) `## Fix Released` section write + explicit the "Problem 057: `git mv` + Edit + `git add` staging-ordering trap drops content edits from the commit" problem re-stage.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: transition-problems
|
|
3
|
-
description: "Batch-advance multiple problem tickets through the lifecycle in one invocation — Open → Known Error, Known Error → Verification Pending, Verification Pending → Closed. Loops the per-ticket /wr-itil:transition-problem mechanic (rename, Status edit, the \"Problem 057: `git mv` + Edit + `git add` staging-ordering trap drops content edits from the commit\" problem re-stage, the \"Problem 063: manage-problem does not trigger /wr-itil:report-upstream when root cause is external\" problem external-root-cause detection, the \"Problem 062: `manage-problem` does not refresh `docs/problems/README.md` on single-ticket transitions; fast-path cache goes stale silently\" problem README refresh) without paying N× SKILL.md reload latency or violating split-skill execution ownership. Produces ONE shared commit covering all surviving transitions per the \"Governance Skills Commit Their Own Completed Work\" architecture rule batch-grain. Use when closing the Verification Queue at the end of a `/wr-retrospective:run-retro` Step 4a pass, batch-closing release-aged verifyings during `/wr-itil:work-problems` AFK orchestration, or confirming multiple Step 9d verifications in `/wr-itil:manage-problem review`. Singular sibling — `/wr-itil:transition-problem` (one ticket per invocation)."
|
|
3
|
+
description: "Batch-advance multiple problem tickets through the lifecycle in one invocation — Open → Known Error, Open or Known Error → Verification Pending, Verification Pending → Closed. Loops the per-ticket /wr-itil:transition-problem mechanic (rename, Status edit, the \"Problem 057: `git mv` + Edit + `git add` staging-ordering trap drops content edits from the commit\" problem re-stage, the \"Problem 063: manage-problem does not trigger /wr-itil:report-upstream when root cause is external\" problem external-root-cause detection, the \"Problem 062: `manage-problem` does not refresh `docs/problems/README.md` on single-ticket transitions; fast-path cache goes stale silently\" problem README refresh) without paying N× SKILL.md reload latency or violating split-skill execution ownership. Produces ONE shared commit covering all surviving transitions per the \"Governance Skills Commit Their Own Completed Work\" architecture rule batch-grain. Use when closing the Verification Queue at the end of a `/wr-retrospective:run-retro` Step 4a pass, batch-closing release-aged verifyings during `/wr-itil:work-problems` AFK orchestration, or confirming multiple Step 9d verifications in `/wr-itil:manage-problem review`. Singular sibling — `/wr-itil:transition-problem` (one ticket per invocation)."
|
|
4
4
|
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, request_user_input, Skill, Agent
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -109,6 +109,7 @@ If no file is found OR multiple files are found (suffix-exclusive lifecycle viol
|
|
|
109
109
|
| Current suffix | `<status>` | Valid? |
|
|
110
110
|
|----------------|------------|--------|
|
|
111
111
|
| `.open.md` | `known-error` | yes |
|
|
112
|
+
| `.open.md` | `verifying` | yes — **fix on capture**: the "Problem lifecycle — add a Verification Pending status between Known Error and Closed" architecture rule folds both forward stages only when the composed pre-flight below passes. |
|
|
112
113
|
| `.known-error.md` | `verifying` | yes |
|
|
113
114
|
| `.verifying.md` | `close` | yes |
|
|
114
115
|
| `.verifying.md` | `known-error` | yes — **flip-back**: the fix recurred or proved incomplete. `review-problems` Bucket 3 already instructs this and had no batch path. |
|
|
@@ -121,6 +122,7 @@ Lockstep with `/wr-itil:transition-problem` Step 3 per the drift clause below
|
|
|
121
122
|
|
|
122
123
|
- Open → Known Error (`known-error`): root cause documented; ≥ 1 investigation task ticked; reproduction test or reference; workaround documented; effort bucket re-rated if scope shifted (the "Problem 047: WSJF effort buckets are coarse and not re-rated at lifecycle transitions" problem); status multiplier re-rated from Open 1.0 to Known Error 2.0 and WSJF recomputed with the post-transition status and current Effort (the "WSJF uses the pre-transition status multiplier" problem).
|
|
123
124
|
- Known Error → Verification Pending (`verifying`): fix implemented; release marker available (version, commit SHA, or date) for the `## Fix Released` section.
|
|
125
|
+
- Open → Verification Pending (`verifying`): all Open → Known Error checks and all Known Error → Verification Pending checks above pass inline, including the conditional-deferral check, and the ticket has a populated objective `## Fix Released` section naming a version, commit SHA, or date. The heading alone is insufficient.
|
|
124
126
|
- Verification Pending → Closed (`close`): cited observed evidence or explicit user confirmation authorizes closure. Evidence-backed closure is mechanical and does not require another question. Record the citation and recovery path (`/wr-itil:transition-problem <NNN> known-error`) in each ticket's Status line. A provenance-proven GitHub issue on this project's tracker receives the gated comment and closes; unresolved or non-issue inbound provenance performs no issue mutation. A foreign issue receives the comment but stays open on local evidence alone; that upstream party's confirmation may authorize closure. Pull requests remain comment-only.
|
|
125
127
|
|
|
126
128
|
**Never close on inference** — absence of evidence is not evidence. A pair whose ticket carries no citation records as `pre-flight-failed` with reason `no-evidence` and stays Verification Pending; age, plausibility, and "the fix is on disk" are not observations. **Do-not-close marker check** — run `<itil-plugin-root>/bin/wr-itil-is-close-blocked <NNN> docs/problems` per pair before closing. Exit 0 → record the pair as `pre-flight-failed` with reason `close-blocked` plus the matched marker line, and continue to the next pair; do NOT close it whatever the evidence says. Exit 2 (unresolvable ref) is a pre-flight failure, not permission.
|
|
@@ -165,6 +167,14 @@ git mv docs/problems/known-error/<NNN>-<title>.md docs/problems/verifying/<NNN>-
|
|
|
165
167
|
git add docs/problems/verifying/<NNN>-<title>.md
|
|
166
168
|
```
|
|
167
169
|
|
|
170
|
+
```bash
|
|
171
|
+
# Open → Verification Pending (the "Problem lifecycle — add a Verification Pending status between Known Error and Closed" architecture rule fix-on-capture fold)
|
|
172
|
+
git mv docs/problems/open/<NNN>-<title>.md docs/problems/verifying/<NNN>-<title>.md
|
|
173
|
+
# Edit Status to "Verification Pending" and preserve the populated
|
|
174
|
+
# ## Fix Released section that passed the composed pre-flight.
|
|
175
|
+
git add docs/problems/verifying/<NNN>-<title>.md
|
|
176
|
+
```
|
|
177
|
+
|
|
168
178
|
```bash
|
|
169
179
|
# Verification Pending → Closed
|
|
170
180
|
git mv docs/problems/verifying/<NNN>-<title>.md docs/problems/closed/<NNN>-<title>.md
|