Ballmac UI home

Plan Tracker

New

An agent's plan against what happened: every step with its state in words, expected and actual time, a bar of the whole plan, an honest note when steps were added or skipped, and how far a step ran over.

v1.0.0Updated Oct 25, 2026Ships with a test
What changed

Fix the invoice total

2 of 5 steps done · about 8.5 min left

The plan changed1 added1 skipped

  1. Done: Read the ticket and the three linked threads

    1 min / 1 min

  2. Done: Find where invoice totals are calculated

    The totals live in two places, so this took longer.

    4.5 min / 2 minover by 2.5 min

  3. In progress: Write the fix in the shared helper

    Editing the rounding in the totals helper.

    In progress

    2.5 min / 6 min

  4. To do: Update the snapshot testsAdded by the agent

    Added after step 2: two snapshots depend on the old rounding.

    expected 3 min

  5. Skipped: Write release notes

    Skipped: a bug fix does not need them.

  6. To do: Open a pull request

    expected 2 min

Installation

$ pnpm dlx shadcn@latest add @ballmac/plan-tracker

Usage

import { PlanTracker, formatMinutes, remainingMinutes } from "@/components/ballmac/plan-tracker"

The full example is in the Code tab above.

Examples

A blocked step

Ship the fix

2 of 4 steps done · about 10 min left

  1. Done: Run the full test suite

    3.5 min / 4 min

  2. Done: Deploy to staging

    3 min / 3 min

  3. Blocked: Deploy to production

    Waiting for approval: production deploys need a person to confirm.

    Blocked

    under 1 min / 3 min

  4. To do: Watch the error rate for ten minutes

    expected 10 min

API reference

PropTypeDefault
steps*PlanStep[]—
title

Heading.

string—

Also accepts the standard attributes of its root element.

Accessibility

KeyAction
ListAn ordered list in plan order; each item starts with its state in words ('Done: …') for screen readers
ProgressA progressbar named 'Plan' with a spoken value such as '2 of 5 steps done'
StateNever only colour: icons, words for In progress and Blocked, and a line-through for Skipped
ChangesAdded steps carry an 'Added by the agent' tag and the header counts added and skipped steps

Use with AI

steps is [{ id, title, status: todo | doing | done | skipped | blocked, origin?: planned | added, estimate?: minutes, actual?: minutes, note? }] (required); title. The header says how many of the steps that count are done (skipped ones do not count) and about how long is left. A step over its estimate by a quarter and half a minute says by how much. Exports formatMinutes and remainingMinutes. With the shadcn MCP server set up (guide), ask your agent:

Add the Ballmac UI Plan Tracker (@ballmac/plan-tracker) to this project with the shadcn MCP, then use it where it fits.

Use it for

  • Showing the plan an agent is following, and where it has got to
  • Making plan changes (added or skipped steps) visible instead of silent

Not for

  • A checklist a person ticks off; use checklist
  • Who is doing what on a shared timeline; use agent-lanes
  • Spans with exact timings; use trace-waterfall

Registry JSON: https://ui.ballmac.com/r/plan-tracker.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.