ShrubberyDocs
Sign in

Dossier Profile

Overview

The Dossier Profile is the per-Knight reliability page. It exists to help Leads prepare for 1:1s with data rather than memory, and to give Knights full transparency into their own accountability record. The Dossier is a computed view — everything on it derives from Shrubbery rows and audit events scoped to one assignee_id.

Actors

  • Lead — primary consumer. Navigates to a Knight's Dossier before check-ins, performance conversations, or when reviewing workload. Read-only access.
  • Knight — can view their own Dossier. Sees the same data the Lead sees. No editing affordances.
  • Squire — not involved. The Dossier is purely a read surface.

Flow

  1. Lead navigates to a Knight's Dossier from the Garden (card avatar click or team list).
  2. Page renders three sections computed server-side from shrubberies and the Audit Trail:
    • Flow Score gauge — the Knight's personal Say-Do ratio: on-time completions / Handshaked rows. Matching computeCfs() logic, scoped to assignee_id.
    • Ghost Commitment list — all rows in Refused or aged-out Pending_Handshake, newest-first. Each entry shows the objective, deadline, how it ended (explicit refuse vs. timeout), and the timestamp. Actor attribution appears where an API token closed the row.
    • Completed rows timeline — delivered commitments with on-time / late indicators. Late completions show how far past the deadline the row closed.
  3. Lead reads the data and uses it to ground their 1:1 conversation.

Edge cases

  • Knight has no Handshaked rows yet — Flow Score gauge shows N/A, not 0%. The distinction matters: 0% means rows were agreed to and missed; N/A means the record is empty.
  • Ghost Commitments from aged-out rows — the Dossier labels these as "No response" rather than "Refused" so the Lead can distinguish active disengagement from a missed notification.
  • API-token completions — rows closed via POST /api/v1/sync show actor_kind = api_token next to the completion event. The Flow Score arithmetic is unchanged; the Dossier surfaces the actor distinction purely for context.
  • Lead is also a Knight on some rows — Reciprocity rows (where the Lead is the assignee) appear on the Lead's own Dossier, not on the Knights' Dossiers. Each Dossier is scoped strictly to one assignee_id.
  • Multiple Leads sending to the same Knight — the Dossier aggregates across all assigners. A Knight's Flow Score reflects all their Handshaked rows, regardless of which Lead created them.

Last updated: 22 June 2026