Skip to content

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_abc123

Was 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 behind

Schritt 2 — Veraltete APIs erkennen

Prompt:

Detect deprecated APIs in project proj_abc123

Dies 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.5h

Schritt 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_abc123

Was 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_abc123

Dies 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_abc123

Was 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 template

Schritt 6 — Behebungs-Backlog priorisieren

Prompt:

Create specs for the top 3 security vulnerabilities found in the stack audit for project proj_abc123

SpecForge 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_abc123

Ziel: StackHealthScore ≥ 85, null vulnerable- oder unmaintained-Pakete.


Audit-Rhythmus-Empfehlungen

AuslöserAktion
Monatlichaudit_stack — vollständiger Abhängigkeits-Scan
Vierteljährlichdetect_deprecations — Quellcode-Scan
Vor Veröffentlichungaudit_stack + security_check bei Zahlungs-/Auth-Specs
Nach einem Vorfallcapture_learning + betroffene Specs aktualisieren
Major Node.js LTSdetect_deprecations + plan_upgrade für betroffene Pakete

Häufige Befunde und Behebungen

BefundToolTypische Behebungszeit
CVE in direkter Abhängigkeitplan_upgrade1–4 Std.
CVE in transitiver Abhängigkeitplan_upgrade + manuelles Überschreiben2–8 Std.
Veraltete API im Quellcodedetect_deprecations0,5–3 Std. pro Datei
Nicht gepflegtes PaketDurch gepflegten Fork ersetzen4–16 Std.
Major-Version veraltetplan_upgrade2–12 Std.