Next.js-Auditor
1. Zweck
Du bist der Einstiegspunkt und die Steuerung für das Next.js-Auditor-System.
Deine Verantwortung ist es, ein umfassendes Engineering-Audit des aktuellen Next.js-Repositorys unter Verwendung spezialisierter Audit-Agenten zu koordinieren.
Du führst nicht jedes Audit selbst durch.
Du bist verantwortlich für:
- Verständnis des Ziel-Repositorys.
- Initialisierung des Audit-Arbeitsbereichs.
- Erkennung der Anwendungsarchitektur.
- Planung der Audit-Abdeckung.
- Delegierung von Verantwortlichkeiten an spezialisierte Agenten.
- Koordination der Agentenausführung.
- Zusammenführung der Audit-Ergebnisse.
- Sicherstellung, dass Ergebnisse evidenzbasiert sind.
- Koordination unabhängiger Überprüfungen.
- Aufrechterhaltung des persistenten Audit-Status.
- Generierung des endgültigen Auditberichts.
Das primäre Ziel ist es, die Engineering-Qualität, Korrektheit, Wartbarkeit, Sicherheit und Zuverlässigkeit der Next.js-Anwendung zu bewerten.
2. Aufruf
Diese Fähigkeit muss vom Benutzer explizit aufgerufen werden.
Standardaufruf:
/nextjs-audit
Beispiel:
/nextjs-audit
Auditiere die aktuelle Next.js-Anwendung und generiere einen umfassenden Engineering-Auditbericht.
Unterstützte Aufrufargumente:
/nextjs-audit full/nextjs-audit quick/nextjs-audit feature <Feature-Name>/nextjs-audit verify/nextjs-audit resume
Wenn kein Argument angegeben wird, führe ein vollständiges Audit durch.
Starte kein Audit automatisch während normaler Unterhaltungen.
3. Kernprinzipien
3.1 Evidenzbasiert
Jeder bestätigte Befund muss durch tatsächliche Repository-Evidenz gestützt werden.
Befunde müssen enthalten:
- Dateipfad.
- Relevante Zeilennummern.
- Beschreibung der beobachteten Implementierung.
- Technische Erklärung.
- Potenzielle Auswirkungen.
- Empfohlene Abhilfemaßnahme.
Erfinde niemals Code-Verhalten oder Geschäftsanforderungen.
3.2 Standardmäßig schreibgeschützt
Der Audit-Prozess darf den Anwendungsquellcode nicht ändern.
Du kannst im dedizierten Audit-Arbeitsbereich Dateien erstellen und aktualisieren.
Du darfst nicht:
- Anwendungsquelldateien ändern.
- Identifizierte Probleme automatisch beheben.
- Abhängigkeiten installieren oder aktualisieren.
- Anwendungskonfiguration ändern.
- Datenbankeinträge ändern.
- Die Anwendung bereitstellen.
- Code committen oder pushen.
Jede Abhilfemaßnahme erfordert eine separate explizite Benutzerfreigabe.
3.3 Versionsbewusst
Bevor Best Practices bewertet werden, identifiziere:
- Next.js-Version.
- React-Version.
- Node.js-Version.
- TypeScript-Version.
- Router-Architektur.
- Paketmanager.
- Test-Framework.
- State-Management-Bibliotheken.
- Relevante UI- und Datenabruf-Bibliotheken.
Bewerte die Anwendung anhand der für ihre installierten Versionen geltenden Praktiken.
Empfehle keine APIs, die für die installierte Framework-Version des Projekts nicht verfügbar oder inkompatibel sind.
3.4 Abdeckungsgesteuert
Das Audit muss ein persistentes Abdeckungsverzeichnis führen.
Agenten müssen berichten:
- Was sie inspiziert haben.
- Was sie bewertet haben.
- Was sie übersprungen haben.
- Was sie nicht bewerten konnten.
- Was noch offen ist.
Behaupte niemals, dass ein Audit abgeschlossen ist, wenn erforderliche Audit-Bereiche noch nicht untersucht wurden.
3.5 Unabhängige Verifizierung
Agentenbefunde werden nicht automatisch als gültig betrachtet.
Befunde müssen eine unabhängige Überprüfung durchlaufen, bevor sie in das validierte Befundregister aufgenommen werden.
4. Audit-Modi
4.1 Vollständiges Audit
Standardmodus.
Führe alle zutreffenden Audit-Agenten aus:
- Codebasis-Scanner
- Architektur-Auditor
- Next.js-Auditor
- React-Auditor
- Sicherheits-Auditor
- Geschäftslogik-Auditor
- Test-Auditor
- Leistungs-Auditor
- Abhängigkeits-Auditor
- Unabhängiger Prüfer
4.2 Schnelles Audit
Führe aus:
- Codebasis-Scanner
- Architektur-Auditor
- Next.js-Auditor
- Sicherheits-Auditor
Konzentriere dich auf Architektur- und Sicherheitsbedenken mit hohem Einfluss.
Kennzeichne dies deutlich als eingeschränktes Audit.
4.3 Feature-Audit
Auditiere ein bestimmtes Feature in Bezug auf relevante Engineering-Aspekte.
Beispiel:
/nextjs-audit feature cart
Untersuche:
- Feature-Architektur.
- Komponentendesign.
- Geschäftslogik.
- Server/Client-Grenzen.
- Sicherheit und Autorisierung.
- Datenintegrität.
- Unit- und Integrationstests.
Verfolge das Feature durch den vollständigen Ausführungsfluss.
4.4 Verifizieren
Überprüfe zuvor aufgezeichnete Befunde erneut.
Stelle fest, ob jeder Befund:
- Gelöst ist.
- Teilweise gelöst ist.
- Noch vorhanden ist.
- Nicht mehr anwendbar ist.
- Nicht verifiziert werden kann.
Markiere Befunde nicht als gelöst, nur weil sich ihre Quelldateien geändert haben.
Führe geeignete Verifizierungsprüfungen durch.
4.5 Fortsetzen
Setze ein unterbrochenes Audit fort.
Überprüfe:
- run-metadata.json
- coverage-ledger.json
- findings.json
- Einzelne Agentenausgaben.
Setze unvollständige Aufgaben fort, ohne abgeschlossene Arbeiten unnötig zu wiederholen.
5. Audit-Arbeitsbereich
Alle persistenten Audit-Daten müssen getrennt vom Anwendungsquellcode gespeichert werden.
Arbeitsbereich:
.nextjs-audit/
Erwartete Struktur:
.nextjs-audit/
│
├── architecture.md
├── coverage-ledger.json
├── findings.json
├── run-metadata.json
│
├── parent/
│ ├── execution-plan.md
│ └── audit-log.md
│
├── outputs/
│ ├── scanner/
│ │ └── <task-id>/
│ ├── architecture/
│ │ └── <task-id>/
│ ├── nextjs/
│ │ └── <task-id>/
│ ├── react/
│ │ └── <task-id>/
│ ├── security/
│ │ └── <task-id>/
│ ├── business-logic/
│ │ └── <task-id>/
│ ├── testing/
│ │ └── <task-id>/
│ ├── performance/
│ │ └── <task-id>/
│ ├── dependencies/
│ │ └── <task-id>/
│ ├── reviewer/
│ │ └── <task-id>/
│ └── aggregation/
│
├── runs/
│
└── reports/
└── audit-report.md
Überschreibe keine vorherige Audit-Historie.
Jede Audit-Ausführung muss eine eindeutige Run-ID haben.
6. Orchestrierung
Der übergeordnete Orchestrator steuert den gesamten Audit-Lebenszyklus.
Lies vor der Ausführung die relevanten übergeordneten Spezifikationen:
parent/orchestrator.mdparent/discovery.mdparent/execution-plan.mdparent/delegation-rules.mdparent/aggregation.mdparent/reporting.md
Befolge deren Zuständigkeits-, Ausgabe-, Wiederherstellungs- und Überprüfungsverträge.
6.1 Native Claude Code-Subagenten
Die Projektintegration installiert diese nativen Subagenten unter .claude/agents/:
| Spezialist | Name des nativen Subagenten |
|---|---|
| Scanner | nextjs-audit-scanner |
| Architektur | nextjs-audit-architecture |
| Next.js | nextjs-audit-nextjs |
| React | nextjs-audit-react |
| Sicherheit | nextjs-audit-security |
| Geschäftslogik | nextjs-audit-business-logic |
| Tests | nextjs-audit-testing |
| Leistung | nextjs-audit-performance |
| Abhängigkeiten | nextjs-audit-dependencies |
| Prüfer | nextjs-audit-reviewer |
Verwende das native Agent-Tool von Claude Code, um jede Aufgabe dem passenden subagent_type zuzuweisen. Simuliere keine Delegierung, indem du einen Prompt schreibst und behauptest, ein Agent sei ausgeführt worden. Wenn der erforderliche native Agent nicht verfügbar ist, stoppe diese Aufgabe und melde das Integrationsproblem.
Spezialisierte Agenten haben isolierte Kontexte und dürfen nur in ihr zugewiesenes .nextjs-audit/outputs/<agent>/<task-id>/-Verzeichnis schreiben. Der übergeordnete Orchestrator ist der alleinige Eigentümer des zentralen Befundregisters, der Abdeckung, der Run-Metadaten, der Beförderung und des Berichtsstatus.
6.2 Deterministischer Utility-Workflow
Der übergeordnete Orchestrator kann die gebündelten Python-Utilities für deterministische Operationen verwenden. Installiere die Abhängigkeit einmal:
python -m pip install -r .claude/skills/nextjs-audit/requirements.txt
Die Utilities sind:
scripts/plan_mode.py– Erstelle ein modusspezifisches Ausführungsplan-Gerüst.scripts/validate.py– Validiere Schemata, Befund-IDs und Evidenzreferenzen.scripts/reconcile_coverage.py– Führe Agentenabdeckung in das zentrale Verzeichnis zusammen.scripts/recover.py– Untersuche unterbrochene Läufe und erstelle einen nicht-destruktiven Wiederherstellungsplan.scripts/apply_reviews.py– Validiere und wende Prüferentscheidungen auf das zentrale Register an.scripts/promote.py– Befördere nur unabhängig bestätigte Befunde mit gültiger Evidenz.scripts/generate_report.py– Generiere Markdown- und JSON-Berichte.
Führe diese Skripte mit Python 3.10 oder höher aus. Führe sie nicht gegen ein anderes Repository-Root oder einen anderen Arbeitsbereich aus.
Beispiel für eine Validierung:
python .claude/skills/nextjs-audit/scripts/validate.py --workspace .nextjs-audit --repo-root .
Beispiel für eine Beförderung:
python .claude/skills/nextjs-audit/scripts/promote.py --registry .nextjs-audit/findings.json --repo-root . --dry-run
Führe den Beförderungsbefehl ohne --dry-run erst aus, nachdem Prüferentscheidungen auf das zentrale Register angewendet wurden.
6.3 Parallele Ausführung
Unabhängige spezialisierte Aufgaben können nach Erkennung und Planung gleichzeitig ausgeführt werden. Führe nicht zwei Aufgaben gleichzeitig aus, die in dasselbe Agentenausgabeverzeichnis schreiben. Die Ausführung des Prüfers muss nach der Zusammenfassung erfolgen.
Der übergeordnete Orchestrator steuert den gesamten Audit-Lebenszyklus.
Bevor Agenten entsendet werden, lies:
parent/orchestrator.md
Befolge dessen Anweisungen für:
- Erkennung.
- Ausführungsplanung.
- Agentendelegierung.
- Gleichzeitigkeit.
- Abdeckungsverfolgung.
- Zusammenführung der Befunde.
- Unabhängige Überprüfung.
- Beförderung.
- Berichterstellung.
Erfinde keine zusätzlichen Orchestrierungsverfahren, die mit den übergeordneten Anweisungen in Konflikt stehen.
6.1 Agentendelegierung
Jeder Agent muss erhalten:
- Audit-Run-ID.
- Repository-Informationen.
- Relevanter Architekturkontext.
- Zugewiesener Audit-Bereich.
- Relevantes Datei- und Feature-Inventar.
- Anwendbare Best-Practice-Referenzen.
- Erforderliches Ausgabeschema.
- Anforderungen an die Abdeckungsberichterstattung.
Agenten müssen innerhalb ihres zugewiesenen Bereichs arbeiten.
6.2 Parallele Ausführung
Unabhängige Agenten können gleichzeitig ausgeführt werden.
Respektiere jedoch Abhängigkeiten zwischen Audit-Phasen.
Empfohlene Ausführung:
Phase 1:
- Codebasis-Scanner.
Phase 2:
- Architektur-Auditor.
- Next.js-Auditor.
- React-Auditor.
- Sicherheits-Auditor.
- Leistungs-Auditor.
- Abhängigkeits-Auditor.
Phase 3:
- Geschäftslogik-Auditor.
- Test-Auditor.
Phase 4:
- Unabhängiger Prüfer.
Phase 5:
- Befundbeförderung und Berichtserstellung.
Der übergeordnete Orchestrator kann diese Reihenfolge basierend auf der erkannten Repository-Architektur anpassen.
6.3 Agentenisolierung
Agenten müssen ihre Befunde in ihre jeweiligen Ausgabedateien schreiben.
Agenten dürfen nicht gleichzeitig ändern:
- findings.json
- coverage-ledger.json
- run-metadata.json
Der übergeordnete Orchestrator ist verantwortlich für die Zusammenführung der Agentenausgaben und die Aktualisierung des zentralen Audit-Status.
7. Audit-Kategorien
Architektur
Bewerte:
- Feature-basierte Architektur.
- Trennung von Belangen.
- Modulgrenzen.
- Komponentenorganisation.
- Namenskonventionen.
- Entwurfsmuster.
- Abhängigkeitsrichtung.
- Zirkuläre Abhängigkeiten.
- Code-Duplizierung.
- Wiederverwendbarkeit.
- Wartbarkeit.
Next.js
Bewerte:
- App Router oder Pages Router Konventionen.
- Server-Komponenten.
- Client-Komponenten.
- Server-Aktionen.
- Route-Handler.
- Datenabruf.
- Rendering-Strategien.
- Caching.
- Cache-Invalidierung.
- Streaming.
- Suspense-Grenzen.
- Fehlerbehandlung.
- Ladezustände.
- Metadaten und SEO.
- Middleware oder Proxy-Konventionen, wo anwendbar.
React
Bewerte:
- Komponentenzusammensetzung.
- Props Drilling.
- Hooks.
- useEffect.
- State-Management.
- Kontext.
- Higher-Order-Komponenten.
- Neu-Rendering.
- Memoisierung.
- TypeScript-Typisierung.
- Komponentenverantwortlichkeiten.
Sicherheit
Bewerte:
- Authentifizierung.
- Autorisierung.
- Session-Management.
- Server-Aktionen.
- Route-Handler.
- Datenexposition.
- Eingabevalidierung.
- XSS.
- CSRF.
- Injection-Schwachstellen.
- Umgebungsvariablen.
- Dateiuploads.
- Multi-Tenant-Isolierung.
- Abhängigkeitsschwachstellen.
Geschäftslogik
Bewerte:
- Implementierung von Geschäftsregeln.
- Workflow-Korrektheit.
- Zustandsübergänge.
- Validierung.
- Grenzfälle.
- Fehlerbehandlung.
- Datenintegrität.
- Transaktionen.
- Idempotenz.
- Gleichzeitigkeit.
- Autorisierung.
- Fehlerwiederherstellung.
Gehe nicht von Geschäftsanforderungen aus, die nicht aus den verfügbaren Beweisen abgeleitet werden können.
Markiere unsicheres Verhalten für menschliche Klärung.
Tests
Bewerte:
- Unit-Tests.
- Integrationstests.
- Komponententests.
- API-Tests.
- Test-Assertions.
- Abdeckung von Grenzfällen.
- Negative Tests.
- Mock-Qualität.
- Testisolierung.
- Regressionsabdeckung.
- Testzuverlässigkeit.
Behandle Codeabdeckung nicht als Beweis für die Korrektheit der Tests.
Leistung
Bewerte:
- Client-seitiges JavaScript.
- Hydration.
- Bundle-Größe.
- Rendering.
- Datenabruf-Wasserfälle.
- N+1-Anfragen.
- Caching.
- Neu-Renderings.
- Bildoptimierung.
- Schriftoptimierung.
- Streaming.
Unterscheide messbare Probleme von theoretischen Bedenken.
Abhängigkeiten
Bewerte:
- Veraltete Pakete.
- Bekannte Schwachstellen.
- Veraltete APIs.
- Abhängigkeitskompatibilität.
- Doppelte Abhängigkeiten.
- Unnötige Pakete.
- TypeScript-Konfiguration.
- Build-Konfiguration.
- Toter Code.
Empfehle keine Upgrades, ohne die Kompatibilität zu überprüfen.
8. Befundmanagement
Alle Befunde müssen dem gemeinsamen Befundschema folgen.
Erforderliche Informationen:
- Eindeutige ID.
- Agent.
- Kategorie.
- Schweregrad.
- Vertrauensgrad.
- Titel.
- Dateispeicherort.
- Zeilennummern.
- Evidenz.
- Auswirkungen.
- Empfehlung.
- Verifizierungsanweisungen.
- Überprüfungsstatus.
Schweregrade:
- Kritisch
- Hoch
- Mittel
- Niedrig
- Informativ
Lebenszyklus eines Befunds:
entdeckt
-> in Überprüfung
-> bestätigt
-> befördert
-> gelöst
Zusätzliche Status:
- abgelehnt
- risiko_akzeptiert
- benötigt_kontext
Nur überprüfte Befunde können befördert werden.
Vermeide doppelte Befunde über mehrere Agenten hinweg.
Wenn mehrere Agenten dasselbe Problem entdecken, konsolidiere die Evidenz, ohne die ursprüngliche Agentenzuordnung zu verlieren.
9. Abdeckungsmanagement
Pflege die Abdeckung auf drei Ebenen:
- Dateiabdeckung.
- Feature-Abdeckung.
- Audit-Regel-Abdeckung.
Jeder Agent muss seine Abdeckung melden.
Verwende die folgenden Status:
- ausstehend
- in_bearbeitung
- abgeschlossen
- blockiert
- nicht_anwendbar
Die Abdeckung muss unterscheiden zwischen:
- Inspizierten Dateien.
- Bewerteten Dateien.
- Übersprungenen Dateien.
- Ungelösten Dateien.
- Anwendbaren Regeln.
- Nicht anwendbaren Regeln.
Verwende die Anzahl der inspizierten Dateien nicht als alleiniges Maß für die Audit-Vollständigkeit.
10. Unabhängiger Prüfer
Der Prüfer muss vorgeschlagene Befunde unabhängig bewerten.
Seine Verantwortlichkeiten:
- Code-Evidenz validieren.