@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,20 +1,20 @@
1
1
  ---
2
2
  name: wr-itil:manage-story
3
- description: Heavyweight story intake + lifecycle management following ADR-060 Phase 2. Creates and updates story tickets, transitions through draft → accepted → in-progress → done → archived lifecycle, enforces I7 + I8 trace-gate at the accepted transition, runs INVEST checks per I10 at acceptance, auto-detects accepted→in-progress on the first implementing commit and in-progress→done on all-criteria-ticked + linked RFC closes (per ADR-096 a draft story is NEVER implementable — draft→in-progress is removed; the itil-no-implement-draft-gate blocks implementing a draft story), and refreshes docs/stories/README.md per the P062 / P094 contract pattern. Companion to /wr-itil:capture-story (lightweight aside surface).
3
+ description: Heavyweight story intake + lifecycle management following the "Problem-RFC-Story framework with mandatory problem-trace and unified problem ontology" architecture rule Phase 2. Creates and updates story tickets, transitions through draft → accepted → in-progress → done → archived lifecycle, enforces I7 + I8 trace-gate at the accepted transition, runs INVEST checks per I10 at acceptance, auto-detects accepted→in-progress on the first implementing commit and in-progress→done on all-criteria-ticked + linked RFC closes (per the "A story cannot be implemented while in draft — implementation requires accepted" architecture rule a draft story is NEVER implementable — draft→in-progress is removed; the itil-no-implement-draft-gate blocks implementing a draft story), and refreshes docs/stories/README.md per the "Problem 062: `manage-problem` does not refresh `docs/problems/README.md` on single-ticket transitions; fast-path cache goes stale silently" problem / the "Problem 094: `/wr-itil:manage-problem` does not refresh `docs/problems/README.md` on ticket creation" problem contract pattern. Companion to /wr-itil:capture-story (lightweight aside surface).
4
4
  allowed-tools: Read, Write, Edit, Bash, Grep, Glob
5
5
  ---
6
6
 
7
7
  # Manage Story Skill
8
8
 
9
- Heavyweight story lifecycle management. Mirrors `/wr-itil:manage-rfc` shape per ADR-032 lightweight + heavyweight skill split, extended for the story-tier's INVEST-shape acceptance gate (I10) and auto-transition triggers.
9
+ Heavyweight story lifecycle management. Mirrors `/wr-itil:manage-rfc` shape per the "Governance skill invocation patterns — foreground + background with deferred-question resumption" architecture rule lightweight + heavyweight skill split, extended for the story-tier's INVEST-shape acceptance gate (I10) and auto-transition triggers.
10
10
 
11
11
  ## Story Lifecycle
12
12
 
13
- Per ADR-060 Phase 2 amendment 2026-05-10 lines 200-253:
13
+ Per the "Problem-RFC-Story framework with mandatory problem-trace and unified problem ontology" architecture rule Phase 2 amendment 2026-05-10 lines 200-253:
14
14
 
15
15
  | Status | Filename pattern | Meaning | Entry criteria |
16
16
  |--------|-----------------|---------|----------------|
17
- | **draft** | `docs/stories/draft/STORY-<NNN>-<slug>.md` | Content-complete (map membership + real user value + ≥1 real acceptance criterion per ADR-095) but not yet accepted — `estimated-effort`/Small unset, I7 RFC trace absent, ratification pending | I6 + I8 + I9 + content floor satisfied at capture |
17
+ | **draft** | `docs/stories/draft/STORY-<NNN>-<slug>.md` | Content-complete (map membership + real user value + ≥1 real acceptance criterion per the "Story-map membership and story-content completeness are enforced at capture" architecture rule) but not yet accepted — `estimated-effort`/Small unset, I7 RFC trace absent, ratification pending | I6 + I8 + I9 + content floor satisfied at capture |
18
18
  | **accepted** | `docs/stories/accepted/STORY-<NNN>-<slug>.md` | INVEST shape verified; ratified; ready for implementation | I7 + I8 + I10 + I12 hard-block satisfied |
19
19
  | **in-progress** | `docs/stories/in-progress/STORY-<NNN>-<slug>.md` | Implementation underway | Auto-transitioned on first non-capture commit carrying `Refs: STORY-<NNN>` |
20
20
  | **done** | `docs/stories/done/STORY-<NNN>-<slug>.md` | All acceptance criteria ticked + linked RFC closed | Auto-transitioned (triggered by RFC close-fire or by manual `manage-story <NNN> done`) |
@@ -25,14 +25,14 @@ Per ADR-060 Phase 2 amendment 2026-05-10 lines 200-253:
25
25
  | Invariant | What it asserts | Where it fires |
26
26
  |-----------|-----------------|----------------|
27
27
  | **I6** trace-to-problem | Every story traces to ≥ 1 problem | Hard-block at `/wr-itil:capture-story` (also verified at every transition) |
28
- | **I7** trace-to-RFC | Every story traces to ≥ 1 RFC | Hard-block at `manage-story <NNN> accepted` (deferred from capture per ADR-060 line 291) |
28
+ | **I7** trace-to-RFC | Every story traces to ≥ 1 RFC | Hard-block at `manage-story <NNN> accepted` (deferred from capture per the "Problem-RFC-Story framework with mandatory problem-trace and unified problem ontology" architecture rule line 291) |
29
29
  | **I8** trace-to-story-map | Every story traces to ≥ 1 story map | Hard-block at `manage-story <NNN> accepted` (deferred from capture) |
30
30
  | **I9** trace-to-JTBD | Every story traces to ≥ 1 JTBD | Hard-block at `/wr-itil:capture-story` (also verified at every transition) |
31
31
  | **I10** INVEST shape | At acceptance, INVEST behaviourally: ≥1 acceptance criterion (Testable); user-value statement (Valuable); no Blocked-by-unaccepted refs (Independent); `estimated-effort` field set (Estimable); S/M effort SHOULD; L/XL flagged decomposition-candidate (Small) | Hard-block at `manage-story <NNN> accepted` |
32
32
  | **I11** no-WSJF-leak | Phase 2: stories MUST NOT carry a WSJF field | Behavioural test at this skill (no WSJF field added/read) |
33
- | **I12** approval | Every story is approved before it is implementable — by its story map's ratification (ADR-103). A story carries no marker of its own, and a leftover one approves nothing | Hard-block at `manage-story <NNN> accepted`; re-asserted at the commit locus by `itil-no-implement-draft-gate` |
33
+ | **I12** approval | Every story is approved before it is implementable — by its story map's ratification (the "A release row is the RFC, and the map is the approval surface" architecture rule). A story carries no marker of its own, and a leftover one approves nothing | Hard-block at `manage-story <NNN> accepted`; re-asserted at the commit locus by `itil-no-implement-draft-gate` |
34
34
 
35
- **Bootstrap-exemption marker** (per ADR-060 line 339 + ADR-053 Bootstrapping precedent): the I7/I8/I9/I10 retrofit on bootstrap-migration stories rides a one-time exemption marker `<!-- bootstrap-exempt: STORY-MAP-001 migration per ADR-060 amendment 2026-05-10 -->` inline with the frontmatter. Non-bootstrap captures with the marker fail per the behavioural test.
35
+ **Bootstrap-exemption marker** (per the "Problem-RFC-Story framework with mandatory problem-trace and unified problem ontology" architecture rule line 339 + the "`@windyroad/*` plugin / skill / agent / hook maturity taxonomy" architecture rule Bootstrapping precedent): the I7/I8/I9/I10 retrofit on bootstrap-migration stories rides a one-time exemption marker `<!-- bootstrap-exempt: the "RFC framework bootstrap journey map" journey map migration per the "Problem-RFC-Story framework with mandatory problem-trace and unified problem ontology" architecture rule amendment 2026-05-10 -->` inline with the frontmatter. Non-bootstrap captures with the marker fail per the behavioural test.
36
36
 
37
37
  ## Argument grammar
38
38
 
@@ -43,24 +43,24 @@ Per ADR-060 Phase 2 amendment 2026-05-10 lines 200-253:
43
43
  /wr-itil:manage-story <STORY-NNN> done # Transition in-progress → done (gates all-criteria-ticked + RFC closed)
44
44
  /wr-itil:manage-story <STORY-NNN> archived # Close without completion
45
45
  /wr-itil:manage-story review # Re-rank all stories + refresh README
46
- # (no `ratify` action — ADR-103: approval is the map's, see /wr-itil:manage-story-map <NNN> ratify)
46
+ # (no `ratify` action — the "A release row is the RFC, and the map is the approval surface" architecture rule: approval is the map's, see /wr-itil:manage-story-map <NNN> ratify)
47
47
  ```
48
48
 
49
- ## Rule 6 audit (per ADR-032 + ADR-013 + ADR-060)
49
+ ## Rule 6 audit (per the "Governance skill invocation patterns — foreground + background with deferred-question resumption" architecture rule + the "Structured User Interaction for Governance-Skill Decisions" architecture rule + the "Problem-RFC-Story framework with mandatory problem-trace and unified problem ontology" architecture rule)
50
50
 
51
51
  | Decision | Resolution | Authority class |
52
52
  |----------|-----------|-----------------|
53
53
  | Story ID resolution | Mechanical: `STORY-<NNN>` regex match against `docs/stories/*/STORY-<NNN>-*.md` | silent-mechanical |
54
54
  | Lifecycle transition validation | Mechanical: state machine — draft → accepted → in-progress → done; allow draft → archived; disallow backwards | silent-mechanical |
55
55
  | I7 + I8 hard-block at accepted | Mechanical: frontmatter `rfcs:` and `story-maps:` arrays MUST be non-empty. Each map ID resolves to `docs/story-maps/`; each RFC resolves either to a legacy file in `docs/rfcs/` or to a release row containing this story via `wr-itil-story-map-query find-rfc` | silent-mechanical |
56
- | I10 INVEST shape check | Mechanical: `## User value` section non-empty; `## Acceptance criteria` has ≥ 1 `- [ ]` line; `estimated-effort` field set to S/M/L/XL; L/XL flagged as decomposition-candidate (advisory, not blocking per ADR-060 line 252 architect-amendment-2026-05-10 nitpick N3) | silent-mechanical |
57
- | I12 approval at accepted | Mechanical: `story_is_approved` passes — every map in the story's `story-maps:` field is ratified (ADR-103). The story itself carries no oversight field. Never an `AskUserQuestion`: the predicate is fully framework-resolved, and a story that fails it is HELD until its map is ratified, not asked about | silent-mechanical |
56
+ | I10 INVEST shape check | Mechanical: `## User value` section non-empty; `## Acceptance criteria` has ≥ 1 `- [ ]` line; `estimated-effort` field set to S/M/L/XL; L/XL flagged as decomposition-candidate (advisory, not blocking per the "Problem-RFC-Story framework with mandatory problem-trace and unified problem ontology" architecture rule line 252 architect-amendment-2026-05-10 nitpick N3) | silent-mechanical |
57
+ | I12 approval at accepted | Mechanical: `story_is_approved` passes — every map in the story's `story-maps:` field is ratified (the "A release row is the RFC, and the map is the approval surface" architecture rule). The story itself carries no oversight field. Never an `AskUserQuestion`: the predicate is fully framework-resolved, and a story that fails it is HELD until its map is ratified, not asked about | silent-mechanical |
58
58
  | INVEST shape violation | Halt-with-stderr-directive listing the missing INVEST attributes; user re-invokes after editing the story body | n/a (halt) |
59
59
  | README refresh on every transition | Mechanical: regenerate `docs/stories/README.md` Story Rankings + Done tables from FS truth; stage in same commit | silent-mechanical |
60
60
  | Reverse-trace refresh on driving artefacts | Mechanical: every transition refreshes `## Stories` section on each driving problem + JTBD + RFC + story-map via the Slice 2a/2b helpers | silent-mechanical |
61
- | Bootstrap-exemption marker | Mechanical: marker permitted only on stories whose frontmatter problem-trace includes the bootstrap-migration problem ID (P170); non-bootstrap stories with the marker fail at acceptance | silent-mechanical |
61
+ | Bootstrap-exemption marker | Mechanical: marker permitted only on stories whose frontmatter problem-trace includes the bootstrap-migration problem ID (the "Problem tickets strain as fixes decompose into multiple coordinated changes — need an RFC framework that ties all changes back to problems (and unifies technical with user/business problems)" problem); non-bootstrap stories with the marker fail at acceptance | silent-mechanical |
62
62
 
63
- All decisions framework-mediated per ADR-044 + P132 + inverse-P078.
63
+ All decisions framework-mediated per the "— Decision-Delegation Contract: when agents act on the framework vs ask the user" architecture rule + the "Agents over-ask in interactive sessions — conflating mechanical-stages with user-interactive-stages of multi-stage skill contracts (inverse-)" problem + inverse-the "Problem 078: Assistant does not offer to capture a problem ticket when the user delivers strong-signal correction" problem.
64
64
 
65
65
  ## Steps
66
66
 
@@ -101,9 +101,9 @@ Use `AskUserQuestion` for direction-setting fields (e.g. `## User value` rewrite
101
101
  For any transition `<from> → <to>`:
102
102
 
103
103
  1. **Verify pre-transition invariants** for `<to>`:
104
- - `accepted`: I7 + I8 + I10 + **I12** hard-block (see § I-invariant table). For I7, a legacy RFC file satisfies resolution as before. Otherwise `wr-itil-story-map-query find-rfc <RFC-ID>` must return a release row whose `stories` contains this story; a row with no matching card fails because the row is the RFC under ADR-103.
104
+ - `accepted`: I7 + I8 + I10 + **I12** hard-block (see § I-invariant table). For I7, a legacy RFC file satisfies resolution as before. Otherwise `wr-itil-story-map-query find-rfc <RFC-ID>` must return a release row whose `stories` contains this story; a row with no matching card fails because the row is the RFC under the "A release row is the RFC, and the map is the approval surface" architecture rule.
105
105
 
106
- **I12 — the approval gate (ADR-090 / ADR-096 / ADR-103; the hole P465 named).** A story reaches `accepted` only when it is approved. Under ADR-103 the map is the approval surface, so resolve in this order:
106
+ **I12 — the approval gate (the "Story maps and stories carry a drift-invalidated human-oversight marker" architecture rule / the "A story cannot be implemented while in draft — implementation requires accepted" architecture rule / the "A release row is the RFC, and the map is the approval surface" architecture rule; the hole the "The story `accepted` gate names ratification but no surface enforces it" problem named).** A story reaches `accepted` only when it is approved. Under the "A release row is the RFC, and the map is the approval surface" architecture rule the map is the approval surface, so resolve in this order:
107
107
 
108
108
  1. Every map in the story's `story-maps:` field is ratified? I12 satisfied; proceed.
109
109
  2. Otherwise HALT. Do not accept. Interactively, ratify the **map** (§ 7.5), which approves every story on it at once. Under AFK, leave the story in `draft` and queue the map's ratification to `outstanding_questions`; do NOT ask about it. Never write an oversight field onto the story — the marker writer refuses story paths, and there is no story-level approval to write.
@@ -119,36 +119,36 @@ For any transition `<from> → <to>`:
119
119
 
120
120
  3. **Edit the file** — Status field; for `accepted`, populate any deferred `## User value` / `## Acceptance criteria` / `## Implementation notes` sections via AskUserQuestion if not already filled.
121
121
 
122
- 4. **P057 staging-trap** — after the Edit, re-stage: `git add "docs/stories/${to_state}/STORY-${nnn}-${slug}.md"`.
122
+ 4. **the "Problem 057: `git mv` + Edit + `git add` staging-ordering trap drops content edits from the commit" problem staging-trap** — after the Edit, re-stage: `git add "docs/stories/${to_state}/STORY-${nnn}-${slug}.md"`.
123
123
 
124
- 5. **No ratify write here (ADR-103).** A story transition never writes an oversight marker, because a story has none — `wr-itil-mark-story-oversight-confirmed` refuses a story path. Approval is its map's, derived at read time from `story-maps:`, so nothing in this transition can grant or revoke it.
124
+ 5. **No ratify write here (the "A release row is the RFC, and the map is the approval surface" architecture rule).** A story transition never writes an oversight marker, because a story has none — `wr-itil-mark-story-oversight-confirmed` refuses a story path. Approval is its map's, derived at read time from `story-maps:`, so nothing in this transition can grant or revoke it.
125
125
 
126
126
  The write-ordering hazard this step used to guard is now a MAP concern only: when ratifying a map, the marker write must come after every substance write to that map and the file must be re-staged afterwards, or the marker records a hash of content that no longer exists. See `/wr-itil:manage-story-map <NNN> ratify`.
127
127
 
128
- #### Auto-transition triggers (ADR-060 line 292)
128
+ #### Auto-transition triggers (the "Problem-RFC-Story framework with mandatory problem-trace and unified problem ontology" architecture rule line 292)
129
129
 
130
130
  The auto-transition logic fires in two contexts:
131
131
 
132
- - **`accepted → in-progress`**: when the FIRST implementing commit lands with a `Refs: STORY-<NNN>` trailer AND a commit subject NOT prefixed with `feat(itil): capture STORY-`, on a story that is already `accepted`. **Per ADR-096 a `draft` story is NEVER implementable — there is NO `draft → in-progress` transition**; the `itil-no-implement-draft-gate` PreToolUse hook blocks a commit referencing a draft story (accept it first). **Detected by `itil-commit-trailer-transition-advisory.sh`** (PostToolUse:Bash; P378/RFC-030 Piece 2). Per ADR-014 the hook DETECTS + emits a stderr advisory; it does NOT perform the `git mv` (that would land outside the commit grain). The transition is performed by `manage-story <NNN> in-progress` (run on the advisory) or by an AFK orchestrator acting on it.
132
+ - **`accepted → in-progress`**: when the FIRST implementing commit lands with a `Refs: STORY-<NNN>` trailer AND a commit subject NOT prefixed with `feat(itil): capture STORY-`, on a story that is already `accepted`. **Per the "A story cannot be implemented while in draft — implementation requires accepted" architecture rule a `draft` story is NEVER implementable — there is NO `draft → in-progress` transition**; the `itil-no-implement-draft-gate` PreToolUse hook blocks a commit referencing a draft story (accept it first). **Detected by `itil-commit-trailer-transition-advisory.sh`** (PostToolUse:Bash; the "RFC lifecycle is not self-maintaining — it leans on human memory" problem/the ": RFC lifecycle self-maintenance" release design Piece 2). Per the "Governance Skills Commit Their Own Completed Work" architecture rule the hook DETECTS + emits a stderr advisory; it does NOT perform the `git mv` (that would land outside the commit grain). The transition is performed by `manage-story <NNN> in-progress` (run on the advisory) or by an AFK orchestrator acting on it.
133
133
 
134
134
  - **`in-progress → done`**: when all `- [ ]` lines in `## Acceptance criteria` are ticked AND the linked RFC is `closed`. Detected at manage-rfc close-fire (the RFC's transition triggers a sweep of its `stories:` array; each in-progress story with all-criteria-ticked auto-transitions to `done`). Manual `manage-story <NNN> done` invocation works in the interim.
135
135
 
136
- #### README refresh on every transition (P062 mirror)
136
+ #### README refresh on every transition (the "Problem 062: `manage-problem` does not refresh `docs/problems/README.md` on single-ticket transitions; fast-path cache goes stale silently" problem mirror)
137
137
 
138
138
  After rename + Edit + re-stage, regenerate `docs/stories/README.md` Story Rankings + Done tables in-place reflecting the new filename set and the transitioned story's new Status. Stage the refreshed README with the same commit.
139
139
 
140
- Update the "Last reviewed" line on `docs/stories/README.md` per the **inline P134 rotation mechanism** below. The mechanism is inlined here at the execution site (not deferred via cross-reference to `manage-problem` SKILL.md Step 5) so a single-pass agent reading this Step does not silently skip the archive step. **Skipping the BEFORE-rewrite archive step destroys the displaced fragment and re-opens P331** (origin failure mode: iter-7 + iter-8 of 2026-05-30's AFK work-problems session silently skipped the equivalent rotation on `docs/problems/README.md` in 2 of 9 transition-bearing iters). The mechanism MUST execute IN ORDER:
140
+ Update the "Last reviewed" line on `docs/stories/README.md` per the **inline the "`docs/problems/README.md` line 3 narrative-blob accumulator bloat — sibling to (briefing tier 3) on a different surface" problem rotation mechanism** below. The mechanism is inlined here at the execution site (not deferred via cross-reference to `manage-problem` SKILL.md Step 5) so a single-pass agent reading this Step does not silently skip the archive step. **Skipping the BEFORE-rewrite archive step destroys the displaced fragment and re-opens the "transition-problem SKILL Step 7 Last-reviewed rotation silently skipped across iters" problem** (origin failure mode: iter-7 + iter-8 of 2026-05-30's AFK work-problems session silently skipped the equivalent rotation on `docs/problems/README.md` in 2 of 9 transition-bearing iters). The mechanism MUST execute IN ORDER:
141
141
 
142
142
  1. **Read** line 3 of `docs/stories/README.md`: `awk 'NR==3' docs/stories/README.md` (`head -3 | tail -1` or `sed -n '3p'` are acceptable equivalents).
143
143
  2. **Append-if-non-empty (BEFORE step 3, not after)** — if line 3 is non-empty AND not a same-session same-verb near-duplicate of the new fragment, append the existing line 3 verbatim to `docs/stories/README-history.md` (created on first rotation) under a `## YYYY-MM-DD` heading. Run this BEFORE the Edit-tool rewrite in step 3 — Edit's replace pattern destroys the displaced content otherwise.
144
- 3. **Rewrite** line 3 of `docs/stories/README.md` with the new fragment of form `> Last reviewed: YYYY-MM-DD **<event>** — <one-line summary>` (e.g. `STORY-<NNN> <status> — <one-line summary>`). Soft cap ≤ 1024 bytes per fragment; hard ceiling 5120 bytes per ADR-040 Tier 3 envelope.
145
- 4. **Stage both** — `git add docs/stories/README.md docs/stories/README-history.md` so the same single commit per ADR-014 captures both files.
144
+ 3. **Rewrite** line 3 of `docs/stories/README.md` with the new fragment of form `> Last reviewed: YYYY-MM-DD **<event>** — <one-line summary>` (e.g. `STORY-<NNN> <status> — <one-line summary>`). Soft cap ≤ 1024 bytes per fragment; hard ceiling 5120 bytes per the "Session-start briefing surface — SessionStart hook over tiered directory + indexed README" architecture rule Tier 3 envelope.
145
+ 4. **Stage both** — `git add docs/stories/README.md docs/stories/README-history.md` so the same single commit per the "Governance Skills Commit Their Own Completed Work" architecture rule captures both files.
146
146
 
147
- Canonical rationale anchor: `manage-problem` SKILL.md Step 5 § Last-reviewed line discipline (P134). The discipline applies identically across `docs/problems/README.md`, `docs/rfcs/README.md`, and `docs/stories/README.md` (only the target index path differs). The cross-reference is preserved for the "why"; the "what" is inlined above for execution-time legibility per P331.
147
+ Canonical rationale anchor: `manage-problem` SKILL.md Step 5 § Last-reviewed line discipline (the "`docs/problems/README.md` line 3 narrative-blob accumulator bloat — sibling to (briefing tier 3) on a different surface" problem). The discipline applies identically across `docs/problems/README.md`, `docs/rfcs/README.md`, and `docs/stories/README.md` (only the target index path differs). The cross-reference is preserved for the "why"; the "what" is inlined above for execution-time legibility per the "transition-problem SKILL Step 7 Last-reviewed rotation silently skipped across iters" problem.
148
148
 
149
149
  #### Reverse trace on driving problem(s), JTBD(s), RFC(s), story-map(s) — skill-side primary surface
150
150
 
151
- Per ADR-060 line 270: every transition refreshes the `## Stories` section on each driving artefact inline in the same commit per ADR-014 single-commit grain.
151
+ Per the "Problem-RFC-Story framework with mandatory problem-trace and unified problem ontology" architecture rule line 270: every transition refreshes the `## Stories` section on each driving artefact inline in the same commit per the "Governance Skills Commit Their Own Completed Work" architecture rule single-commit grain.
152
152
 
153
153
  For each parent ID in the story's frontmatter:
154
154
 
@@ -187,15 +187,15 @@ done
187
187
 
188
188
  The helpers are idempotent + lazy-empty per the Slice 2a/2b/Slice 11 contract.
189
189
 
190
- ### 7.5. There is no per-story ratify (ADR-103)
190
+ ### 7.5. There is no per-story ratify (the "A release row is the RFC, and the map is the approval surface" architecture rule)
191
191
 
192
192
  **`ratify` is not a story subcommand.** A story carries no oversight marker, so there is nothing to write, and `wr-itil-mark-story-oversight-confirmed` exits 2 on a story path. Approval is its story map's: **`/wr-itil:manage-story-map <NNN> ratify`** approves every story on that map at once, including stories added later.
193
193
 
194
194
  Approval is still a precondition of `accepted` (I12) and still drift-invalidated — but at the map tier. A change to the map's activity columns, its identity, its prose or its traces re-opens it. Drawing a release row, putting a story in one, or editing a story's body does not.
195
195
 
196
- > Until ADR-103 this section ratified a single story. The clause "orthogonal to the `status:` lifecycle" was ambiguous between "ratification is not itself a status" (what it meant) and "ratification is not a precondition of any status" (what it read like); an agent acting on the second reading accepted and implemented an unratified story believing it compliant — the P465 failure, 2026-07-26. That hole is closed differently now: there is one approval surface, and the commit gate reads it directly.
196
+ > Until the "A release row is the RFC, and the map is the approval surface" architecture rule this section ratified a single story. The clause "orthogonal to the `status:` lifecycle" was ambiguous between "ratification is not itself a status" (what it meant) and "ratification is not a precondition of any status" (what it read like); an agent acting on the second reading accepted and implemented an unratified story believing it compliant — the "The story `accepted` gate names ratification but no surface enforces it" problem failure, 2026-07-26. That hole is closed differently now: there is one approval surface, and the commit gate reads it directly.
197
197
 
198
- **AFK (ADR-013 Rule 6):** if `AskUserQuestion` is unavailable, do NOT auto-ratify a map (hollow marker, P348). Leave it unratified for the `/wr-itil:work-problems` Step 2.4 drain. **No carve-outs** — ADR-101's AFK pure-decomposition exception is retired, because capturing a story no longer re-opens its map's approval and the deadlock it worked around is gone.
198
+ **AFK (the "Structured User Interaction for Governance-Skill Decisions" architecture rule Rule 6):** if `AskUserQuestion` is unavailable, do NOT auto-ratify a map (hollow marker, the "iter subprocesses set `human-oversight: confirmed` marker on ADRs / personas / JTBDs without an actual user-confirmation event" problem). Leave it unratified for the `/wr-itil:work-problems` Step 2.4 drain. **No carve-outs** — the "An AFK loop may accept and implement a story that only decomposes already-ratified substance" architecture rule's AFK pure-decomposition exception is retired, because capturing a story no longer re-opens its map's approval and the deadlock it worked around is gone.
199
199
 
200
200
  ### 8. List flow (`list`)
201
201
 
@@ -208,9 +208,9 @@ Per `/wr-itil:review-problems` precedent at the story tier:
208
208
  1. For each story, re-validate I6 + I9 (re-resolve problem + JTBD trace files; flag missing).
209
209
  2. For each accepted/in-progress story, re-validate I7 + I8 + I10 (re-resolve RFC + story-map trace files; re-check INVEST shape; flag drift).
210
210
  3. Regenerate `docs/stories/README.md` Story Rankings + Done tables.
211
- 4. Single commit per ADR-014; commit message names the review pass + count of drift-resolutions.
211
+ 4. Single commit per the "Governance Skills Commit Their Own Completed Work" architecture rule; commit message names the review pass + count of drift-resolutions.
212
212
 
213
- ### 10. Single commit per ADR-014
213
+ ### 10. Single commit per the "Governance Skills Commit Their Own Completed Work" architecture rule
214
214
 
215
215
  Stage list per transition shape:
216
216
  - Renamed story file (new path)
@@ -224,7 +224,7 @@ feat(itil): transition STORY-<NNN> <from> → <to> — <title>
224
224
  Refs: STORY-<NNN>
225
225
  ```
226
226
 
227
- Risk-gate per ADR-014: delegate to subagent type `wr-risk-scorer:pipeline` via the Agent tool; fallback `/wr-risk-scorer:assess-release` via Skill tool.
227
+ Risk-gate per the "Governance Skills Commit Their Own Completed Work" architecture rule: delegate to subagent type `wr-risk-scorer:pipeline` via the Agent tool; fallback `/wr-risk-scorer:assess-release` via Skill tool.
228
228
 
229
229
  ### 11. Report
230
230
 
@@ -242,32 +242,32 @@ After commit, report:
242
242
  | I7 + I8 hard-block | **Primary surface** — fires at `manage-story <NNN> accepted` | Advisory at capture if flags provided |
243
243
  | I10 INVEST shape | **Primary surface** — fires at `manage-story <NNN> accepted` | Out of scope (capture produces skeleton) |
244
244
  | Status transitions | Owns draft → accepted → in-progress → done → archived | Out of scope (creation only) |
245
- | README refresh | Inline per transition (P094 mirror) | Deferred to `manage-story review` or `wr-itil-reconcile-stories` |
246
- | Auto-transition triggers | Fires on first implementing commit against an ACCEPTED story (accepted→in-progress; draft→in-progress REMOVED per ADR-096) + criteria-ticked + RFC-closed (in-progress→done) | n/a |
245
+ | README refresh | Inline per transition (the "Problem 094: `/wr-itil:manage-problem` does not refresh `docs/problems/README.md` on ticket creation" problem mirror) | Deferred to `manage-story review` or `wr-itil-reconcile-stories` |
246
+ | Auto-transition triggers | Fires on first implementing commit against an ACCEPTED story (accepted→in-progress; draft→in-progress REMOVED per the "A story cannot be implemented while in draft — implementation requires accepted" architecture rule) + criteria-ticked + RFC-closed (in-progress→done) | n/a |
247
247
  | Reverse-trace refresh on parents | Inline for problems, JTBDs and legacy RFC files; row-backed RFCs use the map card | Same |
248
248
  | Commit grain | One commit per transition / per intake | One commit per capture |
249
249
 
250
250
  ## Related
251
251
 
252
- - **ADR-060** — Problem-RFC-Story framework + Phase 2 amendment 2026-05-10 (story tier).
253
- - **ADR-060 lines 248-253** — I6-I11 story-tier invariants.
254
- - **ADR-060 line 252** — I10 INVEST shape (Testable/Valuable/Independent/Estimable; Small SHOULD per architect-amendment-2026-05-10 nitpick N3).
255
- - **ADR-060 line 292** — auto-transition triggers (**amended by ADR-096**: draft→in-progress REMOVED — a draft story is blocked from implementation by the itil-no-implement-draft-gate; accepted→in-progress on the first implementing commit; in-progress→done on criteria-ticked + RFC-closed).
256
- - **ADR-060 line 339 + ADR-053 Bootstrapping precedent** — bootstrap-exemption marker contract for STORY-MAP-001 migration retrofit.
257
- - **P170** — driver problem ticket.
258
- - **JTBD-008** — Decompose a Fix Into Coordinated Changes. Primary persona-anchor.
259
- - **JTBD-001** (extended scope) — change-set-level governance composition.
260
- - **JTBD-006** — AFK orchestrator protection (I11 no-WSJF-leak prevents story-level competition in Step 3 selection).
252
+ - **the "Problem-RFC-Story framework with mandatory problem-trace and unified problem ontology" architecture rule** — Problem-RFC-Story framework + Phase 2 amendment 2026-05-10 (story tier).
253
+ - **the "Problem-RFC-Story framework with mandatory problem-trace and unified problem ontology" architecture rule lines 248-253** — I6-I11 story-tier invariants.
254
+ - **the "Problem-RFC-Story framework with mandatory problem-trace and unified problem ontology" architecture rule line 252** — I10 INVEST shape (Testable/Valuable/Independent/Estimable; Small SHOULD per architect-amendment-2026-05-10 nitpick N3).
255
+ - **the "Problem-RFC-Story framework with mandatory problem-trace and unified problem ontology" architecture rule line 292** — auto-transition triggers (**amended by the "A story cannot be implemented while in draft — implementation requires accepted" architecture rule**: draft→in-progress REMOVED — a draft story is blocked from implementation by the itil-no-implement-draft-gate; accepted→in-progress on the first implementing commit; in-progress→done on criteria-ticked + RFC-closed).
256
+ - **the "Problem-RFC-Story framework with mandatory problem-trace and unified problem ontology" architecture rule line 339 + the "`@windyroad/*` plugin / skill / agent / hook maturity taxonomy" architecture rule Bootstrapping precedent** — bootstrap-exemption marker contract for the "RFC framework bootstrap journey map" journey map migration retrofit.
257
+ - **the "Problem tickets strain as fixes decompose into multiple coordinated changes — need an RFC framework that ties all changes back to problems (and unifies technical with user/business problems)" problem** — driver problem ticket.
258
+ - **the ": Decompose a Fix Into Coordinated Changes" user outcome** — Decompose a Fix Into Coordinated Changes. Primary persona-anchor.
259
+ - **the ": Enforce Governance Without Slowing Down" user outcome** (extended scope) — change-set-level governance composition.
260
+ - **the ": Progress the Backlog While I'm Away" user outcome** — AFK orchestrator protection (I11 no-WSJF-leak prevents story-level competition in Step 3 selection).
261
261
  - **`docs/stories/README.md`** — story tier lifecycle index + frontmatter/body shape spec.
262
262
  - **`/wr-itil:capture-story` SKILL.md** — companion lightweight aside surface.
263
263
  - **`/wr-itil:reconcile-stories` SKILL.md** — drift detection + agent-applied edit recovery.
264
- - **ADR-014** — single-commit grain.
265
- - **ADR-022** — problem lifecycle conventions; story lifecycle mirrors.
266
- - **ADR-032** — governance-skill aside-invocation pattern; lightweight + heavyweight split.
267
- - **ADR-044** — decision delegation contract.
268
- - **ADR-051** — load-bearing-from-the-start; I7 + I8 + I10 ship on day one.
269
- - **ADR-052** — behavioural-tests default; `packages/itil/scripts/test/manage-story.bats` (P170 Phase 2 Slice 8).
270
- - **ADR-060 Phase 2 Slice 2a/2b/Slice 11 reverse-trace helpers** — `update-problem-references-section.sh`, `update-jtbd-references-section.sh`, `update-rfc-references-section.sh` all support `"Stories"` section-name token.
264
+ - **the "Governance Skills Commit Their Own Completed Work" architecture rule** — single-commit grain.
265
+ - **the "Problem lifecycle — add a Verification Pending status between Known Error and Closed" architecture rule** — problem lifecycle conventions; story lifecycle mirrors.
266
+ - **the "Governance skill invocation patterns — foreground + background with deferred-question resumption" architecture rule** — governance-skill aside-invocation pattern; lightweight + heavyweight split.
267
+ - **the "— Decision-Delegation Contract: when agents act on the framework vs ask the user" architecture rule** — decision delegation contract.
268
+ - **the "`@windyroad/*` plugin READMEs anchor on JTBD job IDs with load-bearing commit-hook + prose-woven framing" architecture rule** — load-bearing-from-the-start; I7 + I8 + I10 ship on day one.
269
+ - **the "Behavioural-tests-default for skill testing" architecture rule** — behavioural-tests default; `packages/itil/scripts/test/manage-story.bats` (the "Problem tickets strain as fixes decompose into multiple coordinated changes — need an RFC framework that ties all changes back to problems (and unifies technical with user/business problems)" problem Phase 2 Slice 8).
270
+ - **the "Problem-RFC-Story framework with mandatory problem-trace and unified problem ontology" architecture rule Phase 2 Slice 2a/2b/Slice 11 reverse-trace helpers** — `update-problem-references-section.sh`, `update-jtbd-references-section.sh`, `update-rfc-references-section.sh` all support `"Stories"` section-name token.
271
271
  - **manage-rfc SKILL.md** — direct precedent shape; manage-story mirrors with story-tier extensions for INVEST gate + auto-transitions.
272
272
 
273
273
  $ARGUMENTS
@@ -0,0 +1,3 @@
1
+ interface:
2
+ display_name: "WR ITIL: Manage Story"
3
+ short_description: "Manage traced delivery-story lifecycle."
@@ -1,16 +1,16 @@
1
1
  ---
2
2
  name: wr-itil:manage-story-map
3
- description: Heavyweight story-map intake + lifecycle management following ADR-060 Phase 2. Authors backbone × ribs × slices structure on draft maps, transitions through draft → accepted → in-progress → completed → archived, re-validates I3 + I4 invariants at every transition, and refreshes docs/story-maps/README.md per the P062 / P094 contract pattern. Companion to /wr-itil:capture-story-map (lightweight aside surface).
3
+ description: Heavyweight story-map intake + lifecycle management following the "Problem-RFC-Story framework with mandatory problem-trace and unified problem ontology" architecture rule Phase 2. Authors backbone × ribs × slices structure on draft maps, transitions through draft → accepted → in-progress → completed → archived, re-validates I3 + I4 invariants at every transition, and refreshes docs/story-maps/README.md per the "Problem 062: `manage-problem` does not refresh `docs/problems/README.md` on single-ticket transitions; fast-path cache goes stale silently" problem / the "Problem 094: `/wr-itil:manage-problem` does not refresh `docs/problems/README.md` on ticket creation" problem contract pattern. Companion to /wr-itil:capture-story-map (lightweight aside surface).
4
4
  allowed-tools: Read, Write, Edit, Bash, Grep, Glob
5
5
  ---
6
6
 
7
7
  # Manage Story Map Skill
8
8
 
9
- Heavyweight story-map lifecycle management. Mirrors `/wr-itil:manage-story` shape per ADR-032 lightweight + heavyweight split, applied at the story-map tier with HTML encoding.
9
+ Heavyweight story-map lifecycle management. Mirrors `/wr-itil:manage-story` shape per the "Governance skill invocation patterns — foreground + background with deferred-question resumption" architecture rule lightweight + heavyweight split, applied at the story-map tier with HTML encoding.
10
10
 
11
11
  ## Story-Map Lifecycle
12
12
 
13
- Per ADR-060 amendment 2026-05-10 lines 145-189 + encoding amendment 2026-05-12:
13
+ Per the "Problem-RFC-Story framework with mandatory problem-trace and unified problem ontology" architecture rule amendment 2026-05-10 lines 145-189 + encoding amendment 2026-05-12:
14
14
 
15
15
  | Status | Filename pattern | Meaning |
16
16
  |--------|-----------------|---------|
@@ -24,11 +24,11 @@ Per ADR-060 amendment 2026-05-10 lines 145-189 + encoding amendment 2026-05-12:
24
24
 
25
25
  | Invariant | What it asserts | Where it fires |
26
26
  |-----------|-----------------|----------------|
27
- | **I3** trace-to-problem | Every map traces to ≥ 1 problem (ADR-060, the story-map schema's `problems:` field) | Hard-block at `/wr-itil:capture-story-map` + re-validated at every transition |
28
- | **I4** trace-to-JTBD | Every map traces to ≥ 1 JTBD (ADR-060, the story-map schema's `jtbd:` field) | Hard-block at `/wr-itil:capture-story-map` + re-validated at every transition |
29
- | **I5** no-WSJF-leak | Maps MUST NOT carry WSJF (ADR-060, the no-WSJF-on-maps invariant) | Behavioural test: argument grammar + frontmatter carry no WSJF |
27
+ | **I3** trace-to-problem | Every map traces to ≥ 1 problem (the "Problem-RFC-Story framework with mandatory problem-trace and unified problem ontology" architecture rule, the story-map schema's `problems:` field) | Hard-block at `/wr-itil:capture-story-map` + re-validated at every transition |
28
+ | **I4** trace-to-JTBD | Every map traces to ≥ 1 JTBD (the "Problem-RFC-Story framework with mandatory problem-trace and unified problem ontology" architecture rule, the story-map schema's `jtbd:` field) | Hard-block at `/wr-itil:capture-story-map` + re-validated at every transition |
29
+ | **I5** no-WSJF-leak | Maps MUST NOT carry WSJF (the "Problem-RFC-Story framework with mandatory problem-trace and unified problem ontology" architecture rule, the no-WSJF-on-maps invariant) | Behavioural test: argument grammar + frontmatter carry no WSJF |
30
30
 
31
- **Bootstrap-exemption marker** per ADR-060 line 339 + ADR-053 Bootstrapping precedent: STORY-MAP-001 ships with the `<!-- bootstrap-exempt -->` marker during retrofit; non-bootstrap captures with the marker fail.
31
+ **Bootstrap-exemption marker** per the "Problem-RFC-Story framework with mandatory problem-trace and unified problem ontology" architecture rule line 339 + the "`@windyroad/*` plugin / skill / agent / hook maturity taxonomy" architecture rule Bootstrapping precedent: the "RFC framework bootstrap journey map" journey map ships with the `<!-- bootstrap-exempt -->` marker during retrofit; non-bootstrap captures with the marker fail.
32
32
 
33
33
  ## Argument grammar
34
34
 
@@ -38,7 +38,7 @@ Per ADR-060 amendment 2026-05-10 lines 145-189 + encoding amendment 2026-05-12:
38
38
  /wr-itil:manage-story-map <STORY-MAP-NNN> in-progress # Manual transition
39
39
  /wr-itil:manage-story-map <STORY-MAP-NNN> completed # Transition in-progress → completed
40
40
  /wr-itil:manage-story-map <STORY-MAP-NNN> archived # Close without completion
41
- /wr-itil:manage-story-map <STORY-MAP-NNN> ratify # ADR-103: confirm the map — approves every story on it
41
+ /wr-itil:manage-story-map <STORY-MAP-NNN> ratify # the "A release row is the RFC, and the map is the approval surface" architecture rule: confirm the map — approves every story on it
42
42
  /wr-itil:manage-story-map review # Re-validate all maps + refresh README
43
43
  ```
44
44
 
@@ -94,7 +94,7 @@ For any transition `<from> → <to>`:
94
94
  - `completed`: every slice has `data-status="done"`.
95
95
  - `archived`: no invariants (manual close).
96
96
 
97
- 2. **`git mv` to new state subdir + Edit `<meta name="status">`** + P057 re-stage.
97
+ 2. **`git mv` to new state subdir + Edit `<meta name="status">`** + the "Problem 057: `git mv` + Edit + `git add` staging-ordering trap drops content edits from the commit" problem re-stage.
98
98
 
99
99
  3. **README refresh** — regenerate `docs/story-maps/README.md` lifecycle-grouped section from FS truth. Stage in same commit.
100
100
 
@@ -114,31 +114,31 @@ done
114
114
 
115
115
  Per architect amend finding 2 on Slice 7: story-map HTML files do NOT carry an auto-maintained markdown reverse-trace section themselves (the `<a class="slice">` data-attribute traces are authored manually during backbone design). No reverse-trace refresh on the map itself; reverse-trace only flows OUT to problem + JTBD parents.
116
116
 
117
- ### 7.5. Ratification flow (`ratify`) — ADR-090 / ADR-103 / STORY-022
117
+ ### 7.5. Ratification flow (`ratify`) — the "Story maps and stories carry a drift-invalidated human-oversight marker" architecture rule / the "A release row is the RFC, and the map is the approval surface" architecture rule / the ": Ratify the story map and its stories after any change" delivery story
118
118
 
119
- `ratify` is **orthogonal to the status lifecycle** — a map can be ratified at any status. It confirms human oversight of **the map**, and under ADR-103 that approves every story on it, including stories added later; stories are never ratified individually. Ratification is **drift-invalidated** (ADR-009 lineage, NOT ADR-066 write-once), but only a **substance** edit re-opens it: the map's own substance as ADR-090 defines it — its journey, its identity, and what it traces to. `oversight_map_substance_keys()` is the authoritative field list; this page deliberately does not restate it. Release rows, the cards in them, story-body edits and template restyling all sit outside the fingerprint basis and change nothing. This is the STORY-022 surface.
119
+ `ratify` is **orthogonal to the status lifecycle** — a map can be ratified at any status. It confirms human oversight of **the map**, and under the "A release row is the RFC, and the map is the approval surface" architecture rule that approves every story on it, including stories added later; stories are never ratified individually. Ratification is **drift-invalidated** (the "Gate Marker Lifecycle: TTL + Drift, Not Stop-Hook Reset" architecture rule lineage, NOT the ": Human-oversight marker + `/wr-architect:review-decisions` drain for recorded decisions" architecture rule write-once), but only a **substance** edit re-opens it: the map's own substance as the "Story maps and stories carry a drift-invalidated human-oversight marker" architecture rule defines it — its journey, its identity, and what it traces to. `oversight_map_substance_keys()` is the authoritative field list; this page deliberately does not restate it. Release rows, the cards in them, story-body edits and template restyling all sit outside the fingerprint basis and change nothing. This is the ": Ratify the story map and its stories after any change" delivery story surface.
120
120
 
121
- **Born-confirmed discipline (P348).** Before any marker write, `export CLAUDE_SESSION_ID` from the transcript path — the marker shim silently no-ops on an empty SID. Every `confirmed` marker MUST be backed by a same-turn human confirm event; never write `confirmed` without the `AskUserQuestion` below (a hollow marker is the P348 bug).
121
+ **Born-confirmed discipline (the "iter subprocesses set `human-oversight: confirmed` marker on ADRs / personas / JTBDs without an actual user-confirmation event" problem).** Before any marker write, `export CLAUDE_SESSION_ID` from the transcript path — the marker shim silently no-ops on an empty SID. Every `confirmed` marker MUST be backed by a same-turn human confirm event; never write `confirmed` without the `AskUserQuestion` below (a hollow marker is the "iter subprocesses set `human-oversight: confirmed` marker on ADRs / personas / JTBDs without an actual user-confirmation event" problem bug).
122
122
 
123
- **Ratify the map; its stories follow (STORY-022 UX, amended by ADR-103):**
123
+ **Ratify the map; its stories follow (the ": Ratify the story map and its stories after any change" delivery story UX, amended by the "A release row is the RFC, and the map is the approval surface" architecture rule):**
124
124
 
125
- 1. **Ratify the map.** Present the map's path/URL + a self-contained briefing of what it is — the JTBD it serves, its backbone activities, its release slices — briefing the substance BEFORE any ID (P350; the user may be on a device with no repo access). Then `AskUserQuestion` with exactly two options:
125
+ 1. **Ratify the map.** Present the map's path/URL + a self-contained briefing of what it is — the JTBD it serves, its backbone activities, its release slices — briefing the substance BEFORE any ID (the "agent surfaces decisions to user using opaque IDs (P-numbers, ADR-numbers, JTBD-numbers) without explaining what they mean — empathy gap" problem; the user may be on a device with no repo access). Then `AskUserQuestion` with exactly two options:
126
126
  - **Ratify** — the map is correct as-is.
127
127
  - **(type something)** — free-text; treat the response as a change request, apply it as a map edit, and re-present. Do NOT ratify a map the user just amended — the edit drifts the fingerprint; loop back to re-brief.
128
128
 
129
129
  On **Ratify**: run `wr-itil-mark-story-oversight-confirmed <map-file>` (writes `confirmed` + the fingerprint). The map is now ratified.
130
130
 
131
- 2. **Do NOT ratify the stories at all (ADR-103).** Ratifying the map approves every story on it, so there is nothing left to do: no per-story marker, no per-story `AskUserQuestion`, and no oversight field written onto a story. `wr-itil-mark-story-oversight-confirmed` refuses a story path outright. Test a story's approval with `story_is_approved`, which derives it from the story's `story-maps:` field.
131
+ 2. **Do NOT ratify the stories at all (the "A release row is the RFC, and the map is the approval surface" architecture rule).** Ratifying the map approves every story on it, so there is nothing left to do: no per-story marker, no per-story `AskUserQuestion`, and no oversight field written onto a story. `wr-itil-mark-story-oversight-confirmed` refuses a story path outright. Test a story's approval with `story_is_approved`, which derives it from the story's `story-maps:` field.
132
132
 
133
- 3. **AFK / non-interactive (ADR-013 Rule 6).** When `AskUserQuestion` is unavailable, do NOT auto-ratify — that would forge a hollow marker (P348). Leave the artefacts unratified; they surface in the `/wr-itil:work-problems` Step 2.4 drain for the next interactive session.
133
+ 3. **AFK / non-interactive (the "Structured User Interaction for Governance-Skill Decisions" architecture rule Rule 6).** When `AskUserQuestion` is unavailable, do NOT auto-ratify — that would forge a hollow marker (the "iter subprocesses set `human-oversight: confirmed` marker on ADRs / personas / JTBDs without an actual user-confirmation event" problem). Leave the artefacts unratified; they surface in the `/wr-itil:work-problems` Step 2.4 drain for the next interactive session.
134
134
 
135
- 4. **Single commit** — stage the map + the README refresh; commit per ADR-014. No story file changes: ratifying a map approves its stories without touching them.
135
+ 4. **Single commit** — stage the map + the README refresh; commit per the "Governance Skills Commit Their Own Completed Work" architecture rule. No story file changes: ratifying a map approves its stories without touching them.
136
136
 
137
- **Why the map:** an RFC may reference only approved stories (`wr-itil-check-rfc-stories-ratified`), and a story is only meaningful inside its map — which is why ADR-103 makes the map the single approval surface rather than ratifying at both tiers.
137
+ **Why the map:** an RFC may reference only approved stories (`wr-itil-check-rfc-stories-ratified`), and a story is only meaningful inside its map — which is why the "A release row is the RFC, and the map is the approval surface" architecture rule makes the map the single approval surface rather than ratifying at both tiers.
138
138
 
139
- **Reuse offers approved stories only (STORY-024).** When decomposing a fix, existing map stories the fix touches are offered for **reuse** — referenced by an additional slice card / `data-story-id`, NOT duplicated as a new file; the reused story's `rfcs:` reverse-trace picks up the new RFC. Only **approved** stories (test with `story_is_approved`, which honours ADR-103 map inheritance) are offered for reuse; an unapproved story needs its map ratified (§ 7) before an RFC can reference it.
139
+ **Reuse offers approved stories only (the ": Reuse stories already on the map" delivery story).** When decomposing a fix, existing map stories the fix touches are offered for **reuse** — referenced by an additional slice card / `data-story-id`, NOT duplicated as a new file; the reused story's `rfcs:` reverse-trace picks up the new RFC. Only **approved** stories (test with `story_is_approved`, which honours the "A release row is the RFC, and the map is the approval surface" architecture rule map inheritance) are offered for reuse; an unapproved story needs its map ratified (§ 7) before an RFC can reference it.
140
140
 
141
- **Re-slicing does NOT re-open ratification (STORY-025, amended by ADR-103).** Grouping stories into ordered release rows (Release 1 walking skeleton → Release 2 …) is authored as release-row and card edits on the map. **Composing a row asks the two questions in `/wr-itil:capture-story-map` — do these stories NEED to ship together, and SHOULD they — and re-slicing is where the second one usually gets skipped: rows drawn once are rarely re-examined against the cost of delay they now impose.** deferred phases stay first-class cards (visible, competing for priority), never buried. Rows and cards sit OUTSIDE the fingerprint basis, so re-slicing is silent — scheduling is not what the human approved. What DOES re-open a map's approval: a change to the map's own substance — see `oversight_map_substance_keys()`. *(This sentence enumerated five of the seven keys until 2026-08-08, omitting `storyMapId` and `secondaryPersona`. It is the under-enumeration half of that day's drift: it told a maintainer mid-re-slice that a secondary-persona edit was safe when it re-opens approval.)* The fingerprint handles it either way; no explicit marker reset is needed.
141
+ **Re-slicing does NOT re-open ratification (the ": Slice the fix's stories into releases" delivery story, amended by the "A release row is the RFC, and the map is the approval surface" architecture rule).** Grouping stories into ordered release rows (Release 1 walking skeleton → Release 2 …) is authored as release-row and card edits on the map. **Composing a row asks the two questions in `/wr-itil:capture-story-map` — do these stories NEED to ship together, and SHOULD they — and re-slicing is where the second one usually gets skipped: rows drawn once are rarely re-examined against the cost of delay they now impose.** deferred phases stay first-class cards (visible, competing for priority), never buried. Rows and cards sit OUTSIDE the fingerprint basis, so re-slicing is silent — scheduling is not what the human approved. What DOES re-open a map's approval: a change to the map's own substance — see `oversight_map_substance_keys()`. *(This sentence enumerated five of the seven keys until 2026-08-08, omitting `storyMapId` and `secondaryPersona`. It is the under-enumeration half of that day's drift: it told a maintainer mid-re-slice that a secondary-persona edit was safe when it re-opens approval.)* The fingerprint handles it either way; no explicit marker reset is needed.
142
142
 
143
143
  ### 8. List flow (`list`)
144
144
 
@@ -148,7 +148,7 @@ Forward-points to `/wr-itil:list-story-maps` (read-only sibling).
148
148
 
149
149
  Re-validate every map's I3 + I4. Regenerate README. Single commit.
150
150
 
151
- ### 10. Single commit per ADR-014
151
+ ### 10. Single commit per the "Governance Skills Commit Their Own Completed Work" architecture rule
152
152
 
153
153
  Stage: renamed map file + README + driving problem/JTBD files whose `## Story Maps` section refreshed.
154
154
 
@@ -165,23 +165,23 @@ Story-map ID + new status + invariants verified + parent artefacts touched + tra
165
165
  | I3 + I4 | Re-validated at every transition | Hard-block at capture |
166
166
  | Backbone authoring | Step 7 accepted-transition AskUserQuestion fires | Out of scope (deferred-placeholder rib only) |
167
167
  | Status transitions | draft → accepted → in-progress → completed → archived | Out of scope (creation only) |
168
- | README refresh | Inline per transition (P094 mirror) | Deferred to `manage-story-map review` or `reconcile-story-maps` |
168
+ | README refresh | Inline per transition (the "Problem 094: `/wr-itil:manage-problem` does not refresh `docs/problems/README.md` on ticket creation" problem mirror) | Deferred to `manage-story-map review` or `reconcile-story-maps` |
169
169
  | Commit grain | One commit per intake / per transition | One commit per capture |
170
170
 
171
171
  ## Related
172
172
 
173
- - **ADR-060** — Problem-RFC-Story framework; Phase 2 amendment 2026-05-10 (story-map frontmatter schema + the I3/I4/I5 invariants) + encoding amendment 2026-05-12.
174
- - **ADR-060**, the no-WSJF-on-maps invariant — I5.
175
- - **ADR-060**, the ordered `stories:` array on an RFC, **+ ADR-053** — bootstrap-exemption marker contract.
173
+ - **the "Problem-RFC-Story framework with mandatory problem-trace and unified problem ontology" architecture rule** — Problem-RFC-Story framework; Phase 2 amendment 2026-05-10 (story-map frontmatter schema + the I3/I4/I5 invariants) + encoding amendment 2026-05-12.
174
+ - **the "Problem-RFC-Story framework with mandatory problem-trace and unified problem ontology" architecture rule**, the no-WSJF-on-maps invariant — I5.
175
+ - **the "Problem-RFC-Story framework with mandatory problem-trace and unified problem ontology" architecture rule**, the ordered `stories:` array on an RFC, **+ the "`@windyroad/*` plugin / skill / agent / hook maturity taxonomy" architecture rule** — bootstrap-exemption marker contract.
176
176
 
177
- (Line-number citations were removed here: they are positional, and ADR-060 has been amended enough times that every one of them pointed at the wrong line.)
177
+ (Line-number citations were removed here: they are positional, and the "Problem-RFC-Story framework with mandatory problem-trace and unified problem ontology" architecture rule has been amended enough times that every one of them pointed at the wrong line.)
178
178
  - **`docs/STYLE-GUIDE.md`** — HTML style rules manage-story-map enforces.
179
- - **P170** — driver problem ticket.
180
- - **JTBD-008** — primary anchor.
181
- - **JTBD-302** — README-currency rule.
179
+ - **the "Problem tickets strain as fixes decompose into multiple coordinated changes — need an RFC framework that ties all changes back to problems (and unifies technical with user/business problems)" problem** — driver problem ticket.
180
+ - **the ": Decompose a Fix Into Coordinated Changes" user outcome** — primary anchor.
181
+ - **the "Trust That the README Describes the Plugin I Just Installed" user outcome** — README-currency rule.
182
182
  - **`/wr-itil:capture-story-map`** — companion lightweight aside.
183
183
  - **`/wr-itil:reconcile-story-maps`** — drift detection + recovery.
184
184
  - **manage-story SKILL.md** — sibling at the story tier; manage-story-map mirrors with HTML-encoding adjustments (`<meta>` block parse + backbone-authoring AskUserQuestion + no I7/I8/I9/I10 — those are story-tier invariants).
185
- - **ADR-052** — behavioural-tests default; `packages/itil/skills/manage-story-map/test/manage-story-map-contract.bats`.
185
+ - **the "Behavioural-tests-default for skill testing" architecture rule** — behavioural-tests default; `packages/itil/skills/manage-story-map/test/manage-story-map-contract.bats`.
186
186
 
187
187
  $ARGUMENTS
@@ -0,0 +1,3 @@
1
+ interface:
2
+ display_name: "WR ITIL: Manage Story Map"
3
+ short_description: "Manage story-map content, lifecycle, and approval."