specs/030-claude-screen-rules/plan.md
Plan
Replace Region::Bottom(n) with a base region plus an optional line limit;
the base slices raw screen lines (prompt box, above box, after last rule),
then the existing normalization (trim, drop empty lines, keep the last n)
applies. Add ScreenState::Hold; Store::apply_screen_state treats it as a
no-op. Port claude.toml into crates/signaltty-agent/screen/, flattening
herdr's nested gates with alternations and order-insensitive (?s) pairs.
Test-first: region and hold unit tests, Store hold test, Claude fixtures.
Record the regions and hold in ADR-0026 and docs/07. A Claude review agent
reviews the diff; no Gemini.