Files
mim/REQUIREMENTS.md
T
2026-06-21 01:25:30 +02:00

43 lines
2.4 KiB
Markdown

# REQUIREMENTS.md
Rows are redgate TSV requirements: `ring<TAB>id<TAB>summary [tag]`.
## session
0 001 `mim` SHALL run as a server-side terminal editor binary for SSH use. [core]
0 002 Each editor session SHALL expose a local socket path to trusted child/tool environments. [protocol]
0 003 The terminal UI SHALL act as a client of the session protocol, even when hosted in the same process. [protocol]
1 004 The session protocol SHALL support deterministic record/replay of input and state-changing commands. [test]
## input
0 001 Common editing and navigation commands SHALL be reachable without required Esc, Ctrl, Alt, or function keys. [mobile]
0 002 The Space leader SHALL expose a visible command rail when the user pauses after pressing it. [mobile]
1 003 Frequent coding punctuation SHALL have editor-native insertion paths for mobile keyboards. [mobile]
1 004 Input handling SHALL separate terminal key events, keyboard layout profiles, and editor command intents. [mobile]
2 005 Keyboard layout profiles SHALL be source-patched tables backed by recorded terminal traces, starting with iOS QWERTZ. [mobile]
## ui
0 001 Narrow terminals SHALL use transient panels instead of permanent desktop splits. [mobile]
1 002 Files, git, diagnostics, LSP, build, terminal, and Pi surfaces SHALL share one panel navigation model. [panels]
## coding
0 001 Buffer and rendering code SHALL preserve UTF-8 boundaries and terminal cell width semantics. [core]
1 002 Tree-sitter syntax highlighting SHALL be built in with source-patched language tables. [syntax]
1 003 LSP support SHALL be built in and spawn existing language servers without installing them. [lsp]
## repo
1 001 File search SHALL respect gitignore rules by default and provide an include-ignored path. [files]
1 002 Git support SHALL use explicit local git commands and avoid hidden mutating operations. [git]
## governance
0 001 Defaults SHALL be changed by patching source and rebuilding, not by runtime config files. [suckless]
0 002 `mim` SHALL not provide a plugin system or package manager. [suckless]
0 003 The session socket SHALL remain local and scoped to the running editor session. [protocol]
1 004 Build variants SHALL be named profiles over source layers, not a public matrix of per-feature flags. [suckless]
1 005 Capabilities excluded from a build profile SHALL fail with clear `not built in this profile` diagnostics. [suckless]