Detail Sheet Actions
Overview
The Detail Sheet is the action dispatcher behind every Shrubbery card in the Garden. Clicking a card opens a 480px side-sheet without leaving /dashboard; all state-changing operations are initiated here. The action set is gated on the current (status, viewerId) pair — the Lead and the Knight see different affordances at each stage of the lifecycle.
Actors
- Lead — the primary operator. Sends Drafts, makes edits, initiates Renegotiations, marks rows Completed.
- Knight — can accept or refuse
Pending_Handshakerows and markActiverows Completed. The Knight accesses these same actions through the Accord, not the Garden, but the underlying mechanics are identical. - Squire — not involved in the Detail Sheet.
Flow
Lead opens the Detail Sheet
- Lead clicks a card in the Garden (or presses Enter/Space while a card is focused).
- Detail Sheet slides open at 480px. Displays:
- Two-column metadata grid: Assigner, Assignee, Status, Deadline.
- Source badge and
source_excerpt/raw_text(collapsible<details>). - External-link button (visible when
external_systemis set — opens the linked Jira/Linear ticket). - Actions — rendered by
ShrubberyActionsbased on(status, viewerId). - Timeline — the full Audit Trail for this row, newest-first.
Actions by status
Status: Draft (Lead only)
- Send — promotes to
Pending_Handshake. Knight receives a Nudge. This is the only surface where Send is available. - Edit fields — objective and deadline are editable in-place before Send.
Status: Pending_Handshake (Knight only, via Accord)
- Accept —
Pending_Handshake→Active. Ahandshake_acceptedevent is written. - Refuse —
Pending_Handshake→Refused. Ahandshake_refusedevent is written. Terminal.
Status: Active (Lead or Knight)
- Mark Completed —
Active→Completed. Available to both actors. - Edit (Lead only) — substantive edits (objective, deadline) trigger a Renegotiation:
Active→Pending_Handshake. Non-substantive edits write anEditedevent and leave the rowActive.
Status: Completed or Refused (read-only)
- No actions available. Timeline and metadata are still visible for reference.
Edge cases
- Lead viewing their own Accord row — Leads see the Detail Sheet in read-only mode for
Pending_Handshakerows where they are the assigner; they cannot accept or refuse on the Knight's behalf. - Knight viewing their own assigned rows in the Garden — Knights who also have Lead access can see the Garden, but
ShrubberyActionsrenders Knight-appropriate actions (Accept/Refuse) rather than Lead actions. - Renegotiation via Edit — there is no dedicated "Renegotiate" button. Saving a change to objective or deadline on an
Activerow is what triggers the Renegotiation. The Lead does not need to understand the underlying event type; the UI handles the distinction. - Externally-completed rows — a row closed via the Sync API shows
actor_kind = api_tokenin the Timeline. The Detail Sheet is read-only forCompletedrows regardless of how they reached that state.
Related concepts
- Detail Sheet
- Shrubbery
- Draft (state)
- Pending Handshake
- Active (state)
- Completed (state)
- Renegotiated
Last updated: 22 June 2026