@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
|
@@ -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
|
## O Que (Stack & Estrutura)
|
|
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 é um sistema de duas camadas**: um plano de controle (server + web + DB) que possui todo o estado de governança, e adaptadores que executam trabalho e reportam de volta. Adaptadores nunca decidem orçamentos ou aprovações.
|
|
11
11
|
|
|
@@ -15,7 +15,7 @@ Este diretório contém as regras, comandos, skills e templates do Claude-Craft
|
|
|
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
|
## O que há aqui
|
|
21
21
|
|
|
@@ -19,7 +19,7 @@ Guiar um operador atraves do onboarding: instalar, criar a instancia, bootstrap
|
|
|
19
19
|
|
|
20
20
|
### 1. Precondicoes
|
|
21
21
|
|
|
22
|
-
- [ ] Node.js
|
|
22
|
+
- [ ] Node.js 24.11+ e pnpm 9.15+ instalados
|
|
23
23
|
- [ ] PostgreSQL acessivel **OU** aceite o Postgres embedado para dev local
|
|
24
24
|
- [ ] Porta 3100 disponivel (ou defina `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 | Mínimo do Paperclip (`paperclipai` `engines`: `>=24.11.0`) |
|
|
10
10
|
| pnpm | 9.15+ | Gerenciador oficial de workspaces |
|
|
11
11
|
| tsx | latest | Executar arquivos TS durante dev |
|
|
12
12
|
| PostgreSQL | 15+ (or embedded) | Store primario |
|
|
@@ -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 vem com um Dockerfile (veja `docs.paperclip.ing/deployment/docker`). P
|
|
|
209
209
|
|
|
210
210
|
## Checklist
|
|
211
211
|
|
|
212
|
-
- [ ] Node
|
|
212
|
+
- [ ] Node 24.11+, pnpm 9.15+, Corepack habilitado
|
|
213
213
|
- [ ] ESLint flat config + Prettier configurados
|
|
214
214
|
- [ ] Hook pre-commit executa lint-staged
|
|
215
215
|
- [ ] CI executa lint, typecheck, test, build
|
|
@@ -141,6 +141,15 @@ Ajuste fontes script/style CSP se a UI requer CDNs especificos; caso contrario m
|
|
|
141
141
|
- [ ] Activity log append-only, forcado DB onde possivel
|
|
142
142
|
- [ ] Kill switch + plugin disable testados
|
|
143
143
|
|
|
144
|
+
## Notas de atualização: mudanças incompatíveis (2026.916.0 a 2026.1012.0)
|
|
145
|
+
|
|
146
|
+
Verificado nas notas de versão oficiais do GitHub (paperclipai/paperclip).
|
|
147
|
+
|
|
148
|
+
- **2026.916.0**: as APIs de agente não retornam mais credenciais em texto claro (os bindings `plain` são ocultados: usar `secretRef`, nunca reler segredos); os "cheap model profiles" foram removidos (a migração `0236` apaga os `modelProfiles` armazenados); `X-Forwarded-Host` só é considerado quando o peer imediato passa `TRUST_PROXY` (defini-lo atrás de um reverse proxy; caso contrário, usa-se o cabeçalho `Host` bruto); a opção de conexão REST legacy da Anthropic foi removida (conexões de ferramentas REST são validadas como REST).
|
|
149
|
+
- **2026.1001.0**: o broker Composio legacy foi aposentado (sem migração automática; substituto: Composio Connect atrás do flag `enableMcpAggregators`). Os harnesses de execução passam a **full auto por padrão**: ACPX/Claude `approve-all`, OpenCode `allow`, Codex `never` (sem pausas de aprovação). Para manter os portões de aprovação do provedor, definir explicitamente um modo restritivo por agente: `acpxPermissionMode` (`approve-paperclip`, `approve-reads` ou `deny-all`) ou `opencodePermissionMode` (`ask` ou `deny`). As aprovações governadas do Paperclip continuam valendo.
|
|
150
|
+
- **2026.1005.0**: `PAPERCLIP_CLOUD_UI_SNIPPET` / `PAPERCLIP_CLOUD_UI_SNIPPET_B64` não injetam mais HTML (migrar a integração para uma contribuição de UI de plugin); uma @-menção em um comentário de tarefa é apenas contexto e não inicia mais um run (somente atribuição explícita ou pedidos de revisão iniciam).
|
|
151
|
+
- **2026.1012.0**: os locks de restauração de workspace agora são locks de arquivo SQLite em `<instance root>/locks/directory-merge/`: parar todos os processos antigos de servidor e worker antes de atualizar ou reverter; tool grants com seletores desconhecidos ou restrições malformadas agora negam o acesso (revisar os grants personalizados).
|
|
152
|
+
|
|
144
153
|
---
|
|
145
154
|
|
|
146
155
|
**Ultima atualizacao:** 2026-04 | **Versao:** 2.0.0 | **Autor:** The Bearded CTO
|
|
@@ -5,6 +5,6 @@ description: Padroes codigo TypeScript Paperclip — modo strict, arquivos kebab
|
|
|
5
5
|
|
|
6
6
|
# Padroes de Codigo Paperclip (TypeScript)
|
|
7
7
|
|
|
8
|
-
Node
|
|
8
|
+
Node 24.11+, TypeScript strict + `noUncheckedIndexedAccess`, workspaces pnpm 9.15+, arquivos kebab-case, tipos PascalCase, vars camelCase, sem `any`, logs estruturados com redacao.
|
|
9
9
|
|
|
10
10
|
Veja ../../rules/03-coding-standards.md para documentacao detalhada.
|
|
@@ -31,7 +31,9 @@ Identificar:
|
|
|
31
31
|
- Índices e restrições
|
|
32
32
|
- Validações
|
|
33
33
|
|
|
34
|
-
### Passo 2: Modelo SQLAlchemy 2.
|
|
34
|
+
### Passo 2: Modelo SQLAlchemy 2.1
|
|
35
|
+
|
|
36
|
+
> **Migração 2.0 -> 2.1 (pontos principais):** requer Python 3.11+; `greenlet` não é mais instalado por padrão (asyncio: extra `sqlalchemy[asyncio]`); o driver PostgreSQL padrão é psycopg 3; o autoflush da `Session` agora é incondicional (inclusive Core/texto); `Select.filter_by()` lança `AmbiguousColumnError` em nomes ambíguos; os defaults de dataclasses mapeadas são entregues via descritor. Fonte: docs.sqlalchemy.org/en/21/changelog/migration_21.html
|
|
35
37
|
|
|
36
38
|
[Criar modelo completo com Mapped, relationships, constraints]
|
|
37
39
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Regra 06: Ferramentas
|
|
2
2
|
|
|
3
|
-
> **Versão de referência:** Python **3.14 (estável, 3.14.
|
|
3
|
+
> **Versão de referência:** Python **3.14 (estável, 3.14.8+)** — Ruff 0.17+, pytest 9.x (remove suporte ao Python 3.9).
|
|
4
4
|
> **⚠ JIT (PEP 744):** experimental no Python 3.14, **desativado por padrão**, sujeito a reavaliação pelo Python Steering Council antes do Python 3.15 (out. 2026). Não depender em produção.
|
|
5
5
|
|
|
6
6
|
Ferramentas Python para qualidade de código, testes e fluxo de desenvolvimento.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Ferramentas de qualidade de código - Python
|
|
2
2
|
|
|
3
|
-
> **Versões de referência:** Ruff **0.
|
|
3
|
+
> **Versões de referência:** Ruff **0.17+** | pytest **9.x** (remove suporte ao Python 3.9) | alvo `py314`.
|
|
4
4
|
|
|
5
5
|
## Ruff - Linter e formatador rápido de Python
|
|
6
6
|
|
|
@@ -140,7 +140,7 @@ async def search_users(
|
|
|
140
140
|
|
|
141
141
|
### Hash de senha com Argon2id (pwdlib)
|
|
142
142
|
|
|
143
|
-
> **passlib nao e mantido desde 2020 e e incompativel com Python 3.13+ (o modulo stdlib `crypt` do qual dependia foi removido). bcrypt
|
|
143
|
+
> **passlib nao e mantido desde 2020 e e incompativel com Python 3.13+ (o modulo stdlib `crypt` do qual dependia foi removido). bcrypt fica reservado a legacy segundo a regra 11 do projeto (OWASP: Argon2id primeiro; bcrypt apenas se Argon2id/scrypt nao estiverem disponiveis). Use `pwdlib` com Argon2id.**
|
|
144
144
|
|
|
145
145
|
```python
|
|
146
146
|
# pip install pwdlib[argon2]
|
|
@@ -538,7 +538,7 @@ pip-audit --fix
|
|
|
538
538
|
# pyproject.toml - Fixar versoes para seguranca
|
|
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
|
]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: react-reviewer
|
|
3
|
-
description: Especialista em revisao de codigo React 19.
|
|
3
|
+
description: Especialista em revisao de codigo React 19.3 + Compiler 1.0 e TypeScript — hooks, composicao, performance, analise de bundle
|
|
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
|
-
# Agente Auditor React 19.
|
|
13
|
+
# Agente Auditor React 19.3 + Compiler 1.0 / TypeScript
|
|
14
14
|
|
|
15
15
|
## Identidade
|
|
16
16
|
|
|
17
|
-
Sou um especialista em revisao de codigo React 19.
|
|
17
|
+
Sou um especialista em revisao de codigo React 19.3 + Compiler 1.0 e TypeScript. Minha abordagem e centrada nos problemas especificos do React: as regras dos hooks, a composicao de componentes, a renderizacao performante, a fronteira Server/Client Components, e a analise do tamanho dos bundles. Nao faco uma auditoria generica -- detecto o que quebra, desacelera ou complexifica desnecessariamente uma aplicacao React moderna.
|
|
18
18
|
|
|
19
19
|
## Sistema de pontuacao (100 pontos)
|
|
20
20
|
|
|
@@ -247,7 +247,11 @@ O componente re-renderiza a cada mudanca do pai?
|
|
|
247
247
|
NAO --> Aceitavel (micro-otimizacao desnecessaria)
|
|
248
248
|
```
|
|
249
249
|
|
|
250
|
-
### React 19.
|
|
250
|
+
### Novidades do React 19.3 a conhecer
|
|
251
|
+
|
|
252
|
+
Sem breaking changes. `<ViewTransition>` e Fragment Refs (`<Fragment ref>`) sao estaveis; `addTransitionType` marca uma Transition; `use(browser())` (`react-dom`) exclui um componente da renderizacao no servidor; Trusted Types suportados; Context renderiza sem Provider em Server Components; Effects sao invocados duas vezes na hidratacao no Strict Mode. Nao sinalizar estas APIs como experimentais.
|
|
253
|
+
|
|
254
|
+
### React 19.3 + Compiler 1.0: Server Components vs Client Components
|
|
251
255
|
|
|
252
256
|
```
|
|
253
257
|
O componente precisa de interatividade (hooks, events)?
|
|
@@ -368,7 +372,7 @@ import { format } from 'date-fns';
|
|
|
368
372
|
## Formato do relatorio de auditoria
|
|
369
373
|
|
|
370
374
|
```markdown
|
|
371
|
-
# Relatorio de auditoria React 19.
|
|
375
|
+
# Relatorio de auditoria React 19.3 + Compiler 1.0 / TypeScript
|
|
372
376
|
|
|
373
377
|
## Projeto: [Nome do projeto]
|
|
374
378
|
**Data:** [Data]
|
|
@@ -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**: execucao remota de codigo sem autenticacao por meio de uma requisicao HTTP forjada para um endpoint de Server Function; apps que suportam React Server Components sao afetados mesmo sem Server Functions.
|
|
570
|
+
- Afetados: `react-server-dom-webpack`, `-parcel`, `-turbopack` 19.0, 19.1.0, 19.1.1, 19.2.0. Corrigido em: 19.0.1, 19.1.2, 19.2.1.
|
|
571
|
+
- Falhas posteriores (CVE-2025-55183, CVE-2025-55184, CVE-2025-67779, CVE-2026-23864: DoS / exposicao de codigo-fonte): usar sempre a ultima versao de patch.
|
|
572
|
+
- Atualizar tambem os frameworks que embutem esses pacotes (Next.js, React Router, Waku, `@parcel/rsc`, `@vitejs/plugin-rsc`, rwsdk).
|
|
573
|
+
|
|
574
|
+
Fonte: [React advisory](https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components)
|
|
575
|
+
|
|
567
576
|
## Gerenciamento de Segredos
|
|
568
577
|
|
|
569
578
|
### Variaveis de Ambiente
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: reactnative-reviewer
|
|
3
|
-
description: Especialista em revisao de codigo React Native 0.
|
|
3
|
+
description: Especialista em revisao de codigo React Native 0.87 e Expo SDK 56 — New Architecture, navegacao, performance mobile, analise de bundle
|
|
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
|
-
# Agente Auditor React Native 0.
|
|
13
|
+
# Agente Auditor React Native 0.87 / Expo
|
|
14
14
|
|
|
15
15
|
## Identidade
|
|
16
16
|
|
|
17
|
-
Sou um especialista em revisao de codigo React Native 0.
|
|
17
|
+
Sou um especialista em revisao de codigo React Native 0.87 e Expo. Minha abordagem e centrada nos problemas especificos do mobile: a New Architecture (JSI, Fabric, TurboModules), a navegacao com Expo Router, as performances a 60 FPS, a gestao do tamanho do bundle, e os padroes de composicao adaptados ao mobile. Nao faco uma auditoria generica -- detecto o que quebra, desacelera ou complexifica desnecessariamente uma aplicacao React Native moderna utilizando a New Architecture por padrao.
|
|
18
18
|
|
|
19
19
|
## Sistema de pontuacao (100 pontos)
|
|
20
20
|
|
|
@@ -411,7 +411,7 @@ import { format } from 'date-fns';
|
|
|
411
411
|
## Formato do relatorio de auditoria
|
|
412
412
|
|
|
413
413
|
```markdown
|
|
414
|
-
# Relatorio de auditoria React Native 0.
|
|
414
|
+
# Relatorio de auditoria React Native 0.87 / Expo
|
|
415
415
|
|
|
416
416
|
## Projeto: [Nome do projeto]
|
|
417
417
|
**Data:** [Data]
|
|
@@ -8,9 +8,9 @@ Este documento cobre as ferramentas essenciais para o desenvolvimento React Nati
|
|
|
8
8
|
|
|
9
9
|
## Requisitos do Sistema
|
|
10
10
|
|
|
11
|
-
### Node.js >= 22 LTS (obrigatório para RN 0.
|
|
11
|
+
### Node.js >= 22 LTS (obrigatório para RN 0.87)
|
|
12
12
|
|
|
13
|
-
React Native 0.
|
|
13
|
+
React Native 0.87 requer **Node.js 22.x LTS** no mínimo (o RN 0.85 exigia Node 20). A versão recomendada é **Node.js 22.x active LTS**.
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
16
|
# Verificar versão
|
|
@@ -22,7 +22,7 @@ nvm use 22
|
|
|
22
22
|
nvm alias default 22
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
> Versões Node < 22 não são mais suportadas com RN 0.
|
|
25
|
+
> Versões Node < 22 não são mais suportadas com RN 0.87. Atualizar antes de migrar.
|
|
26
26
|
|
|
27
27
|
### React Native Gesture Handler 3.0.0 — Mudanças Breaking
|
|
28
28
|
|
|
@@ -399,6 +399,22 @@ npx expo install expo-camera@latest
|
|
|
399
399
|
- [ ] Package manager consistente (npm)
|
|
400
400
|
- [ ] Scripts npm configurados
|
|
401
401
|
|
|
402
|
+
## React Native 0.86 / 0.87 e Expo SDK 57
|
|
403
|
+
|
|
404
|
+
**O Expo SDK 57 inclui o RN 0.86** (0.86.3); **RN bare = 0.87** (0.87.1 `latest`, 0.88 em RC). Um projeto Expo segue a versão do RN do seu SDK.
|
|
405
|
+
|
|
406
|
+
- `expo@57.0.17+`: regressão de memória Hermes V1 / Reanimated corrigida (a partir da 57.0.9) e tempo de inicialização em desenvolvimento corrigido
|
|
407
|
+
- Reanimated 4.7.x suporta RN 0.86-0.88 (a 4.5 vem embutida no SDK 57)
|
|
408
|
+
- O bundle mode do Worklets é experimental e não suportado: **não usar em produção**
|
|
409
|
+
- Preferir **development builds** ao Expo Go ao mirar as lojas
|
|
410
|
+
- `expo prebuild` limpa e regenera `android/` e `ios/` por padrão (`--no-clean` para mantê-los)
|
|
411
|
+
- iOS 27: `ios.enableSceneSupport` (`expo-build-properties`, `expo@57.0.23+`, opt-in; padrão no SDK 58)
|
|
412
|
+
- React Navigation 8 está em alpha: acompanhar e permanecer na 7.x em produção
|
|
413
|
+
|
|
414
|
+
**Breaking changes do RN 0.87:** API TypeScript estrita por padrão (deep imports de `react-native/Libraries/*` proibidos, opt-out até a 0.88); `InteractionManager` removido (usar `requestIdleCallback`); `ImageBackground` obsoleto (`Image` absoluto dentro de uma `View`); props `Modal.animated` e `StatusBar` `backgroundColor`/`translucent` removidas; Node 22.13+, Kotlin 2.0+; AGP 9 suportado (`android.builtInKotlin=false` e `android.newDsl=false` mantêm o comportamento antigo); Swift Package Manager no iOS experimental e opt-in (CocoaPods continua o padrão).
|
|
415
|
+
|
|
416
|
+
**Fontes:** [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
|
**As ferramentas certas tornam o desenvolvimento mais eficiente e agradável.**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: symfony-reviewer
|
|
3
|
-
description: Especialista em revisao de codigo Symfony 8.1 / PHP 8.5 — DDD, Doctrine, CQRS, API Platform
|
|
3
|
+
description: Especialista em revisao de codigo Symfony 8.1 / PHP 8.4+ (8.5 recomendado) — 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
|
-
# Agente Auditor Symfony 8 / PHP 8.5
|
|
13
|
+
# Agente Auditor Symfony 8.1 / PHP 8.4+ (8.5 recomendado)
|
|
14
14
|
|
|
15
15
|
## Identidade
|
|
16
16
|
|
|
17
|
-
Sou um especialista em auditoria de codigo Symfony 8 e PHP 8.5. Minha abordagem visa os problemas reais dos projetos Symfony: a qualidade do design DDD, as performances do Doctrine, a separacao de responsabilidades nas camadas aplicativas, a seguranca (OWASP + RGPD), e o rigor dos testes. Nao faco uma revisao generica -- detecto os anti-patterns especificos do ecossistema Symfony/Doctrine/API Platform.
|
|
17
|
+
Sou um especialista em auditoria de codigo Symfony 8.1 e PHP 8.4+ (8.5 recomendado). Minha abordagem visa os problemas reais dos projetos Symfony: a qualidade do design DDD, as performances do Doctrine, a separacao de responsabilidades nas camadas aplicativas, a seguranca (OWASP + RGPD), e o rigor dos testes. Nao faco uma revisao generica -- detecto os anti-patterns especificos do ecossistema Symfony/Doctrine/API Platform.
|
|
18
18
|
|
|
19
19
|
## Sistema de pontuacao (100 pontos)
|
|
20
20
|
|
|
@@ -434,7 +434,7 @@ $apiKey = $this->getParameter('stripe_api_key');
|
|
|
434
434
|
## Formato do relatorio de auditoria
|
|
435
435
|
|
|
436
436
|
```markdown
|
|
437
|
-
# Relatorio de auditoria Symfony 8 / PHP 8.5
|
|
437
|
+
# Relatorio de auditoria Symfony 8.1 / PHP 8.4+ (8.5 recomendado)
|
|
438
438
|
|
|
439
439
|
## Projeto: [Nome do projeto]
|
|
440
440
|
**Data:** [Data]
|
|
@@ -519,7 +519,7 @@ $apiKey = $this->getParameter('stripe_api_key');
|
|
|
519
519
|
|------------|-----|
|
|
520
520
|
| **PHPStan level 10** | Analise estatica estrita |
|
|
521
521
|
| **Deptrac** | Validacao das dependencias entre camadas |
|
|
522
|
-
| **PHP-CS-Fixer** (
|
|
522
|
+
| **PHP-CS-Fixer** (PER-CS 3.0) | Formatacao automatica |
|
|
523
523
|
| **Pest PHP** / PHPUnit | Testes unitarios e integracao |
|
|
524
524
|
| **Behat** | BDD, cenarios de negocio |
|
|
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
|
|
@@ -88,7 +88,7 @@ private array $participants;
|
|
|
88
88
|
|
|
89
89
|
## 3. Coding Standards (PHP CS Fixer)
|
|
90
90
|
|
|
91
|
-
### ✅ Code formaté selon
|
|
91
|
+
### ✅ Code formaté selon PER-CS 3.0
|
|
92
92
|
|
|
93
93
|
```bash
|
|
94
94
|
make cs-fix
|
|
@@ -97,7 +97,7 @@ make cs-fix
|
|
|
97
97
|
|
|
98
98
|
**Critère de succès:**
|
|
99
99
|
- ✅ Code formaté automatiquement
|
|
100
|
-
- ✅
|
|
100
|
+
- ✅ PER-CS 3.0 respecté
|
|
101
101
|
- ✅ Pas de trailing whitespace
|
|
102
102
|
- ✅ Indentation cohérente (4 espaces)
|
|
103
103
|
|
|
@@ -135,7 +135,7 @@ make hadolint
|
|
|
135
135
|
FROM php:fpm
|
|
136
136
|
|
|
137
137
|
# ✅ Version explicite
|
|
138
|
-
FROM php:8.
|
|
138
|
+
FROM php:8.5-fpm-alpine
|
|
139
139
|
|
|
140
140
|
# ❌ apt-get sans cleanup
|
|
141
141
|
RUN apt-get install -y curl
|
|
@@ -514,7 +514,7 @@ make pre-commit && git commit
|
|
|
514
514
|
### ✅ Toujours commit
|
|
515
515
|
|
|
516
516
|
- ✅ Tests qui passent
|
|
517
|
-
- ✅ Code formaté (
|
|
517
|
+
- ✅ Code formaté (PER-CS 3.0)
|
|
518
518
|
- ✅ PHPStan niveau 8 OK
|
|
519
519
|
- ✅ Documentation à jour
|
|
520
520
|
- ✅ Message de commit clair
|
|
@@ -897,7 +897,7 @@ Avant de merger le refactoring:
|
|
|
897
897
|
- [ ] Code plus simple (KISS)
|
|
898
898
|
- [ ] SOLID respecté
|
|
899
899
|
- [ ] PHPStan niveau 8 OK
|
|
900
|
-
- [ ] Code formaté (
|
|
900
|
+
- [ ] Code formaté (PER-CS 3.0)
|
|
901
901
|
- [ ] Commits atomiques (1 changement = 1 commit)
|
|
902
902
|
- [ ] Message de commit clair
|
|
903
903
|
- [ ] Documentation si refactoring majeur (ADR)
|
|
@@ -97,7 +97,7 @@ Exécute Deptrac pour vérifier les dépendances entre couches :
|
|
|
97
97
|
|
|
98
98
|
```bash
|
|
99
99
|
# Vérifier si deptrac.yaml existe
|
|
100
|
-
docker run --rm -v $(pwd):/app php:8.
|
|
100
|
+
docker run --rm -v $(pwd):/app php:8.5-cli test -f /app/deptrac.yaml && echo "✅ deptrac.yaml trouvé" || echo "❌ deptrac.yaml manquant"
|
|
101
101
|
|
|
102
102
|
# Exécuter Deptrac
|
|
103
103
|
docker run --rm -v $(pwd):/app qossmic/deptrac analyse
|
|
@@ -221,16 +221,16 @@ Outils :
|
|
|
221
221
|
|
|
222
222
|
```bash
|
|
223
223
|
# Analyser la structure du projet
|
|
224
|
-
docker run --rm -v $(pwd):/app php:8.
|
|
224
|
+
docker run --rm -v $(pwd):/app php:8.5-cli find /app/src -type d -maxdepth 2
|
|
225
225
|
|
|
226
226
|
# Vérifier les dépendances avec Deptrac
|
|
227
227
|
docker run --rm -v $(pwd):/app qossmic/deptrac analyse --no-progress
|
|
228
228
|
|
|
229
229
|
# Lister les classes par namespace
|
|
230
|
-
docker run --rm -v $(pwd):/app php:8.
|
|
230
|
+
docker run --rm -v $(pwd):/app php:8.5-cli find /app/src -name "*.php" -exec grep -l "namespace" {} \;
|
|
231
231
|
|
|
232
232
|
# Vérifier la présence d'annotations Doctrine dans Domain
|
|
233
|
-
docker run --rm -v $(pwd):/app php:8.
|
|
233
|
+
docker run --rm -v $(pwd):/app php:8.5-cli grep -r "@ORM" /app/src/Domain/ || echo "✅ Pas d'annotations ORM dans Domain"
|
|
234
234
|
```
|
|
235
235
|
|
|
236
236
|
## IMPORTANT
|
|
@@ -31,10 +31,10 @@ Exécute PHP_CodeSniffer pour vérifier le respect de PSR-12 :
|
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
33
|
# Vérifier si phpcs est installé
|
|
34
|
-
docker run --rm -v $(pwd):/app php:8.
|
|
34
|
+
docker run --rm -v $(pwd):/app php:8.5-cli test -f /app/vendor/bin/phpcs && echo "✅ phpcs trouvé" || echo "❌ phpcs manquant"
|
|
35
35
|
|
|
36
36
|
# Exécuter phpcs
|
|
37
|
-
docker run --rm -v $(pwd):/app php:8.
|
|
37
|
+
docker run --rm -v $(pwd):/app php:8.5-cli /app/vendor/bin/phpcs --standard=PSR12 src/ --report=summary
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
#### Standards PSR-12 (5 points)
|
|
@@ -58,7 +58,7 @@ Exécute PHPStan au niveau 10 :
|
|
|
58
58
|
|
|
59
59
|
```bash
|
|
60
60
|
# Vérifier si PHPStan est installé
|
|
61
|
-
docker run --rm -v $(pwd):/app php:8.
|
|
61
|
+
docker run --rm -v $(pwd):/app php:8.5-cli test -f /app/vendor/bin/phpstan && echo "✅ PHPStan trouvé" || echo "❌ PHPStan manquant"
|
|
62
62
|
|
|
63
63
|
# Exécuter PHPStan niveau 10
|
|
64
64
|
docker run --rm -v $(pwd):/app phpstan/phpstan analyse src --level=10 --error-format=table
|
|
@@ -100,10 +100,10 @@ Vérifie l'utilisation stricte des types :
|
|
|
100
100
|
|
|
101
101
|
```bash
|
|
102
102
|
# Vérifier declare(strict_types=1)
|
|
103
|
-
docker run --rm -v $(pwd):/app php:8.
|
|
103
|
+
docker run --rm -v $(pwd):/app php:8.5-cli grep -r "declare(strict_types=1)" /app/src --include="*.php" | wc -l
|
|
104
104
|
|
|
105
105
|
# Compter le nombre de fichiers PHP
|
|
106
|
-
docker run --rm -v $(pwd):/app php:8.
|
|
106
|
+
docker run --rm -v $(pwd):/app php:8.5-cli find /app/src -name "*.php" | wc -l
|
|
107
107
|
|
|
108
108
|
# Les deux nombres doivent être identiques
|
|
109
109
|
```
|
|
@@ -113,13 +113,13 @@ docker run --rm -v $(pwd):/app php:8.2-cli find /app/src -name "*.php" | wc -l
|
|
|
113
113
|
- [ ] `declare(strict_types=1)` dans 100% des fichiers PHP
|
|
114
114
|
- [ ] Type hints sur tous les paramètres de méthodes publiques
|
|
115
115
|
- [ ] Type hints sur tous les retours de méthodes publiques
|
|
116
|
-
- [ ] Type hints sur toutes les propriétés de classe
|
|
117
|
-
- [ ] Utilisation des union types
|
|
116
|
+
- [ ] Type hints sur toutes les propriétés de classe
|
|
117
|
+
- [ ] Utilisation des union types au lieu de mixed
|
|
118
118
|
- [ ] Pas de docblock @param/@return redondants avec les types natifs
|
|
119
|
-
- [ ] Utilisation de readonly pour propriétés immuables
|
|
119
|
+
- [ ] Utilisation de readonly pour propriétés immuables
|
|
120
120
|
- [ ] Pas de suppression d'erreurs avec @phpstan-ignore
|
|
121
121
|
- [ ] Types stricts dans les tableaux : array<string, int>
|
|
122
|
-
- [ ] Utilisation de never type pour méthodes qui ne retournent jamais
|
|
122
|
+
- [ ] Utilisation de never type pour méthodes qui ne retournent jamais
|
|
123
123
|
|
|
124
124
|
**Points obtained** : ___/5
|
|
125
125
|
|
|
@@ -130,7 +130,7 @@ Analysis la complexité du code :
|
|
|
130
130
|
```bash
|
|
131
131
|
# Installer phpmetrics si nécessaire
|
|
132
132
|
# Analyser la complexité
|
|
133
|
-
docker run --rm -v $(pwd):/app php:8.
|
|
133
|
+
docker run --rm -v $(pwd):/app php:8.5-cli php -r "
|
|
134
134
|
require '/app/vendor/autoload.php';
|
|
135
135
|
// Analyse basique de complexité
|
|
136
136
|
"
|
|
@@ -262,7 +262,7 @@ Exemples :
|
|
|
262
262
|
|
|
263
263
|
3. 🎯 [ACTION RECOMMANDÉE] - Formatter le code selon PSR-12
|
|
264
264
|
Impact : ⭐⭐⭐ | Effort : 🔥
|
|
265
|
-
Commande : docker run --rm -v $(pwd):/app php:8.
|
|
265
|
+
Commande : docker run --rm -v $(pwd):/app php:8.5-cli /app/vendor/bin/phpcbf --standard=PSR12 src/
|
|
266
266
|
|
|
267
267
|
=================================================
|
|
268
268
|
RECOMMANDATIONS
|
|
@@ -305,10 +305,10 @@ CI/CD :
|
|
|
305
305
|
|
|
306
306
|
```bash
|
|
307
307
|
# Vérifier PSR-12
|
|
308
|
-
docker run --rm -v $(pwd):/app php:8.
|
|
308
|
+
docker run --rm -v $(pwd):/app php:8.5-cli /app/vendor/bin/phpcs --standard=PSR12 src/ --report=summary
|
|
309
309
|
|
|
310
310
|
# Corriger automatiquement PSR-12
|
|
311
|
-
docker run --rm -v $(pwd):/app php:8.
|
|
311
|
+
docker run --rm -v $(pwd):/app php:8.5-cli /app/vendor/bin/phpcbf --standard=PSR12 src/
|
|
312
312
|
|
|
313
313
|
# PHPStan niveau 10
|
|
314
314
|
docker run --rm -v $(pwd):/app phpstan/phpstan analyse src --level=10 --error-format=table
|
|
@@ -317,10 +317,10 @@ docker run --rm -v $(pwd):/app phpstan/phpstan analyse src --level=10 --error-fo
|
|
|
317
317
|
docker run --rm -v $(pwd):/app phpstan/phpstan analyse src --level=10 --generate-baseline
|
|
318
318
|
|
|
319
319
|
# PHP CS Fixer
|
|
320
|
-
docker run --rm -v $(pwd):/app php:8.
|
|
320
|
+
docker run --rm -v $(pwd):/app php:8.5-cli /app/vendor/bin/php-cs-fixer fix src --dry-run --diff
|
|
321
321
|
|
|
322
322
|
# Vérifier declare(strict_types=1) partout
|
|
323
|
-
docker run --rm -v $(pwd):/app php:8.
|
|
323
|
+
docker run --rm -v $(pwd):/app php:8.5-cli sh -c 'for f in $(find /app/src -name "*.php"); do grep -q "declare(strict_types=1)" "$f" || echo "❌ Manquant: $f"; done'
|
|
324
324
|
```
|
|
325
325
|
|
|
326
326
|
## IMPORTANT
|