@the-bearded-bear/claude-craft 3.4.0 → 3.5.0-next.0f69fca
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Dev/i18n/de/Common/skills/documentation/SKILL.md +1 -1
- package/Dev/i18n/de/Common/skills/git-workflow/SKILL.md +1 -1
- package/Dev/i18n/de/Common/skills/kiss-dry-yagni/SKILL.md +1 -1
- package/Dev/i18n/de/Common/skills/security/SKILL.md +1 -1
- package/Dev/i18n/de/Common/skills/solid-principles/SKILL.md +1 -1
- package/Dev/i18n/de/Common/skills/testing/SKILL.md +1 -1
- package/Dev/i18n/de/Common/skills/workflow-analysis/SKILL.md +1 -1
- package/Dev/i18n/de/Common/templates/CLAUDE.md.template +56 -39
- package/Dev/i18n/de/Flutter/skills/architecture/SKILL.md +1 -1
- package/Dev/i18n/de/Flutter/skills/coding-standards/SKILL.md +1 -1
- package/Dev/i18n/de/Flutter/skills/performance/SKILL.md +1 -1
- package/Dev/i18n/de/Flutter/skills/quality-tools/SKILL.md +1 -1
- package/Dev/i18n/de/Flutter/skills/security-flutter/SKILL.md +1 -1
- package/Dev/i18n/de/Flutter/skills/state-management/SKILL.md +1 -1
- package/Dev/i18n/de/Flutter/skills/testing-flutter/SKILL.md +1 -1
- package/Dev/i18n/de/Flutter/skills/tooling/SKILL.md +1 -1
- package/Dev/i18n/de/Python/skills/architecture/SKILL.md +1 -1
- package/Dev/i18n/de/Python/skills/coding-standards/SKILL.md +1 -1
- package/Dev/i18n/de/Python/skills/testing-python/SKILL.md +1 -1
- package/Dev/i18n/de/Python/skills/tooling/SKILL.md +1 -1
- package/Dev/i18n/de/React/skills/architecture/SKILL.md +1 -1
- package/Dev/i18n/de/React/skills/coding-standards/SKILL.md +1 -1
- package/Dev/i18n/de/React/skills/quality-tools/SKILL.md +1 -1
- package/Dev/i18n/de/React/skills/security-react/SKILL.md +1 -1
- package/Dev/i18n/de/React/skills/testing-react/SKILL.md +1 -1
- package/Dev/i18n/de/React/skills/tooling/SKILL.md +1 -1
- package/Dev/i18n/de/ReactNative/skills/architecture/SKILL.md +1 -1
- package/Dev/i18n/de/ReactNative/skills/coding-standards/SKILL.md +1 -1
- package/Dev/i18n/de/ReactNative/skills/navigation/SKILL.md +1 -1
- package/Dev/i18n/de/ReactNative/skills/performance/SKILL.md +1 -1
- package/Dev/i18n/de/ReactNative/skills/quality-tools/SKILL.md +1 -1
- package/Dev/i18n/de/ReactNative/skills/security-reactnative/SKILL.md +1 -1
- package/Dev/i18n/de/ReactNative/skills/state-management/SKILL.md +1 -1
- package/Dev/i18n/de/ReactNative/skills/testing-reactnative/SKILL.md +1 -1
- package/Dev/i18n/de/ReactNative/skills/tooling/SKILL.md +1 -1
- package/Dev/i18n/de/Symfony/skills/aggregates/SKILL.md +1 -1
- package/Dev/i18n/de/Symfony/skills/architecture-clean-ddd/SKILL.md +1 -1
- package/Dev/i18n/de/Symfony/skills/async/SKILL.md +1 -1
- package/Dev/i18n/de/Symfony/skills/coding-standards/SKILL.md +1 -1
- package/Dev/i18n/de/Symfony/skills/cqrs/SKILL.md +1 -1
- package/Dev/i18n/de/Symfony/skills/ddd-patterns/SKILL.md +1 -1
- package/Dev/i18n/de/Symfony/skills/docker-hadolint/SKILL.md +1 -1
- package/Dev/i18n/de/Symfony/skills/doctrine-extensions/SKILL.md +1 -1
- package/Dev/i18n/de/Symfony/skills/domain-events/SKILL.md +1 -1
- package/Dev/i18n/de/Symfony/skills/i18n/SKILL.md +1 -1
- package/Dev/i18n/de/Symfony/skills/multitenant/SKILL.md +1 -1
- package/Dev/i18n/de/Symfony/skills/performance/SKILL.md +1 -1
- package/Dev/i18n/de/Symfony/skills/quality-tools/SKILL.md +1 -1
- package/Dev/i18n/de/Symfony/skills/security-symfony/SKILL.md +1 -1
- package/Dev/i18n/de/Symfony/skills/testing-symfony/SKILL.md +1 -1
- package/Dev/i18n/de/Symfony/skills/value-objects/SKILL.md +1 -1
- package/Dev/i18n/en/Common/skills/documentation/SKILL.md +1 -1
- package/Dev/i18n/en/Common/skills/git-workflow/SKILL.md +1 -1
- package/Dev/i18n/en/Common/skills/kiss-dry-yagni/SKILL.md +1 -1
- package/Dev/i18n/en/Common/skills/security/SKILL.md +1 -1
- package/Dev/i18n/en/Common/skills/solid-principles/SKILL.md +1 -1
- package/Dev/i18n/en/Common/skills/testing/SKILL.md +1 -1
- package/Dev/i18n/en/Common/skills/workflow-analysis/SKILL.md +1 -1
- package/Dev/i18n/en/Flutter/skills/architecture/SKILL.md +1 -1
- package/Dev/i18n/en/Flutter/skills/coding-standards/SKILL.md +1 -1
- package/Dev/i18n/en/Flutter/skills/performance/SKILL.md +1 -1
- package/Dev/i18n/en/Flutter/skills/quality-tools/SKILL.md +1 -1
- package/Dev/i18n/en/Flutter/skills/security-flutter/SKILL.md +1 -1
- package/Dev/i18n/en/Flutter/skills/state-management/SKILL.md +1 -1
- package/Dev/i18n/en/Flutter/skills/testing-flutter/SKILL.md +1 -1
- package/Dev/i18n/en/Flutter/skills/tooling/SKILL.md +1 -1
- package/Dev/i18n/en/Python/rules/08-quality-tools.md +572 -0
- package/Dev/i18n/en/Python/rules/11-security-python.md +596 -0
- package/Dev/i18n/en/Python/skills/architecture/SKILL.md +1 -1
- package/Dev/i18n/en/Python/skills/coding-standards/SKILL.md +1 -1
- package/Dev/i18n/en/Python/skills/testing-python/SKILL.md +1 -1
- package/Dev/i18n/en/Python/skills/tooling/SKILL.md +1 -1
- package/Dev/i18n/en/React/skills/architecture/SKILL.md +1 -1
- package/Dev/i18n/en/React/skills/coding-standards/SKILL.md +1 -1
- package/Dev/i18n/en/React/skills/quality-tools/SKILL.md +1 -1
- package/Dev/i18n/en/React/skills/security-react/SKILL.md +1 -1
- package/Dev/i18n/en/React/skills/testing-react/SKILL.md +1 -1
- package/Dev/i18n/en/React/skills/tooling/SKILL.md +1 -1
- package/Dev/i18n/en/ReactNative/skills/architecture/SKILL.md +1 -1
- package/Dev/i18n/en/ReactNative/skills/coding-standards/SKILL.md +1 -1
- package/Dev/i18n/en/ReactNative/skills/navigation/SKILL.md +1 -1
- package/Dev/i18n/en/ReactNative/skills/performance/SKILL.md +1 -1
- package/Dev/i18n/en/ReactNative/skills/quality-tools/SKILL.md +1 -1
- package/Dev/i18n/en/ReactNative/skills/security-reactnative/SKILL.md +1 -1
- package/Dev/i18n/en/ReactNative/skills/state-management/SKILL.md +1 -1
- package/Dev/i18n/en/ReactNative/skills/testing-reactnative/SKILL.md +1 -1
- package/Dev/i18n/en/ReactNative/skills/tooling/SKILL.md +1 -1
- package/Dev/i18n/en/Symfony/skills/aggregates/SKILL.md +1 -1
- package/Dev/i18n/en/Symfony/skills/architecture-clean-ddd/SKILL.md +1 -1
- package/Dev/i18n/en/Symfony/skills/async/SKILL.md +1 -1
- package/Dev/i18n/en/Symfony/skills/coding-standards/SKILL.md +1 -1
- package/Dev/i18n/en/Symfony/skills/cqrs/SKILL.md +1 -1
- package/Dev/i18n/en/Symfony/skills/ddd-patterns/SKILL.md +1 -1
- package/Dev/i18n/en/Symfony/skills/docker-hadolint/SKILL.md +1 -1
- package/Dev/i18n/en/Symfony/skills/doctrine-extensions/SKILL.md +1 -1
- package/Dev/i18n/en/Symfony/skills/domain-events/SKILL.md +1 -1
- package/Dev/i18n/en/Symfony/skills/i18n/SKILL.md +1 -1
- package/Dev/i18n/en/Symfony/skills/multitenant/SKILL.md +1 -1
- package/Dev/i18n/en/Symfony/skills/performance/SKILL.md +1 -1
- package/Dev/i18n/en/Symfony/skills/quality-tools/SKILL.md +1 -1
- package/Dev/i18n/en/Symfony/skills/security-symfony/SKILL.md +1 -1
- package/Dev/i18n/en/Symfony/skills/testing-symfony/SKILL.md +1 -1
- package/Dev/i18n/en/Symfony/skills/value-objects/SKILL.md +1 -1
- package/Dev/i18n/es/Common/skills/documentation/SKILL.md +1 -1
- package/Dev/i18n/es/Common/skills/git-workflow/SKILL.md +1 -1
- package/Dev/i18n/es/Common/skills/kiss-dry-yagni/SKILL.md +1 -1
- package/Dev/i18n/es/Common/skills/security/SKILL.md +1 -1
- package/Dev/i18n/es/Common/skills/solid-principles/SKILL.md +1 -1
- package/Dev/i18n/es/Common/skills/testing/SKILL.md +1 -1
- package/Dev/i18n/es/Common/skills/workflow-analysis/SKILL.md +1 -1
- package/Dev/i18n/es/Common/templates/CLAUDE.md.template +57 -40
- package/Dev/i18n/es/Flutter/skills/architecture/SKILL.md +1 -1
- package/Dev/i18n/es/Flutter/skills/coding-standards/SKILL.md +1 -1
- package/Dev/i18n/es/Flutter/skills/performance/SKILL.md +1 -1
- package/Dev/i18n/es/Flutter/skills/quality-tools/SKILL.md +1 -1
- package/Dev/i18n/es/Flutter/skills/security-flutter/SKILL.md +1 -1
- package/Dev/i18n/es/Flutter/skills/state-management/SKILL.md +1 -1
- package/Dev/i18n/es/Flutter/skills/testing-flutter/SKILL.md +1 -1
- package/Dev/i18n/es/Flutter/skills/tooling/SKILL.md +1 -1
- package/Dev/i18n/es/Python/skills/architecture/SKILL.md +1 -1
- package/Dev/i18n/es/Python/skills/coding-standards/SKILL.md +1 -1
- package/Dev/i18n/es/Python/skills/testing-python/SKILL.md +1 -1
- package/Dev/i18n/es/Python/skills/tooling/SKILL.md +1 -1
- package/Dev/i18n/es/React/skills/architecture/SKILL.md +1 -1
- package/Dev/i18n/es/React/skills/coding-standards/SKILL.md +1 -1
- package/Dev/i18n/es/React/skills/quality-tools/SKILL.md +1 -1
- package/Dev/i18n/es/React/skills/security-react/SKILL.md +1 -1
- package/Dev/i18n/es/React/skills/testing-react/SKILL.md +1 -1
- package/Dev/i18n/es/React/skills/tooling/SKILL.md +1 -1
- package/Dev/i18n/es/ReactNative/skills/architecture/SKILL.md +1 -1
- package/Dev/i18n/es/ReactNative/skills/coding-standards/SKILL.md +1 -1
- package/Dev/i18n/es/ReactNative/skills/navigation/SKILL.md +1 -1
- package/Dev/i18n/es/ReactNative/skills/performance/SKILL.md +1 -1
- package/Dev/i18n/es/ReactNative/skills/quality-tools/SKILL.md +1 -1
- package/Dev/i18n/es/ReactNative/skills/security-reactnative/SKILL.md +1 -1
- package/Dev/i18n/es/ReactNative/skills/state-management/SKILL.md +1 -1
- package/Dev/i18n/es/ReactNative/skills/testing-reactnative/SKILL.md +1 -1
- package/Dev/i18n/es/ReactNative/skills/tooling/SKILL.md +1 -1
- package/Dev/i18n/es/Symfony/skills/aggregates/SKILL.md +1 -1
- package/Dev/i18n/es/Symfony/skills/architecture-clean-ddd/SKILL.md +1 -1
- package/Dev/i18n/es/Symfony/skills/async/SKILL.md +1 -1
- package/Dev/i18n/es/Symfony/skills/coding-standards/SKILL.md +1 -1
- package/Dev/i18n/es/Symfony/skills/cqrs/SKILL.md +1 -1
- package/Dev/i18n/es/Symfony/skills/ddd-patterns/SKILL.md +1 -1
- package/Dev/i18n/es/Symfony/skills/docker-hadolint/SKILL.md +1 -1
- package/Dev/i18n/es/Symfony/skills/doctrine-extensions/SKILL.md +1 -1
- package/Dev/i18n/es/Symfony/skills/domain-events/SKILL.md +1 -1
- package/Dev/i18n/es/Symfony/skills/i18n/SKILL.md +1 -1
- package/Dev/i18n/es/Symfony/skills/multitenant/SKILL.md +1 -1
- package/Dev/i18n/es/Symfony/skills/performance/SKILL.md +1 -1
- package/Dev/i18n/es/Symfony/skills/quality-tools/SKILL.md +1 -1
- package/Dev/i18n/es/Symfony/skills/security-symfony/SKILL.md +1 -1
- package/Dev/i18n/es/Symfony/skills/testing-symfony/SKILL.md +1 -1
- package/Dev/i18n/es/Symfony/skills/value-objects/SKILL.md +1 -1
- package/Dev/i18n/fr/Common/skills/documentation/SKILL.md +1 -1
- package/Dev/i18n/fr/Common/skills/git-workflow/SKILL.md +1 -1
- package/Dev/i18n/fr/Common/skills/kiss-dry-yagni/SKILL.md +1 -1
- package/Dev/i18n/fr/Common/skills/security/SKILL.md +1 -1
- package/Dev/i18n/fr/Common/skills/solid-principles/SKILL.md +1 -1
- package/Dev/i18n/fr/Common/skills/testing/SKILL.md +1 -1
- package/Dev/i18n/fr/Common/skills/workflow-analysis/SKILL.md +1 -1
- package/Dev/i18n/fr/Common/templates/CLAUDE.md.template +56 -39
- package/Dev/i18n/fr/Flutter/skills/architecture/SKILL.md +1 -1
- package/Dev/i18n/fr/Flutter/skills/coding-standards/SKILL.md +1 -1
- package/Dev/i18n/fr/Flutter/skills/performance/SKILL.md +1 -1
- package/Dev/i18n/fr/Flutter/skills/quality-tools/SKILL.md +1 -1
- package/Dev/i18n/fr/Flutter/skills/security-flutter/SKILL.md +1 -1
- package/Dev/i18n/fr/Flutter/skills/state-management/SKILL.md +1 -1
- package/Dev/i18n/fr/Flutter/skills/testing-flutter/SKILL.md +1 -1
- package/Dev/i18n/fr/Flutter/skills/tooling/SKILL.md +1 -1
- package/Dev/i18n/fr/Python/skills/architecture/SKILL.md +1 -1
- package/Dev/i18n/fr/Python/skills/coding-standards/SKILL.md +1 -1
- package/Dev/i18n/fr/Python/skills/testing-python/SKILL.md +1 -1
- package/Dev/i18n/fr/Python/skills/tooling/SKILL.md +1 -1
- package/Dev/i18n/fr/React/skills/architecture/SKILL.md +1 -1
- package/Dev/i18n/fr/React/skills/coding-standards/SKILL.md +1 -1
- package/Dev/i18n/fr/React/skills/quality-tools/SKILL.md +1 -1
- package/Dev/i18n/fr/React/skills/security-react/SKILL.md +1 -1
- package/Dev/i18n/fr/React/skills/testing-react/SKILL.md +1 -1
- package/Dev/i18n/fr/React/skills/tooling/SKILL.md +1 -1
- package/Dev/i18n/fr/ReactNative/skills/architecture/SKILL.md +1 -1
- package/Dev/i18n/fr/ReactNative/skills/coding-standards/SKILL.md +1 -1
- package/Dev/i18n/fr/ReactNative/skills/navigation/SKILL.md +1 -1
- package/Dev/i18n/fr/ReactNative/skills/performance/SKILL.md +1 -1
- package/Dev/i18n/fr/ReactNative/skills/quality-tools/SKILL.md +1 -1
- package/Dev/i18n/fr/ReactNative/skills/security-reactnative/SKILL.md +1 -1
- package/Dev/i18n/fr/ReactNative/skills/state-management/SKILL.md +1 -1
- package/Dev/i18n/fr/ReactNative/skills/testing-reactnative/SKILL.md +1 -1
- package/Dev/i18n/fr/ReactNative/skills/tooling/SKILL.md +1 -1
- package/Dev/i18n/fr/Symfony/skills/aggregates/SKILL.md +1 -1
- package/Dev/i18n/fr/Symfony/skills/architecture-clean-ddd/SKILL.md +1 -1
- package/Dev/i18n/fr/Symfony/skills/async/SKILL.md +1 -1
- package/Dev/i18n/fr/Symfony/skills/coding-standards/SKILL.md +1 -1
- package/Dev/i18n/fr/Symfony/skills/cqrs/SKILL.md +1 -1
- package/Dev/i18n/fr/Symfony/skills/ddd-patterns/SKILL.md +1 -1
- package/Dev/i18n/fr/Symfony/skills/docker-hadolint/SKILL.md +1 -1
- package/Dev/i18n/fr/Symfony/skills/doctrine-extensions/SKILL.md +1 -1
- package/Dev/i18n/fr/Symfony/skills/domain-events/SKILL.md +1 -1
- package/Dev/i18n/fr/Symfony/skills/i18n/SKILL.md +1 -1
- package/Dev/i18n/fr/Symfony/skills/multitenant/SKILL.md +1 -1
- package/Dev/i18n/fr/Symfony/skills/performance/SKILL.md +1 -1
- package/Dev/i18n/fr/Symfony/skills/quality-tools/SKILL.md +1 -1
- package/Dev/i18n/fr/Symfony/skills/security-symfony/SKILL.md +1 -1
- package/Dev/i18n/fr/Symfony/skills/testing-symfony/SKILL.md +1 -1
- package/Dev/i18n/fr/Symfony/skills/value-objects/SKILL.md +1 -1
- package/Dev/i18n/pt/Common/skills/documentation/SKILL.md +1 -1
- package/Dev/i18n/pt/Common/skills/git-workflow/SKILL.md +1 -1
- package/Dev/i18n/pt/Common/skills/kiss-dry-yagni/SKILL.md +1 -1
- package/Dev/i18n/pt/Common/skills/security/SKILL.md +1 -1
- package/Dev/i18n/pt/Common/skills/solid-principles/SKILL.md +1 -1
- package/Dev/i18n/pt/Common/skills/testing/SKILL.md +1 -1
- package/Dev/i18n/pt/Common/skills/workflow-analysis/SKILL.md +1 -1
- package/Dev/i18n/pt/Common/templates/CLAUDE.md.template +56 -39
- package/Dev/i18n/pt/Flutter/skills/architecture/SKILL.md +1 -1
- package/Dev/i18n/pt/Flutter/skills/coding-standards/SKILL.md +1 -1
- package/Dev/i18n/pt/Flutter/skills/performance/SKILL.md +1 -1
- package/Dev/i18n/pt/Flutter/skills/quality-tools/SKILL.md +1 -1
- package/Dev/i18n/pt/Flutter/skills/security-flutter/SKILL.md +1 -1
- package/Dev/i18n/pt/Flutter/skills/state-management/SKILL.md +1 -1
- package/Dev/i18n/pt/Flutter/skills/tooling/SKILL.md +1 -1
- package/Dev/i18n/pt/Python/skills/architecture/SKILL.md +1 -1
- package/Dev/i18n/pt/Python/skills/coding-standards/SKILL.md +1 -1
- package/Dev/i18n/pt/Python/skills/testing-python/SKILL.md +1 -1
- package/Dev/i18n/pt/Python/skills/tooling/SKILL.md +1 -1
- package/Dev/i18n/pt/React/skills/architecture/SKILL.md +1 -1
- package/Dev/i18n/pt/React/skills/coding-standards/SKILL.md +1 -1
- package/Dev/i18n/pt/React/skills/quality-tools/SKILL.md +1 -1
- package/Dev/i18n/pt/React/skills/security-react/SKILL.md +1 -1
- package/Dev/i18n/pt/React/skills/testing-react/SKILL.md +1 -1
- package/Dev/i18n/pt/React/skills/tooling/SKILL.md +1 -1
- package/Dev/i18n/pt/ReactNative/skills/architecture/SKILL.md +1 -1
- package/Dev/i18n/pt/ReactNative/skills/coding-standards/SKILL.md +1 -1
- package/Dev/i18n/pt/ReactNative/skills/navigation/SKILL.md +1 -1
- package/Dev/i18n/pt/ReactNative/skills/performance/SKILL.md +1 -1
- package/Dev/i18n/pt/ReactNative/skills/quality-tools/SKILL.md +1 -1
- package/Dev/i18n/pt/ReactNative/skills/security-reactnative/SKILL.md +1 -1
- package/Dev/i18n/pt/ReactNative/skills/state-management/SKILL.md +1 -1
- package/Dev/i18n/pt/ReactNative/skills/testing-reactnative/SKILL.md +1 -1
- package/Dev/i18n/pt/ReactNative/skills/tooling/SKILL.md +1 -1
- package/Dev/i18n/pt/Symfony/skills/aggregates/SKILL.md +1 -1
- package/Dev/i18n/pt/Symfony/skills/architecture-clean-ddd/SKILL.md +1 -1
- package/Dev/i18n/pt/Symfony/skills/async/SKILL.md +1 -1
- package/Dev/i18n/pt/Symfony/skills/coding-standards/SKILL.md +1 -1
- package/Dev/i18n/pt/Symfony/skills/cqrs/SKILL.md +1 -1
- package/Dev/i18n/pt/Symfony/skills/ddd-patterns/SKILL.md +1 -1
- package/Dev/i18n/pt/Symfony/skills/docker-hadolint/SKILL.md +1 -1
- package/Dev/i18n/pt/Symfony/skills/doctrine-extensions/SKILL.md +1 -1
- package/Dev/i18n/pt/Symfony/skills/domain-events/SKILL.md +1 -1
- package/Dev/i18n/pt/Symfony/skills/i18n/SKILL.md +1 -1
- package/Dev/i18n/pt/Symfony/skills/multitenant/SKILL.md +1 -1
- package/Dev/i18n/pt/Symfony/skills/performance/SKILL.md +1 -1
- package/Dev/i18n/pt/Symfony/skills/quality-tools/SKILL.md +1 -1
- package/Dev/i18n/pt/Symfony/skills/security-symfony/SKILL.md +1 -1
- package/Dev/i18n/pt/Symfony/skills/testing-symfony/SKILL.md +1 -1
- package/Dev/i18n/pt/Symfony/skills/value-objects/SKILL.md +1 -1
- package/Dev/scripts/install-angular-rules.sh +284 -203
- package/Dev/scripts/install-common-rules.sh +16 -2
- package/Dev/scripts/install-csharp-rules.sh +217 -193
- package/Dev/scripts/install-flutter-rules.sh +288 -206
- package/Dev/scripts/install-laravel-rules.sh +298 -209
- package/Dev/scripts/install-php-rules.sh +220 -206
- package/Dev/scripts/install-python-rules.sh +199 -200
- package/Dev/scripts/install-react-rules.sh +253 -204
- package/Dev/scripts/install-reactnative-rules.sh +275 -207
- package/Dev/scripts/install-symfony-rules.sh +356 -635
- package/Dev/scripts/install-vuejs-rules.sh +291 -300
- package/Dev/scripts/migrate-project.sh +3 -4
- package/Dev/scripts/tcl-common.sh +329 -0
- package/Project/i18n/de/commands/decompose-tasks.md +2 -2
- package/Project/i18n/de/commands/generate-backlog.md +6 -6
- package/Project/i18n/en/commands/decompose-tasks.md +2 -2
- package/Project/i18n/en/commands/generate-backlog.md +6 -6
- package/Project/i18n/es/commands/decompose-tasks.md +2 -2
- package/Project/i18n/es/commands/generate-backlog.md +6 -6
- package/Project/i18n/fr/commands/decompose-tasks.md +2 -2
- package/Project/i18n/fr/commands/generate-backlog.md +7 -7
- package/Project/i18n/pt/commands/decompose-tasks.md +2 -2
- package/Project/i18n/pt/commands/generate-backlog.md +6 -6
- package/README.md +30 -4
- package/package.json +1 -1
- package/Dev/i18n/de/Common/skills/documentation/REFERENCE.md +0 -555
- package/Dev/i18n/de/Common/skills/git-workflow/REFERENCE.md +0 -541
- package/Dev/i18n/de/Common/skills/kiss-dry-yagni/REFERENCE.md +0 -417
- package/Dev/i18n/de/Common/skills/security/REFERENCE.md +0 -540
- package/Dev/i18n/de/Common/skills/solid-principles/REFERENCE.md +0 -396
- package/Dev/i18n/de/Common/skills/testing/REFERENCE.md +0 -463
- package/Dev/i18n/de/Common/skills/workflow-analysis/REFERENCE.md +0 -226
- package/Dev/i18n/de/Flutter/skills/architecture/REFERENCE.md +0 -455
- package/Dev/i18n/de/Flutter/skills/coding-standards/REFERENCE.md +0 -247
- package/Dev/i18n/de/Flutter/skills/performance/REFERENCE.md +0 -230
- package/Dev/i18n/de/Flutter/skills/quality-tools/REFERENCE.md +0 -239
- package/Dev/i18n/de/Flutter/skills/security-flutter/REFERENCE.md +0 -247
- package/Dev/i18n/de/Flutter/skills/state-management/REFERENCE.md +0 -0
- package/Dev/i18n/de/Flutter/skills/testing-flutter/REFERENCE.md +0 -0
- package/Dev/i18n/de/Flutter/skills/tooling/REFERENCE.md +0 -542
- package/Dev/i18n/de/Python/skills/architecture/REFERENCE.md +0 -444
- package/Dev/i18n/de/Python/skills/coding-standards/REFERENCE.md +0 -572
- package/Dev/i18n/de/Python/skills/testing-python/REFERENCE.md +0 -387
- package/Dev/i18n/de/Python/skills/tooling/REFERENCE.md +0 -351
- package/Dev/i18n/de/React/skills/architecture/REFERENCE.md +0 -490
- package/Dev/i18n/de/React/skills/coding-standards/REFERENCE.md +0 -500
- package/Dev/i18n/de/React/skills/quality-tools/REFERENCE.md +0 -758
- package/Dev/i18n/de/React/skills/security-react/REFERENCE.md +0 -793
- package/Dev/i18n/de/React/skills/testing-react/REFERENCE.md +0 -999
- package/Dev/i18n/de/React/skills/tooling/REFERENCE.md +0 -777
- package/Dev/i18n/de/ReactNative/skills/architecture/REFERENCE.md +0 -1253
- package/Dev/i18n/de/ReactNative/skills/coding-standards/REFERENCE.md +0 -1230
- package/Dev/i18n/de/ReactNative/skills/navigation/REFERENCE.md +0 -601
- package/Dev/i18n/de/ReactNative/skills/performance/REFERENCE.md +0 -727
- package/Dev/i18n/de/ReactNative/skills/quality-tools/REFERENCE.md +0 -122
- package/Dev/i18n/de/ReactNative/skills/security-reactnative/REFERENCE.md +0 -719
- package/Dev/i18n/de/ReactNative/skills/state-management/REFERENCE.md +0 -607
- package/Dev/i18n/de/ReactNative/skills/testing-reactnative/REFERENCE.md +0 -386
- package/Dev/i18n/de/ReactNative/skills/tooling/REFERENCE.md +0 -281
- package/Dev/i18n/de/Symfony/skills/aggregates/REFERENCE.md +0 -115
- package/Dev/i18n/de/Symfony/skills/architecture-clean-ddd/REFERENCE.md +0 -813
- package/Dev/i18n/de/Symfony/skills/async/REFERENCE.md +0 -190
- package/Dev/i18n/de/Symfony/skills/coding-standards/REFERENCE.md +0 -402
- package/Dev/i18n/de/Symfony/skills/cqrs/REFERENCE.md +0 -426
- package/Dev/i18n/de/Symfony/skills/ddd-patterns/REFERENCE.md +0 -1220
- package/Dev/i18n/de/Symfony/skills/docker-hadolint/REFERENCE.md +0 -772
- package/Dev/i18n/de/Symfony/skills/doctrine-extensions/REFERENCE.md +0 -927
- package/Dev/i18n/de/Symfony/skills/domain-events/REFERENCE.md +0 -129
- package/Dev/i18n/de/Symfony/skills/i18n/REFERENCE.md +0 -185
- package/Dev/i18n/de/Symfony/skills/multitenant/REFERENCE.md +0 -432
- package/Dev/i18n/de/Symfony/skills/performance/REFERENCE.md +0 -888
- package/Dev/i18n/de/Symfony/skills/quality-tools/REFERENCE.md +0 -982
- package/Dev/i18n/de/Symfony/skills/security-symfony/REFERENCE.md +0 -353
- package/Dev/i18n/de/Symfony/skills/testing-symfony/REFERENCE.md +0 -452
- package/Dev/i18n/de/Symfony/skills/value-objects/REFERENCE.md +0 -536
- package/Dev/i18n/de/Symfony/templates/aggregate-examples.md +0 -1128
- package/Dev/i18n/de/Symfony/templates/domain-event-examples.md +0 -1091
- package/Dev/i18n/de/Symfony/templates/value-object-examples.md +0 -1129
- package/Dev/i18n/en/Common/skills/documentation/REFERENCE.md +0 -555
- package/Dev/i18n/en/Common/skills/git-workflow/REFERENCE.md +0 -541
- package/Dev/i18n/en/Common/skills/kiss-dry-yagni/REFERENCE.md +0 -417
- package/Dev/i18n/en/Common/skills/security/REFERENCE.md +0 -540
- package/Dev/i18n/en/Common/skills/solid-principles/REFERENCE.md +0 -396
- package/Dev/i18n/en/Common/skills/testing/REFERENCE.md +0 -463
- package/Dev/i18n/en/Common/skills/workflow-analysis/REFERENCE.md +0 -226
- package/Dev/i18n/en/Flutter/skills/architecture/REFERENCE.md +0 -455
- package/Dev/i18n/en/Flutter/skills/coding-standards/REFERENCE.md +0 -247
- package/Dev/i18n/en/Flutter/skills/performance/REFERENCE.md +0 -230
- package/Dev/i18n/en/Flutter/skills/quality-tools/REFERENCE.md +0 -239
- package/Dev/i18n/en/Flutter/skills/security-flutter/REFERENCE.md +0 -247
- package/Dev/i18n/en/Flutter/skills/state-management/REFERENCE.md +0 -0
- package/Dev/i18n/en/Flutter/skills/testing-flutter/REFERENCE.md +0 -0
- package/Dev/i18n/en/Flutter/skills/tooling/REFERENCE.md +0 -542
- package/Dev/i18n/en/Python/skills/architecture/REFERENCE.md +0 -444
- package/Dev/i18n/en/Python/skills/coding-standards/REFERENCE.md +0 -572
- package/Dev/i18n/en/Python/skills/testing-python/REFERENCE.md +0 -387
- package/Dev/i18n/en/Python/skills/tooling/REFERENCE.md +0 -351
- package/Dev/i18n/en/React/skills/architecture/REFERENCE.md +0 -651
- package/Dev/i18n/en/React/skills/coding-standards/REFERENCE.md +0 -716
- package/Dev/i18n/en/React/skills/quality-tools/REFERENCE.md +0 -758
- package/Dev/i18n/en/React/skills/security-react/REFERENCE.md +0 -793
- package/Dev/i18n/en/React/skills/testing-react/REFERENCE.md +0 -999
- package/Dev/i18n/en/React/skills/tooling/REFERENCE.md +0 -777
- package/Dev/i18n/en/ReactNative/skills/architecture/REFERENCE.md +0 -1253
- package/Dev/i18n/en/ReactNative/skills/coding-standards/REFERENCE.md +0 -1230
- package/Dev/i18n/en/ReactNative/skills/navigation/REFERENCE.md +0 -601
- package/Dev/i18n/en/ReactNative/skills/performance/REFERENCE.md +0 -727
- package/Dev/i18n/en/ReactNative/skills/quality-tools/REFERENCE.md +0 -122
- package/Dev/i18n/en/ReactNative/skills/security-reactnative/REFERENCE.md +0 -719
- package/Dev/i18n/en/ReactNative/skills/state-management/REFERENCE.md +0 -607
- package/Dev/i18n/en/ReactNative/skills/testing-reactnative/REFERENCE.md +0 -386
- package/Dev/i18n/en/ReactNative/skills/tooling/REFERENCE.md +0 -281
- package/Dev/i18n/en/Symfony/skills/aggregates/REFERENCE.md +0 -115
- package/Dev/i18n/en/Symfony/skills/architecture-clean-ddd/REFERENCE.md +0 -979
- package/Dev/i18n/en/Symfony/skills/async/REFERENCE.md +0 -190
- package/Dev/i18n/en/Symfony/skills/coding-standards/REFERENCE.md +0 -402
- package/Dev/i18n/en/Symfony/skills/cqrs/REFERENCE.md +0 -426
- package/Dev/i18n/en/Symfony/skills/ddd-patterns/REFERENCE.md +0 -1220
- package/Dev/i18n/en/Symfony/skills/docker-hadolint/REFERENCE.md +0 -767
- package/Dev/i18n/en/Symfony/skills/doctrine-extensions/REFERENCE.md +0 -927
- package/Dev/i18n/en/Symfony/skills/domain-events/REFERENCE.md +0 -129
- package/Dev/i18n/en/Symfony/skills/i18n/REFERENCE.md +0 -185
- package/Dev/i18n/en/Symfony/skills/multitenant/REFERENCE.md +0 -432
- package/Dev/i18n/en/Symfony/skills/performance/REFERENCE.md +0 -888
- package/Dev/i18n/en/Symfony/skills/quality-tools/REFERENCE.md +0 -982
- package/Dev/i18n/en/Symfony/skills/security-symfony/REFERENCE.md +0 -1055
- package/Dev/i18n/en/Symfony/skills/testing-symfony/REFERENCE.md +0 -1121
- package/Dev/i18n/en/Symfony/skills/value-objects/REFERENCE.md +0 -536
- package/Dev/i18n/en/Symfony/templates/aggregate-examples.md +0 -1128
- package/Dev/i18n/en/Symfony/templates/domain-event-examples.md +0 -1091
- package/Dev/i18n/en/Symfony/templates/value-object-examples.md +0 -1129
- package/Dev/i18n/es/Common/skills/documentation/REFERENCE.md +0 -555
- package/Dev/i18n/es/Common/skills/git-workflow/REFERENCE.md +0 -541
- package/Dev/i18n/es/Common/skills/kiss-dry-yagni/REFERENCE.md +0 -417
- package/Dev/i18n/es/Common/skills/security/REFERENCE.md +0 -540
- package/Dev/i18n/es/Common/skills/solid-principles/REFERENCE.md +0 -396
- package/Dev/i18n/es/Common/skills/testing/REFERENCE.md +0 -463
- package/Dev/i18n/es/Common/skills/workflow-analysis/REFERENCE.md +0 -226
- package/Dev/i18n/es/Flutter/skills/architecture/REFERENCE.md +0 -455
- package/Dev/i18n/es/Flutter/skills/coding-standards/REFERENCE.md +0 -247
- package/Dev/i18n/es/Flutter/skills/performance/REFERENCE.md +0 -230
- package/Dev/i18n/es/Flutter/skills/quality-tools/REFERENCE.md +0 -239
- package/Dev/i18n/es/Flutter/skills/security-flutter/REFERENCE.md +0 -247
- package/Dev/i18n/es/Flutter/skills/state-management/REFERENCE.md +0 -0
- package/Dev/i18n/es/Flutter/skills/testing-flutter/REFERENCE.md +0 -0
- package/Dev/i18n/es/Flutter/skills/tooling/REFERENCE.md +0 -542
- package/Dev/i18n/es/Python/skills/architecture/REFERENCE.md +0 -445
- package/Dev/i18n/es/Python/skills/coding-standards/REFERENCE.md +0 -572
- package/Dev/i18n/es/Python/skills/testing-python/REFERENCE.md +0 -387
- package/Dev/i18n/es/Python/skills/tooling/REFERENCE.md +0 -351
- package/Dev/i18n/es/React/skills/architecture/REFERENCE.md +0 -583
- package/Dev/i18n/es/React/skills/coding-standards/REFERENCE.md +0 -716
- package/Dev/i18n/es/React/skills/quality-tools/REFERENCE.md +0 -758
- package/Dev/i18n/es/React/skills/security-react/REFERENCE.md +0 -793
- package/Dev/i18n/es/React/skills/testing-react/REFERENCE.md +0 -999
- package/Dev/i18n/es/React/skills/tooling/REFERENCE.md +0 -777
- package/Dev/i18n/es/ReactNative/skills/architecture/REFERENCE.md +0 -1253
- package/Dev/i18n/es/ReactNative/skills/coding-standards/REFERENCE.md +0 -1230
- package/Dev/i18n/es/ReactNative/skills/navigation/REFERENCE.md +0 -601
- package/Dev/i18n/es/ReactNative/skills/performance/REFERENCE.md +0 -727
- package/Dev/i18n/es/ReactNative/skills/quality-tools/REFERENCE.md +0 -122
- package/Dev/i18n/es/ReactNative/skills/security-reactnative/REFERENCE.md +0 -719
- package/Dev/i18n/es/ReactNative/skills/state-management/REFERENCE.md +0 -607
- package/Dev/i18n/es/ReactNative/skills/testing-reactnative/REFERENCE.md +0 -386
- package/Dev/i18n/es/ReactNative/skills/tooling/REFERENCE.md +0 -281
- package/Dev/i18n/es/Symfony/skills/aggregates/REFERENCE.md +0 -115
- package/Dev/i18n/es/Symfony/skills/architecture-clean-ddd/REFERENCE.md +0 -270
- package/Dev/i18n/es/Symfony/skills/async/REFERENCE.md +0 -190
- package/Dev/i18n/es/Symfony/skills/coding-standards/REFERENCE.md +0 -402
- package/Dev/i18n/es/Symfony/skills/cqrs/REFERENCE.md +0 -426
- package/Dev/i18n/es/Symfony/skills/ddd-patterns/REFERENCE.md +0 -1220
- package/Dev/i18n/es/Symfony/skills/docker-hadolint/REFERENCE.md +0 -265
- package/Dev/i18n/es/Symfony/skills/doctrine-extensions/REFERENCE.md +0 -927
- package/Dev/i18n/es/Symfony/skills/domain-events/REFERENCE.md +0 -129
- package/Dev/i18n/es/Symfony/skills/i18n/REFERENCE.md +0 -185
- package/Dev/i18n/es/Symfony/skills/multitenant/REFERENCE.md +0 -432
- package/Dev/i18n/es/Symfony/skills/performance/REFERENCE.md +0 -888
- package/Dev/i18n/es/Symfony/skills/quality-tools/REFERENCE.md +0 -982
- package/Dev/i18n/es/Symfony/skills/security-symfony/REFERENCE.md +0 -1055
- package/Dev/i18n/es/Symfony/skills/testing-symfony/REFERENCE.md +0 -370
- package/Dev/i18n/es/Symfony/skills/value-objects/REFERENCE.md +0 -536
- package/Dev/i18n/es/Symfony/templates/aggregate-examples.md +0 -1128
- package/Dev/i18n/es/Symfony/templates/domain-event-examples.md +0 -375
- package/Dev/i18n/es/Symfony/templates/value-object-examples.md +0 -626
- package/Dev/i18n/fr/Common/skills/documentation/REFERENCE.md +0 -555
- package/Dev/i18n/fr/Common/skills/git-workflow/REFERENCE.md +0 -541
- package/Dev/i18n/fr/Common/skills/kiss-dry-yagni/REFERENCE.md +0 -417
- package/Dev/i18n/fr/Common/skills/security/REFERENCE.md +0 -540
- package/Dev/i18n/fr/Common/skills/solid-principles/REFERENCE.md +0 -396
- package/Dev/i18n/fr/Common/skills/testing/REFERENCE.md +0 -463
- package/Dev/i18n/fr/Common/skills/workflow-analysis/REFERENCE.md +0 -226
- package/Dev/i18n/fr/Flutter/skills/architecture/REFERENCE.md +0 -1763
- package/Dev/i18n/fr/Flutter/skills/coding-standards/REFERENCE.md +0 -1147
- package/Dev/i18n/fr/Flutter/skills/performance/REFERENCE.md +0 -230
- package/Dev/i18n/fr/Flutter/skills/quality-tools/REFERENCE.md +0 -239
- package/Dev/i18n/fr/Flutter/skills/security-flutter/REFERENCE.md +0 -247
- package/Dev/i18n/fr/Flutter/skills/state-management/REFERENCE.md +0 -408
- package/Dev/i18n/fr/Flutter/skills/testing-flutter/REFERENCE.md +0 -692
- package/Dev/i18n/fr/Flutter/skills/tooling/REFERENCE.md +0 -542
- package/Dev/i18n/fr/Python/skills/architecture/REFERENCE.md +0 -1383
- package/Dev/i18n/fr/Python/skills/coding-standards/REFERENCE.md +0 -934
- package/Dev/i18n/fr/Python/skills/testing-python/REFERENCE.md +0 -778
- package/Dev/i18n/fr/Python/skills/tooling/REFERENCE.md +0 -730
- package/Dev/i18n/fr/React/skills/architecture/REFERENCE.md +0 -1005
- package/Dev/i18n/fr/React/skills/coding-standards/REFERENCE.md +0 -995
- package/Dev/i18n/fr/React/skills/quality-tools/REFERENCE.md +0 -758
- package/Dev/i18n/fr/React/skills/security-react/REFERENCE.md +0 -793
- package/Dev/i18n/fr/React/skills/testing-react/REFERENCE.md +0 -999
- package/Dev/i18n/fr/React/skills/tooling/REFERENCE.md +0 -777
- package/Dev/i18n/fr/ReactNative/skills/architecture/REFERENCE.md +0 -1253
- package/Dev/i18n/fr/ReactNative/skills/coding-standards/REFERENCE.md +0 -1230
- package/Dev/i18n/fr/ReactNative/skills/navigation/REFERENCE.md +0 -601
- package/Dev/i18n/fr/ReactNative/skills/performance/REFERENCE.md +0 -727
- package/Dev/i18n/fr/ReactNative/skills/quality-tools/REFERENCE.md +0 -122
- package/Dev/i18n/fr/ReactNative/skills/security-reactnative/REFERENCE.md +0 -719
- package/Dev/i18n/fr/ReactNative/skills/state-management/REFERENCE.md +0 -607
- package/Dev/i18n/fr/ReactNative/skills/testing-reactnative/REFERENCE.md +0 -386
- package/Dev/i18n/fr/ReactNative/skills/tooling/REFERENCE.md +0 -281
- package/Dev/i18n/fr/Symfony/skills/aggregates/REFERENCE.md +0 -115
- package/Dev/i18n/fr/Symfony/skills/architecture-clean-ddd/REFERENCE.md +0 -979
- package/Dev/i18n/fr/Symfony/skills/async/REFERENCE.md +0 -190
- package/Dev/i18n/fr/Symfony/skills/coding-standards/REFERENCE.md +0 -402
- package/Dev/i18n/fr/Symfony/skills/cqrs/REFERENCE.md +0 -426
- package/Dev/i18n/fr/Symfony/skills/ddd-patterns/REFERENCE.md +0 -1220
- package/Dev/i18n/fr/Symfony/skills/docker-hadolint/REFERENCE.md +0 -767
- package/Dev/i18n/fr/Symfony/skills/doctrine-extensions/REFERENCE.md +0 -927
- package/Dev/i18n/fr/Symfony/skills/domain-events/REFERENCE.md +0 -129
- package/Dev/i18n/fr/Symfony/skills/i18n/REFERENCE.md +0 -185
- package/Dev/i18n/fr/Symfony/skills/multitenant/REFERENCE.md +0 -432
- package/Dev/i18n/fr/Symfony/skills/performance/REFERENCE.md +0 -888
- package/Dev/i18n/fr/Symfony/skills/quality-tools/REFERENCE.md +0 -982
- package/Dev/i18n/fr/Symfony/skills/security-symfony/REFERENCE.md +0 -1055
- package/Dev/i18n/fr/Symfony/skills/testing-symfony/REFERENCE.md +0 -1121
- package/Dev/i18n/fr/Symfony/skills/value-objects/REFERENCE.md +0 -536
- package/Dev/i18n/fr/Symfony/templates/aggregate-examples.md +0 -1128
- package/Dev/i18n/fr/Symfony/templates/domain-event-examples.md +0 -1091
- package/Dev/i18n/fr/Symfony/templates/value-object-examples.md +0 -1129
- package/Dev/i18n/pt/Common/skills/documentation/REFERENCE.md +0 -555
- package/Dev/i18n/pt/Common/skills/git-workflow/REFERENCE.md +0 -541
- package/Dev/i18n/pt/Common/skills/kiss-dry-yagni/REFERENCE.md +0 -417
- package/Dev/i18n/pt/Common/skills/security/REFERENCE.md +0 -540
- package/Dev/i18n/pt/Common/skills/solid-principles/REFERENCE.md +0 -396
- package/Dev/i18n/pt/Common/skills/testing/REFERENCE.md +0 -463
- package/Dev/i18n/pt/Common/skills/workflow-analysis/REFERENCE.md +0 -226
- package/Dev/i18n/pt/Flutter/skills/architecture/REFERENCE.md +0 -455
- package/Dev/i18n/pt/Flutter/skills/coding-standards/REFERENCE.md +0 -247
- package/Dev/i18n/pt/Flutter/skills/performance/REFERENCE.md +0 -230
- package/Dev/i18n/pt/Flutter/skills/quality-tools/REFERENCE.md +0 -239
- package/Dev/i18n/pt/Flutter/skills/security-flutter/REFERENCE.md +0 -247
- package/Dev/i18n/pt/Flutter/skills/state-management/REFERENCE.md +0 -408
- package/Dev/i18n/pt/Flutter/skills/tooling/REFERENCE.md +0 -542
- package/Dev/i18n/pt/Python/skills/architecture/REFERENCE.md +0 -444
- package/Dev/i18n/pt/Python/skills/coding-standards/REFERENCE.md +0 -572
- package/Dev/i18n/pt/Python/skills/testing-python/REFERENCE.md +0 -387
- package/Dev/i18n/pt/Python/skills/tooling/REFERENCE.md +0 -351
- package/Dev/i18n/pt/React/skills/architecture/REFERENCE.md +0 -651
- package/Dev/i18n/pt/React/skills/coding-standards/REFERENCE.md +0 -716
- package/Dev/i18n/pt/React/skills/quality-tools/REFERENCE.md +0 -758
- package/Dev/i18n/pt/React/skills/security-react/REFERENCE.md +0 -793
- package/Dev/i18n/pt/React/skills/testing-react/REFERENCE.md +0 -999
- package/Dev/i18n/pt/React/skills/tooling/REFERENCE.md +0 -777
- package/Dev/i18n/pt/ReactNative/skills/architecture/REFERENCE.md +0 -200
- package/Dev/i18n/pt/ReactNative/skills/coding-standards/REFERENCE.md +0 -1230
- package/Dev/i18n/pt/ReactNative/skills/navigation/REFERENCE.md +0 -601
- package/Dev/i18n/pt/ReactNative/skills/performance/REFERENCE.md +0 -727
- package/Dev/i18n/pt/ReactNative/skills/quality-tools/REFERENCE.md +0 -122
- package/Dev/i18n/pt/ReactNative/skills/security-reactnative/REFERENCE.md +0 -719
- package/Dev/i18n/pt/ReactNative/skills/state-management/REFERENCE.md +0 -566
- package/Dev/i18n/pt/ReactNative/skills/testing-reactnative/REFERENCE.md +0 -386
- package/Dev/i18n/pt/ReactNative/skills/tooling/REFERENCE.md +0 -281
- package/Dev/i18n/pt/Symfony/skills/aggregates/REFERENCE.md +0 -115
- package/Dev/i18n/pt/Symfony/skills/architecture-clean-ddd/REFERENCE.md +0 -979
- package/Dev/i18n/pt/Symfony/skills/async/REFERENCE.md +0 -190
- package/Dev/i18n/pt/Symfony/skills/coding-standards/REFERENCE.md +0 -402
- package/Dev/i18n/pt/Symfony/skills/cqrs/REFERENCE.md +0 -426
- package/Dev/i18n/pt/Symfony/skills/ddd-patterns/REFERENCE.md +0 -1220
- package/Dev/i18n/pt/Symfony/skills/docker-hadolint/REFERENCE.md +0 -767
- package/Dev/i18n/pt/Symfony/skills/doctrine-extensions/REFERENCE.md +0 -927
- package/Dev/i18n/pt/Symfony/skills/domain-events/REFERENCE.md +0 -129
- package/Dev/i18n/pt/Symfony/skills/i18n/REFERENCE.md +0 -185
- package/Dev/i18n/pt/Symfony/skills/multitenant/REFERENCE.md +0 -432
- package/Dev/i18n/pt/Symfony/skills/performance/REFERENCE.md +0 -888
- package/Dev/i18n/pt/Symfony/skills/quality-tools/REFERENCE.md +0 -982
- package/Dev/i18n/pt/Symfony/skills/security-symfony/REFERENCE.md +0 -1055
- package/Dev/i18n/pt/Symfony/skills/testing-symfony/REFERENCE.md +0 -1121
- package/Dev/i18n/pt/Symfony/skills/value-objects/REFERENCE.md +0 -536
- package/Dev/i18n/pt/Symfony/templates/aggregate-examples.md +0 -1128
- package/Dev/i18n/pt/Symfony/templates/domain-event-examples.md +0 -1091
- package/Dev/i18n/pt/Symfony/templates/value-object-examples.md +0 -1129
|
@@ -1,387 +0,0 @@
|
|
|
1
|
-
# Regla 07: Pruebas
|
|
2
|
-
|
|
3
|
-
Estrategia de pruebas para proyectos Python con Clean Architecture.
|
|
4
|
-
|
|
5
|
-
## Filosofía de Pruebas
|
|
6
|
-
|
|
7
|
-
1. **Las pruebas son documentación**: Muestran cómo se usa el código
|
|
8
|
-
2. **TDD cuando sea posible**: Escribir pruebas antes del código
|
|
9
|
-
3. **Cobertura > 80%**: Mínimo requerido
|
|
10
|
-
4. **Pruebas rápidas**: Pruebas unitarias < 100ms
|
|
11
|
-
|
|
12
|
-
## Organización de Pruebas
|
|
13
|
-
|
|
14
|
-
```
|
|
15
|
-
tests/
|
|
16
|
-
├── unit/ # Pruebas unitarias (rápidas, aisladas)
|
|
17
|
-
│ ├── domain/
|
|
18
|
-
│ │ ├── entities/
|
|
19
|
-
│ │ ├── value_objects/
|
|
20
|
-
│ │ └── services/
|
|
21
|
-
│ └── application/
|
|
22
|
-
│ └── use_cases/
|
|
23
|
-
├── integration/ # Pruebas de integración (BD, API)
|
|
24
|
-
│ ├── database/
|
|
25
|
-
│ └── api/
|
|
26
|
-
├── e2e/ # Pruebas end-to-end (flujos completos)
|
|
27
|
-
└── conftest.py # Fixtures de pytest
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
## Pruebas Unitarias
|
|
31
|
-
|
|
32
|
-
### Características
|
|
33
|
-
|
|
34
|
-
- **Aisladas**: Sin dependencias externas
|
|
35
|
-
- **Rápidas**: < 100ms por prueba
|
|
36
|
-
- **Deterministas**: Siempre el mismo resultado
|
|
37
|
-
- **Independientes**: Pueden ejecutarse en cualquier orden
|
|
38
|
-
|
|
39
|
-
### Ejemplo: Prueba de Entidad
|
|
40
|
-
|
|
41
|
-
```python
|
|
42
|
-
# tests/unit/domain/entities/test_user.py
|
|
43
|
-
import pytest
|
|
44
|
-
from myproject.domain.entities.user import User
|
|
45
|
-
from myproject.domain.exceptions import InvalidEmailError
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
class TestUser:
|
|
49
|
-
"""Pruebas para la entidad User."""
|
|
50
|
-
|
|
51
|
-
def test_create_user_with_valid_data(self):
|
|
52
|
-
"""Prueba creación de usuario con datos válidos."""
|
|
53
|
-
# Arrange
|
|
54
|
-
email = "john@example.com"
|
|
55
|
-
name = "John Doe"
|
|
56
|
-
|
|
57
|
-
# Act
|
|
58
|
-
user = User(email=email, name=name)
|
|
59
|
-
|
|
60
|
-
# Assert
|
|
61
|
-
assert user.email == email
|
|
62
|
-
assert user.name == name
|
|
63
|
-
assert user.is_active is True
|
|
64
|
-
|
|
65
|
-
def test_create_user_with_invalid_email_raises_error(self):
|
|
66
|
-
"""Prueba que email inválido lanza error."""
|
|
67
|
-
# Act & Assert
|
|
68
|
-
with pytest.raises(InvalidEmailError):
|
|
69
|
-
User(email="invalid-email", name="John")
|
|
70
|
-
|
|
71
|
-
@pytest.mark.parametrize("email", [
|
|
72
|
-
"test@example.com",
|
|
73
|
-
"user.name@domain.co.uk",
|
|
74
|
-
"user+tag@example.com",
|
|
75
|
-
])
|
|
76
|
-
def test_create_user_with_various_valid_emails(self, email: str):
|
|
77
|
-
"""Prueba creación de usuario con varios formatos de email válidos."""
|
|
78
|
-
# Act
|
|
79
|
-
user = User(email=email, name="Test")
|
|
80
|
-
|
|
81
|
-
# Assert
|
|
82
|
-
assert user.email == email
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
### Ejemplo: Prueba de Caso de Uso con Mocks
|
|
86
|
-
|
|
87
|
-
```python
|
|
88
|
-
# tests/unit/application/use_cases/test_create_user.py
|
|
89
|
-
import pytest
|
|
90
|
-
from unittest.mock import Mock, MagicMock
|
|
91
|
-
|
|
92
|
-
from myproject.application.use_cases.create_user import CreateUserUseCase
|
|
93
|
-
from myproject.domain.entities.user import User
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
class TestCreateUserUseCase:
|
|
97
|
-
"""Pruebas para CreateUserUseCase."""
|
|
98
|
-
|
|
99
|
-
@pytest.fixture
|
|
100
|
-
def mock_user_repository(self):
|
|
101
|
-
"""Mock de repositorio."""
|
|
102
|
-
return Mock()
|
|
103
|
-
|
|
104
|
-
@pytest.fixture
|
|
105
|
-
def mock_email_service(self):
|
|
106
|
-
"""Mock de servicio de email."""
|
|
107
|
-
return Mock()
|
|
108
|
-
|
|
109
|
-
@pytest.fixture
|
|
110
|
-
def use_case(self, mock_user_repository, mock_email_service):
|
|
111
|
-
"""Crea caso de uso con mocks."""
|
|
112
|
-
return CreateUserUseCase(
|
|
113
|
-
user_repository=mock_user_repository,
|
|
114
|
-
email_service=mock_email_service
|
|
115
|
-
)
|
|
116
|
-
|
|
117
|
-
def test_execute_creates_and_saves_user(
|
|
118
|
-
self,
|
|
119
|
-
use_case,
|
|
120
|
-
mock_user_repository,
|
|
121
|
-
mock_email_service
|
|
122
|
-
):
|
|
123
|
-
"""Prueba que execute crea y guarda usuario."""
|
|
124
|
-
# Arrange
|
|
125
|
-
email = "test@example.com"
|
|
126
|
-
name = "Test User"
|
|
127
|
-
|
|
128
|
-
mock_user = User(email=email, name=name)
|
|
129
|
-
mock_user_repository.save.return_value = mock_user
|
|
130
|
-
mock_user_repository.exists_with_email.return_value = False
|
|
131
|
-
|
|
132
|
-
# Act
|
|
133
|
-
result = use_case.execute(email=email, name=name)
|
|
134
|
-
|
|
135
|
-
# Assert
|
|
136
|
-
mock_user_repository.save.assert_called_once()
|
|
137
|
-
mock_email_service.send_welcome_email.assert_called_once_with(mock_user)
|
|
138
|
-
assert result.email == email
|
|
139
|
-
|
|
140
|
-
def test_execute_with_existing_email_raises_error(
|
|
141
|
-
self,
|
|
142
|
-
use_case,
|
|
143
|
-
mock_user_repository
|
|
144
|
-
):
|
|
145
|
-
"""Prueba que email existente lanza error."""
|
|
146
|
-
# Arrange
|
|
147
|
-
mock_user_repository.exists_with_email.return_value = True
|
|
148
|
-
|
|
149
|
-
# Act & Assert
|
|
150
|
-
with pytest.raises(ValueError, match="El email ya existe"):
|
|
151
|
-
use_case.execute(email="test@example.com", name="Test")
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
## Pruebas de Integración
|
|
155
|
-
|
|
156
|
-
### Características
|
|
157
|
-
|
|
158
|
-
- **Dependencias reales**: Base de datos, API, etc.
|
|
159
|
-
- **Más lentas**: Pueden tomar segundos
|
|
160
|
-
- **Datos aislados**: Cada prueba tiene sus propios datos
|
|
161
|
-
- **Limpieza**: Teardown después de cada prueba
|
|
162
|
-
|
|
163
|
-
### Ejemplo: Prueba de Repositorio
|
|
164
|
-
|
|
165
|
-
```python
|
|
166
|
-
# tests/integration/infrastructure/database/test_user_repository.py
|
|
167
|
-
import pytest
|
|
168
|
-
from sqlalchemy import create_engine
|
|
169
|
-
from sqlalchemy.orm import sessionmaker
|
|
170
|
-
|
|
171
|
-
from myproject.domain.entities.user import User
|
|
172
|
-
from myproject.infrastructure.database.repositories.user_repository_impl import (
|
|
173
|
-
UserRepositoryImpl
|
|
174
|
-
)
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
@pytest.fixture
|
|
178
|
-
def db_session():
|
|
179
|
-
"""Crea sesión de base de datos de prueba."""
|
|
180
|
-
engine = create_engine("sqlite:///:memory:")
|
|
181
|
-
Base.metadata.create_all(engine)
|
|
182
|
-
Session = sessionmaker(bind=engine)
|
|
183
|
-
session = Session()
|
|
184
|
-
|
|
185
|
-
yield session
|
|
186
|
-
|
|
187
|
-
session.rollback()
|
|
188
|
-
session.close()
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
class TestUserRepositoryImpl:
|
|
192
|
-
"""Pruebas de integración para UserRepository."""
|
|
193
|
-
|
|
194
|
-
def test_save_persists_user_to_database(self, db_session):
|
|
195
|
-
"""Prueba que save persiste usuario en base de datos."""
|
|
196
|
-
# Arrange
|
|
197
|
-
repository = UserRepositoryImpl(db_session)
|
|
198
|
-
user = User(email="test@example.com", name="Test")
|
|
199
|
-
|
|
200
|
-
# Act
|
|
201
|
-
saved_user = repository.save(user)
|
|
202
|
-
|
|
203
|
-
# Assert
|
|
204
|
-
db_session.commit()
|
|
205
|
-
found_user = repository.find_by_id(saved_user.id)
|
|
206
|
-
assert found_user is not None
|
|
207
|
-
assert found_user.email == user.email
|
|
208
|
-
|
|
209
|
-
def test_find_by_email_returns_user_if_exists(self, db_session):
|
|
210
|
-
"""Prueba find_by_email devuelve usuario si existe."""
|
|
211
|
-
# Arrange
|
|
212
|
-
repository = UserRepositoryImpl(db_session)
|
|
213
|
-
user = User(email="test@example.com", name="Test")
|
|
214
|
-
repository.save(user)
|
|
215
|
-
db_session.commit()
|
|
216
|
-
|
|
217
|
-
# Act
|
|
218
|
-
found = repository.find_by_email("test@example.com")
|
|
219
|
-
|
|
220
|
-
# Assert
|
|
221
|
-
assert found is not None
|
|
222
|
-
assert found.email == user.email
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
### Ejemplo: Prueba de API
|
|
226
|
-
|
|
227
|
-
```python
|
|
228
|
-
# tests/integration/api/test_user_endpoints.py
|
|
229
|
-
import pytest
|
|
230
|
-
from fastapi.testclient import TestClient
|
|
231
|
-
|
|
232
|
-
from myproject.main import app
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
@pytest.fixture
|
|
236
|
-
def client():
|
|
237
|
-
"""Crea cliente de prueba."""
|
|
238
|
-
return TestClient(app)
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
class TestUserEndpoints:
|
|
242
|
-
"""Pruebas de integración para endpoints de usuario."""
|
|
243
|
-
|
|
244
|
-
def test_create_user_returns_201(self, client):
|
|
245
|
-
"""Prueba POST /users devuelve 201."""
|
|
246
|
-
# Arrange
|
|
247
|
-
data = {
|
|
248
|
-
"email": "test@example.com",
|
|
249
|
-
"name": "Test User"
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
# Act
|
|
253
|
-
response = client.post("/api/v1/users", json=data)
|
|
254
|
-
|
|
255
|
-
# Assert
|
|
256
|
-
assert response.status_code == 201
|
|
257
|
-
assert response.json()["email"] == data["email"]
|
|
258
|
-
|
|
259
|
-
def test_get_user_returns_404_if_not_found(self, client):
|
|
260
|
-
"""Prueba GET /users/{id} devuelve 404 si no se encuentra."""
|
|
261
|
-
# Act
|
|
262
|
-
response = client.get("/api/v1/users/nonexistent-id")
|
|
263
|
-
|
|
264
|
-
# Assert
|
|
265
|
-
assert response.status_code == 404
|
|
266
|
-
```
|
|
267
|
-
|
|
268
|
-
## Cobertura de Pruebas
|
|
269
|
-
|
|
270
|
-
```bash
|
|
271
|
-
# Ejecutar con cobertura
|
|
272
|
-
pytest --cov=src --cov-report=html --cov-report=term-missing
|
|
273
|
-
|
|
274
|
-
# Ver reporte HTML
|
|
275
|
-
open htmlcov/index.html
|
|
276
|
-
```
|
|
277
|
-
|
|
278
|
-
Cobertura objetivo:
|
|
279
|
-
- **Capa de dominio**: > 95%
|
|
280
|
-
- **Capa de aplicación**: > 90%
|
|
281
|
-
- **Capa de infraestructura**: > 80%
|
|
282
|
-
- **Global**: > 80%
|
|
283
|
-
|
|
284
|
-
## Fixtures de Pytest
|
|
285
|
-
|
|
286
|
-
### Ámbitos de Fixture
|
|
287
|
-
|
|
288
|
-
```python
|
|
289
|
-
# conftest.py
|
|
290
|
-
import pytest
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
@pytest.fixture(scope="function") # Por defecto: nueva por prueba
|
|
294
|
-
def user():
|
|
295
|
-
"""Crea nuevo usuario para cada prueba."""
|
|
296
|
-
return User(email="test@example.com", name="Test")
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
@pytest.fixture(scope="class") # Una vez por clase de prueba
|
|
300
|
-
def database():
|
|
301
|
-
"""Configura base de datos una vez por clase."""
|
|
302
|
-
db = setup_database()
|
|
303
|
-
yield db
|
|
304
|
-
teardown_database(db)
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
@pytest.fixture(scope="module") # Una vez por módulo
|
|
308
|
-
def app():
|
|
309
|
-
"""Configura aplicación una vez por módulo."""
|
|
310
|
-
return create_app()
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
@pytest.fixture(scope="session") # Una vez por sesión de pruebas
|
|
314
|
-
def config():
|
|
315
|
-
"""Carga configuración una vez para toda la sesión."""
|
|
316
|
-
return load_config()
|
|
317
|
-
```
|
|
318
|
-
|
|
319
|
-
### Fábricas de Fixture
|
|
320
|
-
|
|
321
|
-
```python
|
|
322
|
-
# conftest.py
|
|
323
|
-
import pytest
|
|
324
|
-
from typing import Callable
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
@pytest.fixture
|
|
328
|
-
def user_factory() -> Callable:
|
|
329
|
-
"""Fábrica para crear usuarios con datos personalizados."""
|
|
330
|
-
def _create_user(email: str = "test@example.com", name: str = "Test") -> User:
|
|
331
|
-
return User(email=email, name=name)
|
|
332
|
-
return _create_user
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
# Uso en prueba
|
|
336
|
-
def test_something(user_factory):
|
|
337
|
-
user1 = user_factory()
|
|
338
|
-
user2 = user_factory(email="other@example.com")
|
|
339
|
-
```
|
|
340
|
-
|
|
341
|
-
## Pruebas Parametrizadas
|
|
342
|
-
|
|
343
|
-
```python
|
|
344
|
-
import pytest
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
@pytest.mark.parametrize("email,expected_valid", [
|
|
348
|
-
("valid@example.com", True),
|
|
349
|
-
("invalid-email", False),
|
|
350
|
-
("@example.com", False),
|
|
351
|
-
("user@", False),
|
|
352
|
-
])
|
|
353
|
-
def test_email_validation(email: str, expected_valid: bool):
|
|
354
|
-
"""Prueba validación de email con múltiples casos."""
|
|
355
|
-
if expected_valid:
|
|
356
|
-
user = User(email=email, name="Test")
|
|
357
|
-
assert user.email == email
|
|
358
|
-
else:
|
|
359
|
-
with pytest.raises(InvalidEmailError):
|
|
360
|
-
User(email=email, name="Test")
|
|
361
|
-
```
|
|
362
|
-
|
|
363
|
-
## Pruebas Asíncronas
|
|
364
|
-
|
|
365
|
-
```python
|
|
366
|
-
import pytest
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
@pytest.mark.asyncio
|
|
370
|
-
async def test_async_function():
|
|
371
|
-
"""Prueba función asíncrona."""
|
|
372
|
-
result = await some_async_function()
|
|
373
|
-
assert result == expected
|
|
374
|
-
```
|
|
375
|
-
|
|
376
|
-
## Lista de Verificación
|
|
377
|
-
|
|
378
|
-
- [ ] Organización de pruebas (unit/integration/e2e)
|
|
379
|
-
- [ ] Cobertura > 80%
|
|
380
|
-
- [ ] Fixtures configurados en conftest.py
|
|
381
|
-
- [ ] Mocks para dependencias en pruebas unitarias
|
|
382
|
-
- [ ] Patrón AAA (Arrange, Act, Assert)
|
|
383
|
-
- [ ] Nombres descriptivos de pruebas
|
|
384
|
-
- [ ] Una aserción por concepto de prueba
|
|
385
|
-
- [ ] Las pruebas son rápidas (unit < 100ms)
|
|
386
|
-
- [ ] Las pruebas están aisladas e independientes
|
|
387
|
-
- [ ] Casos extremos probados
|