Agent block
An agent stops before anything that posts to the ledger.
Use it when
- The agent wrote it: an answer, a proposal, a plan.
- The agent proposes a change to the books. Its label says the proposal awaits review until a person decides.
Don’t use it when
- You’re reaching for a generic card. The rail and label are how people tell the agent’s work from a person’s.
- It would sit inside another Agent block. Use one per agent turn, with Agent reasoning and Agent plan inside it.
The rules it follows
An agent stops before anything that posts to the ledger.
Check: Nothing reaches the books until a person presses Post.
Status labels name the state.
Check: No status label has a subject.
Before and after
Yes. Invoice MFL-58821 was entered twice and paid twice, $48,216.40 each time.
Found in supplier_invoices_fy2026_h1.csv. I can reverse the second entry, API-KUS-2607-00011, so the supplier owes it back.
Proposed journal entry
Reverse the duplicate payment
$48,216.40, period 2026-10
Yes. Invoice MFL-58821 was entered twice and paid twice, $48,216.40 each time.
Found in supplier_invoices_fy2026_h1.csv. I can reverse the second entry, API-KUS-2607-00011, so the supplier owes it back.
Journal entry
Reverse the duplicate payment
$48,216.40, period 2026-10, JE-KUS-2610-00040
Install
pnpm dlx shadcn@latest add https://tabularui.com/r/agent-block.json https://tabularui.com/r/button.jsonUsage
import { Button } from '@/components/tabular-ui/components/foundational/Button';import { AgentBlock } from '@/components/tabular-ui/components/product/AgentBlock'; <AgentBlock authorship="AI · Awaiting review" meta="proposed 14:22" actions={<><Button size="sm" variant="ghost">Don't add it</Button><Button size="sm">Add dedupe step</Button></>}> {proposal}</AgentBlock>