This is a production control-plane component. Stability, observability, reversibility, and operational safety take priority over new features.
- Do not change business behaviour without a corresponding entry in docs/archive/DECISIONS.md and an update to docs/archive/COMPATIBILITY_CHECKLIST.md.
- Python remains the production source of truth until parity is proven and a formal GO is recorded. Do not enable Go mutations by default.
- No secrets in commits. Use
*.env.exampletemplates only. - Every outbound HTTP path needs a timeout and a retry policy.
- Every long-running loop must be cancellable via
context.Context. - No package may depend on global mutable state.
gofmt -l . # must print nothing
go vet ./...
go build ./...
go test ./...
go test -race ./...CI (.github/workflows/ci.yml) runs the same set on every push and pull request.
- Sign commits and tags with GPG.
- Use the GitHub no-reply email for authorship.
- Keep commits scoped and message-clear; reference the affected package.
New or changed logic at an external-effect boundary (Cloudflare mutate/transport, cscli adapter, rollback, state/journal) must ship with tests. See docs/archive/TEST_GAP_REPORT.md for the current coverage debt and the packages that most need tests before go-live.