@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.
- package/LICENSE +21 -21
- package/README.md +65 -6
- package/commands/rune.md +168 -168
- package/compiler/__tests__/detect-invariants.test.js +136 -0
- package/compiler/__tests__/doctor-mesh.test.js +229 -0
- package/compiler/__tests__/hook-dispatch.test.js +91 -0
- package/compiler/__tests__/hooks-antigravity.test.js +118 -0
- package/compiler/__tests__/hooks-cursor.test.js +139 -0
- package/compiler/__tests__/hooks-install.test.js +305 -0
- package/compiler/__tests__/hooks-merge.test.js +204 -0
- package/compiler/__tests__/hooks-tiers.test.js +519 -0
- package/compiler/__tests__/hooks-windsurf.test.js +115 -0
- package/compiler/__tests__/inject-claude-md.test.js +152 -0
- package/compiler/__tests__/load-invariants.test.js +408 -0
- package/compiler/__tests__/onboard-invariants.test.js +240 -0
- package/compiler/adapters/hooks/antigravity.js +140 -0
- package/compiler/adapters/hooks/claude.js +166 -0
- package/compiler/adapters/hooks/cursor.js +191 -0
- package/compiler/adapters/hooks/index.js +82 -0
- package/compiler/adapters/hooks/tier-emitter.js +182 -0
- package/compiler/adapters/hooks/windsurf.js +202 -0
- package/compiler/bin/rune.js +196 -6
- package/compiler/commands/hook-dispatch.js +87 -0
- package/compiler/commands/hooks/install.js +120 -0
- package/compiler/commands/hooks/merge.js +211 -0
- package/compiler/commands/hooks/presets.js +116 -0
- package/compiler/commands/hooks/status.js +112 -0
- package/compiler/commands/hooks/tiers.js +221 -0
- package/compiler/commands/hooks/uninstall.js +94 -0
- package/compiler/doctor.js +236 -0
- package/contexts/dev.md +34 -34
- package/contexts/research.md +43 -43
- package/contexts/review.md +55 -55
- package/extensions/ai-ml/PACK.md +88 -88
- package/extensions/ai-ml/skills/ai-agents.md +172 -172
- package/extensions/ai-ml/skills/code-sandbox.md +187 -187
- package/extensions/ai-ml/skills/deep-research.md +146 -146
- package/extensions/ai-ml/skills/embedding-search.md +66 -66
- package/extensions/ai-ml/skills/fine-tuning-guide.md +74 -74
- package/extensions/ai-ml/skills/llm-architect.md +125 -125
- package/extensions/ai-ml/skills/llm-integration.md +64 -64
- package/extensions/ai-ml/skills/prompt-patterns.md +72 -72
- package/extensions/ai-ml/skills/rag-patterns.md +66 -66
- package/extensions/ai-ml/skills/web-extraction.md +114 -114
- package/extensions/analytics/PACK.md +92 -92
- package/extensions/analytics/skills/ab-testing.md +72 -72
- package/extensions/analytics/skills/dashboard-patterns.md +83 -83
- package/extensions/analytics/skills/data-validation.md +68 -68
- package/extensions/analytics/skills/funnel-analysis.md +81 -81
- package/extensions/analytics/skills/sql-patterns.md +57 -57
- package/extensions/analytics/skills/statistical-analysis.md +79 -79
- package/extensions/analytics/skills/tracking-setup.md +71 -71
- package/extensions/backend/PACK.md +104 -104
- package/extensions/backend/skills/api-patterns.md +84 -84
- package/extensions/backend/skills/async-pipeline.md +193 -193
- package/extensions/backend/skills/auth-patterns.md +97 -97
- package/extensions/backend/skills/background-jobs.md +133 -133
- package/extensions/backend/skills/caching-patterns.md +108 -108
- package/extensions/backend/skills/cli-generation.md +133 -133
- package/extensions/backend/skills/database-patterns.md +87 -87
- package/extensions/backend/skills/middleware-patterns.md +104 -104
- package/extensions/chrome-ext/PACK.md +93 -93
- package/extensions/chrome-ext/skills/cws-preflight.md +143 -143
- package/extensions/chrome-ext/skills/cws-publish.md +104 -104
- package/extensions/chrome-ext/skills/ext-ai-integration.md +251 -251
- package/extensions/chrome-ext/skills/ext-messaging.md +139 -139
- package/extensions/chrome-ext/skills/ext-storage.md +133 -133
- package/extensions/chrome-ext/skills/mv3-scaffold.md +164 -164
- package/extensions/content/PACK.md +96 -96
- package/extensions/content/skills/blog-patterns.md +88 -88
- package/extensions/content/skills/cms-integration.md +131 -131
- package/extensions/content/skills/content-scoring.md +107 -107
- package/extensions/content/skills/i18n.md +83 -83
- package/extensions/content/skills/mdx-authoring.md +137 -137
- package/extensions/content/skills/reference.md +1014 -1014
- package/extensions/content/skills/seo-patterns.md +67 -67
- package/extensions/content/skills/video-repurpose.md +153 -153
- package/extensions/devops/PACK.md +101 -101
- package/extensions/devops/skills/chaos-testing.md +67 -67
- package/extensions/devops/skills/ci-cd.md +75 -75
- package/extensions/devops/skills/docker.md +58 -58
- package/extensions/devops/skills/edge-serverless.md +163 -163
- package/extensions/devops/skills/infra-as-code.md +158 -158
- package/extensions/devops/skills/kubernetes.md +110 -110
- package/extensions/devops/skills/monitoring.md +57 -57
- package/extensions/devops/skills/server-setup.md +64 -64
- package/extensions/devops/skills/ssl-domain.md +42 -42
- package/extensions/ecommerce/PACK.md +116 -116
- package/extensions/ecommerce/skills/cart-system.md +79 -79
- package/extensions/ecommerce/skills/inventory-mgmt.md +102 -102
- package/extensions/ecommerce/skills/order-management.md +126 -126
- package/extensions/ecommerce/skills/payment-integration.md +472 -472
- package/extensions/ecommerce/skills/shopify-dev.md +69 -69
- package/extensions/ecommerce/skills/subscription-billing.md +93 -93
- package/extensions/ecommerce/skills/tax-compliance.md +117 -117
- package/extensions/gamedev/PACK.md +142 -142
- package/extensions/gamedev/skills/asset-pipeline.md +74 -74
- package/extensions/gamedev/skills/audio-system.md +129 -129
- package/extensions/gamedev/skills/camera-system.md +87 -87
- package/extensions/gamedev/skills/ecs.md +98 -98
- package/extensions/gamedev/skills/game-loops.md +72 -72
- package/extensions/gamedev/skills/input-system.md +199 -199
- package/extensions/gamedev/skills/multiplayer.md +180 -180
- package/extensions/gamedev/skills/particles.md +105 -105
- package/extensions/gamedev/skills/physics-engine.md +89 -89
- package/extensions/gamedev/skills/scene-management.md +146 -146
- package/extensions/gamedev/skills/threejs-patterns.md +90 -90
- package/extensions/gamedev/skills/webgl.md +71 -71
- package/extensions/mobile/PACK.md +106 -106
- package/extensions/mobile/skills/app-store-connect.md +152 -152
- package/extensions/mobile/skills/app-store-prep.md +66 -66
- package/extensions/mobile/skills/deep-linking.md +109 -109
- package/extensions/mobile/skills/flutter.md +60 -60
- package/extensions/mobile/skills/ios-build-pipeline.md +142 -142
- package/extensions/mobile/skills/native-bridge.md +66 -66
- package/extensions/mobile/skills/ota-updates.md +97 -97
- package/extensions/mobile/skills/push-notifications.md +111 -111
- package/extensions/mobile/skills/react-native.md +82 -82
- package/extensions/saas/PACK.md +116 -116
- package/extensions/saas/skills/billing-integration.md +200 -200
- package/extensions/saas/skills/feature-flags.md +130 -130
- package/extensions/saas/skills/multi-tenant.md +103 -103
- package/extensions/saas/skills/onboarding-flow.md +139 -139
- package/extensions/saas/skills/subscription-flow.md +95 -95
- package/extensions/saas/skills/team-management.md +144 -144
- package/extensions/security/PACK.md +99 -99
- package/extensions/security/skills/api-security.md +140 -140
- package/extensions/security/skills/compliance.md +68 -68
- package/extensions/security/skills/owasp-audit.md +64 -64
- package/extensions/security/skills/pentest-patterns.md +77 -77
- package/extensions/security/skills/secret-mgmt.md +65 -65
- package/extensions/security/skills/supply-chain.md +65 -65
- package/extensions/trading/PACK.md +80 -80
- package/extensions/trading/skills/chart-components.md +55 -55
- package/extensions/trading/skills/experiment-loop.md +125 -125
- package/extensions/trading/skills/fintech-patterns.md +47 -47
- package/extensions/trading/skills/indicator-library.md +58 -58
- package/extensions/trading/skills/quant-analysis.md +111 -111
- package/extensions/trading/skills/realtime-data.md +58 -58
- package/extensions/trading/skills/trade-logic.md +104 -104
- package/extensions/ui/PACK.md +130 -130
- package/extensions/ui/skills/a11y-audit.md +91 -91
- package/extensions/ui/skills/animation-patterns.md +127 -127
- package/extensions/ui/skills/component-patterns.md +100 -100
- package/extensions/ui/skills/design-decision.md +108 -108
- package/extensions/ui/skills/design-system.md +68 -68
- package/extensions/ui/skills/landing-patterns.md +155 -155
- package/extensions/ui/skills/palette-picker.md +173 -173
- package/extensions/ui/skills/react-health.md +90 -90
- package/extensions/ui/skills/type-system.md +125 -125
- package/extensions/ui/skills/web-vitals.md +153 -153
- package/extensions/zalo/PACK.md +145 -145
- package/extensions/zalo/skills/zalo-oa-mcp.md +317 -317
- package/extensions/zalo/skills/zalo-oa-messaging.md +429 -429
- package/extensions/zalo/skills/zalo-oa-setup.md +236 -236
- package/extensions/zalo/skills/zalo-oa-webhook.md +189 -189
- package/extensions/zalo/skills/zalo-personal-messaging.md +194 -194
- package/extensions/zalo/skills/zalo-personal-setup.md +153 -153
- package/extensions/zalo/skills/zalo-rate-guard.md +219 -219
- package/hooks/auto-format/index.cjs +48 -48
- package/hooks/hooks.json +111 -111
- package/hooks/post-session-reflect/index.cjs +189 -189
- package/hooks/pre-compact/index.cjs +95 -95
- package/hooks/run-hook.cmd +1 -1
- package/hooks/secrets-scan/index.cjs +100 -100
- package/hooks/session-start/index.cjs +71 -71
- package/hooks/typecheck/index.cjs +65 -65
- package/package.json +63 -63
- package/references/ui-pro-max-data/LICENSE-UI-PRO-MAX +21 -21
- package/references/ui-pro-max-data/charts.csv +26 -26
- package/references/ui-pro-max-data/colors.csv +161 -161
- package/references/ui-pro-max-data/styles.csv +68 -68
- package/references/ui-pro-max-data/typography.csv +74 -74
- package/references/ui-pro-max-data/ui-reasoning.csv +162 -162
- package/references/ui-pro-max-data/ux-guidelines.csv +99 -99
- package/skills/adversary/SKILL.md +283 -283
- package/skills/asset-creator/SKILL.md +157 -157
- package/skills/audit/SKILL.md +147 -2
- package/skills/autopsy/SKILL.md +335 -335
- package/skills/ba/SKILL.md +85 -1
- package/skills/brainstorm/SKILL.md +380 -342
- package/skills/browser-pilot/SKILL.md +169 -168
- package/skills/constraint-check/SKILL.md +165 -165
- package/skills/context-engine/SKILL.md +408 -404
- package/skills/cook/SKILL.md +917 -863
- package/skills/db/SKILL.md +273 -273
- package/skills/debug/SKILL.md +465 -465
- package/skills/dependency-doctor/SKILL.md +265 -235
- package/skills/deploy/SKILL.md +274 -231
- package/skills/design/DESIGN-REFERENCE.md +365 -365
- package/skills/design/SKILL.md +590 -589
- package/skills/doc-processor/SKILL.md +254 -254
- package/skills/docs/SKILL.md +374 -374
- package/skills/docs-seeker/SKILL.md +178 -177
- package/skills/fix/SKILL.md +332 -330
- package/skills/git/SKILL.md +339 -339
- package/skills/hallucination-guard/SKILL.md +220 -219
- package/skills/incident/SKILL.md +254 -253
- package/skills/integrity-check/SKILL.md +169 -169
- package/skills/journal/SKILL.md +241 -240
- package/skills/launch/SKILL.md +344 -344
- package/skills/logic-guardian/SKILL.md +269 -251
- package/skills/marketing/SKILL.md +351 -289
- package/skills/mcp-builder/SKILL.md +425 -425
- package/skills/neural-memory/SKILL.md +359 -362
- package/skills/onboard/SKILL.md +432 -403
- package/skills/onboard/references/invariants-template.md +76 -0
- package/skills/onboard/scripts/detect-invariants.js +439 -0
- package/skills/onboard/scripts/inject-claude-md.js +150 -0
- package/skills/onboard/scripts/onboard-invariants.js +194 -0
- package/skills/perf/SKILL.md +347 -346
- package/skills/plan/SKILL.md +435 -428
- package/skills/preflight/SKILL.md +415 -415
- package/skills/problem-solver/SKILL.md +380 -284
- package/skills/rescue/SKILL.md +474 -474
- package/skills/research/SKILL.md +4 -0
- package/skills/retro/SKILL.md +3 -1
- package/skills/review/SKILL.md +614 -588
- package/skills/review-intake/SKILL.md +249 -249
- package/skills/safeguard/SKILL.md +200 -200
- package/skills/sast/SKILL.md +190 -190
- package/skills/scaffold/SKILL.md +328 -287
- package/skills/scope-guard/SKILL.md +183 -180
- package/skills/scout/SKILL.md +269 -263
- package/skills/sentinel/SKILL.md +384 -381
- package/skills/sentinel-env/SKILL.md +254 -254
- package/skills/sequential-thinking/SKILL.md +234 -234
- package/skills/session-bridge/SKILL.md +595 -543
- package/skills/session-bridge/scripts/load-invariants.js +397 -0
- package/skills/skill-forge/SKILL.md +581 -581
- package/skills/skill-router/SKILL.md +3 -0
- package/skills/slides/SKILL.md +19 -0
- package/skills/surgeon/SKILL.md +215 -215
- package/skills/team/SKILL.md +557 -537
- package/skills/test/SKILL.md +620 -614
- package/skills/trend-scout/SKILL.md +145 -145
- package/skills/verification/SKILL.md +334 -326
- package/skills/video-creator/SKILL.md +201 -201
- package/skills/watchdog/SKILL.md +168 -168
- package/skills/worktree/SKILL.md +140 -140
package/skills/autopsy/SKILL.md
CHANGED
|
@@ -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
|