MeridiansMeridians

A smaller interaction grammar

Source path: knowledge-base/knowledge/product/behaviours/03-a-smaller-interaction-grammar.md

# A smaller interaction grammar

The five-stage human loop is the product model, not five different interfaces the user must learn.
Across activation, daily use, research, tutoring, and Positions, the UI should repeat three familiar
behaviours:

1. **Say what you mean in the field already in front of you.** The host surface supplies the context;
   the user types or taps the same trailing mic button to dictate. Voice fills editable text and never
   auto-sends, auto-commits, or becomes a separate Voice mode. Chat, Onboarding, Notes, prior contribution,
   and Position correction keep their existing write paths.
2. **Review one consequential thing.** A result is a normal Story, or uses the same focused review
   grammar before it can become one: inspect the evidence, accept/confirm, correct, or defer. Onboarding's
   “What I heard,” a research finding, a Tutor proposal, and a re-priced Position read must not each invent a
   different approval experience.
3. **Continue from one clear place.** Home presents exactly one primary continuation: begin, resume,
   review what moved, repair a blocker, or see that the user is caught up and when the expert runs next.
   The exchange and advanced studios remain available below it; they are not the first-run curriculum.

This is **not** a second human loop and these are not new domain nouns. It is an interface compression:
the user can learn one composer, one review pattern, and one way to continue while the Program keeps its
full Research → Opinion → Merge → Position semantics underneath.

### Home as the continuation surface

The shipped Home is primarily an exchange and tool switcher. The next push should preserve those tools but
place a derived continuation card above them. The card resolves from canonical state and never stores a
parallel onboarding or “current task” flag. At most one row below is primary:

| Priority | Condition | Primary continuation |
|---:|---|---|
| 1 | access is read/export-only, or a provider/runtime prerequisite blocks safe work | explain the consequence and offer the one repair or export action |
| 2 | an Onboarding document or other user-started guided flow is incomplete | resume at its last durable boundary |
| 3 | a Story or re-priced Position read awaits human judgment | review the most consequential pending item |
| 4 | completed background work is ready | open its normal Story or owning review surface |
| 5 | work is running | show its current phase and allow restoration; do not compete with it using another CTA |
| 6 | the user is caught up | show healthy/quiet status and the next cadence |
| 7 | no useful expert exists | begin the guided first-expert flow |

Within the same priority, consequence outranks recency; ties use recency. The resolver may compose the
same pure activation, Story, job, schedule, and Position reads used by headless clients. Do not add an
opaque UI-only lifecycle to make the card easier to render.

Implement this as a pure shared `deriveHomeContinuation` selector, not a React effect that makes product
decisions. `useHomeState` feeds it hydrated canonical projections; the planned `read-activation` query
uses the same selector during activation so UI, Pilot, and MCP agree. Its result is a small discriminated
value—`blocked | resume | judgment | ready | running | caught-up | begin`—with a title, summary, source
reference, timestamp, and one typed continuation/resource descriptor. `HomeContinuationCard` renders that
same value in `HomeDesktopView` and `HomePhoneView`; it does not own progress. This keeps policy in pure
core, navigation in the shell, and writes behind the owning action/operation.

Long work uses the shipped [`FloatingDock` / `DockPill`](../../../../src/ui/feedback/FloatingDock.tsx) family.
Onboarding grounding/builds, Graph/Reading construction, and Position construction minimise into that one
place with `running`, `done`, or `error` state and a plain-language phase. Clicking restores the owning
surface; completion opens the normal review/Story path. A new task centre is not required for the first
release.

### Progressive disclosure by consequence

The first path asks for the user's goal and judgment, not Meridians' internal vocabulary. Terms such as
paradigm, extraction, breadth, cycle, CRG, temporal vantage, and monitor mode remain available when a
user inspects or configures them, but are not prerequisites for first value. The default Position answers
“where is this heading, how confident, what are we watching, and why?” before it offers graph authoring. The default
research handoff answers “what did it read, what changed, and why does it matter?” before it opens the
research console.
Open on GitHub

Raw Markdown source