skills/code-necromancer/SKILL.md
Systematic framework for resurrecting and modernizing legacy codebases through archaeology, resurrection, and rejuvenation phases. Activate on "legacy code", "inherited codebase", "no documentation", "technical debt", "resurrect", "modernize". NOT for greenfield projects or well-documented active codebases.
npx skillsauth add curiositech/windags-skills code-necromancerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Tagline: Raise dead codebases from the grave
Systematic framework for understanding, resurrecting, and modernizing legacy codebases.
✅ Use when:
❌ NOT for:
Objective: Create a complete map before touching anything.
| Output | Description |
|--------|-------------|
| repo-inventory.json | All repos with metadata, languages, activity |
| dependency-graph.mmd | Inter-repo and external dependencies |
| architecture-diagram.mmd | Visual system topology |
| tech-stack-matrix.md | Language/framework versions per repo |
| maturity-assessment.md | Code quality, test coverage, docs quality |
| missing-pieces.md | Gaps, orphaned repos, broken integrations |
Process: Inventory → Deep Scan → Cross-Reference → Visualize → Assess
→ See references/archaeology-guide.md for detailed techniques.
Objective: Get the system running in development.
| Output | Description |
|--------|-------------|
| dependency-audit.md | Outdated packages, vulnerabilities, breaking changes |
| environment-variables.md | All required env vars with defaults |
| secrets-needed.md | API keys, certs, OAuth credentials |
| infrastructure-status.md | Cloud resources, what exists vs deleted |
| resurrection-blockers.md | Critical issues preventing launch |
| integration-tests/ | Tests verifying components work and communicate |
Process: Audit Dependencies → Map Environment → Check Infrastructure → Write Tests → Document Blockers
→ See references/integration-test-patterns.md for resurrection test patterns.
Objective: Modernize while maintaining feature parity.
| Output | Description |
|--------|-------------|
| security-recommendations.md | Vulnerability fixes, compliance |
| modernization-roadmap.md | Prioritized upgrades with effort estimates |
| architecture-improvements.md | Scalability, performance, maintainability |
Process: Security First → Infrastructure (containerize, CI/CD) → Code Quality → Architecture
# List all repos in org
gh repo list ORG --limit 1000 --json name,primaryLanguage,pushedAt
# Dependency analysis
npm audit && npm outdated # Node.js
pip list --outdated && safety check # Python
go mod graph # Go
# Find env vars in code
grep -rn 'process\.env\|os\.environ' --include="*.js" --include="*.py"
→ See references/framework-detection.md for framework/stack identification.
→ See references/infrastructure-mapping.md for cloud resource discovery.
→ See references/dependency-patterns.md for dependency detection.
What it looks like: Running npm install before reading any code
Why it's wrong: You'll fix the same bug 5 times; dependencies have changed
Fix: Complete archaeology first; understand before touching
What it looks like: "Let's also refactor while we're here" Why it's wrong: Scope explosion; never actually resurrect Fix: Strict phase separation; refactoring is Phase 3
What it looks like: Update all dependencies in one commit Why it's wrong: Something breaks, no idea what Fix: Update incrementally; test after each
What it looks like: "It runs, ship it" Why it's wrong: Regression city; no baseline for changes Fix: Write resurrection tests as you go; they prove progress
What it looks like: "I fixed it but forgot what I changed" Why it's wrong: Tribal knowledge returns; next person is you in 6 months Fix: Document everything you learn and change
What it looks like: Following README from 2019 Why it's wrong: APIs change, services get deprecated Fix: Verify every instruction; documentation lies
→ references/archaeology-guide.md - Deep code archaeology techniques
→ references/dependency-patterns.md - Dependency detection across ecosystems
→ references/framework-detection.md - Framework/stack identification
→ references/infrastructure-mapping.md - Cloud resource discovery
→ references/integration-test-patterns.md - Resurrection test patterns
→ templates/repo-inventory.json - Repository catalog
→ templates/archaeology-report.md - Phase 1 output
→ templates/resurrection-plan.md - Phase 2 output
→ templates/rejuvenation-roadmap.md - Phase 3 output
tools
Building resilient distributed systems with circuit breakers, retries with full-jitter exponential backoff, retry budgets (per-request 3-attempt + per-client 10% ratio per Google SRE), deadline propagation, and the cascading-failure math (4 layers × 3 retries = 64x amplification). Grounded in Resilience4j, Microsoft Cloud Patterns, AWS Architecture Blog (Marc Brooker), and Google SRE Book.
testing
Designing HTTP cache headers that work correctly across browsers, CDNs, and shared proxies — `Cache-Control` directives per RFC 9111, `stale-while-revalidate` and `stale-if-error` per RFC 5861, the Vary header for varying responses, and surrogate keys for tag-based purging. Grounded in IETF RFCs and Cloudflare/Fastly docs.
development
Use when designing or fixing a Content Security Policy on a real site, choosing between nonce-based and hash-based CSP, adding strict-dynamic, debugging "Refused to execute inline script" errors, deploying CSP in report-only mode first, configuring report-to / report-uri, or auditing an existing policy for unsafe-inline / unsafe-eval / wildcards. Triggers: "CSP blocks legitimate inline script", strict-dynamic, nonce-{RANDOM}, sha256-{HASH}, object-src none, base-uri none, frame-ancestors, Trusted Types, X-Content-Security-Policy obsolete, report-only vs enforced. NOT for general HTTP security headers (HSTS, COOP/COEP), Trusted Types deep dive, CORS configuration, or building a WAF.
tools
Choosing and operating an HTTP API versioning strategy that doesn't break clients — Stripe's date-based pinned versions, the Deprecation/Sunset header pair (RFC 9745 + RFC 8594), URI vs header vs media-type approaches, and the version-transformer pattern. Grounded in Stripe's published architecture and IETF RFCs.