26 lines
2.2 KiB
Markdown
26 lines
2.2 KiB
Markdown
# Rules
|
|
|
|
- Go runs only through `docker compose run --rm <test|vet|fmt|build|cyclo>`; the merge gate is `docker 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.txt` is its own commit.
|
|
- A change under `data/` or to the shape pin adds its `CHANGELOG.md` entry under `Unreleased` in 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 merge` cannot 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. Use
|
|
`tea api /repos/{owner}/{repo}/pulls/<n>/merge -f Do=fast-forward-only`.
|
|
- Gitea queues Actions runs that `/repos/{owner}/{repo}/actions/tasks` does not
|
|
list, so an empty task list says nothing about whether CI ran; read
|
|
`/repos/{owner}/{repo}/commits/<sha>/status`.
|
|
- Every pull request scores with the `comprehension-panel` skill's four-seat run at
|
|
depth 1 and answers it in the same PR, per README goal 13: at or above 7.0, address
|
|
the findings in one run; below it, fix what the panel names within this PR's reach
|
|
and re-score, looping while the score climbs. No merge lowers the last score.
|
|
- 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.
|
|
- Prose naming a source states what that source states: read the register's own field
|
|
before paraphrasing it, and name the register you read before claiming none
|
|
publishes a spelling.
|
|
- A README example is a `json` block that loads and renders as a category; `readme_test.go` runs 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.
|