Household pattern
RiskSummary
What the contract adds up to, in a handful of sentences that recompute as the contract changes.
States
Calm
Grocery Restocker defaults
Your note, at a glance
Calm
Can spend up to $40 at a time and $120 a week without asking. Will ask about 2 things. 2 hard limits.
- Can spend up to $40 at a time and $120 a week without asking.
Reorder a staple
- Will ask about 2 things.
Add a new item · Swap an out-of-stock item
- 2 hard limits.
Never buy alcohol · Never order from a store other than Greenleaf Market and Valley Wholesale
- Asks through a card in the app, waits 24 hours, then lets it go.
- Shows you everything it does.
Worth a look
Expense Splitter: can contact people
Your note, at a glance
Worth a look
Can contact people without asking ($200 a request). Will ask about 2 things. 2 hard limits.
- Can contact people without asking ($200 a request).
Send a payment request · Send a first reminder
- Will ask about 2 things.
Send a follow-up reminder · Message the group
- 2 hard limits.
Never send a third reminder · Never message anyone outside the trip group
- Asks through a card in the app, waits 12 hours, then lets it go.
- Shows you everything it does.
Watch out (no limit)
Your note, at a glance
Watch out
Can spend with no limit. Will ask about 2 things. 2 hard limits.
- Can spend with no limit.
Reorder a staple
- Will ask about 2 things.
Add a new item · Swap an out-of-stock item
- 2 hard limits.
Never buy alcohol · Never order from a store other than Greenleaf Market and Valley Wholesale
- Asks through a card in the app, waits 24 hours, then lets it go.
- Shows you everything it does.
Watch out (no hard limits)
Your note, at a glance
Watch out
Can spend up to $40 at a time and $120 a week without asking. Will ask about 2 things. No hard limits.
- Can spend up to $40 at a time and $120 a week without asking.
Reorder a staple
- Will ask about 2 things.
Add a new item · Swap an out-of-stock item
- No hard limits.
- Asks through a card in the app, waits 24 hours, then lets it go.
- Shows you everything it does.
Compact
for cards
Can spend up to $40 at a time and $120 a week without asking. Will ask about 2 things. 2 hard limits.
Live
recomputes as you change a ceiling
Move a ceiling; the summary follows.
Each order
Up to $40 an order
Each week
Up to $120 a week
Your note, at a glance
Calm
Can spend up to $40 at a time and $120 a week without asking. Will ask about 2 things. 2 hard limits.
- Can spend up to $40 at a time and $120 a week without asking.
Reorder a staple
- Will ask about 2 things.
Add a new item · Swap an out-of-stock item
- 2 hard limits.
Never buy alcohol · Never order from a store other than Greenleaf Market and Valley Wholesale
- Asks through a card in the app, waits 24 hours, then lets it go.
- Shows you everything it does.
When to use
- At the top of the editor, full variant, always visible.
- On gallery cards and in headers, compact variant: the headline only.
When not to
- To explain a single event. Use ContractLink for that.
- As a place for warnings the engine did not produce. It renders the engine's summary, nothing else.
Props
| Name | Type | Notes |
|---|---|---|
| summary* | RiskSummary | From summarize(contract). Never hand-built. |
| variant | "full" | "compact" | Compact is one paragraph with a tone mark. |
| onJump | (anchor: string) => void | Each line carries the editor anchor it is about; this scrolls there. |
* required
Accessibility invariants
- A labelled section. Lines are a list, so a screen reader reports how many there are.
- Tone is carried by a word (Calm, Worth a look, Watch out) and a glyph, never only colour.
- Text changes crossfade rather than flash; with reduced motion they simply swap.
Agent instructions
For anything generating UI from this system
Compute the summary with summarize(contract) from lib/engine on every change and pass it in. Render the full variant once at the top of any contract editor and keep it in view; render compact on cards. Wire onJump to scroll to the anchor, which matches the ids used by AutonomyLadder, Ceiling and HardRule. Never write your own summary sentences.