{"slug":"checklist-workflow","meta":{"title":"Checklist Workflow","slug":"checklist-workflow","kind":"topology","summary":"A record advances by completing a named set of prerequisites rather than by moving through stages — the process is \"what is still outstanding\", not \"where is it\".","problem":"Onboarding a client, mobilising a site or closing a month involves fifteen things that must all happen, some in parallel, by different people. A status field cannot express that, so the real state lives in a spreadsheet and nobody trusts it.","family":["workflow","coordinate"],"data_shape":["record","collection"],"principles":["orientation","progressive-disclosure","surface-dont-bury"],"interaction":["decision","scanning"],"density":"medium","complexity":"medium","status":"stable","visibility":"public","use_when":["Completion means a set of things being done, not a position being reached.","Items can happen in any order, or in several orders.","Different people own different items.","The same set repeats for every record, so it is worth naming."],"avoid_when":["The work really is a sequence with one owner at a time. Use a linear workflow.","The list differs completely every time — that is a task list, not a process.","There are three items. A checklist adds ceremony to something already visible."],"alternatives":[{"slug":"linear-workflow","when":"The work moves through stages in order and only one thing is happening at a time."},{"slug":"stage-gated-workflow","when":"Items must be complete before a record may ADVANCE — checklist plus a gate."}],"ask_leo":"Model this process as a checklist attached to each record.\n\n- Define the checklist as a template applied to every new record, so the same\n  items appear every time and can be reported on across records.\n- Each item has a name written as a completed outcome, an owner or an owning\n  role, and optionally a due date.\n- Show progress as a fraction and a bar — \"9 of 14 done\" — at the top of the\n  record, and make the outstanding items the ones you can see without opening\n  anything.\n- Record who completed each item and when. Completion without attribution is\n  unauditable and, in practice, untrusted.\n- Let items be marked not-applicable with a reason, rather than forcing people\n  to either tick something untrue or leave the record permanently incomplete.\n- Allow ad-hoc items to be added to one record without changing the template,\n  and show that they are additions.\n- Roll the progress up to the collection view, so someone can see which\n  records are furthest behind without opening each one.\n","related":[{"title":"Linear Workflow","url":"/patterns/linear-workflow","summary":"The sibling topology — position rather than completeness."},{"title":"Review Queue","url":"/patterns/review-queue","summary":"What a single unowned checklist item across many records becomes."}]},"body":"## The shape\n\n```\n  Client onboarding — Riverside Fit-Out        9 of 14 done  ▓▓▓▓▓▓░░░\n  ─────────────────────────────────────────────────────────────────────\n  ✓ Signed contract received      Dana · 12 Aug\n  ✓ Insurance certificate on file Priya · 14 Aug\n  ✓ Purchase order raised         Dana · 15 Aug\n  ○ Site induction booked         ops · due Fri      ← outstanding, owned\n  ○ Access codes issued           ops\n  ⊘ Parking permit                n/a — no vehicles on site\n  ─────────────────────────────────────────────────────────────────────\n                                    ↑ not-applicable, with a reason\n```\n\nThe properties that matter:\n\n- **A template**, so the same items exist on every record and can be compared\n  across records.\n- **An owner per item**, because unowned items are the ones that sit.\n- **Attribution on completion.** Who and when, or the tick means nothing.\n- **A not-applicable state with a reason.** Without it, people tick things that\n  did not happen — which is the moment the checklist stops being true.\n- **A rolled-up fraction** on the collection view.\n\n## Why it is a different topology\n\nA [linear workflow](/patterns/linear-workflow) answers *where is this*. A\nchecklist answers *what is still outstanding*. Those are different questions and\nthey need different data: one current stage versus a set of independent\ncompletions.\n\nTrying to express a checklist as stages produces the familiar mess — statuses\nlike \"Partially onboarded\" that mean different things to different people, and a\nspreadsheet on the side where the real state lives.\n\n## The not-applicable state earns its keep\n\nThis is the item most designs omit and the one that decides whether the\nchecklist stays honest. With only done and not-done, a record that legitimately\ndoes not need item seven can never be complete — so somebody eventually ticks\nit. Once one item is ticked untruthfully, no item can be trusted, and the\nchecklist has become decoration.\n\nA third state, with a required reason, keeps the record both complete and true.\n\n## Getting it wrong\n\n- **Items with no owner**, which are exactly the items that never get done.\n- **No not-applicable state**, which trains people to tick untruthfully.\n- **No attribution**, so nobody can ask a follow-up question about a tick.\n- **A template nobody can change**, so ad-hoc reality gets recorded in email\n  instead.\n- **Progress hidden inside the record**, so nobody can see which of forty\n  clients is stalled without opening forty records.\n- **A checklist used as a gate without saying so** — if items block progress,\n  that is a [stage-gated workflow](/patterns/stage-gated-workflow) and it must\n  be explicit.\n\n## Exemplars\n\n**Aviation and surgical checklists** are the origin, and the transferable lesson\nis that the value came from making the list *the same every time*, not from the\nindividual items. Consistency is what turned it into a safety system.\n\n**Mortgage and loan onboarding software** is the clearest commercial example:\ndozens of independent documents and checks, several owners, and a completion\nfraction that drives the whole business's reporting.\n\n**GitHub pull request checks** show the roll-up done well — many independent\nresults, one summary state, and the failing ones surfaced without opening\nanything.\n\nThe extractable rule: **a checklist is a template plus attribution.** Without\nthe template you cannot compare records; without attribution you cannot trust\nthe ticks.\n"}