@the-bearded-bear/claude-craft 8.22.0 → 8.23.0
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/base/Angular/rules/00-project-context.md.template +1 -1
- package/Dev/i18n/base/CSharp/rules/06-tooling.md +0 -2
- package/Dev/i18n/base/CSharp/rules/11-security-csharp.md +184 -160
- package/Dev/i18n/base/Common/commands/aliases.md +3 -0
- package/Dev/i18n/base/Common/commands/audit-claude-alignment.md +201 -0
- package/Dev/i18n/base/Common/commands/init.md +1 -1
- package/Dev/i18n/base/Common/commands/search.md +2 -1
- package/Dev/i18n/base/Common/skills/dynamic-workflows/SKILL.md +1 -1
- package/Dev/i18n/base/Common/skills/ecosystem-tools/SKILL.md +2 -1
- package/Dev/i18n/base/Laravel/rules/06-tooling.md +0 -2
- package/Dev/i18n/base/PHP/checklists/new-feature.md +1 -1
- package/Dev/i18n/base/PHP/commands/check-code-quality.md +3 -3
- package/Dev/i18n/base/Vercel/checklists/pre-commit.md +1 -1
- package/Dev/i18n/base/Vercel/commands/check-security.md +12 -12
- package/Dev/i18n/base/Vercel/rules/00-project-context.md.template +1 -1
- package/Dev/i18n/base/Vercel/rules/02-architecture-vercel.md +2 -2
- package/Dev/i18n/base/Vercel/rules/03-coding-standards.md +1 -1
- package/Dev/i18n/base/Vercel/rules/06-tooling.md +12 -0
- package/Dev/i18n/base/Vercel/rules/07-testing-vercel.md +1 -1
- package/Dev/i18n/base/Vercel/rules/08-quality-tools.md +1 -1
- package/Dev/i18n/base/Vercel/rules/11-security-vercel.md +1 -1
- package/Dev/i18n/base/Vercel/templates/function-handler.template.ts +1 -1
- package/Dev/i18n/base/Vite/checklists/new-feature.md +2 -2
- package/Dev/i18n/base/Vite/checklists/pre-commit.md +2 -2
- package/Dev/i18n/base/Vite/commands/check-architecture.md +5 -5
- package/Dev/i18n/base/Vite/commands/check-library-build.md +3 -3
- package/Dev/i18n/base/Vite/commands/scaffold-project.md +2 -2
- package/Dev/i18n/base/Vite/rules/02-architecture-vite.md +5 -5
- package/Dev/i18n/base/Vite/rules/03-coding-standards.md +1 -1
- package/Dev/i18n/base/Vite/rules/06-tooling.md +2 -2
- package/Dev/i18n/base/Vite/rules/07-testing-vite.md +1 -1
- package/Dev/i18n/base/Vite/rules/11-security-vite.md +4 -4
- package/Dev/i18n/base/Vite/templates/library-entry.template.ts +2 -2
- package/Dev/i18n/base/Vite/templates/vite.config.template.ts +2 -2
- package/Dev/i18n/base/VueJS/rules/06-tooling.md +3 -2
- package/Dev/i18n/de/Angular/agents/angular-reviewer.md +3 -3
- package/Dev/i18n/de/Common/agents/devops-engineer.md +15 -1
- package/Dev/i18n/de/Common/agents/ralph-conductor.md +12 -1
- package/Dev/i18n/de/Common/agents/refactoring-specialist.md +9 -0
- package/Dev/i18n/de/Common/agents/security-auditor.md +10 -7
- package/Dev/i18n/de/Common/agents/tdd-coach.md +9 -0
- package/Dev/i18n/de/Common/agents/uiux-orchestrator.md +10 -1
- package/Dev/i18n/de/Common/commands/getting-started.md +2 -2
- package/Dev/i18n/de/Common/commands/setup-rtk.md +2 -2
- package/Dev/i18n/de/Common/rules/04-solid-principles.md +1 -1
- package/Dev/i18n/de/Common/rules/05-kiss-dry-yagni.md +5 -2
- package/Dev/i18n/de/Common/rules/10-documentation.md +1 -1
- package/Dev/i18n/de/Common/rules/11-security.md +76 -73
- package/Dev/i18n/de/Common/rules/12-context-management.md +29 -19
- package/Dev/i18n/de/Common/templates/settings.json.template +6 -6
- package/Dev/i18n/de/Flutter/agents/flutter-reviewer.md +4 -4
- package/Dev/i18n/de/Flutter/rules/06-tooling.md +30 -24
- package/Dev/i18n/de/Flutter/rules/07-testing-flutter.md +0 -0
- package/Dev/i18n/de/Flutter/rules/08-quality-tools.md +1 -1
- package/Dev/i18n/de/Flutter/rules/12-performance.md +17 -17
- package/Dev/i18n/de/Flutter/rules/13-state-management.md +0 -0
- package/Dev/i18n/de/PHP/agents/php-reviewer.md +6 -6
- package/Dev/i18n/de/PHP/commands/check-compliance.md +3 -3
- package/Dev/i18n/de/PHP/rules/03-coding-standards.md +4 -2
- package/Dev/i18n/de/PHP/rules/06-tooling.md +4 -7
- package/Dev/i18n/de/PHP/rules/08-quality-tools.md +2 -2
- package/Dev/i18n/de/Paperclip/CLAUDE.md.template +2 -2
- package/Dev/i18n/de/Paperclip/README.md +1 -1
- package/Dev/i18n/de/Paperclip/commands/setup-company.md +1 -1
- package/Dev/i18n/de/Paperclip/rules/06-tooling.md +3 -3
- package/Dev/i18n/de/Paperclip/rules/11-security-paperclip.md +9 -0
- package/Dev/i18n/de/Paperclip/skills/coding-standards-ts/SKILL.md +1 -1
- package/Dev/i18n/de/Python/commands/generate-model.md +3 -1
- package/Dev/i18n/de/Python/rules/06-tooling.md +1 -1
- package/Dev/i18n/de/Python/rules/08-quality-tools.md +1 -1
- package/Dev/i18n/de/Python/rules/11-security-python.md +2 -2
- package/Dev/i18n/de/React/agents/react-reviewer.md +9 -5
- package/Dev/i18n/de/React/rules/06-tooling.md +0 -2
- package/Dev/i18n/de/React/rules/11-security-react.md +9 -0
- package/Dev/i18n/de/ReactNative/agents/reactnative-reviewer.md +4 -4
- package/Dev/i18n/de/ReactNative/rules/06-tooling.md +19 -3
- package/Dev/i18n/de/Symfony/agents/symfony-reviewer.md +5 -5
- package/Dev/i18n/de/Symfony/checklists/README.md +1 -1
- package/Dev/i18n/de/Symfony/checklists/new-feature.md +2 -2
- package/Dev/i18n/de/Symfony/checklists/pre-commit.md +4 -4
- package/Dev/i18n/de/Symfony/checklists/refactoring.md +1 -1
- package/Dev/i18n/de/Symfony/commands/check-architecture.md +4 -4
- package/Dev/i18n/de/Symfony/commands/check-code-quality.md +15 -15
- package/Dev/i18n/de/Symfony/commands/check-security.md +32 -32
- package/Dev/i18n/de/Symfony/commands/check-testing.md +16 -16
- package/Dev/i18n/de/Symfony/rules/03-coding-standards.md +4 -4
- package/Dev/i18n/de/Symfony/rules/06-docker-hadolint.md +0 -4
- package/Dev/i18n/de/Symfony/rules/08-quality-tools.md +1 -1
- package/Dev/i18n/de/Symfony/rules/16-i18n.md +2 -0
- package/Dev/i18n/de/Symfony/rules/17-async.md +1 -0
- package/Dev/i18n/de/Symfony/rules/19-aggregates.md +1 -0
- package/Dev/i18n/de/Symfony/rules/20-domain-events.md +1 -0
- package/Dev/i18n/de/Team/commands/delivery.md +1 -1
- package/Dev/i18n/de/Vercel/CLAUDE.md.template +2 -2
- package/Dev/i18n/de/Vercel/agents/vercel-reviewer.md +8 -8
- package/Dev/i18n/de/Vite/CLAUDE.md.template +2 -2
- package/Dev/i18n/de/Vite/agents/vite-reviewer.md +19 -17
- package/Dev/i18n/de/Vite/commands/check-compliance.md +2 -2
- package/Dev/i18n/en/Angular/agents/angular-reviewer.md +3 -3
- package/Dev/i18n/en/Common/agents/devops-engineer.md +15 -1
- package/Dev/i18n/en/Common/agents/ralph-conductor.md +11 -0
- package/Dev/i18n/en/Common/agents/refactoring-specialist.md +9 -0
- package/Dev/i18n/en/Common/agents/security-auditor.md +10 -7
- package/Dev/i18n/en/Common/agents/tdd-coach.md +9 -0
- package/Dev/i18n/en/Common/agents/uiux-orchestrator.md +10 -1
- package/Dev/i18n/en/Common/commands/getting-started.md +2 -2
- package/Dev/i18n/en/Common/commands/setup-rtk.md +2 -2
- package/Dev/i18n/en/Common/rules/04-solid-principles.md +1 -1
- package/Dev/i18n/en/Common/rules/05-kiss-dry-yagni.md +5 -2
- package/Dev/i18n/en/Common/rules/10-documentation.md +1 -1
- package/Dev/i18n/en/Common/rules/11-security.md +76 -73
- package/Dev/i18n/en/Common/rules/12-context-management.md +31 -21
- package/Dev/i18n/en/Common/templates/settings.json.template +6 -6
- package/Dev/i18n/en/Flutter/agents/flutter-reviewer.md +4 -4
- package/Dev/i18n/en/Flutter/rules/06-tooling.md +29 -23
- package/Dev/i18n/en/Flutter/rules/07-testing-flutter.md +0 -0
- package/Dev/i18n/en/Flutter/rules/08-quality-tools.md +1 -1
- package/Dev/i18n/en/Flutter/rules/12-performance.md +17 -17
- package/Dev/i18n/en/Flutter/rules/13-state-management.md +0 -0
- package/Dev/i18n/en/PHP/CLAUDE.md.template +1 -1
- package/Dev/i18n/en/PHP/agents/php-reviewer.md +6 -6
- package/Dev/i18n/en/PHP/commands/check-compliance.md +1 -1
- package/Dev/i18n/en/PHP/rules/03-coding-standards.md +4 -2
- package/Dev/i18n/en/PHP/rules/06-tooling.md +4 -7
- package/Dev/i18n/en/PHP/rules/08-quality-tools.md +2 -2
- package/Dev/i18n/en/Paperclip/CLAUDE.md.template +2 -2
- package/Dev/i18n/en/Paperclip/README.md +1 -1
- package/Dev/i18n/en/Paperclip/commands/setup-company.md +1 -1
- package/Dev/i18n/en/Paperclip/rules/06-tooling.md +3 -3
- package/Dev/i18n/en/Paperclip/rules/11-security-paperclip.md +9 -0
- package/Dev/i18n/en/Paperclip/skills/coding-standards-ts/SKILL.md +1 -1
- package/Dev/i18n/en/Python/commands/generate-model.md +3 -1
- package/Dev/i18n/en/Python/rules/06-tooling.md +1 -1
- package/Dev/i18n/en/Python/rules/08-quality-tools.md +1 -1
- package/Dev/i18n/en/Python/rules/11-security-python.md +11 -11
- package/Dev/i18n/en/React/agents/react-reviewer.md +9 -5
- package/Dev/i18n/en/React/rules/06-tooling.md +0 -2
- package/Dev/i18n/en/React/rules/11-security-react.md +9 -0
- package/Dev/i18n/en/ReactNative/agents/reactnative-reviewer.md +4 -4
- package/Dev/i18n/en/ReactNative/rules/02-architecture.md +1 -1
- package/Dev/i18n/en/ReactNative/rules/06-tooling.md +19 -3
- package/Dev/i18n/en/Symfony/agents/symfony-reviewer.md +5 -5
- package/Dev/i18n/en/Symfony/checklists/README.md +1 -1
- package/Dev/i18n/en/Symfony/checklists/new-feature.md +2 -2
- package/Dev/i18n/en/Symfony/checklists/pre-commit.md +4 -4
- package/Dev/i18n/en/Symfony/checklists/refactoring.md +1 -1
- package/Dev/i18n/en/Symfony/commands/check-architecture.md +4 -4
- package/Dev/i18n/en/Symfony/commands/check-code-quality.md +15 -15
- package/Dev/i18n/en/Symfony/commands/check-security.md +32 -32
- package/Dev/i18n/en/Symfony/commands/check-testing.md +16 -16
- package/Dev/i18n/en/Symfony/rules/03-coding-standards.md +4 -4
- package/Dev/i18n/en/Symfony/rules/06-docker-hadolint.md +0 -4
- package/Dev/i18n/en/Symfony/rules/08-quality-tools.md +1 -1
- package/Dev/i18n/en/Symfony/rules/16-i18n.md +2 -0
- package/Dev/i18n/en/Symfony/rules/17-async.md +1 -0
- package/Dev/i18n/en/Symfony/rules/19-aggregates.md +1 -0
- package/Dev/i18n/en/Symfony/rules/20-domain-events.md +1 -0
- package/Dev/i18n/en/Team/commands/delivery.md +1 -1
- package/Dev/i18n/en/Vercel/CLAUDE.md.template +2 -2
- package/Dev/i18n/en/Vercel/agents/vercel-reviewer.md +8 -8
- package/Dev/i18n/en/Vite/CLAUDE.md.template +2 -2
- package/Dev/i18n/en/Vite/agents/vite-reviewer.md +19 -17
- package/Dev/i18n/en/Vite/commands/check-compliance.md +2 -2
- package/Dev/i18n/en/Workflow/commands/review.md +0 -0
- package/Dev/i18n/en/Workflow/commands/start.md +0 -0
- package/Dev/i18n/es/Angular/agents/angular-reviewer.md +3 -3
- package/Dev/i18n/es/Common/agents/devops-engineer.md +15 -1
- package/Dev/i18n/es/Common/agents/ralph-conductor.md +11 -0
- package/Dev/i18n/es/Common/agents/refactoring-specialist.md +9 -0
- package/Dev/i18n/es/Common/agents/security-auditor.md +10 -7
- package/Dev/i18n/es/Common/agents/tdd-coach.md +9 -0
- package/Dev/i18n/es/Common/agents/uiux-orchestrator.md +10 -1
- package/Dev/i18n/es/Common/commands/getting-started.md +2 -2
- package/Dev/i18n/es/Common/commands/setup-rtk.md +2 -2
- package/Dev/i18n/es/Common/rules/04-solid-principles.md +1 -1
- package/Dev/i18n/es/Common/rules/05-kiss-dry-yagni.md +5 -2
- package/Dev/i18n/es/Common/rules/10-documentation.md +1 -1
- package/Dev/i18n/es/Common/rules/11-security.md +76 -73
- package/Dev/i18n/es/Common/rules/12-context-management.md +29 -19
- package/Dev/i18n/es/Common/templates/settings.json.template +6 -6
- package/Dev/i18n/es/Flutter/agents/flutter-reviewer.md +4 -4
- package/Dev/i18n/es/Flutter/rules/06-tooling.md +31 -25
- package/Dev/i18n/es/Flutter/rules/07-testing-flutter.md +0 -0
- package/Dev/i18n/es/Flutter/rules/08-quality-tools.md +1 -1
- package/Dev/i18n/es/Flutter/rules/12-performance.md +17 -17
- package/Dev/i18n/es/Flutter/rules/13-state-management.md +0 -0
- package/Dev/i18n/es/PHP/agents/php-reviewer.md +6 -6
- package/Dev/i18n/es/PHP/commands/check-compliance.md +3 -3
- package/Dev/i18n/es/PHP/rules/03-coding-standards.md +4 -2
- package/Dev/i18n/es/PHP/rules/06-tooling.md +4 -7
- package/Dev/i18n/es/PHP/rules/08-quality-tools.md +2 -2
- package/Dev/i18n/es/Paperclip/CLAUDE.md.template +2 -2
- package/Dev/i18n/es/Paperclip/README.md +1 -1
- package/Dev/i18n/es/Paperclip/commands/setup-company.md +1 -1
- package/Dev/i18n/es/Paperclip/rules/06-tooling.md +3 -3
- package/Dev/i18n/es/Paperclip/rules/11-security-paperclip.md +9 -0
- package/Dev/i18n/es/Paperclip/skills/coding-standards-ts/SKILL.md +1 -1
- package/Dev/i18n/es/Python/commands/generate-model.md +3 -1
- package/Dev/i18n/es/Python/rules/06-tooling.md +1 -1
- package/Dev/i18n/es/Python/rules/08-quality-tools.md +1 -1
- package/Dev/i18n/es/Python/rules/11-security-python.md +2 -2
- package/Dev/i18n/es/React/agents/react-reviewer.md +9 -5
- package/Dev/i18n/es/React/rules/06-tooling.md +0 -2
- package/Dev/i18n/es/React/rules/11-security-react.md +9 -0
- package/Dev/i18n/es/ReactNative/agents/reactnative-reviewer.md +4 -4
- package/Dev/i18n/es/ReactNative/rules/06-tooling.md +19 -3
- package/Dev/i18n/es/Symfony/agents/symfony-reviewer.md +5 -5
- package/Dev/i18n/es/Symfony/checklists/README.md +1 -1
- package/Dev/i18n/es/Symfony/checklists/new-feature.md +2 -2
- package/Dev/i18n/es/Symfony/checklists/pre-commit.md +4 -4
- package/Dev/i18n/es/Symfony/checklists/refactoring.md +1 -1
- package/Dev/i18n/es/Symfony/commands/check-architecture.md +4 -4
- package/Dev/i18n/es/Symfony/commands/check-code-quality.md +15 -15
- package/Dev/i18n/es/Symfony/commands/check-security.md +32 -32
- package/Dev/i18n/es/Symfony/commands/check-testing.md +16 -16
- package/Dev/i18n/es/Symfony/rules/03-coding-standards.md +4 -4
- package/Dev/i18n/es/Symfony/rules/06-docker-hadolint.md +0 -4
- package/Dev/i18n/es/Symfony/rules/08-quality-tools.md +1 -1
- package/Dev/i18n/es/Symfony/rules/16-i18n.md +2 -0
- package/Dev/i18n/es/Symfony/rules/17-async.md +1 -0
- package/Dev/i18n/es/Symfony/rules/19-aggregates.md +1 -0
- package/Dev/i18n/es/Symfony/rules/20-domain-events.md +1 -0
- package/Dev/i18n/es/Team/commands/delivery.md +1 -1
- package/Dev/i18n/es/Vercel/CLAUDE.md.template +2 -2
- package/Dev/i18n/es/Vercel/agents/vercel-reviewer.md +7 -7
- package/Dev/i18n/es/Vite/CLAUDE.md.template +2 -2
- package/Dev/i18n/es/Vite/agents/vite-reviewer.md +19 -17
- package/Dev/i18n/es/Vite/commands/check-compliance.md +2 -2
- package/Dev/i18n/fr/Angular/agents/angular-reviewer.md +3 -3
- package/Dev/i18n/fr/Common/agents/devops-engineer.md +15 -1
- package/Dev/i18n/fr/Common/agents/ralph-conductor.md +12 -1
- package/Dev/i18n/fr/Common/agents/refactoring-specialist.md +9 -0
- package/Dev/i18n/fr/Common/agents/security-auditor.md +10 -7
- package/Dev/i18n/fr/Common/agents/tdd-coach.md +9 -0
- package/Dev/i18n/fr/Common/agents/uiux-orchestrator.md +10 -1
- package/Dev/i18n/fr/Common/commands/getting-started.md +2 -2
- package/Dev/i18n/fr/Common/commands/setup-rtk.md +2 -2
- package/Dev/i18n/fr/Common/rules/04-solid-principles.md +1 -1
- package/Dev/i18n/fr/Common/rules/05-kiss-dry-yagni.md +5 -2
- package/Dev/i18n/fr/Common/rules/10-documentation.md +1 -1
- package/Dev/i18n/fr/Common/rules/11-security.md +76 -73
- package/Dev/i18n/fr/Common/rules/12-context-management.md +30 -20
- package/Dev/i18n/fr/Common/templates/settings.json.template +6 -6
- package/Dev/i18n/fr/Flutter/agents/flutter-reviewer.md +4 -4
- package/Dev/i18n/fr/Flutter/rules/06-tooling.md +10 -4
- package/Dev/i18n/fr/Flutter/rules/08-quality-tools.md +1 -1
- package/Dev/i18n/fr/PHP/agents/php-reviewer.md +6 -6
- package/Dev/i18n/fr/PHP/commands/check-compliance.md +3 -3
- package/Dev/i18n/fr/PHP/rules/03-coding-standards.md +4 -2
- package/Dev/i18n/fr/PHP/rules/06-tooling.md +4 -7
- package/Dev/i18n/fr/PHP/rules/08-quality-tools.md +2 -2
- package/Dev/i18n/fr/Paperclip/CLAUDE.md.template +2 -2
- package/Dev/i18n/fr/Paperclip/README.md +1 -1
- package/Dev/i18n/fr/Paperclip/commands/setup-company.md +1 -1
- package/Dev/i18n/fr/Paperclip/rules/06-tooling.md +3 -3
- package/Dev/i18n/fr/Paperclip/rules/11-security-paperclip.md +9 -0
- package/Dev/i18n/fr/Paperclip/skills/coding-standards-ts/SKILL.md +1 -1
- package/Dev/i18n/fr/Python/commands/generate-model.md +3 -1
- package/Dev/i18n/fr/Python/rules/06-tooling.md +1 -3
- package/Dev/i18n/fr/Python/rules/08-quality-tools.md +1 -1
- package/Dev/i18n/fr/Python/rules/11-security-python.md +2 -2
- package/Dev/i18n/fr/React/agents/react-reviewer.md +9 -5
- package/Dev/i18n/fr/React/rules/06-tooling.md +0 -2
- package/Dev/i18n/fr/React/rules/11-security-react.md +9 -0
- package/Dev/i18n/fr/ReactNative/agents/reactnative-reviewer.md +4 -4
- package/Dev/i18n/fr/ReactNative/rules/06-tooling.md +19 -3
- package/Dev/i18n/fr/Symfony/agents/symfony-reviewer.md +5 -5
- package/Dev/i18n/fr/Symfony/checklists/README.md +1 -1
- package/Dev/i18n/fr/Symfony/checklists/new-feature.md +2 -2
- package/Dev/i18n/fr/Symfony/checklists/pre-commit.md +4 -4
- package/Dev/i18n/fr/Symfony/checklists/refactoring.md +1 -1
- package/Dev/i18n/fr/Symfony/commands/check-architecture.md +4 -4
- package/Dev/i18n/fr/Symfony/commands/check-code-quality.md +15 -15
- package/Dev/i18n/fr/Symfony/commands/check-security.md +32 -32
- package/Dev/i18n/fr/Symfony/commands/check-testing.md +16 -16
- package/Dev/i18n/fr/Symfony/rules/03-coding-standards.md +4 -4
- package/Dev/i18n/fr/Symfony/rules/06-docker-hadolint.md +0 -4
- package/Dev/i18n/fr/Symfony/rules/08-quality-tools.md +1 -1
- package/Dev/i18n/fr/Symfony/rules/16-i18n.md +2 -0
- package/Dev/i18n/fr/Symfony/rules/17-async.md +1 -0
- package/Dev/i18n/fr/Symfony/rules/19-aggregates.md +1 -0
- package/Dev/i18n/fr/Symfony/rules/20-domain-events.md +1 -0
- package/Dev/i18n/fr/Team/commands/delivery.md +1 -1
- package/Dev/i18n/fr/Vercel/CLAUDE.md.template +2 -2
- package/Dev/i18n/fr/Vercel/agents/vercel-reviewer.md +8 -8
- package/Dev/i18n/fr/Vite/CLAUDE.md.template +2 -2
- package/Dev/i18n/fr/Vite/agents/vite-reviewer.md +19 -17
- package/Dev/i18n/fr/Vite/commands/check-compliance.md +2 -2
- package/Dev/i18n/pt/Angular/agents/angular-reviewer.md +3 -3
- package/Dev/i18n/pt/Common/agents/devops-engineer.md +15 -1
- package/Dev/i18n/pt/Common/agents/ralph-conductor.md +11 -0
- package/Dev/i18n/pt/Common/agents/refactoring-specialist.md +9 -0
- package/Dev/i18n/pt/Common/agents/security-auditor.md +10 -7
- package/Dev/i18n/pt/Common/agents/tdd-coach.md +9 -0
- package/Dev/i18n/pt/Common/agents/uiux-orchestrator.md +10 -1
- package/Dev/i18n/pt/Common/commands/getting-started.md +2 -2
- package/Dev/i18n/pt/Common/commands/setup-rtk.md +2 -2
- package/Dev/i18n/pt/Common/rules/04-solid-principles.md +1 -1
- package/Dev/i18n/pt/Common/rules/05-kiss-dry-yagni.md +5 -2
- package/Dev/i18n/pt/Common/rules/10-documentation.md +1 -1
- package/Dev/i18n/pt/Common/rules/11-security.md +76 -73
- package/Dev/i18n/pt/Common/rules/12-context-management.md +29 -19
- package/Dev/i18n/pt/Common/templates/settings.json.template +6 -6
- package/Dev/i18n/pt/Flutter/agents/flutter-reviewer.md +4 -4
- package/Dev/i18n/pt/Flutter/rules/06-tooling.md +12 -6
- package/Dev/i18n/pt/Flutter/rules/08-quality-tools.md +1 -1
- package/Dev/i18n/pt/PHP/agents/php-reviewer.md +6 -6
- package/Dev/i18n/pt/PHP/commands/check-compliance.md +3 -3
- package/Dev/i18n/pt/PHP/rules/03-coding-standards.md +4 -2
- package/Dev/i18n/pt/PHP/rules/06-tooling.md +4 -7
- package/Dev/i18n/pt/PHP/rules/08-quality-tools.md +2 -2
- package/Dev/i18n/pt/Paperclip/CLAUDE.md.template +2 -2
- package/Dev/i18n/pt/Paperclip/README.md +1 -1
- package/Dev/i18n/pt/Paperclip/commands/setup-company.md +1 -1
- package/Dev/i18n/pt/Paperclip/rules/06-tooling.md +3 -3
- package/Dev/i18n/pt/Paperclip/rules/11-security-paperclip.md +9 -0
- package/Dev/i18n/pt/Paperclip/skills/coding-standards-ts/SKILL.md +1 -1
- package/Dev/i18n/pt/Python/commands/generate-model.md +3 -1
- package/Dev/i18n/pt/Python/rules/06-tooling.md +1 -1
- package/Dev/i18n/pt/Python/rules/08-quality-tools.md +1 -1
- package/Dev/i18n/pt/Python/rules/11-security-python.md +2 -2
- package/Dev/i18n/pt/React/agents/react-reviewer.md +9 -5
- package/Dev/i18n/pt/React/rules/06-tooling.md +0 -2
- package/Dev/i18n/pt/React/rules/11-security-react.md +9 -0
- package/Dev/i18n/pt/ReactNative/agents/reactnative-reviewer.md +4 -4
- package/Dev/i18n/pt/ReactNative/rules/06-tooling.md +19 -3
- package/Dev/i18n/pt/Symfony/agents/symfony-reviewer.md +5 -5
- package/Dev/i18n/pt/Symfony/checklists/README.md +1 -1
- package/Dev/i18n/pt/Symfony/checklists/new-feature.md +2 -2
- package/Dev/i18n/pt/Symfony/checklists/pre-commit.md +4 -4
- package/Dev/i18n/pt/Symfony/checklists/refactoring.md +1 -1
- package/Dev/i18n/pt/Symfony/commands/check-architecture.md +4 -4
- package/Dev/i18n/pt/Symfony/commands/check-code-quality.md +15 -15
- package/Dev/i18n/pt/Symfony/commands/check-security.md +32 -32
- package/Dev/i18n/pt/Symfony/commands/check-testing.md +16 -16
- package/Dev/i18n/pt/Symfony/rules/03-coding-standards.md +4 -4
- package/Dev/i18n/pt/Symfony/rules/06-docker-hadolint.md +0 -4
- package/Dev/i18n/pt/Symfony/rules/08-quality-tools.md +1 -1
- package/Dev/i18n/pt/Symfony/rules/16-i18n.md +2 -0
- package/Dev/i18n/pt/Symfony/rules/17-async.md +1 -0
- package/Dev/i18n/pt/Symfony/rules/19-aggregates.md +1 -0
- package/Dev/i18n/pt/Symfony/rules/20-domain-events.md +1 -0
- package/Dev/i18n/pt/Team/commands/delivery.md +1 -1
- package/Dev/i18n/pt/Vercel/CLAUDE.md.template +2 -2
- package/Dev/i18n/pt/Vercel/agents/vercel-reviewer.md +8 -8
- package/Dev/i18n/pt/Vite/CLAUDE.md.template +2 -2
- package/Dev/i18n/pt/Vite/agents/vite-reviewer.md +19 -17
- package/Dev/i18n/pt/Vite/commands/check-compliance.md +2 -2
- package/Dev/scripts/install-paperclip-rules.sh +5 -5
- package/Dev/scripts/install-vite-rules.sh +4 -4
- package/Infra/i18n/de/Ansible/agents/ansible-architect.md +2 -0
- package/Infra/i18n/de/Docker/commands/docker-architecture.md +0 -2
- package/Infra/i18n/de/Docker/commands/docker-compose-setup.md +0 -2
- package/Infra/i18n/de/FrankenPHP/agents/frankenphp-architect.md +4 -1
- package/Infra/i18n/de/FrankenPHP/agents/frankenphp-deployment.md +2 -2
- package/Infra/i18n/de/FrankenPHP/agents/frankenphp-security.md +1 -1
- package/Infra/i18n/de/FrankenPHP/commands/deploy-setup.md +1 -1
- package/Infra/i18n/de/Hcloud/agents/hcloud-architect.md +14 -4
- package/Infra/i18n/de/Hcloud/agents/hcloud-cost.md +1 -1
- package/Infra/i18n/de/Hcloud/agents/hcloud-debug.md +1 -1
- package/Infra/i18n/de/Hcloud/agents/hcloud-deployment.md +2 -2
- package/Infra/i18n/de/Hcloud/agents/hcloud-security.md +1 -1
- package/Infra/i18n/de/Hcloud/commands/architecture.md +3 -3
- package/Infra/i18n/de/Hcloud/commands/debug.md +1 -1
- package/Infra/i18n/de/Kubernetes/agents/kubernetes-architect.md +3 -3
- package/Infra/i18n/de/Kubernetes/commands/architecture.md +1 -1
- package/Infra/i18n/de/OpenTofu/agents/opentofu-architect.md +1 -1
- package/Infra/i18n/de/OpenTofu/agents/opentofu-deployment.md +2 -2
- package/Infra/i18n/de/PgBouncer/agents/pgbouncer-architect.md +11 -2
- package/Infra/i18n/de/PgBouncer/agents/pgbouncer-debug.md +1 -0
- package/Infra/i18n/de/PgBouncer/agents/pgbouncer-deployment.md +38 -30
- package/Infra/i18n/de/PgBouncer/commands/deploy-setup.md +1 -1
- package/Infra/i18n/en/Ansible/agents/ansible-architect.md +2 -0
- package/Infra/i18n/en/Docker/commands/docker-architecture.md +0 -2
- package/Infra/i18n/en/Docker/commands/docker-compose-setup.md +0 -2
- package/Infra/i18n/en/FrankenPHP/agents/frankenphp-architect.md +4 -1
- package/Infra/i18n/en/FrankenPHP/agents/frankenphp-deployment.md +2 -2
- package/Infra/i18n/en/FrankenPHP/agents/frankenphp-security.md +1 -1
- package/Infra/i18n/en/FrankenPHP/commands/deploy-setup.md +1 -1
- package/Infra/i18n/en/Hcloud/agents/hcloud-architect.md +14 -4
- package/Infra/i18n/en/Hcloud/agents/hcloud-cost.md +1 -1
- package/Infra/i18n/en/Hcloud/agents/hcloud-debug.md +1 -1
- package/Infra/i18n/en/Hcloud/agents/hcloud-deployment.md +2 -2
- package/Infra/i18n/en/Hcloud/agents/hcloud-security.md +1 -1
- package/Infra/i18n/en/Hcloud/commands/architecture.md +3 -3
- package/Infra/i18n/en/Hcloud/commands/debug.md +1 -1
- package/Infra/i18n/en/Kubernetes/agents/kubernetes-architect.md +3 -3
- package/Infra/i18n/en/Kubernetes/commands/architecture.md +1 -1
- package/Infra/i18n/en/OpenTofu/agents/opentofu-architect.md +1 -1
- package/Infra/i18n/en/OpenTofu/agents/opentofu-deployment.md +2 -2
- package/Infra/i18n/en/PgBouncer/agents/pgbouncer-architect.md +11 -2
- package/Infra/i18n/en/PgBouncer/agents/pgbouncer-debug.md +1 -0
- package/Infra/i18n/en/PgBouncer/agents/pgbouncer-deployment.md +38 -30
- package/Infra/i18n/en/PgBouncer/commands/deploy-setup.md +1 -1
- package/Infra/i18n/es/Ansible/agents/ansible-architect.md +2 -0
- package/Infra/i18n/es/Docker/commands/docker-architecture.md +0 -2
- package/Infra/i18n/es/Docker/commands/docker-compose-setup.md +0 -2
- package/Infra/i18n/es/FrankenPHP/agents/frankenphp-architect.md +4 -1
- package/Infra/i18n/es/FrankenPHP/agents/frankenphp-deployment.md +2 -2
- package/Infra/i18n/es/FrankenPHP/agents/frankenphp-security.md +1 -1
- package/Infra/i18n/es/FrankenPHP/commands/deploy-setup.md +1 -1
- package/Infra/i18n/es/Hcloud/agents/hcloud-architect.md +14 -4
- package/Infra/i18n/es/Hcloud/agents/hcloud-cost.md +1 -1
- package/Infra/i18n/es/Hcloud/agents/hcloud-debug.md +1 -1
- package/Infra/i18n/es/Hcloud/agents/hcloud-deployment.md +2 -2
- package/Infra/i18n/es/Hcloud/agents/hcloud-security.md +1 -1
- package/Infra/i18n/es/Hcloud/commands/architecture.md +3 -3
- package/Infra/i18n/es/Hcloud/commands/debug.md +1 -1
- package/Infra/i18n/es/Kubernetes/agents/kubernetes-architect.md +3 -3
- package/Infra/i18n/es/Kubernetes/commands/architecture.md +1 -1
- package/Infra/i18n/es/OpenTofu/agents/opentofu-architect.md +1 -1
- package/Infra/i18n/es/OpenTofu/agents/opentofu-deployment.md +2 -2
- package/Infra/i18n/es/PgBouncer/agents/pgbouncer-architect.md +11 -2
- package/Infra/i18n/es/PgBouncer/agents/pgbouncer-debug.md +1 -0
- package/Infra/i18n/es/PgBouncer/agents/pgbouncer-deployment.md +38 -30
- package/Infra/i18n/es/PgBouncer/commands/deploy-setup.md +1 -1
- package/Infra/i18n/fr/Ansible/agents/ansible-architect.md +2 -0
- package/Infra/i18n/fr/Docker/commands/docker-architecture.md +0 -2
- package/Infra/i18n/fr/Docker/commands/docker-compose-setup.md +0 -2
- package/Infra/i18n/fr/FrankenPHP/agents/frankenphp-architect.md +4 -1
- package/Infra/i18n/fr/FrankenPHP/agents/frankenphp-deployment.md +2 -2
- package/Infra/i18n/fr/FrankenPHP/agents/frankenphp-security.md +1 -1
- package/Infra/i18n/fr/FrankenPHP/commands/deploy-setup.md +1 -1
- package/Infra/i18n/fr/Hcloud/agents/hcloud-architect.md +14 -4
- package/Infra/i18n/fr/Hcloud/agents/hcloud-cost.md +1 -1
- package/Infra/i18n/fr/Hcloud/agents/hcloud-debug.md +1 -1
- package/Infra/i18n/fr/Hcloud/agents/hcloud-deployment.md +2 -2
- package/Infra/i18n/fr/Hcloud/agents/hcloud-security.md +1 -1
- package/Infra/i18n/fr/Hcloud/commands/architecture.md +3 -3
- package/Infra/i18n/fr/Hcloud/commands/debug.md +1 -1
- package/Infra/i18n/fr/Kubernetes/agents/kubernetes-architect.md +3 -3
- package/Infra/i18n/fr/Kubernetes/commands/architecture.md +1 -1
- package/Infra/i18n/fr/OpenTofu/agents/opentofu-architect.md +1 -1
- package/Infra/i18n/fr/OpenTofu/agents/opentofu-deployment.md +2 -2
- package/Infra/i18n/fr/PgBouncer/agents/pgbouncer-architect.md +11 -2
- package/Infra/i18n/fr/PgBouncer/agents/pgbouncer-debug.md +1 -0
- package/Infra/i18n/fr/PgBouncer/agents/pgbouncer-deployment.md +38 -30
- package/Infra/i18n/fr/PgBouncer/commands/deploy-setup.md +1 -1
- package/Infra/i18n/pt/Ansible/agents/ansible-architect.md +2 -0
- package/Infra/i18n/pt/Docker/commands/docker-architecture.md +0 -2
- package/Infra/i18n/pt/Docker/commands/docker-compose-setup.md +0 -2
- package/Infra/i18n/pt/FrankenPHP/agents/frankenphp-architect.md +4 -1
- package/Infra/i18n/pt/FrankenPHP/agents/frankenphp-deployment.md +2 -2
- package/Infra/i18n/pt/FrankenPHP/agents/frankenphp-security.md +1 -1
- package/Infra/i18n/pt/FrankenPHP/commands/deploy-setup.md +1 -1
- package/Infra/i18n/pt/Hcloud/agents/hcloud-architect.md +14 -4
- package/Infra/i18n/pt/Hcloud/agents/hcloud-cost.md +1 -1
- package/Infra/i18n/pt/Hcloud/agents/hcloud-debug.md +1 -1
- package/Infra/i18n/pt/Hcloud/agents/hcloud-deployment.md +2 -2
- package/Infra/i18n/pt/Hcloud/agents/hcloud-security.md +1 -1
- package/Infra/i18n/pt/Hcloud/commands/architecture.md +3 -3
- package/Infra/i18n/pt/Hcloud/commands/debug.md +1 -1
- package/Infra/i18n/pt/Kubernetes/agents/kubernetes-architect.md +3 -3
- package/Infra/i18n/pt/Kubernetes/commands/architecture.md +1 -1
- package/Infra/i18n/pt/OpenTofu/agents/opentofu-architect.md +1 -1
- package/Infra/i18n/pt/OpenTofu/agents/opentofu-deployment.md +2 -2
- package/Infra/i18n/pt/PgBouncer/agents/pgbouncer-architect.md +11 -2
- package/Infra/i18n/pt/PgBouncer/agents/pgbouncer-debug.md +1 -0
- package/Infra/i18n/pt/PgBouncer/agents/pgbouncer-deployment.md +38 -30
- package/Infra/i18n/pt/PgBouncer/commands/deploy-setup.md +1 -1
- package/README.md +30 -22
- package/Tools/Ralph/.ralph/hooks/pre-tool-context.sh +2 -2
- package/Tools/StatusLine/README.md +1 -1
- package/bundles/cursor/.cursorrules +32 -32
- package/bundles/windsurf/.windsurfrules +32 -32
- package/cli/lib/doctor.js +15 -15
- package/cli/lib/tech-registry.js +10 -10
- package/package.json +2 -1
|
@@ -82,8 +82,6 @@ CMD ["flutter", "test"]
|
|
|
82
82
|
### docker-compose.yml
|
|
83
83
|
|
|
84
84
|
```yaml
|
|
85
|
-
version: '3.8'
|
|
86
|
-
|
|
87
85
|
services:
|
|
88
86
|
flutter:
|
|
89
87
|
build:
|
|
@@ -194,7 +192,7 @@ docker-shell: ## Interactive shell in Docker
|
|
|
194
192
|
docker run --rm -it -v $(PWD):/app my-flutter-app /bin/bash
|
|
195
193
|
|
|
196
194
|
ci: analyze format-check test ## Complete CI pipeline
|
|
197
|
-
@echo "
|
|
195
|
+
@echo "✅ CI passed!"
|
|
198
196
|
```
|
|
199
197
|
|
|
200
198
|
---
|
|
@@ -260,21 +258,21 @@ endif
|
|
|
260
258
|
#!/bin/bash
|
|
261
259
|
set -e
|
|
262
260
|
|
|
263
|
-
echo "
|
|
261
|
+
echo "🚀 Flutter project setup..."
|
|
264
262
|
|
|
265
263
|
# Check Flutter
|
|
266
264
|
if ! command -v flutter &> /dev/null; then
|
|
267
|
-
echo "
|
|
265
|
+
echo "❌ Flutter is not installed"
|
|
268
266
|
exit 1
|
|
269
267
|
fi
|
|
270
268
|
|
|
271
|
-
echo "
|
|
269
|
+
echo "📦 Installing dependencies..."
|
|
272
270
|
flutter pub get
|
|
273
271
|
|
|
274
|
-
echo "
|
|
272
|
+
echo "🔧 Generating code..."
|
|
275
273
|
flutter pub run build_runner build --delete-conflicting-outputs
|
|
276
274
|
|
|
277
|
-
echo "
|
|
275
|
+
echo "✅ Setup complete!"
|
|
278
276
|
```
|
|
279
277
|
|
|
280
278
|
### scripts/test_all.sh
|
|
@@ -283,21 +281,21 @@ echo " Setup complete!"
|
|
|
283
281
|
#!/bin/bash
|
|
284
282
|
set -e
|
|
285
283
|
|
|
286
|
-
echo "
|
|
284
|
+
echo "🧪 Running all tests..."
|
|
287
285
|
|
|
288
|
-
echo "1
|
|
286
|
+
echo "1️⃣ Unit tests..."
|
|
289
287
|
flutter test test/unit/
|
|
290
288
|
|
|
291
|
-
echo "2
|
|
289
|
+
echo "2️⃣ Widget tests..."
|
|
292
290
|
flutter test test/widget/
|
|
293
291
|
|
|
294
|
-
echo "3
|
|
292
|
+
echo "3️⃣ Integration tests..."
|
|
295
293
|
flutter test integration_test/
|
|
296
294
|
|
|
297
|
-
echo "
|
|
295
|
+
echo "📊 Generating coverage..."
|
|
298
296
|
flutter test --coverage
|
|
299
297
|
|
|
300
|
-
echo "
|
|
298
|
+
echo "✅ All tests passed!"
|
|
301
299
|
```
|
|
302
300
|
|
|
303
301
|
### scripts/build_all.sh
|
|
@@ -306,22 +304,22 @@ echo " All tests passed!"
|
|
|
306
304
|
#!/bin/bash
|
|
307
305
|
set -e
|
|
308
306
|
|
|
309
|
-
echo "
|
|
307
|
+
echo "🏗️ Building all platforms..."
|
|
310
308
|
|
|
311
|
-
echo "
|
|
309
|
+
echo "📱 Android APK..."
|
|
312
310
|
flutter build apk --release
|
|
313
311
|
|
|
314
|
-
echo "
|
|
312
|
+
echo "📱 Android App Bundle..."
|
|
315
313
|
flutter build appbundle --release
|
|
316
314
|
|
|
317
|
-
echo "
|
|
315
|
+
echo "🍎 iOS..."
|
|
318
316
|
flutter build ios --release
|
|
319
317
|
|
|
320
|
-
echo "
|
|
318
|
+
echo "🌐 Web..."
|
|
321
319
|
flutter build web --release
|
|
322
320
|
|
|
323
|
-
echo "
|
|
324
|
-
echo "
|
|
321
|
+
echo "✅ Builds complete!"
|
|
322
|
+
echo "📦 Files available in build/"
|
|
325
323
|
```
|
|
326
324
|
|
|
327
325
|
---
|
|
@@ -539,11 +537,11 @@ make build-apk
|
|
|
539
537
|
|
|
540
538
|
---
|
|
541
539
|
|
|
542
|
-
## Flutter 3.
|
|
540
|
+
## Flutter 3.47 Hinweise (2026)
|
|
543
541
|
|
|
544
542
|
### SwiftPM standardmäßig auf iOS
|
|
545
543
|
|
|
546
|
-
Flutter 3.
|
|
544
|
+
Flutter 3.47+ verwendet **Swift Package Manager (SwiftPM)** als Standard-iOS-Plugin-Manager und ersetzt CocoaPods (weiterhin unterstützt, aber für neue Projekte veraltet).
|
|
547
545
|
|
|
548
546
|
```bash
|
|
549
547
|
# SwiftPM-Migration überprüfen
|
|
@@ -566,7 +564,7 @@ flutter:
|
|
|
566
564
|
|
|
567
565
|
### Android Gradle Plugin (AGP) 9
|
|
568
566
|
|
|
569
|
-
Flutter 3.
|
|
567
|
+
Flutter 3.47 erfordert **AGP 9.0+**. `android/build.gradle` aktualisieren:
|
|
570
568
|
|
|
571
569
|
```groovy
|
|
572
570
|
// android/build.gradle
|
|
@@ -608,6 +606,14 @@ MaterialButton(onPressed: () {}, child: Text('OK'));
|
|
|
608
606
|
|
|
609
607
|
`dart fix --apply` ausführen, um erkennbare Deprecations automatisch zu migrieren.
|
|
610
608
|
|
|
609
|
+
### Breaking Changes Flutter 3.44 und 3.47
|
|
610
|
+
|
|
611
|
+
- **3.44**: Schließreihenfolge von `RawMenuAnchor` geändert; `onReorder` veraltet; `TextInputConnection.setStyle` veraltet; `cacheExtent` / `cacheExtentStyle` veraltet; `IconData` ist jetzt `final`; Android 17 ignoriert Ausrichtungs- und Größenänderungsbeschränkungen auf großen Bildschirmen; `ListTile` meldet im Debug-Modus einen Fehler, wenn es in ein farbiges Widget eingebettet ist; Android-Projekte migrieren zu integriertem Kotlin; Page-Transition-Builder neu organisiert.
|
|
612
|
+
- **3.47**: OpenGL-ES-Render-to-Texture-Inhalte werden von oben nach unten gespeichert; Verhalten von `Semantics` header / `headingLevel` auf iOS und Android angepasst; `describeEnum` entfernt (`Enum.name` verwenden).
|
|
613
|
+
- **Angekündigt, noch nicht in stable**: Migration zu den eigenständigen Paketen `material_ui` / `cupertino_ui`.
|
|
614
|
+
|
|
615
|
+
**Quelle:** https://docs.flutter.dev/release/breaking-changes
|
|
616
|
+
|
|
611
617
|
---
|
|
612
618
|
|
|
613
619
|
*Diese Tools und Konfigurationen optimieren den Flutter-Entwicklungsworkflow.*
|
|
Binary file
|
|
@@ -139,7 +139,7 @@ include: package:very_good_analysis/analysis_options.yaml
|
|
|
139
139
|
|
|
140
140
|
```yaml
|
|
141
141
|
dev_dependencies:
|
|
142
|
-
flutter_lints: ^5.0.0 # Flutter 3.
|
|
142
|
+
flutter_lints: ^5.0.0 # Flutter 3.47 / Dart 3.13+ (v3.x deckt keine sealed classes und dot shorthands ab)
|
|
143
143
|
```
|
|
144
144
|
|
|
145
145
|
---
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
## const Widgets
|
|
4
4
|
|
|
5
5
|
```dart
|
|
6
|
-
//
|
|
6
|
+
// ✅ GOOD - const
|
|
7
7
|
class MyWidget extends StatelessWidget {
|
|
8
8
|
const MyWidget({super.key});
|
|
9
9
|
|
|
@@ -19,7 +19,7 @@ class MyWidget extends StatelessWidget {
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
//
|
|
22
|
+
// ❌ BAD - no const
|
|
23
23
|
class MyWidget extends StatelessWidget {
|
|
24
24
|
@override
|
|
25
25
|
Widget build(BuildContext context) {
|
|
@@ -39,7 +39,7 @@ class MyWidget extends StatelessWidget {
|
|
|
39
39
|
## ListView Optimization
|
|
40
40
|
|
|
41
41
|
```dart
|
|
42
|
-
//
|
|
42
|
+
// ✅ GOOD - ListView.builder (lazy loading)
|
|
43
43
|
ListView.builder(
|
|
44
44
|
itemCount: items.length,
|
|
45
45
|
itemBuilder: (context, index) {
|
|
@@ -47,7 +47,7 @@ ListView.builder(
|
|
|
47
47
|
},
|
|
48
48
|
)
|
|
49
49
|
|
|
50
|
-
//
|
|
50
|
+
// ❌ BAD - ListView with children (all created at once)
|
|
51
51
|
ListView(
|
|
52
52
|
children: items.map((item) => ItemWidget(item)).toList(),
|
|
53
53
|
)
|
|
@@ -123,7 +123,7 @@ VisibilityDetector(
|
|
|
123
123
|
## Avoid Rebuilds
|
|
124
124
|
|
|
125
125
|
```dart
|
|
126
|
-
//
|
|
126
|
+
// ✅ GOOD - Separate widgets
|
|
127
127
|
class MyPage extends StatelessWidget {
|
|
128
128
|
@override
|
|
129
129
|
Widget build(BuildContext context) {
|
|
@@ -136,12 +136,12 @@ class MyPage extends StatelessWidget {
|
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
138
|
|
|
139
|
-
//
|
|
139
|
+
// ✅ GOOD - RepaintBoundary
|
|
140
140
|
RepaintBoundary(
|
|
141
141
|
child: ComplexWidget(),
|
|
142
142
|
)
|
|
143
143
|
|
|
144
|
-
//
|
|
144
|
+
// ✅ GOOD - AutomaticKeepAliveClientMixin for TabBar
|
|
145
145
|
class MyTab extends StatefulWidget {
|
|
146
146
|
@override
|
|
147
147
|
State<MyTab> createState() => _MyTabState();
|
|
@@ -213,16 +213,16 @@ heavy.showFeature();
|
|
|
213
213
|
## Performance Checklist
|
|
214
214
|
|
|
215
215
|
```
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
216
|
+
□ const widgets everywhere possible
|
|
217
|
+
□ ListView.builder for lists
|
|
218
|
+
□ Image caching enabled
|
|
219
|
+
□ Lazy loading of images
|
|
220
|
+
□ Avoid unnecessary rebuilds
|
|
221
|
+
□ RepaintBoundary for complex widgets
|
|
222
|
+
□ Code splitting for heavy features
|
|
223
|
+
□ Profile mode tested
|
|
224
|
+
□ Frame rate > 60 FPS
|
|
225
|
+
□ Startup time < 2s
|
|
226
226
|
```
|
|
227
227
|
|
|
228
228
|
---
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: php-reviewer
|
|
3
|
-
description: Spezialist für PHP 8.5 und Clean Architecture Code-Reviews — DDD, Hexagonal,
|
|
3
|
+
description: Spezialist für PHP 8.5 und Clean Architecture Code-Reviews — DDD, Hexagonal, PER-CS 3.0, PHPStan, Sicherheitsanalyse
|
|
4
4
|
model: haiku
|
|
5
5
|
effort: low
|
|
6
6
|
maxTurns: 6
|
|
@@ -21,7 +21,7 @@ Ich bin ein Spezialist für Code-Reviews von PHP 8.5 und Clean Architecture. Mei
|
|
|
21
21
|
| Kategorie | Punkte | Fokus |
|
|
22
22
|
|-----------|--------|-------|
|
|
23
23
|
| Architektur und Clean Code | 30 | Clean Architecture, Hexagonal, DDD, CQRS |
|
|
24
|
-
| PHP 8.5 und Qualität | 20 |
|
|
24
|
+
| PHP 8.5 und Qualität | 20 | PER-CS 3.0, PHPStan Level 10, strict_types, moderne Features |
|
|
25
25
|
| Tests | 25 | Pest PHP, PHPUnit, Mutation Testing, Abdeckung |
|
|
26
26
|
| Sicherheit und Performance | 25 | OWASP, SQL-Injection, N+1, Cache |
|
|
27
27
|
|
|
@@ -211,7 +211,7 @@ $first = array_first($items);
|
|
|
211
211
|
$last = array_last($items);
|
|
212
212
|
```
|
|
213
213
|
|
|
214
|
-
###
|
|
214
|
+
### PER-CS 3.0-Konventionen
|
|
215
215
|
|
|
216
216
|
| Kriterium | Erwartet |
|
|
217
217
|
|-----------|----------|
|
|
@@ -229,7 +229,7 @@ $last = array_last($items);
|
|
|
229
229
|
|-----------|--------|
|
|
230
230
|
| strict_types=1 überall, PHPStan Level 10 fehlerfrei | 6 |
|
|
231
231
|
| Kein ungerechtfertigtes `mixed`, vollständige Typisierung (Parameter + Rückgabe) | 5 |
|
|
232
|
-
|
|
|
232
|
+
| PER-CS 3.0 eingehalten, explizite Benennung, readonly verwendet | 5 |
|
|
233
233
|
| PHP 8.5-Features: Enums, Pipe Operator, clone with | 4 |
|
|
234
234
|
|
|
235
235
|
---
|
|
@@ -414,7 +414,7 @@ $orders = $repository->findAllWithItems(); // JOIN oder Batch Loading
|
|
|
414
414
|
|
|
415
415
|
1. strict_types=1 in jeder Datei prüfen
|
|
416
416
|
2. PHPStan Level 10 mental durchlaufen (Typen, mixed, any)
|
|
417
|
-
3.
|
|
417
|
+
3. PER-CS 3.0-Konformität prüfen
|
|
418
418
|
4. Nutzung der PHP 8.5-Features scannen
|
|
419
419
|
5. Enums, readonly, Match Expressions prüfen
|
|
420
420
|
|
|
@@ -531,7 +531,7 @@ $orders = $repository->findAllWithItems(); // JOIN oder Batch Loading
|
|
|
531
531
|
| Werkzeug | Verwendung |
|
|
532
532
|
|----------|------------|
|
|
533
533
|
| **PHPStan** (Level 10) | Statische Analyse, Type Safety |
|
|
534
|
-
| **PHP-CS-Fixer** |
|
|
534
|
+
| **PHP-CS-Fixer** | PER-CS 3.0-Konformität |
|
|
535
535
|
| **Pest PHP** | Moderne und ausdrucksstarke Tests |
|
|
536
536
|
| **Infection** | Mutation Testing (MSI >= 80%) |
|
|
537
537
|
| **Deptrac** | Überprüfung der Abhängigkeiten zwischen Schichten |
|
|
@@ -9,7 +9,7 @@ Verify that the PHP project follows established coding standards and best practi
|
|
|
9
9
|
## What This Command Does
|
|
10
10
|
|
|
11
11
|
1. **Standards Verification**
|
|
12
|
-
- Check PSR-1/
|
|
12
|
+
- Check PSR-1/PER-CS 3.0 compliance
|
|
13
13
|
- Verify naming conventions
|
|
14
14
|
- Validate file organization
|
|
15
15
|
- Check import order
|
|
@@ -440,7 +440,7 @@ parameters:
|
|
|
440
440
|
<?php
|
|
441
441
|
return (new PhpCsFixer\Config())
|
|
442
442
|
->setRules([
|
|
443
|
-
'@
|
|
443
|
+
'@PER-CS3x0' => true,
|
|
444
444
|
'@PHP85Migration' => true,
|
|
445
445
|
'declare_strict_types' => true,
|
|
446
446
|
'final_class' => true,
|
|
@@ -450,7 +450,7 @@ return (new PhpCsFixer\Config())
|
|
|
450
450
|
## Compliance Checklist
|
|
451
451
|
|
|
452
452
|
- [ ] `declare(strict_types=1)` in all files
|
|
453
|
-
- [ ]
|
|
453
|
+
- [ ] PER-CS 3.0 formatting applied
|
|
454
454
|
- [ ] PSR-4 autoloading configured
|
|
455
455
|
- [ ] Naming conventions followed
|
|
456
456
|
- [ ] Files properly organized (Clean Architecture)
|
|
@@ -29,7 +29,9 @@ class UserAccount
|
|
|
29
29
|
}
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
###
|
|
32
|
+
### PER-CS 3.0: Extended Coding Style
|
|
33
|
+
|
|
34
|
+
> PER Coding Style 3.0 erweitert und ersetzt PSR-12 (PSR-1 bleibt verpflichtend). PHP-CS-Fixer-Ruleset: `@PER-CS3x0` (`@PER-CS3.0` ist veraltet).
|
|
33
35
|
|
|
34
36
|
```php
|
|
35
37
|
<?php
|
|
@@ -629,7 +631,7 @@ interface UserRepositoryInterface
|
|
|
629
631
|
## Coding Standards Checklist
|
|
630
632
|
|
|
631
633
|
- [ ] `declare(strict_types=1)` at top of every file
|
|
632
|
-
- [ ]
|
|
634
|
+
- [ ] PER-CS 3.0 formatting applied
|
|
633
635
|
- [ ] PSR-4 autoloading configured
|
|
634
636
|
- [ ] All methods have return type declarations
|
|
635
637
|
- [ ] All parameters have type declarations
|
|
@@ -43,7 +43,7 @@ composer validate
|
|
|
43
43
|
"minimum-stability": "stable",
|
|
44
44
|
"prefer-stable": true,
|
|
45
45
|
"require": {
|
|
46
|
-
"php": ">=8.
|
|
46
|
+
"php": ">=8.4",
|
|
47
47
|
"ext-pdo": "*",
|
|
48
48
|
"ext-json": "*",
|
|
49
49
|
"ramsey/uuid": "^4.7",
|
|
@@ -51,11 +51,10 @@ composer validate
|
|
|
51
51
|
"psr/container": "^2.0"
|
|
52
52
|
},
|
|
53
53
|
"require-dev": {
|
|
54
|
-
"phpunit/phpunit": "^11.0",
|
|
55
54
|
"phpstan/phpstan": "^2.0",
|
|
56
55
|
"friendsofphp/php-cs-fixer": "^3.0",
|
|
57
56
|
"rector/rector": "^2.4",
|
|
58
|
-
"pestphp/pest": "^
|
|
57
|
+
"pestphp/pest": "^5.3"
|
|
59
58
|
},
|
|
60
59
|
"autoload": {
|
|
61
60
|
"psr-4": {
|
|
@@ -107,7 +106,7 @@ $finder = PhpCsFixer\Finder::create()
|
|
|
107
106
|
return (new PhpCsFixer\Config())
|
|
108
107
|
->setRiskyAllowed(true)
|
|
109
108
|
->setRules([
|
|
110
|
-
'@
|
|
109
|
+
'@PER-CS3x0' => true,
|
|
111
110
|
'@PHP85Migration' => true,
|
|
112
111
|
'@Symfony' => true,
|
|
113
112
|
'@Symfony:risky' => true,
|
|
@@ -493,8 +492,6 @@ WORKDIR /var/www/html
|
|
|
493
492
|
### docker-compose.yml
|
|
494
493
|
|
|
495
494
|
```yaml
|
|
496
|
-
version: '3.8'
|
|
497
|
-
|
|
498
495
|
services:
|
|
499
496
|
php:
|
|
500
497
|
build:
|
|
@@ -533,7 +530,7 @@ volumes:
|
|
|
533
530
|
## Tooling Checklist
|
|
534
531
|
|
|
535
532
|
- [ ] Composer configured with autoload
|
|
536
|
-
- [ ] PHP-CS-Fixer configured (
|
|
533
|
+
- [ ] PHP-CS-Fixer configured (PER-CS 3.0 + strict)
|
|
537
534
|
- [ ] PHPStan at level 10 with strict rules
|
|
538
535
|
- [ ] PHPUnit/Pest configured with coverage
|
|
539
536
|
- [ ] Rector configured for upgrades
|
|
@@ -116,7 +116,7 @@ $finder = PhpCsFixer\Finder::create()
|
|
|
116
116
|
return (new PhpCsFixer\Config())
|
|
117
117
|
->setRiskyAllowed(true)
|
|
118
118
|
->setRules([
|
|
119
|
-
'@
|
|
119
|
+
'@PER-CS3x0' => true,
|
|
120
120
|
'@PHP85Migration' => true,
|
|
121
121
|
'@Symfony' => true,
|
|
122
122
|
'@Symfony:risky' => true,
|
|
@@ -209,7 +209,7 @@ vendor/bin/php-cs-fixer fix
|
|
|
209
209
|
vendor/bin/php-cs-fixer fix src/Domain/Entity/User.php
|
|
210
210
|
|
|
211
211
|
# Show rules explanation
|
|
212
|
-
vendor/bin/php-cs-fixer describe @
|
|
212
|
+
vendor/bin/php-cs-fixer describe @PER-CS3x0
|
|
213
213
|
```
|
|
214
214
|
|
|
215
215
|
## Architecture Testing
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
## Was (Stack & Struktur)
|
|
6
6
|
|
|
7
|
-
**Stack**: Node.js
|
|
8
|
-
**Paperclip**: 2026.
|
|
7
|
+
**Stack**: Node.js 24.11+ LTS, TypeScript 5.x (strict), React 19+, Vitest 4.1+, pnpm 9.15+, PostgreSQL 15+
|
|
8
|
+
**Paperclip**: 2026.1012.0+ (MIT) — https://docs.paperclip.ing/
|
|
9
9
|
|
|
10
10
|
**Paperclip ist ein Two-Layer-System**: Eine Control-Plane (Server + Web + DB), die den gesamten Governance-Zustand verwaltet, und Adapter, die Arbeit ausführen und zurückmelden. Adapter entscheiden niemals über Budgets oder Approvals.
|
|
11
11
|
|
|
@@ -19,7 +19,7 @@ Führen Sie einen Operator durch das Onboarding: installieren, die Instanz erste
|
|
|
19
19
|
|
|
20
20
|
### 1. Vorbedingungen
|
|
21
21
|
|
|
22
|
-
- [ ] Node.js
|
|
22
|
+
- [ ] Node.js 24.11+ und pnpm 9.15+ installiert
|
|
23
23
|
- [ ] PostgreSQL erreichbar **ODER** akzeptieren Sie das eingebettete Postgres für Local-Dev
|
|
24
24
|
- [ ] Port 3100 verfügbar (oder setzen Sie `PORT`)
|
|
25
25
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
| Tool | Version | Warum |
|
|
8
8
|
|---|---|---|
|
|
9
|
-
| Node.js |
|
|
9
|
+
| Node.js | 24.11+ LTS | Paperclip-Minimum (`paperclipai` `engines`: `>=24.11.0`) |
|
|
10
10
|
| pnpm | 9.15+ | Offizieller Workspace-Manager |
|
|
11
11
|
| tsx | latest | Ausführen von TS-Dateien während der Entwicklung |
|
|
12
12
|
| PostgreSQL | 15+ (oder embedded) | Primärer Speicher |
|
|
@@ -183,7 +183,7 @@ jobs:
|
|
|
183
183
|
ci:
|
|
184
184
|
strategy:
|
|
185
185
|
matrix:
|
|
186
|
-
node: [
|
|
186
|
+
node: [24.x]
|
|
187
187
|
steps:
|
|
188
188
|
- uses: pnpm/action-setup@v3
|
|
189
189
|
- run: pnpm install --frozen-lockfile
|
|
@@ -209,7 +209,7 @@ Paperclip liefert ein Dockerfile mit (siehe `docs.paperclip.ing/deployment/docke
|
|
|
209
209
|
|
|
210
210
|
## Checklist
|
|
211
211
|
|
|
212
|
-
- [ ] Node
|
|
212
|
+
- [ ] Node 24.11+, pnpm 9.15+, Corepack aktiviert
|
|
213
213
|
- [ ] ESLint Flat Config + Prettier konfiguriert
|
|
214
214
|
- [ ] Pre-Commit-Hook führt lint-staged aus
|
|
215
215
|
- [ ] CI führt lint, typecheck, test, build aus
|
|
@@ -141,6 +141,15 @@ Passen Sie CSP-Script-/Style-Sources an, falls die UI spezifische CDNs benötigt
|
|
|
141
141
|
- [ ] Activity-Log Append-only, DB-enforced wo möglich
|
|
142
142
|
- [ ] Kill Switch + Plugin-Disable getestet
|
|
143
143
|
|
|
144
|
+
## Upgrade-Hinweise: Breaking Changes (2026.916.0 bis 2026.1012.0)
|
|
145
|
+
|
|
146
|
+
Geprüft anhand der offiziellen GitHub-Release-Notes (paperclipai/paperclip).
|
|
147
|
+
|
|
148
|
+
- **2026.916.0**: Agent-APIs liefern keine Klartext-Zugangsdaten mehr (`plain`-Bindings werden geschwärzt: `secretRef` verwenden, Secrets nie zurücklesen); die „cheap model profiles“ entfallen (Migration `0236` entfernt gespeicherte `modelProfiles`); `X-Forwarded-Host` wird nur berücksichtigt, wenn der direkte Peer `TRUST_PROXY` besteht (hinter einem Reverse Proxy setzen, sonst wird der rohe `Host`-Header verwendet); die Legacy-Anthropic-REST-Verbindungsoption entfällt (REST-Tool-Verbindungen werden als REST validiert).
|
|
149
|
+
- **2026.1001.0**: der Legacy-Composio-Broker ist abgeschaltet (keine automatische Migration; Ersatz: Composio Connect hinter dem Flag `enableMcpAggregators`). Execution-Harnesses laufen jetzt standardmäßig **vollautomatisch**: ACPX/Claude `approve-all`, OpenCode `allow`, Codex `never` (keine Freigabe-Pausen). Um die Freigabe-Gates des Providers zu behalten, pro Agent explizit einen restriktiven Modus setzen: `acpxPermissionMode` (`approve-paperclip`, `approve-reads` oder `deny-all`) oder `opencodePermissionMode` (`ask` oder `deny`). Die governten Freigaben von Paperclip gelten weiterhin.
|
|
150
|
+
- **2026.1005.0**: `PAPERCLIP_CLOUD_UI_SNIPPET` / `PAPERCLIP_CLOUD_UI_SNIPPET_B64` injizieren kein HTML mehr (Integration in einen Plugin-UI-Beitrag verschieben); eine @-Erwähnung in einem Task-Kommentar ist nur Kontext und startet keinen Run mehr (nur explizite Zuweisung oder Review-Anfragen tun das).
|
|
151
|
+
- **2026.1012.0**: Workspace-Restore-Locks sind jetzt SQLite-Dateisperren unter `<instance root>/locks/directory-merge/`: vor Upgrade oder Rollback alle alten Server- und Worker-Prozesse stoppen; Tool-Grants mit unbekannten Selektoren oder fehlerhaften Einschränkungen verweigern jetzt den Zugriff (eigene Grants prüfen).
|
|
152
|
+
|
|
144
153
|
---
|
|
145
154
|
|
|
146
155
|
**Zuletzt aktualisiert:** 2026-04 | **Version:** 2.0.0 | **Autor:** The Bearded CTO
|
|
@@ -5,6 +5,6 @@ description: Paperclip-TypeScript-Coding-Standards — Strict-Modus, Kebab-Files
|
|
|
5
5
|
|
|
6
6
|
# Paperclip-Coding-Standards (TypeScript)
|
|
7
7
|
|
|
8
|
-
Node
|
|
8
|
+
Node 24.11+, TypeScript strict + `noUncheckedIndexedAccess`, pnpm 9.15+ Workspaces, Kebab-Case-Dateien, PascalCase-Typen, camelCase-Vars, kein `any`, strukturierte Logs mit Redaktion.
|
|
9
9
|
|
|
10
10
|
Siehe ../../rules/03-coding-standards.md für ausführliche Dokumentation.
|
|
@@ -31,7 +31,9 @@ Identifizieren:
|
|
|
31
31
|
- Indizes und Constraints
|
|
32
32
|
- Validierungen
|
|
33
33
|
|
|
34
|
-
### Schritt 2: SQLAlchemy 2.
|
|
34
|
+
### Schritt 2: SQLAlchemy 2.1 Modell
|
|
35
|
+
|
|
36
|
+
> **Migration 2.0 -> 2.1 (wichtigste Punkte):** Python 3.11+ erforderlich; `greenlet` wird nicht mehr standardmäßig installiert (asyncio: Extra `sqlalchemy[asyncio]`); Standard-PostgreSQL-Treiber ist psycopg 3; das Autoflush der `Session` ist jetzt unbedingt (auch Core/Text); `Select.filter_by()` löst bei mehrdeutigen Namen `AmbiguousColumnError` aus; Defaults gemappter Dataclasses werden über Deskriptoren geliefert. Quelle: docs.sqlalchemy.org/en/21/changelog/migration_21.html
|
|
35
37
|
|
|
36
38
|
[Vollständiges Modell mit Mapped, Relationships, Constraints erstellen]
|
|
37
39
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Regel 06: Tooling
|
|
2
2
|
|
|
3
|
-
> **Referenzversion:** Python **3.14 (stabil, 3.14.
|
|
3
|
+
> **Referenzversion:** Python **3.14 (stabil, 3.14.8+)** — Ruff 0.17+, pytest 9.x (Python 3.9 wird nicht mehr unterstützt).
|
|
4
4
|
> **⚠ JIT (PEP 744):** experimentell in Python 3.14, **standardmäßig deaktiviert**, vor Python 3.15 (Okt. 2026) durch das Python Steering Council erneut zu bewerten. Nicht in Produktion einsetzen.
|
|
5
5
|
|
|
6
6
|
Python-Tooling für Codequalität, Testing und Entwicklungs-Workflow.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Code-Qualitätswerkzeuge - Python
|
|
2
2
|
|
|
3
|
-
> **Referenzversionen:** Ruff **0.
|
|
3
|
+
> **Referenzversionen:** Ruff **0.17+** | pytest **9.x** (Python 3.9 wird nicht mehr unterstützt) | Ziel `py314`.
|
|
4
4
|
|
|
5
5
|
## Ruff - Schneller Python-Linter und Formatter
|
|
6
6
|
|
|
@@ -140,7 +140,7 @@ async def search_users(
|
|
|
140
140
|
|
|
141
141
|
### Passwort-Hashing mit Argon2id (pwdlib)
|
|
142
142
|
|
|
143
|
-
> **passlib wird seit 2020 nicht mehr gepflegt und ist inkompatibel mit Python 3.13+ (das benoetigte `crypt`-Standardmodul wurde entfernt). bcrypt ist
|
|
143
|
+
> **passlib wird seit 2020 nicht mehr gepflegt und ist inkompatibel mit Python 3.13+ (das benoetigte `crypt`-Standardmodul wurde entfernt). bcrypt ist laut Projektregel 11 nur für Legacy vorgesehen (OWASP: zuerst Argon2id; bcrypt nur, wenn Argon2id/scrypt nicht verfügbar sind). Stattdessen `pwdlib` mit Argon2id verwenden.**
|
|
144
144
|
|
|
145
145
|
```python
|
|
146
146
|
# pip install pwdlib[argon2]
|
|
@@ -537,7 +537,7 @@ pip-audit --fix
|
|
|
537
537
|
# pyproject.toml - Versionen fuer Sicherheit pinnen
|
|
538
538
|
[project]
|
|
539
539
|
dependencies = [
|
|
540
|
-
"fastapi>=0.
|
|
540
|
+
"fastapi>=0.143.0,<1.0.0",
|
|
541
541
|
"pydantic>=2.10.0,<3.0.0",
|
|
542
542
|
"sqlalchemy>=2.0.0,<3.0.0",
|
|
543
543
|
]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: react-reviewer
|
|
3
|
-
description: Spezialist für React 19.
|
|
3
|
+
description: Spezialist für React 19.3 + Compiler 1.0 und TypeScript Code-Reviews — Hooks, Komposition, Performance, Bundle-Analyse
|
|
4
4
|
model: haiku
|
|
5
5
|
effort: low
|
|
6
6
|
maxTurns: 6
|
|
@@ -10,11 +10,11 @@ permissionMode: default
|
|
|
10
10
|
skills: [solid-principles, testing-react, security-react]
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
-
# Audit-Agent React 19.
|
|
13
|
+
# Audit-Agent React 19.3 + Compiler 1.0 / TypeScript
|
|
14
14
|
|
|
15
15
|
## Identität
|
|
16
16
|
|
|
17
|
-
Ich bin ein Spezialist für Code-Reviews von React 19.
|
|
17
|
+
Ich bin ein Spezialist für Code-Reviews von React 19.3 + Compiler 1.0 und TypeScript. Mein Ansatz konzentriert sich auf die spezifischen Probleme von React: die Rules of Hooks, die Komposition von Komponenten, das performante Rendering, die Grenze zwischen Server/Client Components und die Analyse der Bundle-Größe. Ich führe kein generisches Audit durch -- ich erkenne, was eine moderne React-Anwendung zum Abstürzen bringt, verlangsamt oder unnötig verkompliziert.
|
|
18
18
|
|
|
19
19
|
## Bewertungssystem (100 Punkte)
|
|
20
20
|
|
|
@@ -247,7 +247,11 @@ Rendert die Komponente bei jeder Änderung des Parents neu?
|
|
|
247
247
|
NEIN --> Akzeptabel (unnötige Mikro-Optimierung)
|
|
248
248
|
```
|
|
249
249
|
|
|
250
|
-
### React
|
|
250
|
+
### React-19.3-Neuerungen, die man kennen sollte
|
|
251
|
+
|
|
252
|
+
Keine Breaking Changes. `<ViewTransition>` und Fragment Refs (`<Fragment ref>`) sind stabil; `addTransitionType` kennzeichnet eine Transition; `use(browser())` (`react-dom`) schließt eine Komponente vom Server-Rendering aus; Trusted Types werden unterstützt; Context wird in Server Components ohne Provider gerendert; Effects werden bei der Hydration im Strict Mode doppelt aufgerufen. Diese APIs nicht als experimentell markieren.
|
|
253
|
+
|
|
254
|
+
### React 19.3 + Compiler 1.0: Server Components vs Client Components
|
|
251
255
|
|
|
252
256
|
```
|
|
253
257
|
Benötigt die Komponente Interaktivität (Hooks, Events)?
|
|
@@ -368,7 +372,7 @@ import { format } from 'date-fns';
|
|
|
368
372
|
## Audit-Berichtsformat
|
|
369
373
|
|
|
370
374
|
```markdown
|
|
371
|
-
# Audit-Bericht React 19.
|
|
375
|
+
# Audit-Bericht React 19.3 + Compiler 1.0 / TypeScript
|
|
372
376
|
|
|
373
377
|
## Projekt: [Projektname]
|
|
374
378
|
**Datum:** [Datum]
|
|
@@ -564,6 +564,15 @@ snyk test
|
|
|
564
564
|
snyk monitor
|
|
565
565
|
```
|
|
566
566
|
|
|
567
|
+
### React Server Components — React2Shell (CVE-2025-55182)
|
|
568
|
+
|
|
569
|
+
- **CVSS 10.0**: Remote Code Execution ohne Authentifizierung über eine manipulierte HTTP-Anfrage an einen Server-Function-Endpoint; Apps mit React Server Components sind auch ohne Server Functions betroffen.
|
|
570
|
+
- Betroffen: `react-server-dom-webpack`, `-parcel`, `-turbopack` 19.0, 19.1.0, 19.1.1, 19.2.0. Behoben in: 19.0.1, 19.1.2, 19.2.1.
|
|
571
|
+
- Folgeschwachstellen (CVE-2025-55183, CVE-2025-55184, CVE-2025-67779, CVE-2026-23864: DoS / Quellcode-Offenlegung): immer das neueste Patch-Release verwenden.
|
|
572
|
+
- Auch die Frameworks aktualisieren, die diese Pakete bündeln (Next.js, React Router, Waku, `@parcel/rsc`, `@vitejs/plugin-rsc`, rwsdk).
|
|
573
|
+
|
|
574
|
+
Quelle: [React advisory](https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components)
|
|
575
|
+
|
|
567
576
|
## Secrets Management
|
|
568
577
|
|
|
569
578
|
### Environment Variables
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: reactnative-reviewer
|
|
3
|
-
description: Spezialist für React Native 0.
|
|
3
|
+
description: Spezialist für React Native 0.87 und Expo Code-Reviews — New Architecture, Navigation, Mobile Performance, Bundle-Analyse
|
|
4
4
|
model: haiku
|
|
5
5
|
effort: low
|
|
6
6
|
maxTurns: 6
|
|
@@ -10,11 +10,11 @@ permissionMode: default
|
|
|
10
10
|
skills: [solid-principles, testing-reactnative, security-reactnative, architecture, navigation]
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
-
# Audit-Agent React Native 0.
|
|
13
|
+
# Audit-Agent React Native 0.87 / Expo
|
|
14
14
|
|
|
15
15
|
## Identität
|
|
16
16
|
|
|
17
|
-
Ich bin ein Spezialist für Code-Reviews von React Native 0.
|
|
17
|
+
Ich bin ein Spezialist für Code-Reviews von React Native 0.87 und Expo. Mein Ansatz konzentriert sich auf die mobil-spezifischen Probleme: die New Architecture (JSI, Fabric, TurboModules), die Navigation mit Expo Router, die Performance bei 60 FPS, die Verwaltung der Bundle-Größe und die an Mobile angepassten Kompositionsmuster. Ich führe kein generisches Audit durch -- ich erkenne, was eine moderne React Native-Anwendung zum Abstürzen bringt, verlangsamt oder unnötig verkompliziert, die standardmäßig die New Architecture verwendet.
|
|
18
18
|
|
|
19
19
|
## Bewertungssystem (100 Punkte)
|
|
20
20
|
|
|
@@ -411,7 +411,7 @@ import { format } from 'date-fns';
|
|
|
411
411
|
## Audit-Berichtsformat
|
|
412
412
|
|
|
413
413
|
```markdown
|
|
414
|
-
# Audit-Bericht React Native 0.
|
|
414
|
+
# Audit-Bericht React Native 0.87 / Expo
|
|
415
415
|
|
|
416
416
|
## Projekt: [Projektname]
|
|
417
417
|
**Datum:** [Datum]
|