Contributing
Chinaski is MIT-licensed and developed on GitHub. Contributions (bug fixes, features, docs) are welcome.
Before you start
For anything beyond a small fix, open an issue first to agree on the approach before writing code. Search existing issues and open PRs so you’re not duplicating in-flight work.
Local setup
apt-get install -y perl make gcc sqlite3 libjpeg-dev libpng-dev libgif-dev
cpanm --installdeps .
sqlite3 chinaski.db < schema.sql
morbo cms.pl # admin server
perl builder/build.pl # static output Running tests
CI runs prove -lr t/ on a self-hosted runner for every push to main and every pull request; it must pass before merge. See the Testing section for the full harness.
Conventions
- Branch names:
type/short-description, usingfix/,feature/, orchore/, often with the relevant ticket number(s) at the end. - Commit messages follow Conventional Commits:
fix(scope): what changed,feat(scope): what changed,chore: what changed. - Pull requests target
main.
AI-assisted contributions
AI-assisted contributions are expected, not just tolerated. Chinaski was written with Claude Code and Kimi and is maintained the same way: AI fluency is the relevant contribution skill, Perl fluency is not a requirement. Say so in your PR description if a coding agent did the work; it doesn’t need to be hidden.
Reporting bugs and requesting features
Use GitHub Issues on the repository.
License
By submitting a pull request you agree your contribution is licensed under the project’s MIT license. No CLA is required today.
In this section
Also in Contributing
A map of the Chinaski test suite: numbered pre-flight checks, per-feature suites, issue regression tests, exploit tests, and the separate MCP suite.