Skip to content

Agent work as first-class Tickets — granular, with reasoning + per-ticket conversation #150

Description

@serge-ivo

The oversight primitive. Humans run work on a kanban of discrete, addressable tickets — not a flat activity log (an infinite, indistinguishable stream you can't point at or interrogate). Every unit of agent work should be a Ticket on the board.

The Ticket (three properties — flat, no epics for now)

  1. Granular. One ticket per unit of work. Deliberately no parent/epic hierarchy for now (keep it simple — revisit only if a real need appears). Fine-grained is fine; the board just holds many tickets.
  2. Status / lifecycle. Flows through the kanban columns (what tasks already do).
  3. Reasoning. Each ticket carries why — the decision/audit — shown in the ticket, not buried in Data.
  4. Conversational. Open a ticket → a chat thread scoped to that ticket: ask why a decision was made, request changes, get more info. The agent answers with that ticket's reasoning + data as context.

What today's system lacks (verified)

AgentTask = {id,title,description,status,assignedBy,timestamps}no structured reasoning, no per-ticket conversation. The board (lib/board.ts + BoardTab.tsx) already renders flat task cards, so granularity is free; the two new pieces are reasoning + the per-ticket thread.

Plan (no hierarchy → smaller)

  • P1 — Reasoning on tickets. Add a reasoning field to the task model; BoardTab shows it in the card/detail. (Board already renders flat tickets, so this is the only structural change.)
  • P2 — Per-ticket conversation. Open a ticket → a scoped chat thread; agent answers with the ticket's reasoning/data as context.
  • P3 — Agents emit tickets. e.g. the lead-finder creates one ticket per business (carrying its 5-step audit as reasoning). The board fills with real, interrogable tickets.

Supersedes the flat "Activity" tab (PR 5af86ed) as the oversight surface. First-party platform primitive (tasks live in the AgentDO + lib/board.ts).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions