@the-bearded-bear/claude-craft 8.5.0 → 8.7.1-next.dc1c47e
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/Dev/i18n/de/Common/agents/ralph-conductor.md +3 -0
- package/Dev/i18n/de/Common/commands/ralph-run.md +3 -0
- package/Dev/i18n/de/Python/commands/check-compliance.md +3 -0
- package/Dev/i18n/de/Python/commands/check-security.md +118 -2
- package/Dev/i18n/de/Python/commands/check-testing.md +107 -2
- package/Dev/i18n/de/Python/commands/dependency-audit.md +139 -5
- package/Dev/i18n/de/Python/commands/generate-model.md +54 -7
- package/Dev/i18n/de/Python/commands/type-coverage.md +65 -6
- package/Dev/i18n/de/React/commands/accessibility-check.md +226 -58
- package/Dev/i18n/de/React/commands/bundle-analyze.md +3 -0
- package/Dev/i18n/de/React/commands/check-architecture.md +3 -0
- package/Dev/i18n/de/React/commands/check-code-quality.md +3 -0
- package/Dev/i18n/de/React/commands/check-compliance.md +3 -0
- package/Dev/i18n/de/React/commands/check-security.md +3 -0
- package/Dev/i18n/de/React/commands/check-testing.md +3 -0
- package/Dev/i18n/de/React/commands/generate-component.md +3 -0
- package/Dev/i18n/de/React/commands/generate-hook.md +3 -0
- package/Dev/i18n/de/React/commands/storybook-story.md +3 -0
- package/Dev/i18n/de/Symfony/rules/11-security-symfony.md +6 -0
- package/Dev/i18n/de/UIUX/commands/a11y-audit.md +3 -0
- package/Dev/i18n/es/Common/agents/ralph-conductor.md +3 -0
- package/Dev/i18n/es/Common/commands/ralph-run.md +3 -0
- package/Dev/i18n/es/Common/commands/sub-agents-patterns.md +152 -28
- package/Dev/i18n/es/ReactNative/commands/check-security.md +3 -0
- package/Dev/i18n/es/ReactNative/commands/deep-link.md +3 -0
- package/Dev/i18n/es/ReactNative/commands/generate-screen.md +3 -0
- package/Dev/i18n/es/ReactNative/commands/native-module.md +3 -0
- package/Dev/i18n/es/ReactNative/commands/store-prepare.md +3 -0
- package/Dev/i18n/es/Symfony/commands/check-security.md +3 -0
- package/Dev/i18n/es/Symfony/commands/generate-crud.md +3 -0
- package/Dev/i18n/es/Symfony/commands/optimize-doctrine.md +3 -0
- package/Dev/i18n/es/Symfony/rules/02-architecture-clean-ddd.md +6 -0
- package/Dev/i18n/es/Symfony/rules/06-docker-hadolint.md +6 -0
- package/Dev/i18n/es/Symfony/rules/07-testing-symfony.md +6 -0
- package/Dev/i18n/es/Symfony/templates/aggregate-root.md +6 -0
- package/Dev/i18n/es/Symfony/templates/clean-architecture-structure.md +6 -0
- package/Dev/i18n/es/Symfony/templates/domain-event.md +6 -0
- package/Dev/i18n/es/Symfony/templates/service.md +6 -0
- package/Dev/i18n/es/Symfony/templates/test-behat.md +6 -0
- package/Dev/i18n/es/Symfony/templates/test-integration.md +6 -0
- package/Dev/i18n/es/Symfony/templates/test-unit.md +6 -0
- package/Dev/i18n/es/Symfony/templates/value-object.md +6 -0
- package/Dev/i18n/es/UIUX/commands/a11y-audit.md +3 -0
- package/Dev/i18n/es/Workflow/commands/retro.md +3 -0
- package/Dev/i18n/es/Workflow/commands/review.md +3 -0
- package/Dev/i18n/es/Workflow/commands/start.md +3 -0
- package/Dev/i18n/fr/Common/agents/ralph-conductor.md +3 -0
- package/Dev/i18n/pt/Flutter/commands/check-architecture.md +77 -47
- package/Dev/i18n/pt/Flutter/commands/check-code-quality.md +101 -42
- package/Dev/i18n/pt/Flutter/commands/check-security.md +157 -39
- package/Dev/i18n/pt/Flutter/commands/check-testing.md +121 -42
- package/Dev/i18n/pt/ReactNative/commands/check-architecture.md +78 -4
- package/Infra/i18n/de/Docker/agents/docker-dockerfile.md +122 -6
- package/Infra/i18n/es/Docker/agents/docker-dockerfile.md +122 -6
- package/Infra/i18n/pt/Docker/agents/docker-dockerfile.md +122 -6
- package/Project/i18n/de/Gate/commands/report.md +121 -0
- package/Project/i18n/de/Gate/commands/validate-backlog.md +137 -18
- package/Project/i18n/es/Gate/commands/report.md +121 -0
- package/Project/i18n/es/Gate/commands/validate-backlog.md +143 -24
- package/Project/i18n/fr/Gate/commands/report.md +106 -18
- package/Project/i18n/fr/Gate/commands/validate-backlog.md +125 -6
- package/Project/i18n/pt/Gate/commands/report.md +121 -0
- package/Project/i18n/pt/Gate/commands/validate-backlog.md +151 -32
- package/README.md +27 -0
- package/bundles/cursor/.cursorrules +5 -2
- package/bundles/windsurf/.windsurfrules +5 -2
- package/cli/index.js +37 -2
- package/cli/lib/banner.js +6 -1
- package/cli/lib/doctor.js +6 -2
- package/cli/lib/help.js +23 -0
- package/cli/lib/install-from-url.js +141 -0
- package/cli/lib/installer.js +78 -3
- package/cli/lib/skill.js +182 -0
- package/cli/lib/update.js +64 -1
- package/package.json +7 -2
|
@@ -5,8 +5,11 @@ model: opus
|
|
|
5
5
|
memory: user
|
|
6
6
|
tools: [Read, Glob, Grep, Edit, Write, Bash, Task, WebFetch, WebSearch]
|
|
7
7
|
permissionMode: default
|
|
8
|
+
translation_status: pending
|
|
8
9
|
---
|
|
9
10
|
|
|
11
|
+
> ⚠️ **Translation incomplete.** Please contribute via GitHub PR or refer to the [English version](../../en/Common/agents/ralph-conductor.md).
|
|
12
|
+
|
|
10
13
|
# Ralph Conductor Agent v2.0
|
|
11
14
|
|
|
12
15
|
Sie sind ein spezialisierter Agent fur die Orchestrierung von Ralph Wiggum v2.0 Continuous-Loop-Sessions. Ihre Rolle ist es, Aufgaben durch iterative Claude-Ausfuhrung zu leiten, bis die Definition of Done (DoD) Kriterien erfullt sind.
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Claude in kontinuierlicher Schleife ausfuhren bis zur Aufgabenerledigung (Ralph Wiggum v2.0)
|
|
3
3
|
argument-hint: <aufgabenbeschreibung> [--auto-detect|--init|--interactive]
|
|
4
|
+
translation_status: pending
|
|
4
5
|
---
|
|
5
6
|
|
|
7
|
+
> ⚠️ **Translation incomplete.** Please contribute via GitHub PR or refer to the [English version](../../en/Common/commands/ralph-run.md).
|
|
8
|
+
|
|
6
9
|
# Ralph Run - Kontinuierliche KI-Agent-Schleife v2.0
|
|
7
10
|
|
|
8
11
|
Fuhrt Claude in einer kontinuierlichen Schleife aus, bis die Aufgabe abgeschlossen ist oder die Definition of Done (DoD) Kriterien erfullt sind.
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Vollständige Python-Konformität prüfen
|
|
3
3
|
argument-hint: [arguments]
|
|
4
|
+
translation_status: pending
|
|
4
5
|
---
|
|
5
6
|
|
|
7
|
+
> ⚠️ **Translation incomplete.** Please contribute via GitHub PR or refer to the [English version](../../en/Python/commands/check-compliance.md).
|
|
8
|
+
|
|
6
9
|
# Vollständige Python-Konformität prüfen
|
|
7
10
|
|
|
8
11
|
## Argumente
|
|
@@ -51,7 +51,78 @@ Nach Geheimnissen und Anmeldedaten im Code suchen:
|
|
|
51
51
|
|
|
52
52
|
**Referenz**: `rules/03-coding-standards.md` Abschnitt "Security Best Practices"
|
|
53
53
|
|
|
54
|
-
### Schritt 3
|
|
54
|
+
### Schritt 3: Benutzereingabe-Validierung
|
|
55
|
+
|
|
56
|
+
Datenvalidierung und -bereinigung überprüfen:
|
|
57
|
+
- [ ] Validierung aller Benutzereingaben
|
|
58
|
+
- [ ] Verwendung von Pydantic zur Validierung
|
|
59
|
+
- [ ] Datenbereinigung vor der Verarbeitung
|
|
60
|
+
- [ ] Kein blindes Vertrauen in externe Daten
|
|
61
|
+
- [ ] Typ- und Formatvalidierung
|
|
62
|
+
- [ ] Grenzen für Eingabegrößen
|
|
63
|
+
|
|
64
|
+
**Referenz**: `rules/03-coding-standards.md` Abschnitt "Input Validation"
|
|
65
|
+
|
|
66
|
+
### Schritt 4: Abhängigkeiten und Schwachstellen
|
|
67
|
+
|
|
68
|
+
Abhängigkeiten auf bekannte Schwachstellen analysieren:
|
|
69
|
+
- [ ] Keine Abhängigkeiten mit kritischen CVEs
|
|
70
|
+
- [ ] Aktuelle Bibliotheksversionen
|
|
71
|
+
- [ ] requirements.txt mit gepinnten Versionen
|
|
72
|
+
- [ ] Verwendung von `pip-audit` oder `safety`
|
|
73
|
+
- [ ] Keine veralteten Abhängigkeiten
|
|
74
|
+
|
|
75
|
+
**Befehl**: `docker run --rm -v $(pwd):/app python:3.11 sh -c "pip install pip-audit && pip-audit --requirement /app/requirements.txt"`
|
|
76
|
+
|
|
77
|
+
**Referenz**: `rules/06-tooling.md` Abschnitt "Dependency Management"
|
|
78
|
+
|
|
79
|
+
### Schritt 5: Fehler- und Log-Verwaltung
|
|
80
|
+
|
|
81
|
+
Sichere Fehlerbehandlung prüfen:
|
|
82
|
+
- [ ] Keine offengelegten Stack-Traces in der Produktion
|
|
83
|
+
- [ ] Generische Fehlermeldungen für Benutzer
|
|
84
|
+
- [ ] Sichere Logs (keine sensiblen Daten)
|
|
85
|
+
- [ ] Kein Debug-Modus in der Produktion
|
|
86
|
+
- [ ] Ordentliche Ausnahmebehandlung
|
|
87
|
+
- [ ] Protokollierung von Sicherheitsereignissen
|
|
88
|
+
|
|
89
|
+
**Referenz**: `rules/03-coding-standards.md` Abschnitt "Error Handling"
|
|
90
|
+
|
|
91
|
+
### Schritt 6: Authentifizierung und Autorisierung
|
|
92
|
+
|
|
93
|
+
Authentifizierungssicherheit überprüfen:
|
|
94
|
+
- [ ] Keine manuelle Passwortverwaltung (bcrypt/argon2 verwenden)
|
|
95
|
+
- [ ] JWT-Token mit Ablauf
|
|
96
|
+
- [ ] HTTPS obligatorisch für sensible Endpunkte
|
|
97
|
+
- [ ] CSRF-Schutz falls zutreffend
|
|
98
|
+
- [ ] Rate-Limiting auf sensiblen Endpunkten
|
|
99
|
+
- [ ] Berechtigungsvalidierung (RBAC/ABAC)
|
|
100
|
+
|
|
101
|
+
**Referenz**: `rules/02-architecture.md` Abschnitt "Security Layer"
|
|
102
|
+
|
|
103
|
+
### Schritt 7: Konfiguration und Umgebung
|
|
104
|
+
|
|
105
|
+
Sicherheitskonfiguration analysieren:
|
|
106
|
+
- [ ] Umgebungsvariablen für Geheimnisse
|
|
107
|
+
- [ ] Unterschiedliche Konfiguration pro Umgebung (dev/staging/prod)
|
|
108
|
+
- [ ] Keine Geheimnisse in docker-compose.yml
|
|
109
|
+
- [ ] Geheimnisse in Umgebungsvariablen oder Vault
|
|
110
|
+
- [ ] Dokumentiertes .env.example
|
|
111
|
+
- [ ] DEBUG=False in der Produktion
|
|
112
|
+
|
|
113
|
+
**Referenz**: `rules/06-tooling.md` Abschnitt "Environment Configuration"
|
|
114
|
+
|
|
115
|
+
### Schritt 8: Injektion und XSS
|
|
116
|
+
|
|
117
|
+
Schutz gegen Injektionen überprüfen:
|
|
118
|
+
- [ ] Keine SQL-Injection (ORM oder parametrisierte Abfragen)
|
|
119
|
+
- [ ] Daten-Escaping in Templates
|
|
120
|
+
- [ ] Keine Befehlsinjektion (sicheres subprocess)
|
|
121
|
+
- [ ] Dateipfad-Validierung (Path Traversal)
|
|
122
|
+
- [ ] Content-Security-Policy bei Webanwendungen
|
|
123
|
+
- [ ] HTML-Eingabe-Bereinigung
|
|
124
|
+
|
|
125
|
+
**Referenz**: `rules/03-coding-standards.md` Abschnitt "Security Best Practices"
|
|
55
126
|
|
|
56
127
|
### Schritt 9: Bewertung berechnen
|
|
57
128
|
|
|
@@ -81,7 +152,52 @@ VERBESSERUNGEN:
|
|
|
81
152
|
KRITISCHE PROBLEME:
|
|
82
153
|
- [Liste kritischer Schwachstellen, die SOFORT behoben werden müssen]
|
|
83
154
|
|
|
84
|
-
|
|
155
|
+
DETAILS NACH KATEGORIE:
|
|
156
|
+
|
|
157
|
+
1. BANDIT-SCAN (XX/6)
|
|
158
|
+
Status: [Schwachstellenanalyse]
|
|
159
|
+
Kritische Probleme: XX
|
|
160
|
+
Mittlere Probleme: XX
|
|
161
|
+
Niedrige Probleme: XX
|
|
162
|
+
|
|
163
|
+
2. OFFENGELEGTE GEHEIMNISSE (XX/5)
|
|
164
|
+
Status: [Geheimnis-Erkennung]
|
|
165
|
+
Fest codierte Geheimnisse: XX
|
|
166
|
+
Sichere .env-Dateien: ✅/❌
|
|
167
|
+
|
|
168
|
+
3. EINGABEVALIDIERUNG (XX/4)
|
|
169
|
+
Status: [Validierung und Bereinigung]
|
|
170
|
+
Nicht validierte Eingaben: XX
|
|
171
|
+
Pydantic-Nutzung: ✅/❌
|
|
172
|
+
|
|
173
|
+
4. ABHÄNGIGKEITEN (XX/4)
|
|
174
|
+
Status: [Abhängigkeitsschwachstellen]
|
|
175
|
+
Kritische CVEs: XX
|
|
176
|
+
Mittlere CVEs: XX
|
|
177
|
+
Veraltete Abhängigkeiten: XX
|
|
178
|
+
|
|
179
|
+
5. FEHLERBEHANDLUNG (XX/3)
|
|
180
|
+
Status: [Fehler- und Log-Sicherheit]
|
|
181
|
+
Offengelegte Stack-Traces: XX
|
|
182
|
+
Sensible Daten in Logs: XX
|
|
183
|
+
|
|
184
|
+
6. AUTHENTIFIZIERUNG (XX/2)
|
|
185
|
+
Status: [Auth/Authz]
|
|
186
|
+
Sicheres Hashing: ✅/❌
|
|
187
|
+
JWT mit Ablauf: ✅/❌
|
|
188
|
+
|
|
189
|
+
7. INJEKTIONEN (XX/1)
|
|
190
|
+
Status: [Injektionsschutz]
|
|
191
|
+
SQL-Injection-Risiken: XX
|
|
192
|
+
Befehlsinjektions-Risiken: XX
|
|
193
|
+
|
|
194
|
+
KRITISCHE SCHWACHSTELLEN:
|
|
195
|
+
[Detaillierte Liste der sofort zu behebenden Schwachstellen mit Datei:Zeile]
|
|
196
|
+
|
|
197
|
+
TOP 3 PRIORITÄTSMASSNAHMEN:
|
|
198
|
+
1. [Kritischste Sicherheitsmaßnahme - DRINGEND]
|
|
199
|
+
2. [Zweite Prioritätsmaßnahme - WICHTIG]
|
|
200
|
+
3. [Dritte Prioritätsmaßnahme - EMPFOHLEN]
|
|
85
201
|
```
|
|
86
202
|
|
|
87
203
|
## HINWEISE
|
|
@@ -41,7 +41,74 @@ Test-Coverage messen:
|
|
|
41
41
|
|
|
42
42
|
**Referenz**: `rules/07-testing.md` Abschnitt "Code Coverage"
|
|
43
43
|
|
|
44
|
-
### Schritt 3
|
|
44
|
+
### Schritt 3: Unit-Tests
|
|
45
|
+
|
|
46
|
+
Unit-Testqualität analysieren:
|
|
47
|
+
- [ ] Isolierte Tests (keine externen Abhängigkeiten)
|
|
48
|
+
- [ ] Verwendung von Mocks/Stubs für Abhängigkeiten
|
|
49
|
+
- [ ] Schnelle Tests (<100ms pro Test)
|
|
50
|
+
- [ ] Ein Test = Ein Verhalten
|
|
51
|
+
- [ ] Beschreibende Benennung: `test_should_X_when_Y`
|
|
52
|
+
- [ ] AAA-Pattern (Arrange, Act, Assert)
|
|
53
|
+
|
|
54
|
+
**Referenz**: `rules/07-testing.md` Abschnitt "Unit Tests"
|
|
55
|
+
|
|
56
|
+
### Schritt 4: Integrationstests
|
|
57
|
+
|
|
58
|
+
Integrationstests überprüfen:
|
|
59
|
+
- [ ] Tests der Interaktionen zwischen Komponenten
|
|
60
|
+
- [ ] Tests der Infrastrukturschicht (DB, API, etc.)
|
|
61
|
+
- [ ] Verwendung von Test-Datenbanken (Fixtures)
|
|
62
|
+
- [ ] Bereinigung nach jedem Test (Teardown)
|
|
63
|
+
- [ ] Isolierte und unabhängige Tests
|
|
64
|
+
|
|
65
|
+
**Referenz**: `rules/07-testing.md` Abschnitt "Integration Tests"
|
|
66
|
+
|
|
67
|
+
### Schritt 5: Assertions und Testqualität
|
|
68
|
+
|
|
69
|
+
Assertion-Qualität prüfen:
|
|
70
|
+
- [ ] Explizite und spezifische Assertions
|
|
71
|
+
- [ ] Keine mehrfachen, nicht zusammenhängenden Assertions
|
|
72
|
+
- [ ] Klare Fehlermeldungen
|
|
73
|
+
- [ ] Tests für Randfälle
|
|
74
|
+
- [ ] Tests für Fehler und Ausnahmen
|
|
75
|
+
- [ ] Keine deaktivierten Tests ohne Begründung (skip/xfail)
|
|
76
|
+
|
|
77
|
+
**Referenz**: `rules/07-testing.md` Abschnitt "Assertions and Test Quality"
|
|
78
|
+
|
|
79
|
+
### Schritt 6: Fixtures und Parametrisierung
|
|
80
|
+
|
|
81
|
+
Verwendung von Pytest-Fixtures bewerten:
|
|
82
|
+
- [ ] Fixtures für gemeinsames Setup/Teardown
|
|
83
|
+
- [ ] Angemessener Scope (function, class, module, session)
|
|
84
|
+
- [ ] Parametrisierung mit `@pytest.mark.parametrize`
|
|
85
|
+
- [ ] Factories für komplexe Testobjekte
|
|
86
|
+
- [ ] Keine Duplikation in Fixtures
|
|
87
|
+
|
|
88
|
+
**Referenz**: `rules/07-testing.md` Abschnitt "Pytest Fixtures"
|
|
89
|
+
|
|
90
|
+
### Schritt 7: Performance und Ausführung
|
|
91
|
+
|
|
92
|
+
Test-Performance analysieren:
|
|
93
|
+
- [ ] Gesamtausführungszeit <30 Sekunden (Unit-Tests)
|
|
94
|
+
- [ ] Parallelisierbare Tests (pytest-xdist)
|
|
95
|
+
- [ ] Kein sleep() in Tests
|
|
96
|
+
- [ ] Pytest-Konfiguration in pyproject.toml
|
|
97
|
+
- [ ] CI/CD mit automatischer Testausführung
|
|
98
|
+
|
|
99
|
+
**Befehl**: `docker run --rm -v $(pwd):/app python:3.11 sh -c "pip install pytest && pytest /app -v --duration=10"`
|
|
100
|
+
|
|
101
|
+
**Referenz**: `rules/07-testing.md` Abschnitt "Test Performance"
|
|
102
|
+
|
|
103
|
+
### Schritt 8: Test-Driven Development (TDD)
|
|
104
|
+
|
|
105
|
+
TDD-Adoption überprüfen:
|
|
106
|
+
- [ ] Tests vor dem Code geschrieben (falls zutreffend)
|
|
107
|
+
- [ ] Red-Green-Refactor-Zyklus
|
|
108
|
+
- [ ] Tests leiten das Design
|
|
109
|
+
- [ ] Kein ungetesteter Code in der Produktion
|
|
110
|
+
|
|
111
|
+
**Referenz**: `rules/01-workflow-analysis.md` Abschnitt "TDD Workflow"
|
|
45
112
|
|
|
46
113
|
### Schritt 9: Bewertung berechnen
|
|
47
114
|
|
|
@@ -70,7 +137,45 @@ VERBESSERUNGEN:
|
|
|
70
137
|
KRITISCHE PROBLEME:
|
|
71
138
|
- [Liste kritischer Testlücken]
|
|
72
139
|
|
|
73
|
-
|
|
140
|
+
DETAILS NACH KATEGORIE:
|
|
141
|
+
|
|
142
|
+
1. COVERAGE (XX/7)
|
|
143
|
+
Status: [Coverage-Analyse]
|
|
144
|
+
Gesamt-Coverage: XX%
|
|
145
|
+
Domain: XX%
|
|
146
|
+
Application: XX%
|
|
147
|
+
Infrastructure: XX%
|
|
148
|
+
|
|
149
|
+
2. UNIT-TESTS (XX/6)
|
|
150
|
+
Status: [Unit-Test-Qualität]
|
|
151
|
+
Anzahl Tests: XX
|
|
152
|
+
Isolierte Tests: XX%
|
|
153
|
+
Durchschnittliche Zeit: XXms
|
|
154
|
+
|
|
155
|
+
3. INTEGRATIONSTESTS (XX/4)
|
|
156
|
+
Status: [Integrationstests]
|
|
157
|
+
Anzahl Tests: XX
|
|
158
|
+
Infrastruktur-Coverage: XX%
|
|
159
|
+
|
|
160
|
+
4. ASSERTIONS (XX/3)
|
|
161
|
+
Status: [Assertion-Qualität]
|
|
162
|
+
Spezifische Assertions: XX%
|
|
163
|
+
Randfälletests: XX
|
|
164
|
+
|
|
165
|
+
5. FIXTURES (XX/3)
|
|
166
|
+
Status: [Organisation und Fixtures]
|
|
167
|
+
Wiederverwendbare Fixtures: XX
|
|
168
|
+
Parametrisierte Tests: XX
|
|
169
|
+
|
|
170
|
+
6. PERFORMANCE (XX/2)
|
|
171
|
+
Status: [Test-Performance]
|
|
172
|
+
Gesamtzeit: XXs
|
|
173
|
+
Tests >1s: XX
|
|
174
|
+
|
|
175
|
+
TOP 3 PRIORITÄTSMASSNAHMEN:
|
|
176
|
+
1. [Kritischste Maßnahme zur Verbesserung der Tests]
|
|
177
|
+
2. [Zweite Prioritätsmaßnahme]
|
|
178
|
+
3. [Dritte Prioritätsmaßnahme]
|
|
74
179
|
```
|
|
75
180
|
|
|
76
181
|
## HINWEISE
|
|
@@ -47,7 +47,52 @@ safety check -r requirements.txt
|
|
|
47
47
|
pip audit
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
-
### Schritt 3
|
|
50
|
+
### Schritt 3: Auf Updates prüfen
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# Veraltete Pakete
|
|
54
|
+
pip list --outdated --format=json
|
|
55
|
+
|
|
56
|
+
# Mit pip-tools
|
|
57
|
+
pip install pip-tools
|
|
58
|
+
pip-compile --upgrade --dry-run
|
|
59
|
+
|
|
60
|
+
# Mit poetry
|
|
61
|
+
poetry show --outdated
|
|
62
|
+
|
|
63
|
+
# Mit pipenv
|
|
64
|
+
pipenv update --dry-run
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Schritt 4: Lizenz-Audit
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# pip-licenses installieren
|
|
71
|
+
pip install pip-licenses
|
|
72
|
+
|
|
73
|
+
# Lizenzen auflisten
|
|
74
|
+
pip-licenses --format=markdown
|
|
75
|
+
|
|
76
|
+
# Problematische Lizenzen filtern
|
|
77
|
+
pip-licenses --fail-on="GPL;AGPL"
|
|
78
|
+
|
|
79
|
+
# JSON-Export
|
|
80
|
+
pip-licenses --format=json --output-file=licenses.json
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Schritt 5: Transitive Abhängigkeitsanalyse
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
# Abhängigkeitsbaum
|
|
87
|
+
pip install pipdeptree
|
|
88
|
+
pipdeptree
|
|
89
|
+
|
|
90
|
+
# JSON-Format
|
|
91
|
+
pipdeptree --json
|
|
92
|
+
|
|
93
|
+
# Umgekehrte Abhängigkeiten (wer nutzt was)
|
|
94
|
+
pipdeptree --reverse --packages requests
|
|
95
|
+
```
|
|
51
96
|
|
|
52
97
|
### Schritt 6: Bericht generieren
|
|
53
98
|
|
|
@@ -60,9 +105,98 @@ pip audit
|
|
|
60
105
|
🔒 SICHERHEITSSCHWACHSTELLEN
|
|
61
106
|
──────────────────────────────────────────────────────────────
|
|
62
107
|
|
|
63
|
-
| Paket
|
|
64
|
-
|
|
65
|
-
| requests | 2.25.0
|
|
108
|
+
| Paket | Version | CVE | Schwere | Behoben in |
|
|
109
|
+
|----------|---------|------------------|----------|------------|
|
|
110
|
+
| requests | 2.25.0 | CVE-2023-32681 | HIGH | 2.31.0 |
|
|
111
|
+
| urllib3 | 1.26.5 | CVE-2023-45803 | MEDIUM | 1.26.18 |
|
|
112
|
+
| pillow | 9.0.0 | CVE-2023-44271 | CRITICAL | 10.0.1 |
|
|
113
|
+
|
|
114
|
+
⚠️ ERFORDERLICHE MASSNAHMEN:
|
|
115
|
+
1. `pip install requests>=2.31.0` (Priorität: HIGH)
|
|
116
|
+
2. `pip install urllib3>=1.26.18` (Priorität: MEDIUM)
|
|
117
|
+
3. `pip install pillow>=10.0.1` (Priorität: CRITICAL)
|
|
118
|
+
|
|
119
|
+
──────────────────────────────────────────────────────────────
|
|
120
|
+
📈 VERALTETE PAKETE
|
|
121
|
+
──────────────────────────────────────────────────────────────
|
|
122
|
+
|
|
123
|
+
### MAJOR-Updates (Mögliche Breaking Changes)
|
|
124
|
+
| Paket | Aktuell | Neueste | Changelog |
|
|
125
|
+
|----------|----------|---------|---------------|
|
|
126
|
+
| django | 3.2.23 | 5.0.1 | [Changelog](url) |
|
|
127
|
+
| pydantic | 1.10.13 | 2.5.3 | [Migration](url) |
|
|
128
|
+
|
|
129
|
+
### MINOR-Updates (Empfohlen)
|
|
130
|
+
| Paket | Aktuell | Neueste |
|
|
131
|
+
|------------|----------|----------|
|
|
132
|
+
| fastapi | 0.104.0 | 0.109.0 |
|
|
133
|
+
| sqlalchemy | 2.0.23 | 2.0.25 |
|
|
134
|
+
|
|
135
|
+
### PATCH-Updates (Sicherheit/Bugfix)
|
|
136
|
+
| Paket | Aktuell | Neueste |
|
|
137
|
+
|-------|---------|---------|
|
|
138
|
+
| httpx | 0.26.0 | 0.26.1 |
|
|
139
|
+
|
|
140
|
+
──────────────────────────────────────────────────────────────
|
|
141
|
+
📜 LIZENZEN
|
|
142
|
+
──────────────────────────────────────────────────────────────
|
|
143
|
+
|
|
144
|
+
### Zusammenfassung
|
|
145
|
+
| Typ | Anzahl | Pakete |
|
|
146
|
+
|--------------|--------|----------------------------|
|
|
147
|
+
| MIT | 45 | requests, fastapi, ... |
|
|
148
|
+
| Apache-2.0 | 12 | google-cloud-*, ... |
|
|
149
|
+
| BSD-3-Clause | 8 | numpy, pandas, ... |
|
|
150
|
+
| GPL-3.0 | 2 | ⚠️ package-x, package-y |
|
|
151
|
+
| UNKNOWN | 1 | ❓ private-package |
|
|
152
|
+
|
|
153
|
+
### ⚠️ Erkannte Copyleft-Lizenzen
|
|
154
|
+
Diese Lizenzen können rechtliche Auswirkungen haben:
|
|
155
|
+
|
|
156
|
+
| Paket | Lizenz | Auswirkung |
|
|
157
|
+
|-----------|---------|----------------------------------------|
|
|
158
|
+
| package-x | GPL-3.0 | Abgeleiteter Code muss GPL sein |
|
|
159
|
+
| package-y | AGPL-3.0| Auch für SaaS |
|
|
160
|
+
|
|
161
|
+
**Empfehlung**: Kompatibilität mit Projektlizenz prüfen.
|
|
162
|
+
|
|
163
|
+
──────────────────────────────────────────────────────────────
|
|
164
|
+
📊 STATISTIKEN
|
|
165
|
+
──────────────────────────────────────────────────────────────
|
|
166
|
+
|
|
167
|
+
| Metrik | Wert |
|
|
168
|
+
|-----------------------|------|
|
|
169
|
+
| Gesamtpakete | 87 |
|
|
170
|
+
| Direkt | 23 |
|
|
171
|
+
| Transitiv | 64 |
|
|
172
|
+
| Schwachstellen | 3 |
|
|
173
|
+
| Veraltet | 15 |
|
|
174
|
+
| Lizenzen OK | 82 |
|
|
175
|
+
| Lizenzen zu prüfen | 5 |
|
|
176
|
+
|
|
177
|
+
──────────────────────────────────────────────────────────────
|
|
178
|
+
🔧 KORREKTURBEFEHLE
|
|
179
|
+
──────────────────────────────────────────────────────────────
|
|
180
|
+
|
|
181
|
+
# Kritische Schwachstellen beheben
|
|
182
|
+
pip install --upgrade requests>=2.31.0 urllib3>=1.26.18 pillow>=10.0.1
|
|
183
|
+
|
|
184
|
+
# Sicherheits-Patches aktualisieren
|
|
185
|
+
pip install --upgrade httpx
|
|
186
|
+
|
|
187
|
+
# Aktualisierte requirements.txt generieren
|
|
188
|
+
pip freeze > requirements.txt
|
|
189
|
+
|
|
190
|
+
# Oder mit pip-tools
|
|
191
|
+
pip-compile --upgrade requirements.in
|
|
192
|
+
|
|
193
|
+
──────────────────────────────────────────────────────────────
|
|
194
|
+
🎯 PRIORITÄTEN
|
|
195
|
+
──────────────────────────────────────────────────────────────
|
|
66
196
|
|
|
67
|
-
[
|
|
197
|
+
1. [ ] KRITISCH: pillow beheben (CVE-2023-44271)
|
|
198
|
+
2. [ ] HIGH: requests beheben (CVE-2023-32681)
|
|
199
|
+
3. [ ] MEDIUM: urllib3 beheben (CVE-2023-45803)
|
|
200
|
+
4. [ ] GPL-Lizenzen prüfen (package-x, package-y)
|
|
201
|
+
5. [ ] Migration pydantic v1 → v2 planen
|
|
68
202
|
```
|
|
@@ -31,7 +31,37 @@ Identifizieren:
|
|
|
31
31
|
- Indizes und Constraints
|
|
32
32
|
- Validierungen
|
|
33
33
|
|
|
34
|
-
### Schritt 2
|
|
34
|
+
### Schritt 2: SQLAlchemy 2.0 Modell
|
|
35
|
+
|
|
36
|
+
[Vollständiges Modell mit Mapped, Relationships, Constraints erstellen]
|
|
37
|
+
|
|
38
|
+
### Schritt 3: Häufige Spaltentypen
|
|
39
|
+
|
|
40
|
+
[Referenz für SQLAlchemy-Typen: Integer, String, Text, DateTime, UUID, JSONB, etc.]
|
|
41
|
+
|
|
42
|
+
### Schritt 4: Relationen
|
|
43
|
+
|
|
44
|
+
[Beispiele: OneToMany, ManyToMany mit Verbindungstabelle]
|
|
45
|
+
|
|
46
|
+
### Schritt 5: Alembic-Migration
|
|
47
|
+
|
|
48
|
+
[Migrationsdatei mit upgrade/downgrade-Funktionen erstellen]
|
|
49
|
+
|
|
50
|
+
### Schritt 6: Befehle
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# Migration automatisch generieren
|
|
54
|
+
alembic revision --autogenerate -m "Create {model}s table"
|
|
55
|
+
|
|
56
|
+
# Migration prüfen
|
|
57
|
+
alembic upgrade --sql head
|
|
58
|
+
|
|
59
|
+
# Migration anwenden
|
|
60
|
+
alembic upgrade head
|
|
61
|
+
|
|
62
|
+
# Bei Bedarf rückgängig machen
|
|
63
|
+
alembic downgrade -1
|
|
64
|
+
```
|
|
35
65
|
|
|
36
66
|
### Zusammenfassung
|
|
37
67
|
|
|
@@ -44,10 +74,27 @@ Identifizieren:
|
|
|
44
74
|
- app/models/{model}.py
|
|
45
75
|
|
|
46
76
|
📊 Tabellenstruktur:
|
|
47
|
-
| Spalte
|
|
48
|
-
|
|
49
|
-
| id
|
|
50
|
-
| name
|
|
51
|
-
|
|
52
|
-
|
|
77
|
+
| Spalte | Typ | Constraints |
|
|
78
|
+
|---------------|----------------|--------------------------------|
|
|
79
|
+
| id | UUID | PK |
|
|
80
|
+
| name | VARCHAR(255) | NOT NULL, INDEX |
|
|
81
|
+
| slug | VARCHAR(255) | UNIQUE, INDEX |
|
|
82
|
+
| description | TEXT | NULLABLE |
|
|
83
|
+
| price | NUMERIC(10,2) | DEFAULT 0.00, CHECK >= 0 |
|
|
84
|
+
| quantity | INTEGER | DEFAULT 0 |
|
|
85
|
+
| is_active | BOOLEAN | DEFAULT true, INDEX |
|
|
86
|
+
| category_id | UUID | FK -> categories.id |
|
|
87
|
+
| created_at | DATETIME | DEFAULT now() |
|
|
88
|
+
| updated_at | DATETIME | DEFAULT now(), ON UPDATE |
|
|
89
|
+
|
|
90
|
+
🔗 Relationen:
|
|
91
|
+
- category: ManyToOne -> Category
|
|
92
|
+
- order_items: OneToMany -> OrderItem
|
|
93
|
+
|
|
94
|
+
🔧 Befehle:
|
|
95
|
+
# Migration generieren
|
|
96
|
+
alembic revision --autogenerate -m "Create {model}s table"
|
|
97
|
+
|
|
98
|
+
# Anwenden
|
|
99
|
+
alembic upgrade head
|
|
53
100
|
```
|
|
@@ -42,7 +42,13 @@ mypy app/ --html-report type-coverage-html/
|
|
|
42
42
|
mypy app/ --strict --warn-return-any
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
-
### Schritt 3
|
|
45
|
+
### Schritt 3: Coverage-Analyse-Skript
|
|
46
|
+
|
|
47
|
+
[Python-Skript zur Analyse der Typ-Coverage mittels AST]
|
|
48
|
+
|
|
49
|
+
### Schritt 4: Typ-Patterns
|
|
50
|
+
|
|
51
|
+
[Patterns anzeigen: TypeAlias, Generics, Protocols, Callable, Overload, etc.]
|
|
46
52
|
|
|
47
53
|
### Schritt 5: Bericht generieren
|
|
48
54
|
|
|
@@ -55,10 +61,63 @@ mypy app/ --strict --warn-return-any
|
|
|
55
61
|
📈 GLOBALE ZUSAMMENFASSUNG
|
|
56
62
|
──────────────────────────────────────────────────────────────
|
|
57
63
|
|
|
58
|
-
| Metrik
|
|
59
|
-
|
|
60
|
-
| Globale Coverage
|
|
61
|
-
| Gesamt-Funktionen
|
|
64
|
+
| Metrik | Wert | Schwelle | Status |
|
|
65
|
+
|---------------------|--------|----------|--------|
|
|
66
|
+
| Globale Coverage | 78.5% | 80% | ⚠️ |
|
|
67
|
+
| Gesamt-Funktionen | 245 | - | - |
|
|
68
|
+
| Vollständig typisiert | 192 | - | - |
|
|
69
|
+
| Teilweise typisiert | 38 | - | - |
|
|
70
|
+
| Nicht typisiert | 15 | - | - |
|
|
71
|
+
|
|
72
|
+
──────────────────────────────────────────────────────────────
|
|
73
|
+
📁 COVERAGE NACH MODUL
|
|
74
|
+
──────────────────────────────────────────────────────────────
|
|
75
|
+
|
|
76
|
+
| Modul | Funktionen | Typisiert | Coverage |
|
|
77
|
+
|-----------------|------------|-----------|-----------|
|
|
78
|
+
| app/api/ | 45 | 45 | 100% ✅ |
|
|
79
|
+
| app/core/ | 32 | 30 | 93.8% ✅ |
|
|
80
|
+
| app/services/ | 58 | 52 | 89.7% ✅ |
|
|
81
|
+
| app/crud/ | 40 | 35 | 87.5% ✅ |
|
|
82
|
+
| app/models/ | 28 | 20 | 71.4% ⚠️ |
|
|
83
|
+
| app/utils/ | 42 | 10 | 23.8% ❌ |
|
|
84
|
+
|
|
85
|
+
──────────────────────────────────────────────────────────────
|
|
86
|
+
❌ NICHT TYPISIERTE FUNKTIONEN
|
|
87
|
+
──────────────────────────────────────────────────────────────
|
|
88
|
+
|
|
89
|
+
### app/utils/helpers.py
|
|
90
|
+
|
|
91
|
+
| Zeile | Funktion | Fehlend |
|
|
92
|
+
|-------|--------------------|-----------------------------|
|
|
93
|
+
| 15 | `parse_date` | Rückgabetyp |
|
|
94
|
+
| 28 | `format_currency` | Parameter: amount, Rückgabe |
|
|
95
|
+
| 45 | `slugify` | Rückgabetyp |
|
|
96
|
+
| 67 | `calculate_hash` | Parameter: data |
|
|
97
|
+
|
|
98
|
+
──────────────────────────────────────────────────────────────
|
|
99
|
+
🔧 VORGESCHLAGENE KORREKTUREN
|
|
100
|
+
──────────────────────────────────────────────────────────────
|
|
101
|
+
|
|
102
|
+
### app/utils/helpers.py:15
|
|
103
|
+
|
|
104
|
+
```python
|
|
105
|
+
# Vorher
|
|
106
|
+
def parse_date(date_str):
|
|
107
|
+
...
|
|
108
|
+
|
|
109
|
+
# Nachher
|
|
110
|
+
def parse_date(date_str: str) -> datetime | None:
|
|
111
|
+
...
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
──────────────────────────────────────────────────────────────
|
|
115
|
+
🎯 PRIORITÄTEN
|
|
116
|
+
──────────────────────────────────────────────────────────────
|
|
62
117
|
|
|
63
|
-
[
|
|
118
|
+
1. [ ] app/utils/ typisieren (23.8% → 80%+)
|
|
119
|
+
2. [ ] app/models/ vervollständigen (71.4% → 90%+)
|
|
120
|
+
3. [ ] 23 MyPy-Fehler beheben
|
|
121
|
+
4. [ ] MyPy-Plugin für SQLAlchemy hinzufügen
|
|
122
|
+
5. [ ] Pre-commit Hook für MyPy konfigurieren
|
|
64
123
|
```
|