Install pre-commit and enable the repository hooks:
pip install pre-commit
pre-commit installHooks run on each commit and enforce:
- ABI snapshot hygiene (
abis/*.jsonmust change together withCOMEBACKHERE-contracts/contracts/*/src/) - Markdown linting
- Trailing whitespace detection
- End-of-file fixing (ensure files end with a newline)
- JSON validation
Run all hooks manually:
pre-commit run --all-filesThe main branch is protected. Direct pushes are not allowed; all changes must go through a pull request.
All of the following checks must pass before a PR can be merged:
contract-build— Soroban contract compilationcontract-tests— contract unit and integration testsabi-snapshot-hygiene— ABI metadata inabis/is consistent with contract sourcemarkdown-lint— documentation lintingfrontend-build— frontend build succeeds
- At least 1 approving review is required for all PRs.
- At least 2 approving reviews are required for PRs that touch mainnet-related paths
(
docs/MAINNET_DEPLOYMENT.md, deployment scripts, or governance configuration).
After changing contract interfaces (in COMEBACKHERE-contracts/), regenerate and verify ABI metadata:
make update-abi-snapshots
# or
just snapshot
make check-abi-snapshots
# or
just check-snapshot