@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,335 +1,335 @@
1
- ---
2
- name: autopsy
3
- description: Full codebase health assessment. Analyzes complexity, dependencies, dead code, tech debt, and git hotspots. Produces a health score and rescue plan.
4
- metadata:
5
- author: runedev
6
- version: "0.4.0"
7
- layer: L2
8
- model: opus
9
- group: rescue
10
- tools: "Read, Bash, Glob, Grep"
11
- ---
12
-
13
- # autopsy
14
-
15
- ## Purpose
16
-
17
- Full codebase health assessment for legacy projects. Autopsy analyzes complexity, dependency coupling, dead code, tech debt, and git hotspots to produce a health score per module and a prioritized rescue plan. Uses opus for deep analysis quality.
18
-
19
- ## Called By (inbound)
20
-
21
- - `rescue` (L1): Phase 0 RECON — assess damage before refactoring
22
- - `onboard` (L2): when project appears messy during onboarding
23
- - `audit` (L2): Phase 3 code quality and complexity assessment
24
- - `incident` (L2): root cause analysis after containment
25
-
26
- ## Calls (outbound)
27
-
28
- - `scout` (L2): deep structural scan — files, LOC, entry points, imports
29
- - `research` (L3): identify if tech stack is outdated
30
- - `trend-scout` (L3): compare against current best practices
31
- - `journal` (L3): record health assessment findings
32
-
33
- ## Execution Steps
34
-
35
- ### Step 0 — Repo intelligence (if GitHub-hosted)
36
-
37
- If the project is a GitHub repository, gather repo-level metrics before diving into code:
38
-
39
- ```bash
40
- # Fetch via GitHub API (requires gh CLI or curl + GITHUB_TOKEN)
41
- gh api repos/{owner}/{repo} --jq '{stars: .stargazers_count, forks: .forks_count, open_issues: .open_issues_count, license: .license.spdx_id, language: .language, topics: .topics, created: .created_at, pushed: .pushed_at}'
42
-
43
- # Contributor count and top contributors
44
- gh api repos/{owner}/{repo}/contributors --jq 'length'
45
- gh api repos/{owner}/{repo}/contributors --jq '.[0:5] | .[] | "\(.login): \(.contributions)"'
46
-
47
- # Commit frequency (last 52 weeks)
48
- gh api repos/{owner}/{repo}/stats/commit_activity --jq '[.[] | .total] | add'
49
-
50
- # Language byte distribution
51
- gh api repos/{owner}/{repo}/languages
52
- ```
53
-
54
- Record in working notes:
55
- - **Activity signal**: commits/week (>5 = active, 1-5 = maintained, <1 = stale)
56
- - **Bus factor**: contributor count (1 = critical risk, 2-3 = low, >5 = healthy)
57
- - **Community signal**: stars/forks ratio, open issue count, staleness of latest push
58
-
59
- Skip this step for local-only projects with no remote.
60
-
61
- ### Step 1 — Structure scan
62
-
63
- Call `rune:scout` with a request for a full project map. Ask scout to return:
64
- - All source files with LOC counts
65
- - Entry points and main modules
66
- - Import/dependency graph (who imports who)
67
- - Test files and their coverage targets
68
- - Config files (tsconfig, eslint, package.json, etc.)
69
-
70
- ### Step 2 — Module analysis
71
-
72
- For each major module identified by scout, use `Read` to open the file and assess:
73
- - LOC (flag anything over 500 as a god file)
74
- - Function count and average function length
75
- - Maximum nesting depth (flag > 4 levels)
76
- - Cyclomatic complexity signals (deep conditionals, many branches)
77
- - Test file presence and estimated coverage
78
-
79
- Record findings per module in a working table.
80
-
81
- ### Step 3 — Health scoring
82
-
83
- Score each module 0-100 across six dimensions:
84
-
85
- | Dimension | Weight | Scoring criteria |
86
- |---|---|---|
87
- | Complexity | 20% | Cyclomatic < 5 = 100, 5-10 = 70, 10-20 = 40, > 20 = 0 |
88
- | Test coverage | 25% | > 80% = 100, 50-80% = 60, 20-50% = 30, < 20% = 0 |
89
- | Documentation | 15% | README + inline comments = 100, partial = 50, none = 0 |
90
- | Dependencies | 20% | Low coupling = 100, medium = 60, high/circular = 0 |
91
- | Code smells | 10% | No god files, no deep nesting = 100, each violation -20 |
92
- | Maintenance | 10% | Regular commits = 100, stale > 6 months = 50, untouched > 1yr = 0 |
93
-
94
- Compute weighted score per module. Assign risk tier:
95
- - 80-100 = healthy (green)
96
- - 60-79 = watch (yellow)
97
- - 40-59 = at-risk (orange)
98
- - 0-39 = critical (red)
99
-
100
- ### Step 4 — Risk assessment
101
-
102
- Use `Bash` to gather git archaeology data:
103
-
104
- ```bash
105
- # Most changed files (hotspots)
106
- git log --format=format: --name-only | sort | uniq -c | sort -rg | head -20
107
-
108
- # Files not touched in over a year
109
- git log --before="1 year ago" --format="%H" | head -1 | xargs -I{} git diff --name-only {}..HEAD
110
-
111
- # Authors per file (high author count = high churn risk)
112
- git log --format="%an" -- <file> | sort -u | wc -l
113
-
114
- # Commit velocity by month (trend detection)
115
- git log --format="%Y-%m" | sort | uniq -c | tail -12
116
-
117
- # Issue/PR close rate (GitHub only)
118
- gh api repos/{owner}/{repo}/issues --jq '[.[] | select(.pull_request == null)] | length'
119
- ```
120
-
121
- Identify:
122
- - Circular dependencies (A imports B, B imports A)
123
- - God files (> 500 LOC with many importers)
124
- - Hotspot files (changed most often = highest bug density)
125
- - Dead files (no importers, no recent commits)
126
- - Velocity trend: accelerating, stable, or decelerating (compare last 3 months)
127
-
128
- ### Step 5 — Generate RESCUE-REPORT.md
129
-
130
- Use `Write` to save `RESCUE-REPORT.md` at the project root with this structure:
131
-
132
- ```markdown
133
- # Rescue Report: [Project Name]
134
- Generated: [date]
135
-
136
- ## Overall Health: [score]/100
137
-
138
- ## Module Health
139
- | Module | Score | Complexity | Coverage | Coupling | Risk | Priority |
140
- |--------|-------|-----------|----------|----------|------|----------|
141
- | [name] | [n] | [low/med/high] | [%] | [low/med/high] | [tier] | [1-N] |
142
-
143
- ## Dependency Graph
144
- [Mermaid flowchart of module coupling — use subgraphs for clusters]
145
-
146
- ## Language Distribution
147
- [Mermaid pie chart — e.g., pie title Languages "TypeScript" : 65 "JavaScript" : 20 "CSS" : 15]
148
-
149
- ## Commit Velocity (Last 12 Months)
150
- [Trend: accelerating / stable / decelerating — include monthly commit counts]
151
-
152
- ## Repo Intelligence (GitHub only)
153
- | Metric | Value | Signal |
154
- |--------|-------|--------|
155
- | Stars | [n] | [community interest level] |
156
- | Contributors | [n] | [bus factor: critical/low/healthy] |
157
- | Open issues | [n] | [maintenance signal] |
158
- | Commits/week | [n] | [activity: active/maintained/stale] |
159
- | Last push | [date] | [freshness] |
160
-
161
- ## Surgery Queue (Priority Order)
162
- 1. [module] — Score: [n] — [primary reason] — Suggested pattern: [pattern]
163
- 2. ...
164
-
165
- ## Git Archaeology
166
- - Hotspot files: [list with change frequency]
167
- - Stale files: [list with age]
168
- - Dead code candidates: [list]
169
-
170
- ## Immediate Actions (Before Surgery)
171
- - [action 1]
172
- - [action 2]
173
- ```
174
-
175
- Call `rune:journal` to record that autopsy ran, the overall health score, and the surgery queue.
176
-
177
- ### Step 6 — Report
178
-
179
- Output a summary of the findings:
180
-
181
- - Overall health score and tier
182
- - Count of critical, at-risk, watch, and healthy modules
183
- - Top 3 worst modules with scores and recommended patterns
184
- - Confirm RESCUE-REPORT.md was saved
185
- - Recommended next step: call `rune:safeguard` on the top-priority module
186
-
187
- ## Confidence Scoring
188
-
189
- Every finding in the autopsy report MUST carry a confidence level:
190
-
191
- | Level | Range | Criteria |
192
- |-------|-------|----------|
193
- | High | 90-100% | Measured directly from code/git — LOC counted, tests run, deps parsed |
194
- | Medium | 70-89% | Inferred from strong signals — file patterns, naming conventions, partial git data |
195
- | Low | 50-69% | Estimated from weak signals — no git history, binary files, generated code |
196
-
197
- Rules:
198
- - Health scores backed by actual code metrics → High confidence
199
- - Health scores using git archaeology only (no code read) → Medium confidence
200
- - Health scores for modules where files couldn't be read (binary, encrypted, too large) → Low confidence
201
- - **Overall report confidence** = weighted average of module confidences (by LOC weight)
202
- - Include confidence in RESCUE-REPORT.md header: `Confidence: [High|Medium|Low] ([n]%)`
203
-
204
- ## Multi-Round Analysis
205
-
206
- Autopsy follows a broad-to-narrow pattern to avoid missing systemic issues:
207
-
208
- 1. **Round 1 — Surface scan** (Steps 0-1): Repo metrics + structure map. Goal: identify scope and major clusters.
209
- 2. **Round 2 — Module deep dive** (Steps 2-3): Read and score each module. Goal: quantified health per module.
210
- 3. **Round 3 — Cross-cutting analysis** (Step 4): Git archaeology + dependency graph. Goal: find systemic risks invisible at module level (circular deps, hotspot clusters, bus factor).
211
- 4. **Round 4 — Synthesis** (Steps 5-6): Combine all rounds into prioritized report. Findings from later rounds may revise earlier scores.
212
-
213
- Do NOT skip rounds. Round 3 cross-cutting analysis frequently reveals risks that per-module analysis misses (e.g., a "healthy" module that is the single point of failure for 10 others).
214
-
215
- ## Health Score Factors
216
-
217
- ```
218
- CODE QUALITY — cyclomatic complexity, nesting depth, function length
219
- DEPENDENCIES — coupling, circular deps, outdated packages
220
- TEST COVERAGE — line coverage, branch coverage, test quality
221
- DOCUMENTATION — inline comments, README, API docs
222
- MAINTENANCE — git hotspots, commit frequency, author count
223
- DEAD CODE — unused exports, unreachable branches
224
- ```
225
-
226
- ## Output Format
227
-
228
- ```
229
- ## Autopsy Report: [Project Name]
230
-
231
- ### Overall Health: [score]/100 — [tier: healthy | watch | at-risk | critical]
232
-
233
- ### Module Summary
234
- | Module | Score | Risk | Priority |
235
- |--------|-------|------|----------|
236
- | [name] | [n] | [tier] | [1-N] |
237
-
238
- ### Top Issues
239
- 1. [module] — [primary finding] — Recommended pattern: [pattern]
240
-
241
- ### Next Step
242
- Run rune:safeguard on [top-priority module] before any refactoring.
243
- ```
244
-
245
- ## Constraints
246
-
247
- 1. MUST scan actual code metrics — not estimate from file names
248
- 2. MUST produce quantified health score — not vague "needs improvement"
249
- 3. MUST identify specific modules with highest technical debt — ranked by severity
250
- 4. MUST NOT recommend refactoring everything — prioritize by impact
251
- 5. MUST check: test coverage, cyclomatic complexity, dependency freshness, dead code
252
-
253
- ## Sharp Edges
254
-
255
- Known failure modes for this skill. Check these before declaring done.
256
-
257
- | Failure Mode | Severity | Mitigation |
258
- |---|---|---|
259
- | Health scores estimated without reading actual code metrics | CRITICAL | Constraint 1: scan actual code — open files, count LOC, assess nesting depth |
260
- | Recommending refactoring everything without prioritization | HIGH | Constraint 4: rank by severity — worst health score modules first, max top-5 |
261
- | Missing git archaeology (no hotspot/stale file analysis) | MEDIUM | Step 4 bash commands are mandatory — git log data is part of the health picture |
262
- | Skipping RESCUE-REPORT.md write (only verbal summary) | HIGH | Step 5 write is mandatory — persistence is the point of autopsy |
263
- | Health score not backed by all 6 dimensions scored | MEDIUM | All 6 dimensions (complexity, test coverage, docs, deps, smells, maintenance) required |
264
-
265
- ## Done When
266
-
267
- - scout completed with full project map (all files, entry points, import graph)
268
- - All major modules scored across all 6 dimensions
269
- - Git archaeology run (hotspots, stale files, dead code candidates identified)
270
- - RESCUE-REPORT.md written to project root with Mermaid dependency diagram
271
- - journal called with health score and surgery queue
272
- - Autopsy Report emitted with overall health tier and top-3 issues
273
-
274
- ## Returns
275
-
276
- | Artifact | Format | Location |
277
- |----------|--------|----------|
278
- | Health score per module | Scored table (0-100) | inline |
279
- | RESCUE-REPORT.md | Markdown + Mermaid | project root |
280
- | Surgery queue (priority order) | Ordered list | RESCUE-REPORT.md |
281
- | Git archaeology findings | Bash output + summary | inline |
282
- | Journal entry | Text | via `journal` L3 |
283
-
284
- ## Cost Profile
285
-
286
- ~5000-10000 tokens input, ~2000-4000 tokens output. Opus for deep analysis. Most expensive L2 skill but runs once per rescue.
287
-
288
- **Scope guardrail:** autopsy assesses — it does not refactor. All surgery is delegated to `surgeon` after the report is complete.
289
-
290
- ## Executive Mode (--executive)
291
-
292
- When invoked as `/rune autopsy --executive`, generate a board-ready HTML health assessment. Requires Business tier.
293
-
294
- ### Executive Execution Steps
295
-
296
- 1. **Standard Autopsy**: Run Steps 1-5 (structure scan, module analysis, health scoring, risk assessment, RESCUE-REPORT.md)
297
- 2. **Org Context**: Read `.rune/org/org.md` for team structure and governance level
298
- 3. **Cross-Domain Impact**: Map module health to business domains (which team owns which modules)
299
- 4. **Business Risk Translation**: Convert technical health scores to business risk language:
300
- - Critical modules in revenue path → "Revenue infrastructure at risk"
301
- - Low test coverage on auth → "Security compliance gap"
302
- - High churn in customer-facing code → "Customer experience degradation risk"
303
- 5. **HTML Render**: Load `report-templates/autopsy-executive.html` from Business pack and populate all `{{placeholder}}` fields:
304
- - SVG health ring (score → stroke-dasharray calculation: `score / 100 * 440`)
305
- - Dimension bars (6 dimensions with color coding)
306
- - Module table (sorted by priority)
307
- - Surgery queue (top 5 modules)
308
- - Risk matrix (6 categories)
309
- - Git archaeology summary
310
- - Cross-domain impact table
311
- - Recommended actions (numbered, prioritized)
312
- 6. **Save**: Write HTML to `EXECUTIVE-HEALTH.html` at project root
313
-
314
- ### Executive Output
315
-
316
- ```
317
- EXECUTIVE-HEALTH.html — Board-ready HTML report
318
- RESCUE-REPORT.md — Detailed technical report (standard autopsy)
319
- .rune/retros/{date}.json — Health metrics for trend tracking
320
- ```
321
-
322
- ### Color Coding
323
-
324
- | Score Range | Color | Tier |
325
- |-------------|-------|------|
326
- | 80-100 | var(--success) #10b981 | Healthy |
327
- | 60-79 | var(--warning) #f59e0b | Watch |
328
- | 40-59 | #f97316 (orange) | At-risk |
329
- | 0-39 | var(--danger) #ef4444 | Critical |
330
-
331
- ### Graceful Degradation
332
-
333
- - If no Business pack installed: skip executive mode, produce standard RESCUE-REPORT.md only
334
- - If `.rune/org/org.md` missing: skip team mapping, show modules without domain ownership
335
- - If org teams don't map to code modules: show "Unmapped" in cross-domain table
1
+ ---
2
+ name: autopsy
3
+ description: Full codebase health assessment. Analyzes complexity, dependencies, dead code, tech debt, and git hotspots. Produces a health score and rescue plan.
4
+ metadata:
5
+ author: runedev
6
+ version: "0.4.0"
7
+ layer: L2
8
+ model: opus
9
+ group: rescue
10
+ tools: "Read, Bash, Glob, Grep"
11
+ ---
12
+
13
+ # autopsy
14
+
15
+ ## Purpose
16
+
17
+ Full codebase health assessment for legacy projects. Autopsy analyzes complexity, dependency coupling, dead code, tech debt, and git hotspots to produce a health score per module and a prioritized rescue plan. Uses opus for deep analysis quality.
18
+
19
+ ## Called By (inbound)
20
+
21
+ - `rescue` (L1): Phase 0 RECON — assess damage before refactoring
22
+ - `onboard` (L2): when project appears messy during onboarding
23
+ - `audit` (L2): Phase 3 code quality and complexity assessment
24
+ - `incident` (L2): root cause analysis after containment
25
+
26
+ ## Calls (outbound)
27
+
28
+ - `scout` (L2): deep structural scan — files, LOC, entry points, imports
29
+ - `research` (L3): identify if tech stack is outdated
30
+ - `trend-scout` (L3): compare against current best practices
31
+ - `journal` (L3): record health assessment findings
32
+
33
+ ## Execution Steps
34
+
35
+ ### Step 0 — Repo intelligence (if GitHub-hosted)
36
+
37
+ If the project is a GitHub repository, gather repo-level metrics before diving into code:
38
+
39
+ ```bash
40
+ # Fetch via GitHub API (requires gh CLI or curl + GITHUB_TOKEN)
41
+ gh api repos/{owner}/{repo} --jq '{stars: .stargazers_count, forks: .forks_count, open_issues: .open_issues_count, license: .license.spdx_id, language: .language, topics: .topics, created: .created_at, pushed: .pushed_at}'
42
+
43
+ # Contributor count and top contributors
44
+ gh api repos/{owner}/{repo}/contributors --jq 'length'
45
+ gh api repos/{owner}/{repo}/contributors --jq '.[0:5] | .[] | "\(.login): \(.contributions)"'
46
+
47
+ # Commit frequency (last 52 weeks)
48
+ gh api repos/{owner}/{repo}/stats/commit_activity --jq '[.[] | .total] | add'
49
+
50
+ # Language byte distribution
51
+ gh api repos/{owner}/{repo}/languages
52
+ ```
53
+
54
+ Record in working notes:
55
+ - **Activity signal**: commits/week (>5 = active, 1-5 = maintained, <1 = stale)
56
+ - **Bus factor**: contributor count (1 = critical risk, 2-3 = low, >5 = healthy)
57
+ - **Community signal**: stars/forks ratio, open issue count, staleness of latest push
58
+
59
+ Skip this step for local-only projects with no remote.
60
+
61
+ ### Step 1 — Structure scan
62
+
63
+ Call `rune:scout` with a request for a full project map. Ask scout to return:
64
+ - All source files with LOC counts
65
+ - Entry points and main modules
66
+ - Import/dependency graph (who imports who)
67
+ - Test files and their coverage targets
68
+ - Config files (tsconfig, eslint, package.json, etc.)
69
+
70
+ ### Step 2 — Module analysis
71
+
72
+ For each major module identified by scout, use `Read` to open the file and assess:
73
+ - LOC (flag anything over 500 as a god file)
74
+ - Function count and average function length
75
+ - Maximum nesting depth (flag > 4 levels)
76
+ - Cyclomatic complexity signals (deep conditionals, many branches)
77
+ - Test file presence and estimated coverage
78
+
79
+ Record findings per module in a working table.
80
+
81
+ ### Step 3 — Health scoring
82
+
83
+ Score each module 0-100 across six dimensions:
84
+
85
+ | Dimension | Weight | Scoring criteria |
86
+ |---|---|---|
87
+ | Complexity | 20% | Cyclomatic < 5 = 100, 5-10 = 70, 10-20 = 40, > 20 = 0 |
88
+ | Test coverage | 25% | > 80% = 100, 50-80% = 60, 20-50% = 30, < 20% = 0 |
89
+ | Documentation | 15% | README + inline comments = 100, partial = 50, none = 0 |
90
+ | Dependencies | 20% | Low coupling = 100, medium = 60, high/circular = 0 |
91
+ | Code smells | 10% | No god files, no deep nesting = 100, each violation -20 |
92
+ | Maintenance | 10% | Regular commits = 100, stale > 6 months = 50, untouched > 1yr = 0 |
93
+
94
+ Compute weighted score per module. Assign risk tier:
95
+ - 80-100 = healthy (green)
96
+ - 60-79 = watch (yellow)
97
+ - 40-59 = at-risk (orange)
98
+ - 0-39 = critical (red)
99
+
100
+ ### Step 4 — Risk assessment
101
+
102
+ Use `Bash` to gather git archaeology data:
103
+
104
+ ```bash
105
+ # Most changed files (hotspots)
106
+ git log --format=format: --name-only | sort | uniq -c | sort -rg | head -20
107
+
108
+ # Files not touched in over a year
109
+ git log --before="1 year ago" --format="%H" | head -1 | xargs -I{} git diff --name-only {}..HEAD
110
+
111
+ # Authors per file (high author count = high churn risk)
112
+ git log --format="%an" -- <file> | sort -u | wc -l
113
+
114
+ # Commit velocity by month (trend detection)
115
+ git log --format="%Y-%m" | sort | uniq -c | tail -12
116
+
117
+ # Issue/PR close rate (GitHub only)
118
+ gh api repos/{owner}/{repo}/issues --jq '[.[] | select(.pull_request == null)] | length'
119
+ ```
120
+
121
+ Identify:
122
+ - Circular dependencies (A imports B, B imports A)
123
+ - God files (> 500 LOC with many importers)
124
+ - Hotspot files (changed most often = highest bug density)
125
+ - Dead files (no importers, no recent commits)
126
+ - Velocity trend: accelerating, stable, or decelerating (compare last 3 months)
127
+
128
+ ### Step 5 — Generate RESCUE-REPORT.md
129
+
130
+ Use `Write` to save `RESCUE-REPORT.md` at the project root with this structure:
131
+
132
+ ```markdown
133
+ # Rescue Report: [Project Name]
134
+ Generated: [date]
135
+
136
+ ## Overall Health: [score]/100
137
+
138
+ ## Module Health
139
+ | Module | Score | Complexity | Coverage | Coupling | Risk | Priority |
140
+ |--------|-------|-----------|----------|----------|------|----------|
141
+ | [name] | [n] | [low/med/high] | [%] | [low/med/high] | [tier] | [1-N] |
142
+
143
+ ## Dependency Graph
144
+ [Mermaid flowchart of module coupling — use subgraphs for clusters]
145
+
146
+ ## Language Distribution
147
+ [Mermaid pie chart — e.g., pie title Languages "TypeScript" : 65 "JavaScript" : 20 "CSS" : 15]
148
+
149
+ ## Commit Velocity (Last 12 Months)
150
+ [Trend: accelerating / stable / decelerating — include monthly commit counts]
151
+
152
+ ## Repo Intelligence (GitHub only)
153
+ | Metric | Value | Signal |
154
+ |--------|-------|--------|
155
+ | Stars | [n] | [community interest level] |
156
+ | Contributors | [n] | [bus factor: critical/low/healthy] |
157
+ | Open issues | [n] | [maintenance signal] |
158
+ | Commits/week | [n] | [activity: active/maintained/stale] |
159
+ | Last push | [date] | [freshness] |
160
+
161
+ ## Surgery Queue (Priority Order)
162
+ 1. [module] — Score: [n] — [primary reason] — Suggested pattern: [pattern]
163
+ 2. ...
164
+
165
+ ## Git Archaeology
166
+ - Hotspot files: [list with change frequency]
167
+ - Stale files: [list with age]
168
+ - Dead code candidates: [list]
169
+
170
+ ## Immediate Actions (Before Surgery)
171
+ - [action 1]
172
+ - [action 2]
173
+ ```
174
+
175
+ Call `rune:journal` to record that autopsy ran, the overall health score, and the surgery queue.
176
+
177
+ ### Step 6 — Report
178
+
179
+ Output a summary of the findings:
180
+
181
+ - Overall health score and tier
182
+ - Count of critical, at-risk, watch, and healthy modules
183
+ - Top 3 worst modules with scores and recommended patterns
184
+ - Confirm RESCUE-REPORT.md was saved
185
+ - Recommended next step: call `rune:safeguard` on the top-priority module
186
+
187
+ ## Confidence Scoring
188
+
189
+ Every finding in the autopsy report MUST carry a confidence level:
190
+
191
+ | Level | Range | Criteria |
192
+ |-------|-------|----------|
193
+ | High | 90-100% | Measured directly from code/git — LOC counted, tests run, deps parsed |
194
+ | Medium | 70-89% | Inferred from strong signals — file patterns, naming conventions, partial git data |
195
+ | Low | 50-69% | Estimated from weak signals — no git history, binary files, generated code |
196
+
197
+ Rules:
198
+ - Health scores backed by actual code metrics → High confidence
199
+ - Health scores using git archaeology only (no code read) → Medium confidence
200
+ - Health scores for modules where files couldn't be read (binary, encrypted, too large) → Low confidence
201
+ - **Overall report confidence** = weighted average of module confidences (by LOC weight)
202
+ - Include confidence in RESCUE-REPORT.md header: `Confidence: [High|Medium|Low] ([n]%)`
203
+
204
+ ## Multi-Round Analysis
205
+
206
+ Autopsy follows a broad-to-narrow pattern to avoid missing systemic issues:
207
+
208
+ 1. **Round 1 — Surface scan** (Steps 0-1): Repo metrics + structure map. Goal: identify scope and major clusters.
209
+ 2. **Round 2 — Module deep dive** (Steps 2-3): Read and score each module. Goal: quantified health per module.
210
+ 3. **Round 3 — Cross-cutting analysis** (Step 4): Git archaeology + dependency graph. Goal: find systemic risks invisible at module level (circular deps, hotspot clusters, bus factor).
211
+ 4. **Round 4 — Synthesis** (Steps 5-6): Combine all rounds into prioritized report. Findings from later rounds may revise earlier scores.
212
+
213
+ Do NOT skip rounds. Round 3 cross-cutting analysis frequently reveals risks that per-module analysis misses (e.g., a "healthy" module that is the single point of failure for 10 others).
214
+
215
+ ## Health Score Factors
216
+
217
+ ```
218
+ CODE QUALITY — cyclomatic complexity, nesting depth, function length
219
+ DEPENDENCIES — coupling, circular deps, outdated packages
220
+ TEST COVERAGE — line coverage, branch coverage, test quality
221
+ DOCUMENTATION — inline comments, README, API docs
222
+ MAINTENANCE — git hotspots, commit frequency, author count
223
+ DEAD CODE — unused exports, unreachable branches
224
+ ```
225
+
226
+ ## Output Format
227
+
228
+ ```
229
+ ## Autopsy Report: [Project Name]
230
+
231
+ ### Overall Health: [score]/100 — [tier: healthy | watch | at-risk | critical]
232
+
233
+ ### Module Summary
234
+ | Module | Score | Risk | Priority |
235
+ |--------|-------|------|----------|
236
+ | [name] | [n] | [tier] | [1-N] |
237
+
238
+ ### Top Issues
239
+ 1. [module] — [primary finding] — Recommended pattern: [pattern]
240
+
241
+ ### Next Step
242
+ Run rune:safeguard on [top-priority module] before any refactoring.
243
+ ```
244
+
245
+ ## Constraints
246
+
247
+ 1. MUST scan actual code metrics — not estimate from file names
248
+ 2. MUST produce quantified health score — not vague "needs improvement"
249
+ 3. MUST identify specific modules with highest technical debt — ranked by severity
250
+ 4. MUST NOT recommend refactoring everything — prioritize by impact
251
+ 5. MUST check: test coverage, cyclomatic complexity, dependency freshness, dead code
252
+
253
+ ## Sharp Edges
254
+
255
+ Known failure modes for this skill. Check these before declaring done.
256
+
257
+ | Failure Mode | Severity | Mitigation |
258
+ |---|---|---|
259
+ | Health scores estimated without reading actual code metrics | CRITICAL | Constraint 1: scan actual code — open files, count LOC, assess nesting depth |
260
+ | Recommending refactoring everything without prioritization | HIGH | Constraint 4: rank by severity — worst health score modules first, max top-5 |
261
+ | Missing git archaeology (no hotspot/stale file analysis) | MEDIUM | Step 4 bash commands are mandatory — git log data is part of the health picture |
262
+ | Skipping RESCUE-REPORT.md write (only verbal summary) | HIGH | Step 5 write is mandatory — persistence is the point of autopsy |
263
+ | Health score not backed by all 6 dimensions scored | MEDIUM | All 6 dimensions (complexity, test coverage, docs, deps, smells, maintenance) required |
264
+
265
+ ## Done When
266
+
267
+ - scout completed with full project map (all files, entry points, import graph)
268
+ - All major modules scored across all 6 dimensions
269
+ - Git archaeology run (hotspots, stale files, dead code candidates identified)
270
+ - RESCUE-REPORT.md written to project root with Mermaid dependency diagram
271
+ - journal called with health score and surgery queue
272
+ - Autopsy Report emitted with overall health tier and top-3 issues
273
+
274
+ ## Returns
275
+
276
+ | Artifact | Format | Location |
277
+ |----------|--------|----------|
278
+ | Health score per module | Scored table (0-100) | inline |
279
+ | RESCUE-REPORT.md | Markdown + Mermaid | project root |
280
+ | Surgery queue (priority order) | Ordered list | RESCUE-REPORT.md |
281
+ | Git archaeology findings | Bash output + summary | inline |
282
+ | Journal entry | Text | via `journal` L3 |
283
+
284
+ ## Cost Profile
285
+
286
+ ~5000-10000 tokens input, ~2000-4000 tokens output. Opus for deep analysis. Most expensive L2 skill but runs once per rescue.
287
+
288
+ **Scope guardrail:** autopsy assesses — it does not refactor. All surgery is delegated to `surgeon` after the report is complete.
289
+
290
+ ## Executive Mode (--executive)
291
+
292
+ When invoked as `/rune autopsy --executive`, generate a board-ready HTML health assessment. Requires Business tier.
293
+
294
+ ### Executive Execution Steps
295
+
296
+ 1. **Standard Autopsy**: Run Steps 1-5 (structure scan, module analysis, health scoring, risk assessment, RESCUE-REPORT.md)
297
+ 2. **Org Context**: Read `.rune/org/org.md` for team structure and governance level
298
+ 3. **Cross-Domain Impact**: Map module health to business domains (which team owns which modules)
299
+ 4. **Business Risk Translation**: Convert technical health scores to business risk language:
300
+ - Critical modules in revenue path → "Revenue infrastructure at risk"
301
+ - Low test coverage on auth → "Security compliance gap"
302
+ - High churn in customer-facing code → "Customer experience degradation risk"
303
+ 5. **HTML Render**: Load `report-templates/autopsy-executive.html` from Business pack and populate all `{{placeholder}}` fields:
304
+ - SVG health ring (score → stroke-dasharray calculation: `score / 100 * 440`)
305
+ - Dimension bars (6 dimensions with color coding)
306
+ - Module table (sorted by priority)
307
+ - Surgery queue (top 5 modules)
308
+ - Risk matrix (6 categories)
309
+ - Git archaeology summary
310
+ - Cross-domain impact table
311
+ - Recommended actions (numbered, prioritized)
312
+ 6. **Save**: Write HTML to `EXECUTIVE-HEALTH.html` at project root
313
+
314
+ ### Executive Output
315
+
316
+ ```
317
+ EXECUTIVE-HEALTH.html — Board-ready HTML report
318
+ RESCUE-REPORT.md — Detailed technical report (standard autopsy)
319
+ .rune/retros/{date}.json — Health metrics for trend tracking
320
+ ```
321
+
322
+ ### Color Coding
323
+
324
+ | Score Range | Color | Tier |
325
+ |-------------|-------|------|
326
+ | 80-100 | var(--success) #10b981 | Healthy |
327
+ | 60-79 | var(--warning) #f59e0b | Watch |
328
+ | 40-59 | #f97316 (orange) | At-risk |
329
+ | 0-39 | var(--danger) #ef4444 | Critical |
330
+
331
+ ### Graceful Degradation
332
+
333
+ - If no Business pack installed: skip executive mode, produce standard RESCUE-REPORT.md only
334
+ - If `.rune/org/org.md` missing: skip team mapping, show modules without domain ownership
335
+ - If org teams don't map to code modules: show "Unmapped" in cross-domain table