Rule 8 — Automated formatting and linting¶
Requirement¶
Formatting is not a review topic — it is automated. rustfmt for Rust, the workspace formatter
(bun format when the TypeScript foundation lands) for TypeScript, and black (line length 100)
for Python automation. The GitHub Actions bot formats the codebase on every push across branches and
commits any adjustments. Lints are blocking: cargo clippy -D warnings today, the Bun-native lint
gate after the workspace lands.
Rationale¶
Deterministic formatting removes style disagreement from review and from agent loopback, so a model never normalizes the tree by hand during an implementation pass.
Enforcement¶
.github/workflows/auto-format.ymlreformats on every push.- Formatting and lint gates are required jobs in
ci.yml.
Exceptions¶
Formatting gates apply to source languages present in the tree; generated artifacts are excluded where declared.
Change control¶
The tool list is legacy where it predates the TS/Bun workspace; the target formatter/linter/test
set is the Bun-native one after cli-release lands.