Contributing to Festi AI
Thank you for your interest in contributing! We welcome bug reports, feature requests, and pull requests.
Getting Started
- Fork the repository
- Clone your fork and install dependencies:
composer install - Create a branch for your changes:
git checkout -b feature/your-feature-name
Development
Code Style
This project follows the Festi PHP coding standard enforced by PHPCS:
./vendor/bin/phpcs --standard=./.phan/ruleset.xml -d memory_limit=1024M --extensions=php ./src/
Key conventions:
- Interfaces prefixed with I (e.g. IAIConnection)
- Private fields prefixed with underscore (e.g. $_config)
- Allman/BSD brace style (opening brace on new line)
- Spaces only, no tabs
- Max 120 characters per line
- Full type declarations (parameter types, return types, nullable)
Static Analysis
Run Phan before submitting:
./vendor/bin/phan
Tests
Run the full test suite:
./vendor/bin/phpunit -c tests/phpunit.xml
All new code should include corresponding unit tests.
Submitting a Pull Request
- Ensure PHPCS, Phan, and PHPUnit all pass
- Write a clear description of the change and why it's needed
- Open a pull request against the
mainbranch
Reporting Issues
Please open an issue with: - PHP version - A minimal reproducible example - Expected vs actual behavior
./LICENSE
By contributing, you agree that your contributions will be ./LICENSEd under the MIT ./LICENSE.