Quality Checks

Use the smallest useful check while developing, then run the full set before a pull request.

Question Check
Does the PHP parse? composer lint
Does the code follow project style? composer ecs
Are types and framework contracts correct? composer phpstan
Is the code structure within the allowed layers? composer deptrac
Is the code free from configured design problems? composer phpmd
Would automated refactoring change it? composer rector
Does the behavior work? composer test
Are the Markdown pages valid? composer markdown-lint
Is the agent harness internally consistent? composer agent:harness
Do static Doctrine checks pass? php bin/console doctrine:doctor:analyze --fail-on=warning

The full pre-PR set is:

composer lint
composer ecs
composer phpstan
composer phpmd
composer rector
composer deptrac
composer test
composer markdown-lint
composer agent:harness

Run doctrine:doctor:analyze --with-database only in an environment whose database is intentionally part of the check. Report skipped checks and their reason in the PR.

The hooks are optional local feedback. See the local hooks guide for their scope and prerequisites. Enable them with:

git config core.hooksPath .githooks

CI remains the authoritative check.