Rezept: Stack-Audit
Ein Stack-Audit beantwortet drei Fragen: Ist unser Abhängigkeitsgraph gesund? Häufen wir technische Schulden an? Was sollten wir als nächstes upgraden und in welcher Reihenfolge?
Dieses Rezept verwendet die Stream-H-Tools von SpecForge, um einen vollständigen Stack-Gesundheits-Audit durchzuführen und einen umsetzbaren Upgrade-Plan zu erstellen.
Schritt 1 — Vollständigen Stack-Audit ausführen
Prompt:
Audit the stack for project proj_abc123Was zu erwarten ist:
Stack Health Score: 71/100
Dependency Status:
up_to_date: 34 packages ✅
outdated: 12 packages ⚠️
vulnerable: 3 packages 🚨
unmaintained: 1 package ❌
Critical (fix immediately):
- lodash 4.17.20 → CVE-2021-23337 (Prototype pollution)
- axios 0.21.1 → CVE-2023-45857 (CSRF vulnerability)
- follow-redirects 1.14.7 → CVE-2023-26159
High Priority (next sprint):
- typescript 4.9.5 → 5.7.2 (13 minor versions behind)
- vitest 0.34.0 → 3.1.0 (major version behind)
- express 4.18.0 → 5.0.1 (major version available)
Medium Priority (this quarter):
- 8 packages 1–3 minor versions behindSchritt 2 — Veraltete APIs erkennen
Prompt:
Detect deprecated APIs in project proj_abc123Dies scannt Quelldateien (kein Netzwerk erforderlich) auf veraltete API-Nutzung:
Deprecated API Usage Found:
src/middleware/session.ts:14
express-session secret as string — deprecated, use array of secrets
Effort to fix: 0.5h
src/utils/crypto.ts:8
crypto.createCipher — deprecated since Node 10, use createCipheriv
Security risk: HIGH
Effort to fix: 2h
src/config/database.ts:22
mongoose.connect callback — deprecated in Mongoose 7, use promise
Effort to fix: 1h
Total tech debt: ~3.5hSchritt 3 — Prioritäre Upgrades planen
Für jedes kritische oder hochpriore Element einen Upgrade-Plan generieren:
Prompt:
Plan the upgrade from axios 0.21.1 to the latest stable for project proj_abc123Was zu erwarten ist:
markdown
## Axios Upgrade Plan: 0.21.1 → 1.7.9
### Breaking Changes
- AbortController replaces CancelToken (deprecated in v0.22)
- Default Content-Type for POST changed to application/json (no change needed)
- Response types changed in TypeScript definitions
### Migration Steps
1. Update package.json: axios ^1.7.9
2. Replace all CancelToken usage:
- Find: axios.CancelToken.source()
- Replace: AbortController / AbortSignal
3. Update TypeScript types (AxiosResponse generic changed)
4. Run test suite — axios interceptors are backward compatible
### Files affected (5):
- src/api/client.ts (CancelToken usage on line 34, 67)
- src/api/interceptors.ts (token cancel on line 89)
- src/utils/request.ts (timeout handling)
- tests/api/client.test.ts (mock updates needed)
- tests/api/interceptors.test.ts (mock updates needed)
### Estimated effort: 3h
### Rollback: pin to 0.27.2 (last stable 0.x)Schritt 4 — Specs für Major-Upgrades erstellen
Für Major-Version-Upgrades, die viele Dateien betreffen, eine ordentliche Spec erstellen:
Prompt:
Create a spec for upgrading Express from 4.18 to 5.0 in project proj_abc123Dies gibt:
- Abnahmekriterien für das Upgrade (alle Endpoints funktionieren noch, kein brechendes Verhalten)
- Einen Migrationsplan
- Test-Abdeckungsanforderungen (Vorher-/Nachher-Vergleich)
Schritt 5 — Datenverwaltungs-Prüfung
Wenn das Projekt Benutzerdaten verarbeitet:
Prompt:
Run a data governance check for project proj_abc123Was zu erwarten ist:
PII Detection:
spec SPEC-003 (user registration): email, name, phone — needs retention policy
spec SPEC-007 (analytics): IP address stored — GDPR legitimate interest required
GDPR Compliance:
✅ Data minimization — specs collect minimal PII
⚠️ Retention policy missing for user.email (SPEC-003)
⚠️ Right to erasure not specified in any spec
❌ No privacy notice spec exists
Recommendations:
1. Create spec for GDPR compliance (right to erasure, data export)
2. Add retention policy to SPEC-003
3. Generate privacy notice templateSchritt 6 — Behebungs-Backlog priorisieren
Prompt:
Create specs for the top 3 security vulnerabilities found in the stack audit for project proj_abc123SpecForge erstellt Specs für jede CVE-Behebung, ordnungsgemäß mit Abnahmekriterien eingegrenzt.
Schritt 7 — Fortschritt verfolgen
Regelmäßige Audits planen und den StackHealthScore im Laufe der Zeit verfolgen:
Prompt:
Audit the stack for project proj_abc123Ziel: StackHealthScore ≥ 85, null vulnerable- oder unmaintained-Pakete.
Audit-Rhythmus-Empfehlungen
| Auslöser | Aktion |
|---|---|
| Monatlich | audit_stack — vollständiger Abhängigkeits-Scan |
| Vierteljährlich | detect_deprecations — Quellcode-Scan |
| Vor Veröffentlichung | audit_stack + security_check bei Zahlungs-/Auth-Specs |
| Nach einem Vorfall | capture_learning + betroffene Specs aktualisieren |
| Major Node.js LTS | detect_deprecations + plan_upgrade für betroffene Pakete |
Häufige Befunde und Behebungen
| Befund | Tool | Typische Behebungszeit |
|---|---|---|
| CVE in direkter Abhängigkeit | plan_upgrade | 1–4 Std. |
| CVE in transitiver Abhängigkeit | plan_upgrade + manuelles Überschreiben | 2–8 Std. |
| Veraltete API im Quellcode | detect_deprecations | 0,5–3 Std. pro Datei |
| Nicht gepflegtes Paket | Durch gepflegten Fork ersetzen | 4–16 Std. |
| Major-Version veraltet | plan_upgrade | 2–12 Std. |