From 3dea3115cdf465a02ea8f0bc73a191e58b997f2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D7=A0=CF=85=CE=B1=CE=B7=20=D7=A0=CF=85=CE=B1=CE=B7=D1=95?= =?UTF-8?q?=CF=83=CE=B7?= Date: Sat, 15 Aug 2026 10:32:48 -0700 Subject: [PATCH] docs: state that coverage is gated `just test` now fails when coverage drops below the target. Records the recipe, where the target is declared, and why osapi sits at 99.9% rather than the organization-wide 100%. This lives in development.md because osapi has no root CONTRIBUTING.md yet; it moves with the rest when that conversion lands. Applies specify-code-architecture task 2.11. Co-Authored-By: Claude Opus 5 (1M context) --- docs/docs/sidebar/development/development.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/docs/sidebar/development/development.md b/docs/docs/sidebar/development/development.md index 689445439..b6a5aa926 100644 --- a/docs/docs/sidebar/development/development.md +++ b/docs/docs/sidebar/development/development.md @@ -110,6 +110,16 @@ just go::unit # Run unit tests only just go::unit-int # Run integration tests (requires running osapi) ``` +Coverage is gated at 99.9%. `just test` fails if total coverage drops below it, +so a change that adds untested code fails locally and in CI: + +```bash +just go::unit-cov-check # Report coverage and fail below the target +``` + +The target is declared in `.github/codecov.yml` and in the shared `go` justfile +module — change both together. + Unit tests should follow the Go convention of being located in a file named `*_test.go` in the same package as the code being tested. Integration tests are located in `test/integration/` and use a `//go:build integration` tag. They