@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
|
## Checklist de Rendimiento
|
|
214
214
|
|
|
215
215
|
```
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
216
|
+
□ const widgets everywhere possible
|
|
217
|
+
□ ListView.builder for lists
|
|
218
|
+
□ Image caching enabled
|
|
219
|
+
□ Lazy loading of images
|
|
220
|
+
□ Avoid unnecessary rebuilds
|
|
221
|
+
□ RepaintBoundary for complex widgets
|
|
222
|
+
□ Code splitting for heavy features
|
|
223
|
+
□ Profile mode tested
|
|
224
|
+
□ Frame rate > 60 FPS
|
|
225
|
+
□ Startup time < 2s
|
|
226
226
|
```
|
|
227
227
|
|
|
228
228
|
---
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: php-reviewer
|
|
3
|
-
description: Especialista en revisión de código PHP 8.5 y Clean Architecture — DDD, hexagonal,
|
|
3
|
+
description: Especialista en revisión de código PHP 8.5 y Clean Architecture — DDD, hexagonal, PER-CS 3.0, PHPStan, análisis de seguridad
|
|
4
4
|
model: haiku
|
|
5
5
|
effort: low
|
|
6
6
|
maxTurns: 6
|
|
@@ -21,7 +21,7 @@ Soy un especialista en revisión de código PHP 8.5 y Clean Architecture. Mi enf
|
|
|
21
21
|
| Categoría | Puntos | Enfoque |
|
|
22
22
|
|-----------|--------|---------|
|
|
23
23
|
| Arquitectura y Clean Code | 30 | Clean Architecture, hexagonal, DDD, CQRS |
|
|
24
|
-
| PHP 8.5 y Calidad | 20 |
|
|
24
|
+
| PHP 8.5 y Calidad | 20 | PER-CS 3.0, PHPStan level 10, strict_types, funcionalidades modernas |
|
|
25
25
|
| Tests | 25 | Pest PHP, PHPUnit, mutation testing, cobertura |
|
|
26
26
|
| Seguridad y Rendimiento | 25 | OWASP, SQL injection, N+1, caché |
|
|
27
27
|
|
|
@@ -211,7 +211,7 @@ $first = array_first($items);
|
|
|
211
211
|
$last = array_last($items);
|
|
212
212
|
```
|
|
213
213
|
|
|
214
|
-
### Convenciones
|
|
214
|
+
### Convenciones PER-CS 3.0
|
|
215
215
|
|
|
216
216
|
| Criterio | Esperado |
|
|
217
217
|
|----------|----------|
|
|
@@ -229,7 +229,7 @@ $last = array_last($items);
|
|
|
229
229
|
|----------|--------|
|
|
230
230
|
| strict_types=1 en todas partes, PHPStan level 10 sin errores | 6 |
|
|
231
231
|
| Cero `mixed` injustificado, tipado completo (params + retornos) | 5 |
|
|
232
|
-
|
|
|
232
|
+
| PER-CS 3.0 respetado, nomenclatura explícita, readonly utilizado | 5 |
|
|
233
233
|
| Funcionalidades PHP 8.5: enums, pipe operator, clone with | 4 |
|
|
234
234
|
|
|
235
235
|
---
|
|
@@ -414,7 +414,7 @@ $orders = $repository->findAllWithItems(); // JOIN o batch loading
|
|
|
414
414
|
|
|
415
415
|
1. Verificar strict_types=1 en cada archivo
|
|
416
416
|
2. Ejecutar PHPStan level 10 mentalmente (tipos, mixed, any)
|
|
417
|
-
3. Verificar la conformidad
|
|
417
|
+
3. Verificar la conformidad PER-CS 3.0
|
|
418
418
|
4. Escanear el uso de funcionalidades PHP 8.5
|
|
419
419
|
5. Verificar enums, readonly, match expressions
|
|
420
420
|
|
|
@@ -531,7 +531,7 @@ $orders = $repository->findAllWithItems(); // JOIN o batch loading
|
|
|
531
531
|
| Herramienta | Uso |
|
|
532
532
|
|-------------|-----|
|
|
533
533
|
| **PHPStan** (level 10) | Análisis estático, type safety |
|
|
534
|
-
| **PHP-CS-Fixer** | Conformidad
|
|
534
|
+
| **PHP-CS-Fixer** | Conformidad PER-CS 3.0 |
|
|
535
535
|
| **Pest PHP** | Tests modernos y expresivos |
|
|
536
536
|
| **Infection** | Mutation testing (MSI >= 80%) |
|
|
537
537
|
| **Deptrac** | Verificación de dependencias entre capas |
|
|
@@ -9,7 +9,7 @@ Verify that the PHP project follows established coding standards and best practi
|
|
|
9
9
|
## What This Command Does
|
|
10
10
|
|
|
11
11
|
1. **Standards Verification**
|
|
12
|
-
- Check PSR-1/
|
|
12
|
+
- Check PSR-1/PER-CS 3.0 compliance
|
|
13
13
|
- Verify naming conventions
|
|
14
14
|
- Validate file organization
|
|
15
15
|
- Check import order
|
|
@@ -440,7 +440,7 @@ parameters:
|
|
|
440
440
|
<?php
|
|
441
441
|
return (new PhpCsFixer\Config())
|
|
442
442
|
->setRules([
|
|
443
|
-
'@
|
|
443
|
+
'@PER-CS3x0' => true,
|
|
444
444
|
'@PHP85Migration' => true,
|
|
445
445
|
'declare_strict_types' => true,
|
|
446
446
|
'final_class' => true,
|
|
@@ -450,7 +450,7 @@ return (new PhpCsFixer\Config())
|
|
|
450
450
|
## Compliance Checklist
|
|
451
451
|
|
|
452
452
|
- [ ] `declare(strict_types=1)` in all files
|
|
453
|
-
- [ ]
|
|
453
|
+
- [ ] PER-CS 3.0 formatting applied
|
|
454
454
|
- [ ] PSR-4 autoloading configured
|
|
455
455
|
- [ ] Naming conventions followed
|
|
456
456
|
- [ ] Files properly organized (Clean Architecture)
|
|
@@ -29,7 +29,9 @@ class UserAccount
|
|
|
29
29
|
}
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
###
|
|
32
|
+
### PER-CS 3.0: Extended Coding Style
|
|
33
|
+
|
|
34
|
+
> PER Coding Style 3.0 extiende, amplía y reemplaza PSR-12 (PSR-1 sigue siendo obligatorio). Ruleset de PHP-CS-Fixer: `@PER-CS3x0` (`@PER-CS3.0` está obsoleto).
|
|
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
|
## Qué (Stack y Estructura)
|
|
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 es un sistema de dos capas**: un plano de control (server + web + DB) que posee todo el estado de gobernanza, y adapters que ejecutan el trabajo y reportan de vuelta. Los adapters nunca deciden presupuestos o aprobaciones.
|
|
11
11
|
|
|
@@ -15,7 +15,7 @@ Este directorio contiene las reglas, comandos, skills y plantillas de Claude-Cra
|
|
|
15
15
|
| React | 19+ (web UI) |
|
|
16
16
|
| Vitest | 4.1+ |
|
|
17
17
|
| PostgreSQL | 15+ (o embebido para dev) |
|
|
18
|
-
| Paperclip | 2026.
|
|
18
|
+
| Paperclip | 2026.1012.0+ |
|
|
19
19
|
|
|
20
20
|
## Qué hay aquí
|
|
21
21
|
|
|
@@ -19,7 +19,7 @@ Guiar a un operador a través del onboarding: instalar, crear la instancia, boot
|
|
|
19
19
|
|
|
20
20
|
### 1. Precondiciones
|
|
21
21
|
|
|
22
|
-
- [ ] Node.js
|
|
22
|
+
- [ ] Node.js 24.11+ y pnpm 9.15+ instalados
|
|
23
23
|
- [ ] PostgreSQL alcanzable **O** aceptar el Postgres embebido para dev local
|
|
24
24
|
- [ ] Puerto 3100 disponible (o establecer `PORT`)
|
|
25
25
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
| Herramienta | Versión | Por qué |
|
|
8
8
|
|---|---|---|
|
|
9
|
-
| Node.js |
|
|
9
|
+
| Node.js | 24.11+ LTS | Mínimo de Paperclip (`paperclipai` `engines`: `>=24.11.0`) |
|
|
10
10
|
| pnpm | 9.15+ | Gestor oficial de workspace |
|
|
11
11
|
| tsx | latest | Ejecutar archivos TS durante dev |
|
|
12
12
|
| PostgreSQL | 15+ (o embebido) | 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 incluye un Dockerfile (ver `docs.paperclip.ing/deployment/docker`). Pa
|
|
|
209
209
|
|
|
210
210
|
## Checklist
|
|
211
211
|
|
|
212
|
-
- [ ] Node
|
|
212
|
+
- [ ] Node 24.11+, pnpm 9.15+, Corepack habilitado
|
|
213
213
|
- [ ] Config flat de ESLint + Prettier configurado
|
|
214
214
|
- [ ] Hook pre-commit ejecuta lint-staged
|
|
215
215
|
- [ ] CI ejecuta lint, typecheck, test, build
|
|
@@ -141,6 +141,15 @@ Ajustar fuentes script/style de CSP si la UI requiere CDNs específicos; de lo c
|
|
|
141
141
|
- [ ] Log de actividad append-only, forzado por DB donde sea posible
|
|
142
142
|
- [ ] Kill switch + deshabilitar plugin testeado
|
|
143
143
|
|
|
144
|
+
## Notas de actualización: cambios incompatibles (2026.916.0 a 2026.1012.0)
|
|
145
|
+
|
|
146
|
+
Verificado con las notas de versión oficiales de GitHub (paperclipai/paperclip).
|
|
147
|
+
|
|
148
|
+
- **2026.916.0**: las APIs de agente ya no devuelven credenciales en texto plano (los bindings `plain` se redactan: usar `secretRef`, nunca releer secretos); se eliminan los "cheap model profiles" (la migración `0236` borra los `modelProfiles` almacenados); `X-Forwarded-Host` solo se respeta cuando el par inmediato pasa `TRUST_PROXY` (definirlo detrás de un reverse proxy; si no, se usa la cabecera `Host` sin procesar); se elimina la opción de conexión REST legacy de Anthropic (las conexiones de herramientas REST se validan como REST).
|
|
149
|
+
- **2026.1001.0**: se retira el broker Composio legacy (sin migración automática; reemplazo: Composio Connect tras el flag `enableMcpAggregators`). Los harnesses de ejecución pasan a **full auto por defecto**: ACPX/Claude `approve-all`, OpenCode `allow`, Codex `never` (sin pausas de aprobación). Para conservar las puertas de aprobación del proveedor, definir explícitamente un modo restrictivo por agente: `acpxPermissionMode` (`approve-paperclip`, `approve-reads` o `deny-all`) u `opencodePermissionMode` (`ask` o `deny`). Las aprobaciones gobernadas de Paperclip siguen aplicándose.
|
|
150
|
+
- **2026.1005.0**: `PAPERCLIP_CLOUD_UI_SNIPPET` / `PAPERCLIP_CLOUD_UI_SNIPPET_B64` ya no inyectan HTML (migrar la integración a una contribución de UI de plugin); una @-mención en un comentario de tarea es solo contexto y ya no lanza un run (solo lo hacen la asignación explícita o las solicitudes de revisión).
|
|
151
|
+
- **2026.1012.0**: los locks de restauración de workspace son ahora locks de archivo SQLite bajo `<instance root>/locks/directory-merge/`: detener todos los procesos antiguos de servidor y worker antes de actualizar o revertir; los tool grants con selectores desconocidos o restricciones mal formadas ahora deniegan el acceso (revisar los grants personalizados).
|
|
152
|
+
|
|
144
153
|
---
|
|
145
154
|
|
|
146
155
|
**Última actualización:** 2026-04 | **Versión:** 2.0.0 | **Autor:** The Bearded CTO
|
|
@@ -5,6 +5,6 @@ description: Estándares de codificación TypeScript de Paperclip — modo stric
|
|
|
5
5
|
|
|
6
6
|
# Estándares de Codificación de Paperclip (TypeScript)
|
|
7
7
|
|
|
8
|
-
Node
|
|
8
|
+
Node 24.11+, TypeScript strict + `noUncheckedIndexedAccess`, workspaces pnpm 9.15+, archivos kebab-case, tipos PascalCase, vars camelCase, sin `any`, logs estructurados con redacción.
|
|
9
9
|
|
|
10
10
|
Ver ../../rules/03-coding-standards.md para documentación detallada.
|
|
@@ -31,7 +31,9 @@ Identificar:
|
|
|
31
31
|
- Índices y restricciones
|
|
32
32
|
- Validaciones
|
|
33
33
|
|
|
34
|
-
### Paso 2: Modelo SQLAlchemy 2.
|
|
34
|
+
### Paso 2: Modelo SQLAlchemy 2.1
|
|
35
|
+
|
|
36
|
+
> **Migración 2.0 -> 2.1 (puntos clave):** requiere Python 3.11+; `greenlet` ya no se instala por defecto (asyncio: extra `sqlalchemy[asyncio]`); el driver PostgreSQL por defecto es psycopg 3; el autoflush de `Session` es ahora incondicional (incluido Core/texto); `Select.filter_by()` lanza `AmbiguousColumnError` si el nombre es ambiguo; los valores por defecto de dataclasses mapeadas se entregan mediante descriptor. Fuente: docs.sqlalchemy.org/en/21/changelog/migration_21.html
|
|
35
37
|
|
|
36
38
|
[Crear modelo completo con Mapped, relationships, restricciones]
|
|
37
39
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Regla 06: Herramientas
|
|
2
2
|
|
|
3
|
-
> **Versión de referencia:** Python **3.14 (estable, 3.14.
|
|
3
|
+
> **Versión de referencia:** Python **3.14 (estable, 3.14.8+)** — Ruff 0.17+, pytest 9.x (elimina soporte Python 3.9).
|
|
4
4
|
> **⚠ JIT (PEP 744):** experimental en Python 3.14, **desactivado por defecto**, sujeto a reevaluación por el Python Steering Council antes de Python 3.15 (oct. 2026). No depender de él en producción.
|
|
5
5
|
|
|
6
6
|
Herramientas de Python para calidad de código, pruebas y flujo de trabajo de desarrollo.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Herramientas de calidad de código - Python
|
|
2
2
|
|
|
3
|
-
> **Versiones de referencia:** Ruff **0.
|
|
3
|
+
> **Versiones de referencia:** Ruff **0.17+** | pytest **9.x** (elimina soporte Python 3.9) | objetivo `py314`.
|
|
4
4
|
|
|
5
5
|
## Ruff - Linter y formateador rápido de Python
|
|
6
6
|
|
|
@@ -140,7 +140,7 @@ async def search_users(
|
|
|
140
140
|
|
|
141
141
|
### Hash de contrasenas con Argon2id (pwdlib)
|
|
142
142
|
|
|
143
|
-
> **passlib esta sin mantenimiento desde 2020 e incompatible con Python 3.13+ (el modulo `crypt` del que dependia fue eliminado). bcrypt
|
|
143
|
+
> **passlib esta sin mantenimiento desde 2020 e incompatible con Python 3.13+ (el modulo `crypt` del que dependia fue eliminado). bcrypt queda reservado a legacy segun la regla 11 del proyecto (OWASP: Argon2id primero; bcrypt solo si Argon2id/scrypt no estan disponibles). Usar `pwdlib` con Argon2id.**
|
|
144
144
|
|
|
145
145
|
```python
|
|
146
146
|
# pip install pwdlib[argon2]
|
|
@@ -537,7 +537,7 @@ pip-audit --fix
|
|
|
537
537
|
# pyproject.toml - Fijar versiones por seguridad
|
|
538
538
|
[project]
|
|
539
539
|
dependencies = [
|
|
540
|
-
"fastapi>=0.
|
|
540
|
+
"fastapi>=0.143.0,<1.0.0",
|
|
541
541
|
"pydantic>=2.10.0,<3.0.0",
|
|
542
542
|
"sqlalchemy>=2.0.0,<3.0.0",
|
|
543
543
|
]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: react-reviewer
|
|
3
|
-
description: Especialista en revisión de código React 19.
|
|
3
|
+
description: Especialista en revisión de código React 19.3 + Compiler 1.0 y TypeScript — hooks, composición, rendimiento, análisis 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
|
## Identidad
|
|
16
16
|
|
|
17
|
-
Soy un especialista en revisión de código React 19.
|
|
17
|
+
Soy un especialista en revisión de código React 19.3 + Compiler 1.0 y TypeScript. Mi enfoque se centra en los problemas específicos de React: las reglas de los hooks, la composición de componentes, el renderizado performante, la frontera Server/Client Components, y el análisis del tamaño de los bundles. No hago una auditoría genérica -- detecto lo que rompe, ralentiza o complejiza innecesariamente una aplicación React moderna.
|
|
18
18
|
|
|
19
19
|
## Sistema de puntuación (100 puntos)
|
|
20
20
|
|
|
@@ -247,7 +247,11 @@ expect(screen.getByRole('dialog')).toBeInTheDocument();
|
|
|
247
247
|
NO --> Aceptable (micro-optimización innecesaria)
|
|
248
248
|
```
|
|
249
249
|
|
|
250
|
-
### React 19.
|
|
250
|
+
### Novedades de React 19.3 a conocer
|
|
251
|
+
|
|
252
|
+
Sin breaking changes. `<ViewTransition>` y los Fragment Refs (`<Fragment ref>`) son estables; `addTransitionType` etiqueta una Transition; `use(browser())` (`react-dom`) excluye un componente del renderizado en servidor; Trusted Types soportados; Context se renderiza sin Provider en Server Components; los Effects se invocan dos veces en la hidratación en Strict Mode. No señalar estas API como experimentales.
|
|
253
|
+
|
|
254
|
+
### React 19.3 + Compiler 1.0: Server Components vs Client Components
|
|
251
255
|
|
|
252
256
|
```
|
|
253
257
|
¿El componente necesita interactividad (hooks, events)?
|
|
@@ -368,7 +372,7 @@ import { format } from 'date-fns';
|
|
|
368
372
|
## Formato de informe de auditoría
|
|
369
373
|
|
|
370
374
|
```markdown
|
|
371
|
-
# Informe de auditoría React 19.
|
|
375
|
+
# Informe de auditoría React 19.3 + Compiler 1.0 / TypeScript
|
|
372
376
|
|
|
373
377
|
## Proyecto: [Nombre del proyecto]
|
|
374
378
|
**Fecha:** [Fecha]
|
|
@@ -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**: ejecucion remota de codigo sin autenticacion mediante una peticion HTTP manipulada a un endpoint de Server Function; las apps que soportan React Server Components estan afectadas incluso sin Server Functions.
|
|
570
|
+
- Afectados: `react-server-dom-webpack`, `-parcel`, `-turbopack` 19.0, 19.1.0, 19.1.1, 19.2.0. Corregido en: 19.0.1, 19.1.2, 19.2.1.
|
|
571
|
+
- Fallos posteriores (CVE-2025-55183, CVE-2025-55184, CVE-2025-67779, CVE-2026-23864: DoS / exposicion de codigo fuente): usar siempre la ultima version de parche.
|
|
572
|
+
- Actualizar tambien los frameworks que incluyen estos paquetes (Next.js, React Router, Waku, `@parcel/rsc`, `@vitejs/plugin-rsc`, rwsdk).
|
|
573
|
+
|
|
574
|
+
Fuente: [React advisory](https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components)
|
|
575
|
+
|
|
567
576
|
## Gestión de Secretos
|
|
568
577
|
|
|
569
578
|
### Variables de Entorno
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: reactnative-reviewer
|
|
3
|
-
description: Especialista en revisión de código React Native 0.
|
|
3
|
+
description: Especialista en revisión de código React Native 0.87 y Expo — New Architecture, navegación, rendimiento móvil, análisis 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
|
## Identidad
|
|
16
16
|
|
|
17
|
-
Soy un especialista en revisión de código React Native 0.
|
|
17
|
+
Soy un especialista en revisión de código React Native 0.87 y Expo. Mi enfoque se centra en los problemas específicos del móvil: la New Architecture (JSI, Fabric, TurboModules), la navegación con Expo Router, el rendimiento a 60 FPS, la gestión del tamaño del bundle, y los patrones de composición adaptados al móvil. No hago una auditoría genérica -- detecto lo que rompe, ralentiza o complejiza innecesariamente una aplicación React Native moderna que utiliza la New Architecture por defecto.
|
|
18
18
|
|
|
19
19
|
## Sistema de puntuación (100 puntos)
|
|
20
20
|
|
|
@@ -411,7 +411,7 @@ import { format } from 'date-fns';
|
|
|
411
411
|
## Formato de informe de auditoría
|
|
412
412
|
|
|
413
413
|
```markdown
|
|
414
|
-
# Informe de auditoría React Native 0.
|
|
414
|
+
# Informe de auditoría React Native 0.87 / Expo
|
|
415
415
|
|
|
416
416
|
## Proyecto: [Nombre del proyecto]
|
|
417
417
|
**Fecha:** [Fecha]
|
|
@@ -8,9 +8,9 @@ Este documento cubre las herramientas esenciales para el desarrollo de React Nat
|
|
|
8
8
|
|
|
9
9
|
## Requisitos del Sistema
|
|
10
10
|
|
|
11
|
-
### Node.js >= 22 LTS (requerido para RN 0.
|
|
11
|
+
### Node.js >= 22 LTS (requerido para RN 0.87)
|
|
12
12
|
|
|
13
|
-
React Native 0.
|
|
13
|
+
React Native 0.87 requiere **Node.js 22.x LTS** mínimo (RN 0.85 requería Node 20). La versión recomendada es **Node.js 22.x active LTS**.
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
16
|
# Verificar versión
|
|
@@ -22,7 +22,7 @@ nvm use 22
|
|
|
22
22
|
nvm alias default 22
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
> Las versiones de Node < 22 ya no son compatibles con RN 0.
|
|
25
|
+
> Las versiones de Node < 22 ya no son compatibles con RN 0.87. Actualizar antes de migrar.
|
|
26
26
|
|
|
27
27
|
### React Native Gesture Handler 3.0.0 — Cambios 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 y Expo SDK 57
|
|
403
|
+
|
|
404
|
+
**Expo SDK 57 incluye RN 0.86** (0.86.3); **RN bare = 0.87** (0.87.1 `latest`, 0.88 en RC). Un proyecto Expo sigue la versión de RN de su SDK.
|
|
405
|
+
|
|
406
|
+
- `expo@57.0.17+`: regresión de memoria Hermes V1 / Reanimated corregida (desde 57.0.9) y tiempo de arranque en desarrollo corregido
|
|
407
|
+
- Reanimated 4.7.x soporta RN 0.86-0.88 (4.5 viene incluido en el SDK 57)
|
|
408
|
+
- El bundle mode de Worklets es experimental y no soportado: **no usarlo en producción**
|
|
409
|
+
- Preferir los **development builds** a Expo Go cuando se apunta a las tiendas
|
|
410
|
+
- `expo prebuild` limpia y regenera `android/` e `ios/` por defecto (`--no-clean` para conservarlos)
|
|
411
|
+
- iOS 27: `ios.enableSceneSupport` (`expo-build-properties`, `expo@57.0.23+`, opt-in; por defecto en SDK 58)
|
|
412
|
+
- React Navigation 8 está en alpha: vigilarlo y permanecer en 7.x en producción
|
|
413
|
+
|
|
414
|
+
**Breaking changes de RN 0.87:** API TypeScript estricta por defecto (imports profundos de `react-native/Libraries/*` prohibidos, opt-out hasta 0.88); `InteractionManager` eliminado (usar `requestIdleCallback`); `ImageBackground` obsoleto (`Image` absoluto dentro de un `View`); props `Modal.animated` y `StatusBar` `backgroundColor`/`translucent` eliminadas; Node 22.13+, Kotlin 2.0+; AGP 9 soportado (`android.builtInKotlin=false` y `android.newDsl=false` mantienen el comportamiento anterior); Swift Package Manager en iOS experimental y opt-in (CocoaPods sigue siendo el predeterminado).
|
|
415
|
+
|
|
416
|
+
**Fuentes:** [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
|
**Las buenas herramientas hacen el desarrollo más eficiente y agradable.**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: symfony-reviewer
|
|
3
|
-
description: Especialista en revisión de código Symfony 8.1 / PHP 8.5 — DDD, Doctrine, CQRS, API Platform
|
|
3
|
+
description: Especialista en revisión de código 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.1 / PHP 8.5
|
|
13
|
+
# Agente Auditor Symfony 8.1 / PHP 8.4+ (8.5 recomendado)
|
|
14
14
|
|
|
15
15
|
## Identidad
|
|
16
16
|
|
|
17
|
-
Soy un especialista en auditoría de código Symfony 8.1 y PHP 8.5. Mi enfoque apunta a los problemas reales de los proyectos Symfony: la calidad del diseño DDD, el rendimiento de Doctrine, la separación de responsabilidades en las capas aplicativas, la seguridad (OWASP + RGPD), y el rigor de los tests. No hago una revisión genérica -- detecto los anti-patterns específicos del ecosistema Symfony/Doctrine/API Platform.
|
|
17
|
+
Soy un especialista en auditoría de código Symfony 8.1 y PHP 8.4+ (8.5 recomendado). Mi enfoque apunta a los problemas reales de los proyectos Symfony: la calidad del diseño DDD, el rendimiento de Doctrine, la separación de responsabilidades en las capas aplicativas, la seguridad (OWASP + RGPD), y el rigor de los tests. No hago una revisión genérica -- detecto los anti-patterns específicos del ecosistema Symfony/Doctrine/API Platform.
|
|
18
18
|
|
|
19
19
|
## Sistema de puntuación (100 puntos)
|
|
20
20
|
|
|
@@ -434,7 +434,7 @@ $apiKey = $this->getParameter('stripe_api_key');
|
|
|
434
434
|
## Formato de informe de auditoría
|
|
435
435
|
|
|
436
436
|
```markdown
|
|
437
|
-
# Informe de auditoría Symfony 8 / PHP 8.5
|
|
437
|
+
# Informe de auditoría Symfony 8.1 / PHP 8.4+ (8.5 recomendado)
|
|
438
438
|
|
|
439
439
|
## Proyecto: [Nombre del proyecto]
|
|
440
440
|
**Fecha:** [Fecha]
|
|
@@ -519,7 +519,7 @@ $apiKey = $this->getParameter('stripe_api_key');
|
|
|
519
519
|
|-------------|-----|
|
|
520
520
|
| **PHPStan level 10** | Análisis estático estricto |
|
|
521
521
|
| **Deptrac** | Validación de dependencias entre capas |
|
|
522
|
-
| **PHP-CS-Fixer** (
|
|
522
|
+
| **PHP-CS-Fixer** (PER-CS 3.0) | Formateo automático |
|
|
523
523
|
| **Pest PHP** / PHPUnit | Tests unitarios e integración |
|
|
524
524
|
| **Behat** | BDD, escenarios de negocio |
|
|
525
525
|
| **Infection** | Mutation testing |
|
|
@@ -20,7 +20,7 @@ Esta carpeta contiene 4 checklists esenciales para el flujo de trabajo de desarr
|
|
|
20
20
|
**Verificaciones automáticas:**
|
|
21
21
|
- ✅ Tests aprobados (unitarios + integración + Behat)
|
|
22
22
|
- ✅ PHPStan nivel 8 (0 errores)
|
|
23
|
-
- ✅ CS-Fixer (código formateado
|
|
23
|
+
- ✅ CS-Fixer (código formateado PER-CS 3.0)
|
|
24
24
|
- ✅ Hadolint (Dockerfile válido)
|
|
25
25
|
- ✅ Cobertura ≥ 80%
|
|
26
26
|
- ✅ Mensaje de commit conforme (Conventional Commits)
|
|
@@ -424,7 +424,7 @@ make phpstan
|
|
|
424
424
|
|
|
425
425
|
# CS-Fixer
|
|
426
426
|
make cs-fix
|
|
427
|
-
# ✅ Código formateado
|
|
427
|
+
# ✅ Código formateado PER-CS 3.0
|
|
428
428
|
|
|
429
429
|
# Hadolint (si se modificó Dockerfile)
|
|
430
430
|
make hadolint
|
|
@@ -585,7 +585,7 @@ Alineación con la política tarifaria de los hoteles asociados.
|
|
|
585
585
|
|
|
586
586
|
- [x] Tests pasan
|
|
587
587
|
- [x] PHPStan nivel 8 OK
|
|
588
|
-
- [x] Código formateado (
|
|
588
|
+
- [x] Código formateado (PER-CS 3.0)
|
|
589
589
|
- [x] Documentación actualizada
|
|
590
590
|
- [x] Sin breaking changes
|
|
591
591
|
- [x] Migración BD: N/A
|
|
@@ -88,7 +88,7 @@ private array $participants;
|
|
|
88
88
|
|
|
89
89
|
## 3. Coding Standards (PHP CS Fixer)
|
|
90
90
|
|
|
91
|
-
### ✅ Código formateado según
|
|
91
|
+
### ✅ Código formateado según 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
|
**Criterio de éxito:**
|
|
99
99
|
- ✅ Código formateado automáticamente
|
|
100
|
-
- ✅
|
|
100
|
+
- ✅ PER-CS 3.0 respetado
|
|
101
101
|
- ✅ Sin trailing whitespace
|
|
102
102
|
- ✅ Indentación coherente (4 espacios)
|
|
103
103
|
|
|
@@ -135,7 +135,7 @@ make hadolint
|
|
|
135
135
|
FROM php:fpm
|
|
136
136
|
|
|
137
137
|
# ✅ Versión explícita
|
|
138
|
-
FROM php:8.
|
|
138
|
+
FROM php:8.5-fpm-alpine
|
|
139
139
|
|
|
140
140
|
# ❌ apt-get sin cleanup
|
|
141
141
|
RUN apt-get install -y curl
|
|
@@ -514,7 +514,7 @@ make pre-commit && git commit
|
|
|
514
514
|
### ✅ Siempre commitear
|
|
515
515
|
|
|
516
516
|
- ✅ Tests que pasan
|
|
517
|
-
- ✅ Código formateado (
|
|
517
|
+
- ✅ Código formateado (PER-CS 3.0)
|
|
518
518
|
- ✅ PHPStan nivel 8 OK
|
|
519
519
|
- ✅ Documentación actualizada
|
|
520
520
|
- ✅ Mensaje de commit claro
|