@windyroad/itil 0.47.9-preview.558 → 0.47.9-preview.559

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@windyroad/itil",
3
- "version": "0.47.9-preview.558",
3
+ "version": "0.47.9-preview.559",
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"
@@ -45,11 +45,16 @@ setup() {
45
45
  [ "$status" -eq 0 ]
46
46
  }
47
47
 
48
- @test "manage-problem: SKILL.md documents the AFK non-interactive fallback (option 2, append marker, no auto-invoke)" {
49
- run grep -iE 'non-interactive.*afk|afk.*fallback' "$MP_SKILL"
48
+ @test "manage-problem: SKILL.md documents the AFK non-interactive fallback (P270 auto-invoke report-upstream via external-comms gate)" {
49
+ run grep -iE 'non-interactive.*afk|afk.*fallback|Non-interactive \(AFK\) branch' "$MP_SKILL"
50
50
  [ "$status" -eq 0 ]
51
- # Explicit ban on auto-invoke
52
- run grep -F 'Do NOT auto-invoke' "$MP_SKILL"
51
+ # P270 (ADR-024 2026-06-04 amendment): the AFK branch now auto-invokes
52
+ # report-upstream and routes the drafted prose through the
53
+ # wr-risk-scorer:external-comms gate, superseding the pre-2026-06-04
54
+ # "append marker, do NOT auto-invoke" default.
55
+ run grep -iE 'auto-invoke .*report-upstream' "$MP_SKILL"
56
+ [ "$status" -eq 0 ]
57
+ run grep -F 'external-comms' "$MP_SKILL"
53
58
  [ "$status" -eq 0 ]
54
59
  }
55
60
 
@@ -77,8 +82,12 @@ setup() {
77
82
  [ "$status" -eq 0 ]
78
83
  }
79
84
 
80
- @test "work-problems: upstream-blocked skip row runs the AFK fallback before skipping" {
81
- run grep -F 'append the pending-upstream-report marker' "$WP_SKILL"
85
+ @test "work-problems: upstream-blocked skip row runs the AFK fallback before skipping (P270 — auto-invoke report-upstream)" {
86
+ # P270 (ADR-024 2026-06-04 amendment): the skip row auto-invokes
87
+ # report-upstream before skipping (superseding the old marker-only append).
88
+ run grep -iE 'Auto-invoke .*report-upstream' "$WP_SKILL"
89
+ [ "$status" -eq 0 ]
90
+ run grep -F 'Before skipping, run the manage-problem external-root-cause detection AFK fallback' "$WP_SKILL"
82
91
  [ "$status" -eq 0 ]
83
92
  }
84
93
 
@@ -842,7 +842,7 @@ When `AskUserQuestion` is unavailable or the user is AFK, the skill (and the del
842
842
  | Halt-path final summary with accumulated user-answerable skips (CI failure / Rule 5 above-appetite / dirty-unknown / session-continuity / fetch failure) | Run Step 2.5b's surfacing routine before emitting the halt path's final AFK summary. Step 2.5b is gated on ≥1 accumulated user-answerable skip — empty-skip halts skip the routine. Step 2.5b surfaces *prior-iter accumulated user-answerable skips only*; it does NOT ask the user how to remediate the halt cause itself (CI failure / above-appetite state / dirty-unknown state remain halt-with-bug-signal). Per ADR-013 Rule 1 + ADR-032 + P126 (`halt-paths-must-route-design-questions-through-Step-2.5b`). |
843
843
  | Unexpected dirty state between iterations | Halt the loop. Report the `git status --porcelain` output, the last iteration's reported outcome, and the divergence — per P036 (Step 6.75). Run Step 2.5b before emitting the halt summary if ≥1 accumulated user-answerable skip from prior iters (P126). Do NOT attempt non-interactive recovery of the dirty state itself. |
844
844
  | Iter committed cleanly + claim contradicts on-disk ADR Confirmation state (P335) | Halt the loop with `outcome: halted-iter-over-claim`. Include the `wr-itil-verify-iter-summary` stdout (the `OVER-CLAIM: ADR-NNN has N unchecked Confirmation item(s)...` lines) as the divergence detail. Run Step 2.5b before emitting the halt summary if ≥1 accumulated user-answerable skip from prior iters. Do NOT auto-correct the iter's claim — the orchestrator cannot retroactively make a false claim true; the user adjudicates on return (re-dispatch / accept partial / amend). Per ADR-013 Rule 6 + ADR-032 subprocess-boundary trust contract + P335 (Step 6.75 verify-iter-claims sub-step). |
845
- | External root cause detected at Open → Known Error, or at park with `upstream-blocked` reason | Append the stable `- **Upstream report pending** — external dependency identified; invoke /wr-itil:report-upstream when ready` marker to the ticket's `## Related` section; do NOT auto-invoke `/wr-itil:report-upstream` (Step 6 security-path branch is interactive — per ADR-024 Consequences). Use the already-noted grep check to avoid duplicate lines. Per P063 + ADR-013 Rule 6. |
845
+ | External root cause detected at Open → Known Error, or at park with `upstream-blocked` reason | **Auto-invoke `/wr-itil:report-upstream`** via the manage-problem Step 6 external-root-cause detection AFK fallback (per ADR-024 2026-06-04 (P270) amendment). The report-upstream skill composes the draft then scores the prose via `wr-risk-scorer:external-comms` (ADR-028); below-appetite → sends (public-issue Step 5 / comment Step 5c / security Step 6 per classification); above-appetite → risk-reduces (open-ended LLM judgement per leaf (a)) then re-scores → sends-or-queues to `## Queued Upstream Report` (leaf (c)). Security routing per leaf (b): upstream-with-`SECURITY.md` + below-appetite → files via declared channel; upstream-without-`SECURITY.md` → external-comms-gated impact assessment. Queue does NOT halt (P352). Tickets already carrying the stable `- **Upstream report pending** — external dependency identified; invoke /wr-itil:report-upstream when ready` marker from prior sessions are detected via the already-noted grep check and routed to the report-upstream invocation; the marker shape is retained as the detection substrate. Per P063 (amended 2026-06-04) + P270 + ADR-013 Rule 6. |
846
846
  | Mid-loop ask between iters in the orchestrator's main turn | Forbidden except at framework-prescribed user-interaction points (Step 0 session-continuity / fetch-failure halt; Step 2.5 / 2.5b loop-end emit; Step 6.5 above-appetite Rule 5 halt; Step 6.5 CI-failure / release:watch halt; Step 6.5 cohort-graduation halt-no-resolution halt; Step 6.5 cohort-graduation per-entry Rule 4 evidence-floor judgement (P308 — interactive only; AFK queues per P352); Step 6.75 dirty-for-unknown-reason halt). The loop's purpose is **progress + accumulation**; mechanical-stage transitions between iters are framework-resolved and MUST NOT prompt the user. Per ADR-044 framework-resolution boundary + ADR-013 Rule 1 (as amended by ADR-044) + P130. |
847
847
 
848
848
  ### Mid-loop ask discipline (orchestrator main turn) — P130