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
- Lead navigates to a Knight's Dossier from the Garden (card avatar click or team list).
- Page renders three sections computed server-side from
shrubberiesand the Audit Trail:- Flow Score gauge — the Knight's personal Say-Do ratio: on-time completions / Handshaked rows. Matching
computeCfs()logic, scoped toassignee_id. - Ghost Commitment list — all rows in
Refusedor aged-outPending_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.
- Flow Score gauge — the Knight's personal Say-Do ratio: on-time completions / Handshaked rows. Matching
- 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/syncshowactor_kind = api_tokennext 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.
Related concepts
Last updated: 22 June 2026