tui.md

 1# TUIs
 2
 3Treat TUIs as command-line programs with a full-screen interaction model. Read
 4[cli.md](cli.md) first for command ergonomics, config, versioning, stdout/stderr,
 5and non-interactive behaviour.
 6
 7## Posture
 8
 9- Use a mature TUI framework when the interface has state, layout, focus,
10  keymaps, or async work.
11- Keep the CLI surface consistent with the rest of the project: flags for
12  startup/config, command context for cancellation, and explicit output modes for
13  non-interactive use.
14- Do not copy another tool's task-runner examples blindly; translate useful
15  commands into the project's chosen task runner.
16- Add snapshot/golden update tasks only when the project actually has snapshot or
17  golden tests.
18- Treat terminal compatibility and performance as product concerns, not polish to
19  add at the end.
20
21## Go path
22
23For Go TUIs, read [golang/index.md](golang/index.md) first and follow its TUI
24chain. That route intentionally loads Go baseline, CLI, mise, testing, and Charm
25context before `golang/tui.md`.