@windyroad/itil 1.2.0 → 2.0.0-preview.1111

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.
Files changed (266) hide show
  1. package/.agents/plugins/marketplace.json +12 -0
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.codex-plugin/plugin.json +42 -0
  4. package/README.md +34 -25
  5. package/agents/hang-off-check.md +34 -34
  6. package/bin/install.mjs +71 -5
  7. package/bin/wr-itil-catchup-scan +4 -4
  8. package/bin/wr-itil-check-deferred-placeholder-staleness +4 -4
  9. package/bin/wr-itil-check-fail-soft-skip-discipline +4 -4
  10. package/bin/wr-itil-check-fix-rfc-trace +4 -4
  11. package/bin/wr-itil-check-locale-discipline +4 -4
  12. package/bin/wr-itil-check-outbound-responses-staleness +4 -4
  13. package/bin/wr-itil-check-problems-readme-budget +4 -4
  14. package/bin/wr-itil-check-rfc-has-stories +4 -4
  15. package/bin/wr-itil-check-rfc-stories-ratified +4 -4
  16. package/bin/wr-itil-check-ticket-jtbd-ratification +4 -4
  17. package/bin/wr-itil-check-upstream-cache-staleness +4 -4
  18. package/bin/wr-itil-check-upstream-responses +4 -4
  19. package/bin/wr-itil-classify-readme-drift +4 -4
  20. package/bin/wr-itil-derive-release-vehicle +4 -4
  21. package/bin/wr-itil-detect-unratified-stories-maps +4 -4
  22. package/bin/wr-itil-effort-tally +4 -4
  23. package/bin/wr-itil-enumerate-postrelease-kv-candidates +4 -4
  24. package/bin/wr-itil-evaluate-relevance +4 -4
  25. package/bin/wr-itil-mark-create-gate +4 -4
  26. package/bin/wr-itil-mark-story-oversight-confirmed +4 -4
  27. package/bin/wr-itil-migrate-problems-layout +4 -4
  28. package/bin/wr-itil-migrate-story-status-mirror +4 -4
  29. package/bin/wr-itil-next-rfc-id +4 -4
  30. package/bin/wr-itil-plugin-exercise-index +4 -4
  31. package/bin/wr-itil-plugin-maturity-populate +4 -4
  32. package/bin/wr-itil-plugin-maturity-render +4 -4
  33. package/bin/wr-itil-plugin-validate-ci-gate +4 -4
  34. package/bin/wr-itil-reconcile-readme +4 -4
  35. package/bin/wr-itil-reconcile-rfcs +4 -4
  36. package/bin/wr-itil-reconcile-stories +4 -4
  37. package/bin/wr-itil-reconcile-story-maps +4 -4
  38. package/bin/wr-itil-render-story-map +4 -4
  39. package/bin/wr-itil-resolve-governance-plugin-dirs +4 -4
  40. package/bin/wr-itil-skill-invocations +4 -4
  41. package/bin/wr-itil-story-map-edit +4 -4
  42. package/bin/wr-itil-story-map-query +4 -4
  43. package/bin/wr-itil-update-jtbd-references-section +4 -4
  44. package/bin/wr-itil-update-problem-references-section +4 -4
  45. package/bin/wr-itil-update-problem-rfcs-section +4 -4
  46. package/bin/wr-itil-update-rfc-commits-section +4 -4
  47. package/bin/wr-itil-update-rfc-references-section +4 -4
  48. package/bin/wr-itil-verify-iter-summary +4 -4
  49. package/hooks/itil-assistant-output-gate.sh +3 -3
  50. package/hooks/itil-assistant-output-review.sh +5 -5
  51. package/hooks/itil-bash-polling-antipattern-detect.sh +11 -11
  52. package/hooks/itil-changeset-discipline.sh +24 -24
  53. package/hooks/itil-claude-space-protection.sh +21 -14
  54. package/hooks/itil-codex-dispatch.sh +164 -0
  55. package/hooks/itil-commit-trailer-transition-advisory.sh +11 -11
  56. package/hooks/itil-correction-detect.sh +8 -8
  57. package/hooks/itil-deferral-cadence-gate.sh +23 -23
  58. package/hooks/itil-fictional-defer-detect.sh +16 -16
  59. package/hooks/itil-fix-title-lifecycle-advisory.sh +11 -11
  60. package/hooks/itil-mid-loop-ask-detect.sh +14 -14
  61. package/hooks/itil-no-implement-draft-gate.sh +18 -18
  62. package/hooks/itil-pending-questions-surface.sh +11 -11
  63. package/hooks/itil-readme-refresh-discipline.sh +27 -27
  64. package/hooks/itil-rfc-oversight-nudge.sh +7 -7
  65. package/hooks/itil-rfc-trailer-advisory.sh +28 -28
  66. package/hooks/itil-runtime-sid-marker.sh +11 -11
  67. package/hooks/itil-story-mirror-migration-nudge.sh +7 -7
  68. package/hooks/lib/block-list.sh +17 -17
  69. package/hooks/lib/changeset-detect.sh +27 -27
  70. package/hooks/lib/claude-space-gate.sh +23 -15
  71. package/hooks/lib/command-detect.sh +12 -12
  72. package/hooks/lib/create-gate.sh +9 -39
  73. package/hooks/lib/detectors.sh +12 -12
  74. package/hooks/lib/readme-refresh-detect.sh +51 -51
  75. package/hooks/lib/runtime-sid.sh +12 -12
  76. package/hooks/lib/session-id.sh +28 -28
  77. package/hooks/lib/session-marker.sh +1 -1
  78. package/hooks/lib/staging-detect.sh +13 -13
  79. package/hooks/manage-problem-enforce-create.sh +16 -27
  80. package/hooks/p057-staging-trap-detect.sh +18 -18
  81. package/hooks/pre-publish-intake-gate.sh +5 -5
  82. package/hooks/staleness-check.sh +6 -6
  83. package/hooks-codex/hooks.json +57 -0
  84. package/lib/check-deferred-placeholder-staleness.sh +10 -10
  85. package/lib/check-outbound-responses-staleness.sh +2 -2
  86. package/lib/check-upstream-cache-staleness.sh +2 -2
  87. package/lib/derive-first-dispatch.sh +19 -19
  88. package/lib/enumerate-postrelease-kv-candidates.sh +18 -18
  89. package/lib/migrate-problems-layout.sh +12 -12
  90. package/lib/story-oversight.sh +27 -27
  91. package/package.json +16 -3
  92. package/scripts/catchup-scan.sh +25 -25
  93. package/scripts/check-fail-soft-skip-discipline.sh +10 -10
  94. package/scripts/check-fix-rfc-trace.sh +8 -8
  95. package/scripts/check-locale-discipline.sh +13 -13
  96. package/scripts/check-problems-readme-budget.sh +12 -12
  97. package/scripts/check-rfc-has-stories.sh +7 -7
  98. package/scripts/check-rfc-rejected-alternatives.sh +11 -11
  99. package/scripts/check-rfc-stories-ratified.sh +9 -9
  100. package/scripts/check-ticket-jtbd-ratification.sh +10 -10
  101. package/scripts/check-upstream-responses.sh +22 -22
  102. package/scripts/classify-readme-drift.sh +13 -13
  103. package/scripts/codex-agent.mjs +104 -0
  104. package/scripts/derive-release-vehicle.sh +23 -23
  105. package/scripts/detect-unoversighted-rfcs.sh +3 -3
  106. package/scripts/detect-unratified-stories-maps.sh +5 -5
  107. package/scripts/effort-tally.sh +10 -10
  108. package/scripts/evaluate-relevance.sh +16 -16
  109. package/scripts/mark-create-gate.sh +4 -4
  110. package/scripts/mark-story-oversight-confirmed.sh +14 -14
  111. package/scripts/migrate-story-status-mirror.sh +6 -6
  112. package/scripts/next-rfc-id.sh +5 -5
  113. package/scripts/plugin-exercise-index.sh +26 -26
  114. package/scripts/plugin-maturity-populate.sh +38 -38
  115. package/scripts/plugin-maturity-render.sh +26 -26
  116. package/scripts/plugin-validate-ci-gate.sh +14 -14
  117. package/scripts/reconcile-readme.sh +23 -23
  118. package/scripts/reconcile-rfcs.sh +13 -13
  119. package/scripts/reconcile-stories.sh +12 -12
  120. package/scripts/reconcile-story-maps.sh +6 -6
  121. package/scripts/render-story-map.mjs +24 -24
  122. package/scripts/render-story-map.sh +3 -3
  123. package/scripts/resolve-governance-plugin-dirs.sh +10 -10
  124. package/scripts/run-check-deferred-placeholder-staleness.sh +3 -3
  125. package/scripts/run-check-outbound-responses-staleness.sh +3 -3
  126. package/scripts/run-check-upstream-cache-staleness.sh +3 -3
  127. package/scripts/run-enumerate-postrelease-kv-candidates.sh +3 -3
  128. package/scripts/run-migrate-problems-layout.sh +3 -3
  129. package/scripts/skill-invocations.sh +29 -29
  130. package/scripts/story-map-edit.mjs +6 -6
  131. package/scripts/story-map-edit.sh +3 -3
  132. package/scripts/story-map-query.mjs +8 -8
  133. package/scripts/story-map-query.sh +3 -3
  134. package/scripts/update-jtbd-references-section.sh +8 -8
  135. package/scripts/update-problem-references-section.sh +12 -12
  136. package/scripts/update-problem-rfcs-section.sh +9 -9
  137. package/scripts/update-rfc-commits-section.sh +7 -7
  138. package/scripts/update-rfc-references-section.sh +3 -3
  139. package/scripts/update-story-references-section.sh +5 -5
  140. package/scripts/verify-iter-summary.sh +3 -3
  141. package/skills/capture-problem/REFERENCE.md +33 -33
  142. package/skills/capture-problem/SKILL.md +108 -108
  143. package/skills/capture-problem/agents/openai.yaml +3 -0
  144. package/skills/capture-rfc/SKILL.md +21 -323
  145. package/skills/capture-rfc/agents/openai.yaml +3 -0
  146. package/skills/capture-story/SKILL.md +65 -65
  147. package/skills/capture-story/agents/openai.yaml +3 -0
  148. package/skills/capture-story-map/SKILL.md +31 -31
  149. package/skills/capture-story-map/agents/openai.yaml +3 -0
  150. package/skills/check-upstream-responses/SKILL.md +38 -38
  151. package/skills/check-upstream-responses/agents/openai.yaml +3 -0
  152. package/skills/close-incident/SKILL.md +25 -25
  153. package/skills/close-incident/agents/openai.yaml +3 -0
  154. package/skills/link-incident/SKILL.md +22 -22
  155. package/skills/link-incident/agents/openai.yaml +3 -0
  156. package/skills/list-incidents/SKILL.md +9 -9
  157. package/skills/list-incidents/agents/openai.yaml +3 -0
  158. package/skills/list-problems/SKILL.md +17 -17
  159. package/skills/list-problems/agents/openai.yaml +3 -0
  160. package/skills/list-stories/SKILL.md +23 -23
  161. package/skills/list-stories/agents/openai.yaml +3 -0
  162. package/skills/list-story-maps/SKILL.md +9 -9
  163. package/skills/list-story-maps/agents/openai.yaml +3 -0
  164. package/skills/manage-incident/SKILL.md +59 -59
  165. package/skills/manage-incident/agents/openai.yaml +3 -0
  166. package/skills/manage-problem/SKILL.md +222 -222
  167. package/skills/manage-problem/agents/openai.yaml +3 -0
  168. package/skills/manage-rfc/SKILL.md +62 -62
  169. package/skills/manage-rfc/agents/openai.yaml +3 -0
  170. package/skills/manage-story/SKILL.md +49 -49
  171. package/skills/manage-story/agents/openai.yaml +3 -0
  172. package/skills/manage-story-map/SKILL.md +30 -30
  173. package/skills/manage-story-map/agents/openai.yaml +3 -0
  174. package/skills/mitigate-incident/SKILL.md +40 -40
  175. package/skills/mitigate-incident/agents/openai.yaml +3 -0
  176. package/skills/reconcile-readme/SKILL.md +28 -28
  177. package/skills/reconcile-readme/agents/openai.yaml +3 -0
  178. package/skills/reconcile-stories/SKILL.md +17 -17
  179. package/skills/reconcile-stories/agents/openai.yaml +3 -0
  180. package/skills/reconcile-story-maps/SKILL.md +11 -11
  181. package/skills/reconcile-story-maps/agents/openai.yaml +3 -0
  182. package/skills/report-upstream/SKILL.md +73 -73
  183. package/skills/report-upstream/agents/openai.yaml +3 -0
  184. package/skills/restore-incident/SKILL.md +28 -28
  185. package/skills/restore-incident/agents/openai.yaml +3 -0
  186. package/skills/review-problems/SKILL.md +129 -129
  187. package/skills/review-problems/agents/openai.yaml +3 -0
  188. package/skills/scaffold-intake/SKILL.md +26 -26
  189. package/skills/scaffold-intake/agents/openai.yaml +3 -0
  190. package/skills/transition-problem/SKILL.md +85 -85
  191. package/skills/transition-problem/agents/openai.yaml +3 -0
  192. package/skills/transition-problems/SKILL.md +69 -69
  193. package/skills/transition-problems/agents/openai.yaml +3 -0
  194. package/skills/update-upstream/SKILL.md +97 -97
  195. package/skills/update-upstream/agents/openai.yaml +3 -0
  196. package/skills/work-problem/SKILL.md +42 -42
  197. package/skills/work-problem/agents/openai.yaml +3 -0
  198. package/skills/work-problems/SKILL.md +327 -327
  199. package/skills/work-problems/agents/openai.yaml +3 -0
  200. package/skills-codex/capture-problem/REFERENCE.md +139 -0
  201. package/skills-codex/capture-problem/SKILL.md +438 -0
  202. package/skills-codex/capture-problem/agents/openai.yaml +3 -0
  203. package/skills-codex/capture-rfc/SKILL.md +45 -0
  204. package/skills-codex/capture-rfc/agents/openai.yaml +3 -0
  205. package/skills-codex/capture-story/SKILL.md +407 -0
  206. package/skills-codex/capture-story/agents/openai.yaml +3 -0
  207. package/skills-codex/capture-story-map/SKILL.md +286 -0
  208. package/skills-codex/capture-story-map/agents/openai.yaml +3 -0
  209. package/skills-codex/check-upstream-responses/SKILL.md +160 -0
  210. package/skills-codex/check-upstream-responses/agents/openai.yaml +3 -0
  211. package/skills-codex/close-incident/SKILL.md +192 -0
  212. package/skills-codex/close-incident/agents/openai.yaml +3 -0
  213. package/skills-codex/link-incident/SKILL.md +173 -0
  214. package/skills-codex/link-incident/agents/openai.yaml +3 -0
  215. package/skills-codex/list-incidents/SKILL.md +92 -0
  216. package/skills-codex/list-incidents/agents/openai.yaml +3 -0
  217. package/skills-codex/list-problems/SKILL.md +126 -0
  218. package/skills-codex/list-problems/agents/openai.yaml +3 -0
  219. package/skills-codex/list-stories/SKILL.md +170 -0
  220. package/skills-codex/list-stories/agents/openai.yaml +3 -0
  221. package/skills-codex/list-story-maps/SKILL.md +104 -0
  222. package/skills-codex/list-story-maps/agents/openai.yaml +3 -0
  223. package/skills-codex/manage-incident/SKILL.md +378 -0
  224. package/skills-codex/manage-incident/agents/openai.yaml +3 -0
  225. package/skills-codex/manage-problem/SKILL.md +1180 -0
  226. package/skills-codex/manage-problem/agents/openai.yaml +3 -0
  227. package/skills-codex/manage-rfc/SKILL.md +314 -0
  228. package/skills-codex/manage-rfc/agents/openai.yaml +3 -0
  229. package/skills-codex/manage-story/SKILL.md +284 -0
  230. package/skills-codex/manage-story/agents/openai.yaml +3 -0
  231. package/skills-codex/manage-story-map/SKILL.md +198 -0
  232. package/skills-codex/manage-story-map/agents/openai.yaml +3 -0
  233. package/skills-codex/mitigate-incident/SKILL.md +239 -0
  234. package/skills-codex/mitigate-incident/agents/openai.yaml +3 -0
  235. package/skills-codex/reconcile-readme/SKILL.md +175 -0
  236. package/skills-codex/reconcile-readme/agents/openai.yaml +3 -0
  237. package/skills-codex/reconcile-stories/SKILL.md +124 -0
  238. package/skills-codex/reconcile-stories/agents/openai.yaml +3 -0
  239. package/skills-codex/reconcile-story-maps/SKILL.md +81 -0
  240. package/skills-codex/reconcile-story-maps/agents/openai.yaml +3 -0
  241. package/skills-codex/report-upstream/SKILL.md +716 -0
  242. package/skills-codex/report-upstream/agents/openai.yaml +3 -0
  243. package/skills-codex/restore-incident/SKILL.md +216 -0
  244. package/skills-codex/restore-incident/agents/openai.yaml +3 -0
  245. package/skills-codex/review-problems/SKILL.md +524 -0
  246. package/skills-codex/review-problems/agents/openai.yaml +3 -0
  247. package/skills-codex/scaffold-intake/SKILL.md +209 -0
  248. package/skills-codex/scaffold-intake/agents/openai.yaml +3 -0
  249. package/skills-codex/scaffold-intake/templates/CONTRIBUTING.md.tmpl +31 -0
  250. package/skills-codex/scaffold-intake/templates/SECURITY.md.tmpl +39 -0
  251. package/skills-codex/scaffold-intake/templates/SUPPORT.md.tmpl +32 -0
  252. package/skills-codex/scaffold-intake/templates/config.yml.tmpl +8 -0
  253. package/skills-codex/scaffold-intake/templates/problem-report.yml.tmpl +114 -0
  254. package/skills-codex/transition-problem/SKILL.md +371 -0
  255. package/skills-codex/transition-problem/agents/openai.yaml +3 -0
  256. package/skills-codex/transition-problems/SKILL.md +310 -0
  257. package/skills-codex/transition-problems/agents/openai.yaml +3 -0
  258. package/skills-codex/update-upstream/SKILL.md +583 -0
  259. package/skills-codex/update-upstream/agents/openai.yaml +3 -0
  260. package/skills-codex/work-problem/SKILL.md +160 -0
  261. package/skills-codex/work-problem/agents/openai.yaml +3 -0
  262. package/skills-codex/work-problems/SKILL.md +58 -0
  263. package/skills-codex/work-problems/agents/openai.yaml +3 -0
  264. package/templates/story-map.css +1 -1
  265. package/bin/wr-itil-mark-rfc-capture-gate +0 -51
  266. package/scripts/mark-rfc-capture-gate.sh +0 -32
@@ -1,29 +1,29 @@
1
1
  ---
2
2
  name: wr-itil:check-upstream-responses
3
- description: Poll upstream issues and pull requests we've filed via `/wr-itil:report-upstream` and surface new comments or reviews, state changes, or label changes since last check. Reads `## Reported Upstream` back-link sections in local problem tickets, queries GitHub read-only, diffs against `docs/problems/.outbound-responses-cache.json`, and appends an audit-log entry to `docs/audits/outbound-responses-log.md`. Outbound symmetric counterpart to ADR-062's inbound discovery pipeline (P249 Phase 1).
3
+ description: Poll upstream issues and pull requests we've filed via `/wr-itil:report-upstream` and surface new comments or reviews, state changes, or label changes since last check. Reads `## Reported Upstream` back-link sections in local problem tickets, queries GitHub read-only, diffs against `docs/problems/.outbound-responses-cache.json`, and appends an audit-log entry to `docs/audits/outbound-responses-log.md`. Outbound symmetric counterpart to the "Inbound upstream-report discovery + assessment pipeline (peer of )" architecture rule's inbound discovery pipeline (the "No process for issue reporters to check for responses — symmetric gap to inbound discovery" problem Phase 1).
4
4
  allowed-tools: Read, Edit, Write, Bash, Glob, Grep
5
5
  ---
6
6
 
7
7
  # Check Upstream Responses — Outbound Response-Check Skill
8
8
 
9
- Poll the upstream issues we have filed via `/wr-itil:report-upstream` and surface new responses (comments, state changes, label changes) since the last check. This skill closes the outbound half of the feedback loop that ADR-062's inbound assessment pipeline opens — together they form the bidirectional cross-repo coordination surface JTBD-004 names.
9
+ Poll the upstream issues we have filed via `/wr-itil:report-upstream` and surface new responses (comments, state changes, label changes) since the last check. This skill closes the outbound half of the feedback loop that the "Inbound upstream-report discovery + assessment pipeline (peer of )" architecture rule's inbound assessment pipeline opens — together they form the bidirectional cross-repo coordination surface the ": Connect Agents Across Repos to Collaborate" user outcome names.
10
10
 
11
- This is **Phase 1** of P249. Phase 1 covers the **us-as-upstream-reporter** half (we polling our own filed-upstream reports). Phase 2 — the external-reporter-as-our-reporter half (plugin users polling responses to reports they filed against this repo) — is deferred to a separate iter.
11
+ This is **Phase 1** of the "No process for issue reporters to check for responses — symmetric gap to inbound discovery" problem. Phase 1 covers the **us-as-upstream-reporter** half (we polling our own filed-upstream reports). Phase 2 — the external-reporter-as-our-reporter half (plugin users polling responses to reports they filed against this repo) — is deferred to a separate iter.
12
12
 
13
13
  ## Scope
14
14
 
15
15
  In scope:
16
- - Scan `docs/problems/**/*.md` for `## Reported Upstream` back-link sections (the contract section written by `/wr-itil:report-upstream` Step 7 — see [ADR-024](../../../../docs/decisions/024-cross-project-problem-reporting-contract.proposed.md) Step 7).
17
- - For each ticket with a back-link, extract the `- **URL**:` line and poll the upstream artefact. Read the `- **Disclosure path**:` line to pick the subcommand: any pull-request path uses `gh pr view` plus a read-only `gh api` call for inline review comments; anything else, **including an absent line**, uses `gh issue view`. Absent means a ticket written before ADR-117, which could only have been filed as a public issue — so it is read as an issue, with no probe.
18
- - Diff against `docs/problems/.outbound-responses-cache.json` (cache file mirroring the inbound `.upstream-cache.json` shape per ADR-031 § "Cache files live under docs/problems/").
16
+ - Scan `docs/problems/**/*.md` for `## Reported Upstream` back-link sections (the contract section written by `/wr-itil:report-upstream` Step 7 — see [the "Cross-project problem-reporting contract — `report-upstream` skill in `@windyroad/itil`" architecture rule](../../../../docs/decisions/024-cross-project-problem-reporting-contract.proposed.md) Step 7).
17
+ - For each ticket with a back-link, extract the `- **URL**:` line and poll the upstream artefact. Read the `- **Disclosure path**:` line to pick the subcommand: any pull-request path uses `gh pr view` plus a read-only `gh api` call for inline review comments; anything else, **including an absent line**, uses `gh issue view`. Absent means a ticket written before the "Prefer an upstream pull request over an issue when the upstream accepts pull requests" architecture rule, which could only have been filed as a public issue — so it is read as an issue, with no probe.
18
+ - Diff against `docs/problems/.outbound-responses-cache.json` (cache file mirroring the inbound `.upstream-cache.json` shape per the "Problem-ticket directory layout — per-state subdirectories under `docs/problems/`" architecture rule § "Cache files live under docs/problems/").
19
19
  - Surface five response classes: NEW (new comments, reviews, or other upstream activity), STATE (state change), LABEL (label change), NONE (no change), FAIL (gh poll error).
20
20
  - Update the cache file with the latest seen state.
21
- - Append a timestamped pass entry to `docs/audits/outbound-responses-log.md` (audit-log mirroring `docs/audits/inbound-discovery-log.md` per ADR-062's audit-log surface contract).
21
+ - Append a timestamped pass entry to `docs/audits/outbound-responses-log.md` (audit-log mirroring `docs/audits/inbound-discovery-log.md` per the "Inbound upstream-report discovery + assessment pipeline (peer of )" architecture rule's audit-log surface contract).
22
22
 
23
23
  Out of scope:
24
- - Posting comments back to the upstream issue or pull request. The skill is **read-only externally** — does not trip ADR-028's external-comms gate.
25
- - Auto-transitioning local ticket lifecycle based on upstream state change (that is P080's bidirectional update axis, separate).
26
- - Polling against the inbound-discovery channels (`docs/problems/.upstream-channels.json`). That is the inverse axis, owned by `/wr-itil:review-problems` Step 4.5 per ADR-062.
24
+ - Posting comments back to the upstream issue or pull request. The skill is **read-only externally** — does not trip the "External-comms gate — voice-tone + risk/leak evaluators on shared PreToolUse surface" architecture rule's external-comms gate.
25
+ - Auto-transitioning local ticket lifecycle based on upstream state change (that is the "Problem 080: No bidirectional update of upstream-reported problems — local lifecycle transitions never propagate back to the reporter" problem's bidirectional update axis, separate).
26
+ - Polling against the inbound-discovery channels (`docs/problems/.upstream-channels.json`). That is the inverse axis, owned by `/wr-itil:review-problems` Step 4.5 per the "Inbound upstream-report discovery + assessment pipeline (peer of )" architecture rule.
27
27
  - Phase 2 external-reporter-as-our-reporter surface (deferred).
28
28
 
29
29
  ## Invocation
@@ -37,14 +37,14 @@ Out of scope:
37
37
  [--force-recheck] ignore cache; treat all as new
38
38
  ```
39
39
 
40
- `/wr-itil:work-problems` Step 0d pre-flights this skill when the outbound-responses cache is stale or missing AND back-link tickets exist (sibling to Step 0b inbound cache check per ADR-062 Confirmation #5; P220 closed the cadence gap). Direct user invocation remains a first-class surface.
40
+ `/wr-itil:work-problems` Step 0d pre-flights this skill when the outbound-responses cache is stale or missing AND back-link tickets exist (sibling to Step 0b inbound cache check per the "Inbound upstream-report discovery + assessment pipeline (peer of )" architecture rule Confirmation #5; the "manage-problem has no cadence for checking upstream-bound tickets" problem closed the cadence gap). Direct user invocation remains a first-class surface.
41
41
 
42
42
  ## AFK behaviour
43
43
 
44
44
  This skill is **AFK-safe by construction**:
45
45
 
46
- - Read-only `gh issue view`, `gh pr view`, and pull-request review-comment `gh api` calls — none fires ADR-028's external-comms gate.
47
- - No `AskUserQuestion` calls — five flag-based knobs (`--problems-dir`, `--cache-file`, `--audit-log`, `--ticket`, `--force-recheck`) are the user-direction surface per CLAUDE.md `act on obvious, AskUserQuestion for ambiguous, NEVER prose-ask` (P085).
46
+ - Read-only `gh issue view`, `gh pr view`, and pull-request review-comment `gh api` calls — none fires the "External-comms gate — voice-tone + risk/leak evaluators on shared PreToolUse surface" architecture rule's external-comms gate.
47
+ - No `AskUserQuestion` calls — five flag-based knobs (`--problems-dir`, `--cache-file`, `--audit-log`, `--ticket`, `--force-recheck`) are the user-direction surface per CLAUDE.md `act on obvious, AskUserQuestion for ambiguous, NEVER prose-ask` (the "Problem 085: Assistant asks for input when the next step is obvious, AND uses prose asks instead of AskUserQuestion when input is actually needed" problem).
48
48
  - Partial-failure exit code (2) lets AFK orchestrators distinguish "some upstream URLs were unreachable" from "everything broke" without halting the loop.
49
49
 
50
50
  ## Steps
@@ -57,11 +57,11 @@ Invoke the helper:
57
57
  wr-itil-check-upstream-responses
58
58
  ```
59
59
 
60
- The `wr-itil-check-upstream-responses` command is a `$PATH`-resolved shim shipped in `packages/itil/bin/` that dispatches the canonical `packages/itil/scripts/check-upstream-responses.sh` body. Per [ADR-049](../../../../docs/decisions/049-plugin-script-resolution-via-bin-on-path.proposed.md) — never invoke the canonical script via repo-relative path; the path does not resolve in adopter trees.
60
+ The `wr-itil-check-upstream-responses` command is a `$PATH`-resolved shim shipped in `packages/itil/bin/` that dispatches the canonical `packages/itil/scripts/check-upstream-responses.sh` body. Per [the "Plugin-bundled scripts invoked from SKILL.md resolve via `bin/` on `$PATH`" architecture rule](../../../../docs/decisions/049-plugin-script-resolution-via-bin-on-path.proposed.md) — never invoke the canonical script via repo-relative path; the path does not resolve in adopter trees.
61
61
 
62
62
  The script:
63
63
 
64
- 1. Walks `<problems-dir>` (both flat layout `<NNN>-*.<state>.md` AND per-state subdir layout `<state>/<NNN>-*.md` per RFC-002 dual-tolerant migration).
64
+ 1. Walks `<problems-dir>` (both flat layout `<NNN>-*.<state>.md` AND per-state subdir layout `<state>/<NNN>-*.md` per the ": docs/problems/ flat layout migration — per-state subdirs + adopter auto-migration" release design dual-tolerant migration).
65
65
  2. For each ticket file, extracts the `## Reported Upstream` URL line. Tickets without that section are silently skipped.
66
66
  3. For each URL, calls `gh issue view --json comments,state,labels,updatedAt` or `gh pr view --json comments,reviews,state,labels,updatedAt` (chosen by the disclosure path). Pull requests also fetch inline review comments through `gh api`. The response count and response-specific timestamp combine all three response surfaces; parent metadata changes do not masquerade as review activity. A merged pull request reports `state=MERGED`, distinct from `CLOSED`, so a rejected one is not recorded as a resolution.
67
67
  4. Compares the response against the cached entry for that ticket and emits one of: NEW / STATE / LABEL / NONE / FAIL.
@@ -83,7 +83,7 @@ Read the stdout output and summarise the response classes in chat for the user.
83
83
  - NONE — quiet; only mention the count, not each ticket.
84
84
  - FAIL — call out per-ticket reasons so the user can investigate (URL changed, repo renamed, auth issue).
85
85
 
86
- ### 3. Commit per ADR-014
86
+ ### 3. Commit per the "Governance Skills Commit Their Own Completed Work" architecture rule
87
87
 
88
88
  The cache file and audit-log file ride a single commit:
89
89
 
@@ -92,16 +92,16 @@ git add docs/problems/.outbound-responses-cache.json docs/audits/outbound-respon
92
92
  git commit -m "chore(problems): check upstream responses — <N> polled, <M> new"
93
93
  ```
94
94
 
95
- See [ADR-014](../../../../docs/decisions/014-governance-skills-commit-their-own-work.proposed.md) commit-message-convention table for the canonical row.
95
+ See [the "Governance Skills Commit Their Own Completed Work" architecture rule](../../../../docs/decisions/014-governance-skills-commit-their-own-work.proposed.md) commit-message-convention table for the canonical row.
96
96
 
97
- If the cumulative pipeline risk lands above appetite and `AskUserQuestion` is unavailable, apply the [ADR-013](../../../../docs/decisions/013-structured-user-interaction-for-governance-decisions.proposed.md) Rule 6 non-interactive fail-safe: skip the commit and report the uncommitted state.
97
+ If the cumulative pipeline risk lands above appetite and `AskUserQuestion` is unavailable, apply the [the "Structured User Interaction for Governance-Skill Decisions" architecture rule](../../../../docs/decisions/013-structured-user-interaction-for-governance-decisions.proposed.md) Rule 6 non-interactive fail-safe: skip the commit and report the uncommitted state.
98
98
 
99
99
  ## When invoked
100
100
 
101
101
  Three invocation surfaces:
102
102
 
103
103
  1. **Direct user invocation** — `/wr-itil:check-upstream-responses` (or with flags). The default user-facing surface.
104
- 2. **AFK orchestrator pre-flight** — `/wr-itil:work-problems` Step 0d invokes this skill when the outbound-responses cache is stale, missing, or has `last_checked: null` AND back-link tickets exist, mirroring Step 0b's inbound staleness check per ADR-062 Confirmation #5. Cache TTL defaults to 86400s (24h) symmetric with the inbound axis. P220 closed the cadence gap.
104
+ 2. **AFK orchestrator pre-flight** — `/wr-itil:work-problems` Step 0d invokes this skill when the outbound-responses cache is stale, missing, or has `last_checked: null` AND back-link tickets exist, mirroring Step 0b's inbound staleness check per the "Inbound upstream-report discovery + assessment pipeline (peer of )" architecture rule Confirmation #5. Cache TTL defaults to 86400s (24h) symmetric with the inbound axis. the "manage-problem has no cadence for checking upstream-bound tickets" problem closed the cadence gap.
105
105
  3. **Manual investigation during a problem-management session** — when a maintainer wants to see if any upstream reports moved before transitioning a `verifying` ticket back to `closed`. Foreground synchronous; the maintainer reads the inline summary and decides next steps.
106
106
 
107
107
  ## Confirmation
@@ -111,39 +111,39 @@ Three invocation surfaces:
111
111
  This skill's contract holds when:
112
112
 
113
113
  1. The script `packages/itil/scripts/check-upstream-responses.sh` is read-only externally — `gh issue view`, `gh pr view`, and a pull-request review-comment `gh api` read only; it makes no comment, create, edit, close, or write API call.
114
- 2. The script extracts the URL from `## Reported Upstream` sections matching the format `- **URL**: <url>` per ADR-024 Step 7's back-link contract.
114
+ 2. The script extracts the URL from `## Reported Upstream` sections matching the format `- **URL**: <url>` per the "Cross-project problem-reporting contract — `report-upstream` skill in `@windyroad/itil`" architecture rule Step 7's back-link contract.
115
115
  3. After a successful pass, the cache file exists, is valid JSON, and contains a `tickets.<P<NNN>>` entry for every polled ticket.
116
116
  4. After a successful pass, the audit-log file exists and has a new `## YYYY-MM-DDTHH:MM:SSZ` heading appended.
117
117
  5. The skill is AFK-safe: zero `AskUserQuestion` calls, zero external-comms gate triggers.
118
118
  6. The exit code distinguishes success (0), error (1), and partial failure (2) so AFK orchestrators can branch correctly.
119
- 7. **Staleness contract (P220)**: TTL defaults to 86400s (24h) symmetric with the inbound axis. Override via `ttl_seconds` field in the cache file. The Step 0d pre-flight helper at `packages/itil/lib/check-outbound-responses-staleness.sh` MUST stay symmetric with this contract — any change to TTL semantics MUST update the helper, the Step 0d SKILL block in `/wr-itil:work-problems`, and this Confirmation #7 in the same commit.
119
+ 7. **Staleness contract (the "manage-problem has no cadence for checking upstream-bound tickets" problem)**: TTL defaults to 86400s (24h) symmetric with the inbound axis. Override via `ttl_seconds` field in the cache file. The Step 0d pre-flight helper at `packages/itil/lib/check-outbound-responses-staleness.sh` MUST stay symmetric with this contract — any change to TTL semantics MUST update the helper, the Step 0d SKILL block in `/wr-itil:work-problems`, and this Confirmation #7 in the same commit.
120
120
 
121
121
  ## ADR alignment
122
122
 
123
- - **ADR-014** — governance skills commit their own work. Cache file + audit-log ride a single commit per pass. ADR-014's commit-message-convention table is amended in the same commit as this skill ships to add the canonical row.
124
- - **ADR-024** — cross-project problem-reporting contract. The `## Reported Upstream` back-link section (Step 7) is the source of truth this skill reads. ADR-024's Confirmation section is amended in the same commit to record that the back-link section's URL field is now a load-bearing contract surface for two skills (one writes, one reads).
125
- - **ADR-031** — problem-ticket directory layout. Cache file lives under `docs/problems/` per the same precedent that placed `.upstream-cache.json` and `.upstream-channels.json` there for the inbound axis.
126
- - **ADR-032** — governance skill invocation patterns. Foreground synchronous; no subagent dispatch needed.
127
- - **ADR-037** — skill testing strategy. Behavioural bats at `packages/itil/scripts/test/check-upstream-responses.bats` (script-level) covers the contract.
128
- - **ADR-038** — progressive disclosure. Per-row stdout output ≤ 150 bytes; the agent expands per-ticket detail on demand.
129
- - **ADR-049** — bin shim. Script invoked as `wr-itil-check-upstream-responses`, not via repo-relative `bash <path>`.
130
- - **ADR-062** — inbound upstream-report discovery + assessment pipeline. This skill is the outbound symmetric counterpart; ADR-062 `## Related` is amended in the same commit to forward-point at this skill.
123
+ - **the "Governance Skills Commit Their Own Completed Work" architecture rule** — governance skills commit their own work. Cache file + audit-log ride a single commit per pass. the "Governance Skills Commit Their Own Completed Work" architecture rule's commit-message-convention table is amended in the same commit as this skill ships to add the canonical row.
124
+ - **the "Cross-project problem-reporting contract — `report-upstream` skill in `@windyroad/itil`" architecture rule** — cross-project problem-reporting contract. The `## Reported Upstream` back-link section (Step 7) is the source of truth this skill reads. the "Cross-project problem-reporting contract — `report-upstream` skill in `@windyroad/itil`" architecture rule's Confirmation section is amended in the same commit to record that the back-link section's URL field is now a load-bearing contract surface for two skills (one writes, one reads).
125
+ - **the "Problem-ticket directory layout — per-state subdirectories under `docs/problems/`" architecture rule** — problem-ticket directory layout. Cache file lives under `docs/problems/` per the same precedent that placed `.upstream-cache.json` and `.upstream-channels.json` there for the inbound axis.
126
+ - **the "Governance skill invocation patterns — foreground + background with deferred-question resumption" architecture rule** — governance skill invocation patterns. Foreground synchronous; no subagent dispatch needed.
127
+ - **the "Skill testing strategy — contract-assertion bats companion to" architecture rule** — skill testing strategy. Behavioural bats at `packages/itil/scripts/test/check-upstream-responses.bats` (script-level) covers the contract.
128
+ - **the "Progressive disclosure + once-per-session budget for UserPromptSubmit governance prose" architecture rule** — progressive disclosure. Per-row stdout output ≤ 150 bytes; the agent expands per-ticket detail on demand.
129
+ - **the "Plugin-bundled scripts invoked from SKILL.md resolve via `bin/` on `$PATH`" architecture rule** — bin shim. Script invoked as `wr-itil-check-upstream-responses`, not via repo-relative `bash <path>`.
130
+ - **the "Inbound upstream-report discovery + assessment pipeline (peer of )" architecture rule** — inbound upstream-report discovery + assessment pipeline. This skill is the outbound symmetric counterpart; the "Inbound upstream-report discovery + assessment pipeline (peer of )" architecture rule `## Related` is amended in the same commit to forward-point at this skill.
131
131
 
132
132
  ## Related
133
133
 
134
134
  - `packages/itil/scripts/check-upstream-responses.sh` — the diagnose+act script body.
135
135
  - `packages/itil/scripts/test/check-upstream-responses.bats` — behavioural bats covering the script contract.
136
136
  - `packages/itil/skills/report-upstream/SKILL.md` — the writer of the `## Reported Upstream` section this skill reads.
137
- - `packages/itil/skills/review-problems/SKILL.md` — the inbound axis sibling (Step 4.5 inbound-discovery pass per ADR-062).
137
+ - `packages/itil/skills/review-problems/SKILL.md` — the inbound axis sibling (Step 4.5 inbound-discovery pass per the "Inbound upstream-report discovery + assessment pipeline (peer of )" architecture rule).
138
138
  - `docs/audits/inbound-discovery-log.md` — inbound audit-log; symmetric peer of `docs/audits/outbound-responses-log.md`.
139
139
  - `docs/problems/.upstream-cache.json` — inbound cache; symmetric peer of `docs/problems/.outbound-responses-cache.json`.
140
140
  - `docs/decisions/024-cross-project-problem-reporting-contract.proposed.md` — outbound contract; back-link section is the source of truth.
141
141
  - `docs/decisions/062-inbound-upstream-report-discovery-assessment-pipeline.proposed.md` — inbound discovery; this skill is the outbound counterpart.
142
- - **P249** (`docs/problems/open/249-no-process-for-reporters-to-check-for-responses-symmetric-to-inbound-discovery.md`) — driver ticket. Phase 1 (us-as-upstream-reporter) ships here; Phase 2 (external-reporter-as-our-reporter) deferred.
143
- - **P080** (`docs/problems/open/080-no-bidirectional-update-of-upstream-reported-problems.md`) — inverse axis (we push local status BACK to upstream issues we ingested). Composes with this skill.
144
- - **P229** — inbound discovery ack-comment shape gap (verdict-shaped acks). Inverse-shape sibling on the inbound axis.
145
- - **JTBD-004** — Connect Agents Across Repos to Collaborate (primary anchor).
146
- - **JTBD-006** — Progress the Backlog While I'm Away (AFK-safe).
147
- - **JTBD-001** — Enforce Governance Without Slowing Down (eliminates manual upstream polling).
148
- - **JTBD-201** — Restore Service Fast with an Audit Trail (audit-log replay).
149
- - **JTBD-202** — Run Pre-Flight Governance Checks Before Release or Handover (state-change signals before retro / release).
142
+ - **the "No process for issue reporters to check for responses — symmetric gap to inbound discovery" problem** (`docs/problems/open/249-no-process-for-reporters-to-check-for-responses-symmetric-to-inbound-discovery.md`) — driver ticket. Phase 1 (us-as-upstream-reporter) ships here; Phase 2 (external-reporter-as-our-reporter) deferred.
143
+ - **the "Problem 080: No bidirectional update of upstream-reported problems — local lifecycle transitions never propagate back to the reporter" problem** (`docs/problems/open/080-no-bidirectional-update-of-upstream-reported-problems.md`) — inverse axis (we push local status BACK to upstream issues we ingested). Composes with this skill.
144
+ - **the "Inbound-discovery ack comments are bureaucratic, not verdict-shaped ( violation)" problem** — inbound discovery ack-comment shape gap (verdict-shaped acks). Inverse-shape sibling on the inbound axis.
145
+ - **the ": Connect Agents Across Repos to Collaborate" user outcome** — Connect Agents Across Repos to Collaborate (primary anchor).
146
+ - **the ": Progress the Backlog While I'm Away" user outcome** — Progress the Backlog While I'm Away (AFK-safe).
147
+ - **the ": Enforce Governance Without Slowing Down" user outcome** — Enforce Governance Without Slowing Down (eliminates manual upstream polling).
148
+ - **the "Restore Service Fast with an Audit Trail" user outcome** — Restore Service Fast with an Audit Trail (audit-log replay).
149
+ - **the "Run Pre-Flight Governance Checks Before Release or Handover" user outcome** — Run Pre-Flight Governance Checks Before Release or Handover (state-change signals before retro / release).
@@ -0,0 +1,3 @@
1
+ interface:
2
+ display_name: "WR ITIL: Check Upstream Responses"
3
+ short_description: "Poll reported upstream issues and pull requests."
@@ -6,9 +6,9 @@ allowed-tools: Read, Write, Edit, Bash, Glob, Grep
6
6
 
7
7
  # Close Incident
8
8
 
9
- Close a restored incident. Closing is the final lifecycle transition — once closed, the incident file is archival and does not appear in active incident views. The close operation is gated on the Linked Problem reaching an acceptable terminal state, or on the incident carrying a documented "No Problem" justification. The gate exists so the problem-handoff invariant (JTBD-201) is preserved: every incident either tracks to a root cause or carries an explicit note that none is required.
9
+ Close a restored incident. Closing is the final lifecycle transition — once closed, the incident file is archival and does not appear in active incident views. The close operation is gated on the Linked Problem reaching an acceptable terminal state, or on the incident carrying a documented "No Problem" justification. The gate exists so the problem-handoff invariant (the "Restore Service Fast with an Audit Trail" user outcome) is preserved: every incident either tracks to a root cause or carries an explicit note that none is required.
10
10
 
11
- This skill is the P071 phased-landing split of `/wr-itil:manage-incident <I> close` per ADR-010 amended Skill Granularity rule: one skill per distinct user intent. The argument `<I>` is a data parameter, permitted under the amendment. The original `/wr-itil:manage-incident <I> close` subcommand route remains as a thin-router forwarder during the deprecation window but is scheduled for removal in `@windyroad/itil`'s next major version.
11
+ This skill is the "Problem 071: Argument-based skill subcommands are not discoverable in Claude Code autocomplete" problem phased-landing split of `/wr-itil:manage-incident <I> close` per the "Rename `wr-problem` Plugin to `wr-itil`" architecture rule amended Skill Granularity rule: one skill per distinct user intent. The argument `<I>` is a data parameter, permitted under the amendment. The original `/wr-itil:manage-incident <I> close` subcommand route remains as a thin-router forwarder during the deprecation window but is scheduled for removal in `@windyroad/itil`'s next major version.
12
12
 
13
13
  ## Arguments
14
14
 
@@ -18,7 +18,7 @@ This skill is the P071 phased-landing split of `/wr-itil:manage-incident <I> clo
18
18
 
19
19
  If `$ARGUMENTS` is empty or malformed, read the message from the arguments and report the expected shape. No AskUserQuestion — the gate itself is a hard check with a message, and an empty-arguments case is a user misinvocation, not a decisional branch.
20
20
 
21
- ## Close gate (ADR-011 + ADR-022)
21
+ ## Close gate (the "Add `manage-incident` Skill to `wr-itil` Plugin" architecture rule + the "Problem lifecycle — add a Verification Pending status between Known Error and Closed" architecture rule)
22
22
 
23
23
  The close operation checks the Linked Problem's file suffix:
24
24
 
@@ -26,7 +26,7 @@ The close operation checks the Linked Problem's file suffix:
26
26
  |----------------------|-------------|----------------|-----------|
27
27
  | Open | `.open.md` | **Blocked** | Root cause work not yet converged. The problem may still reclassify, re-scope, or need a fix before the incident can be safely archived. |
28
28
  | Known Error | `.known-error.md` | Allowed | Root cause is identified and understood; a workaround exists or the risk is accepted. Incident may close. |
29
- | Verifying | `.verifying.md` | Allowed (ADR-022) | Fix released, root cause confirmed, post-release verification pending. Per ADR-022, verifying satisfies the "Restored → Closed" handoff at least as well as Known Error did under the old contract. |
29
+ | Verifying | `.verifying.md` | Allowed (the "Problem lifecycle — add a Verification Pending status between Known Error and Closed" architecture rule) | Fix released, root cause confirmed, post-release verification pending. Per the "Problem lifecycle — add a Verification Pending status between Known Error and Closed" architecture rule, verifying satisfies the "Restored → Closed" handoff at least as well as Known Error did under the old contract. |
30
30
  | Closed | `.closed.md` | Allowed | Problem fully resolved. Incident may close. |
31
31
 
32
32
  If the incident carries a `## No Problem` section (instead of a Linked Problem), the gate is bypassed — the user has documented why no problem record is required.
@@ -63,7 +63,7 @@ Branch on which section is present:
63
63
  **Case A — `## Linked Problem` present**:
64
64
 
65
65
  1. Extract the problem ID `P<NNN>` from the section.
66
- 2. Locate the problem file. Dual-tolerant lookup spans flat layout AND per-state subdir layout (RFC-002 migration window):
66
+ 2. Locate the problem file. Dual-tolerant lookup spans flat layout AND per-state subdir layout (the ": docs/problems/ flat layout migration — per-state subdirs + adopter auto-migration" release design migration window):
67
67
 
68
68
  ```bash
69
69
  ls docs/problems/<NNN>-*.md docs/problems/*/<NNN>-*.md 2>/dev/null | head -1
@@ -113,22 +113,22 @@ Report:
113
113
  - The linked problem ID (if any) and its state at close-time, OR the No Problem justification.
114
114
  - Any quality-check warnings.
115
115
 
116
- ### 7. Commit the completed work (ADR-014)
116
+ ### 7. Commit the completed work (the "Governance Skills Commit Their Own Completed Work" architecture rule)
117
117
 
118
- Per ADR-014, governance skills commit their own work.
118
+ Per the "Governance Skills Commit Their Own Completed Work" architecture rule, governance skills commit their own work.
119
119
 
120
120
  1. `git add` the renamed incident file.
121
- 2. Delegate to `wr-risk-scorer:pipeline` (subagent_type: `wr-risk-scorer:pipeline`) to assess the staged changes and create a bypass marker. If the subagent type is not available (spawned subagent surface), invoke `/wr-risk-scorer:assess-release` via the Skill tool instead — per ADR-015 it wraps the same pipeline subagent.
121
+ 2. Delegate to `wr-risk-scorer:pipeline` (subagent_type: `wr-risk-scorer:pipeline`) to assess the staged changes and create a bypass marker. If the subagent type is not available (spawned subagent surface), invoke `/wr-risk-scorer:assess-release` via the Skill tool instead — per the "On-Demand Assessment Skills for Governance Plugins" architecture rule it wraps the same pipeline subagent.
122
122
  3. `git commit -m "docs(incidents): close I<NNN>"`.
123
123
  4. If risk is above appetite: report the above-appetite state clearly and exit without committing (close-incident does not carry `AskUserQuestion` in its allowed-tools — the gate is a hard check). The user can re-run with `--force` semantics by invoking the commit manually if they choose.
124
124
 
125
- ### 8. Auto-release when changesets are queued (ADR-020)
125
+ ### 8. Auto-release when changesets are queued (the "Governance skills auto-release when changesets are queued" architecture rule)
126
126
 
127
- **Skip this step if the skill is running inside an AFK orchestrator.** Orchestrators handle release cadence themselves per ADR-018 (Step 6.5). When in doubt, defer to the orchestrator by skipping this step.
127
+ **Skip this step if the skill is running inside an AFK orchestrator.** Orchestrators handle release cadence themselves per the "Inter-iteration release cadence for AFK loops" architecture rule (Step 6.5). When in doubt, defer to the orchestrator by skipping this step.
128
128
 
129
129
  Otherwise, after the commit in step 7 lands, drain the release queue so the close lands on npm without requiring manual user action.
130
130
 
131
- **Mechanism — delegate, do not re-implement scoring (per ADR-015):**
131
+ **Mechanism — delegate, do not re-implement scoring (per the "On-Demand Assessment Skills for Governance Plugins" architecture rule):**
132
132
 
133
133
  1. Invoke the release scorer. Two paths are valid:
134
134
  - **Primary**: delegate to subagent type `wr-risk-scorer:pipeline` via the Agent tool.
@@ -136,7 +136,7 @@ Otherwise, after the commit in step 7 lands, drain the release queue so the clos
136
136
  2. Read the returned `RISK_SCORES: commit=X push=Y release=Z` line.
137
137
  3. **Drain condition**: if `push` and `release` are both within appetite (≤ 4/25, "Low" band per `RISK-POLICY.md`), AND `.changeset/` is non-empty, proceed to the drain action. Otherwise, skip the drain and report the unreleased state.
138
138
 
139
- **Drain action (non-interactive, policy-authorised per ADR-013 Rule 6):**
139
+ **Drain action (non-interactive, policy-authorised per the "Structured User Interaction for Governance-Skill Decisions" architecture rule Rule 6):**
140
140
 
141
141
  1. Run `npm run push:watch` (push + wait for CI to pass).
142
142
  2. If `.changeset/` remains non-empty after push (i.e. a release PR is pending), run `npm run release:watch` (merge the release PR + wait for npm publish).
@@ -161,19 +161,19 @@ If the user wants any of the above, the skill reports the appropriate sibling an
161
161
 
162
162
  ## Related
163
163
 
164
- - **P071** (`docs/problems/071-argument-based-skill-subcommands-are-not-discoverable.open.md`) — originating ticket. This skill is slice 6c of the P071 phased-landing plan.
165
- - **ADR-010 amended** (`docs/decisions/010-rename-wr-problem-to-wr-itil.proposed.md` — Skill Granularity section) — canonical skill-split naming + forwarder contract + `deprecated-arguments: true` frontmatter flag.
166
- - **ADR-011** (`docs/decisions/011-manage-incident-skill.proposed.md`) — incident lifecycle file-suffix conventions (`.investigating.md` / `.mitigating.md` / `.restored.md` / `.closed.md`) + close-gate-on-linked-problem rule.
167
- - **ADR-022** (`docs/decisions/022-problem-lifecycle-verification-pending-status.proposed.md`) — `.verifying.md` status; extends the close gate to accept `.verifying.md` alongside `.known-error.md` and `.closed.md`.
168
- - **ADR-013** Rule 1 — structured user interaction (forwarder emits systemMessage for deprecation notice; gate-blocks are hard-fail messages, not prompts).
169
- - **ADR-013** Rule 6 — policy-within-appetite non-interactive actions (release drain).
170
- - **ADR-014** — governance skills commit their own work.
171
- - **ADR-015** — release scorer delegation pattern.
172
- - **ADR-020** — auto-release when changesets are queued.
173
- - **ADR-037** (`docs/decisions/037-skill-testing-strategy.proposed.md`) — contract-assertion bats pattern applied to this skill.
174
- - **JTBD-001** (`docs/jtbd/developer/JTBD-001-enforce-governance.proposed.md`) — discoverable surface via `/wr-itil:` autocomplete.
175
- - **JTBD-101** (`docs/jtbd/plugin-developer/JTBD-101-extend-suite.proposed.md`) — one skill per distinct user intent.
176
- - **JTBD-201** (`docs/jtbd/tech-lead/JTBD-201-restore-service-fast.proposed.md`) — close gate preserves the problem-handoff audit trail.
164
+ - **the "Problem 071: Argument-based skill subcommands are not discoverable in Claude Code autocomplete" problem** (`docs/problems/071-argument-based-skill-subcommands-are-not-discoverable.open.md`) — originating ticket. This skill is slice 6c of the "Problem 071: Argument-based skill subcommands are not discoverable in Claude Code autocomplete" problem phased-landing plan.
165
+ - **the "Rename `wr-problem` Plugin to `wr-itil`" architecture rule amended** (`docs/decisions/010-rename-wr-problem-to-wr-itil.proposed.md` — Skill Granularity section) — canonical skill-split naming + forwarder contract + `deprecated-arguments: true` frontmatter flag.
166
+ - **the "Add `manage-incident` Skill to `wr-itil` Plugin" architecture rule** (`docs/decisions/011-manage-incident-skill.proposed.md`) — incident lifecycle file-suffix conventions (`.investigating.md` / `.mitigating.md` / `.restored.md` / `.closed.md`) + close-gate-on-linked-problem rule.
167
+ - **the "Problem lifecycle — add a Verification Pending status between Known Error and Closed" architecture rule** (`docs/decisions/022-problem-lifecycle-verification-pending-status.proposed.md`) — `.verifying.md` status; extends the close gate to accept `.verifying.md` alongside `.known-error.md` and `.closed.md`.
168
+ - **the "Structured User Interaction for Governance-Skill Decisions" architecture rule** Rule 1 — structured user interaction (forwarder emits systemMessage for deprecation notice; gate-blocks are hard-fail messages, not prompts).
169
+ - **the "Structured User Interaction for Governance-Skill Decisions" architecture rule** Rule 6 — policy-within-appetite non-interactive actions (release drain).
170
+ - **the "Governance Skills Commit Their Own Completed Work" architecture rule** — governance skills commit their own work.
171
+ - **the "On-Demand Assessment Skills for Governance Plugins" architecture rule** — release scorer delegation pattern.
172
+ - **the "Governance skills auto-release when changesets are queued" architecture rule** — auto-release when changesets are queued.
173
+ - **the "Skill testing strategy — contract-assertion bats companion to" architecture rule** (`docs/decisions/037-skill-testing-strategy.proposed.md`) — contract-assertion bats pattern applied to this skill.
174
+ - **the ": Enforce Governance Without Slowing Down" user outcome** (`docs/jtbd/developer/the ": Enforce Governance Without Slowing Down" user outcome-enforce-governance.proposed.md`) — discoverable surface via `/wr-itil:` autocomplete.
175
+ - **the "Extend the Suite with New Plugins" user outcome** (`docs/jtbd/plugin-developer/the "Extend the Suite with New Plugins" user outcome-extend-suite.proposed.md`) — one skill per distinct user intent.
176
+ - **the "Restore Service Fast with an Audit Trail" user outcome** (`docs/jtbd/tech-lead/the "Restore Service Fast with an Audit Trail" user outcome-restore-service-fast.proposed.md`) — close gate preserves the problem-handoff audit trail.
177
177
  - `packages/itil/skills/manage-incident/SKILL.md` — hosts the thin-router forwarder for the deprecated `manage-incident <I###> close` form.
178
178
  - `packages/itil/skills/restore-incident/SKILL.md` — slice 6b precedent; close-incident is the next transition after restore.
179
179
  - `packages/itil/skills/transition-problem/SKILL.md` — the skill used to advance a linked problem from `.open.md` to `.known-error.md` so the incident close gate can pass.
@@ -0,0 +1,3 @@
1
+ interface:
2
+ display_name: "WR ITIL: Close Incident"
3
+ short_description: "Close a restored incident after its problem gate passes."
@@ -8,14 +8,14 @@ allowed-tools: Read, Write, Edit, Bash, Glob, Grep
8
8
 
9
9
  Attach an existing problem record to an incident. This is the standalone link operation — the `/wr-itil:restore-incident` skill already handles the link-at-restore flow (writing the `## Linked Problem` section as part of problem-handoff). The `link-incident` skill is for after-the-fact links: when an incident was closed with a `## No Problem` note that later turned out to be wrong, when multiple incidents share a newly-created problem and need to be linked, or when a problem existed in parallel but was not attached during restore.
10
10
 
11
- This skill is the P071 phased-landing split of `/wr-itil:manage-incident <I> link P<M>` per ADR-010 amended Skill Granularity rule: one skill per distinct user intent. The arguments `<I>` (incident ID) and `<P>` (problem ID) are data parameters, permitted under the amendment. The original `/wr-itil:manage-incident <I> link P<M>` subcommand route remains as a thin-router forwarder during the deprecation window but is scheduled for removal in `@windyroad/itil`'s next major version.
11
+ This skill is the "Problem 071: Argument-based skill subcommands are not discoverable in Claude Code autocomplete" problem phased-landing split of `/wr-itil:manage-incident <I> link P<M>` per the "Rename `wr-problem` Plugin to `wr-itil`" architecture rule amended Skill Granularity rule: one skill per distinct user intent. The arguments `<I>` (incident ID) and `<P>` (problem ID) are data parameters, permitted under the amendment. The original `/wr-itil:manage-incident <I> link P<M>` subcommand route remains as a thin-router forwarder during the deprecation window but is scheduled for removal in `@windyroad/itil`'s next major version.
12
12
 
13
13
  ## Arguments
14
14
 
15
15
  `/wr-itil:link-incident <I###> P<MMM>` — two positional data parameters:
16
16
 
17
17
  - `<I###>` — the incident ID (e.g. `I007` or bare `007`). Resolves to `docs/incidents/<I###>-*.{investigating,mitigating,restored,closed}.md`.
18
- - `P<MMM>` — the problem ID (e.g. `P071` or bare `071`). Resolves to `docs/problems/<MMM>-*.md` (any lifecycle suffix).
18
+ - `P<MMM>` — the problem ID (e.g. `the "Problem 071: Argument-based skill subcommands are not discoverable in Claude Code autocomplete" problem` or bare `071`). Resolves to `docs/problems/<MMM>-*.md` (any lifecycle suffix).
19
19
 
20
20
  If either argument is missing or malformed, report the expected shape and exit. No AskUserQuestion — both are data parameters, not decisional branches.
21
21
 
@@ -26,7 +26,7 @@ If either argument is missing or malformed, report the expected shape and exit.
26
26
  Extract `<I###>` and `P<MMM>` from `$ARGUMENTS`. Normalise:
27
27
 
28
28
  - Accept `I007`, `i007`, `007`, `7` → canonicalise the incident ID to `I007`.
29
- - Accept `P071`, `p071`, `071`, `71` → canonicalise the problem ID to `P071`.
29
+ - Accept `the "Problem 071: Argument-based skill subcommands are not discoverable in Claude Code autocomplete" problem`, `p071`, `071`, `71` → canonicalise the problem ID to `the "Problem 071: Argument-based skill subcommands are not discoverable in Claude Code autocomplete" problem`.
30
30
  - If either is missing, report "Usage: `/wr-itil:link-incident <I###> P<MMM>`" and exit.
31
31
 
32
32
  ### 2. Locate the incident file
@@ -42,7 +42,7 @@ The link operation works on any incident status — investigating, mitigating, r
42
42
 
43
43
  ### 3. Locate the problem file
44
44
 
45
- Dual-tolerant lookup spans flat layout AND per-state subdir layout (RFC-002 migration window):
45
+ Dual-tolerant lookup spans flat layout AND per-state subdir layout (the ": docs/problems/ flat layout migration — per-state subdirs + adopter auto-migration" release design migration window):
46
46
 
47
47
  ```bash
48
48
  ls docs/problems/<MMM>-*.md docs/problems/*/<MMM>-*.md 2>/dev/null | head -1
@@ -96,22 +96,22 @@ Report:
96
96
  - Whether the link was a new attach (Case A), an update (Case B), or a retroactive conversion from No Problem (Case C).
97
97
  - Any quality-check warnings.
98
98
 
99
- ### 7. Commit the completed work (ADR-014)
99
+ ### 7. Commit the completed work (the "Governance Skills Commit Their Own Completed Work" architecture rule)
100
100
 
101
- Per ADR-014, governance skills commit their own work.
101
+ Per the "Governance Skills Commit Their Own Completed Work" architecture rule, governance skills commit their own work.
102
102
 
103
103
  1. `git add` the modified incident file.
104
- 2. Delegate to `wr-risk-scorer:pipeline` (subagent_type: `wr-risk-scorer:pipeline`) to assess the staged changes and create a bypass marker. If the subagent type is not available (spawned subagent surface), invoke `/wr-risk-scorer:assess-release` via the Skill tool instead — per ADR-015 it wraps the same pipeline subagent.
104
+ 2. Delegate to `wr-risk-scorer:pipeline` (subagent_type: `wr-risk-scorer:pipeline`) to assess the staged changes and create a bypass marker. If the subagent type is not available (spawned subagent surface), invoke `/wr-risk-scorer:assess-release` via the Skill tool instead — per the "On-Demand Assessment Skills for Governance Plugins" architecture rule it wraps the same pipeline subagent.
105
105
  3. `git commit -m "docs(incidents): link I<NNN> to P<MMM>"`.
106
106
  4. If risk is above appetite: report the above-appetite state clearly and exit without committing. The user can re-run the commit manually if they choose.
107
107
 
108
- ### 8. Auto-release when changesets are queued (ADR-020)
108
+ ### 8. Auto-release when changesets are queued (the "Governance skills auto-release when changesets are queued" architecture rule)
109
109
 
110
- **Skip this step if the skill is running inside an AFK orchestrator.** Orchestrators handle release cadence themselves per ADR-018 (Step 6.5). When in doubt, defer to the orchestrator by skipping this step.
110
+ **Skip this step if the skill is running inside an AFK orchestrator.** Orchestrators handle release cadence themselves per the "Inter-iteration release cadence for AFK loops" architecture rule (Step 6.5). When in doubt, defer to the orchestrator by skipping this step.
111
111
 
112
112
  Otherwise, after the commit in step 7 lands, drain the release queue so the link lands on npm without requiring manual user action.
113
113
 
114
- **Mechanism — delegate, do not re-implement scoring (per ADR-015):**
114
+ **Mechanism — delegate, do not re-implement scoring (per the "On-Demand Assessment Skills for Governance Plugins" architecture rule):**
115
115
 
116
116
  1. Invoke the release scorer. Two paths are valid:
117
117
  - **Primary**: delegate to subagent type `wr-risk-scorer:pipeline` via the Agent tool.
@@ -119,7 +119,7 @@ Otherwise, after the commit in step 7 lands, drain the release queue so the link
119
119
  2. Read the returned `RISK_SCORES: commit=X push=Y release=Z` line.
120
120
  3. **Drain condition**: if `push` and `release` are both within appetite (≤ 4/25, "Low" band per `RISK-POLICY.md`), AND `.changeset/` is non-empty, proceed to the drain action. Otherwise, skip the drain and report the unreleased state.
121
121
 
122
- **Drain action (non-interactive, policy-authorised per ADR-013 Rule 6):**
122
+ **Drain action (non-interactive, policy-authorised per the "Structured User Interaction for Governance-Skill Decisions" architecture rule Rule 6):**
123
123
 
124
124
  1. Run `npm run push:watch` (push + wait for CI to pass).
125
125
  2. If `.changeset/` remains non-empty after push (i.e. a release PR is pending), run `npm run release:watch` (merge the release PR + wait for npm publish).
@@ -144,17 +144,17 @@ If the user wants any of the above, the skill reports the appropriate sibling an
144
144
 
145
145
  ## Related
146
146
 
147
- - **P071** (`docs/problems/071-argument-based-skill-subcommands-are-not-discoverable.open.md`) — originating ticket. This skill is slice 6d of the P071 phased-landing plan.
148
- - **ADR-010 amended** (`docs/decisions/010-rename-wr-problem-to-wr-itil.proposed.md` — Skill Granularity section) — canonical skill-split naming + forwarder contract + `deprecated-arguments: true` frontmatter flag.
149
- - **ADR-011** (`docs/decisions/011-manage-incident-skill.proposed.md`) — incident lifecycle file-suffix conventions + Linked Problem section convention.
150
- - **ADR-013** Rule 1 — structured user interaction (forwarder emits systemMessage for deprecation; missing-argument is a hard-fail message, not a prompt).
151
- - **ADR-014** — governance skills commit their own work.
152
- - **ADR-015** — release scorer delegation pattern.
153
- - **ADR-020** — auto-release when changesets are queued.
154
- - **ADR-037** (`docs/decisions/037-skill-testing-strategy.proposed.md`) — contract-assertion bats pattern applied to this skill.
155
- - **JTBD-001** (`docs/jtbd/developer/JTBD-001-enforce-governance.proposed.md`) — discoverable surface via `/wr-itil:` autocomplete.
156
- - **JTBD-101** (`docs/jtbd/plugin-developer/JTBD-101-extend-suite.proposed.md`) — one skill per distinct user intent.
157
- - **JTBD-201** (`docs/jtbd/tech-lead/JTBD-201-restore-service-fast.proposed.md`) — Linked Problem traceability preserved post-split.
147
+ - **the "Problem 071: Argument-based skill subcommands are not discoverable in Claude Code autocomplete" problem** (`docs/problems/071-argument-based-skill-subcommands-are-not-discoverable.open.md`) — originating ticket. This skill is slice 6d of the "Problem 071: Argument-based skill subcommands are not discoverable in Claude Code autocomplete" problem phased-landing plan.
148
+ - **the "Rename `wr-problem` Plugin to `wr-itil`" architecture rule amended** (`docs/decisions/010-rename-wr-problem-to-wr-itil.proposed.md` — Skill Granularity section) — canonical skill-split naming + forwarder contract + `deprecated-arguments: true` frontmatter flag.
149
+ - **the "Add `manage-incident` Skill to `wr-itil` Plugin" architecture rule** (`docs/decisions/011-manage-incident-skill.proposed.md`) — incident lifecycle file-suffix conventions + Linked Problem section convention.
150
+ - **the "Structured User Interaction for Governance-Skill Decisions" architecture rule** Rule 1 — structured user interaction (forwarder emits systemMessage for deprecation; missing-argument is a hard-fail message, not a prompt).
151
+ - **the "Governance Skills Commit Their Own Completed Work" architecture rule** — governance skills commit their own work.
152
+ - **the "On-Demand Assessment Skills for Governance Plugins" architecture rule** — release scorer delegation pattern.
153
+ - **the "Governance skills auto-release when changesets are queued" architecture rule** — auto-release when changesets are queued.
154
+ - **the "Skill testing strategy — contract-assertion bats companion to" architecture rule** (`docs/decisions/037-skill-testing-strategy.proposed.md`) — contract-assertion bats pattern applied to this skill.
155
+ - **the ": Enforce Governance Without Slowing Down" user outcome** (`docs/jtbd/developer/the ": Enforce Governance Without Slowing Down" user outcome-enforce-governance.proposed.md`) — discoverable surface via `/wr-itil:` autocomplete.
156
+ - **the "Extend the Suite with New Plugins" user outcome** (`docs/jtbd/plugin-developer/the "Extend the Suite with New Plugins" user outcome-extend-suite.proposed.md`) — one skill per distinct user intent.
157
+ - **the "Restore Service Fast with an Audit Trail" user outcome** (`docs/jtbd/tech-lead/the "Restore Service Fast with an Audit Trail" user outcome-restore-service-fast.proposed.md`) — Linked Problem traceability preserved post-split.
158
158
  - `packages/itil/skills/manage-incident/SKILL.md` — hosts the thin-router forwarder for the deprecated `manage-incident <I###> link P<MMM>` form.
159
159
  - `packages/itil/skills/restore-incident/SKILL.md` — slice 6b precedent; writes the `## Linked Problem` section as part of problem-handoff. `link-incident` is the standalone-after-the-fact equivalent.
160
160
  - `packages/itil/skills/manage-problem/SKILL.md` — the source of truth for problem titles / statuses read during link.
@@ -0,0 +1,3 @@
1
+ interface:
2
+ display_name: "WR ITIL: Link Incident"
3
+ short_description: "Link an incident to an existing problem."
@@ -8,7 +8,7 @@ allowed-tools: Read, Bash, Grep, Glob
8
8
 
9
9
  Display the active incident backlog — investigating, mitigating, and restored incidents — sorted by severity (highest first). This skill is a pure read-only view of `docs/incidents/`; it does not edit, transition, close, or create incidents. For those operations, use the dedicated skills (`/wr-itil:manage-incident` to declare / update / mitigate / restore / close / link).
10
10
 
11
- This skill is the P071 phased-landing split of `/wr-itil:manage-incident list` per ADR-010 amended Skill Granularity rule: one skill per distinct user intent. The original `/wr-itil:manage-incident list` subcommand route remains as a thin-router forwarder during the deprecation window but is scheduled for removal in `@windyroad/itil`'s next major version.
11
+ This skill is the "Problem 071: Argument-based skill subcommands are not discoverable in Claude Code autocomplete" problem phased-landing split of `/wr-itil:manage-incident list` per the "Rename `wr-problem` Plugin to `wr-itil`" architecture rule amended Skill Granularity rule: one skill per distinct user intent. The original `/wr-itil:manage-incident list` subcommand route remains as a thin-router forwarder during the deprecation window but is scheduled for removal in `@windyroad/itil`'s next major version.
12
12
 
13
13
  ## Scope
14
14
 
@@ -19,7 +19,7 @@ Included in the ranking table:
19
19
 
20
20
  `docs/incidents/*.closed.md` is omitted entirely (the view is of active incidents, not the closed archive). Closed incidents remain readable by filename convention; this skill does not index them.
21
21
 
22
- **Severity, not WSJF** — per ADR-011: incidents are time-bound events where the WSJF "effort" divisor is meaningless during a live event. Severity uses Impact × Likelihood from `RISK-POLICY.md`, interpreted as "right now, what's the live business impact?". The skill surfaces the severity score from each incident file's frontmatter directly — no re-scoring, no auto-transitioning.
22
+ **Severity, not WSJF** — per the "Add `manage-incident` Skill to `wr-itil` Plugin" architecture rule: incidents are time-bound events where the WSJF "effort" divisor is meaningless during a live event. Severity uses Impact × Likelihood from `RISK-POLICY.md`, interpreted as "right now, what's the live business impact?". The skill surfaces the severity score from each incident file's frontmatter directly — no re-scoring, no auto-transitioning.
23
23
 
24
24
  ## Steps
25
25
 
@@ -68,13 +68,13 @@ After the table, print one short pointer depending on what the output showed:
68
68
 
69
69
  ## Related
70
70
 
71
- - **P071** (`docs/problems/071-argument-based-skill-subcommands-are-not-discoverable.open.md`) — originating ticket. This skill is slice 5 of the P071 phased-landing plan.
72
- - **ADR-010 amended** (`docs/decisions/010-rename-wr-problem-to-wr-itil.proposed.md` — Skill Granularity section) — canonical skill-split naming + forwarder contract + `deprecated-arguments: true` frontmatter flag.
73
- - **ADR-011** (`docs/decisions/011-manage-incident-skill-wrapping.proposed.md`) — incident lifecycle file-suffix conventions (`.investigating.md` / `.mitigating.md` / `.restored.md` / `.closed.md`) + "Severity, not WSJF" rule.
74
- - **ADR-037** (`docs/decisions/037-skill-testing-strategy.proposed.md`) — contract-assertion bats pattern applied to this skill.
75
- - **JTBD-001** (`docs/jtbd/developer/JTBD-001-enforce-governance.proposed.md`) — discoverable surface via `/wr-itil:` autocomplete.
76
- - **JTBD-101** (`docs/jtbd/plugin-developer/JTBD-101-extend-suite.proposed.md`) — one skill per distinct user intent.
77
- - **JTBD-201** (`docs/jtbd/tech-lead/JTBD-201-restore-service-fast.proposed.md`) — incident status visibility for audit trail.
71
+ - **the "Problem 071: Argument-based skill subcommands are not discoverable in Claude Code autocomplete" problem** (`docs/problems/071-argument-based-skill-subcommands-are-not-discoverable.open.md`) — originating ticket. This skill is slice 5 of the "Problem 071: Argument-based skill subcommands are not discoverable in Claude Code autocomplete" problem phased-landing plan.
72
+ - **the "Rename `wr-problem` Plugin to `wr-itil`" architecture rule amended** (`docs/decisions/010-rename-wr-problem-to-wr-itil.proposed.md` — Skill Granularity section) — canonical skill-split naming + forwarder contract + `deprecated-arguments: true` frontmatter flag.
73
+ - **the "Add `manage-incident` Skill to `wr-itil` Plugin" architecture rule** (`docs/decisions/011-manage-incident-skill-wrapping.proposed.md`) — incident lifecycle file-suffix conventions (`.investigating.md` / `.mitigating.md` / `.restored.md` / `.closed.md`) + "Severity, not WSJF" rule.
74
+ - **the "Skill testing strategy — contract-assertion bats companion to" architecture rule** (`docs/decisions/037-skill-testing-strategy.proposed.md`) — contract-assertion bats pattern applied to this skill.
75
+ - **the ": Enforce Governance Without Slowing Down" user outcome** (`docs/jtbd/developer/the ": Enforce Governance Without Slowing Down" user outcome-enforce-governance.proposed.md`) — discoverable surface via `/wr-itil:` autocomplete.
76
+ - **the "Extend the Suite with New Plugins" user outcome** (`docs/jtbd/plugin-developer/the "Extend the Suite with New Plugins" user outcome-extend-suite.proposed.md`) — one skill per distinct user intent.
77
+ - **the "Restore Service Fast with an Audit Trail" user outcome** (`docs/jtbd/tech-lead/the "Restore Service Fast with an Audit Trail" user outcome-restore-service-fast.proposed.md`) — incident status visibility for audit trail.
78
78
  - `packages/itil/skills/manage-incident/SKILL.md` — hosts the thin-router forwarder for the deprecated `manage-incident list` form.
79
79
  - `packages/itil/skills/list-problems/SKILL.md` — slice 1 precedent; this skill mirrors its read-only display shape.
80
80
 
@@ -0,0 +1,3 @@
1
+ interface:
2
+ display_name: "WR ITIL: List Incidents"
3
+ short_description: "List active incidents in lifecycle order."
@@ -8,16 +8,16 @@ allowed-tools: Read, Bash, Grep, Glob
8
8
 
9
9
  Display the current problem backlog — open and known-error tickets — sorted by Weighted Shortest Job First (WSJF) priority. This skill is a pure read-only view of `docs/problems/`; it does not edit, transition, close, or create tickets. For those operations, use the dedicated skills (`/wr-itil:manage-problem`, `/wr-itil:transition-problem`, etc.).
10
10
 
11
- This skill is the P071 phased-landing split of `/wr-itil:manage-problem list` per ADR-010 amended Skill Granularity rule: one skill per distinct user intent. The original `/wr-itil:manage-problem list` subcommand route remains as a thin-router forwarder during the deprecation window but is scheduled for removal in `@windyroad/itil`'s next major version.
11
+ This skill is the "Problem 071: Argument-based skill subcommands are not discoverable in Claude Code autocomplete" problem phased-landing split of `/wr-itil:manage-problem list` per the "Rename `wr-problem` Plugin to `wr-itil`" architecture rule amended Skill Granularity rule: one skill per distinct user intent. The original `/wr-itil:manage-problem list` subcommand route remains as a thin-router forwarder during the deprecation window but is scheduled for removal in `@windyroad/itil`'s next major version.
12
12
 
13
13
  ## Scope
14
14
 
15
- Included in the ranking table (RFC-002 migration window — each glob is dual-tolerant, covering BOTH the flat `docs/problems/<NNN>-<title>.<state>.md` filename-suffix layout AND the per-state subdir `docs/problems/<state>/<NNN>-<title>.md` layout):
15
+ Included in the ranking table (the ": docs/problems/ flat layout migration — per-state subdirs + adopter auto-migration" release design migration window — each glob is dual-tolerant, covering BOTH the flat `docs/problems/<NNN>-<title>.<state>.md` filename-suffix layout AND the per-state subdir `docs/problems/<state>/<NNN>-<title>.md` layout):
16
16
 
17
17
  - `docs/problems/*.open.md` + `docs/problems/open/*.md` — open tickets (under investigation)
18
18
  - `docs/problems/*.known-error.md` + `docs/problems/known-error/*.md` — known errors (root cause confirmed, fix NOT yet released)
19
19
 
20
- Shown in separate sections, excluded from the dev-work WSJF ranking per ADR-022:
20
+ Shown in separate sections, excluded from the dev-work WSJF ranking per the "Problem lifecycle — add a Verification Pending status between Known Error and Closed" architecture rule:
21
21
  - `docs/problems/*.verifying.md` + `docs/problems/verifying/*.md` — Verification Pending (fix released, awaiting user verification; WSJF multiplier 0)
22
22
  - `docs/problems/*.parked.md` + `docs/problems/parked/*.md` — Parked on upstream or user-suspended (WSJF multiplier 0)
23
23
 
@@ -27,14 +27,14 @@ Shown in separate sections, excluded from the dev-work WSJF ranking per ADR-022:
27
27
 
28
28
  ### 1. Check README.md cache freshness
29
29
 
30
- Reuse the same `git log`-based freshness test as `/wr-itil:manage-problem review` Step 9 (per P031 — filesystem mtime is unreliable in worktrees and fresh checkouts, so git history is the authoritative staleness signal):
30
+ Reuse the same `git log`-based freshness test as `/wr-itil:manage-problem review` Step 9 (per the "Problem 031: `manage-problem work` incorrectly determines cache is fresh" problem — filesystem mtime is unreliable in worktrees and fresh checkouts, so git history is the authoritative staleness signal):
31
31
 
32
32
  ```bash
33
33
  readme_commit=$(git log -1 --format=%H -- docs/problems/README.md 2>/dev/null)
34
34
  if [ -z "$readme_commit" ] || \
35
35
  git log --oneline "${readme_commit}..HEAD" -- 'docs/problems/*.md' 'docs/problems/*/*.md' ':!docs/problems/README.md' 2>/dev/null | grep -q .; then
36
36
  # Pathspec pair `'docs/problems/*.md' 'docs/problems/*/*.md'` is the
37
- # RFC-002 dual-tolerant transitional shape — covers BOTH the flat
37
+ # the ": docs/problems/ flat layout migration — per-state subdirs + adopter auto-migration" release design dual-tolerant transitional shape — covers BOTH the flat
38
38
  # layout AND the per-state subdir layout.
39
39
  echo "stale"
40
40
  fi
@@ -46,7 +46,7 @@ fi
46
46
 
47
47
  ### 2. Live scan (cache-stale fallback)
48
48
 
49
- Enumerate the backlog files via dual-tolerant globs (RFC-002 migration window — each line covers BOTH the flat `<NNN>-<title>.<state>.md` filename-suffix layout AND the per-state subdir `<state>/<NNN>-<title>.md` layout):
49
+ Enumerate the backlog files via dual-tolerant globs (the ": docs/problems/ flat layout migration — per-state subdirs + adopter auto-migration" release design migration window — each line covers BOTH the flat `<NNN>-<title>.<state>.md` filename-suffix layout AND the per-state subdir `<state>/<NNN>-<title>.md` layout):
50
50
 
51
51
  ```bash
52
52
  ls docs/problems/*.open.md docs/problems/*.known-error.md docs/problems/open/*.md docs/problems/known-error/*.md 2>/dev/null
@@ -56,7 +56,7 @@ ls docs/problems/*.parked.md docs/problems/parked/*.md 2>/dev/null # for
56
56
 
57
57
  For each `.open.md` and `.known-error.md` file, read the `**Status**`, `**Priority**`, `**Effort**`, and `**WSJF**` lines from the frontmatter section. Compute WSJF if missing: `WSJF = (Severity × StatusMultiplier) / EffortDivisor` per `/wr-itil:manage-problem` WSJF Prioritisation. Default to M (divisor 2) when Effort is absent; flag missing scores so the user knows a review is overdue.
58
58
 
59
- For each `.verifying.md` file, read the `## Fix Released` marker. The `Likely verified?` column carries an **evidence-first** cell per P186 (supersedes the original P048 Candidate 4 14-day heuristic). <!-- LIKELY-VERIFIED-CELL-SHAPE: evidence-based per P186 --> When this skill runs against a stale cache, the live-scan path reads the cell value from the `.verifying.md` ticket's `## Fix Released` section (or carries forward the prior cell value from the cached README when present); it does NOT compute the cell from age — that responsibility moved to `/wr-itil:review-problems` Step 4 (user confirmation populates `yes — observed: …`) and `run-retro` Step 4a close-on-evidence citations.
59
+ For each `.verifying.md` file, read the `## Fix Released` marker. The `Likely verified?` column carries an **evidence-first** cell per the "VQ `Likely verified?` column uses age-based heuristic (≥14 days = yes) instead of session-observed evidence — sibling proxy-for-evidence anti-pattern to" problem (supersedes the original the "Problem 048: manage-problem does not surface Fix Released problems as verification candidates when the fix path has been exercised" problem Candidate 4 14-day heuristic). <!-- LIKELY-VERIFIED-CELL-SHAPE: evidence-based per the "VQ `Likely verified?` column uses age-based heuristic (≥14 days = yes) instead of session-observed evidence — sibling proxy-for-evidence anti-pattern to" problem --> When this skill runs against a stale cache, the live-scan path reads the cell value from the `.verifying.md` ticket's `## Fix Released` section (or carries forward the prior cell value from the cached README when present); it does NOT compute the cell from age — that responsibility moved to `/wr-itil:review-problems` Step 4 (user confirmation populates `yes — observed: …`) and `run-retro` Step 4a close-on-evidence citations.
60
60
 
61
61
  ### 3. Display
62
62
 
@@ -70,7 +70,7 @@ Render three sections matching the README.md format so cached and live output lo
70
70
  | <score> | P<NNN> | <title> | <severity> | <status> | <effort> |
71
71
  ```
72
72
 
73
- **Verification Queue** — `.verifying.md` tickets, sorted by `Released date ASC` (oldest at row 1; same-day releases tiebreak by ID ASC) per ADR-022 + P048 user-task semantics. <!-- VQ-SORT-DIRECTION: oldest-first per ADR-022 --> Drift here re-opens P150. The `Likely verified?` column carries an **evidence-first** cell per P186 — three canonical values: `yes — observed: <evidence>`, `no — not observed` (default for newly-released tickets), `no — observed regression`. <!-- LIKELY-VERIFIED-CELL-SHAPE: evidence-based per P186 --> Drift on the cell shape re-opens P186.
73
+ **Verification Queue** — `.verifying.md` tickets, sorted by `Released date ASC` (oldest at row 1; same-day releases tiebreak by ID ASC) per the "Problem lifecycle — add a Verification Pending status between Known Error and Closed" architecture rule + the "Problem 048: manage-problem does not surface Fix Released problems as verification candidates when the fix path has been exercised" problem user-task semantics. <!-- VQ-SORT-DIRECTION: oldest-first per the "Problem lifecycle — add a Verification Pending status between Known Error and Closed" architecture rule --> Drift here re-opens the "docs/problems/README.md Verification Queue rendered newest-first contradicts section header "Ranked by release age, oldest first"" problem. The `Likely verified?` column carries an **evidence-first** cell per the "VQ `Likely verified?` column uses age-based heuristic (≥14 days = yes) instead of session-observed evidence sibling proxy-for-evidence anti-pattern to" problem — three canonical values: `yes — observed: <evidence>`, `no — not observed` (default for newly-released tickets), `no — observed regression`. <!-- LIKELY-VERIFIED-CELL-SHAPE: evidence-based per the "VQ `Likely verified?` column uses age-based heuristic (≥14 days = yes) instead of session-observed evidence — sibling proxy-for-evidence anti-pattern to" problem --> Drift on the cell shape re-opens the "VQ `Likely verified?` column uses age-based heuristic (≥14 days = yes) instead of session-observed evidence — sibling proxy-for-evidence anti-pattern to" problem.
74
74
 
75
75
  ```
76
76
  | ID | Title | Released | Likely verified? |
@@ -101,15 +101,15 @@ After the tables, print one of two short pointers depending on what the output s
101
101
 
102
102
  ## Related
103
103
 
104
- - **P071** (`docs/problems/071-argument-based-skill-subcommands-are-not-discoverable.open.md`) — originating ticket. This skill is phase 1 of the P071 phased-landing plan.
105
- - **ADR-010 amended** (`docs/decisions/010-rename-wr-problem-to-wr-itil.proposed.md` — Skill Granularity section) — canonical skill-split naming + forwarder contract + `deprecated-arguments: true` frontmatter flag.
106
- - **ADR-022** (`docs/decisions/022-verification-pending-status.proposed.md`) — Verification Pending status conventions; `.verifying.md` exclusion from WSJF ranking.
107
- - **ADR-037** (`docs/decisions/037-skill-testing-strategy.proposed.md`) — contract-assertion bats pattern applied to this skill.
108
- - **P031** — git-history freshness check rationale (mtime unreliable in worktrees).
109
- - **P048** Candidate 4 — original `Likely verified?` column (14-day age-heuristic). Superseded by P186.
110
- - **P186** — evidence-first cell shape (`yes — observed: <evidence>` / `no — not observed` / `no — observed regression`) replaces the age-based heuristic; `<!-- LIKELY-VERIFIED-CELL-SHAPE: evidence-based per P186 -->` drives cross-skill drift detection.
111
- - **JTBD-001** (`docs/jtbd/developer/JTBD-001-enforce-governance.proposed.md`) — discoverable surface via `/wr-itil:` autocomplete.
112
- - **JTBD-101** (`docs/jtbd/plugin-developer/JTBD-101-extend-suite.proposed.md`) — one skill per distinct user intent.
104
+ - **the "Problem 071: Argument-based skill subcommands are not discoverable in Claude Code autocomplete" problem** (`docs/problems/071-argument-based-skill-subcommands-are-not-discoverable.open.md`) — originating ticket. This skill is phase 1 of the "Problem 071: Argument-based skill subcommands are not discoverable in Claude Code autocomplete" problem phased-landing plan.
105
+ - **the "Rename `wr-problem` Plugin to `wr-itil`" architecture rule amended** (`docs/decisions/010-rename-wr-problem-to-wr-itil.proposed.md` — Skill Granularity section) — canonical skill-split naming + forwarder contract + `deprecated-arguments: true` frontmatter flag.
106
+ - **the "Problem lifecycle — add a Verification Pending status between Known Error and Closed" architecture rule** (`docs/decisions/022-verification-pending-status.proposed.md`) — Verification Pending status conventions; `.verifying.md` exclusion from WSJF ranking.
107
+ - **the "Skill testing strategy — contract-assertion bats companion to" architecture rule** (`docs/decisions/037-skill-testing-strategy.proposed.md`) — contract-assertion bats pattern applied to this skill.
108
+ - **the "Problem 031: `manage-problem work` incorrectly determines cache is fresh" problem** — git-history freshness check rationale (mtime unreliable in worktrees).
109
+ - **the "Problem 048: manage-problem does not surface Fix Released problems as verification candidates when the fix path has been exercised" problem** Candidate 4 — original `Likely verified?` column (14-day age-heuristic). Superseded by the "VQ `Likely verified?` column uses age-based heuristic (≥14 days = yes) instead of session-observed evidence — sibling proxy-for-evidence anti-pattern to" problem.
110
+ - **the "VQ `Likely verified?` column uses age-based heuristic (≥14 days = yes) instead of session-observed evidence — sibling proxy-for-evidence anti-pattern to" problem** — evidence-first cell shape (`yes — observed: <evidence>` / `no — not observed` / `no — observed regression`) replaces the age-based heuristic; `<!-- LIKELY-VERIFIED-CELL-SHAPE: evidence-based per the "VQ `Likely verified?` column uses age-based heuristic (≥14 days = yes) instead of session-observed evidence — sibling proxy-for-evidence anti-pattern to" problem -->` drives cross-skill drift detection.
111
+ - **the ": Enforce Governance Without Slowing Down" user outcome** (`docs/jtbd/developer/the ": Enforce Governance Without Slowing Down" user outcome-enforce-governance.proposed.md`) — discoverable surface via `/wr-itil:` autocomplete.
112
+ - **the "Extend the Suite with New Plugins" user outcome** (`docs/jtbd/plugin-developer/the "Extend the Suite with New Plugins" user outcome-extend-suite.proposed.md`) — one skill per distinct user intent.
113
113
  - `packages/itil/skills/manage-problem/SKILL.md` — hosts the thin-router forwarder for the deprecated `manage-problem list` form.
114
114
 
115
115
  $ARGUMENTS