@rune-kit/rune 2.10.0 → 2.12.0

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 (240) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +65 -6
  3. package/commands/rune.md +168 -168
  4. package/compiler/__tests__/detect-invariants.test.js +136 -0
  5. package/compiler/__tests__/doctor-mesh.test.js +229 -0
  6. package/compiler/__tests__/hook-dispatch.test.js +91 -0
  7. package/compiler/__tests__/hooks-antigravity.test.js +118 -0
  8. package/compiler/__tests__/hooks-cursor.test.js +139 -0
  9. package/compiler/__tests__/hooks-install.test.js +305 -0
  10. package/compiler/__tests__/hooks-merge.test.js +204 -0
  11. package/compiler/__tests__/hooks-tiers.test.js +519 -0
  12. package/compiler/__tests__/hooks-windsurf.test.js +115 -0
  13. package/compiler/__tests__/inject-claude-md.test.js +152 -0
  14. package/compiler/__tests__/load-invariants.test.js +408 -0
  15. package/compiler/__tests__/onboard-invariants.test.js +240 -0
  16. package/compiler/adapters/hooks/antigravity.js +140 -0
  17. package/compiler/adapters/hooks/claude.js +166 -0
  18. package/compiler/adapters/hooks/cursor.js +191 -0
  19. package/compiler/adapters/hooks/index.js +82 -0
  20. package/compiler/adapters/hooks/tier-emitter.js +182 -0
  21. package/compiler/adapters/hooks/windsurf.js +202 -0
  22. package/compiler/bin/rune.js +196 -6
  23. package/compiler/commands/hook-dispatch.js +87 -0
  24. package/compiler/commands/hooks/install.js +120 -0
  25. package/compiler/commands/hooks/merge.js +211 -0
  26. package/compiler/commands/hooks/presets.js +116 -0
  27. package/compiler/commands/hooks/status.js +112 -0
  28. package/compiler/commands/hooks/tiers.js +221 -0
  29. package/compiler/commands/hooks/uninstall.js +94 -0
  30. package/compiler/doctor.js +236 -0
  31. package/contexts/dev.md +34 -34
  32. package/contexts/research.md +43 -43
  33. package/contexts/review.md +55 -55
  34. package/extensions/ai-ml/PACK.md +88 -88
  35. package/extensions/ai-ml/skills/ai-agents.md +172 -172
  36. package/extensions/ai-ml/skills/code-sandbox.md +187 -187
  37. package/extensions/ai-ml/skills/deep-research.md +146 -146
  38. package/extensions/ai-ml/skills/embedding-search.md +66 -66
  39. package/extensions/ai-ml/skills/fine-tuning-guide.md +74 -74
  40. package/extensions/ai-ml/skills/llm-architect.md +125 -125
  41. package/extensions/ai-ml/skills/llm-integration.md +64 -64
  42. package/extensions/ai-ml/skills/prompt-patterns.md +72 -72
  43. package/extensions/ai-ml/skills/rag-patterns.md +66 -66
  44. package/extensions/ai-ml/skills/web-extraction.md +114 -114
  45. package/extensions/analytics/PACK.md +92 -92
  46. package/extensions/analytics/skills/ab-testing.md +72 -72
  47. package/extensions/analytics/skills/dashboard-patterns.md +83 -83
  48. package/extensions/analytics/skills/data-validation.md +68 -68
  49. package/extensions/analytics/skills/funnel-analysis.md +81 -81
  50. package/extensions/analytics/skills/sql-patterns.md +57 -57
  51. package/extensions/analytics/skills/statistical-analysis.md +79 -79
  52. package/extensions/analytics/skills/tracking-setup.md +71 -71
  53. package/extensions/backend/PACK.md +104 -104
  54. package/extensions/backend/skills/api-patterns.md +84 -84
  55. package/extensions/backend/skills/async-pipeline.md +193 -193
  56. package/extensions/backend/skills/auth-patterns.md +97 -97
  57. package/extensions/backend/skills/background-jobs.md +133 -133
  58. package/extensions/backend/skills/caching-patterns.md +108 -108
  59. package/extensions/backend/skills/cli-generation.md +133 -133
  60. package/extensions/backend/skills/database-patterns.md +87 -87
  61. package/extensions/backend/skills/middleware-patterns.md +104 -104
  62. package/extensions/chrome-ext/PACK.md +93 -93
  63. package/extensions/chrome-ext/skills/cws-preflight.md +143 -143
  64. package/extensions/chrome-ext/skills/cws-publish.md +104 -104
  65. package/extensions/chrome-ext/skills/ext-ai-integration.md +251 -251
  66. package/extensions/chrome-ext/skills/ext-messaging.md +139 -139
  67. package/extensions/chrome-ext/skills/ext-storage.md +133 -133
  68. package/extensions/chrome-ext/skills/mv3-scaffold.md +164 -164
  69. package/extensions/content/PACK.md +96 -96
  70. package/extensions/content/skills/blog-patterns.md +88 -88
  71. package/extensions/content/skills/cms-integration.md +131 -131
  72. package/extensions/content/skills/content-scoring.md +107 -107
  73. package/extensions/content/skills/i18n.md +83 -83
  74. package/extensions/content/skills/mdx-authoring.md +137 -137
  75. package/extensions/content/skills/reference.md +1014 -1014
  76. package/extensions/content/skills/seo-patterns.md +67 -67
  77. package/extensions/content/skills/video-repurpose.md +153 -153
  78. package/extensions/devops/PACK.md +101 -101
  79. package/extensions/devops/skills/chaos-testing.md +67 -67
  80. package/extensions/devops/skills/ci-cd.md +75 -75
  81. package/extensions/devops/skills/docker.md +58 -58
  82. package/extensions/devops/skills/edge-serverless.md +163 -163
  83. package/extensions/devops/skills/infra-as-code.md +158 -158
  84. package/extensions/devops/skills/kubernetes.md +110 -110
  85. package/extensions/devops/skills/monitoring.md +57 -57
  86. package/extensions/devops/skills/server-setup.md +64 -64
  87. package/extensions/devops/skills/ssl-domain.md +42 -42
  88. package/extensions/ecommerce/PACK.md +116 -116
  89. package/extensions/ecommerce/skills/cart-system.md +79 -79
  90. package/extensions/ecommerce/skills/inventory-mgmt.md +102 -102
  91. package/extensions/ecommerce/skills/order-management.md +126 -126
  92. package/extensions/ecommerce/skills/payment-integration.md +472 -472
  93. package/extensions/ecommerce/skills/shopify-dev.md +69 -69
  94. package/extensions/ecommerce/skills/subscription-billing.md +93 -93
  95. package/extensions/ecommerce/skills/tax-compliance.md +117 -117
  96. package/extensions/gamedev/PACK.md +142 -142
  97. package/extensions/gamedev/skills/asset-pipeline.md +74 -74
  98. package/extensions/gamedev/skills/audio-system.md +129 -129
  99. package/extensions/gamedev/skills/camera-system.md +87 -87
  100. package/extensions/gamedev/skills/ecs.md +98 -98
  101. package/extensions/gamedev/skills/game-loops.md +72 -72
  102. package/extensions/gamedev/skills/input-system.md +199 -199
  103. package/extensions/gamedev/skills/multiplayer.md +180 -180
  104. package/extensions/gamedev/skills/particles.md +105 -105
  105. package/extensions/gamedev/skills/physics-engine.md +89 -89
  106. package/extensions/gamedev/skills/scene-management.md +146 -146
  107. package/extensions/gamedev/skills/threejs-patterns.md +90 -90
  108. package/extensions/gamedev/skills/webgl.md +71 -71
  109. package/extensions/mobile/PACK.md +106 -106
  110. package/extensions/mobile/skills/app-store-connect.md +152 -152
  111. package/extensions/mobile/skills/app-store-prep.md +66 -66
  112. package/extensions/mobile/skills/deep-linking.md +109 -109
  113. package/extensions/mobile/skills/flutter.md +60 -60
  114. package/extensions/mobile/skills/ios-build-pipeline.md +142 -142
  115. package/extensions/mobile/skills/native-bridge.md +66 -66
  116. package/extensions/mobile/skills/ota-updates.md +97 -97
  117. package/extensions/mobile/skills/push-notifications.md +111 -111
  118. package/extensions/mobile/skills/react-native.md +82 -82
  119. package/extensions/saas/PACK.md +116 -116
  120. package/extensions/saas/skills/billing-integration.md +200 -200
  121. package/extensions/saas/skills/feature-flags.md +130 -130
  122. package/extensions/saas/skills/multi-tenant.md +103 -103
  123. package/extensions/saas/skills/onboarding-flow.md +139 -139
  124. package/extensions/saas/skills/subscription-flow.md +95 -95
  125. package/extensions/saas/skills/team-management.md +144 -144
  126. package/extensions/security/PACK.md +99 -99
  127. package/extensions/security/skills/api-security.md +140 -140
  128. package/extensions/security/skills/compliance.md +68 -68
  129. package/extensions/security/skills/owasp-audit.md +64 -64
  130. package/extensions/security/skills/pentest-patterns.md +77 -77
  131. package/extensions/security/skills/secret-mgmt.md +65 -65
  132. package/extensions/security/skills/supply-chain.md +65 -65
  133. package/extensions/trading/PACK.md +80 -80
  134. package/extensions/trading/skills/chart-components.md +55 -55
  135. package/extensions/trading/skills/experiment-loop.md +125 -125
  136. package/extensions/trading/skills/fintech-patterns.md +47 -47
  137. package/extensions/trading/skills/indicator-library.md +58 -58
  138. package/extensions/trading/skills/quant-analysis.md +111 -111
  139. package/extensions/trading/skills/realtime-data.md +58 -58
  140. package/extensions/trading/skills/trade-logic.md +104 -104
  141. package/extensions/ui/PACK.md +130 -130
  142. package/extensions/ui/skills/a11y-audit.md +91 -91
  143. package/extensions/ui/skills/animation-patterns.md +127 -127
  144. package/extensions/ui/skills/component-patterns.md +100 -100
  145. package/extensions/ui/skills/design-decision.md +108 -108
  146. package/extensions/ui/skills/design-system.md +68 -68
  147. package/extensions/ui/skills/landing-patterns.md +155 -155
  148. package/extensions/ui/skills/palette-picker.md +173 -173
  149. package/extensions/ui/skills/react-health.md +90 -90
  150. package/extensions/ui/skills/type-system.md +125 -125
  151. package/extensions/ui/skills/web-vitals.md +153 -153
  152. package/extensions/zalo/PACK.md +145 -145
  153. package/extensions/zalo/skills/zalo-oa-mcp.md +317 -317
  154. package/extensions/zalo/skills/zalo-oa-messaging.md +429 -429
  155. package/extensions/zalo/skills/zalo-oa-setup.md +236 -236
  156. package/extensions/zalo/skills/zalo-oa-webhook.md +189 -189
  157. package/extensions/zalo/skills/zalo-personal-messaging.md +194 -194
  158. package/extensions/zalo/skills/zalo-personal-setup.md +153 -153
  159. package/extensions/zalo/skills/zalo-rate-guard.md +219 -219
  160. package/hooks/auto-format/index.cjs +48 -48
  161. package/hooks/hooks.json +111 -111
  162. package/hooks/post-session-reflect/index.cjs +189 -189
  163. package/hooks/pre-compact/index.cjs +95 -95
  164. package/hooks/run-hook.cmd +1 -1
  165. package/hooks/secrets-scan/index.cjs +100 -100
  166. package/hooks/session-start/index.cjs +71 -71
  167. package/hooks/typecheck/index.cjs +65 -65
  168. package/package.json +63 -63
  169. package/references/ui-pro-max-data/LICENSE-UI-PRO-MAX +21 -21
  170. package/references/ui-pro-max-data/charts.csv +26 -26
  171. package/references/ui-pro-max-data/colors.csv +161 -161
  172. package/references/ui-pro-max-data/styles.csv +68 -68
  173. package/references/ui-pro-max-data/typography.csv +74 -74
  174. package/references/ui-pro-max-data/ui-reasoning.csv +162 -162
  175. package/references/ui-pro-max-data/ux-guidelines.csv +99 -99
  176. package/skills/adversary/SKILL.md +283 -283
  177. package/skills/asset-creator/SKILL.md +157 -157
  178. package/skills/audit/SKILL.md +147 -2
  179. package/skills/autopsy/SKILL.md +335 -335
  180. package/skills/ba/SKILL.md +85 -1
  181. package/skills/brainstorm/SKILL.md +380 -342
  182. package/skills/browser-pilot/SKILL.md +169 -168
  183. package/skills/constraint-check/SKILL.md +165 -165
  184. package/skills/context-engine/SKILL.md +408 -404
  185. package/skills/cook/SKILL.md +917 -863
  186. package/skills/db/SKILL.md +273 -273
  187. package/skills/debug/SKILL.md +465 -465
  188. package/skills/dependency-doctor/SKILL.md +265 -235
  189. package/skills/deploy/SKILL.md +274 -231
  190. package/skills/design/DESIGN-REFERENCE.md +365 -365
  191. package/skills/design/SKILL.md +590 -589
  192. package/skills/doc-processor/SKILL.md +254 -254
  193. package/skills/docs/SKILL.md +374 -374
  194. package/skills/docs-seeker/SKILL.md +178 -177
  195. package/skills/fix/SKILL.md +332 -330
  196. package/skills/git/SKILL.md +339 -339
  197. package/skills/hallucination-guard/SKILL.md +220 -219
  198. package/skills/incident/SKILL.md +254 -253
  199. package/skills/integrity-check/SKILL.md +169 -169
  200. package/skills/journal/SKILL.md +241 -240
  201. package/skills/launch/SKILL.md +344 -344
  202. package/skills/logic-guardian/SKILL.md +269 -251
  203. package/skills/marketing/SKILL.md +351 -289
  204. package/skills/mcp-builder/SKILL.md +425 -425
  205. package/skills/neural-memory/SKILL.md +359 -362
  206. package/skills/onboard/SKILL.md +432 -403
  207. package/skills/onboard/references/invariants-template.md +76 -0
  208. package/skills/onboard/scripts/detect-invariants.js +439 -0
  209. package/skills/onboard/scripts/inject-claude-md.js +150 -0
  210. package/skills/onboard/scripts/onboard-invariants.js +194 -0
  211. package/skills/perf/SKILL.md +347 -346
  212. package/skills/plan/SKILL.md +435 -428
  213. package/skills/preflight/SKILL.md +415 -415
  214. package/skills/problem-solver/SKILL.md +380 -284
  215. package/skills/rescue/SKILL.md +474 -474
  216. package/skills/research/SKILL.md +4 -0
  217. package/skills/retro/SKILL.md +3 -1
  218. package/skills/review/SKILL.md +614 -588
  219. package/skills/review-intake/SKILL.md +249 -249
  220. package/skills/safeguard/SKILL.md +200 -200
  221. package/skills/sast/SKILL.md +190 -190
  222. package/skills/scaffold/SKILL.md +328 -287
  223. package/skills/scope-guard/SKILL.md +183 -180
  224. package/skills/scout/SKILL.md +269 -263
  225. package/skills/sentinel/SKILL.md +384 -381
  226. package/skills/sentinel-env/SKILL.md +254 -254
  227. package/skills/sequential-thinking/SKILL.md +234 -234
  228. package/skills/session-bridge/SKILL.md +595 -543
  229. package/skills/session-bridge/scripts/load-invariants.js +397 -0
  230. package/skills/skill-forge/SKILL.md +581 -581
  231. package/skills/skill-router/SKILL.md +3 -0
  232. package/skills/slides/SKILL.md +19 -0
  233. package/skills/surgeon/SKILL.md +215 -215
  234. package/skills/team/SKILL.md +557 -537
  235. package/skills/test/SKILL.md +620 -614
  236. package/skills/trend-scout/SKILL.md +145 -145
  237. package/skills/verification/SKILL.md +334 -326
  238. package/skills/video-creator/SKILL.md +201 -201
  239. package/skills/watchdog/SKILL.md +168 -168
  240. package/skills/worktree/SKILL.md +140 -140
@@ -1,253 +1,254 @@
1
- ---
2
- name: incident
3
- description: "Structured incident response. Use when user reports an outage, production error, or says 'incident', 'something is down', 'users are affected'. Triage severity, contain blast radius, root-cause, document timeline, generate postmortem."
4
- disable-model-invocation: true
5
- metadata:
6
- author: runedev
7
- version: "0.2.0"
8
- layer: L2
9
- model: sonnet
10
- group: delivery
11
- tools: "Read, Write, Edit, Bash, Glob, Grep"
12
- listen: incident.detected
13
- ---
14
-
15
- # incident
16
-
17
- ## Purpose
18
-
19
- Structured incident response for production issues. Follows a strict order: triage first, contain before investigating, root-cause after stable, postmortem last. Prevents the most common incident anti-pattern — developers debugging while the system is still on fire. Covers P1 outages, P2 degraded service, and P3 minor issues with appropriate urgency at each level.
20
-
21
- ## Triggers
22
-
23
- - `/rune incident "description of what's broken"` — direct user invocation
24
- - Called by `launch` (L1): watchdog alerts during Phase 3 VERIFY
25
- - Called by `deploy` (L2): health check fails post-deploy
26
- - Signal: auto-triggers when `watchdog` emits `incident.detected` — no manual invocation needed
27
-
28
- ## Calls (outbound)
29
-
30
- - `watchdog` (L3): current system state — which endpoints are down, response times
31
- - `autopsy` (L2): root cause analysis after containment
32
- - `journal` (L3): record incident timeline and decisions
33
- - `sentinel` (L2): check for security dimension (data exposure, unauthorized access)
34
-
35
- ## Called By (inbound)
36
-
37
- - `launch` (L1): monitoring alert during production verification
38
- - `deploy` (L2): post-deploy health check failure
39
- - User: `/rune incident` direct invocation
40
-
41
- ## Executable Steps
42
-
43
- ### Step 1 — Triage
44
-
45
- Classify severity using this matrix:
46
-
47
- | Severity | Definition | Contain Within |
48
- |----------|-----------|----------------|
49
- | **P1** | Full outage — core feature unavailable for all users | 15 minutes |
50
- | **P2** | Partial degradation — feature broken for subset of users or degraded for all | 1 hour |
51
- | **P3** | Minor issuecosmetic, edge case, or non-blocking degradation | 4 hours |
52
-
53
- P1 indicators: 5xx on root `/`, auth endpoint down, payment flow broken, data loss detected
54
- P2 indicators: elevated error rate (>1%) on key flow, 1+ regions down, performance >5x baseline
55
- P3 indicators: UI glitch, non-critical feature broken, low error rate (<0.1%)
56
-
57
- Emit: `TRIAGE: [P1|P2|P3] — [one-line impact description]`
58
-
59
- ### Step 2 — Contain
60
-
61
- <HARD-GATE>
62
- During active incident (before CONTAINED status), DO NOT attempt code fixes or root cause analysis.
63
- Contain first. Ship code during active P1/P2 without containment = turning P2s into P1s.
64
- </HARD-GATE>
65
-
66
- Choose containment strategy based on what's available and severity:
67
-
68
- | Strategy | When to Use |
69
- |----------|------------|
70
- | **Rollback** | Last deploy caused regression (check git log vs incident start time) |
71
- | **Feature flag off** | Feature-gated code disable without deploy |
72
- | **Traffic shift** | Multi-region: route away from affected region |
73
- | **Scale up** | Resource exhaustion (CPU/memory/connection pool) |
74
- | **Rate limit** | Abuse pattern or traffic spike |
75
- | **Manual intervention** | DB locked record, stuck job, cache corruption |
76
-
77
- Execute containment action. Then invoke `watchdog` to verify system is stable before proceeding.
78
-
79
- Emit: `CONTAINED: [strategy used] — [timestamp]` or `CONTAINMENT_FAILED: [what was tried] — escalate`
80
-
81
- ### Step 3 — Verify Containment
82
-
83
- Invoke `watchdog` with current base_url and critical endpoints.
84
-
85
- Proceed to Step 4 only if watchdog returns `ALL_HEALTHY` or `DEGRADED` with upward trend.
86
- If watchdog returns `DOWN` return to Step 2 with a different containment strategy.
87
-
88
- ### Step 4 — Security Check
89
-
90
- Invoke `sentinel` to check if the incident has a security dimension:
91
- - Data exposure (PII, credentials in logs/responses)
92
- - Unauthorized access pattern in logs
93
- - Injection attack vector triggered the incident
94
- - Dependency with known CVE involved
95
-
96
- If `sentinel` returns `BLOCK`: escalate to security incident — different protocol (notify security team, preserve logs, document access chain).
97
- If `sentinel` returns `PASS` or `WARN`: continue to root cause.
98
-
99
- ### Step 5 — Root Cause Analysis
100
-
101
- Invoke `autopsy` with context:
102
- - Incident start timestamp
103
- - Failing components identified in Step 2-3
104
- - Recent deploy info (commit hash, deploy timestamp, changed files)
105
-
106
- `autopsy` returns: root cause hypothesis with evidence, affected code paths, contributing factors.
107
-
108
- Do not attempt fixes — `incident` only investigates. Any code changes are a separate task.
109
-
110
- ### Step 6 — Timeline Construction
111
-
112
- Construct incident timeline using:
113
- - Incident start time (when first detected)
114
- - Triage time (when severity classified)
115
- - Containment time (when system stabilized)
116
- - RCA time (when root cause identified)
117
- - Resolution time (when fully resolved)
118
-
119
- Format:
120
- ```
121
- [HH:MM] Incident detected — [who/what detected it]
122
- [HH:MM] Triage: [P1/P2/P3] [impact]
123
- [HH:MM] Containment started — [strategy]
124
- [HH:MM] CONTAINED — [watchdog confirms stable]
125
- [HH:MM] RCA: [root cause summary]
126
- [HH:MM] Resolution: [what was done]
127
- ```
128
-
129
- Invoke `journal` to record the timeline and decisions in `.rune/adr/` as an incident ADR.
130
-
131
- ### Step 7 — Postmortem
132
-
133
- Generate postmortem report and save as `.rune/incidents/INCIDENT-[YYYY-MM-DD]-[slug].md`:
134
-
135
- ```markdown
136
- # Incident Report: [title]
137
-
138
- **Severity**: [P1|P2|P3]
139
- **Date**: [YYYY-MM-DD]
140
- **Duration**: [time from detection to resolution]
141
- **Impact**: [users affected, data affected, revenue impact if known]
142
-
143
- ## Timeline
144
- [from Step 6]
145
-
146
- ## Root Cause
147
- [from autopsy — specific, not vague]
148
-
149
- ## Contributing Factors
150
- [from autopsy — what made this worse]
151
-
152
- ## What Went Well
153
- [containment speed, detection, communication]
154
-
155
- ## What Went Wrong
156
- [detection lag, failed first containment, etc.]
157
-
158
- ## Prevention Actions
159
-
160
- | Action | Owner | Due | Priority |
161
- |--------|-------|-----|----------|
162
- | [specific action] | [team/person] | [date] | P1/P2/P3 |
163
-
164
- ## Lessons Learned
165
- [3-5 bullet points]
166
- ```
167
-
168
- ## Output Format
169
-
170
- ```
171
- ## Incident Response: [title]
172
-
173
- ### Triage
174
- P2 — Login service returning 503 for ~30% of users
175
-
176
- ### Containment
177
- Strategy: Rollback to commit abc123 (pre-deploy from 14:32)
178
- Status: CONTAINED at 15:07 watchdog confirms ALL_HEALTHY
179
-
180
- ### Security Check
181
- sentinel: PASS — no data exposure detected
182
-
183
- ### Root Cause (from autopsy)
184
- Connection pool exhausted new feature added synchronous DB call in middleware,
185
- reducing available connections from 20 to 3 under load
186
- File: src/middleware/auth.ts:47
187
-
188
- ### Timeline
189
- 14:32 Deploy completed
190
- 14:45 Alerts fired — 503 rate >1%
191
- 14:47 TRIAGE: P2
192
- 14:52 Containment: rollback initiated
193
- 15:07 CONTAINED
194
- 15:20 RCA complete
195
- 15:35 Postmortem drafted
196
-
197
- ### Postmortem saved
198
- .rune/incidents/INCIDENT-2026-02-24-login-503.md
199
- ```
200
-
201
- ## Constraints
202
-
203
- 1. MUST triage before any other action — severity determines urgency, approach, and escalation path
204
- 2. MUST contain before root-causeinvestigating while system is down prolongs the incident
205
- 3. MUST invoke watchdog to verify containment never assume contained without measurement
206
- 4. MUST invoke sentinel before closingevery incident has a potential security dimension
207
- 5. MUST NOT make code changes during incident response — incident investigates only; fixes are a separate task
208
- 6. MUST generate postmortem for every P1 and P2P3 optional
209
-
210
- ## Mesh Gates (L1/L2 only)
211
-
212
- | Gate | Requires | If Missing |
213
- |------|----------|------------|
214
- | Triage Gate | Severity classified (P1/P2/P3) before any other step | Classify before proceeding |
215
- | Containment Gate | watchdog confirms HEALTHY/DEGRADED-improving before RCA | Return to containment if still DOWN |
216
- | Security Gate | sentinel ran before closing incident | Run sentinel do not skip |
217
- | Postmortem Gate | All sections populated (Timeline, RCA, Prevention Actions) before status = Resolved | Complete or note as DRAFT |
218
-
219
- ## Returns
220
-
221
- | Artifact | Format | Location |
222
- |----------|--------|----------|
223
- | Incident response report | Markdown | inline (chat output) |
224
- | Incident timeline | Text (HH:MM format) | inline + postmortem |
225
- | Postmortem document | Markdown | `.rune/incidents/INCIDENT-<date>-<slug>.md` |
226
- | Prevention actions table | Markdown table | postmortem |
227
- | Journal entry (incident ADR) | Text | `.rune/adr/` (via `rune:journal`) |
228
-
229
- ## Sharp Edges
230
-
231
- Known failure modes for this skill. Check these before declaring done.
232
-
233
- | Failure Mode | Severity | Mitigation |
234
- |---|---|---|
235
- | Starting RCA before containment confirmed | CRITICAL | HARD-GATE: check CONTAINED status before calling autopsy |
236
- | Declaring incident resolved without watchdog verification | HIGH | MUST call watchdog after containment not just assume |
237
- | Postmortem Prevention Actions without owners or dates | MEDIUM | Every action needs owner + due date otherwise it never happens |
238
- | Skipping sentinel because "looks like a performance issue" | HIGH | Security dimension is not always obviousalways run sentinel |
239
- | P1 triage without 15-minute containment urgency | HIGH | P1 SLA = 15 min to contain flag if containment exceeds threshold |
240
-
241
- ## Done When
242
-
243
- - Severity triaged (P1/P2/P3) with impact description
244
- - Containment executed and watchdog confirms stable
245
- - sentinel ran and security dimension addressed (or escalated)
246
- - Root cause identified via autopsy with file:line evidence
247
- - Full timeline constructed
248
- - Postmortem saved to .rune/incidents/ with Prevention Actions table
249
- - journal entry recorded
250
-
251
- ## Cost Profile
252
-
253
- ~3000-8000 tokens input, ~1000-2500 tokens output. Sonnet for response coordination.
1
+ ---
2
+ name: incident
3
+ description: "Structured incident response. Use when user reports an outage, production error, or says 'incident', 'something is down', 'users are affected'. Triage severity, contain blast radius, root-cause, document timeline, generate postmortem."
4
+ disable-model-invocation: true
5
+ metadata:
6
+ author: runedev
7
+ version: "0.2.0"
8
+ layer: L2
9
+ model: sonnet
10
+ group: delivery
11
+ tools: "Read, Write, Edit, Bash, Glob, Grep"
12
+ listen: incident.detected
13
+ ---
14
+
15
+ # incident
16
+
17
+ ## Purpose
18
+
19
+ Structured incident response for production issues. Follows a strict order: triage first, contain before investigating, root-cause after stable, postmortem last. Prevents the most common incident anti-pattern — developers debugging while the system is still on fire. Covers P1 outages, P2 degraded service, and P3 minor issues with appropriate urgency at each level.
20
+
21
+ ## Triggers
22
+
23
+ - `/rune incident "description of what's broken"` — direct user invocation
24
+ - Called by `launch` (L1): watchdog alerts during Phase 3 VERIFY
25
+ - Called by `deploy` (L2): health check fails post-deploy
26
+ - Signal: auto-triggers when `watchdog` emits `incident.detected` — no manual invocation needed
27
+
28
+ ## Calls (outbound)
29
+
30
+ - `watchdog` (L3): current system state — which endpoints are down, response times
31
+ - `autopsy` (L2): root cause analysis after containment
32
+ - `journal` (L3): record incident timeline and decisions
33
+ - `sentinel` (L2): check for security dimension (data exposure, unauthorized access)
34
+ - `neural-memory` (ext): after resolution — capture incident root cause + fix pattern cross-session so the same failure mode is never diagnosed twice
35
+
36
+ ## Called By (inbound)
37
+
38
+ - `launch` (L1): monitoring alert during production verification
39
+ - `deploy` (L2): post-deploy health check failure
40
+ - User: `/rune incident` direct invocation
41
+
42
+ ## Executable Steps
43
+
44
+ ### Step 1 — Triage
45
+
46
+ Classify severity using this matrix:
47
+
48
+ | Severity | Definition | Contain Within |
49
+ |----------|-----------|----------------|
50
+ | **P1** | Full outagecore feature unavailable for all users | 15 minutes |
51
+ | **P2** | Partial degradationfeature broken for subset of users or degraded for all | 1 hour |
52
+ | **P3** | Minor issue — cosmetic, edge case, or non-blocking degradation | 4 hours |
53
+
54
+ P1 indicators: 5xx on root `/`, auth endpoint down, payment flow broken, data loss detected
55
+ P2 indicators: elevated error rate (>1%) on key flow, 1+ regions down, performance >5x baseline
56
+ P3 indicators: UI glitch, non-critical feature broken, low error rate (<0.1%)
57
+
58
+ Emit: `TRIAGE: [P1|P2|P3] — [one-line impact description]`
59
+
60
+ ### Step 2 — Contain
61
+
62
+ <HARD-GATE>
63
+ During active incident (before CONTAINED status), DO NOT attempt code fixes or root cause analysis.
64
+ Contain first. Ship code during active P1/P2 without containment = turning P2s into P1s.
65
+ </HARD-GATE>
66
+
67
+ Choose containment strategy based on what's available and severity:
68
+
69
+ | Strategy | When to Use |
70
+ |----------|------------|
71
+ | **Rollback** | Last deploy caused regression (check git log vs incident start time) |
72
+ | **Feature flag off** | Feature-gated code disable without deploy |
73
+ | **Traffic shift** | Multi-region: route away from affected region |
74
+ | **Scale up** | Resource exhaustion (CPU/memory/connection pool) |
75
+ | **Rate limit** | Abuse pattern or traffic spike |
76
+ | **Manual intervention** | DB locked record, stuck job, cache corruption |
77
+
78
+ Execute containment action. Then invoke `watchdog` to verify system is stable before proceeding.
79
+
80
+ Emit: `CONTAINED: [strategy used] — [timestamp]` or `CONTAINMENT_FAILED: [what was tried] — escalate`
81
+
82
+ ### Step 3 — Verify Containment
83
+
84
+ Invoke `watchdog` with current base_url and critical endpoints.
85
+
86
+ Proceed to Step 4 only if watchdog returns `ALL_HEALTHY` or `DEGRADED` with upward trend.
87
+ If watchdog returns `DOWN` — return to Step 2 with a different containment strategy.
88
+
89
+ ### Step 4 — Security Check
90
+
91
+ Invoke `sentinel` to check if the incident has a security dimension:
92
+ - Data exposure (PII, credentials in logs/responses)
93
+ - Unauthorized access pattern in logs
94
+ - Injection attack vector triggered the incident
95
+ - Dependency with known CVE involved
96
+
97
+ If `sentinel` returns `BLOCK`: escalate to security incident — different protocol (notify security team, preserve logs, document access chain).
98
+ If `sentinel` returns `PASS` or `WARN`: continue to root cause.
99
+
100
+ ### Step 5 — Root Cause Analysis
101
+
102
+ Invoke `autopsy` with context:
103
+ - Incident start timestamp
104
+ - Failing components identified in Step 2-3
105
+ - Recent deploy info (commit hash, deploy timestamp, changed files)
106
+
107
+ `autopsy` returns: root cause hypothesis with evidence, affected code paths, contributing factors.
108
+
109
+ Do not attempt fixes — `incident` only investigates. Any code changes are a separate task.
110
+
111
+ ### Step 6 — Timeline Construction
112
+
113
+ Construct incident timeline using:
114
+ - Incident start time (when first detected)
115
+ - Triage time (when severity classified)
116
+ - Containment time (when system stabilized)
117
+ - RCA time (when root cause identified)
118
+ - Resolution time (when fully resolved)
119
+
120
+ Format:
121
+ ```
122
+ [HH:MM] Incident detected — [who/what detected it]
123
+ [HH:MM] Triage: [P1/P2/P3] — [impact]
124
+ [HH:MM] Containment started — [strategy]
125
+ [HH:MM] CONTAINED [watchdog confirms stable]
126
+ [HH:MM] RCA: [root cause summary]
127
+ [HH:MM] Resolution: [what was done]
128
+ ```
129
+
130
+ Invoke `journal` to record the timeline and decisions in `.rune/adr/` as an incident ADR.
131
+
132
+ ### Step 7 — Postmortem
133
+
134
+ Generate postmortem report and save as `.rune/incidents/INCIDENT-[YYYY-MM-DD]-[slug].md`:
135
+
136
+ ```markdown
137
+ # Incident Report: [title]
138
+
139
+ **Severity**: [P1|P2|P3]
140
+ **Date**: [YYYY-MM-DD]
141
+ **Duration**: [time from detection to resolution]
142
+ **Impact**: [users affected, data affected, revenue impact if known]
143
+
144
+ ## Timeline
145
+ [from Step 6]
146
+
147
+ ## Root Cause
148
+ [from autopsy — specific, not vague]
149
+
150
+ ## Contributing Factors
151
+ [from autopsy — what made this worse]
152
+
153
+ ## What Went Well
154
+ [containment speed, detection, communication]
155
+
156
+ ## What Went Wrong
157
+ [detection lag, failed first containment, etc.]
158
+
159
+ ## Prevention Actions
160
+
161
+ | Action | Owner | Due | Priority |
162
+ |--------|-------|-----|----------|
163
+ | [specific action] | [team/person] | [date] | P1/P2/P3 |
164
+
165
+ ## Lessons Learned
166
+ [3-5 bullet points]
167
+ ```
168
+
169
+ ## Output Format
170
+
171
+ ```
172
+ ## Incident Response: [title]
173
+
174
+ ### Triage
175
+ P2 — Login service returning 503 for ~30% of users
176
+
177
+ ### Containment
178
+ Strategy: Rollback to commit abc123 (pre-deploy from 14:32)
179
+ Status: CONTAINED at 15:07 — watchdog confirms ALL_HEALTHY
180
+
181
+ ### Security Check
182
+ sentinel: PASS — no data exposure detected
183
+
184
+ ### Root Cause (from autopsy)
185
+ Connection pool exhausted new feature added synchronous DB call in middleware,
186
+ reducing available connections from 20 to 3 under load
187
+ File: src/middleware/auth.ts:47
188
+
189
+ ### Timeline
190
+ 14:32 Deploy completed
191
+ 14:45 Alerts fired — 503 rate >1%
192
+ 14:47 TRIAGE: P2
193
+ 14:52 Containment: rollback initiated
194
+ 15:07 CONTAINED
195
+ 15:20 RCA complete
196
+ 15:35 Postmortem drafted
197
+
198
+ ### Postmortem saved
199
+ .rune/incidents/INCIDENT-2026-02-24-login-503.md
200
+ ```
201
+
202
+ ## Constraints
203
+
204
+ 1. MUST triage before any other action severity determines urgency, approach, and escalation path
205
+ 2. MUST contain before root-cause investigating while system is down prolongs the incident
206
+ 3. MUST invoke watchdog to verify containment never assume contained without measurement
207
+ 4. MUST invoke sentinel before closing every incident has a potential security dimension
208
+ 5. MUST NOT make code changes during incident responseincident investigates only; fixes are a separate task
209
+ 6. MUST generate postmortem for every P1 and P2 — P3 optional
210
+
211
+ ## Mesh Gates (L1/L2 only)
212
+
213
+ | Gate | Requires | If Missing |
214
+ |------|----------|------------|
215
+ | Triage Gate | Severity classified (P1/P2/P3) before any other step | Classify before proceeding |
216
+ | Containment Gate | watchdog confirms HEALTHY/DEGRADED-improving before RCA | Return to containment if still DOWN |
217
+ | Security Gate | sentinel ran before closing incident | Run sentinel do not skip |
218
+ | Postmortem Gate | All sections populated (Timeline, RCA, Prevention Actions) before status = Resolved | Complete or note as DRAFT |
219
+
220
+ ## Returns
221
+
222
+ | Artifact | Format | Location |
223
+ |----------|--------|----------|
224
+ | Incident response report | Markdown | inline (chat output) |
225
+ | Incident timeline | Text (HH:MM format) | inline + postmortem |
226
+ | Postmortem document | Markdown | `.rune/incidents/INCIDENT-<date>-<slug>.md` |
227
+ | Prevention actions table | Markdown table | postmortem |
228
+ | Journal entry (incident ADR) | Text | `.rune/adr/` (via `rune:journal`) |
229
+
230
+ ## Sharp Edges
231
+
232
+ Known failure modes for this skill. Check these before declaring done.
233
+
234
+ | Failure Mode | Severity | Mitigation |
235
+ |---|---|---|
236
+ | Starting RCA before containment confirmed | CRITICAL | HARD-GATE: check CONTAINED status before calling autopsy |
237
+ | Declaring incident resolved without watchdog verification | HIGH | MUST call watchdog after containmentnot just assume |
238
+ | Postmortem Prevention Actions without owners or dates | MEDIUM | Every action needs owner + due date otherwise it never happens |
239
+ | Skipping sentinel because "looks like a performance issue" | HIGH | Security dimension is not always obviousalways run sentinel |
240
+ | P1 triage without 15-minute containment urgency | HIGH | P1 SLA = 15 min to contain — flag if containment exceeds threshold |
241
+
242
+ ## Done When
243
+
244
+ - Severity triaged (P1/P2/P3) with impact description
245
+ - Containment executed and watchdog confirms stable
246
+ - sentinel ran and security dimension addressed (or escalated)
247
+ - Root cause identified via autopsy with file:line evidence
248
+ - Full timeline constructed
249
+ - Postmortem saved to .rune/incidents/ with Prevention Actions table
250
+ - journal entry recorded
251
+
252
+ ## Cost Profile
253
+
254
+ ~3000-8000 tokens input, ~1000-2500 tokens output. Sonnet for response coordination.