Every shellframe widget needs a predictable interface for render, sizing/layout, focus state, input/event handling, and internal state updates.
Settle these questions:
- How does a component know its bounds? How does it respond to terminal resizing?
- How does it report desired/minimum size?
- How is focus passed in and out?
- How are child components composed?
Deliverable: A doc (or comment block in shellframe.sh) formalizing the contract. No code required — this is a specification.
Effort: S (1–2h)
Phase: 1 — Core UI Contracts
Required by: all Phase 3 primitives
Every shellframe widget needs a predictable interface for render, sizing/layout, focus state, input/event handling, and internal state updates.
Settle these questions:
Deliverable: A doc (or comment block in shellframe.sh) formalizing the contract. No code required — this is a specification.
Effort: S (1–2h)
Phase: 1 — Core UI Contracts
Required by: all Phase 3 primitives