This project follows the Contributor Covenant Code of Conduct. By participating, you are expected to uphold it. Please report unacceptable behavior to hectorfranco@nowo.tech.
- Clone the repository.
- Install git hooks once:
make setup-hooks(REQ-MAKE-006 / REQ-GIT-001). - Start the dev container:
make upthenmake install. - Run tests:
make test,make cs-check,make phpstan. - Pre-release:
make release-check.
- PHP-CS-Fixer (PSR-12 + Symfony):
make cs-fix/make cs-check. - PHPStan (level 8+) including
nowo-tech/phpstan-frankenphpclassic + worker rulesets (make phpstan). Dev-only — never a runtime dependency of consuming apps (REQ-CS-005). - PHPDoc and Markdown docs in English.
- Strict types in all PHP files.
- Target the default branch.
- Ensure
make release-checkpasses. - Keep the changelog and docs updated when behaviour or config changes.
Do not add Co-authored-by: Cursor or cursoragent@cursor.com trailers to commit messages.
make setup-hooks
make check-no-cursor-coauthormake setup-hooks sets core.hooksPath to .githooks (includes pre-commit for a light REQ-GIT-001 check and commit-msg to strip Cursor co-author trailers). Run it once per clone before your first commit.
If CI fails because trailers are already on the remote, see GITHUB_CI.md (REQ-GIT-001) and run make strip-cursor-coauthor-from-history before git push --force-with-lease.