[READ-ONLY] Mirror of https://github.com/bombshell-dev/tty. Platform independent 2D layout engine for terminal applications based on Clay
5

Configure Feed

Select the types of activity you want to include in your feed.

🎨 format AGENTS.md

Charles Lowell (Apr 17, 2026, 4:10 PM -0500) 8349467b 9adb34b0

+21 -23
+21 -23
AGENTS.md
··· 2 2 3 3 ## Spec-driven development 4 4 5 - - Specs in `specs/` are the source of truth. Code conforms to specs, 6 - not the other way around. 5 + - Specs in `specs/` are the source of truth. Code conforms to specs, not the 6 + other way around. 7 7 8 - - Never add, remove, or change a public API in code without first 9 - updating the relevant spec and getting explicit approval from the 10 - user. This includes changes to `Term`, `createTerm`, `render()`, 11 - directive constructors (`open`, `close`, `text`), sizing helpers 12 - (`grow`, `fixed`, `fit`), and any future spec'd interfaces. 8 + - Never add, remove, or change a public API in code without first updating the 9 + relevant spec and getting explicit approval from the user. This includes 10 + changes to `Term`, `createTerm`, `render()`, directive constructors (`open`, 11 + `close`, `text`), sizing helpers (`grow`, `fixed`, `fit`), and any future 12 + spec'd interfaces. 13 13 14 - - The workflow is: propose the spec change, wait for approval, 15 - then implement. Do not combine spec changes with implementation 16 - in a single step. 14 + - The workflow is: propose the spec change, wait for approval, then implement. 15 + Do not combine spec changes with implementation in a single step. 17 16 18 - - The renderer and input parser are specified separately 19 - (`renderer-spec.md` and `input-spec.md`). They are architecturally 20 - independent. Do not introduce dependencies between them. 17 + - The renderer and input parser are specified separately (`renderer-spec.md` and 18 + `input-spec.md`). They are architecturally independent. Do not introduce 19 + dependencies between them. 21 20 22 - - Each test file tests exactly one spec. Do not put tests for one 23 - spec into another spec's test file. 21 + - Each test file tests exactly one spec. Do not put tests for one spec into 22 + another spec's test file. 24 23 25 24 ## Rendering invariants 26 25 27 - - The renderer MUST NOT perform IO. It produces bytes; the caller 28 - writes them. 26 + - The renderer MUST NOT perform IO. It produces bytes; the caller writes them. 29 27 30 - - The renderer MUST NOT manage terminal state (alternate buffer, 31 - cursor visibility, mouse reporting, keyboard protocol modes). 28 + - The renderer MUST NOT manage terminal state (alternate buffer, cursor 29 + visibility, mouse reporting, keyboard protocol modes). 32 30 33 - - Each frame is a complete snapshot. The renderer carries no UI tree 34 - state between frames — only cell buffers for diffing. 31 + - Each frame is a complete snapshot. The renderer carries no UI tree state 32 + between frames — only cell buffers for diffing. 35 33 36 - - Directives are plain objects. No classes, no methods, no prototype 37 - chains. The flat array pattern is normative. 34 + - Directives are plain objects. No classes, no methods, no prototype chains. The 35 + flat array pattern is normative.