1.5 KiB
1.5 KiB
Rules
- Go runs only through
docker compose run --rm <test|vet|fmt|build|cyclo>; the merge gate isdocker build .plus CI's changelog check. - Tests first, in their own commit; the implementation follows in the next. A re-pin of seeded output or of
testdata/shipped_shape.txtis its own commit. - A change under
data/or to the shape pin adds itsCHANGELOG.mdentry underUnreleasedin the same PR, and so does a change to a flag, an exit code, an exported name, a fence, a builtin or the lowest Go; what is major is the README's Versioning table. - One-line commit messages: no ticket prefix, no repo name, no authorship trailers.
- Merges are fast-forward only, which
tea pr mergecannot spell — every style it offers fails with "is it still open?", as does a merge whose required checks are still pending, so read the checks before believing the style is the problem. Usetea api /repos/{owner}/{repo}/pulls/<n>/merge -f Do=fast-forward-only. - Hard tabs. No comment by default; delete a restatement, a rationale, history, or a file preamble.
- One spelling per result: reject the other at
New, and let the error name the spelling to use. - A standing choice a reader would relitigate goes under Decisions in the README, not in a comment.
- A README example is a
jsonblock that loads and renders as a category;readme_test.goruns every one. - Cyclomatic complexity is gated at 14: the table-shaped dispatches (
linkParent,compileTemplate,renderEdges) sit at it and stay whole; a function that would pass it is decomposed.