Built with Chinaski

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, using fix/, feature/, or chore/, 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.

Read this site in