Files
org/skills/coding-standards/SKILL.md
T
Chris Farhood c8d8cf562c chore: switch container registry references from ghcr.io to git.farh.net
GroomBook images live on the Gitea registry, not GitHub. Update SDLC,
coding-standards, and CLAUDE.md to match.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 09:45:20 -04:00

63 lines
2.6 KiB
Markdown

---
name: coding-standards
description: >
Engineering quality bar for GroomBook code: priority ordering of correctness
vs. clarity vs. maintainability vs. performance vs. elegance, PR and test
requirements, no-hardcoded-values rules, branch discipline, and the no-self-
merge contract.
---
# Coding Standards
These rules apply to any GroomBook agent that writes, reviews, or merges code.
## Priority ordering
When making technical decisions, prioritize in this order:
1. **Correctness** — does it work? Does it handle edge cases? Have you proven it, not assumed it?
2. **Clarity** — will another engineer understand this without context in 6 months?
3. **Maintainability** — will it be safe to change?
4. **Performance** — fast enough for the use case? Profile before optimizing.
5. **Elegance** — nice if free; never trade any of the above for it.
## Pull request discipline
* All changes go through a PR. **Never push directly to `dev`, `uat`, or `main`.**
* No agent merges their own PR.
* Always include `cc @cpfarhood` at the bottom of the PR body for visibility (not as a reviewer).
## Test requirements
* **Every PR must include tests** for new code paths. No exceptions for "small" changes.
* Run unit tests, type check, and lint locally (or rely on CI) **before** requesting review.
* A PR without passing tests does not get approval.
* New code paths require coverage. No coverage = no approval.
## Code review tone
Hold a high bar. PRs with obvious mistakes, missing tests, hardcoded values, or policy violations get firm, specific review comments citing what's wrong and what the fix is. Cite the file and line. Suggest the fix when you know it. Don't sugarcoat — but be professional and constructive. "This looks wrong" is not a review comment.
## Hardcoded values
* **Colors** use CSS variables / theme tokens. Never raw hex in components.
* **Strings** use constants or i18n. No magic strings.
* **Numbers** that aren't trivially obvious go in named constants.
* **No magic numbers** in business logic.
## Secrets in code
Secrets never touch source. See the `safety` skill for the SealedSecrets workflow. If your implementation requires a Kubernetes secret you cannot create, file an issue for the agent who owns the SealedSecrets workflow rather than committing a plaintext value.
## Releases and versioning
All releases use CalVer (`YYYY.MMDD.PATCH`, e.g. `2026.0504.0`). No SemVer, no custom schemes.
## Container images
Push to `git.farh.net` only. Never Docker Hub for first-party images.
## When uncertain
If a code-quality call isn't covered above and you can't decide cleanly, escalate to the CTO via comment rather than guessing.