For AI agents: the complete documentation index is available at https://a3s-lab.github.io/UI/v0.4.0/en/llms.txt, the full documentation bundle is available at https://a3s-lab.github.io/UI/v0.4.0/en/llms-full.txt, and this page is available as Markdown at https://a3s-lab.github.io/UI/v0.4.0/en/components/task-plan.md.

Task Plan

Task Plan exposes a bounded sequence of work without turning internal reasoning into interface copy. The host owns plan creation, step transitions, persistence, and cancellation.

Live preview

Release plan

Two of four steps complete

In progress
  1. Inspect package changes

    Review exports and release metadata.

    Complete
  2. Run focused checks

    Validate package and documentation contracts.

    Complete
  3. Review interface states

    Check narrow, dark, and keyboard behavior.

    Active
  4. Prepare the handoff

    Summarize verified results and remaining risk.

    Pending

Plan steps describe observable work and results.

Usage

<section class="task-plan" data-state="active" aria-labelledby="plan-title">
  <header>
    <h2 id="plan-title">Release plan</h2>
    ...
  </header>
  <ol>
    <li class="plan-step" data-state="complete">...</li>
    <li class="plan-step" data-state="active" aria-current="step">...</li>
  </ol>
  <footer>...</footer>
</section>

Parameters

APIValuesPurpose
data-statedraft, active, paused, complete, errorPlan lifecycle
data-variantplainRemoves the owning surface so the plan can sit inside an inspector or transcript section
Direct <ol>RequiredOrdered plan steps
data-plan-statusRecommendedVisible lifecycle label
Native progressbarOptionalBounded aggregate progress

States and variants

Keep completed work visible and preserve the active step when execution pauses. An error belongs to the affected Plan Step unless the entire plan cannot continue. Use data-variant="plain" only when a parent surface already owns the boundary; it removes the Task Plan border and inline padding without changing step semantics.

<section class="task-plan" data-state="active" data-variant="plain">
  <header>
    <h2>Execution plan</h2>
    <span data-plan-status>In progress</span>
  </header>
  <ol>
    <li class="plan-step" data-state="active" aria-current="step">...</li>
  </ol>
</section>

Accessibility

Name the section with a heading. Use aria-current="step" once. Progress text must remain available when a visual progressbar is omitted.