Ballmac UI home

Handoff Card

New

The packet one agent passes to another: who hands over to whom, the task, the context that travels with it and its size, the questions still open and the rules to keep, with a status and room for actions.

v1.0.0Updated Oct 24, 2026Ships with a test
What changed
PlannerBreaks down the task
CoderWrites the change

Waiting to be picked up

Add a retry with backoff to the invoice export

Context passed

  • The plan · four steps, one open1.2k tokens
  • Relevant files · export.ts, client.ts, three tests8.4k tokens
  • Ticket thread · customer reports a timeout2.1k tokens

Open questions

  • Should a failed export be retried for large accounts too?

Rules to keep

  • Do not change the public API
  • Keep the change under 200 lines
  • No new dependencies

Installation

$ pnpm dlx shadcn@latest add @ballmac/handoff-card

Usage

import { HandoffCard } from "@/components/ballmac/handoff-card"

The full example is in the Code tab above.

Examples

Sent back with a question

CoderWrites the change
ReviewerChecks the result

Sent back

Retry with backoff, ready for review

Context passed

  • The diff · 7 files+142 −38

Open questions

  • The new test fails on the CI runner but passes locally. Which runner should it be tuned for?

API reference

PropTypeDefault
from*

The agent handing the work over.

HandoffAgent—
to*

The agent receiving it.

HandoffAgent—
title*

What the work is.

string—
context

Everything passed along.

HandoffContext[][]
questions

Questions the sender could not settle.

string[][]
constraints

Rules the receiver must keep to, shown as chips.

string[][]
statusHandoffStatus"pending"
statusLabel

Text for the status, if you want your own words.

string—
at

Time or place of the handoff, already formatted, such as "2:14 pm".

string—
actions

Buttons or other actions under the card.

React.ReactNode—

Also accepts the standard attributes of its root element.

Accessibility

KeyAction
Screen readersAn article named by its title; the arrow between agents reads 'hands over to'; each list has a labelled section
StatusWritten as words in a pill, never colour alone
ActionsWhatever buttons you pass keep their own keyboard behaviour

Use with AI

from and to are { name, role? }; title; context [{ label, detail?, size? }]; questions string[]; constraints string[]; status pending | accepted | returned; at; actions slot. A server-friendly card with no state. With the shadcn MCP server set up (guide), ask your agent:

Add the Ballmac UI Handoff Card (@ballmac/handoff-card) to this project with the shadcn MCP, then use it where it fits.

Use it for

  • Showing what one agent passed to another, in a transcript, an inbox or a run view
  • A human review of a delegation before it is accepted

Not for

  • The timeline of who did what when; use agent-lanes
  • A single step of a plan; use agent-plan

Registry JSON: https://ui.ballmac.com/r/handoff-card.json

Credits

Free to use in personal and commercial projects.

Ballmac UI Pro

Need the whole screen, not one piece?

150 premium blocks (dashboards, settings, calendars, mail, shops, onboarding), a private shadcn registry and Figma tokens. Blocks that show data come with loading, empty and error states built in.

Not ready? Try three Pro blocks free

Leave your email and the blocks appear right here, ready to copy. Yours to use in any project.