Contributing¶
The canonical contribution guide lives at CONTRIBUTING.md in
the repository root. This page summarizes the contract.
The short version¶
- Fork the repository and create a topic branch off
main. - Make your changes; keep them focused — one PR, one concern.
- Run the local quality gates:
python -m ruff check . python -m ruff format --check . python -m mypy python -m pytest -q python scripts/dev/validate_ecosystem.py - Update
CHANGELOG.md[Unreleased]with a one-line entry under the appropriate section (Added / Changed / Fixed / Removed / Security). - Open a PR using the canonical PR template; sign off your
commit with
git commit -s(DCO).
Conventional commits¶
Commit messages follow the Conventional Commits spec:
<type>(<optional scope>): <subject>
<optional body>
<optional footer>
Supported types: feat, fix, docs, style, refactor,
perf, test, build, ci, chore, revert. The full
template lives at .gitmessage —
git config commit.template .gitmessage applies it locally.
Code review expectations¶
Every PR is reviewed against:
- The ten CI check classes (see cicd-pipeline.md).
- The eight planning techniques surfaced at
src/apothem/rules/planning-techniques.md. - The CM-N mandates surfaced at
src/apothem/rules/operational-mandates.md. - The Bindings five-direction matrix (every new artifact carries the canonical block).
Code of Conduct¶
Contributors are expected to follow CODE_OF_CONDUCT.md
(Contributor Covenant 2.1). Enforcement reports route through
SECURITY.md.
Licensing of contributions¶
By submitting a PR, you license your contribution under the
project's MIT License (see LICENSE) and acknowledge the DCO
sign-off in your commit messages.