- TDD with red-green cycle is required: write/adjust tests first and run them to confirm they fail (red), then implement the minimum code to make them pass (green).
- Keep configs and flags explicit; document defaults in README.
- Provide runbooks for local dev and failure recovery.
- When following a plan file, mark tasks upon completion
- Always run
just lintbefore committing. - Parallelize using subagents when possible.
- Prefer correctness, maintainability, robustness over shortcut implementations.
- Use
justrecipes instead of raw commands (runjustto see all recipes). just ciruns the full local CI pipeline (lint + unit + integration + controlplane tests).just lintrunsgolangci-lint(notgo vet— CI uses golangci-lint).
- Perftest query and coverage additions are exempt from the TDD requirement: do not add tests solely to test perftests. Only make minimal compatibility updates to existing tests when needed.
- Tests should model realistic user behavior, not work around current service limitations.
- If a test exposes a platform bug, report the bug with exact failure details instead of fixing the test.
- This repo is public. Never expose customer or internal data in anything that lands here — PR titles/bodies, commit messages, code, comments, or test fixtures.
- This includes customer/org IDs and UUIDs, customer names, internal hostnames/cluster names/endpoints, secrets, and internal-only identifiers.
- When a diagnostic detail is needed for context, redact it (
<org-id>,org A/org B, "the prod cluster") or keep it in the local conversation only — not in the published artifact.