@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
|
@@ -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
|
|
@@ -35,7 +35,7 @@ See `rules/02-architecture.md` for complete patterns.
|
|
|
35
35
|
| Rule | Reason |
|
|
36
36
|
|------|--------|
|
|
37
37
|
| `declare(strict_types=1)` | Type safety enforcement |
|
|
38
|
-
|
|
|
38
|
+
| PER-CS 3.0 + PHPStan level 10 | Code quality |
|
|
39
39
|
| Repository pattern | Data access abstraction |
|
|
40
40
|
| 80%+ coverage | Quality assurance |
|
|
41
41
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: php-reviewer
|
|
3
|
-
description: PHP 8.5 and Clean Architecture code review specialist — DDD, hexagonal,
|
|
3
|
+
description: PHP 8.5 and Clean Architecture code review specialist — DDD, hexagonal, PER-CS 3.0, PHPStan, security analysis
|
|
4
4
|
model: haiku
|
|
5
5
|
effort: low
|
|
6
6
|
maxTurns: 6
|
|
@@ -21,7 +21,7 @@ I am a specialist in PHP 8.5 and Clean Architecture code review. My approach foc
|
|
|
21
21
|
| Category | Points | Focus |
|
|
22
22
|
|----------|--------|-------|
|
|
23
23
|
| Architecture and Clean Code | 30 | Clean Architecture, hexagonal, DDD, CQRS |
|
|
24
|
-
| PHP 8.5 and Quality | 20 |
|
|
24
|
+
| PHP 8.5 and Quality | 20 | PER-CS 3.0, PHPStan level 10, strict_types, modern features |
|
|
25
25
|
| Tests | 25 | Pest PHP, PHPUnit, mutation testing, coverage |
|
|
26
26
|
| Security and 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 Conventions
|
|
215
215
|
|
|
216
216
|
| Criterion | Expected |
|
|
217
217
|
|-----------|----------|
|
|
@@ -229,7 +229,7 @@ $last = array_last($items);
|
|
|
229
229
|
|-----------|--------|
|
|
230
230
|
| strict_types=1 everywhere, PHPStan level 10 without errors | 6 |
|
|
231
231
|
| Zero unjustified `mixed`, complete typing (params + returns) | 5 |
|
|
232
|
-
|
|
|
232
|
+
| PER-CS 3.0 respected, explicit naming, readonly used | 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 or batch loading
|
|
|
414
414
|
|
|
415
415
|
1. Verify strict_types=1 in every file
|
|
416
416
|
2. Mentally run PHPStan level 10 (types, mixed, any)
|
|
417
|
-
3. Verify
|
|
417
|
+
3. Verify PER-CS 3.0 compliance
|
|
418
418
|
4. Scan PHP 8.5 feature usage
|
|
419
419
|
5. Verify enums, readonly, match expressions
|
|
420
420
|
|
|
@@ -531,7 +531,7 @@ $orders = $repository->findAllWithItems(); // JOIN or batch loading
|
|
|
531
531
|
| Tool | Usage |
|
|
532
532
|
|------|-------|
|
|
533
533
|
| **PHPStan** (level 10) | Static analysis, type safety |
|
|
534
|
-
| **PHP-CS-Fixer** |
|
|
534
|
+
| **PHP-CS-Fixer** | PER-CS 3.0 compliance |
|
|
535
535
|
| **Pest PHP** | Modern and expressive tests |
|
|
536
536
|
| **Infection** | Mutation testing (MSI >= 80%) |
|
|
537
537
|
| **Deptrac** | Layer dependency verification |
|
|
@@ -50,7 +50,7 @@ Execute code quality check:
|
|
|
50
50
|
**Command**: Use slash command `/php:check-code-quality` or manually follow steps in `check-code-quality.md`
|
|
51
51
|
|
|
52
52
|
**Evaluated Criteria**:
|
|
53
|
-
-
|
|
53
|
+
- PER-CS 3.0 compliance (5 pts)
|
|
54
54
|
- PHPStan level 10 (5 pts)
|
|
55
55
|
- Strict type hints and declare(strict_types=1) (4 pts)
|
|
56
56
|
- KISS/DRY/YAGNI principles (4 pts)
|
|
@@ -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 extends, expands and replaces PSR-12 (PSR-1 remains required). PHP-CS-Fixer ruleset: `@PER-CS3x0` (`@PER-CS3.0` is deprecated).
|
|
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
|
## What (Stack & Structure)
|
|
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 is a two-layer system**: a control plane (server + web + DB) that owns all governance state, and adapters that execute work and report back. Adapters never decide budgets or approvals.
|
|
11
11
|
|
|
@@ -15,7 +15,7 @@ This directory contains the Claude-Craft rules, commands, skills, and templates
|
|
|
15
15
|
| React | 19+ (web UI) |
|
|
16
16
|
| Vitest | 4.1+ |
|
|
17
17
|
| PostgreSQL | 15+ (or embedded for dev) |
|
|
18
|
-
| Paperclip | 2026.
|
|
18
|
+
| Paperclip | 2026.1012.0+ |
|
|
19
19
|
|
|
20
20
|
## What's in here
|
|
21
21
|
|
|
@@ -19,7 +19,7 @@ Walk an operator through onboarding: install, create the instance, bootstrap the
|
|
|
19
19
|
|
|
20
20
|
### 1. Preconditions
|
|
21
21
|
|
|
22
|
-
- [ ] Node.js
|
|
22
|
+
- [ ] Node.js 24.11+ and pnpm 9.15+ installed
|
|
23
23
|
- [ ] PostgreSQL reachable **OR** accept the embedded Postgres for local dev
|
|
24
24
|
- [ ] Port 3100 available (or set `PORT`)
|
|
25
25
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
| Tool | Version | Why |
|
|
8
8
|
|---|---|---|
|
|
9
|
-
| Node.js |
|
|
9
|
+
| Node.js | 24.11+ LTS | Paperclip minimum (`paperclipai` `engines`: `>=24.11.0`) |
|
|
10
10
|
| pnpm | 9.15+ | Official workspace manager |
|
|
11
11
|
| tsx | latest | Running TS files during dev |
|
|
12
12
|
| PostgreSQL | 15+ (or embedded) | Primary store |
|
|
@@ -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 ships a Dockerfile (see `docs.paperclip.ing/deployment/docker`). For c
|
|
|
209
209
|
|
|
210
210
|
## Checklist
|
|
211
211
|
|
|
212
|
-
- [ ] Node
|
|
212
|
+
- [ ] Node 24.11+, pnpm 9.15+, Corepack enabled
|
|
213
213
|
- [ ] ESLint flat config + Prettier configured
|
|
214
214
|
- [ ] Pre-commit hook runs lint-staged
|
|
215
215
|
- [ ] CI runs lint, typecheck, test, build
|
|
@@ -141,6 +141,15 @@ Adjust CSP script/style sources if the UI requires specific CDNs; otherwise keep
|
|
|
141
141
|
- [ ] Activity log append-only, DB-enforced where possible
|
|
142
142
|
- [ ] Kill switch + plugin disable tested
|
|
143
143
|
|
|
144
|
+
## Upgrade Notes: Breaking Changes (2026.916.0 to 2026.1012.0)
|
|
145
|
+
|
|
146
|
+
Verified against the official GitHub release notes (paperclipai/paperclip).
|
|
147
|
+
|
|
148
|
+
- **2026.916.0**: agent APIs no longer return plaintext credentials (`plain` bindings are redacted: use `secretRef`, never read secrets back); "cheap model profiles" removed (migration `0236` strips stored `modelProfiles`); `X-Forwarded-Host` is honored only when the immediate peer passes `TRUST_PROXY` (set it behind a reverse proxy, otherwise the raw `Host` header is used); the legacy Anthropic REST connection option is removed (REST tool connections are validated as REST).
|
|
149
|
+
- **2026.1001.0**: the legacy Composio broker is retired (no automated migration; replacement: Composio Connect behind the `enableMcpAggregators` flag). Execution harnesses now default to **full auto**: ACPX/Claude `approve-all`, OpenCode `allow`, Codex `never` (no approval pauses). To keep provider-side approval gates, set an explicit restrictive mode per agent: `acpxPermissionMode` (`approve-paperclip`, `approve-reads` or `deny-all`) or `opencodePermissionMode` (`ask` or `deny`). Paperclip's own governed approvals still apply.
|
|
150
|
+
- **2026.1005.0**: `PAPERCLIP_CLOUD_UI_SNIPPET` / `PAPERCLIP_CLOUD_UI_SNIPPET_B64` no longer inject HTML (move the integration to a plugin UI contribution); an @-mention in a task comment is context only and no longer starts a run (only explicit assignment or review requests do).
|
|
151
|
+
- **2026.1012.0**: workspace restore locks are now SQLite file locks under `<instance root>/locks/directory-merge/`: stop all old server and worker processes before upgrading or rolling back; tool grants with unknown selectors or malformed restrictions now deny access (review custom grants).
|
|
152
|
+
|
|
144
153
|
---
|
|
145
154
|
|
|
146
155
|
**Last updated:** 2026-04 | **Version:** 2.0.0 | **Author:** The Bearded CTO
|
|
@@ -5,6 +5,6 @@ description: Paperclip TypeScript coding standards — strict mode, 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 files, PascalCase types, camelCase vars, no `any`, structured logs with redaction.
|
|
9
9
|
|
|
10
10
|
See ../../rules/03-coding-standards.md for detailed documentation.
|
|
@@ -31,7 +31,9 @@ Identify:
|
|
|
31
31
|
- Indexes and constraints
|
|
32
32
|
- Validations
|
|
33
33
|
|
|
34
|
-
### Step 2: SQLAlchemy 2.
|
|
34
|
+
### Step 2: SQLAlchemy 2.1 Model
|
|
35
|
+
|
|
36
|
+
> **Migration 2.0 -> 2.1 (key points):** Python 3.11+ required; `greenlet` is no longer installed by default (asyncio: `sqlalchemy[asyncio]` extra); default PostgreSQL driver is psycopg 3; `Session` autoflush is now unconditional (including Core/text); `Select.filter_by()` raises `AmbiguousColumnError` on ambiguous names; mapped dataclass defaults are delivered via descriptor. Source: docs.sqlalchemy.org/en/21/changelog/migration_21.html
|
|
35
37
|
|
|
36
38
|
[Create complete model with Mapped, relationships, constraints]
|
|
37
39
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Rule 06: Tooling
|
|
2
2
|
|
|
3
|
-
> **Reference version:** Python **3.14 (stable, 3.14.
|
|
3
|
+
> **Reference version:** Python **3.14 (stable, 3.14.8+)** — Ruff 0.17+, pytest 9.x (drops Python 3.9).
|
|
4
4
|
> **⚠ JIT (PEP 744):** experimental in Python 3.14, **disabled by default**, subject to re-evaluation by the Python Steering Council before Python 3.15 (Oct. 2026). Do not rely on it in production.
|
|
5
5
|
|
|
6
6
|
Python tooling for code quality, testing, and development workflow.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Code Quality Tools - Python
|
|
2
2
|
|
|
3
|
-
> **Reference versions:** Ruff **0.
|
|
3
|
+
> **Reference versions:** Ruff **0.17+** | pytest **9.x** (drops Python 3.9) | target `py314`.
|
|
4
4
|
|
|
5
5
|
## Ruff - Fast Python Linter & Formatter
|
|
6
6
|
|
|
@@ -140,7 +140,7 @@ async def search_users(
|
|
|
140
140
|
|
|
141
141
|
### Password Hashing with Argon2id (pwdlib)
|
|
142
142
|
|
|
143
|
-
> **passlib is unmaintained since 2020 and incompatible with Python 3.13+ (the `crypt` stdlib module it depended on was removed). bcrypt is
|
|
143
|
+
> **passlib is unmaintained since 2020 and incompatible with Python 3.13+ (the `crypt` stdlib module it depended on was removed). bcrypt is legacy-only per project rule 11 (OWASP: Argon2id first; bcrypt only if Argon2id/scrypt are unavailable). Use `pwdlib` with Argon2id instead.**
|
|
144
144
|
|
|
145
145
|
```python
|
|
146
146
|
# pip install pwdlib[argon2]
|
|
@@ -538,7 +538,7 @@ pip-audit --fix
|
|
|
538
538
|
# pyproject.toml - Pin versions for security
|
|
539
539
|
[project]
|
|
540
540
|
dependencies = [
|
|
541
|
-
"fastapi>=0.
|
|
541
|
+
"fastapi>=0.143.0,<1.0.0",
|
|
542
542
|
"pydantic>=2.10.0,<3.0.0",
|
|
543
543
|
"sqlalchemy>=2.0.0,<3.0.0",
|
|
544
544
|
]
|
|
@@ -582,15 +582,15 @@ updates:
|
|
|
582
582
|
> Authoritative list: see `.claude/rules/11-security.md`.
|
|
583
583
|
|
|
584
584
|
1. **Broken Access Control** (incl. SSRF): deny by default, verify permissions on every request
|
|
585
|
-
2. **
|
|
586
|
-
3. **
|
|
587
|
-
4. **
|
|
588
|
-
5. **
|
|
589
|
-
6. **
|
|
590
|
-
7. **
|
|
591
|
-
8. **
|
|
592
|
-
9. **Security Logging and
|
|
593
|
-
10. **
|
|
585
|
+
2. **Security Misconfiguration**: secure defaults, security headers
|
|
586
|
+
3. **Software Supply Chain Failures** *(new 2025, absorbs Vulnerable and Outdated Components)*: SLSA 1.2, SBOM (CycloneDX 1.7), Sigstore, `pip-audit`, Dependabot/Renovate, Trivy
|
|
587
|
+
4. **Cryptographic Failures**: TLS 1.3, Argon2id for passwords, secrets in vault
|
|
588
|
+
5. **Injection**: Use ORMs, parameterized queries, validate all input
|
|
589
|
+
6. **Insecure Design**: threat modeling, defense in depth, rate limiting
|
|
590
|
+
7. **Authentication Failures**: MFA, brute-force protection, invalidate sessions on logout
|
|
591
|
+
8. **Software or Data Integrity Failures**: verify signatures/checksums, secured CI/CD
|
|
592
|
+
9. **Security Logging and Alerting Failures**: centralize logs, alert on anomalies, retain >= 1 year
|
|
593
|
+
10. **Mishandling of Exceptional Conditions** *(new 2025)*: log errors, never expose stack traces in prod
|
|
594
594
|
|
|
595
595
|
## Conclusion
|
|
596
596
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: react-reviewer
|
|
3
|
-
description: React 19.
|
|
3
|
+
description: React 19.3 + Compiler 1.0 and TypeScript code review specialist — hooks, composition, performance, bundle analysis
|
|
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
|
-
# React 19.
|
|
13
|
+
# React 19.3 + Compiler 1.0 / TypeScript Audit Agent
|
|
14
14
|
|
|
15
15
|
## Identity
|
|
16
16
|
|
|
17
|
-
I am a specialist in React 19.
|
|
17
|
+
I am a specialist in React 19.3 + Compiler 1.0 and TypeScript code review. My approach focuses on issues specific to React: the Rules of Hooks, component composition, performant rendering, the Server/Client Components boundary, and bundle size analysis. I do not perform a generic audit -- I detect what breaks, slows down, or unnecessarily complicates a modern React application.
|
|
18
18
|
|
|
19
19
|
## Scoring System (100 points)
|
|
20
20
|
|
|
@@ -247,7 +247,11 @@ Does the component re-render on every parent change?
|
|
|
247
247
|
NO --> Acceptable (unnecessary micro-optimization)
|
|
248
248
|
```
|
|
249
249
|
|
|
250
|
-
### React 19.
|
|
250
|
+
### React 19.3 features to know
|
|
251
|
+
|
|
252
|
+
No breaking changes. `<ViewTransition>` and Fragment Refs (`<Fragment ref>`) are stable; `addTransitionType` tags a Transition; `use(browser())` (`react-dom`) opts a component out of server rendering; Trusted Types are supported; Context renders without a Provider in Server Components; Effects are double-invoked on hydration in Strict Mode. Do not flag these APIs as experimental.
|
|
253
|
+
|
|
254
|
+
### React 19.3 + Compiler 1.0: Server Components vs Client Components
|
|
251
255
|
|
|
252
256
|
```
|
|
253
257
|
Does the component need interactivity (hooks, events)?
|
|
@@ -368,7 +372,7 @@ import { format } from 'date-fns';
|
|
|
368
372
|
## Audit Report Format
|
|
369
373
|
|
|
370
374
|
```markdown
|
|
371
|
-
# React 19.
|
|
375
|
+
# React 19.3 + Compiler 1.0 / TypeScript Audit Report
|
|
372
376
|
|
|
373
377
|
## Project: [Project Name]
|
|
374
378
|
**Date:** [Date]
|
|
@@ -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**: unauthenticated remote code execution through a crafted HTTP request to a Server Function endpoint; apps supporting React Server Components are affected even without Server Functions.
|
|
570
|
+
- Affected: `react-server-dom-webpack`, `-parcel`, `-turbopack` 19.0, 19.1.0, 19.1.1, 19.2.0. Fixed: 19.0.1, 19.1.2, 19.2.1.
|
|
571
|
+
- Follow-up flaws (CVE-2025-55183, CVE-2025-55184, CVE-2025-67779, CVE-2026-23864: DoS / source exposure): always run the latest patch release.
|
|
572
|
+
- Also upgrade the frameworks that bundle these packages (Next.js, React Router, Waku, `@parcel/rsc`, `@vitejs/plugin-rsc`, rwsdk).
|
|
573
|
+
|
|
574
|
+
Source: [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: React Native 0.
|
|
3
|
+
description: React Native 0.87 and Expo code review specialist — New Architecture, navigation, mobile performance, bundle analysis
|
|
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
|
-
# React Native 0.
|
|
13
|
+
# React Native 0.87 / Expo Audit Agent
|
|
14
14
|
|
|
15
15
|
## Identity
|
|
16
16
|
|
|
17
|
-
I am a specialist in React Native 0.
|
|
17
|
+
I am a specialist in React Native 0.87 and Expo code review. My approach focuses on mobile-specific issues: the New Architecture (JSI, Fabric, TurboModules), navigation with Expo Router, 60 FPS performance, bundle size management, and composition patterns adapted to mobile. I do not perform a generic audit -- I detect what breaks, slows down, or unnecessarily complicates a modern React Native application using the New Architecture by default.
|
|
18
18
|
|
|
19
19
|
## Scoring System (100 points)
|
|
20
20
|
|
|
@@ -411,7 +411,7 @@ import { format } from 'date-fns';
|
|
|
411
411
|
## Audit Report Format
|
|
412
412
|
|
|
413
413
|
```markdown
|
|
414
|
-
# React Native 0.
|
|
414
|
+
# React Native 0.87 / Expo Audit Report
|
|
415
415
|
|
|
416
416
|
## Project: [Project Name]
|
|
417
417
|
**Date:** [Date]
|
|
@@ -1259,6 +1259,6 @@ export default function ArticlesScreen() {
|
|
|
1259
1259
|
| Project type | Activation |
|
|
1260
1260
|
|--------------|-----------|
|
|
1261
1261
|
| **New project (Expo SDK 56+)** | New Architecture **on** by default. |
|
|
1262
|
-
| **Existing project (bare RN 0.
|
|
1262
|
+
| **Existing project (bare RN 0.87)** | Set `newArchEnabled=true` in `android/gradle.properties` AND `RCT_NEW_ARCH_ENABLED=1` on iOS pod install. |
|
|
1263
1263
|
|
|
1264
1264
|
> Expo SDK 56+ ships with New Architecture enabled by default. `npx create-expo-app` generates projects with JSI, TurboModules, and Fabric active out of the box.
|
|
@@ -8,9 +8,9 @@ Ce document couvre les outils essentiels pour le développement React Native ave
|
|
|
8
8
|
|
|
9
9
|
## System Requirements
|
|
10
10
|
|
|
11
|
-
### Node.js >= 22 LTS (required for RN 0.
|
|
11
|
+
### Node.js >= 22 LTS (required for RN 0.87)
|
|
12
12
|
|
|
13
|
-
React Native 0.
|
|
13
|
+
React Native 0.87 requires **Node.js 22.x LTS** minimum (RN 0.85 required Node 20). The recommended version is **Node.js 22.x active LTS**.
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
16
|
# Check version
|
|
@@ -22,7 +22,7 @@ nvm use 22
|
|
|
22
22
|
nvm alias default 22
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
> Node versions < 22 are no longer supported with RN 0.
|
|
25
|
+
> Node versions < 22 are no longer supported with RN 0.87. Upgrade before migrating.
|
|
26
26
|
|
|
27
27
|
### React Native Gesture Handler 3.0.0 — Breaking Changes
|
|
28
28
|
|
|
@@ -399,6 +399,22 @@ npx expo install expo-camera@latest
|
|
|
399
399
|
- [ ] Consistent package manager (npm)
|
|
400
400
|
- [ ] npm scripts configured
|
|
401
401
|
|
|
402
|
+
## React Native 0.86 / 0.87 and Expo SDK 57
|
|
403
|
+
|
|
404
|
+
**Expo SDK 57 ships RN 0.86** (0.86.3); **bare RN = 0.87** (0.87.1 `latest`, 0.88 in RC). An Expo project follows the RN version of its SDK.
|
|
405
|
+
|
|
406
|
+
- `expo@57.0.17+`: Hermes V1 / Reanimated memory regression fixed (from 57.0.9) and dev startup time fixed
|
|
407
|
+
- Reanimated 4.7.x supports RN 0.86-0.88 (4.5 is bundled in SDK 57)
|
|
408
|
+
- Worklets bundle mode is experimental and unsupported: **do not use it in production**
|
|
409
|
+
- Prefer **development builds** over Expo Go when targeting the stores
|
|
410
|
+
- `expo prebuild` cleans and regenerates `android/` and `ios/` by default (`--no-clean` to keep them)
|
|
411
|
+
- iOS 27: `ios.enableSceneSupport` (`expo-build-properties`, `expo@57.0.23+`, opt-in; default in SDK 58)
|
|
412
|
+
- React Navigation 8 is in alpha: watch it, stay on 7.x in production
|
|
413
|
+
|
|
414
|
+
**RN 0.87 breaking changes:** strict TypeScript API by default (deep imports of `react-native/Libraries/*` forbidden, opt-out until 0.88); `InteractionManager` removed (use `requestIdleCallback`); `ImageBackground` deprecated (absolute `Image` inside a `View`); `Modal.animated` and `StatusBar` `backgroundColor`/`translucent` props removed; Node 22.13+, Kotlin 2.0+; AGP 9 supported (`android.builtInKotlin=false` and `android.newDsl=false` keep the old behavior); experimental opt-in Swift Package Manager on iOS (CocoaPods stays the default).
|
|
415
|
+
|
|
416
|
+
**Sources:** [RN 0.87](https://reactnative.dev/blog/2026/08/11/react-native-0.87), [Expo SDK 57](https://expo.dev/changelog/sdk-57)
|
|
417
|
+
|
|
402
418
|
---
|
|
403
419
|
|
|
404
420
|
**Les bons outils rendent le développement plus efficace et agréable.**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: symfony-reviewer
|
|
3
|
-
description: Symfony 8 / PHP 8.5 code review specialist — DDD, Doctrine, CQRS, API Platform
|
|
3
|
+
description: Symfony 8.1 / PHP 8.4+ (8.5 recommended) code review specialist — DDD, Doctrine, CQRS, API Platform
|
|
4
4
|
model: haiku
|
|
5
5
|
effort: low
|
|
6
6
|
maxTurns: 6
|
|
@@ -10,11 +10,11 @@ permissionMode: default
|
|
|
10
10
|
skills: [solid-principles, testing-symfony, security-symfony, architecture-clean-ddd, doctrine-extensions]
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
-
# Symfony 8 / PHP 8.5 Audit Agent
|
|
13
|
+
# Symfony 8.1 / PHP 8.4+ (8.5 recommended) Audit Agent
|
|
14
14
|
|
|
15
15
|
## Identity
|
|
16
16
|
|
|
17
|
-
I am a specialist in Symfony 8 and PHP 8.5 code audit. My approach targets real issues in Symfony projects: DDD design quality, Doctrine performance, separation of responsibilities across application layers, security (OWASP + GDPR), and testing rigor. I do not perform a generic review -- I detect anti-patterns specific to the Symfony/Doctrine/API Platform ecosystem.
|
|
17
|
+
I am a specialist in Symfony 8.1 and PHP 8.4+ (8.5 recommended) code audit. My approach targets real issues in Symfony projects: DDD design quality, Doctrine performance, separation of responsibilities across application layers, security (OWASP + GDPR), and testing rigor. I do not perform a generic review -- I detect anti-patterns specific to the Symfony/Doctrine/API Platform ecosystem.
|
|
18
18
|
|
|
19
19
|
## Scoring System (100 points)
|
|
20
20
|
|
|
@@ -434,7 +434,7 @@ $apiKey = $this->getParameter('stripe_api_key');
|
|
|
434
434
|
## Audit Report Format
|
|
435
435
|
|
|
436
436
|
```markdown
|
|
437
|
-
# Symfony 8 / PHP 8.5 Audit Report
|
|
437
|
+
# Symfony 8.1 / PHP 8.4+ (8.5 recommended) Audit Report
|
|
438
438
|
|
|
439
439
|
## Project: [Project Name]
|
|
440
440
|
**Date:** [Date]
|
|
@@ -519,7 +519,7 @@ $apiKey = $this->getParameter('stripe_api_key');
|
|
|
519
519
|
|------|-------|
|
|
520
520
|
| **PHPStan level 10** | Strict static analysis |
|
|
521
521
|
| **Deptrac** | Layer dependency validation |
|
|
522
|
-
| **PHP-CS-Fixer** (
|
|
522
|
+
| **PHP-CS-Fixer** (PER-CS 3.0) | Automatic formatting |
|
|
523
523
|
| **Pest PHP** / PHPUnit | Unit and integration tests |
|
|
524
524
|
| **Behat** | BDD, business scenarios |
|
|
525
525
|
| **Infection** | Mutation testing |
|
|
@@ -20,7 +20,7 @@ This folder contains 4 essential checklists for the development workflow.
|
|
|
20
20
|
**Automatic checks:**
|
|
21
21
|
- ✅ Tests pass (unit + integration + Behat)
|
|
22
22
|
- ✅ PHPStan level 10 (0 errors)
|
|
23
|
-
- ✅ CS-Fixer (
|
|
23
|
+
- ✅ CS-Fixer (PER-CS 3.0 formatted code)
|
|
24
24
|
- ✅ Hadolint (valid Dockerfile)
|
|
25
25
|
- ✅ Coverage ≥ 80%
|
|
26
26
|
- ✅ Conformant commit message (Conventional Commits)
|
|
@@ -424,7 +424,7 @@ make phpstan
|
|
|
424
424
|
|
|
425
425
|
# CS-Fixer
|
|
426
426
|
make cs-fix
|
|
427
|
-
# ✅ Code formaté
|
|
427
|
+
# ✅ Code formaté PER-CS 3.0
|
|
428
428
|
|
|
429
429
|
# Hadolint (si Dockerfile modifié)
|
|
430
430
|
make hadolint
|
|
@@ -585,7 +585,7 @@ Alignement avec la politique tarifaire des hôtels partenaires.
|
|
|
585
585
|
|
|
586
586
|
- [x] Tests passent
|
|
587
587
|
- [x] PHPStan niveau 8 OK
|
|
588
|
-
- [x] Code formaté (
|
|
588
|
+
- [x] Code formaté (PER-CS 3.0)
|
|
589
589
|
- [x] Documentation à jour
|
|
590
590
|
- [x] Pas de breaking changes
|
|
591
591
|
- [x] Migration BDD: N/A
|