Thanks for your interest in contributing.
- Create a branch from
main. - Make your changes.
- Run local checks.
- Open a pull request with a Conventional Commit title.
Recommended pre-PR command:
./scripts/pr prepareThis runs:
fastlogic
You can run tiers directly:
./scripts/ci/bootstrap.sh fast
./scripts/ci/run.sh fast
./scripts/ci/bootstrap.sh logic
./scripts/ci/run.sh logicFor VM integration checks (macOS + Tart required):
./scripts/ci/bootstrap.sh integration
./scripts/ci/run.sh integrationEvery pull request must pass:
PR Policy(Conventional Commit PR title)Fast ChecksLogic Checks
Conventional Commit examples:
feat: add optional service flag validationfix: handle missing VM marker in up flowdocs: clarify standard vs developer modes
Integration runs are intentionally opt-in because they are expensive.
Supported PR triggers:
- Label
ci:integration-smokefor smoke integration - Label
ci:integration-fullfor broader integration - Maintainer PR comment commands:
/ci integration smokeor/ci integration full
Full CI behavior matrix:
docs/ci-matrix.mddocs/ci-testing-strategy.md
CHANGELOG.md is maintainer-managed.
Contributors should not add release entries unless explicitly asked.
Releases are cut from GitHub Actions workflow_dispatch (Release workflow), not local scripts.
Maintainer release setup requirement:
- Configure repository secret
HOMEBREW_TAP_PAT - Secret must be a fine-grained GitHub token with
contents:writeonjoshavant/homebrew-tap
Release metadata requirements:
- Tag format:
vX.Y.Z pyproject.toml[project].versionmatches tag withoutvCHANGELOG.mdcontains heading## vX.Y.Z
- Runtime orchestration code is Python-first in
clawbox/. - Runtime command surface is
clawbox <subcommand>. - Integration scenario orchestration lives in
tests/integration_py/run_integration.py.
Recommended branch protection checks on main:
PR PolicyFast ChecksLogic Checks