Claude Code should follow the repository-wide instructions in AGENTS.md.
In particular, do not introduce Python T | None types unless None is an
intentional state in the contract; required values must remain non-optional.
Keep this file intentionally small so agent instructions do not drift. Update
AGENTS.md when project-wide rules change.
Before pushing, follow the pre-push target contract in AGENTS.md. By default
the pre-push hook runs lint-only (SAST) and skips the heavier tests, coverage,
and E2E; set OCB_PRE_PUSH_RUN_CI=1 to run the full module gates. When the
gates run, the default target is origin/dev; set avernet.prePush.mergeTarget
for a persistent override or AVERNET_PRE_PUSH_MERGE_TARGET for one git push.
The hook must fetch that target and use its merge base rather than a direct
target-to-head diff.
When opening a pull request, follow the Pull Request Conventions section in
AGENTS.md: title the PR <type>(<scope>): <concise outcome> and write the
description with the Problem / Solution / Validation sections from
.github/pull_request_template.md.
Before changing Git hooks, module CI entrypoints, Singlebox orchestration,
acceptance E2E tests, coverage manifests, or coverage reporting, read the
Pre-push Module Selection section in AGENTS.md and treat it together with
the referenced scripts as one contract.