Shrubbery
Definition
The core data entity: a structured, consent-validated commitment row linking a Lead (assigner) to a Knight (assignee) with an objective and a deadline. The word "Shrubbery" refers to both the product and this row.
Avoid: task, ticket, item, to-do. Outside of technical DB contexts, avoid "row."
Role
A Shrubbery is the unit of accountability in the system. Every flow — capture, Handshake, CFS scoring, renegotiation, webhook sync — is either creating, reading, or transitioning a Shrubbery row in public.shrubberies.
Each row has:
assigner_id— the Lead who created it. Immutable after creation.assignee_id— the Knight responsible. Set at capture; immutable afterPending_Handshake.objective— what must be done, in plain text.deadline— when it must be done.status— the current state (see Lifecycle).source— how it was created (smart_paste,url_drop,manual_contract,inbox_api).external_system/external_id— optional; set on URL Drop and Inbox API rows for deduplication and sync.raw_text/source_excerpt— the original input that generated this Shrubbery, preserved for audit.
A Shrubbery scores nothing until the Knight Handshakes. Until then it is a proposal.
Lifecycle
Draft— Lead is still editing. Invisible to the Knight.Pending_Handshake— Lead has sent. Knight sees it in the Accord.Active— Knight has Handshaked. Enters Flow Score denominator.Completed— Terminal positive. Enters Flow Score numerator if on time.Refused— Terminal negative. Enters Ghost Rate numerator.
Audit events Renegotiated and Edited occur within Active or at the Active → Pending_Handshake transition; they are not statuses.
Related guides
Last updated: 22 June 2026