cat / 012
clone

a spreadsheet for the terminal: lotus 1-2-3 looks, google sheets keys and formulas, one go binary

cat/module-path
012 / CLAUDE.md
CLAUDE.md 2.2K rendered
1# Working on 01223Read [UX](docs/contributing/ux.md), [extending](docs/contributing/extending.md)4and [testing](docs/contributing/testing.md) in `docs/contributing/`5before changing code.67## No broken windows89Noise that stays becomes invisible, and then real problems hide in it.1011- `make check` passes before every push: gofmt, vet, `make lint`12 (staticcheck in every module, doclint, doccheck, cognitive complexity13 at most 25, Go files at most 500 lines), unit tests, the excelize oracle and the14 libghostty e2e tests. A red check is fixed first, not worked around.15 Run it once, at the end, not repeatedly while iterating: `make quick`16 checks just what changed ([testing](docs/contributing/testing.md#checking-a-change)).17- A warning is fixed where it points, or turned off in its tool's config18 with the reason written next to it (`staticcheck.conf`). Nothing is left19 standing because "it's always been there".20- Docs and comments describe the code as it is and why. How it got there21 (what changed, what it did before, before and after numbers, which commit <!-- doclint:allow: names the phrases the rule forbids -->22 or merge, who did it) belongs in commit messages; doclint enforces this.23 Saying why the code stays compatible with a planned change is fine: that24 explains the code today. Plans go in ROADMAP.md.25- Each doc has one job and one home per fact: change the section a26 reader would look in, link to it from elsewhere, and restructure when27 appending would make a wall of text. Shipped roadmap items move to its28 Shipped list as one line.29- Diagrams are Mermaid code blocks, never ASCII art. Draw one where a30 flow, a state machine or a sequence would otherwise take paragraphs31 ([the docs site](docs/contributing/site.md#diagrams)). 012's screen is32 a picture, a still drawn from a golden screen, never text in a code33 block ([Pictures of 012](docs/contributing/site.md#pictures-of-012));34 code blocks are for what a reader types or a shell prints.35- No scratch files, debug tests, temporary samples or build outputs (`*.test`, binaries) in commits; `make lint` refuses compiled files and anything over 2 MB.36- Visual changes are reviewed in the golden gallery (`make screens`).