{
 "title": "Makki — tracker of every canonical id in six outcome sections (demo data; browser-only prototype; not launch evidence)",
 "generatedAt": "2026-11-14T08:34:50.118Z",
 "generatedBy": "outbox/build_tracker.cjs",
 "canonical": {
  "file": "materials/canonical/2026-10-31_canonical-tasks.v2.4.json",
  "version": "v2.4",
  "md5": "a809a0794607c8f4c0dc89f0c7b1c08f",
  "generatedAt": "2026-10-31T00:54:18.780Z",
  "tally": {
   "accepted": 60,
   "active": 433,
   "gross": 433,
   "production": 0,
   "excluded": 0,
   "excludedIds": [],
   "excludedAnyOwner": 0,
   "excludedAnyOwnerIds": [],
   "queues": {
    "omar": 102,
    "ali": 124,
    "both": 17
   },
   "rows": 563,
   "baseline": 161,
   "conditionUnmet": 1,
   "conditionUnmetIds": [
    "GL-044"
   ],
   "byRowClass": {
    "feature": 509,
    "admin": 40,
    "test": 11,
    "design": 3
   },
   "features": {
    "accepted": 58,
    "active": 401,
    "gross": 401,
    "rows": 509
   }
  }
 },
 "liveVersion": "v43-wb4",
 "swTag": {
  "tag": "v43-wb4",
  "from": "outbox/homebase_makki/app/sw.js",
  "meaning": "the service-worker tag of the deploy set at build time (app/sw.js); the two live hosts are read separately and printed beside it, never assumed to carry it"
 },
 "liveHosts": {
  "home": "makki-portal-v43-wb4",
  "portal": "makki-portal-v43-wb4",
  "readAt": "2026-11-14 08:34 UTC",
  "bothRead": true,
  "match": true,
  "state": "deployed with this publish (live read before the deploy: makki-portal-v43-wb4 at 2026-11-14 08:34 UTC)",
  "urls": {
   "home": "https://makki-home.pages.dev/app/sw.js",
   "portal": "https://makki-portal-37c739cf.pages.dev/sw.js"
  },
  "mode": "publish",
  "publishTag": "makki-portal-v43-wb4",
  "before": {
   "home": "makki-portal-v43-wb4",
   "portal": "makki-portal-v43-wb4",
   "at": "2026-11-14 08:34 UTC",
   "read": true,
   "match": true,
   "state": "the two hosts match"
  }
 },
 "tally": {
  "completed": 243,
  "notDone": 116,
  "needsOmar": 66,
  "needsAli": 124,
  "needsBoth": 16,
  "declined": 1
 },
 "tallyLine": "Completed 243 / Not done 116 / Needs Omar 66 · Needs Ali 124 · Needs both 16 · Declined 1",
 "notice": "Every figure is demo data. \"Completed\" means the hive reports the implementation finished on demo data (canonical complete or review); the Checker's ruling — a grade file carrying the id with a passing verdict and evidence — is a separate final review, printed as a detail on the row and never as its status. The portal is a browser-only prototype on demo data — no server, no database, no sign-in, no QuickBooks connection, no texting, no real data. A clean grade is not a release and none of this is launch evidence.",
 "readiness": "The 60-row accepted count is demo-accepted — rows graded FAIL 0 on demo data across one or more rounds, not production readiness. Not built: no server, no auth, no database.",
 "conditionUnmet": {
  "rule": "a row whose own text quotes the real-data condition states a requirement, not a capability; it renders with the marker below, derived from its text and canonical state, and the build stops if such a row were recorded as done",
  "met": false,
  "words": "Condition not met — demo data until then",
  "count": 1,
  "ids": [
   "GL-044"
  ],
  "planLegendQuotesCondition": true
 },
 "counts": {
  "rows": 566,
  "unique": 566,
  "byStatus5": {
   "completed": 243,
   "not-done": 116,
   "needs-omar": 66,
   "needs-both": 16,
   "declined": 1,
   "needs-ali": 124
  },
  "byState": {
   "complete": 204,
   "review": 39,
   "open": 42,
   "partial": 62,
   "blocked": 218,
   "cancelled": 1
  },
  "byWaitingOn": {
   "none": 360,
   "Omar": 66,
   "Both": 16,
   "The owner": 124
  },
  "byOwnerClass": {
   "AI": 320,
   "Omar": 61,
   "Omar-then-AI": 44,
   "Omar+the owner": 17,
   "The owner": 52,
   "The owner-then-AI": 72
  },
  "bySection": {
   "baseline": 161,
   "task": 70,
   "gl": 109,
   "addition": 5,
   "tracker:walkthrough": 131,
   "tracker:app": 79,
   "tracker:agents": 8,
   "tracker:decision": 1,
   "tracker:owner": 2
  },
  "byEvidenceClass": {
   "verified": 95,
   "reported": 283,
   "design": 3,
   "none": 185
  },
  "byScope": {
   "demo": 563,
   "design": 3
  },
  "accepted": 60,
  "aiExecutable": 436,
  "cancelledExcluded": 0,
  "withAliases": 39,
  "conditionUnmet": 1,
  "byCanonicalWaitingOn": {
   "none": 323,
   "Omar": 102,
   "Both": 17,
   "The owner": 124
  },
  "decided": 39,
  "decidedIds": [
   "D06",
   "F02",
   "F32",
   "F33",
   "F52",
   "F53",
   "F55",
   "F56",
   "GL-024",
   "GL-037",
   "GL-043",
   "GL-054",
   "GL-065",
   "GL-072",
   "GL-073",
   "GL-076",
   "M-ACK",
   "M-DASH",
   "M-DOC",
   "M-DRAW",
   "M-FEED",
   "M-MULTI",
   "M-ONB",
   "M-TRAIN",
   "O-DECISIONS",
   "O-INSTALL",
   "O-JOBS",
   "O-QUALITY",
   "O-UPDATE",
   "O1",
   "R03",
   "R22",
   "V14·codex",
   "V20·codex",
   "V23·codex",
   "V36·codex",
   "V41·codex",
   "V48·codex",
   "V56·codex"
  ],
  "necessity": {
   "needed-for-demo": 453,
   "needed-for-launch": 108,
   "optional": 4,
   "dropped": 1
  }
 },
 "membership": {
  "previous": 563,
  "previousSource": "the canonical accounting v2.4 (materials/canonical/2026-10-31_canonical-tasks.v2.4.json, generated 2026-10-31) carries 563 live rows, and that is the set every earlier reading of this page counted",
  "added": [
   {
    "id": "A4-rest",
    "parent": "A4",
    "reason": "split from A4 on 8 November 2026: the canonical row carries the part that was built and reported finished, so the unfinished part is represented once, on its own row, with its own status word",
    "source": "the correction of 8 November 2026 (tasks-correction-2 v2.0.0), reading the parent row's own completion report in the canonical accounting v2.4 of 2026-10-31 and the task-page row that already recorded the split",
    "kind": "split remainder"
   },
   {
    "id": "V69-rest",
    "parent": "V69",
    "reason": "split from V69 on 8 November 2026: the tickets half is built and reported finished on the canonical row, and the missing training coverage is this row",
    "source": "the correction of 8 November 2026 (tasks-correction-2 v2.0.0), reading the parent row's own completion report in the canonical accounting v2.4 of 2026-10-31 and the task-page row that already recorded the split",
    "kind": "split remainder"
   },
   {
    "id": "H4-rest",
    "parent": "H4",
    "reason": "split from H4 on 8 November 2026: the weekly tickets report is the finished half on the canonical row, and the safety paperwork it was merged with is this row",
    "source": "the correction of 8 November 2026 (tasks-correction-2 v2.0.0), reading the parent row's own completion report in the canonical accounting v2.4 of 2026-10-31 and the task-page row that already recorded the split",
    "kind": "split remainder"
   }
  ],
  "removed": [],
  "rows": 566,
  "rule": "previous + added − removed = rows; every id added or removed is named with its reason and the dated source that ruled it, and each added row sits in the same outcome section as the row it was split from, so the page's own search box and all five filters reach it; the plan-v0.2 card counts stay the canonical partition and are printed separately in the project-plan panel",
  "words": "566 live rows: the 563 of the canonical accounting plus 3 added by the correction of 8 November 2026 — A4-rest, the remainder of A4; V69-rest, the remainder of V69; H4-rest, the remainder of H4 — and 0 removed. Each added row is a full row of the outcome section its parent sits in, counted by that section and reachable by this page's search box and every one of its filters; this panel is the record of the move, not a separate place to keep them. The plan-v0.2 cards are still counted on the 563 canonical rows."
 },
 "six": {
  "rule": "five primary outcome groups fixed by plan-v0.2 card — every live row sits on exactly one card, so it lands in exactly one group by derivation; the sixth section is a cross-cutting Fieldflo lens with its own denominator, excluded from every additive total; archived rows are listed under their survivor's group, outside every denominator; each group counts its rows by the five status words (Completed · Not done · Needs Omar · Needs Ali · Needs both — The owner field first, else canonical complete or review = Completed, else Not done; Omar 2026-11-07 03:07Z) and its bar shows the Completed share; the Checker's ruled count is printed beside it as the final-review figure, a detail and never a status word",
  "statusWords": {
   "rule": "owner field first (waitingOn Omar / the owner / Both → Needs …), else canonical complete or review = Completed, else Not done; a Checker ruling is a final-review detail, never a status (Omar 2026-11-07 03:07Z, Telegram 2085)",
   "keys": [
    "completed",
    "not-done",
    "needs-omar",
    "needs-ali",
    "needs-both",
    "declined"
   ],
   "words": {
    "completed": "Completed",
    "not-done": "Not done",
    "needs-omar": "Needs Omar",
    "needs-ali": "Needs Ali",
    "needs-both": "Needs both",
    "declined": "Declined"
   },
   "tally": {
    "completed": 243,
    "notDone": 116,
    "needsOmar": 66,
    "needsAli": 124,
    "needsBoth": 16,
    "declined": 1
   },
   "line": "Completed 243 / Not done 116 / Needs Omar 66 · Needs Ali 124 · Needs both 16 · Declined 1"
  },
  "plainWords": {
   "rule": "every live row carries plainTitle (under 90 characters), outcome and next (under 160 each) in plain words, derived from its own status word, canonical state, owner field, dated decision and final-review ruling; stamps, codes, paths, build names and seat names stay in the row's details (Omar 2026-11-07 17:06Z, Telegram 2174)",
   "caps": {
    "title": 90,
    "outcome": 160,
    "next": 160
   }
  },
  "finalReview": {
   "ruled": 11,
   "notYetReviewed": 555,
   "words": "final review (a separate ruling on evidence, a detail and never a status): ruled 11 of 566 rows · 555 not yet reviewed"
  },
  "aiReconciliation": {
   "field": "aiExecutable",
   "value": true,
   "total": 436,
   "completed": 241,
   "remaining": 195,
   "pct": 55.28,
   "byStatus5": {
    "completed": 241,
    "not-done": 95,
    "needs-omar": 28,
    "needs-ali": 72,
    "needs-both": 0,
    "declined": 0
   },
   "notDone": 95,
   "inputDependent": 100,
   "splitWords": "The remainder of 195 splits in two and the two are read together: 95 Not done — rows this set can finish on demo data — and 100 input-dependent, waiting on an answer from Omar or the owner before anything can be built. Neither part is the tracker-wide Not-done count, which is a different set.",
   "provisional": "PROVISIONAL — a review count, not readiness. These figures are counted from the rows at build time while the scope faults of the 8 November correction are still being ruled on; a figure here is never a reason to accept a row, and the set itself moves when a row is split or a flag is reconciled.",
   "membershipRule": "the denominator is the live rows carrying aiExecutable true, recounted every build; it is never a frozen membership target, so a correction that splits a row moves it and the move is reported by id",
   "denominator": "the live canonical rows carrying aiExecutable true, counted from the rows themselves when the page is built — never a figure typed here, and never the Not-done count",
   "rule": "Completed + remaining = the total, and the percentage is Completed over that same total; the five-word split below sums to it. The Not-done count inside the set is one of those five words and is not the denominator",
   "words": "AI-executable rows, reconciled against their own denominator: 241 of 436 Completed, 195 of 436 still to do, 55.28 percent Completed — the set is the 436 live rows of this page carrying aiExecutable true, counted from the rows themselves. Inside it the five words read 241 Completed · 95 Not done · 28 Needs Omar · 72 Needs Ali · 0 Needs both · 0 Declined, which sums to 436. The 95 Not done is one of those words, never the denominator. The remainder of 195 splits in two and the two are read together: 95 Not done — rows this set can finish on demo data — and 100 input-dependent, waiting on an answer from Omar or the owner before anything can be built. Neither part is the tracker-wide Not-done count, which is a different set."
  },
  "groups": [
   {
    "key": "field",
    "n": 1,
    "title": "Field day and crew",
    "words": "Start Day, the daily, JHA, containment, tickets, training, incidents, people, QR codes and equipment",
    "cards": [
     "crew-startday",
     "crew-jha",
     "crew-contain",
     "crew-lang",
     "safe-tickets",
     "safe-train",
     "safe-inc",
     "safe-people",
     "safe-privacy",
     "safe-lib",
     "gear-qr",
     "gear-assets",
     "gear-ware"
    ],
    "ids": [
     "F24",
     "F25",
     "F28",
     "F29",
     "F30",
     "F34",
     "F35",
     "F36",
     "F40",
     "F51",
     "V19·codex",
     "V22·codex",
     "V25·codex",
     "V26·codex",
     "V27·codex",
     "V29·codex",
     "V38·codex",
     "V43·codex",
     "V44·codex",
     "M-HEAD",
     "GL-001",
     "GL-003",
     "GL-004",
     "GL-006",
     "GL-012",
     "GL-027",
     "GL-028",
     "GL-029",
     "GL-077",
     "GL-079",
     "GL-080",
     "GL-081",
     "GL-082",
     "GL-085",
     "GL-086",
     "GL-087",
     "GL-088",
     "GL-090",
     "GL-092",
     "GL-093",
     "F05",
     "F26",
     "F27",
     "F31",
     "F49",
     "F50",
     "R15",
     "R20",
     "V13·codex",
     "V24·codex",
     "V28·codex",
     "M-ASSET",
     "M-CERT",
     "M-INC",
     "M-WARE",
     "GL-005",
     "GL-008",
     "GL-009",
     "GL-095",
     "GL-099",
     "GL-101",
     "D11",
     "F32",
     "F33",
     "F55",
     "V14·codex",
     "V20·codex",
     "V21·codex",
     "V23·codex",
     "V40·codex",
     "V41·codex",
     "V48·codex",
     "V56·codex",
     "M-ACK",
     "M-CAT",
     "M-DISC",
     "M-ONB",
     "M-PRIV",
     "M-TRAIN",
     "O-WEATHER",
     "GL-019",
     "GL-024",
     "GL-076",
     "F48",
     "R16",
     "V03·codex",
     "V31·codex",
     "V32·codex",
     "V37·codex",
     "V42·codex",
     "V45·codex",
     "V46·codex",
     "W12",
     "M-CONT",
     "M-DAY",
     "M-HR",
     "M-LANG",
     "M-MAT",
     "M-SAFE",
     "GL-011",
     "GL-017",
     "GL-025",
     "GL-026",
     "GL-050",
     "GL-051",
     "GL-056",
     "GL-063",
     "V18",
     "V21",
     "V22",
     "V23",
     "V24",
     "V25",
     "V26",
     "V34",
     "V37",
     "V38",
     "V39",
     "V40",
     "V41",
     "V42",
     "V43",
     "V44",
     "V45",
     "V46",
     "V47",
     "V48",
     "V49",
     "V50",
     "V51",
     "V52",
     "V53",
     "V54",
     "V55",
     "V56",
     "V57",
     "V58",
     "V59",
     "V61",
     "V62",
     "V63",
     "V64",
     "V67",
     "V69",
     "V83",
     "V84",
     "V85",
     "V86",
     "V87",
     "V88",
     "V89",
     "V90",
     "V92",
     "V93",
     "V94",
     "V95",
     "V96",
     "V97",
     "V99",
     "V100",
     "V101",
     "V102",
     "V103",
     "V104",
     "V105",
     "V106",
     "V107",
     "V131",
     "V132",
     "P14",
     "P16",
     "P28",
     "P34",
     "P36",
     "P37",
     "P42",
     "A17",
     "A18",
     "A39",
     "A41",
     "A42",
     "A44",
     "A46",
     "A47",
     "A48",
     "A49",
     "V69-rest"
    ],
    "total": 187,
    "acceptedCanonical": 21,
    "accepted": 4,
    "canonicalRows": 186,
    "addedIds": [
     "V69-rest"
    ],
    "status5Canonical": {
     "completed": 79,
     "notDone": 52,
     "needsOmar": 7,
     "needsAli": 46,
     "needsBoth": 2,
     "declined": 0
    },
    "status5": {
     "completed": 79,
     "notDone": 53,
     "needsOmar": 7,
     "needsAli": 46,
     "needsBoth": 2,
     "declined": 0
    },
    "completed": 79,
    "percentCompleted": 42,
    "finalReview": {
     "ruled": 4,
     "ruledCompleted": 4,
     "notYetReviewed": 75,
     "words": "final review: ruled 4 · not yet reviewed 75 of the 79 Completed"
    },
    "acceptedUncovered": 17,
    "unruledIds": [
     "F25",
     "F28",
     "F29",
     "F30",
     "F34",
     "F35",
     "F36",
     "F40",
     "F51",
     "V19·codex",
     "V22·codex",
     "V25·codex",
     "V26·codex",
     "V27·codex",
     "V29·codex",
     "V43·codex",
     "V44·codex"
    ],
    "remaining": 183,
    "percent": 2,
    "reportedComplete": 37,
    "unverified": 56,
    "unverifiedCanonical": 55,
    "aiActive": 160,
    "aiActiveCanonical": 159,
    "byState": {
     "complete": 58,
     "review": 19,
     "open": 15,
     "partial": 34,
     "blocked": 60
    },
    "archivedIds": [
     "P15",
     "P35",
     "P13",
     "P33",
     "P40",
     "P41",
     "A19",
     "A56",
     "A57",
     "V130",
     "The owner 14",
     "O7"
    ]
   },
   {
    "key": "time",
    "n": 2,
    "title": "Time and payroll",
    "words": "time and breaks, payroll approval and export, the labourer text line",
    "cards": [
     "crew-time",
     "fin-payroll",
     "office-textline"
    ],
    "ids": [
     "F11",
     "F13",
     "F14",
     "F54",
     "V05·codex",
     "V39·codex",
     "V47·codex",
     "GL-021",
     "GL-030",
     "GL-036",
     "GL-103",
     "F09",
     "F02",
     "V07·codex",
     "V54·codex",
     "GL-020",
     "GL-067",
     "GL-105",
     "F10",
     "F12",
     "R12",
     "R21",
     "V52·codex",
     "V53·codex",
     "M-PAY",
     "M-TIME",
     "GL-040",
     "GL-052",
     "GL-062",
     "V4",
     "V7",
     "V12",
     "V91",
     "V98",
     "V108",
     "V109",
     "V119",
     "V120",
     "V121",
     "V122",
     "V136",
     "V137",
     "V138",
     "P10",
     "P38",
     "A40",
     "A45",
     "A50",
     "A51",
     "A52"
    ],
    "total": 50,
    "acceptedCanonical": 8,
    "accepted": 4,
    "canonicalRows": 50,
    "addedIds": [],
    "status5Canonical": {
     "completed": 23,
     "notDone": 2,
     "needsOmar": 3,
     "needsAli": 12,
     "needsBoth": 10,
     "declined": 0
    },
    "status5": {
     "completed": 23,
     "notDone": 2,
     "needsOmar": 3,
     "needsAli": 12,
     "needsBoth": 10,
     "declined": 0
    },
    "completed": 23,
    "percentCompleted": 46,
    "finalReview": {
     "ruled": 4,
     "ruledCompleted": 4,
     "notYetReviewed": 19,
     "words": "final review: ruled 4 · not yet reviewed 19 of the 23 Completed"
    },
    "acceptedUncovered": 4,
    "unruledIds": [
     "F11",
     "F14",
     "V05·codex",
     "V47·codex"
    ],
    "remaining": 46,
    "percent": 8,
    "reportedComplete": 12,
    "unverified": 15,
    "unverifiedCanonical": 15,
    "aiActive": 28,
    "aiActiveCanonical": 28,
    "byState": {
     "complete": 20,
     "review": 3,
     "open": 1,
     "blocked": 22,
     "partial": 4
    },
    "archivedIds": [
     "P21",
     "V129",
     "O2",
     "The owner 10",
     "The owner 11",
     "The owner 16"
    ]
   },
   {
    "key": "projects",
    "n": 3,
    "title": "Projects, schedule and sales",
    "words": "dashboard, Project Book, schedule, forms, documents, T&M, reports, quotes, CRM, estimating",
    "cards": [
     "mgmt-dash",
     "mgmt-projbook",
     "mgmt-sched",
     "mgmt-forms",
     "mgmt-docs",
     "mgmt-tm",
     "mgmt-reports",
     "sales-quotes",
     "sales-crm",
     "sales-est"
    ],
    "ids": [
     "F01",
     "F03",
     "F08",
     "F20",
     "F22",
     "F37",
     "F44",
     "F47",
     "V08·codex",
     "V11·codex",
     "V30·codex",
     "V35·codex",
     "V51·codex",
     "GL-002",
     "GL-007",
     "GL-016",
     "GL-031",
     "GL-032",
     "GL-035",
     "GL-083",
     "GL-084",
     "GL-089",
     "F19",
     "F23",
     "F41",
     "F45",
     "F46",
     "R02",
     "V09·codex",
     "V16·codex",
     "M-FORM",
     "M-TM",
     "GL-041",
     "GL-042",
     "GL-096",
     "GL-097",
     "GL-100",
     "GL-102",
     "D06",
     "F52",
     "F53",
     "F56",
     "R03",
     "V50·codex",
     "M-DASH",
     "M-DOC",
     "M-DRAW",
     "M-TAKE",
     "O-CLIENT",
     "GL-034",
     "GL-038",
     "F04",
     "F42",
     "F43",
     "R17",
     "R18",
     "V10·codex",
     "V33·codex",
     "V34·codex",
     "M-BOOK",
     "M-CRM",
     "M-EST",
     "M-QUO",
     "M-SCH",
     "GL-010",
     "GL-018",
     "GL-033",
     "GL-057",
     "GL-061",
     "GL-066",
     "V8",
     "V9",
     "V10",
     "V11",
     "V13",
     "V14",
     "V15",
     "V17",
     "V19",
     "V20",
     "V27",
     "V60",
     "V66",
     "V68",
     "V71",
     "V72",
     "V73",
     "V74",
     "V75",
     "V76",
     "V78",
     "V80",
     "V81",
     "V110",
     "V111",
     "V112",
     "V113",
     "V115",
     "V117",
     "V118",
     "P3",
     "P4",
     "P7",
     "P8",
     "P22",
     "P23",
     "P24",
     "P25",
     "P27",
     "P29",
     "P30",
     "P31",
     "P32",
     "P39",
     "A22",
     "A23",
     "A25",
     "A26",
     "A27",
     "A32",
     "A33",
     "A34",
     "A35",
     "A36",
     "A37",
     "A54",
     "A55"
    ],
    "total": 127,
    "acceptedCanonical": 14,
    "accepted": 0,
    "canonicalRows": 127,
    "addedIds": [],
    "status5Canonical": {
     "completed": 71,
     "notDone": 26,
     "needsOmar": 5,
     "needsAli": 25,
     "needsBoth": 0,
     "declined": 0
    },
    "status5": {
     "completed": 71,
     "notDone": 26,
     "needsOmar": 5,
     "needsAli": 25,
     "needsBoth": 0,
     "declined": 0
    },
    "completed": 71,
    "percentCompleted": 56,
    "finalReview": {
     "ruled": 0,
     "ruledCompleted": 0,
     "notYetReviewed": 71,
     "words": "final review: ruled 0 · not yet reviewed 71 of the 71 Completed"
    },
    "acceptedUncovered": 14,
    "unruledIds": [
     "F01",
     "F03",
     "F08",
     "F20",
     "F22",
     "F37",
     "F44",
     "F47",
     "V08·codex",
     "V11·codex",
     "V30·codex",
     "V35·codex",
     "V51·codex",
     "GL-035"
    ],
    "remaining": 127,
    "percent": 0,
    "reportedComplete": 47,
    "unverified": 25,
    "unverifiedCanonical": 25,
    "aiActive": 108,
    "aiActiveCanonical": 108,
    "byState": {
     "complete": 61,
     "review": 8,
     "open": 8,
     "partial": 15,
     "blocked": 35
    },
    "archivedIds": [
     "P2",
     "P6",
     "A28",
     "A29",
     "A30",
     "A31",
     "The owner 15"
    ]
   },
   {
    "key": "money",
    "n": 4,
    "title": "Money: invoicing, costing and QuickBooks",
    "words": "collections, holdbacks, invoicing, job costing, QuickBooks, the real-data cut-over",
    "cards": [
     "fin-money",
     "fin-invoice",
     "fin-cost",
     "fin-qbo",
     "fin-cutover"
    ],
    "ids": [
     "F06",
     "F18",
     "R04",
     "R08",
     "R11",
     "W04",
     "W07",
     "W10",
     "W11",
     "M-INV",
     "GL-015",
     "F15",
     "F17",
     "R05",
     "W02",
     "W03",
     "W05",
     "W09",
     "M-CST",
     "GL-098",
     "R07",
     "R09",
     "GL-043",
     "GL-044",
     "F16",
     "F57",
     "R14",
     "V17·codex",
     "V18·codex",
     "W01",
     "W06",
     "W08",
     "W13",
     "W14",
     "W15",
     "M-MIG",
     "M-QBO",
     "M-REC",
     "M-STA",
     "GL-046",
     "GL-047",
     "GL-048",
     "GL-049",
     "GL-058",
     "GL-064",
     "GL-068",
     "V32",
     "V33",
     "V35",
     "V65",
     "V70",
     "V77",
     "V128",
     "P5",
     "P9",
     "P11",
     "A53",
     "A58",
     "The owner 2",
     "The owner 5"
    ],
    "total": 60,
    "acceptedCanonical": 10,
    "accepted": 2,
    "canonicalRows": 60,
    "addedIds": [],
    "status5Canonical": {
     "completed": 16,
     "notDone": 10,
     "needsOmar": 3,
     "needsAli": 31,
     "needsBoth": 0,
     "declined": 0
    },
    "status5": {
     "completed": 16,
     "notDone": 10,
     "needsOmar": 3,
     "needsAli": 31,
     "needsBoth": 0,
     "declined": 0
    },
    "completed": 16,
    "percentCompleted": 27,
    "finalReview": {
     "ruled": 2,
     "ruledCompleted": 2,
     "notYetReviewed": 14,
     "words": "final review: ruled 2 · not yet reviewed 14 of the 16 Completed"
    },
    "acceptedUncovered": 8,
    "unruledIds": [
     "F06",
     "R04",
     "R08",
     "W04",
     "W07",
     "W10",
     "W11",
     "M-INV"
    ],
    "remaining": 58,
    "percent": 3,
    "reportedComplete": 5,
    "unverified": 27,
    "unverifiedCanonical": 27,
    "aiActive": 40,
    "aiActiveCanonical": 40,
    "byState": {
     "complete": 15,
     "review": 1,
     "open": 10,
     "partial": 3,
     "blocked": 31
    },
    "archivedIds": [
     "P17",
     "P18",
     "P20",
     "P19",
     "P26",
     "A20",
     "A24",
     "The owner 3"
    ]
   },
   {
    "key": "platform",
    "n": 5,
    "title": "Platform, roles, agents and release",
    "words": "logins and roles, navigation, notifications, helper agents, hosting, auth, install, launch, website, Home, the deck",
    "cards": [
     "mgmt-roles",
     "mgmt-ux",
     "office-msg",
     "office-ai",
     "office-connect",
     "office-company",
     "office-seats",
     "office-reviews",
     "plat-host",
     "plat-auth",
     "plat-install",
     "plat-launch",
     "plat-web",
     "plat-home",
     "plat-evidence",
     "pres-deck"
    ],
    "ids": [
     "V06·codex",
     "V49·codex",
     "M-ACC",
     "M-UX",
     "GL-013",
     "GL-037",
     "GL-054",
     "GL-055",
     "GL-059",
     "GL-078",
     "GL-091",
     "GL-094",
     "GL-104",
     "M-AUTH·design",
     "O-DATA·design",
     "O-HOST·design",
     "D02",
     "D03",
     "R06",
     "V04·codex",
     "M-AUTH·impl",
     "O-DATA·impl",
     "D01",
     "D04",
     "D05",
     "D08",
     "D09",
     "D10",
     "F07",
     "F21",
     "F38",
     "F39",
     "R01",
     "R10",
     "R13",
     "R22",
     "V02·codex",
     "V12·codex",
     "V15·codex",
     "V36·codex",
     "M-AI",
     "M-AUD",
     "M-AUTH",
     "M-BACK",
     "M-CON",
     "M-FEED",
     "M-MULTI",
     "M-SMS",
     "M-SYNC",
     "O-CAPACITY",
     "O-CUT",
     "O-DATA",
     "O-DECISIONS",
     "O-DOMAIN",
     "O-HOST",
     "O-INSTALL",
     "O-JOBS",
     "O-LEGAL",
     "O-MONITOR",
     "O-QUALITY",
     "O-RECOVERY",
     "O-SECURITY",
     "O-STORE",
     "O-SUPPORT",
     "O-UAT",
     "O-UPDATE",
     "GL-014",
     "GL-022",
     "GL-023",
     "GL-039",
     "GL-053",
     "GL-065",
     "GL-069",
     "GL-070",
     "GL-071",
     "GL-072",
     "GL-073",
     "GL-074",
     "GL-075",
     "GL-106",
     "GL-107",
     "GL-108",
     "GL-109",
     "D07",
     "D12",
     "R19",
     "V55·codex",
     "M-BRAND",
     "M-OFF",
     "M-SIZE",
     "O-WEB",
     "GL-045",
     "GL-060",
     "V1",
     "V2",
     "V3",
     "V5",
     "V6",
     "V28",
     "V29",
     "V30",
     "V31",
     "V36",
     "V114",
     "V116",
     "V124",
     "V125",
     "V126",
     "V133",
     "V139",
     "P1",
     "P12",
     "A1",
     "A2",
     "A3",
     "A4",
     "A5",
     "A6",
     "A7",
     "A8",
     "A9",
     "A10",
     "A11",
     "A13",
     "A14",
     "A15",
     "A16",
     "A21",
     "A38",
     "A43",
     "A59",
     "A60",
     "H1",
     "H2",
     "H3",
     "H4",
     "H7",
     "H8",
     "H9",
     "O1",
     "A4-rest",
     "H4-rest"
    ],
    "total": 142,
    "acceptedCanonical": 7,
    "accepted": 1,
    "canonicalRows": 140,
    "addedIds": [
     "A4-rest",
     "H4-rest"
    ],
    "status5Canonical": {
     "completed": 54,
     "notDone": 23,
     "needsOmar": 48,
     "needsAli": 10,
     "needsBoth": 4,
     "declined": 1
    },
    "status5": {
     "completed": 54,
     "notDone": 25,
     "needsOmar": 48,
     "needsAli": 10,
     "needsBoth": 4,
     "declined": 1
    },
    "completed": 54,
    "percentCompleted": 38,
    "finalReview": {
     "ruled": 1,
     "ruledCompleted": 1,
     "notYetReviewed": 53,
     "words": "final review: ruled 1 · not yet reviewed 53 of the 54 Completed"
    },
    "acceptedUncovered": 6,
    "unruledIds": [
     "V06·codex",
     "V49·codex",
     "M-ACC",
     "GL-059",
     "GL-078",
     "GL-104"
    ],
    "remaining": 141,
    "percent": 1,
    "reportedComplete": 42,
    "unverified": 62,
    "unverifiedCanonical": 60,
    "aiActive": 100,
    "aiActiveCanonical": 98,
    "byState": {
     "complete": 49,
     "review": 4,
     "open": 8,
     "blocked": 71,
     "partial": 8
    },
    "archivedIds": [
     "A12",
     "A61",
     "A62",
     "A63",
     "O3",
     "O6",
     "The owner 12",
     "The owner 18",
     "V01·codex",
     "V82",
     "V123",
     "V134",
     "V135",
     "V140",
     "V141",
     "O5"
    ]
   }
  ],
  "cardToGroup": {
   "crew-startday": "field",
   "crew-jha": "field",
   "crew-contain": "field",
   "crew-lang": "field",
   "safe-tickets": "field",
   "safe-train": "field",
   "safe-inc": "field",
   "safe-people": "field",
   "safe-privacy": "field",
   "safe-lib": "field",
   "gear-qr": "field",
   "gear-assets": "field",
   "gear-ware": "field",
   "crew-time": "time",
   "fin-payroll": "time",
   "office-textline": "time",
   "mgmt-dash": "projects",
   "mgmt-projbook": "projects",
   "mgmt-sched": "projects",
   "mgmt-forms": "projects",
   "mgmt-docs": "projects",
   "mgmt-tm": "projects",
   "mgmt-reports": "projects",
   "sales-quotes": "projects",
   "sales-crm": "projects",
   "sales-est": "projects",
   "fin-money": "money",
   "fin-invoice": "money",
   "fin-cost": "money",
   "fin-qbo": "money",
   "fin-cutover": "money",
   "mgmt-roles": "platform",
   "mgmt-ux": "platform",
   "office-msg": "platform",
   "office-ai": "platform",
   "office-connect": "platform",
   "office-company": "platform",
   "office-seats": "platform",
   "office-reviews": "platform",
   "plat-host": "platform",
   "plat-auth": "platform",
   "plat-install": "platform",
   "plat-launch": "platform",
   "plat-web": "platform",
   "plat-home": "platform",
   "plat-evidence": "platform",
   "pres-deck": "platform"
  },
  "lens": {
   "key": "fieldflo",
   "title": "Fieldflo coverage and gaps",
   "denominator": 162,
   "denominatorWords": "162 inventory ids of the 4 October requirements review — R 22 recording · W 15 workbook · F 57 public Fieldflo features · D 12 recommendations · V 56 Fieldflo meeting",
   "rowIds": [],
   "rule": "each of the inventory ids is traced to the live canonical row that carries it — by its own id, by its review-row id, or by its recorded alias; nothing is guessed — and reads that row's five-word status (Completed · Not done · Needs Omar · Needs Ali · Needs both, by the rule of 7 November: the owner field first, else canonical complete or review = Completed, else Not done); an id with no live row is unmapped, a gap printed by id; cross-references only, never added to a group total and never counted on the lens card",
   "status5": {
    "completed": 54,
    "notDone": 52,
    "needsOmar": 18,
    "needsAli": 36,
    "needsBoth": 1,
    "declined": 0,
    "unmapped": 1
   },
   "percentCompleted": 33,
   "entries": [
    {
     "id": "R01",
     "kind": "R",
     "kindWords": "recording (business requirement)",
     "title": "Connect the operating tools",
     "source": "R 06:45–07:14; 08:26",
     "evidence": "Recording",
     "canonical": [
      "R01"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "R01 \"Connect the operating tools\" comes from the recording notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Business requirements from the recording), inventory source R 06:45–07:14; 08:26. Matched by its own id to the live canonical row R01 \"Connect the operating tools\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "platform",
     "rowWaitingOn": "Omar",
     "status5": "needs-omar",
     "status5Word": "Needs Omar",
     "coveredBy": null
    },
    {
     "id": "R02",
     "kind": "R",
     "kindWords": "recording (business requirement)",
     "title": "Keep a separate quote register",
     "source": "R 05:22; 15:06–15:21; 16:59",
     "evidence": "Recording",
     "canonical": [
      "R02"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "R02 \"Keep a separate quote register\" comes from the recording notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Business requirements from the recording), inventory source R 05:22; 15:06–15:21; 16:59. Matched by its own id to the live canonical row R02 \"Keep a separate quote register\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "open",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "R03",
     "kind": "R",
     "kindWords": "recording (business requirement)",
     "title": "Convert accepted quotes into jobs",
     "source": "R 15:14–15:21",
     "evidence": "Recording",
     "canonical": [
      "R03"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "R03 \"Convert accepted quotes into jobs\" comes from the recording notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Business requirements from the recording), inventory source R 15:14–15:21. Matched by its own id to the live canonical row R03 \"Convert accepted quotes into jobs\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "R04",
     "kind": "R",
     "kindWords": "recording (business requirement)",
     "title": "Preserve categorized job costs",
     "source": "R 06:06–06:28",
     "evidence": "Recording",
     "canonical": [
      "R04"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "R04 \"Preserve categorized job costs\" comes from the recording notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Business requirements from the recording), inventory source R 06:06–06:28. Matched by its own id to the live canonical row R04 \"Preserve categorized job costs\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "money",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "recorded-only"
    },
    {
     "id": "R05",
     "kind": "R",
     "kindWords": "recording (business requirement)",
     "title": "Replace ambiguous status colours with meaningful states",
     "source": "R 06:28–06:43",
     "evidence": "Recording",
     "canonical": [
      "R05"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "R05 \"Replace ambiguous status colours with meaningful states\" comes from the recording notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Business requirements from the recording), inventory source R 06:28–06:43. Matched by its own id to the live canonical row R05 \"Replace ambiguous status colours with meaningful states\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "open",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "money",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "R06",
     "kind": "R",
     "kindWords": "recording (business requirement)",
     "title": "Provide desktop access",
     "source": "R 09:22–10:02",
     "evidence": "Recording",
     "canonical": [
      "R06"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "R06 \"Provide desktop access\" comes from the recording notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Business requirements from the recording), inventory source R 09:22–10:02. Matched by its own id to the live canonical row R06 \"Provide desktop access\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "open",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "platform",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "R07",
     "kind": "R",
     "kindWords": "recording (business requirement)",
     "title": "Offer conversational invoicing",
     "source": "R 11:34; 12:33–12:42",
     "evidence": "Recording",
     "canonical": [
      "R07"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "R07 \"Offer conversational invoicing\" comes from the recording notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Business requirements from the recording), inventory source R 11:34; 12:33–12:42. Matched by its own id to the live canonical row R07 \"Offer conversational invoicing\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "money",
     "rowWaitingOn": "Omar",
     "status5": "needs-omar",
     "status5Word": "Needs Omar",
     "coveredBy": null
    },
    {
     "id": "R08",
     "kind": "R",
     "kindWords": "recording (business requirement)",
     "title": "Give accounting staff a restricted workspace",
     "source": "R 14:01–14:33",
     "evidence": "Recording",
     "canonical": [
      "R08"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "R08 \"Give accounting staff a restricted workspace\" comes from the recording notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Business requirements from the recording), inventory source R 14:01–14:33. Matched by its own id to the live canonical row R08 \"Give accounting staff a restricted workspace\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "money",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "recorded-only"
    },
    {
     "id": "R09",
     "kind": "R",
     "kindWords": "recording (business requirement)",
     "title": "Remove owner mediated invoicing handoffs",
     "source": "R 14:27–15:00",
     "evidence": "Recording",
     "canonical": [
      "R09"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "R09 \"Remove owner mediated invoicing handoffs\" comes from the recording notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Business requirements from the recording), inventory source R 14:27–15:00. Matched by its own id to the live canonical row R09 \"Remove owner mediated invoicing handoffs\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "money",
     "rowWaitingOn": "Omar",
     "status5": "needs-omar",
     "status5Word": "Needs Omar",
     "coveredBy": null
    },
    {
     "id": "R10",
     "kind": "R",
     "kindWords": "recording (business requirement)",
     "title": "Link calendar events to jobs",
     "source": "R 08:26; 17:06–17:16",
     "evidence": "Recording",
     "canonical": [
      "R10"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "R10 \"Link calendar events to jobs\" comes from the recording notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Business requirements from the recording), inventory source R 08:26; 17:06–17:16. Matched by its own id to the live canonical row R10 \"Link calendar events to jobs\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "platform",
     "rowWaitingOn": "Omar",
     "status5": "needs-omar",
     "status5Word": "Needs Omar",
     "coveredBy": null
    },
    {
     "id": "R11",
     "kind": "R",
     "kindWords": "recording (business requirement)",
     "title": "Flag jobs due for invoicing",
     "source": "R 17:09–17:22",
     "evidence": "Recording",
     "canonical": [
      "R11"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "R11 \"Flag jobs due for invoicing\" comes from the recording notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Business requirements from the recording), inventory source R 17:09–17:22. Matched by its own id to the live canonical row R11 \"Flag jobs due for invoicing\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "money",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "ruling"
    },
    {
     "id": "R12",
     "kind": "R",
     "kindWords": "recording (business requirement)",
     "title": "Allocate payroll costs automatically",
     "source": "R 17:28–17:46",
     "evidence": "Recording",
     "canonical": [
      "R12"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "R12 \"Allocate payroll costs automatically\" comes from the recording notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Business requirements from the recording), inventory source R 17:28–17:46. Matched by its own id to the live canonical row R12 \"Allocate payroll costs automatically\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "time",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "R13",
     "kind": "R",
     "kindWords": "recording (business requirement)",
     "title": "Monitor relevant email activity",
     "source": "R 06:45; 18:06–18:20",
     "evidence": "Recording",
     "canonical": [
      "R13"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "R13 \"Monitor relevant email activity\" comes from the recording notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Business requirements from the recording), inventory source R 06:45; 18:06–18:20. Matched by its own id to the live canonical row R13 \"Monitor relevant email activity\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "platform",
     "rowWaitingOn": "Omar",
     "status5": "needs-omar",
     "status5Word": "Needs Omar",
     "coveredBy": null
    },
    {
     "id": "R14",
     "kind": "R",
     "kindWords": "recording (business requirement)",
     "title": "Offer statement based payment matching",
     "source": "R 18:27–18:52",
     "evidence": "Recording",
     "canonical": [
      "R14"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "R14 \"Offer statement based payment matching\" comes from the recording notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Business requirements from the recording), inventory source R 18:27–18:52. Matched by its own id to the live canonical row R14 \"Offer statement based payment matching\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "none",
     "rowGroup": "money",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "R15",
     "kind": "R",
     "kindWords": "recording (business requirement)",
     "title": "Track inventory used on jobs",
     "source": "R 20:29; 20:57–21:31",
     "evidence": "Recording",
     "canonical": [
      "R15"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "R15 \"Track inventory used on jobs\" comes from the recording notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Business requirements from the recording), inventory source R 20:29; 20:57–21:31. Matched by its own id to the live canonical row R15 \"Track inventory used on jobs\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "open",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "R16",
     "kind": "R",
     "kindWords": "recording (business requirement)",
     "title": "Read pasted delivery messages",
     "source": "R 21:10–21:31",
     "evidence": "Recording",
     "canonical": [
      "R16"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "R16 \"Read pasted delivery messages\" comes from the recording notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Business requirements from the recording), inventory source R 21:10–21:31. Matched by its own id to the live canonical row R16 \"Read pasted delivery messages\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "none",
     "rowGroup": "field",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "R17",
     "kind": "R",
     "kindWords": "recording (business requirement)",
     "title": "Retain historical estimating knowledge",
     "source": "R 22:28–23:02",
     "evidence": "Recording",
     "canonical": [
      "R17"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "R17 \"Retain historical estimating knowledge\" comes from the recording notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Business requirements from the recording), inventory source R 22:28–23:02. Matched by its own id to the live canonical row R17 \"Retain historical estimating knowledge\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "projects",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "R18",
     "kind": "R",
     "kindWords": "recording (business requirement)",
     "title": "Support reviewing and correcting AI estimates",
     "source": "R 22:44–23:02",
     "evidence": "Recording",
     "canonical": [
      "R18"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "R18 \"Support reviewing and correcting AI estimates\" comes from the recording notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Business requirements from the recording), inventory source R 22:44–23:02. Matched by its own id to the live canonical row R18 \"Support reviewing and correcting AI estimates\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "projects",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "R19",
     "kind": "R",
     "kindWords": "recording (business requirement)",
     "title": "Migrate existing Claude context",
     "source": "R 23:15–23:45",
     "evidence": "Recording",
     "canonical": [
      "R19"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "R19 \"Migrate existing Claude context\" comes from the recording notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Business requirements from the recording), inventory source R 23:15–23:45. Matched by its own id to the live canonical row R19 \"Migrate existing Claude context\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "none",
     "rowGroup": "platform",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "R20",
     "kind": "R",
     "kindWords": "recording (business requirement)",
     "title": "Prepare job specific safety documents",
     "source": "R 05:43–05:53; 16:25–16:43",
     "evidence": "Recording",
     "canonical": [
      "R20"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "R20 \"Prepare job specific safety documents\" comes from the recording notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Business requirements from the recording), inventory source R 05:43–05:53; 16:25–16:43. Matched by its own id to the live canonical row R20 \"Prepare job specific safety documents\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "open",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "R21",
     "kind": "R",
     "kindWords": "recording (business requirement)",
     "title": "Preserve assisted payroll preparation",
     "source": "R 05:38–05:42; 17:28–17:46",
     "evidence": "Recording",
     "canonical": [
      "R21"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "R21 \"Preserve assisted payroll preparation\" comes from the recording notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Business requirements from the recording), inventory source R 05:38–05:42; 17:28–17:46. Matched by its own id to the live canonical row R21 \"Preserve assisted payroll preparation\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "time",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "R22",
     "kind": "R",
     "kindWords": "recording (business requirement)",
     "title": "Keep the familiar workflow simple",
     "source": "R 14:36–15:00",
     "evidence": "Recording",
     "canonical": [
      "R22"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "R22 \"Keep the familiar workflow simple\" comes from the recording notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Business requirements from the recording), inventory source R 14:36–15:00. Matched by its own id to the live canonical row R22 \"Keep the familiar workflow simple\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "none",
     "rowGroup": "platform",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "W01",
     "kind": "W",
     "kindWords": "workbook inference",
     "title": "Import historical annual registers",
     "source": "W all eight Quotes and Jobs sheets",
     "evidence": "Workbook inference",
     "canonical": [
      "W01"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "W01 \"Import historical annual registers\" comes from the workbook findings (profile/Codex_Requirements_and_Notes_2026-10-04.md §Workbook findings), inventory source W all eight Quotes and Jobs sheets. Matched by its own id to the live canonical row W01 \"Import historical annual registers\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "money",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "W02",
     "kind": "W",
     "kindWords": "workbook inference",
     "title": "Preserve commercial identifiers",
     "source": "W Quotes A4:G4; Jobs A4:H4",
     "evidence": "Workbook inference",
     "canonical": [
      "W02"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "W02 \"Preserve commercial identifiers\" comes from the workbook findings (profile/Codex_Requirements_and_Notes_2026-10-04.md §Workbook findings), inventory source W Quotes A4:G4; Jobs A4:H4. Matched by its own id to the live canonical row W02 \"Preserve commercial identifiers\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "open",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "money",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "W03",
     "kind": "W",
     "kindWords": "workbook inference",
     "title": "Support multiple commercial records per site",
     "source": "W Makki 2024 Quotes D7:F9; Jobs D5:F10",
     "evidence": "Workbook inference",
     "canonical": [
      "W03"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "W03 \"Support multiple commercial records per site\" comes from the workbook findings (profile/Codex_Requirements_and_Notes_2026-10-04.md §Workbook findings), inventory source W Makki 2024 Quotes D7:F9; Jobs D5:F10. Matched by its own id to the live canonical row W03 \"Support multiple commercial records per site\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "open",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "money",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "W04",
     "kind": "W",
     "kindWords": "workbook inference",
     "title": "Separate sales amount and tax",
     "source": "W Makki 2026 Jobs I5:K6; Quotes H5:J5",
     "evidence": "Workbook inference",
     "canonical": [
      "W04"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "W04 \"Separate sales amount and tax\" comes from the workbook findings (profile/Codex_Requirements_and_Notes_2026-10-04.md §Workbook findings), inventory source W Makki 2026 Jobs I5:K6; Quotes H5:J5. Matched by its own id to the live canonical row W04 \"Separate sales amount and tax\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "money",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "recorded-only"
    },
    {
     "id": "W05",
     "kind": "W",
     "kindWords": "workbook inference",
     "title": "Support all seven visible expense categories",
     "source": "W Makki 2026 Jobs O4:U4; older Jobs N4:T4",
     "evidence": "Workbook inference",
     "canonical": [
      "W05"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "W05 \"Support all seven visible expense categories\" comes from the workbook findings (profile/Codex_Requirements_and_Notes_2026-10-04.md §Workbook findings), inventory source W Makki 2026 Jobs O4:U4; older Jobs N4:T4. Matched by its own id to the live canonical row W05 \"Support all seven visible expense categories\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "open",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "money",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "W06",
     "kind": "W",
     "kindWords": "workbook inference",
     "title": "Replace sums embedded in cells with cost lines",
     "source": "W Makki 2025 Jobs O7:U7; Makki 2023 Jobs O7:S7",
     "evidence": "Workbook inference",
     "canonical": [
      "W06"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "W06 \"Replace sums embedded in cells with cost lines\" comes from the workbook findings (profile/Codex_Requirements_and_Notes_2026-10-04.md §Workbook findings), inventory source W Makki 2025 Jobs O7:U7; Makki 2023 Jobs O7:S7. Matched by its own id to the live canonical row W06 \"Replace sums embedded in cells with cost lines\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "none",
     "rowGroup": "money",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "W07",
     "kind": "W",
     "kindWords": "workbook inference",
     "title": "Calculate profit consistently",
     "source": "W Makki 2026 Jobs K6:M6",
     "evidence": "Workbook inference",
     "canonical": [
      "W07"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "W07 \"Calculate profit consistently\" comes from the workbook findings (profile/Codex_Requirements_and_Notes_2026-10-04.md §Workbook findings), inventory source W Makki 2026 Jobs K6:M6. Matched by its own id to the live canonical row W07 \"Calculate profit consistently\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "money",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "recorded-only"
    },
    {
     "id": "W08",
     "kind": "W",
     "kindWords": "workbook inference",
     "title": "Record partial payments and remaining balances",
     "source": "W Makki 2024 Jobs H1; Makki 2026 Jobs F7,H4:H10",
     "evidence": "Workbook inference",
     "canonical": [
      "W08"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "W08 \"Record partial payments and remaining balances\" comes from the workbook findings (profile/Codex_Requirements_and_Notes_2026-10-04.md §Workbook findings), inventory source W Makki 2024 Jobs H1; Makki 2026 Jobs F7,H4:H10. Matched by its own id to the live canonical row W08 \"Record partial payments and remaining balances\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "money",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "W09",
     "kind": "W",
     "kindWords": "workbook inference",
     "title": "Represent holdback and payment exceptions",
     "source": "W Makki 2026 Jobs I1:K3,H5:H10",
     "evidence": "Workbook inference",
     "canonical": [
      "W09"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "W09 \"Represent holdback and payment exceptions\" comes from the workbook findings (profile/Codex_Requirements_and_Notes_2026-10-04.md §Workbook findings), inventory source W Makki 2026 Jobs I1:K3,H5:H10. Matched by its own id to the live canonical row W09 \"Represent holdback and payment exceptions\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "open",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "money",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "W10",
     "kind": "W",
     "kindWords": "workbook inference",
     "title": "Track whether a job has been invoiced",
     "source": "W Makki 2026 Jobs V4:V10; Makki 2024 Jobs U4:U10",
     "evidence": "Workbook inference",
     "canonical": [
      "W10"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "W10 \"Track whether a job has been invoiced\" comes from the workbook findings (profile/Codex_Requirements_and_Notes_2026-10-04.md §Workbook findings), inventory source W Makki 2026 Jobs V4:V10; Makki 2024 Jobs U4:U10. Matched by its own id to the live canonical row W10 \"Track whether a job has been invoiced\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "money",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "recorded-only"
    },
    {
     "id": "W11",
     "kind": "W",
     "kindWords": "workbook inference",
     "title": "Retain source notes during migration",
     "source": "W Makki 2026 Jobs E8,F5:F7",
     "evidence": "Workbook inference",
     "canonical": [
      "W11"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "W11 \"Retain source notes during migration\" comes from the workbook findings (profile/Codex_Requirements_and_Notes_2026-10-04.md §Workbook findings), inventory source W Makki 2026 Jobs E8,F5:F7. Matched by its own id to the live canonical row W11 \"Retain source notes during migration\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "money",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "recorded-only"
    },
    {
     "id": "W12",
     "kind": "W",
     "kindWords": "workbook inference",
     "title": "Normalize inventory units and pack prices",
     "source": "W Inventory A3:B12",
     "evidence": "Workbook inference",
     "canonical": [
      "W12"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "W12 \"Normalize inventory units and pack prices\" comes from the workbook findings (profile/Codex_Requirements_and_Notes_2026-10-04.md §Workbook findings), inventory source W Inventory A3:B12. Matched by its own id to the live canonical row W12 \"Normalize inventory units and pack prices\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "W13",
     "kind": "W",
     "kindWords": "workbook inference",
     "title": "Allow adjustments and credits",
     "source": "W Makki 2024 Jobs Q6,Q8; Makki 2025 Jobs K7,O7",
     "evidence": "Workbook inference",
     "canonical": [
      "W13"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "W13 \"Allow adjustments and credits\" comes from the workbook findings (profile/Codex_Requirements_and_Notes_2026-10-04.md §Workbook findings), inventory source W Makki 2024 Jobs Q6,Q8; Makki 2025 Jobs K7,O7. Matched by its own id to the live canonical row W13 \"Allow adjustments and credits\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "none",
     "rowGroup": "money",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "W14",
     "kind": "W",
     "kindWords": "workbook inference",
     "title": "Expose reconciliation exceptions",
     "source": "W Makki 2024 Jobs J9:P9; Makki 2026 Jobs K5:N5",
     "evidence": "Workbook inference",
     "canonical": [
      "W14"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "W14 \"Expose reconciliation exceptions\" comes from the workbook findings (profile/Codex_Requirements_and_Notes_2026-10-04.md §Workbook findings), inventory source W Makki 2024 Jobs J9:P9; Makki 2026 Jobs K5:N5. Matched by its own id to the live canonical row W14 \"Expose reconciliation exceptions\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "none",
     "rowGroup": "money",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "W15",
     "kind": "W",
     "kindWords": "workbook inference",
     "title": "Use year filters without duplicating jobs",
     "source": "W Makki 2026 Jobs B5:G7; Makki 2024 Jobs H1",
     "evidence": "Workbook inference",
     "canonical": [
      "W15"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "W15 \"Use year filters without duplicating jobs\" comes from the workbook findings (profile/Codex_Requirements_and_Notes_2026-10-04.md §Workbook findings), inventory source W Makki 2026 Jobs B5:G7; Makki 2024 Jobs H1. Matched by its own id to the live canonical row W15 \"Use year filters without duplicating jobs\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "money",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "F01",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Company operations dashboard",
     "source": "P01",
     "evidence": "Public product claim",
     "canonical": [
      "F01"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F01 \"Company operations dashboard\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P01. Matched by its own id to the live canonical row F01 \"Company operations dashboard\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "recorded-only"
    },
    {
     "id": "F02",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Current site attendance",
     "source": "P01",
     "evidence": "Public product claim",
     "canonical": [
      "F02"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F02 \"Current site attendance\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P01. Matched by its own id to the live canonical row F02 \"Current site attendance\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "time",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "F03",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Budget and overtime indicators",
     "source": "P01",
     "evidence": "Public product claim",
     "canonical": [
      "F03"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F03 \"Budget and overtime indicators\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P01. Matched by its own id to the live canonical row F03 \"Budget and overtime indicators\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "recorded-only"
    },
    {
     "id": "F04",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Pipeline and contract overview",
     "source": "P01",
     "evidence": "Public product claim",
     "canonical": [
      "F04"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F04 \"Pipeline and contract overview\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P01. Matched by its own id to the live canonical row F04 \"Pipeline and contract overview\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "projects",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "F05",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Project daily records",
     "source": "P02",
     "evidence": "Public product claim",
     "canonical": [
      "F05"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F05 \"Project daily records\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P02. Matched by its own id to the live canonical row F05 \"Project daily records\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "open",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "F06",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Estimate versus actual project view",
     "source": "P02",
     "evidence": "Public product claim",
     "canonical": [
      "F06"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F06 \"Estimate versus actual project view\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P02. Matched by its own id to the live canonical row F06 \"Estimate versus actual project view\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "money",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "recorded-only"
    },
    {
     "id": "F07",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Project exception notifications",
     "source": "P02",
     "evidence": "Public product claim",
     "canonical": [
      "F07"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F07 \"Project exception notifications\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P02. Matched by its own id to the live canonical row F07 \"Project exception notifications\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "platform",
     "rowWaitingOn": "Omar",
     "status5": "needs-omar",
     "status5Word": "Needs Omar",
     "coveredBy": null
    },
    {
     "id": "F08",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Project document sharing",
     "source": "P02",
     "evidence": "Public product claim",
     "canonical": [
      "F08"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F08 \"Project document sharing\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P02. Matched by its own id to the live canonical row F08 \"Project document sharing\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "recorded-only"
    },
    {
     "id": "F09",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Daily project timesheets",
     "source": "P03",
     "evidence": "Public product claim",
     "canonical": [
      "F09"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F09 \"Daily project timesheets\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P03. Matched by its own id to the live canonical row F09 \"Daily project timesheets\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "open",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "time",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "F10",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Time coding and attestations",
     "source": "P03",
     "evidence": "Public product claim",
     "canonical": [
      "F10"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F10 \"Time coding and attestations\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P03. Matched by its own id to the live canonical row F10 \"Time coding and attestations\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "time",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "F11",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Roll call and attendance exceptions",
     "source": "P03",
     "evidence": "Public product claim",
     "canonical": [
      "F11"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F11 \"Roll call and attendance exceptions\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P03. Matched by its own id to the live canonical row F11 \"Roll call and attendance exceptions\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "time",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "recorded-only"
    },
    {
     "id": "F12",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Payroll export",
     "source": "P03",
     "evidence": "Public product claim",
     "canonical": [
      "F12"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F12 \"Payroll export\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P03. Matched by its own id to the live canonical row F12 \"Payroll export\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "time",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "F13",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Digital signatures for time records",
     "source": "P03",
     "evidence": "Public product claim",
     "canonical": [
      "F13"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F13 \"Digital signatures for time records\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P03. Matched by its own id to the live canonical row F13 \"Digital signatures for time records\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "time",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "ruling"
    },
    {
     "id": "F14",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Breaks per diem and asset time",
     "source": "P00",
     "evidence": "Public product claim",
     "canonical": [
      "F14"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F14 \"Breaks per diem and asset time\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P00. Matched by its own id to the live canonical row F14 \"Breaks per diem and asset time\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "time",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "recorded-only"
    },
    {
     "id": "F15",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Estimate setup for job costing",
     "source": "P04",
     "evidence": "Public product claim",
     "canonical": [
      "F15"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F15 \"Estimate setup for job costing\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P04. Matched by its own id to the live canonical row F15 \"Estimate setup for job costing\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "open",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "money",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "F16",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Operational cost feeds",
     "source": "P04",
     "evidence": "Public product claim",
     "canonical": [
      "F16"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F16 \"Operational cost feeds\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P04. Matched by its own id to the live canonical row F16 \"Operational cost feeds\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "money",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "F17",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Project profit and loss",
     "source": "P04",
     "evidence": "Public product claim",
     "canonical": [
      "F17"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F17 \"Project profit and loss\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P04. Matched by its own id to the live canonical row F17 \"Project profit and loss\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "open",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "money",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "F18",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Temporary and contracted labour costs",
     "source": "P04",
     "evidence": "Public product claim",
     "canonical": [
      "F18"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F18 \"Temporary and contracted labour costs\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P04. Matched by its own id to the live canonical row F18 \"Temporary and contracted labour costs\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "money",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "ruling"
    },
    {
     "id": "F19",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Employee scheduling",
     "source": "P05",
     "evidence": "Public product claim",
     "canonical": [
      "F19"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F19 \"Employee scheduling\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P05. Matched by its own id to the live canonical row F19 \"Employee scheduling\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "open",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "F20",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Equipment scheduling",
     "source": "P05",
     "evidence": "Public product claim",
     "canonical": [
      "F20"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F20 \"Equipment scheduling\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P05. Matched by its own id to the live canonical row F20 \"Equipment scheduling\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "recorded-only"
    },
    {
     "id": "F21",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Schedule messaging",
     "source": "P05",
     "evidence": "Public product claim",
     "canonical": [
      "F21"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F21 \"Schedule messaging\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P05. Matched by its own id to the live canonical row F21 \"Schedule messaging\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "platform",
     "rowWaitingOn": "Omar",
     "status5": "needs-omar",
     "status5Word": "Needs Omar",
     "coveredBy": null
    },
    {
     "id": "F22",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Double booking alerts",
     "source": "P05",
     "evidence": "Public product claim",
     "canonical": [
      "F22"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F22 \"Double booking alerts\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P05. Matched by its own id to the live canonical row F22 \"Double booking alerts\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "recorded-only"
    },
    {
     "id": "F23",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Schedule reports",
     "source": "P05",
     "evidence": "Public product claim",
     "canonical": [
      "F23"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F23 \"Schedule reports\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P05. Matched by its own id to the live canonical row F23 \"Schedule reports\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "partial",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "F24",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Schedule to timesheet preparation",
     "source": "P00",
     "evidence": "Public product claim",
     "canonical": [
      "F24"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F24 \"Schedule to timesheet preparation\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P00. Matched by its own id to the live canonical row F24 \"Schedule to timesheet preparation\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "ruling"
    },
    {
     "id": "F25",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Warehouse and project stock",
     "source": "P06",
     "evidence": "Public product claim",
     "canonical": [
      "F25"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F25 \"Warehouse and project stock\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P06. Matched by its own id to the live canonical row F25 \"Warehouse and project stock\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "recorded-only"
    },
    {
     "id": "F26",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Missing equipment and project inventory reports",
     "source": "P06",
     "evidence": "Public product claim",
     "canonical": [
      "F26"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F26 \"Missing equipment and project inventory reports\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P06. Matched by its own id to the live canonical row F26 \"Missing equipment and project inventory reports\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "partial",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "F27",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Warehouse fulfillment and delivery planning",
     "source": "P06",
     "evidence": "Public product claim",
     "canonical": [
      "F27"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F27 \"Warehouse fulfillment and delivery planning\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P06. Matched by its own id to the live canonical row F27 \"Warehouse fulfillment and delivery planning\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "partial",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "F28",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Inspection maintenance and low stock reminders",
     "source": "P06",
     "evidence": "Public product claim",
     "canonical": [
      "F28"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F28 \"Inspection maintenance and low stock reminders\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P06. Matched by its own id to the live canonical row F28 \"Inspection maintenance and low stock reminders\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "recorded-only"
    },
    {
     "id": "F29",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Equipment documents and rentals",
     "source": "P06; P00",
     "evidence": "Public product claim",
     "canonical": [
      "F29"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F29 \"Equipment documents and rentals\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P06; P00. Matched by its own id to the live canonical row F29 \"Equipment documents and rentals\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "recorded-only"
    },
    {
     "id": "F30",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Employee and company credentials",
     "source": "P07",
     "evidence": "Public product claim",
     "canonical": [
      "F30"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F30 \"Employee and company credentials\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P07. Matched by its own id to the live canonical row F30 \"Employee and company credentials\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "recorded-only"
    },
    {
     "id": "F31",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Automatic project certificate packs",
     "source": "P07",
     "evidence": "Public product claim",
     "canonical": [
      "F31"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F31 \"Automatic project certificate packs\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P07. Matched by its own id to the live canonical row F31 \"Automatic project certificate packs\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "partial",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "F32",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Custom training and certificates",
     "source": "P07",
     "evidence": "Public product claim",
     "canonical": [
      "F32"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F32 \"Custom training and certificates\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P07. Matched by its own id to the live canonical row F32 \"Custom training and certificates\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "none",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "F33",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Training history and reports",
     "source": "P07",
     "evidence": "Public product claim",
     "canonical": [
      "F33"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F33 \"Training history and reports\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P07. Matched by its own id to the live canonical row F33 \"Training history and reports\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "none",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "F34",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Employee skill records",
     "source": "P08",
     "evidence": "Public product claim",
     "canonical": [
      "F34"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F34 \"Employee skill records\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P08. Matched by its own id to the live canonical row F34 \"Employee skill records\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "recorded-only"
    },
    {
     "id": "F35",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Workforce qualification search",
     "source": "P08",
     "evidence": "Public product claim",
     "canonical": [
      "F35"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F35 \"Workforce qualification search\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P08. Matched by its own id to the live canonical row F35 \"Workforce qualification search\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "recorded-only"
    },
    {
     "id": "F36",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Disciplinary records and alerts",
     "source": "P08",
     "evidence": "Public product claim",
     "canonical": [
      "F36"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F36 \"Disciplinary records and alerts\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P08. Matched by its own id to the live canonical row F36 \"Disciplinary records and alerts\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "recorded-only"
    },
    {
     "id": "F37",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Custom company and client forms",
     "source": "P09",
     "evidence": "Public product claim",
     "canonical": [
      "F37"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F37 \"Custom company and client forms\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P09. Matched by its own id to the live canonical row F37 \"Custom company and client forms\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "recorded-only"
    },
    {
     "id": "F38",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Automatic form distribution",
     "source": "P09",
     "evidence": "Public product claim",
     "canonical": [
      "F38"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F38 \"Automatic form distribution\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P09. Matched by its own id to the live canonical row F38 \"Automatic form distribution\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "platform",
     "rowWaitingOn": "Omar",
     "status5": "needs-omar",
     "status5Word": "Needs Omar",
     "coveredBy": null
    },
    {
     "id": "F39",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Answer triggered form alerts",
     "source": "P09",
     "evidence": "Public product claim",
     "canonical": [
      "F39"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F39 \"Answer triggered form alerts\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P09. Matched by its own id to the live canonical row F39 \"Answer triggered form alerts\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "platform",
     "rowWaitingOn": "Omar",
     "status5": "needs-omar",
     "status5Word": "Needs Omar",
     "coveredBy": null
    },
    {
     "id": "F40",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Mandatory daily forms",
     "source": "P09",
     "evidence": "Public product claim",
     "canonical": [
      "F40"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F40 \"Mandatory daily forms\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P09. Matched by its own id to the live canonical row F40 \"Mandatory daily forms\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "recorded-only"
    },
    {
     "id": "F41",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Prospects bids and site walks",
     "source": "P10",
     "evidence": "Public product claim",
     "canonical": [
      "F41"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F41 \"Prospects bids and site walks\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P10. Matched by its own id to the live canonical row F41 \"Prospects bids and site walks\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "open",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "F42",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Sales follow up and reminders",
     "source": "P10",
     "evidence": "Public product claim",
     "canonical": [
      "F42"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F42 \"Sales follow up and reminders\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P10. Matched by its own id to the live canonical row F42 \"Sales follow up and reminders\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "projects",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "F43",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Proposals and electronic signature",
     "source": "P10",
     "evidence": "Public product claim",
     "canonical": [
      "F43"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F43 \"Proposals and electronic signature\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P10. Matched by its own id to the live canonical row F43 \"Proposals and electronic signature\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "projects",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "F44",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Estimator and sales reporting",
     "source": "P10",
     "evidence": "Public product claim",
     "canonical": [
      "F44"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F44 \"Estimator and sales reporting\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P10. Matched by its own id to the live canonical row F44 \"Estimator and sales reporting\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "recorded-only"
    },
    {
     "id": "F45",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Time and material tickets",
     "source": "P11",
     "evidence": "Public product claim",
     "canonical": [
      "F45"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F45 \"Time and material tickets\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P11. Matched by its own id to the live canonical row F45 \"Time and material tickets\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "open",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "F46",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "T&M notifications and change orders",
     "source": "P11",
     "evidence": "Public product claim",
     "canonical": [
      "F46"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F46 \"T&M notifications and change orders\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P11. Matched by its own id to the live canonical row F46 \"T&M notifications and change orders\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "open",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "F47",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Outstanding T&M billing reports",
     "source": "P11",
     "evidence": "Public product claim",
     "canonical": [
      "F47"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F47 \"Outstanding T&M billing reports\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P11. Matched by its own id to the live canonical row F47 \"Outstanding T&M billing reports\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "recorded-only"
    },
    {
     "id": "F48",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Job hazard analysis and inspections",
     "source": "P12",
     "evidence": "Public product claim",
     "canonical": [
      "F48"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F48 \"Job hazard analysis and inspections\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P12. Matched by its own id to the live canonical row F48 \"Job hazard analysis and inspections\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "F49",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Incidents near misses and corrective actions",
     "source": "P12",
     "evidence": "Public product claim",
     "canonical": [
      "F49"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F49 \"Incidents near misses and corrective actions\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P12. Matched by its own id to the live canonical row F49 \"Incidents near misses and corrective actions\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "open",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "F50",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Safety alerts and performance indicators",
     "source": "P12",
     "evidence": "Public product claim",
     "canonical": [
      "F50"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F50 \"Safety alerts and performance indicators\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P12. Matched by its own id to the live canonical row F50 \"Safety alerts and performance indicators\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "open",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "F51",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "QR access to equipment and chemical documents",
     "source": "P12",
     "evidence": "Public product claim",
     "canonical": [
      "F51"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F51 \"QR access to equipment and chemical documents\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P12. Matched by its own id to the live canonical row F51 \"QR access to equipment and chemical documents\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "recorded-only"
    },
    {
     "id": "F52",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Folders attached to business records",
     "source": "P13",
     "evidence": "Public product claim",
     "canonical": [
      "F52"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F52 \"Folders attached to business records\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P13. Matched by its own id to the live canonical row F52 \"Folders attached to business records\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "F53",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Restricted document access and image markup",
     "source": "P13",
     "evidence": "Public product claim",
     "canonical": [
      "F53"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F53 \"Restricted document access and image markup\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P13. Matched by its own id to the live canonical row F53 \"Restricted document access and image markup\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "F54",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Single worker mobile time entry",
     "source": "P14",
     "evidence": "Public product claim",
     "canonical": [
      "F54"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F54 \"Single worker mobile time entry\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P14. Matched by its own id to the live canonical row F54 \"Single worker mobile time entry\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "time",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "ruling"
    },
    {
     "id": "F55",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Training library access",
     "source": "P14",
     "evidence": "Public product claim",
     "canonical": [
      "F55"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F55 \"Training library access\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P14. Matched by its own id to the live canonical row F55 \"Training library access\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "none",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "F56",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Plans and drawings",
     "source": "P14",
     "evidence": "Public product claim",
     "canonical": [
      "F56"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F56 \"Plans and drawings\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P14. Matched by its own id to the live canonical row F56 \"Plans and drawings\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "F57",
     "kind": "F",
     "kindWords": "public Fieldflo feature",
     "title": "Accounting integration candidates",
     "source": "P15; P16; P17",
     "evidence": "Public product claim",
     "canonical": [
      "F57"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "F57 \"Accounting integration candidates\" comes from the Fieldflo public feature parity table (profile/Codex_Feature_Inventory_2026-10-04.md), inventory source P15; P16; P17. Matched by its own id to the live canonical row F57 \"Accounting integration candidates\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "none",
     "rowGroup": "money",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "D01",
     "kind": "D",
     "kindWords": "implementation recommendation",
     "title": "Authorization enforced throughout the system",
     "source": "Derived from R08",
     "evidence": "Recommendation",
     "canonical": [
      "D01"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "D01 \"Authorization enforced throughout the system\" comes from the implementation recommendations (profile/Codex_Requirements_and_Notes_2026-10-04.md), inventory source Derived from R08. Matched by its own id to the live canonical row D01 \"Authorization enforced throughout the system\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "platform",
     "rowWaitingOn": "Omar",
     "status5": "needs-omar",
     "status5Word": "Needs Omar",
     "coveredBy": null
    },
    {
     "id": "D02",
     "kind": "D",
     "kindWords": "implementation recommendation",
     "title": "Review consequential assistant actions",
     "source": "Derived from R07,R14,R16",
     "evidence": "Recommendation",
     "canonical": [
      "D02"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "D02 \"Review consequential assistant actions\" comes from the implementation recommendations (profile/Codex_Requirements_and_Notes_2026-10-04.md), inventory source Derived from R07,R14,R16. Matched by its own id to the live canonical row D02 \"Review consequential assistant actions\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "open",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "platform",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "D03",
     "kind": "D",
     "kindWords": "implementation recommendation",
     "title": "Prevent duplicate processing",
     "source": "Derived from R01,R03,R12,R14",
     "evidence": "Recommendation",
     "canonical": [
      "D03"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "D03 \"Prevent duplicate processing\" comes from the implementation recommendations (profile/Codex_Requirements_and_Notes_2026-10-04.md), inventory source Derived from R01,R03,R12,R14. Matched by its own id to the live canonical row D03 \"Prevent duplicate processing\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "open",
     "rowAccepted": false,
     "rowEvidence": "none",
     "rowGroup": "platform",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "D04",
     "kind": "D",
     "kindWords": "implementation recommendation",
     "title": "Audit changes and corrections",
     "source": "Derived from R08,W11,W14",
     "evidence": "Recommendation",
     "canonical": [
      "D04"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "D04 \"Audit changes and corrections\" comes from the implementation recommendations (profile/Codex_Requirements_and_Notes_2026-10-04.md), inventory source Derived from R08,W11,W14. Matched by its own id to the live canonical row D04 \"Audit changes and corrections\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "platform",
     "rowWaitingOn": "Omar",
     "status5": "needs-omar",
     "status5Word": "Needs Omar",
     "coveredBy": null
    },
    {
     "id": "D05",
     "kind": "D",
     "kindWords": "implementation recommendation",
     "title": "Manage sync failures and conflicts",
     "source": "Derived from R01,R10,R13",
     "evidence": "Recommendation",
     "canonical": [
      "D05"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "D05 \"Manage sync failures and conflicts\" comes from the implementation recommendations (profile/Codex_Requirements_and_Notes_2026-10-04.md), inventory source Derived from R01,R10,R13. Matched by its own id to the live canonical row D05 \"Manage sync failures and conflicts\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "none",
     "rowGroup": "platform",
     "rowWaitingOn": "Omar",
     "status5": "needs-omar",
     "status5Word": "Needs Omar",
     "coveredBy": null
    },
    {
     "id": "D06",
     "kind": "D",
     "kindWords": "implementation recommendation",
     "title": "Protect approved document versions",
     "source": "Derived from R20,F31,F43,F56",
     "evidence": "Recommendation",
     "canonical": [
      "D06"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "D06 \"Protect approved document versions\" comes from the implementation recommendations (profile/Codex_Requirements_and_Notes_2026-10-04.md), inventory source Derived from R20,F31,F43,F56. Matched by its own id to the live canonical row D06 \"Protect approved document versions\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "D07",
     "kind": "D",
     "kindWords": "implementation recommendation",
     "title": "Support field connectivity interruptions",
     "source": "Derived from field use",
     "evidence": "Recommendation",
     "canonical": [
      "D07"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "D07 \"Support field connectivity interruptions\" comes from the implementation recommendations (profile/Codex_Requirements_and_Notes_2026-10-04.md), inventory source Derived from field use. Matched by its own id to the live canonical row D07 \"Support field connectivity interruptions\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "platform",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "D08",
     "kind": "D",
     "kindWords": "implementation recommendation",
     "title": "Keep business records as the authoritative data",
     "source": "Derived from R17,R19",
     "evidence": "Recommendation",
     "canonical": [
      "D08"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "D08 \"Keep business records as the authoritative data\" comes from the implementation recommendations (profile/Codex_Requirements_and_Notes_2026-10-04.md), inventory source Derived from R17,R19. Matched by its own id to the live canonical row D08 \"Keep business records as the authoritative data\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "none",
     "rowGroup": "platform",
     "rowWaitingOn": "Omar",
     "status5": "needs-omar",
     "status5Word": "Needs Omar",
     "coveredBy": null
    },
    {
     "id": "D09",
     "kind": "D",
     "kindWords": "implementation recommendation",
     "title": "Monitor assistant quality and usage",
     "source": "Derived from R17,R18 and R 16:03",
     "evidence": "Recommendation",
     "canonical": [
      "D09"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "D09 \"Monitor assistant quality and usage\" comes from the implementation recommendations (profile/Codex_Requirements_and_Notes_2026-10-04.md), inventory source Derived from R17,R18 and R 16:03. Matched by its own id to the live canonical row D09 \"Monitor assistant quality and usage\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "platform",
     "rowWaitingOn": "Omar",
     "status5": "needs-omar",
     "status5Word": "Needs Omar",
     "coveredBy": null
    },
    {
     "id": "D10",
     "kind": "D",
     "kindWords": "implementation recommendation",
     "title": "Back up and export business data",
     "source": "Derived from migration needs",
     "evidence": "Recommendation",
     "canonical": [
      "D10"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "D10 \"Back up and export business data\" comes from the implementation recommendations (profile/Codex_Requirements_and_Notes_2026-10-04.md), inventory source Derived from migration needs. Matched by its own id to the live canonical row D10 \"Back up and export business data\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "platform",
     "rowWaitingOn": "Omar",
     "status5": "needs-omar",
     "status5Word": "Needs Omar",
     "coveredBy": null
    },
    {
     "id": "D11",
     "kind": "D",
     "kindWords": "implementation recommendation",
     "title": "Keep location and HR access limited",
     "source": "Derived from F02,F36,F54",
     "evidence": "Recommendation",
     "canonical": [
      "D11"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "D11 \"Keep location and HR access limited\" comes from the implementation recommendations (profile/Codex_Requirements_and_Notes_2026-10-04.md), inventory source Derived from F02,F36,F54. Matched by its own id to the live canonical row D11 \"Keep location and HR access limited\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "Omar",
     "status5": "needs-omar",
     "status5Word": "Needs Omar",
     "coveredBy": null
    },
    {
     "id": "D12",
     "kind": "D",
     "kindWords": "implementation recommendation",
     "title": "Validate safety and payroll configurations",
     "source": "Derived from R20,R21",
     "evidence": "Recommendation",
     "canonical": [
      "D12"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "D12 \"Validate safety and payroll configurations\" comes from the implementation recommendations (profile/Codex_Requirements_and_Notes_2026-10-04.md), inventory source Derived from R20,R21. Matched by its own id to the live canonical row D12 \"Validate safety and payroll configurations\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "none",
     "rowGroup": "platform",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "V01",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Roll out across five companies",
     "source": "V 02:01",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [],
     "resolvedBy": "resolves only to the archived V01·codex (cancelled-excluded — cancelled-by-Omar-2026-09-15); no live row",
     "archivedRef": "V01·codex",
     "trace": "V01 \"Roll out across five companies\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 02:01. Resolves only to the archived V01·codex; no live row.",
     "plainIdCollision": null,
     "state": "unmapped",
     "rowState": null,
     "rowAccepted": false,
     "rowEvidence": null,
     "rowGroup": null,
     "rowWaitingOn": null,
     "status5": "unmapped",
     "status5Word": "unmapped",
     "coveredBy": null
    },
    {
     "id": "V02",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Make field adoption measurable",
     "source": "V 02:01; 10:37",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V02·codex"
     ],
     "resolvedBy": "the canonical row V02·codex",
     "archivedRef": null,
     "trace": "V02 \"Make field adoption measurable\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 02:01; 10:37. Matched by the canonical row V02·codex to the live canonical row V02·codex \"Make field adoption measurable\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "none",
     "rowGroup": "platform",
     "rowWaitingOn": "Omar",
     "status5": "needs-omar",
     "status5Word": "Needs Omar",
     "coveredBy": null
    },
    {
     "id": "V03",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Multilingual interface and dictation",
     "source": "V 02:37; 24:23; 27:47",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V03·codex"
     ],
     "resolvedBy": "the canonical row V03·codex",
     "archivedRef": null,
     "trace": "V03 \"Multilingual interface and dictation\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 02:37; 24:23; 27:47. Matched by the canonical row V03·codex to the live canonical row V03·codex \"Multilingual interface and dictation\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "V04",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Company branding",
     "source": "V 02:37; 10:42; 15:31",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V04·codex"
     ],
     "resolvedBy": "the canonical row V04·codex",
     "archivedRef": null,
     "trace": "V04 \"Company branding\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 02:37; 10:42; 15:31. Matched by the canonical row V04·codex to the live canonical row V04·codex \"Company branding\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "open",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "platform",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "V05",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Payroll-only accountant role",
     "source": "V 08:14–09:38",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V05·codex"
     ],
     "resolvedBy": "the canonical row V05·codex",
     "archivedRef": null,
     "trace": "V05 \"Payroll-only accountant role\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 08:14–09:38. Matched by the canonical row V05·codex to the live canonical row V05·codex \"Payroll-only accountant role\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "time",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "recorded-only"
    },
    {
     "id": "V06",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Granular module permissions",
     "source": "V 08:30–09:38",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V06·codex"
     ],
     "resolvedBy": "the canonical row V06·codex",
     "archivedRef": null,
     "trace": "V06 \"Granular module permissions\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 08:30–09:38. Matched by the canonical row V06·codex to the live canonical row V06·codex \"Granular module permissions\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "platform",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "recorded-only"
    },
    {
     "id": "V07",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Worker verification without full portal use",
     "source": "V 02:37; 09:40; 25:57; 35:48–36:37",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V07·codex"
     ],
     "resolvedBy": "the canonical row V07·codex",
     "archivedRef": null,
     "trace": "V07 \"Worker verification without full portal use\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 02:37; 09:40; 25:57; 35:48–36:37. Matched by the canonical row V07·codex to the live canonical row V07·codex \"Worker verification without full portal use\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "time",
     "rowWaitingOn": "Omar",
     "status5": "needs-omar",
     "status5Word": "Needs Omar",
     "coveredBy": null
    },
    {
     "id": "V08",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Live active-project dashboard",
     "source": "V 03:40; 25:57",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V08·codex"
     ],
     "resolvedBy": "the canonical row V08·codex",
     "archivedRef": null,
     "trace": "V08 \"Live active-project dashboard\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 03:40; 25:57. Matched by the canonical row V08·codex to the live canonical row V08·codex \"Live active-project dashboard\" (baseline).",
     "plainIdCollision": null,
     "state": "covered",
     "rowState": "complete",
     "rowAccepted": true,
     "rowEvidence": "verified",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": "recorded-only"
    },
    {
     "id": "V09",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Cross-project form audit",
     "source": "V 03:40; 05:31",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V09·codex"
     ],
     "resolvedBy": "the canonical row V09·codex",
     "archivedRef": null,
     "trace": "V09 \"Cross-project form audit\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 03:40; 05:31. Matched by the canonical row V09·codex to the live canonical row V09·codex \"Cross-project form audit\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "partial",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "V10",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Job-type daily form templates",
     "source": "V 04:26–04:57; 24:23",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V10"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V10 \"Job-type daily form templates\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 04:26–04:57; 24:23. Matched by its own id to the live canonical row V10 \"Projects over 50 percent on bid vs actual: cost codes, labour types, bid / actual / remaining\" (tracker:walkthrough). Note: the plain id V10 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V10·codex \"Job-type daily form templates\" (blocked, evidence reported). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V10",
      "walkthroughTitle": "Projects over 50 percent on bid vs actual: cost codes, labour types, bid / actual / remaining",
      "codexRow": "V10·codex",
      "codexState": "blocked",
      "codexAccepted": false
     },
     "state": "reported",
     "rowState": "complete",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": null
    },
    {
     "id": "V11",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Labour budget and overtime warning widgets",
     "source": "V 05:00–05:31",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V11"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V11 \"Labour budget and overtime warning widgets\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 05:00–05:31. Matched by its own id to the live canonical row V11 \"Certs flagged several ways as they get close to expiring\" (tracker:walkthrough). Note: the plain id V11 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V11·codex \"Labour budget and overtime warning widgets\" (complete, evidence verified, accepted). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V11",
      "walkthroughTitle": "Certs flagged several ways as they get close to expiring",
      "codexRow": "V11·codex",
      "codexState": "complete",
      "codexAccepted": true
     },
     "state": "reported",
     "rowState": "complete",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": null
    },
    {
     "id": "V12",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Team broadcasts",
     "source": "V 05:31",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V12"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V12 \"Team broadcasts\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 05:31. Matched by its own id to the live canonical row V12 \"Employees nearing overtime, live at 32 hours\" (tracker:walkthrough). Note: the plain id V12 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V12·codex \"Team broadcasts\" (blocked, evidence reported). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V12",
      "walkthroughTitle": "Employees nearing overtime, live at 32 hours",
      "codexRow": "V12·codex",
      "codexState": "blocked",
      "codexAccepted": false
     },
     "state": "reported",
     "rowState": "complete",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "time",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": null
    },
    {
     "id": "V13",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Safety dashboard and corrective actions",
     "source": "V 05:31; 27:47",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V13"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V13 \"Safety dashboard and corrective actions\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 05:31; 27:47. Matched by its own id to the live canonical row V13 \"New projects on the dashboard\" (tracker:walkthrough). Note: the plain id V13 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V13·codex \"Safety dashboard and corrective actions\" (open, evidence reported). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V13",
      "walkthroughTitle": "New projects on the dashboard",
      "codexRow": "V13·codex",
      "codexState": "open",
      "codexAccepted": false
     },
     "state": "reported",
     "rowState": "complete",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": null
    },
    {
     "id": "V14",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Equipment exception dashboard",
     "source": "V 05:31",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V14"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V14 \"Equipment exception dashboard\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 05:31. Matched by its own id to the live canonical row V14 \"Time and materials and change orders on the dashboard\" (tracker:walkthrough). Note: the plain id V14 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V14·codex \"Equipment exception dashboard\" (blocked, evidence reported). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V14",
      "walkthroughTitle": "Time and materials and change orders on the dashboard",
      "codexRow": "V14·codex",
      "codexState": "blocked",
      "codexAccepted": false
     },
     "state": "reported",
     "rowState": "complete",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": null
    },
    {
     "id": "V15",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Scheduled and instant notifications",
     "source": "V 10:42–12:37",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V15"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V15 \"Scheduled and instant notifications\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 10:42–12:37. Matched by its own id to the live canonical row V15 \"Audit all forms in one place — \"all the safety meetings across all our branches in the last month\"\" (tracker:walkthrough). Note: the plain id V15 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V15·codex \"Scheduled and instant notifications\" (blocked, evidence reported). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V15",
      "walkthroughTitle": "Audit all forms in one place — \"all the safety meetings across all our branches in the last month\"",
      "codexRow": "V15·codex",
      "codexState": "blocked",
      "codexAccepted": false
     },
     "state": "reported",
     "rowState": "complete",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": null
    },
    {
     "id": "V16",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Operational exception summaries",
     "source": "V 10:42–12:37",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V16·codex"
     ],
     "resolvedBy": "the canonical row V16·codex",
     "archivedRef": null,
     "trace": "V16 \"Operational exception summaries\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 10:42–12:37. Matched by the canonical row V16·codex to the live canonical row V16·codex \"Operational exception summaries\" (baseline).",
     "plainIdCollision": null,
     "state": "open",
     "rowState": "partial",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "V17",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "QuickBooks Online employee import",
     "source": "V 08:09; 12:38–14:00",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V17"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V17 \"QuickBooks Online employee import\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 08:09; 12:38–14:00. Matched by its own id to the live canonical row V17 \"A map of where the projects are\" (tracker:walkthrough). Note: the plain id V17 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V17·codex \"QuickBooks Online employee import\" (blocked, evidence none). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V17",
      "walkthroughTitle": "A map of where the projects are",
      "codexRow": "V17·codex",
      "codexState": "blocked",
      "codexAccepted": false
     },
     "state": "reported",
     "rowState": "complete",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": null
    },
    {
     "id": "V18",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "CSV onboarding alternative",
     "source": "V 12:48",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V18"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V18 \"CSV onboarding alternative\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 12:48. Matched by its own id to the live canonical row V18 \"A map of where employees clock in from\" (tracker:walkthrough). Note: the plain id V18 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V18·codex \"CSV onboarding alternative\" (blocked, evidence reported). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V18",
      "walkthroughTitle": "A map of where employees clock in from",
      "codexRow": "V18·codex",
      "codexState": "blocked",
      "codexAccepted": false
     },
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "none",
     "rowGroup": "field",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "V19",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Employee QR certificate access",
     "source": "V 12:48–14:06",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V19"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V19 \"Employee QR certificate access\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 12:48–14:06. Matched by its own id to the live canonical row V19 \"The last injury form on the dashboard\" (tracker:walkthrough). Note: the plain id V19 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V19·codex \"Employee QR certificate access\" (complete, evidence verified, accepted). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V19",
      "walkthroughTitle": "The last injury form on the dashboard",
      "codexRow": "V19·codex",
      "codexState": "complete",
      "codexAccepted": true
     },
     "state": "reported",
     "rowState": "complete",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": null
    },
    {
     "id": "V20",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Targeted mobile training",
     "source": "V 14:06–15:45",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V20"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V20 \"Targeted mobile training\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 14:06–15:45. Matched by its own id to the live canonical row V20 \"Counts of employees, clients and users\" (tracker:walkthrough). Note: the plain id V20 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V20·codex \"Targeted mobile training\" (blocked, evidence none). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V20",
      "walkthroughTitle": "Counts of employees, clients and users",
      "codexRow": "V20·codex",
      "codexState": "blocked",
      "codexAccepted": false
     },
     "state": "reported",
     "rowState": "complete",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "projects",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": null
    },
    {
     "id": "V21",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Licensed training catalogue option",
     "source": "V 15:31",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V21"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V21 \"Licensed training catalogue option\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 15:31. Matched by its own id to the live canonical row V21 \"A safety dashboard: incidents, near miss, stop work\" (tracker:walkthrough). Note: the plain id V21 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V21·codex \"Licensed training catalogue option\" (blocked, evidence none). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V21",
      "walkthroughTitle": "A safety dashboard: incidents, near miss, stop work",
      "codexRow": "V21·codex",
      "codexState": "blocked",
      "codexAccepted": false
     },
     "state": "reported",
     "rowState": "complete",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": null
    },
    {
     "id": "V22",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Employee profile and skills filters",
     "source": "V 15:51–16:40",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V22"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V22 \"Employee profile and skills filters\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 15:51–16:40. Matched by its own id to the live canonical row V22 \"An incident reporting system that walks a claim through — property damage or injury\" (tracker:walkthrough). Note: the plain id V22 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V22·codex \"Employee profile and skills filters\" (complete, evidence verified, accepted). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V22",
      "walkthroughTitle": "An incident reporting system that walks a claim through — property damage or injury",
      "codexRow": "V22·codex",
      "codexState": "complete",
      "codexAccepted": true
     },
     "state": "open",
     "rowState": "partial",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "V23",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Training matrix",
     "source": "V 16:40",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V23"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V23 \"Training matrix\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 16:40. Matched by its own id to the live canonical row V23 \"Inspection management — your own or ready-made inspections\" (tracker:walkthrough). Note: the plain id V23 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V23·codex \"Training matrix\" (blocked, evidence reported). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V23",
      "walkthroughTitle": "Inspection management — your own or ready-made inspections",
      "codexRow": "V23·codex",
      "codexState": "blocked",
      "codexAccepted": false
     },
     "state": "open",
     "rowState": "partial",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "V24",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Certificate lifecycle and pack export",
     "source": "V 17:30–19:01",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V24"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V24 \"Certificate lifecycle and pack export\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 17:30–19:01. Matched by its own id to the live canonical row V24 \"A failed item assigned as a corrective action to a person; \"they'll remain on this board until they fix it\"\" (tracker:walkthrough). Note: the plain id V24 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V24·codex \"Certificate lifecycle and pack export\" (partial, evidence reported). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V24",
      "walkthroughTitle": "A failed item assigned as a corrective action to a person; \"they'll remain on this board until they fix it\"",
      "codexRow": "V24·codex",
      "codexState": "partial",
      "codexAccepted": false
     },
     "state": "reported",
     "rowState": "complete",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": null
    },
    {
     "id": "V25",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Asset QR inspection and SDS access",
     "source": "V 19:01",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V25"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V25 \"Asset QR inspection and SDS access\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 19:01. Matched by its own id to the live canonical row V25 \"Reports and stats for OSHA\" (tracker:walkthrough). Note: the plain id V25 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V25·codex \"Asset QR inspection and SDS access\" (complete, evidence verified, accepted). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V25",
      "walkthroughTitle": "Reports and stats for OSHA",
      "codexRow": "V25·codex",
      "codexState": "complete",
      "codexAccepted": true
     },
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "none",
     "rowGroup": "field",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "V26",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Equipment and stock master data",
     "source": "V 19:01",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V26"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V26 \"Equipment and stock master data\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 19:01. Matched by its own id to the live canonical row V26 \"An equipment dashboard: maintenance, corrective actions on assets, inspections due, rentals to call off, what is assigned where\" (tracker:walkthrough). Note: the plain id V26 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V26·codex \"Equipment and stock master data\" (complete, evidence verified, accepted). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V26",
      "walkthroughTitle": "An equipment dashboard: maintenance, corrective actions on assets, inspections due, rentals to call off, what is assigned where",
      "codexRow": "V26·codex",
      "codexState": "complete",
      "codexAccepted": true
     },
     "state": "open",
     "rowState": "partial",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "V27",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Failed-equipment inspection routing",
     "source": "V 19:01",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V27"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V27 \"Failed-equipment inspection routing\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 19:01. Matched by its own id to the live canonical row V27 \"A CRM: reach-outs, job walks, proposals sent, won / lost\" (tracker:walkthrough). Note: the plain id V27 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V27·codex \"Failed-equipment inspection routing\" (complete, evidence verified, accepted). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V27",
      "walkthroughTitle": "A CRM: reach-outs, job walks, proposals sent, won / lost",
      "codexRow": "V27·codex",
      "codexState": "complete",
      "codexAccepted": true
     },
     "state": "open",
     "rowState": "partial",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "projects",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "V28",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Project loadout requests and fulfillment",
     "source": "V 19:01–21:20",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V28"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V28 \"Project loadout requests and fulfillment\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 19:01–21:20. Matched by its own id to the live canonical row V28 \"A notification digest daily, twice a day if there are night shifts\" (tracker:walkthrough). Note: the plain id V28 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V28·codex \"Project loadout requests and fulfillment\" (open, evidence reported). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V28",
      "walkthroughTitle": "A notification digest daily, twice a day if there are night shifts",
      "codexRow": "V28·codex",
      "codexState": "open",
      "codexAccepted": false
     },
     "state": "reported",
     "rowState": "complete",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "platform",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": null
    },
    {
     "id": "V29",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Project inventory report",
     "source": "V 19:01–21:20",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V29"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V29 \"Project inventory report\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 19:01–21:20. Matched by its own id to the live canonical row V29 \"Instant notifications: property damage, injury, change order, no access\" (tracker:walkthrough). Note: the plain id V29 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V29·codex \"Project inventory report\" (complete, evidence verified, accepted). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V29",
      "walkthroughTitle": "Instant notifications: property damage, injury, change order, no access",
      "codexRow": "V29·codex",
      "codexState": "complete",
      "codexAccepted": true
     },
     "state": "open",
     "rowState": "partial",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "platform",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "V30",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Project import and complete project book",
     "source": "V 21:26",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V30"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V30 \"Project import and complete project book\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 21:26. Matched by its own id to the live canonical row V30 \"What the digest carries: certs near expiry with a link, permits near expiry, who is not doing paperwork correctly, warehouse orders pending, low inventory, scheduling conflicts\" (tracker:walkthrough). Note: the plain id V30 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V30·codex \"Project import and complete project book\" (complete, evidence verified, accepted). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V30",
      "walkthroughTitle": "What the digest carries: certs near expiry with a link, permits near expiry, who is not doing paperwork correctly, warehouse orders pending, low inventory, scheduling conflicts",
      "codexRow": "V30·codex",
      "codexState": "complete",
      "codexAccepted": true
     },
     "state": "reported",
     "rowState": "complete",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "platform",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": null
    },
    {
     "id": "V31",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Permit and required-credential controls",
     "source": "V 21:26; 25:57",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V31"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V31 \"Permit and required-credential controls\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 21:26; 25:57. Matched by its own id to the live canonical row V31 \"Send each employee his own schedule to his cell or email\" (tracker:walkthrough). Note: the plain id V31 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V31·codex \"Permit and required-credential controls\" (blocked, evidence reported). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V31",
      "walkthroughTitle": "Send each employee his own schedule to his cell or email",
      "codexRow": "V31·codex",
      "codexState": "blocked",
      "codexAccepted": false
     },
     "state": "open",
     "rowState": "partial",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "platform",
     "rowWaitingOn": "Both",
     "status5": "needs-both",
     "status5Word": "Needs both",
     "coveredBy": null
    },
    {
     "id": "V32",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Explicit credential override policy",
     "source": "V 25:57",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V32"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V32 \"Explicit credential override policy\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 25:57. Matched by its own id to the live canonical row V32 \"Connect to QuickBooks — Online\" (tracker:walkthrough). Note: the plain id V32 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V32·codex \"Explicit credential override policy\" (blocked, evidence reported). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V32",
      "walkthroughTitle": "Connect to QuickBooks — Online",
      "codexRow": "V32·codex",
      "codexState": "blocked",
      "codexAccepted": false
     },
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "none",
     "rowGroup": "money",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "V33",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Waste and project reference details",
     "source": "V 21:26",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V33"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V33 \"Waste and project reference details\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 21:26. Matched by its own id to the live canonical row V33 \"The integration brings the employees across, so there is no duplicate entry\" (tracker:walkthrough). Note: the plain id V33 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V33·codex \"Waste and project reference details\" (blocked, evidence reported). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V33",
      "walkthroughTitle": "The integration brings the employees across, so there is no duplicate entry",
      "codexRow": "V33·codex",
      "codexState": "blocked",
      "codexAccepted": false
     },
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "none",
     "rowGroup": "money",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "V34",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Estimate input and awarded-proposal transfer",
     "source": "V 21:26",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V34"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V34 \"Estimate input and awarded-proposal transfer\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 21:26. Matched by its own id to the live canonical row V34 \"Then click each employee to update their information\" (tracker:walkthrough). Note: the plain id V34 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V34·codex \"Estimate input and awarded-proposal transfer\" (blocked, evidence reported). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V34",
      "walkthroughTitle": "Then click each employee to update their information",
      "codexRow": "V34·codex",
      "codexState": "blocked",
      "codexAccepted": false
     },
     "state": "open",
     "rowState": "partial",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "V35",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Project documents and closeout pack",
     "source": "V 21:26; 36:37",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V35"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V35 \"Project documents and closeout pack\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 21:26; 36:37. Matched by its own id to the live canonical row V35 \"CSV import where there is no integration\" (tracker:walkthrough). Note: the plain id V35 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V35·codex \"Project documents and closeout pack\" (complete, evidence verified, accepted). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V35",
      "walkthroughTitle": "CSV import where there is no integration",
      "codexRow": "V35·codex",
      "codexState": "complete",
      "codexAccepted": true
     },
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "none",
     "rowGroup": "money",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "V36",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "HQ view across branches",
     "source": "V 24:23",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V36"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V36 \"HQ view across branches\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 24:23. Matched by its own id to the live canonical row V36 \"Every page works the same way: a big button adds, three dots customise — \"painting by number\"\" (tracker:walkthrough). Note: the plain id V36 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V36·codex \"HQ view across branches\" (blocked, evidence reported). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V36",
      "walkthroughTitle": "Every page works the same way: a big button adds, three dots customise — \"painting by number\"",
      "codexRow": "V36·codex",
      "codexState": "blocked",
      "codexAccepted": false
     },
     "state": "open",
     "rowState": "partial",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "platform",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "V37",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Start-day checklist",
     "source": "V 24:23–25:39",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V37"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V37 \"Start-day checklist\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 24:23–25:39. Matched by its own id to the live canonical row V37 \"A unique QR code created for a person the moment they are created\" (tracker:walkthrough). Note: the plain id V37 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V37·codex \"Start-day checklist\" (blocked, evidence reported). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V37",
      "walkthroughTitle": "A unique QR code created for a person the moment they are created",
      "codexRow": "V37·codex",
      "codexState": "blocked",
      "codexAccepted": false
     },
     "state": "reported",
     "rowState": "complete",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": null
    },
    {
     "id": "V38",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Previous-day or scheduled crew reuse",
     "source": "V 25:57",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V38"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V38 \"Previous-day or scheduled crew reuse\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 25:57. Matched by its own id to the live canonical row V38 \"An inspector scans the hard hat and sees that man's active certificates\" (tracker:walkthrough). Note: the plain id V38 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V38·codex \"Previous-day or scheduled crew reuse\" (complete, evidence verified, accepted). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V38",
      "walkthroughTitle": "An inspector scans the hard hat and sees that man's active certificates",
      "codexRow": "V38·codex",
      "codexState": "complete",
      "codexAccepted": true
     },
     "state": "reported",
     "rowState": "complete",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": null
    },
    {
     "id": "V39",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Bulk crew time and cost codes",
     "source": "V 25:57; 27:47",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V39"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V39 \"Bulk crew time and cost codes\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 25:57; 27:47. Matched by its own id to the live canonical row V39 \"The inspector sees only active certs; the employee sees the same page including missing and expired, \"so it's on them and the company\"\" (tracker:walkthrough). Note: the plain id V39 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V39·codex \"Bulk crew time and cost codes\" (complete, evidence verified, accepted). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V39",
      "walkthroughTitle": "The inspector sees only active certs; the employee sees the same page including missing and expired, \"so it's on them and the company\"",
      "codexRow": "V39·codex",
      "codexState": "complete",
      "codexAccepted": true
     },
     "state": "open",
     "rowState": "partial",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "V40",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Location verification request",
     "source": "V 25:57",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V40"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V40 \"Location verification request\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 25:57. Matched by its own id to the live canonical row V40 \"Emergency details on the profile\" (tracker:walkthrough). Note: the plain id V40 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V40·codex \"Location verification request\" (blocked, evidence reported). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V40",
      "walkthroughTitle": "Emergency details on the profile",
      "codexRow": "V40·codex",
      "codexState": "blocked",
      "codexAccepted": false
     },
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "none",
     "rowGroup": "field",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "V41",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Daily JHA reuse with fresh review",
     "source": "V 27:47",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V41"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V41 \"Daily JHA reuse with fresh review\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 27:47. Matched by its own id to the live canonical row V41 \"Training pushed to the whole company or a division, onto each phone, entered with a secret PIN, taken in his own language\" (tracker:walkthrough). Note: the plain id V41 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V41·codex \"Daily JHA reuse with fresh review\" (blocked, evidence reported). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V41",
      "walkthroughTitle": "Training pushed to the whole company or a division, onto each phone, entered with a secret PIN, taken in his own language",
      "codexRow": "V41·codex",
      "codexState": "blocked",
      "codexAccepted": false
     },
     "state": "open",
     "rowState": "open",
     "rowAccepted": false,
     "rowEvidence": "none",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "V42",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "JHA task and hazard library",
     "source": "V 27:47",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V42"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V42 \"JHA task and hazard library\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 27:47. Matched by its own id to the live canonical row V42 \"600+ Got Safety training videos with a quiz, at $4 per employee per month\" (tracker:walkthrough). Note: the plain id V42 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V42·codex \"JHA task and hazard library\" (blocked, evidence reported). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V42",
      "walkthroughTitle": "600+ Got Safety training videos with a quiz, at $4 per employee per month",
      "codexRow": "V42·codex",
      "codexState": "blocked",
      "codexAccepted": false
     },
     "state": "open",
     "rowState": "open",
     "rowAccepted": false,
     "rowEvidence": "none",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "V43",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Crew safety acknowledgment",
     "source": "V 27:47; 35:48–36:37",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V43"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V43 \"Crew safety acknowledgment\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 27:47; 35:48–36:37. Matched by its own id to the live canonical row V43 \"A passed training produces a branded certificate tracked like any other cert, with the same expiry warning\" (tracker:walkthrough). Note: the plain id V43 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V43·codex \"Crew safety acknowledgment\" (complete, evidence verified, accepted). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V43",
      "walkthroughTitle": "A passed training produces a branded certificate tracked like any other cert, with the same expiry warning",
      "codexRow": "V43·codex",
      "codexState": "complete",
      "codexAccepted": true
     },
     "state": "open",
     "rowState": "partial",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "V44",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Daily report content and photo evidence",
     "source": "V 27:47",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V44"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V44 \"Daily report content and photo evidence\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 27:47. Matched by its own id to the live canonical row V44 \"Profile fields: employee number, name, cell, temp labour, default cost code / position, office or division\" (tracker:walkthrough). Note: the plain id V44 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V44·codex \"Daily report content and photo evidence\" (complete, evidence verified, accepted). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V44",
      "walkthroughTitle": "Profile fields: employee number, name, cell, temp labour, default cost code / position, office or division",
      "codexRow": "V44·codex",
      "codexState": "complete",
      "codexAccepted": true
     },
     "state": "open",
     "rowState": "partial",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "V45",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Containment logs",
     "source": "V 27:47",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V45"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V45 \"Containment logs\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 27:47. Matched by its own id to the live canonical row V45 \"Skills on the profile; dispatchers filter by skill; a skill icon on the project\" (tracker:walkthrough). Note: the plain id V45 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V45·codex \"Containment logs\" (blocked, evidence none). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V45",
      "walkthroughTitle": "Skills on the profile; dispatchers filter by skill; a skill icon on the project",
      "codexRow": "V45·codex",
      "codexState": "blocked",
      "codexAccepted": false
     },
     "state": "open",
     "rowState": "blocked",
     "rowAccepted": false,
     "rowEvidence": "none",
     "rowGroup": "field",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "V46",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Form completeness indicators",
     "source": "V 27:47",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V46"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V46 \"Form completeness indicators\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 27:47. Matched by its own id to the live canonical row V46 \"A training matrix: who has what certs and whether they have the right ones\" (tracker:walkthrough). Note: the plain id V46 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V46·codex \"Form completeness indicators\" (blocked, evidence reported). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V46",
      "walkthroughTitle": "A training matrix: who has what certs and whether they have the right ones",
      "codexRow": "V46·codex",
      "codexState": "blocked",
      "codexAccepted": false
     },
     "state": "open",
     "rowState": "partial",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "V47",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "End-of-day time and injury verification",
     "source": "V 27:47–32:09",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V47"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V47 \"End-of-day time and injury verification\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 27:47–32:09. Matched by its own id to the live canonical row V47 \"Write-ups, permissions, trainings, documents and emergency contact on the person\" (tracker:walkthrough). Note: the plain id V47 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V47·codex \"End-of-day time and injury verification\" (complete, evidence verified, accepted). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V47",
      "walkthroughTitle": "Write-ups, permissions, trainings, documents and emergency contact on the person",
      "codexRow": "V47·codex",
      "codexState": "complete",
      "codexAccepted": true
     },
     "state": "open",
     "rowState": "partial",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "V48",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Orientation and onboarding materials",
     "source": "V 32:09–32:27",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V48"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V48 \"Orientation and onboarding materials\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 32:09–32:27. Matched by its own id to the live canonical row V48 \"Define the list of cert types (three dots → Cert names)\" (tracker:walkthrough). Note: the plain id V48 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V48·codex \"Orientation and onboarding materials\" (blocked, evidence none). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V48",
      "walkthroughTitle": "Define the list of cert types (three dots → Cert names)",
      "codexRow": "V48·codex",
      "codexState": "blocked",
      "codexAccepted": false
     },
     "state": "open",
     "rowState": "open",
     "rowAccepted": false,
     "rowEvidence": "none",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": null
    },
    {
     "id": "V49",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Feedback and release information",
     "source": "V 33:12",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V49"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V49 \"Feedback and release information\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 33:12. Matched by its own id to the live canonical row V49 \"Add a certificate: pick the type, valid from, expiry, which employee, take a picture of it, upload\" (tracker:walkthrough). Note: the plain id V49 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V49·codex \"Feedback and release information\" (complete, evidence verified, accepted). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V49",
      "walkthroughTitle": "Add a certificate: pick the type, valid from, expiry, which employee, take a picture of it, upload",
      "codexRow": "V49·codex",
      "codexState": "complete",
      "codexAccepted": true
     },
     "state": "reported",
     "rowState": "complete",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": null
    },
    {
     "id": "V50",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Optional takeoff and estimating exploration",
     "source": "V 34:36–34:47",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V50"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V50 \"Optional takeoff and estimating exploration\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 34:36–34:47. Matched by its own id to the live canonical row V50 \"Certs listed alphabetically\" (tracker:walkthrough). Note: the plain id V50 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V50·codex \"Optional takeoff and estimating exploration\" (blocked, evidence none). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V50",
      "walkthroughTitle": "Certs listed alphabetically",
      "codexRow": "V50·codex",
      "codexState": "blocked",
      "codexAccepted": false
     },
     "state": "open",
     "rowState": "partial",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "V51",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Scheduling and resource outlook",
     "source": "V 34:47; 36:37",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V51"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V51 \"Scheduling and resource outlook\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 34:47; 36:37. Matched by its own id to the live canonical row V51 \"A renewals list — \"all the ones that need to be renewed\"\" (tracker:walkthrough). Note: the plain id V51 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V51·codex \"Scheduling and resource outlook\" (complete, evidence verified, accepted). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V51",
      "walkthroughTitle": "A renewals list — \"all the ones that need to be renewed\"",
      "codexRow": "V51·codex",
      "codexState": "complete",
      "codexAccepted": true
     },
     "state": "reported",
     "rowState": "complete",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": null
    },
    {
     "id": "V52",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Weekly payroll review and export",
     "source": "V 36:37–39:11",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V52"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V52 \"Weekly payroll review and export\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 36:37–39:11. Matched by its own id to the live canonical row V52 \"Renew a cert: new valid-from and expiry; the new one becomes active, the old one is archived forever\" (tracker:walkthrough). Note: the plain id V52 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V52·codex \"Weekly payroll review and export\" (blocked, evidence reported). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V52",
      "walkthroughTitle": "Renew a cert: new valid-from and expiry; the new one becomes active, the old one is archived forever",
      "codexRow": "V52·codex",
      "codexState": "blocked",
      "codexAccepted": false
     },
     "state": "reported",
     "rowState": "complete",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": null
    },
    {
     "id": "V53",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "PM approval gate and history",
     "source": "V 36:37–39:11",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V53"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V53 \"PM approval gate and history\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 36:37–39:11. Matched by its own id to the live canonical row V53 \"Export a PDF pack of certs to send to anyone\" (tracker:walkthrough). Note: the plain id V53 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V53·codex \"PM approval gate and history\" (blocked, evidence none). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V53",
      "walkthroughTitle": "Export a PDF pack of certs to send to anyone",
      "codexRow": "V53·codex",
      "codexState": "blocked",
      "codexAccepted": false
     },
     "state": "open",
     "rowState": "open",
     "rowAccepted": false,
     "rowEvidence": "none",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    },
    {
     "id": "V54",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "SMS failure detection and recovery",
     "source": "V 35:48–36:37",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V54"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V54 \"SMS failure detection and recovery\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 35:48–36:37. Matched by its own id to the live canonical row V54 \"The archive is visible forever\" (tracker:walkthrough). Note: the plain id V54 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V54·codex \"SMS failure detection and recovery\" (blocked, evidence none). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V54",
      "walkthroughTitle": "The archive is visible forever",
      "codexRow": "V54·codex",
      "codexState": "blocked",
      "codexAccepted": false
     },
     "state": "reported",
     "rowState": "complete",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "completed",
     "status5Word": "Completed",
     "coveredBy": null
    },
    {
     "id": "V55",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Sizing baseline and account types",
     "source": "V 39:36–40:22",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V55"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V55 \"Sizing baseline and account types\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 39:36–40:22. Matched by its own id to the live canonical row V55 \"An Inventory page with Add item (excavator, skid steer, sprayers)\" (tracker:walkthrough). Note: the plain id V55 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V55·codex \"Sizing baseline and account types\" (blocked, evidence none). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V55",
      "walkthroughTitle": "An Inventory page with Add item (excavator, skid steer, sprayers)",
      "codexRow": "V55·codex",
      "codexState": "blocked",
      "codexAccepted": false
     },
     "state": "open",
     "rowState": "partial",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "The owner",
     "status5": "needs-ali",
     "status5Word": "Needs Ali",
     "coveredBy": null
    },
    {
     "id": "V56",
     "kind": "V",
     "kindWords": "Fieldflo meeting",
     "title": "Training and support commitments",
     "source": "V 32:27; 41:24",
     "evidence": "Fieldflo meeting; stated or presented, subject to the evidence limits in the notes",
     "canonical": [
      "V56"
     ],
     "resolvedBy": "its own id",
     "archivedRef": null,
     "trace": "V56 \"Training and support commitments\" comes from the Fieldflo meeting notes (profile/Codex_Requirements_and_Notes_2026-10-04.md §Fieldflo meeting), inventory source V 32:27; 41:24. Matched by its own id to the live canonical row V56 \"A QR code on every asset; an operator scans it and inspects it without logging into the platform\" (tracker:walkthrough). Note: the plain id V56 is also the tracker's own walkthrough numbering; the Codex item itself is carried by the canonical row V56·codex \"Training and support commitments\" (blocked, evidence none). The pinned rule keeps the plain-id match; this note is the flag.",
     "plainIdCollision": {
      "walkthroughRow": "V56",
      "walkthroughTitle": "A QR code on every asset; an operator scans it and inspects it without logging into the platform",
      "codexRow": "V56·codex",
      "codexState": "blocked",
      "codexAccepted": false
     },
     "state": "open",
     "rowState": "partial",
     "rowAccepted": false,
     "rowEvidence": "reported",
     "rowGroup": "field",
     "rowWaitingOn": "none",
     "status5": "not-done",
     "status5Word": "Not done",
     "coveredBy": null
    }
   ],
   "traced": [
    {
     "id": "V01",
     "title": "Roll out across five companies",
     "inventorySource": "V 02:01",
     "requirementsHeading": {
      "line": 1111,
      "text": "#### V01 Roll out across five companies\r"
     },
     "requirementLines": [
      {
       "line": 1113,
       "text": "Evidence: Fieldflo meeting; stated or presented, subject to the evidence limits in the notes. Source: V 02:01."
      },
      {
       "line": 1115,
       "text": "Plan for the five-company deployment the owner describes, with company-specific configuration and controlled consolidated views."
      },
      {
       "line": 1117,
       "text": "Acceptance check: A user assigned to one company cannot access another; an authorized HQ user can consolidate selected companies."
      }
     ],
     "meetingNoteLines": [
      {
       "line": 115,
       "text": "At 02:01 the owner explains that previous programs were too difficult for workers and managers on site. Some used them and some did not, leaving processes inconsistent. He says a successful solution would be incorporated across five companies. This establishes usability and adoption as explicit requirements, and a multi-company ambition. It does not establish the legal entities, shared data boundaries or rollout order. See V01 and V02."
      }
     ],
     "canonical": [],
     "archived": "V01·codex",
     "state": "unmapped",
     "reason": "unresolved — gap: the only row carrying this inventory id is the archived V01·codex (cancelled-excluded; cancelled-by-Omar-2026-09-15; Omar 2026-09-15 (Makki Demolition only; vault/topics/decisions/one company only.md) confirmed on the merged row 2026-10-24T03:03Z; the row's cancelled block and flag cancellation-applied-v2.3 in materials/canonical/2026-10-23_canonical-tasks.v2.3.json); no live canonical row covers it, so it is not counted as covered"
    },
    {
     "id": "V02",
     "title": "Make field adoption measurable",
     "inventorySource": "V 02:01; 10:37",
     "requirementsHeading": {
      "line": 1119,
      "text": "#### V02 Make field adoption measurable\r"
     },
     "requirementLines": [
      {
       "line": 1121,
       "text": "Evidence: Fieldflo meeting; stated or presented, subject to the evidence limits in the notes. Source: V 02:01; 10:37."
      },
      {
       "line": 1123,
       "text": "Earlier products failed because workers and managers found them difficult and adoption was inconsistent. Preserve a short, consistent field workflow."
      },
      {
       "line": 1125,
       "text": "Acceptance check: Representative managers and workers complete start day, forms and end day in a usability pilot; adoption and missing submissions are visible."
      }
     ],
     "meetingNoteLines": [
      {
       "line": 115,
       "text": "At 02:01 the owner explains that previous programs were too difficult for workers and managers on site. Some used them and some did not, leaving processes inconsistent. He says a successful solution would be incorporated across five companies. This establishes usability and adoption as explicit requirements, and a multi-company ambition. It does not establish the legal entities, shared data boundaries or rollout order. See V01 and V02."
      }
     ],
     "canonical": [
      "V02·codex"
     ],
     "archived": null,
     "state": "open",
     "reason": "the canonical row V02·codex carries the same inventory id and title (\"Make field adoption measurable\", idSpace codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md), group baseline); it is the inventory item itself in the canonical accounting — state blocked, evidence none, not accepted, on card mgmt-ux → Platform, roles, agents and release"
    },
    {
     "id": "V03",
     "title": "Multilingual interface and dictation",
     "inventorySource": "V 02:37; 24:23; 27:47",
     "requirementsHeading": {
      "line": 1127,
      "text": "#### V03 Multilingual interface and dictation\r"
     },
     "requirementLines": [
      {
       "line": 1129,
       "text": "Evidence: Fieldflo meeting; stated or presented, subject to the evidence limits in the notes. Source: V 02:37; 24:23; 27:47."
      },
      {
       "line": 1131,
       "text": "Evaluate translated field screens and spoken daily-report entry in the workforce's languages. The vendor's any-language claim requires testing."
      },
      {
       "line": 1133,
       "text": "Acceptance check: Agreed languages work for entry, review and acknowledgment; original content and corrections remain available."
      }
     ],
     "meetingNoteLines": [],
     "canonical": [
      "V03·codex"
     ],
     "archived": null,
     "state": "open",
     "reason": "the canonical row V03·codex carries the same inventory id and title (\"Multilingual interface and dictation\", idSpace codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md), group baseline); it is the inventory item itself in the canonical accounting — state blocked, evidence reported, not accepted, on card crew-lang → Field day and crew"
    },
    {
     "id": "V04",
     "title": "Company branding",
     "inventorySource": "V 02:37; 10:42; 15:31",
     "requirementsHeading": {
      "line": 1135,
      "text": "#### V04 Company branding\r"
     },
     "requirementLines": [
      {
       "line": 1137,
       "text": "Evidence: Fieldflo meeting; stated or presented, subject to the evidence limits in the notes. Source: V 02:37; 10:42; 15:31."
      },
      {
       "line": 1139,
       "text": "Support selected company branding on the portal, notifications and generated training certificates."
      },
      {
       "line": 1141,
       "text": "Acceptance check: Switch company and confirm the appropriate identity appears on its outward documents."
      }
     ],
     "meetingNoteLines": [],
     "canonical": [
      "V04·codex"
     ],
     "archived": null,
     "state": "open",
     "reason": "the canonical row V04·codex carries the same inventory id and title (\"Company branding\", idSpace codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md), group baseline); it is the inventory item itself in the canonical accounting — state open, evidence reported, not accepted, on card office-company → Platform, roles, agents and release"
    },
    {
     "id": "V05",
     "title": "Payroll-only accountant role",
     "inventorySource": "V 08:14–09:38",
     "requirementsHeading": {
      "line": 1143,
      "text": "#### V05 Payroll-only accountant role\r"
     },
     "requirementLines": [
      {
       "line": 1145,
       "text": "Evidence: Fieldflo meeting; stated or presented, subject to the evidence limits in the notes. Source: V 08:14–09:38."
      },
      {
       "line": 1147,
       "text": "The owner explicitly requests accountant access limited to payroll. Keep this separate from R08's restricted billing role."
      },
      {
       "line": 1149,
       "text": "Acceptance check: A payroll-only user reviews approved hours and permitted payroll data but cannot open unrelated modules or job-profit reports."
      }
     ],
     "meetingNoteLines": [],
     "canonical": [
      "V05·codex"
     ],
     "archived": null,
     "state": "covered",
     "reason": "the canonical row V05·codex carries the same inventory id and title (\"Payroll-only accountant role\", idSpace codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md), group baseline); it is the inventory item itself in the canonical accounting — state complete, evidence verified, accepted (demo), on card fin-payroll → Time and payroll"
    },
    {
     "id": "V06",
     "title": "Granular module permissions",
     "inventorySource": "V 08:30–09:38",
     "requirementsHeading": {
      "line": 1151,
      "text": "#### V06 Granular module permissions\r"
     },
     "requirementLines": [
      {
       "line": 1153,
       "text": "Evidence: Fieldflo meeting; stated or presented, subject to the evidence limits in the notes. Source: V 08:30–09:38."
      },
      {
       "line": 1155,
       "text": "The demo presents per-tab employee roles, with supervisors limited to relevant projects, forms and photos, and labourers without portal roles."
      },
      {
       "line": 1157,
       "text": "Acceptance check: Test view, edit, export and assistant access for each assigned module and project scope."
      }
     ],
     "meetingNoteLines": [],
     "canonical": [
      "V06·codex"
     ],
     "archived": null,
     "state": "covered",
     "reason": "the canonical row V06·codex carries the same inventory id and title (\"Granular module permissions\", idSpace codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md), group baseline); it is the inventory item itself in the canonical accounting — state complete, evidence verified, accepted (demo), on card mgmt-roles → Platform, roles, agents and release"
    },
    {
     "id": "V07",
     "title": "Worker verification without full portal use",
     "inventorySource": "V 02:37; 09:40; 25:57; 35:48–36:37",
     "requirementsHeading": {
      "line": 1159,
      "text": "#### V07 Worker verification without full portal use\r"
     },
     "requirementLines": [
      {
       "line": 1161,
       "text": "Evidence: Fieldflo meeting; stated or presented, subject to the evidence limits in the notes. Source: V 02:37; 09:40; 25:57; 35:48–36:37."
      },
      {
       "line": 1163,
       "text": "Evaluate SMS-based labourer verification without requiring a full portal account. Successful receipt alone is insufficient; the demo links failed."
      },
      {
       "line": 1165,
       "text": "Acceptance check: A real recipient opens the intended company link, reads the correct record and submits an attributable response."
      }
     ],
     "meetingNoteLines": [],
     "canonical": [
      "V07·codex"
     ],
     "archived": null,
     "state": "open",
     "reason": "the canonical row V07·codex carries the same inventory id and title (\"Worker verification without full portal use\", idSpace codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md), group baseline); it is the inventory item itself in the canonical accounting — state blocked, evidence reported, not accepted, on card office-textline → Time and payroll"
    },
    {
     "id": "V08",
     "title": "Live active-project dashboard",
     "inventorySource": "V 03:40; 25:57",
     "requirementsHeading": {
      "line": 1167,
      "text": "#### V08 Live active-project dashboard\r"
     },
     "requirementLines": [
      {
       "line": 1169,
       "text": "Evidence: Fieldflo meeting; stated or presented, subject to the evidence limits in the notes. Source: V 03:40; 25:57."
      },
      {
       "line": 1171,
       "text": "Clocking in a crew should make the project active and expose assigned workers and current forms to authorized office staff."
      },
      {
       "line": 1173,
       "text": "Acceptance check: Starting a crew updates the dashboard and links to the correct day's records within the agreed freshness target."
      }
     ],
     "meetingNoteLines": [
      {
       "line": 216,
       "text": "Dashboard/notification candidates F01–F08 are expanded by V08–V16; time/payroll and job-costing candidates are expanded by V11, V17, V30–V34, V38–V40, V47 and V52–V53; warehouse/equipment candidates by V25–V29; credentials/HR/training by V19–V24; forms/safety/documents by V09–V10, V31–V35 and V41–V46; scheduling by V38 and V51; CRM/proposals by the 05:31 and 21:26 discussion. Consult the named F item as well as this thematic mapping before merging backlog entries."
      }
     ],
     "canonical": [
      "V08·codex"
     ],
     "archived": null,
     "state": "covered",
     "reason": "the canonical row V08·codex carries the same inventory id and title (\"Live active-project dashboard\", idSpace codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md), group baseline); it is the inventory item itself in the canonical accounting — state complete, evidence verified, accepted (demo), on card mgmt-dash → Projects, schedule and sales"
    },
    {
     "id": "V09",
     "title": "Cross-project form audit",
     "inventorySource": "V 03:40; 05:31",
     "requirementsHeading": {
      "line": 1175,
      "text": "#### V09 Cross-project form audit\r"
     },
     "requirementLines": [
      {
       "line": 1177,
       "text": "Evidence: Fieldflo meeting; stated or presented, subject to the evidence limits in the notes. Source: V 03:40; 05:31."
      },
      {
       "line": 1179,
       "text": "Audit daily reports, containment logs and safety meetings across date ranges and branches without opening every project."
      },
      {
       "line": 1181,
       "text": "Acceptance check: A filtered report includes all relevant forms and distinguishes complete, missing and problematic submissions."
      }
     ],
     "meetingNoteLines": [
      {
       "line": 216,
       "text": "Dashboard/notification candidates F01–F08 are expanded by V08–V16; time/payroll and job-costing candidates are expanded by V11, V17, V30–V34, V38–V40, V47 and V52–V53; warehouse/equipment candidates by V25–V29; credentials/HR/training by V19–V24; forms/safety/documents by V09–V10, V31–V35 and V41–V46; scheduling by V38 and V51; CRM/proposals by the 05:31 and 21:26 discussion. Consult the named F item as well as this thematic mapping before merging backlog entries."
      }
     ],
     "canonical": [
      "V09·codex"
     ],
     "archived": null,
     "state": "open",
     "reason": "the canonical row V09·codex carries the same inventory id and title (\"Cross-project form audit\", idSpace codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md), group baseline); it is the inventory item itself in the canonical accounting — state partial, evidence reported, not accepted, on card mgmt-forms → Projects, schedule and sales"
    }
   ],
   "acceptanceReading": {
    "superseded": "2026-11-07 (requirements-tasks-b2, Omar 06:48Z Telegram 2118): the lens no longer reads the acceptance method; this block is the earlier reading, kept for history and printed only inside the lens's evidence diagnostics",
    "rule": "covered by ruling = the mapped canonical row is accepted and a grade file that tested the item carries a passing verdict for its id · recorded accepted, not ruled = the mapped row is recorded accepted with no such ruling; recorded acceptance is historical, it is not verified coverage and not launch-ready · covered = either of the two · reported = the mapped row is complete by claim, not graded · open = the mapped row is partial, open, review or blocked · unmapped = no live canonical row carries the id, its ·codex id or its alias",
    "percent": 21,
    "percentRuled": 3,
    "counts": {
     "covered": 34,
     "reported": 19,
     "open": 108,
     "unmapped": 1,
     "coveredRuled": 5,
     "coveredRecordedOnly": 29
    }
   },
   "plainIdCollisions": {
    "count": 46,
    "ids": [
     "V10",
     "V11",
     "V12",
     "V13",
     "V14",
     "V15",
     "V17",
     "V18",
     "V19",
     "V20",
     "V21",
     "V22",
     "V23",
     "V24",
     "V25",
     "V26",
     "V27",
     "V28",
     "V29",
     "V30",
     "V31",
     "V32",
     "V33",
     "V34",
     "V35",
     "V36",
     "V37",
     "V38",
     "V39",
     "V40",
     "V41",
     "V42",
     "V43",
     "V44",
     "V45",
     "V46",
     "V47",
     "V48",
     "V49",
     "V50",
     "V51",
     "V52",
     "V53",
     "V54",
     "V55",
     "V56"
    ],
    "words": "for these inventory ids the plain id also names one of the tracker's own walkthrough rows (a different item); the pinned matching rule keeps the plain-id match and each row prints the canonical ·codex row that carries the Codex item itself",
    "statesIfCodexRowUsed": {
     "covered": 16,
     "reported": 0,
     "open": 30,
     "unmapped": 0
    }
   }
  },
  "readiness": {
   "demo": 563,
   "design": 3,
   "production": 0,
   "over": 566,
   "set": "every live row of this page, recounted when the page is built",
   "canonical": {
    "demo": 560,
    "design": 3,
    "production": 0,
    "over": 563,
    "set": "the 563 rows of the canonical accounting v2.4, which is a different set and is never read as this page's"
   },
   "words": "Demo acceptance only — production-ready 0, because the real-data condition is not met: no row has production scope. Over the 566 live rows of this page: 563 demo · 3 design · 0 production; over the 563 rows of the canonical accounting v2.4, a different set: 560 demo · 3 design · 0 production. Launch readiness is a separate finish line and is not reached."
  },
  "queues": {
   "omar": 66,
   "ali": 124,
   "both": 16,
   "canonicalField": {
    "omar": 102,
    "ali": 124,
    "both": 17
   },
   "resolvedByDecision": 39,
   "resolvedIds": [
    "D06",
    "F02",
    "F32",
    "F33",
    "F52",
    "F53",
    "F55",
    "F56",
    "GL-024",
    "GL-037",
    "GL-043",
    "GL-054",
    "GL-065",
    "GL-072",
    "GL-073",
    "GL-076",
    "M-ACK",
    "M-DASH",
    "M-DOC",
    "M-DRAW",
    "M-FEED",
    "M-MULTI",
    "M-ONB",
    "M-TRAIN",
    "O-DECISIONS",
    "O-INSTALL",
    "O-JOBS",
    "O-QUALITY",
    "O-UPDATE",
    "O1",
    "R03",
    "R22",
    "V14·codex",
    "V20·codex",
    "V23·codex",
    "V36·codex",
    "V41·codex",
    "V48·codex",
    "V56·codex"
   ],
   "inclusive": {
    "omar": 82,
    "ali": 140,
    "shared": 16
   },
   "words": "three exclusive queues, one queue each — a row carries one owner field, so it sits in exactly one of Omar's, the owner's or both's and the three never overlap; the inclusive reading counts the shared rows on both sides; the rows' own owner field after the dated decisions on record are applied, the canonical field's queue printed beside"
  },
  "workSplit": {
   "completed": 243,
   "notDone": 116,
   "needsOmar": 66,
   "needsAli": 124,
   "needsBoth": 16,
   "omarTotal": 82,
   "aliTotal": 140,
   "shared": 16,
   "trackerWideNotDone": 116,
   "aiRemaining": 195,
   "aiTotal": 436,
   "aiRemainingNotDone": 95,
   "aiRemainingInputDependent": 100,
   "rule": "waiting on Omar = Needs Omar + Needs both; waiting on the owner = Needs Ali + Needs both; shared = Needs both (counted on both sides); the hive's own remaining work = the remainder of the AI-executable set against that set's own denominator, split into the rows it can finish on demo data and the rows waiting on an answer; the tracker-wide Not done is a separate partition figure over every live row and is never that remainder; Completed = reported finished on demo data, the shared and input rows included — never AI-only; the final-review counts in the method block are a separate reading and never a completion figure",
   "words": "Who the remaining work waits on: waiting on Omar 82 (66 his alone + 16 shared) · waiting on the owner 140 (124 his alone + 16 shared) · AI work remaining 195 of 436 — the AI-executable set against its own denominator, 95 Not done plus 100 waiting on an answer · Completed 243 — finished on demo data, the shared and input rows counted there too, never AI-only work · Tracker-wide Not done 116 — every live row that waits on nobody's word, counted over all 566 live rows and never the figure above"
  },
  "decisions": {
   "rule": "a row named by a dated decision on record (omar_questions.json decisions[]) has its owner field resolved: canonicalWaitingOn keeps the canonical field, waitingOn reads none, the five-word status follows the canonical state, decisionSource names the page, log entry or Telegram message with its date; the ids never sit under an Omar question again; a decision of kind released (v2.3.0) records that the row never depended on the decision its question asks — it leaves the queue as build work, nothing is inferred",
   "count": 39,
   "ids": [
    "D06",
    "F02",
    "F32",
    "F33",
    "F52",
    "F53",
    "F55",
    "F56",
    "GL-024",
    "GL-037",
    "GL-043",
    "GL-054",
    "GL-065",
    "GL-072",
    "GL-073",
    "GL-076",
    "M-ACK",
    "M-DASH",
    "M-DOC",
    "M-DRAW",
    "M-FEED",
    "M-MULTI",
    "M-ONB",
    "M-TRAIN",
    "O-DECISIONS",
    "O-INSTALL",
    "O-JOBS",
    "O-QUALITY",
    "O-UPDATE",
    "O1",
    "R03",
    "R22",
    "V14·codex",
    "V20·codex",
    "V23·codex",
    "V36·codex",
    "V41·codex",
    "V48·codex",
    "V56·codex"
   ],
   "list": [
    {
     "key": "seats",
     "ids": [
      "O3",
      "O-JOBS"
     ],
     "decidedAt": "2026-10-03T00:31Z",
     "by": "Omar",
     "words": "2. Yes approve",
     "effect": "the Collector (nightly) and Ticket Keeper (Monday) schedules are approved and both fire; a built, firing schedule is not an open choice — O3 routes by its own master-list status, O-JOBS by its canonical state",
     "source": "Omar 2026-10-03 00:31 UTC \"2. Yes approve\" (vault/topics/people/Omar.md; GO_LIVE.md rows GL-054 and GL-055, crons set 00:32 UTC); main CHECKER ORDER 2026-11-07T06:52Z carrying Omar 06:48Z Telegram 2118 (hive/EXECUTION_LOG.md)"
    },
    {
     "key": "documents",
     "ids": [
      "D06",
      "F52",
      "F53",
      "F56",
      "M-DOC",
      "M-DRAW"
     ],
     "decidedAt": "2026-10-06T16:43Z",
     "by": "Omar",
     "words": "Omar authorizes implementation now (6 Oct): proceed with the confirmed fixes and remaining agreed work from our reviews, on YOUR existing Makki runtime.",
     "effect": "build time only — authorised implementation; each row routes by its canonical state (Not done until the hive reports it finished)",
     "source": "Omar 2026-10-06 16:43 UTC — vault/topics/decisions/implementation now, on your runtime.md (implementation against the requirement ids is authorised and does not come back for approval; demo fixes do not wait on hosting, auth or data decisions); re-stated by Omar 2026-11-07 06:48Z Telegram 2118"
    },
    {
     "key": "deck",
     "ids": [
      "O5",
      "GL-072"
     ],
     "decidedAt": "2026-10-10",
     "by": "Omar",
     "words": "redesign the presentation from scratch — the old deck is reference only",
     "effect": "the slide-by-slide pass and the two slide notes belong to the old deck, reference only since the redesign order; the no-price rule stands for the new deck; O5 routes by its own master-list status, GL-072 by its canonical state",
     "source": "Omar 2026-10-10 — vault/topics/decisions/redesign the presentation from scratch.md; vault/topics/decisions/no dates and no price on the deck.md (2026-09-18); main CHECKER ORDER 2026-11-07T06:52Z carrying Omar 06:48Z Telegram 2118 (hive/EXECUTION_LOG.md)"
    },
    {
     "key": "attendance",
     "ids": [
      "F02"
     ],
     "decidedAt": "2026-10-06T16:43Z",
     "by": "Omar",
     "words": "implementation now, on your runtime",
     "effect": "build time only — authorised implementation; routes by its canonical state",
     "source": "Omar 2026-10-06 16:43 UTC — vault/topics/decisions/implementation now, on your runtime.md (implementation against the requirement ids is authorised and does not come back for approval; demo fixes do not wait on hosting, auth or data decisions); re-stated by Omar 2026-11-07 06:48Z Telegram 2118"
    },
    {
     "key": "equipment",
     "ids": [
      "V14·codex"
     ],
     "decidedAt": "2026-10-06T16:43Z",
     "by": "Omar",
     "words": "implementation now, on your runtime",
     "effect": "build time only — authorised implementation; routes by its canonical state",
     "source": "Omar 2026-10-06 16:43 UTC — vault/topics/decisions/implementation now, on your runtime.md (implementation against the requirement ids is authorised and does not come back for approval; demo fixes do not wait on hosting, auth or data decisions); re-stated by Omar 2026-11-07 06:48Z Telegram 2118"
    },
    {
     "key": "dashboards",
     "ids": [
      "M-DASH"
     ],
     "decidedAt": "2026-10-06T16:43Z",
     "by": "Omar",
     "words": "implementation now, on your runtime",
     "effect": "build time only — authorised implementation; routes by its canonical state",
     "source": "Omar 2026-10-06 16:43 UTC — vault/topics/decisions/implementation now, on your runtime.md (implementation against the requirement ids is authorised and does not come back for approval; demo fixes do not wait on hosting, auth or data decisions); re-stated by Omar 2026-11-07 06:48Z Telegram 2118"
    },
    {
     "key": "publish",
     "ids": [
      "O1"
     ],
     "decidedAt": "2026-09-21",
     "by": "Omar",
     "words": "publish it right away · if it passed the checks it's good",
     "effect": "gated publishing is a standing permission, not an open choice; O1 is complete on the live read",
     "source": "vault/topics/decisions/publish it right away.md (2026-09-21); vault/topics/decisions/if it passed the checks it's good.md (2026-09-27); the standing conditional release, Omar 2026-11-07 06:07Z Telegram 2114; main CHECKER ORDER 2026-11-07T06:52Z carrying Omar 06:48Z Telegram 2118 (hive/EXECUTION_LOG.md)"
    },
    {
     "key": "owner-line",
     "ids": [
      "O4",
      "GL-065"
     ],
     "decidedAt": "2026-10-03T00:31Z",
     "by": "Omar",
     "words": "6. Forget that",
     "effect": "The owner is not being added to this line; O4 routes by its own master-list status and GL-065 by its canonical state — neither waits on Omar or the owner any longer",
     "source": "Omar 2026-10-03 00:31 UTC \"6. Forget that\" — Ask 6, the owner's Telegram id (vault/topics/people/Omar.md); main BUILDER ORDER 2026-11-07T17:40Z carrying Omar 17:06Z Telegram 2174 (hive/EXECUTION_LOG.md)"
    },
    {
     "key": "company",
     "ids": [
      "GL-037",
      "V36·codex",
      "M-MULTI"
     ],
     "decidedAt": "2026-10-04T04:49Z",
     "by": "Omar",
     "words": "Okay the 6 not built can you build it",
     "effect": "the HQ-across-branches screen was built the same morning as an owner-only tab on demo branch labels (never a company name); one company stands everywhere else; a later dated word beats an earlier one, so the choice is not raised again — each row routes by its canonical state",
     "source": "Omar 2026-10-04 04:49 UTC — vault/topics/decisions/build the six not built.md; vault/topics/decisions/one company only.md (2026-09-15; Now-block 2026-10-04: answered twice over, do not raise it with him as an open question)"
    },
    {
     "key": "jha-build",
     "ids": [
      "V41·codex",
      "M-ACK"
     ],
     "decidedAt": "2026-10-06T16:43Z",
     "by": "Omar",
     "words": "Omar authorizes implementation now (6 Oct): proceed with the confirmed fixes and remaining agreed work from our reviews, on YOUR existing Makki runtime.",
     "effect": "daily JHA reuse with a fresh review and the crew / auditor acknowledgements are demo implementation against requirement ids, authorised; they never waited on the weather-feed choice — each routes by its canonical state (Not done until the hive reports it finished)",
     "source": "Omar 2026-10-06 16:43 UTC — vault/topics/decisions/implementation now, on your runtime.md (implementation against the requirement ids is authorised and does not come back for approval; demo fixes do not wait on hosting, auth or data decisions)"
    },
    {
     "key": "costing",
     "ids": [
      "GL-043"
     ],
     "decidedAt": "2026-10-06T16:43Z",
     "by": "Omar",
     "words": "Omar authorizes implementation now (6 Oct)",
     "effect": "the bid-versus-actual costing page is demo implementation, owner-only by rail 4, authorised; the 2026-10-10 word puts the money reports inside the app — the row routes by its canonical state (Not done until the hive reports it finished)",
     "source": "Omar 2026-10-06 16:43 UTC — vault/topics/decisions/implementation now, on your runtime.md; vault/topics/decisions/the money reports live in the app.md (2026-10-10)"
    },
    {
     "key": "silent-jobs",
     "ids": [
      "GL-073"
     ],
     "decidedAt": "2026-10-06T18:02Z",
     "by": "Omar",
     "words": "AI-executable repair, not an Omar/the owner decision: queue/fix it in the existing workflow and add a regression check",
     "effect": "two jobs that said done and wrote nothing is failed AI work; re-running them is an AI-executable repair, never an item on a human's list — the row routes by its canonical state (Not done until the hive reports it finished)",
     "source": "Omar 2026-10-06 18:02 UTC — vault/topics/decisions/a repair you can do is not a decision.md (restated 21:35 and 22:08 UTC the same day)"
    },
    {
     "key": "old-decisions",
     "ids": [
      "O-DECISIONS"
     ],
     "decidedAt": "2026-11-07T06:48Z",
     "by": "Omar",
     "words": "the already-decided ids leave the questions with their dated sources",
     "effect": "resolving the old planning decisions is hive work: every decision with a dated word on record is applied to its rows and cited there, and the ones without one are listed as questions — a repair the hive can do is not a human choice; the row routes by its canonical state (Not done until the hive reports it finished)",
     "source": "Omar 2026-11-07 06:48 UTC Telegram 2118 (the reconciliation of the decided ids); vault/topics/decisions/a repair you can do is not a decision.md (2026-10-06); main CHECKER ORDER 2026-11-07T06:52Z (hive/EXECUTION_LOG.md)"
    },
    {
     "key": "evidence",
     "ids": [
      "O-QUALITY"
     ],
     "decidedAt": "2026-09-22T01:27Z",
     "by": "Omar",
     "words": "1 yes, 2 yes",
     "effect": "how AI work is judged and how far a seat may retry on its own is the Checker loop with its cap of five rounds, approved: criteria as commands before the work, a FAIL goes back to the same worker, five rounds hard, the whole record to Omar after five; the row routes by its canonical state",
     "source": "vault/topics/decisions/the checker loop.md — approved 2026-09-22 01:27 UTC (\"1 yes, 2 yes\"): five rounds, hard; criteria before the work; a FAIL goes back to the same worker; vault/topics/decisions/accepted means ruled.md (2026-10-31)"
    },
    {
     "key": "feedback",
     "ids": [
      "M-FEED"
     ],
     "decidedAt": "2026-10-06T18:02Z",
     "by": "Omar",
     "words": "A repair you can do is not a decision — never relabel AI work as a human dependency",
     "effect": "a place in the app for feedback and for what changed in each build is demo build work the hive does on its own; the row routes by its canonical state (Not done until built) and leaves Omar's queue",
     "source": "Omar 2026-10-06 18:02 UTC (restated 21:35 and 22:08 UTC) — vault/topics/decisions/a repair you can do is not a decision.md; Omar 2026-10-06 16:43 UTC — vault/topics/decisions/implementation now, on your runtime.md; main BUILDER DELTA 2026-11-07T18:20Z carrying Omar 18:15Z Telegram 2186 (hive/EXECUTION_LOG.md); pin v2.1.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)"
    },
    {
     "key": "rq-01-applied",
     "ids": [
      "RQ-01"
     ],
     "decidedAt": "2026-09-16T16:54Z",
     "by": "Omar",
     "words": "The owner's name does not appear on the home page",
     "effect": "the 2026-09-16 rule stands; the registered question asked for an instruction already given and leaves the open list as applied — the scrub keeps rewriting the owner's name on every page (the one exempt token is the status label, Omar 2026-11-07 22:19Z Telegram 2236)",
     "source": "Omar 2026-09-16 16:54 UTC — vault/topics/decisions/no owner name on the home page.md; Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)"
    },
    {
     "key": "rq-02-applied",
     "ids": [
      "RQ-02"
     ],
     "decidedAt": "2026-11-07T19:28Z",
     "by": "Omar",
     "words": "finish All Tasks first, organised by project",
     "effect": "both stay: the grouped project plan organises the work and the go-live list stays as the reference (vault/current/go-live-list.md, 2026-10-31); the registered question asked for an instruction already given and leaves the open list as applied; the untested-cap row keeps its own canonical state",
     "source": "Omar 2026-11-07 19:28 UTC (finish All Tasks first, organised by project) via main's CHECKER ORDER 19:3xZ (hive/EXECUTION_LOG.md); vault/current/go-live-list.md (2026-10-31); Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)"
    },
    {
     "key": "training-edges",
     "kind": "released",
     "ids": [
      "F32",
      "F33",
      "F55",
      "V20·codex",
      "V23·codex",
      "V48·codex",
      "V56·codex",
      "M-ONB",
      "M-TRAIN",
      "GL-024",
      "GL-076"
     ],
     "decidedAt": "2026-11-07T22:13Z",
     "by": "Omar",
     "words": "the dependency edges are wrong — only the rows that depend on the decision stay under the question (Omar's live review, as carried by main's order of 2026-11-07 23:10Z)",
     "effect": "released from the training question: only the two licensed-catalogue rows (the catalogue decision and the catalogue option) depend on the paid-catalogue decision; the training matrix, the onboarding and orientation material, the training library, history and reports and the custom training rows are build work that never depended on it; each released row routes by its canonical state (Not done, build work) and leaves Omar's queue; the rows that depend on the decision stay under the question",
     "source": "Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)"
    },
    {
     "key": "install-edges",
     "kind": "released",
     "ids": [
      "O-INSTALL",
      "O-UPDATE"
     ],
     "decidedAt": "2026-11-07T22:13Z",
     "by": "Omar",
     "words": "the dependency edges are wrong — only the rows that depend on the decision stay under the question (Omar's live review, as carried by main's order of 2026-11-07 23:10Z)",
     "effect": "released from the install question: only the optional public app-store listing depends on the paid-store decision; getting the app on phones and desktop and the safe-release / rollback work are build work that never depended on it; each released row routes by its canonical state (Not done, build work) and leaves Omar's queue; the rows that depend on the decision stay under the question",
     "source": "Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)"
    },
    {
     "key": "proposals-edges",
     "kind": "released",
     "ids": [
      "R03"
     ],
     "decidedAt": "2026-11-07T22:13Z",
     "by": "Omar",
     "words": "the dependency edges are wrong — only the rows that depend on the decision stay under the question (Omar's live review, as carried by main's order of 2026-11-07 23:10Z)",
     "effect": "released from the proposals question: only the e-signature send from the app depends on the send decision; turning an accepted quote into a job is build work that never depended on it; each released row routes by its canonical state (Not done, build work) and leaves Omar's queue; the rows that depend on the decision stay under the question",
     "source": "Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)"
    },
    {
     "key": "adoption-edges",
     "kind": "released",
     "ids": [
      "R22"
     ],
     "decidedAt": "2026-11-07T22:13Z",
     "by": "Omar",
     "words": "the dependency edges are wrong — only the rows that depend on the decision stay under the question (Omar's live review, as carried by main's order of 2026-11-07 23:10Z)",
     "effect": "released from the adoption question: only the field-adoption measurement row depends on the measurement decision; keeping the familiar workflow simple is build work that never depended on it; each released row routes by its canonical state (Not done, build work) and leaves Omar's queue; the rows that depend on the decision stay under the question",
     "source": "Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)"
    },
    {
     "key": "owner-line-ask",
     "ids": [
      "ali-telegram"
     ],
     "decidedAt": "2026-10-03T00:31Z",
     "by": "Omar",
     "words": "6. Forget that",
     "effect": "The owner's own ask row for his Telegram id closes with the decline: the owner is not being added to this line, nothing is needed from him here and no row asks for the id (the O4 / GL-065 decision owner-line, applied to the ask row the pin names)",
     "source": "Omar 2026-10-03 00:31 UTC \"6. Forget that\" — Ask 6, the owner's Telegram id (vault/topics/people/Omar.md); main BUILDER ORDER 2026-11-07T17:40Z carrying Omar 17:06Z Telegram 2174 (hive/EXECUTION_LOG.md); Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)"
    }
   ]
  },
  "necessity": {
   "rule": "every live canonical row carries necessity ∈ needed-for-demo | needed-for-launch | optional | dropped | proposed with a dated necessitySource (a reason when dropped), Completed rows included — no row is exempt; sources: the plan v0.2 card's finish line, the Codex sheet's own Optional title, a dated cancellation; the tasks page's rows read their canonical row's tag",
   "coverage": {
    "tagged": 566,
    "of": 566,
    "notCompleted": 323,
    "completed": 243,
    "exempt": 0,
    "archivedOutside": 49
   },
   "counts": {
    "needed-for-demo": 453,
    "needed-for-launch": 108,
    "optional": 4,
    "dropped": 1,
    "proposed": 0
   },
   "countsNotCompleted": {
    "needed-for-demo": 223,
    "needed-for-launch": 95,
    "optional": 4,
    "dropped": 1,
    "proposed": 0
   },
   "countsCompleted": {
    "needed-for-demo": 230,
    "needed-for-launch": 13,
    "optional": 0,
    "dropped": 0,
    "proposed": 0
   },
   "words": "Necessity review: 323 not-Completed rows of 566 canonical rows carry a necessity tag with a dated source — Completed 243, tagged as well (no exemption) — the not-Completed 323: Needed for the demo 223 · Needed for launch 95 · Optional 4 · Dropped 1 · Proposed 0 — the Completed 243: Needed for the demo 230 · Needed for launch 13 · Optional 0 · Dropped 0 · Proposed 0 — all 566 live rows: Needed for the demo 453 · Needed for launch 108 · Optional 4 · Dropped 1 · Proposed 0; 49 archived rows sit outside the count"
  },
  "denominators": {
   "all": {
    "set": "the live rows of this page",
    "accepted": 11,
    "total": 566,
    "remaining": 555,
    "words": "final review has ruled on 11 rows inside the set of all 566 current tasks — every live row of this page (demo); 555 rows await that review — a review count, not a completion count",
    "derivation": "every live row of this page, recounted when the page is built — the 563 of the canonical accounting v2.4 and the 3 the correction of 8 November 2026 split out; accepted = ruled (a line of a grade file carries the exact id with an explicit passing verdict on its own line and evidence beside it); remaining = total − accepted",
    "canonicalReading": {
     "set": "the 563 rows of the canonical accounting v2.4",
     "total": 563,
     "accepted": 11,
     "remaining": 552
    }
   },
   "activeAI": {
    "field": "ownerClass",
    "value": "AI",
    "set": "the live rows of this page",
    "accepted": 11,
    "total": 320,
    "remaining": 309,
    "words": "final review has ruled on 11 rows inside the set of 320 AI-owned active tasks — counted over the 566 live rows of this page (demo); 309 rows await that review — a review count, not a completion count",
    "derivation": "live rows of this page whose owner class is AI (the field the order names, read as the canonical value a released decision keeps beside it — the same value the class filter on this page offers); accepted = ruled rows inside that set; remaining = total − accepted",
    "canonicalReading": {
     "set": "the AI-owned rows of the canonical accounting v2.4",
     "total": 317,
     "accepted": 11,
     "remaining": 306
    }
   },
   "aiExecutable": {
    "field": "aiExecutable",
    "value": true,
    "set": "the live rows of this page",
    "accepted": 11,
    "total": 436,
    "remaining": 425,
    "words": "final review has ruled on 11 rows inside the AI-executable set (436 active tasks counted over the 566 live rows of this page; aiExecutable true, human involvement may overlap; demo); 425 rows await that review — a review count, not a completion count",
    "derivation": "live rows of this page with aiExecutable true — the AI-owned rows and the rows where a person acts first and the hive finishes; the same 436 rows the completion reconciliation below counts, so the page carries one AI-executable set and not two; accepted = ruled rows inside that set; remaining = total − accepted",
    "canonicalReading": {
     "set": "the AI-executable rows of the canonical accounting v2.4",
     "total": 433,
     "accepted": 11,
     "remaining": 422
    }
   },
   "expectation": {
    "total": 433,
    "remaining": 373,
    "words": "Omar 2026-10-31 05:08Z expects 433 and 373; the figures here are derived from the canonical fields and printed as read — a difference is reported, never forced"
   },
   "reconciliation": {
    "overlapAiOwnedInExec": 320,
    "execNotAiOwned": 116,
    "words": "Three denominators, reconciled, every one of them counted over the 566 live rows of this page when the page is built. All current tasks: 566 live rows. AI-owned active tasks (owner class = AI): 320. AI-executable active tasks (aiExecutable = true): 436. The sets overlap — 320 of the 320 AI-owned rows are also AI-executable, and the other 116 AI-executable rows involve a human first (Omar or the owner acts, then the hive finishes), so human involvement is allowed inside the 436. Each numerator is the same set of ruled rows counted inside its own set — a final-review count, never a completion count: ruled 11 inside 566, ruled 11 inside 320, ruled 11 inside 436; awaiting that review = set − ruled: 555, 309, 425. The canonical accounting v2.4 is a different set and reads its own figures over its own 563 rows: all 563, AI-owned 317, AI-executable 433 — the difference from the live figures is the 3 rows the correction of 8 November 2026 split out, named by id in the split-remainders panel, and the two sets are never read as one. Who the remaining WORK waits on is the work split printed above the six cards (Needs Omar + Needs both · Needs Ali + Needs both · the hive's own remainder), not these review counts. Omar expects 433 and 373, read against the canonical accounting of the day he said it: the derived AI-executable total is 436 over the live rows and 433 over the accounting, not 433; the derived remaining is 425, not 373, because 373 is 433 less the 60 recorded as accepted in the accounting, while the bar counts only the 11 ruled. A difference is reported, never forced."
   },
   "acceptedCanonical": {
    "recorded": 60,
    "set": "the canonical accounting v2.4, not this page's live set",
    "words": "60 recorded as accepted in the canonical accounting v2.4 — a figure of that set, not of the 566 live rows: accepted-with-ruling 11 · accepted-without-ruling 49 — these 49 print UNVERIFIED and are not on the bars: F01 F03 F06 F08 F11 F14 F20 F22 F25 F28 F29 F30 F34 F35 F36 F37 F40 F44 F47 F51 GL-035 GL-059 GL-078 GL-104 M-ACC M-INV R04 R08 V05·codex V06·codex V08·codex V11·codex V19·codex V22·codex V25·codex V26·codex V27·codex V29·codex V30·codex V35·codex V43·codex V44·codex V47·codex V49·codex V51·codex W04 W07 W10 W11"
   }
  },
  "coverage": {
   "ruleVersion": "v1.0.6",
   "rule": "accepted means ruled, by the rule of words (Omar 2026-10-31 06:39Z, tightened 07:18Z): a row is shown accepted only when a line of a grade file named on the row carries that exact id — its own id, its source id or a canonical alias id of the same item, never a related id — with an explicit passing verdict on the id's own line, read with backtick and quoted spans removed, never a Task: line, never a numbered criteria-table row, partial never a pass, and an evidence reference beside it (a hive/checks path, a .png/.out/.md/.json file, an md5); and the line must come from a test of the item — a line whose own evidence is a file lookup (sed/grep of another file), whose text says the item is untested, or which sits in a citation / lookup table is not a ruling, a citation check alone is never verified completion; otherwise the row prints UNVERIFIED, names every grade file looked at, keeps every source line that carries the id with the reason it is not a ruling, and is not counted; a grade-file link alone is not a pass",
   "ruled": 11,
   "unruled": 49,
   "unruledIds": [
    "F01",
    "F03",
    "F06",
    "F08",
    "F11",
    "F14",
    "F20",
    "F22",
    "F25",
    "F28",
    "F29",
    "F30",
    "F34",
    "F35",
    "F36",
    "F37",
    "F40",
    "F44",
    "F47",
    "F51",
    "GL-035",
    "GL-059",
    "GL-078",
    "GL-104",
    "M-ACC",
    "M-INV",
    "R04",
    "R08",
    "V05·codex",
    "V06·codex",
    "V08·codex",
    "V11·codex",
    "V19·codex",
    "V22·codex",
    "V25·codex",
    "V26·codex",
    "V27·codex",
    "V29·codex",
    "V30·codex",
    "V35·codex",
    "V43·codex",
    "V44·codex",
    "V47·codex",
    "V49·codex",
    "V51·codex",
    "W04",
    "W07",
    "W10",
    "W11"
   ],
   "ruledIds": [
    "F13",
    "F18",
    "F24",
    "F54",
    "GL-001",
    "GL-103",
    "M-HEAD",
    "M-UX",
    "R11",
    "V38·codex",
    "V39·codex"
   ],
   "rulings": [
    {
     "id": "F13",
     "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
     "line": 27,
     "namedAs": "F13"
    },
    {
     "id": "F18",
     "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
     "line": 29,
     "namedAs": "F18"
    },
    {
     "id": "F24",
     "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
     "line": 23,
     "namedAs": "F24"
    },
    {
     "id": "F54",
     "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
     "line": 36,
     "namedAs": "F54"
    },
    {
     "id": "GL-001",
     "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
     "line": 22,
     "namedAs": "GL-001"
    },
    {
     "id": "GL-103",
     "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
     "line": 30,
     "namedAs": "GL-103"
    },
    {
     "id": "M-HEAD",
     "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
     "line": 25,
     "namedAs": "M-HEAD"
    },
    {
     "id": "M-UX",
     "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
     "line": 35,
     "namedAs": "M-UX"
    },
    {
     "id": "R11",
     "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
     "line": 33,
     "namedAs": "R11"
    },
    {
     "id": "V38·codex",
     "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
     "line": 24,
     "namedAs": "V38·codex"
    },
    {
     "id": "V39·codex",
     "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
     "line": 26,
     "namedAs": "V39·codex"
    }
   ],
   "expectation": "Omar 2026-10-31 05:08Z expected accepted-without-ruling = 0; the derived split is printed as read, never forced",
   "previousReading": {
    "label": "previous reading — superseded, reported only, never a numerator and never a bar",
    "rule": "the v1.0.4 mechanics: the verdict token on the id's line or the next, code and quoted spans not stripped, Task: headers and criteria-table rows counted — Omar ruled 2026-10-31 06:39Z that this overcounts",
    "ruled": 27,
    "unruled": 33,
    "ruledIds": [
     "F06",
     "F13",
     "F14",
     "F18",
     "F24",
     "F54",
     "GL-001",
     "GL-035",
     "GL-078",
     "GL-103",
     "GL-104",
     "M-ACC",
     "M-HEAD",
     "M-INV",
     "M-UX",
     "R08",
     "R11",
     "V05·codex",
     "V06·codex",
     "V30·codex",
     "V35·codex",
     "V38·codex",
     "V39·codex",
     "W04",
     "W07",
     "W10",
     "W11"
    ],
    "noLongerCounted": [
     "F06",
     "F14",
     "GL-035",
     "GL-078",
     "GL-104",
     "M-ACC",
     "M-INV",
     "R08",
     "V05·codex",
     "V06·codex",
     "V30·codex",
     "V35·codex",
     "W04",
     "W07",
     "W10",
     "W11"
    ],
    "newlyCounted": []
   },
   "namedAnywhereReading": {
    "rule": "the wider reading, informational, never the bar: a grade file of the row names it (own id, source id, alias) or names a canonical related id, and the file carries a result line",
    "direct": 29,
    "related": 31,
    "neither": 0
   }
  },
  "totals": {
   "live": 563,
   "archived": 49,
   "uniqueIds": 612
  }
 },
 "plan": {
  "file": "vault/topics/projects/Execution Plan.md",
  "md5": "c66a0e25bb48568d6e3fb77916d9294f",
  "mtime": "2026-10-31T01:48:51.270Z",
  "legend": "States per step: done (independently graded) · built (worker claim, not graded) · in flight · queued · blocked (who). Every figure is demo evidence until Omar says the real data is connected.",
  "legendQuotesCondition": true,
  "steps": [
   {
    "n": 1,
    "title": "Stabilise and close the failing checks",
    "state": "**done** (Checker r10c 2026-10-24 09:03:59Z: PASS 98 / FAIL 0 / NM 0, rows v1.0.9, target=live)"
   },
   {
    "n": 2,
    "title": "One visual design across Home, portal, tasks, Hive",
    "state": "**done** (Checker r3c on live 2026-10-25 10:05:25Z: PASS 91 / FAIL 2 / NM 0, rows v1.0.3 — both reds adjudicated premise rows, 0 on the work; ordered 07:14Z, Omar 07:05Z Telegram 1819; slug `2026-10-25_one-design`)"
   },
   {
    "n": 3,
    "title": "End-to-end workflows, six roles",
    "state": "**in flight** (batch 1 ordered 2026-10-25 10:20Z, Omar 10:12Z Telegram 1835: continue the next unfinished plan task independent of his visual preference; slug `2026-10-25_workflows-b1`)"
   },
   {
    "n": 4,
    "title": "Presentation, guide, downloads, one-hour rehearsal",
    "state": "queued (after 3)"
   },
   {
    "n": 5,
    "title": "Launch engineering, integrations, the two guides",
    "state": "in flight (canonical worker: guide v3)"
   }
  ]
 },
 "projectPlan": {
  "version": "v0.2",
  "file": "materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md",
  "md5": "1a161550e05167ec3254ddfe5ce39279",
  "mtime": "2026-10-31T01:08:52.659Z",
  "generatedAt": "2026-10-31T01:08:19.286Z",
  "featuresFile": "outbox/_scratch/plan-v0.2/features_computed.json",
  "featuresMd5": "fd94facd7149aa65e26f7a6b6966089f",
  "countsFile": "outbox/_scratch/plan-v0.2/counts.json",
  "countsMd5": "2d2ac687de04d263c83aebb16a86d815",
  "mapFile": "outbox/_scratch/plan-v0.2/map.json",
  "mapMd5": "95b8013b70b26cb38d455d464866023a",
  "mapRows": 1612,
  "supersedes": {
   "version": "v0.1",
   "generatedAt": "2026-10-25T19:22:06.728Z",
   "features": 47,
   "areas": 9,
   "byVerdict": {
    "partial": 40,
    "deferred (waits the owner)": 3,
    "not built": 2,
    "deferred (waits Omar)": 1,
    "deferred (waits the owner, Omar)": 1
   },
   "byOwner": {
    "Makki/AI": 32,
    "The owner": 7,
    "Omar": 8
   }
  },
  "tally": {
   "cards": 47,
   "areas": 9,
   "byFinish": {
    "1": 37,
    "2": 10
   },
   "byVerdict": {
    "partial": 41,
    "deferred (waits the owner)": 3,
    "not built": 2,
    "deferred (waits Omar)": 1
   },
   "byOwner": {
    "Makki/AI": 32,
    "The owner": 7,
    "Omar": 8
   },
   "byArea": {
    "Crew (the field day)": 5,
    "Management (owner · PM · lead)": 9,
    "Finance / QuickBooks": 6,
    "Equipment / QR / Inventory": 3,
    "Safety · Tickets · People": 6,
    "Sales / Estimating": 3,
    "Office / Admin / Helpers": 7,
    "Platform / Hosting / Launch": 7,
    "Presentation (finish line 1)": 1
   },
   "rowsOnCards": 563
  },
  "liveRowsNotOnACard": [],
  "cards": [
   {
    "id": "crew-startday",
    "area": "crew",
    "areaTitle": "Crew (the field day)",
    "title": "Start Day, timesheet head start and the daily report",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "W1→W2",
    "rows": 26,
    "verified": 6,
    "claimed": 12,
    "partial": 4,
    "notBuilt": 4,
    "evidenceDate": "2026-10-10T19:01:33Z",
    "evidenceFile": "hive/checks/2026-10-10_batch5-time-crew.r2.grade.md",
    "archivedIds": []
   },
   {
    "id": "crew-time",
    "area": "crew",
    "areaTitle": "Crew (the field day)",
    "title": "Time, breaks, per diem, signatures and end of day",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "W1",
    "rows": 17,
    "verified": 6,
    "claimed": 7,
    "partial": 0,
    "notBuilt": 4,
    "evidenceDate": "2026-10-10T19:01:33Z",
    "evidenceFile": "hive/checks/2026-10-10_batch5-time-crew.r2.grade.md",
    "archivedIds": []
   },
   {
    "id": "crew-jha",
    "area": "crew",
    "areaTitle": "Crew (the field day)",
    "title": "JHA / pre-job safety talk, acknowledgements and weather",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "W3",
    "rows": 16,
    "verified": 1,
    "claimed": 6,
    "partial": 2,
    "notBuilt": 7,
    "evidenceDate": "2026-09-27T08:00:25Z",
    "evidenceFile": "hive/checks/2026-09-27_gl-wave4-jha.md",
    "archivedIds": []
   },
   {
    "id": "crew-contain",
    "area": "crew",
    "areaTitle": "Crew (the field day)",
    "title": "Containment log and abatement daily",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "OF1 (the form) · WAIT (the owner) for his sheet",
    "rows": 8,
    "verified": 0,
    "claimed": 1,
    "partial": 0,
    "notBuilt": 7,
    "evidenceDate": null,
    "evidenceFile": null,
    "archivedIds": []
   },
   {
    "id": "crew-lang",
    "area": "crew",
    "areaTitle": "Crew (the field day)",
    "title": "Languages and dictation",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "W4",
    "rows": 7,
    "verified": 0,
    "claimed": 4,
    "partial": 1,
    "notBuilt": 2,
    "evidenceDate": null,
    "evidenceFile": null,
    "archivedIds": []
   },
   {
    "id": "mgmt-dash",
    "area": "mgmt",
    "areaTitle": "Management (owner · PM · lead)",
    "title": "Dashboard, stat tiles and the job-site map",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "W2",
    "rows": 21,
    "verified": 4,
    "claimed": 14,
    "partial": 1,
    "notBuilt": 2,
    "evidenceDate": "2026-09-27T05:47:40Z",
    "evidenceFile": "hive/checks/2026-09-27_gl-wave3-board.md",
    "archivedIds": []
   },
   {
    "id": "mgmt-projbook",
    "area": "mgmt",
    "areaTitle": "Management (owner · PM · lead)",
    "title": "Project Book and job setup",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "W2",
    "rows": 16,
    "verified": 1,
    "claimed": 10,
    "partial": 2,
    "notBuilt": 3,
    "evidenceDate": "2026-10-06T19:08:14Z",
    "evidenceFile": "hive/checks/2026-10-06_batch1-notes-invoice-pm.md",
    "archivedIds": []
   },
   {
    "id": "mgmt-sched",
    "area": "mgmt",
    "areaTitle": "Management (owner · PM · lead)",
    "title": "Schedule board, Timeline and the 4-week look-ahead",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "W2",
    "rows": 20,
    "verified": 3,
    "claimed": 13,
    "partial": 2,
    "notBuilt": 2,
    "evidenceDate": "2026-09-27T05:47:40Z",
    "evidenceFile": "hive/checks/2026-09-27_gl-wave3-board.md",
    "archivedIds": []
   },
   {
    "id": "mgmt-forms",
    "area": "mgmt",
    "areaTitle": "Management (owner · PM · lead)",
    "title": "Forms: builder, templates, lifecycle and audit",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "W2",
    "rows": 11,
    "verified": 1,
    "claimed": 4,
    "partial": 3,
    "notBuilt": 3,
    "evidenceDate": "2026-09-27T04:01:49Z",
    "evidenceFile": "hive/checks/2026-09-27_gl-wave2-forms.md",
    "archivedIds": []
   },
   {
    "id": "mgmt-docs",
    "area": "mgmt",
    "areaTitle": "Management (owner · PM · lead)",
    "title": "Documents, photos, drawings and the closeout report",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "W3",
    "rows": 13,
    "verified": 3,
    "claimed": 3,
    "partial": 1,
    "notBuilt": 6,
    "evidenceDate": "2026-10-06T19:08:14Z",
    "evidenceFile": "hive/checks/2026-10-06_batch1-notes-invoice-pm.md",
    "archivedIds": []
   },
   {
    "id": "mgmt-tm",
    "area": "mgmt",
    "areaTitle": "Management (owner · PM · lead)",
    "title": "T&M tickets and change orders",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "W4",
    "rows": 9,
    "verified": 1,
    "claimed": 4,
    "partial": 1,
    "notBuilt": 3,
    "evidenceDate": "2026-09-27T17:32:09Z",
    "evidenceFile": "hive/checks/2026-09-27_gl-wave5-admin.md",
    "archivedIds": []
   },
   {
    "id": "mgmt-reports",
    "area": "mgmt",
    "areaTitle": "Management (owner · PM · lead)",
    "title": "Reporting Center and operational reports",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "W4",
    "rows": 3,
    "verified": 0,
    "claimed": 1,
    "partial": 2,
    "notBuilt": 0,
    "evidenceDate": null,
    "evidenceFile": null,
    "archivedIds": []
   },
   {
    "id": "mgmt-roles",
    "area": "mgmt",
    "areaTitle": "Management (owner · PM · lead)",
    "title": "Logins, roles and who sees what (device-enforced)",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "W1",
    "rows": 17,
    "verified": 3,
    "claimed": 13,
    "partial": 0,
    "notBuilt": 1,
    "evidenceDate": "2026-10-10T04:09:31Z",
    "evidenceFile": "hive/checks/2026-10-10_b3fix.AUTHORITATIVE.out",
    "archivedIds": []
   },
   {
    "id": "mgmt-ux",
    "area": "mgmt",
    "areaTitle": "Management (owner · PM · lead)",
    "title": "Navigation and everyday usability",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "OF1",
    "rows": 16,
    "verified": 1,
    "claimed": 8,
    "partial": 4,
    "notBuilt": 3,
    "evidenceDate": "2026-10-10T04:09:31Z",
    "evidenceFile": "hive/checks/2026-10-10_b3fix.AUTHORITATIVE.out",
    "archivedIds": []
   },
   {
    "id": "fin-money",
    "area": "fin",
    "areaTitle": "Finance / QuickBooks",
    "title": "Money overview, collections, receivables and holdbacks",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "W1",
    "rows": 9,
    "verified": 1,
    "claimed": 1,
    "partial": 0,
    "notBuilt": 7,
    "evidenceDate": "2026-10-06T19:08:14Z",
    "evidenceFile": "hive/checks/2026-10-06_batch1-notes-invoice-pm.md",
    "archivedIds": []
   },
   {
    "id": "fin-invoice",
    "area": "fin",
    "areaTitle": "Finance / QuickBooks",
    "title": "Invoicing: ready to bill, completion marks and drafts in the app",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "W1",
    "rows": 7,
    "verified": 3,
    "claimed": 0,
    "partial": 0,
    "notBuilt": 4,
    "evidenceDate": "2026-10-10T04:10:24Z",
    "evidenceFile": "hive/checks/2026-10-10_billing-completion.AUTHORITATIVE-v3.md",
    "archivedIds": []
   },
   {
    "id": "fin-cost",
    "area": "fin",
    "areaTitle": "Finance / QuickBooks",
    "title": "Job costing, budgets, cost codes and P&L",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "W2",
    "rows": 16,
    "verified": 4,
    "claimed": 3,
    "partial": 1,
    "notBuilt": 8,
    "evidenceDate": "2026-10-10T19:01:33Z",
    "evidenceFile": "hive/checks/2026-10-10_batch5-time-crew.r2.grade.md",
    "archivedIds": []
   },
   {
    "id": "fin-payroll",
    "area": "fin",
    "areaTitle": "Finance / QuickBooks",
    "title": "Payroll approval, allocation to jobs and export",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "W4",
    "rows": 19,
    "verified": 2,
    "claimed": 7,
    "partial": 1,
    "notBuilt": 9,
    "evidenceDate": "2026-10-10T19:01:33Z",
    "evidenceFile": "hive/checks/2026-10-10_batch5-time-crew.r2.grade.md",
    "archivedIds": []
   },
   {
    "id": "fin-qbo",
    "area": "fin",
    "areaTitle": "Finance / QuickBooks",
    "title": "QuickBooks Online connection, first import and The Books",
    "finish": 2,
    "verdict": "partial",
    "owner": "The owner",
    "week": "WAIT (the owner) → OF1",
    "rows": 13,
    "verified": 0,
    "claimed": 0,
    "partial": 2,
    "notBuilt": 11,
    "evidenceDate": null,
    "evidenceFile": null,
    "archivedIds": []
   },
   {
    "id": "fin-cutover",
    "area": "fin",
    "areaTitle": "Finance / QuickBooks",
    "title": "Data migration and the real-data cut-over",
    "finish": 2,
    "verdict": "partial",
    "owner": "The owner",
    "week": "WAIT (the owner) → OF1–OF2",
    "rows": 15,
    "verified": 2,
    "claimed": 2,
    "partial": 0,
    "notBuilt": 11,
    "evidenceDate": "2026-10-06T20:57:09Z",
    "evidenceFile": "hive/checks/2026-10-06_batch2-money-payroll.md",
    "archivedIds": []
   },
   {
    "id": "gear-qr",
    "area": "gear",
    "areaTitle": "Equipment / QR / Inventory",
    "title": "QR setup: hats and assets",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "W1→W2",
    "rows": 14,
    "verified": 3,
    "claimed": 7,
    "partial": 3,
    "notBuilt": 1,
    "evidenceDate": "2026-09-27T04:01:49Z",
    "evidenceFile": "hive/checks/2026-09-27_gl-wave2-forms.md",
    "archivedIds": []
   },
   {
    "id": "gear-assets",
    "area": "gear",
    "areaTitle": "Equipment / QR / Inventory",
    "title": "Equipment records, maintenance, inspections and the equipment map",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "W4",
    "rows": 15,
    "verified": 4,
    "claimed": 3,
    "partial": 5,
    "notBuilt": 3,
    "evidenceDate": "2026-09-27T05:47:40Z",
    "evidenceFile": "hive/checks/2026-09-27_gl-wave3-board.md",
    "archivedIds": []
   },
   {
    "id": "gear-ware",
    "area": "gear",
    "areaTitle": "Equipment / QR / Inventory",
    "title": "Warehouse, loadouts, inventory and materials",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "W3→W4",
    "rows": 16,
    "verified": 2,
    "claimed": 2,
    "partial": 3,
    "notBuilt": 9,
    "evidenceDate": "2026-09-27T17:32:09Z",
    "evidenceFile": "hive/checks/2026-09-27_gl-wave5-admin.md",
    "archivedIds": []
   },
   {
    "id": "safe-tickets",
    "area": "safe",
    "areaTitle": "Safety · Tickets · People",
    "title": "Tickets and certificates",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "W2",
    "rows": 17,
    "verified": 1,
    "claimed": 8,
    "partial": 5,
    "notBuilt": 3,
    "evidenceDate": "2026-09-27T02:07:23Z",
    "evidenceFile": "hive/checks/2026-09-27_gl-wave1-people.md",
    "archivedIds": []
   },
   {
    "id": "safe-train",
    "area": "safe",
    "areaTitle": "Safety · Tickets · People",
    "title": "Training, training matrix, orientation and onboarding",
    "finish": 1,
    "verdict": "partial",
    "owner": "Omar",
    "week": "W3",
    "rows": 17,
    "verified": 0,
    "claimed": 0,
    "partial": 2,
    "notBuilt": 15,
    "evidenceDate": null,
    "evidenceFile": null,
    "archivedIds": []
   },
   {
    "id": "safe-inc",
    "area": "safe",
    "areaTitle": "Safety · Tickets · People",
    "title": "Incidents, inspections, corrective actions and OHS reports",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "W3",
    "rows": 20,
    "verified": 0,
    "claimed": 9,
    "partial": 4,
    "notBuilt": 7,
    "evidenceDate": null,
    "evidenceFile": null,
    "archivedIds": []
   },
   {
    "id": "safe-people",
    "area": "safe",
    "areaTitle": "Safety · Tickets · People",
    "title": "Employee records, skills and qualified dispatch",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "W4",
    "rows": 15,
    "verified": 4,
    "claimed": 4,
    "partial": 3,
    "notBuilt": 4,
    "evidenceDate": "2026-09-27T02:07:23Z",
    "evidenceFile": "hive/checks/2026-09-27_gl-wave1-people.md",
    "archivedIds": []
   },
   {
    "id": "safe-privacy",
    "area": "safe",
    "areaTitle": "Safety · Tickets · People",
    "title": "Location verification and HR privacy",
    "finish": 2,
    "verdict": "deferred (waits the owner)",
    "owner": "The owner",
    "week": "WAIT (the owner)",
    "rows": 5,
    "verified": 0,
    "claimed": 0,
    "partial": 0,
    "notBuilt": 5,
    "evidenceDate": null,
    "evidenceFile": null,
    "archivedIds": []
   },
   {
    "id": "safe-lib",
    "area": "safe",
    "areaTitle": "Safety · Tickets · People",
    "title": "Safety document library, permits and credential controls",
    "finish": 1,
    "verdict": "partial",
    "owner": "The owner",
    "week": "WAIT (the owner) → W3",
    "rows": 10,
    "verified": 0,
    "claimed": 0,
    "partial": 2,
    "notBuilt": 8,
    "evidenceDate": null,
    "evidenceFile": null,
    "archivedIds": []
   },
   {
    "id": "sales-quotes",
    "area": "sales",
    "areaTitle": "Sales / Estimating",
    "title": "Quotes, pipeline, proposals and bid items",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "W4",
    "rows": 17,
    "verified": 0,
    "claimed": 6,
    "partial": 2,
    "notBuilt": 9,
    "evidenceDate": null,
    "evidenceFile": null,
    "archivedIds": []
   },
   {
    "id": "sales-crm",
    "area": "sales",
    "areaTitle": "Sales / Estimating",
    "title": "CRM: contacts, follow-ups and estimator reporting",
    "finish": 1,
    "verdict": "partial",
    "owner": "The owner",
    "week": "WAIT (the owner)",
    "rows": 6,
    "verified": 1,
    "claimed": 0,
    "partial": 1,
    "notBuilt": 4,
    "evidenceDate": "2026-09-27T17:32:09Z",
    "evidenceFile": "hive/checks/2026-09-27_gl-wave5-admin.md",
    "archivedIds": []
   },
   {
    "id": "sales-est",
    "area": "sales",
    "areaTitle": "Sales / Estimating",
    "title": "Estimating knowledge, reviewed AI estimates and the Estimator seat",
    "finish": 1,
    "verdict": "deferred (waits the owner)",
    "owner": "The owner",
    "week": "WAIT (the owner) → OF1",
    "rows": 11,
    "verified": 0,
    "claimed": 0,
    "partial": 0,
    "notBuilt": 11,
    "evidenceDate": null,
    "evidenceFile": null,
    "archivedIds": []
   },
   {
    "id": "office-textline",
    "area": "office",
    "areaTitle": "Office / Admin / Helpers",
    "title": "The labourer text line (verify by text, no login)",
    "finish": 2,
    "verdict": "partial",
    "owner": "Omar",
    "week": "WAIT (Omar, the owner) → OF2",
    "rows": 14,
    "verified": 0,
    "claimed": 1,
    "partial": 3,
    "notBuilt": 10,
    "evidenceDate": null,
    "evidenceFile": null,
    "archivedIds": []
   },
   {
    "id": "office-msg",
    "area": "office",
    "areaTitle": "Office / Admin / Helpers",
    "title": "Notifications, broadcasts and auto-send",
    "finish": 2,
    "verdict": "partial",
    "owner": "Omar",
    "week": "WAIT (Omar) → OF2",
    "rows": 23,
    "verified": 0,
    "claimed": 5,
    "partial": 4,
    "notBuilt": 14,
    "evidenceDate": null,
    "evidenceFile": null,
    "archivedIds": []
   },
   {
    "id": "office-ai",
    "area": "office",
    "areaTitle": "Office / Admin / Helpers",
    "title": "The assistant by text: answers and reviewed actions",
    "finish": 1,
    "verdict": "not built",
    "owner": "Makki/AI",
    "week": "OF1",
    "rows": 5,
    "verified": 0,
    "claimed": 0,
    "partial": 0,
    "notBuilt": 5,
    "evidenceDate": null,
    "evidenceFile": null,
    "archivedIds": []
   },
   {
    "id": "office-connect",
    "area": "office",
    "areaTitle": "Office / Admin / Helpers",
    "title": "Connections: email, calendar, workbook and the Claude context",
    "finish": 2,
    "verdict": "deferred (waits Omar)",
    "owner": "Omar",
    "week": "WAIT (Omar) → OF2",
    "rows": 5,
    "verified": 0,
    "claimed": 0,
    "partial": 0,
    "notBuilt": 5,
    "evidenceDate": null,
    "evidenceFile": null,
    "archivedIds": []
   },
   {
    "id": "office-company",
    "area": "office",
    "areaTitle": "Office / Admin / Helpers",
    "title": "Company page, branding, Messages, Ideas and HQ",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "OF1",
    "rows": 10,
    "verified": 1,
    "claimed": 4,
    "partial": 0,
    "notBuilt": 5,
    "evidenceDate": "2026-09-27T17:32:09Z",
    "evidenceFile": "hive/checks/2026-09-27_gl-wave5-admin.md",
    "archivedIds": [
     "V01·codex",
     "V82"
    ]
   },
   {
    "id": "office-seats",
    "area": "office",
    "areaTitle": "Office / Admin / Helpers",
    "title": "The helper agents and their schedules",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "W1→W2",
    "rows": 12,
    "verified": 1,
    "claimed": 9,
    "partial": 0,
    "notBuilt": 2,
    "evidenceDate": "2026-09-27T02:04:18Z",
    "evidenceFile": "hive/checks/2026-09-27_gl-seats.md",
    "archivedIds": []
   },
   {
    "id": "office-reviews",
    "area": "office",
    "areaTitle": "Office / Admin / Helpers",
    "title": "Omar's open reviews and old planning decisions (kept visible)",
    "finish": 1,
    "verdict": "not built",
    "owner": "Omar",
    "week": "W1 (his)",
    "rows": 8,
    "verified": 0,
    "claimed": 0,
    "partial": 0,
    "notBuilt": 8,
    "evidenceDate": null,
    "evidenceFile": null,
    "archivedIds": [
     "V123",
     "V134",
     "V135",
     "V140",
     "V141"
    ]
   },
   {
    "id": "plat-host",
    "area": "plat",
    "areaTitle": "Platform / Hosting / Launch",
    "title": "Hosting, domain, database, backups and capacity",
    "finish": 2,
    "verdict": "partial",
    "owner": "Omar",
    "week": "OF1 (prototype) · WAIT (Omar) for the real host",
    "rows": 13,
    "verified": 0,
    "claimed": 2,
    "partial": 0,
    "notBuilt": 11,
    "evidenceDate": null,
    "evidenceFile": null,
    "archivedIds": []
   },
   {
    "id": "plat-auth",
    "area": "plat",
    "areaTitle": "Platform / Hosting / Launch",
    "title": "Server-side auth, audit, sync and validated configurations",
    "finish": 2,
    "verdict": "partial",
    "owner": "Omar",
    "week": "OF1–OF2 (prototype) · WAIT (Omar) for production",
    "rows": 12,
    "verified": 0,
    "claimed": 1,
    "partial": 0,
    "notBuilt": 11,
    "evidenceDate": null,
    "evidenceFile": null,
    "archivedIds": []
   },
   {
    "id": "plat-install",
    "area": "plat",
    "areaTitle": "Platform / Hosting / Launch",
    "title": "Install on phones and desktop, offline, updates and rollback",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "W4 (rehearsal) · OF1 (offline)",
    "rows": 7,
    "verified": 0,
    "claimed": 2,
    "partial": 0,
    "notBuilt": 5,
    "evidenceDate": null,
    "evidenceFile": null,
    "archivedIds": []
   },
   {
    "id": "plat-launch",
    "area": "plat",
    "areaTitle": "Platform / Hosting / Launch",
    "title": "Pilot, cut-over and launch approval",
    "finish": 2,
    "verdict": "partial",
    "owner": "Omar",
    "week": "WAIT (the owner, Omar) · after OF2",
    "rows": 5,
    "verified": 0,
    "claimed": 0,
    "partial": 1,
    "notBuilt": 5,
    "evidenceDate": null,
    "evidenceFile": null,
    "archivedIds": []
   },
   {
    "id": "plat-web",
    "area": "plat",
    "areaTitle": "Platform / Hosting / Launch",
    "title": "Public website and staff entry page",
    "finish": 2,
    "verdict": "deferred (waits the owner)",
    "owner": "The owner",
    "week": "WAIT (the owner)",
    "rows": 2,
    "verified": 0,
    "claimed": 0,
    "partial": 0,
    "notBuilt": 2,
    "evidenceDate": null,
    "evidenceFile": null,
    "archivedIds": []
   },
   {
    "id": "plat-home",
    "area": "plat",
    "areaTitle": "Platform / Hosting / Launch",
    "title": "Home, tasks page, tracker and the hive board",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "W1→W2",
    "rows": 1,
    "verified": 2,
    "claimed": 1,
    "partial": 0,
    "notBuilt": 0,
    "evidenceDate": null,
    "evidenceFile": null,
    "archivedIds": []
   },
   {
    "id": "plat-evidence",
    "area": "plat",
    "areaTitle": "Platform / Hosting / Launch",
    "title": "Six-role workflow acceptance (the evidence process)",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "W1→W3 (one batch a week, two browsers never)",
    "rows": 2,
    "verified": 1,
    "claimed": 0,
    "partial": 1,
    "notBuilt": 1,
    "evidenceDate": "2026-09-26T23:02:42Z",
    "evidenceFile": "hive/checks/2026-09-26_go-live-list_review.md",
    "archivedIds": []
   },
   {
    "id": "pres-deck",
    "area": "pres",
    "areaTitle": "Presentation (finish line 1)",
    "title": "The redesigned deck, current screenshots, one-hour demo, guide and downloads",
    "finish": 1,
    "verdict": "partial",
    "owner": "Makki/AI",
    "week": "W3→W4",
    "rows": 2,
    "verified": 0,
    "claimed": 1,
    "partial": 0,
    "notBuilt": 2,
    "evidenceDate": null,
    "evidenceFile": null,
    "archivedIds": [
     "O5"
    ]
   }
  ]
 },
 "archived": {
  "rule": "the v2.4 archive: merged, removed and cancelled-excluded rows kept whole as history with their aliases, rule, reason and dated ruling source, listed under the survivor's outcome section; outside every canonical count and never counted twice — and where an archived id is still a row on the tasks page, that row names its survivor or the record it was archived via",
  "tally": {
   "total": 49,
   "byAction": {
    "cancelled-excluded": 7,
    "removed": 1,
    "merged": 41
   }
  },
  "rows": [
   {
    "id": "V01·codex",
    "action": "cancelled-excluded",
    "survivingId": null,
    "survivorTitle": "",
    "survivorState": null,
    "priorState": "cancelled-excluded",
    "priorWaitingOn": "none",
    "ownerClass": "Omar",
    "rule": "R6",
    "reason": "cancelled-by-Omar-2026-09-15",
    "rulingSource": "Omar 2026-09-15 (Makki Demolition only; vault/topics/decisions/one company only.md) confirmed on the merged row 2026-10-24T03:03Z; the row's cancelled block and flag cancellation-applied-v2.3 in materials/canonical/2026-10-23_canonical-tasks.v2.3.json",
    "note": "Omar 2026-09-15: Makki Demolition only (recorded on tracker V127, status out = Master list 'Deliberately out'; vault/topics/decisions/one company only.md); Omar 2026-10-24T03:03Z, confirmation on the merged row (routed by the Chief of Staff 03:06Z): \"Apply the documented cancellation consistently unless later direct user evidence supersedes it, retain all aliases/history, and explain the small queue adjustment.\"",
    "title": "Roll out across five companies",
    "section": "baseline",
    "aliasesCarried": [
     "V127"
    ],
    "aliases": [
     {
      "id": "V127",
      "title": "Roll it out across five companies"
     }
    ],
    "placedBy": "its own plan-v0.2 card office-company (no survivor)"
   },
   {
    "id": "V82",
    "action": "cancelled-excluded",
    "survivingId": null,
    "survivorTitle": "",
    "survivorState": null,
    "priorState": "cancelled-excluded",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R6",
    "reason": "cancelled-by-Omar-2026-09-15",
    "rulingSource": "Omar 2026-09-15 (Makki Demolition only, one company — vault/topics/decisions/one company only.md); tracker status out = Master list 'Deliberately out' (profile/Master_List_2026-09-16.md, outbox/homebase_makki/tasks.json); the row's cancelled block in materials/canonical/2026-10-23_canonical-tasks.v2.3.json",
    "note": "Omar closed it 2026-09-15: Makki Demolition only, one company",
    "title": "Branches tied into an HQ dashboard",
    "section": "tracker:walkthrough",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its own plan-v0.2 card office-company (no survivor)"
   },
   {
    "id": "V123",
    "action": "cancelled-excluded",
    "survivingId": null,
    "survivorTitle": "",
    "survivorState": null,
    "priorState": "cancelled-excluded",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R6",
    "reason": "not-an-app-task",
    "rulingSource": "Master list 2026-09-16 status na = 'Not an app task' (profile/Master_List_2026-09-16.md; outbox/homebase_makki/tasks.json); the row's cancelled.excluded block in materials/canonical/2026-10-23_canonical-tasks.v2.3.json; 2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902)",
    "note": "excluded (tracker status na = Master list 'Not an app task') — a commercial fact for the deck",
    "title": "Priced in tiers, counted on supervisors, foremen and above — daily labour is not billed",
    "section": "tracker:walkthrough",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its own plan-v0.2 card office-reviews (no survivor)"
   },
   {
    "id": "V134",
    "action": "cancelled-excluded",
    "survivingId": null,
    "survivorTitle": "",
    "survivorState": null,
    "priorState": "cancelled-excluded",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R6",
    "reason": "not-an-app-task",
    "rulingSource": "Master list 2026-09-16 status na = 'Not an app task' (profile/Master_List_2026-09-16.md; outbox/homebase_makki/tasks.json); the row's cancelled.excluded block in materials/canonical/2026-10-23_canonical-tasks.v2.3.json; 2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902)",
    "note": "excluded (tracker status na = Master list 'Not an app task') — a sales fact",
    "title": "Pitch it to the VP; budget is already approved",
    "section": "tracker:walkthrough",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its own plan-v0.2 card office-reviews (no survivor)"
   },
   {
    "id": "V135",
    "action": "cancelled-excluded",
    "survivingId": null,
    "survivorTitle": "",
    "survivorState": null,
    "priorState": "cancelled-excluded",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R6",
    "reason": "not-an-app-task",
    "rulingSource": "Master list 2026-09-16 status na = 'Not an app task' (profile/Master_List_2026-09-16.md; outbox/homebase_makki/tasks.json); the row's cancelled.excluded block in materials/canonical/2026-10-23_canonical-tasks.v2.3.json; 2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902)",
    "note": "excluded (tracker status na = Master list 'Not an app task') — not stated",
    "title": "A second full demo with the whole team",
    "section": "tracker:walkthrough",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its own plan-v0.2 card office-reviews (no survivor)"
   },
   {
    "id": "V140",
    "action": "cancelled-excluded",
    "survivingId": null,
    "survivorTitle": "",
    "survivorState": null,
    "priorState": "cancelled-excluded",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R6",
    "reason": "not-an-app-task",
    "rulingSource": "Master list 2026-09-16 status na = 'Not an app task' (profile/Master_List_2026-09-16.md; outbox/homebase_makki/tasks.json); the row's cancelled.excluded block in materials/canonical/2026-10-23_canonical-tasks.v2.3.json; 2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902)",
    "note": "excluded (tracker status na = Master list 'Not an app task') — a fact about how the company runs; the natural weekly slot for the Ticket Keeper and any weekly rollup",
    "title": "Makki's team meeting is on Friday — \"know Fridays, usually we have our team meetings\"",
    "section": "tracker:walkthrough",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its own plan-v0.2 card office-reviews (no survivor)"
   },
   {
    "id": "V141",
    "action": "cancelled-excluded",
    "survivingId": null,
    "survivorTitle": "",
    "survivorState": null,
    "priorState": "cancelled-excluded",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R6",
    "reason": "not-an-app-task",
    "rulingSource": "Master list 2026-09-16 status na = 'Not an app task' (profile/Master_List_2026-09-16.md; outbox/homebase_makki/tasks.json); the row's cancelled.excluded block in materials/canonical/2026-10-23_canonical-tasks.v2.3.json; 2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902)",
    "note": "excluded (tracker status na = Master list 'Not an app task') — a sales fact: the competitor got in front of the owner by outbound, and he took the call",
    "title": "Fieldflo cold-called Makki — \"when you guys contacted us, I figured, hey, we might as well give you guys a shot\"",
    "section": "tracker:walkthrough",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its own plan-v0.2 card office-reviews (no survivor)"
   },
   {
    "id": "O5",
    "action": "removed",
    "survivingId": null,
    "survivorTitle": "",
    "survivorState": null,
    "priorState": "partial",
    "priorWaitingOn": "Omar",
    "ownerClass": "Omar",
    "rule": "OBSOLETE",
    "reason": "obsolete-superseded-by-2026-10-10-redesign-the-presentation-from-scratch",
    "rulingSource": "Omar 2026-10-10 — vault/topics/decisions/redesign the presentation from scratch.md; the same word recorded 2026-10-10 in hive/EXECUTION_LOG.md (two finish lines: 'The old deck is reference only — not a base to edit') and vault/STATUS.md; the row in outbox/homebase_makki/tasks.json (status part since 2026-09-16)",
    "note": "'Finish the slide-by-slide pass (good / bad / change), from slide 6 on' is a review of the old deck's slides. Omar 2026-10-10 (Telegram): the presentation is redesigned entirely and 'the old deck is reference only — not a base to edit'. A slide-by-slide pass of a deck that is no longer edited forward has no remaining work; the redesign is the live work (plan card pres-deck). The row is archived whole; nothing of it is lost.",
    "title": "Finish the slide-by-slide pass (good / bad / change), from slide 6 on",
    "section": "tracker:decision",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its own plan-v0.2 card pres-deck (no survivor)"
   },
   {
    "id": "P2",
    "action": "merged",
    "survivingId": "F01",
    "survivorTitle": "Company operations dashboard",
    "survivorState": "complete",
    "priorState": "complete",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R1-page",
    "reason": "duplicate-of-F01",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); rule R1 in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the page row's text in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the requirement's statement in materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "The owner's Dashboard page (tracker: four hero cards, each with a click-through to another tab) is the visible outcome of F01 'Company operations dashboard — show company level operations metrics and drill into relevant records'; owner, complete on both sides; F01's wave-3 grade stands, P2's tracker 'done' rides as a claim on the alias.",
    "title": "Dashboard — Owner / Company Overview",
    "section": "tracker:app",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor F01"
   },
   {
    "id": "P6",
    "action": "merged",
    "survivingId": "V30·codex",
    "survivorTitle": "Project import and complete project book",
    "survivorState": "complete",
    "priorState": "complete",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R1-page",
    "reason": "duplicate-of-V30·codex",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); rule R1 in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the page row's text in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the requirement's statement in materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "The owner's Project Book page (tracker: KPIs and the open-jobs table with the book behind each job) is the visible outcome of V30·codex 'Project import and complete project book'; owner, complete on both sides; V30's batch-1 grade stands. P6 stays distinct from M-BOOK (a different, blocked requirement — the depth still waiting on the owner), as v2.2 pair 21 ruled.",
    "title": "Project Book",
    "section": "tracker:app",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor V30·codex"
   },
   {
    "id": "P15",
    "action": "merged",
    "survivingId": "F29",
    "survivorTitle": "Equipment documents and rentals",
    "survivorState": "complete",
    "priorState": "complete",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R1-page",
    "reason": "duplicate-of-F29",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); rule R1 in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the page row's text in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the requirement's statement in materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "The owner's Equipment & Rentals page is the visible outcome of F29 'Equipment documents and rentals — keep documents with equipment records and support rental tracking'; owner, complete on both sides; F29's wave-2 grade stands. v2.2 pair 3 kept them apart as page-vs-requirement; the plan's grouping puts them on one card (gear-assets) and the order's page rule now merges them.",
    "title": "Equipment — Equipment & Rentals",
    "section": "tracker:app",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor F29"
   },
   {
    "id": "P35",
    "action": "merged",
    "survivingId": "F29",
    "survivorTitle": "Equipment documents and rentals",
    "survivorState": "complete",
    "priorState": "complete",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R1-page",
    "reason": "duplicate-of-F29",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); rule R1 in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the page row's text in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the requirement's statement in materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "The site lead's Equipment page — the tracker's own note: 'The same equipment page as row 15 with no value and no day-rate column' (the P15 ↔ P35 pair the v2.2 review observed and did not decide) — is the same visible outcome of F29 for the lead login; F29's acceptance names 'users', not one role; complete on both sides.",
    "title": "Equipment — Equipment & Rentals",
    "section": "tracker:app",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor F29"
   },
   {
    "id": "P13",
    "action": "merged",
    "survivingId": "F30",
    "survivorTitle": "Employee and company credentials",
    "survivorState": "complete",
    "priorState": "complete",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R1-page",
    "reason": "duplicate-of-F30",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); rule R1 in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the page row's text in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the requirement's statement in materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "The owner's Tickets & Certs page (tracker: men on the books, tickets in date, expiring, expired, the Needs-attention table) is the visible outcome of F30 'Employee and company credentials — track certifications and company licences with expiry notifications'; owner, complete on both sides; F30's wave-1 grade stands.",
    "title": "Tickets & Certs — Tickets & Certificates",
    "section": "tracker:app",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor F30"
   },
   {
    "id": "P33",
    "action": "merged",
    "survivingId": "F30",
    "survivorTitle": "Employee and company credentials",
    "survivorState": "complete",
    "priorState": "complete",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R1-page",
    "reason": "duplicate-of-F30",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); rule R1 in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the page row's text in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the requirement's statement in materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "The site lead's My Crew page — the tracker's own note: 'The same ticket page as row 13 limited to his crew' — is the same visible outcome of F30 for the lead login; complete on both sides.",
    "title": "My Crew",
    "section": "tracker:app",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor F30"
   },
   {
    "id": "P17",
    "action": "merged",
    "survivingId": "R08",
    "survivorTitle": "Give accounting staff a restricted workspace",
    "survivorState": "complete",
    "priorState": "complete",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R1-page",
    "reason": "duplicate-of-R08",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); rule R1 in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the page row's text in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the requirement's statement in materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "The bookkeeper's Dashboard (tracker: 'costs and profit are not on the objects this login receives') is the visible outcome of R08 'Give accounting staff a restricted workspace … without access to job costs or profit'; bookkeeper, complete on both sides; R08's batch-1 grade stands.",
    "title": "Dashboard — Accounting Overview",
    "section": "tracker:app",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor R08"
   },
   {
    "id": "P18",
    "action": "merged",
    "survivingId": "R08",
    "survivorTitle": "Give accounting staff a restricted workspace",
    "survivorState": "complete",
    "priorState": "complete",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R1-page",
    "reason": "duplicate-of-R08",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); rule R1 in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the page row's text in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the requirement's statement in materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "The bookkeeper's Outstanding Receivables page is R08's 'outstanding balances' half on the screen; bookkeeper, complete on both sides.",
    "title": "Outstanding — Outstanding Receivables",
    "section": "tracker:app",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor R08"
   },
   {
    "id": "P20",
    "action": "merged",
    "survivingId": "R08",
    "survivorTitle": "Give accounting staff a restricted workspace",
    "survivorState": "complete",
    "priorState": "complete",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R1-page",
    "reason": "duplicate-of-R08",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); rule R1 in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the page row's text in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the requirement's statement in materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "The bookkeeper's Payments page (paid / settled, still owed, invoice status) is R08's 'review balances' on the screen; bookkeeper, complete on both sides. P20 stays distinct from M-REC and W08 (blocked requirements — partial payments and reconciliation still waiting on the owner).",
    "title": "Payments",
    "section": "tracker:app",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor R08"
   },
   {
    "id": "P19",
    "action": "merged",
    "survivingId": "R11",
    "survivorTitle": "Flag jobs due for invoicing",
    "survivorState": "complete",
    "priorState": "complete",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R1-page",
    "reason": "duplicate-of-R11",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); rule R1 in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the page row's text in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the requirement's statement in materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "The bookkeeper's To Invoice page (finished-but-unbilled jobs with value and GST) is the visible outcome of R11 'Flag jobs due for invoicing' — the b1 grade read it there ('Bookkeeper headline 4 jobs completed and eligible to bill'); bookkeeper, complete on both sides; R11's grade and acceptance row stand.",
    "title": "To Invoice",
    "section": "tracker:app",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor R11"
   },
   {
    "id": "P21",
    "action": "merged",
    "survivingId": "V05·codex",
    "survivorTitle": "Payroll-only accountant role",
    "survivorState": "complete",
    "priorState": "complete",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R1-page",
    "reason": "duplicate-of-V05·codex",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); rule R1 in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the page row's text in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the requirement's statement in materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "The bookkeeper's Payroll hours page (ships off; the owner switches it on; hours and no rate) is the visible outcome of V05·codex 'Payroll-only accountant role'; bookkeeper, complete on both sides; V05's batch-2 grade stands.",
    "title": "Payroll hours",
    "section": "tracker:app",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor V05·codex"
   },
   {
    "id": "P26",
    "action": "merged",
    "survivingId": "F06",
    "survivorTitle": "Estimate versus actual project view",
    "survivorState": "complete",
    "priorState": "complete",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R1-page",
    "reason": "duplicate-of-F06",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); rule R1 in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the page row's text in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the requirement's statement in materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "The estimator's Bid vs Actual page (budget, spent, codes over budget per open job he bid) is the visible outcome of F06 'Estimate versus actual project view — estimate, actual and difference for each metric'; estimator, complete on both sides; F06's batch-2 grade stands.",
    "title": "Bid vs Actual",
    "section": "tracker:app",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor F06"
   },
   {
    "id": "P40",
    "action": "merged",
    "survivingId": "V19·codex",
    "survivorTitle": "Employee QR certificate access",
    "survivorState": "complete",
    "priorState": "complete",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R1-page",
    "reason": "duplicate-of-V19·codex",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); rule R1 in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the page row's text in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the requirement's statement in materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "The crew's My Tickets page ('The code on your hard hat — his QR drawn on the device … See what the inspector sees') is the visible outcome of V19·codex 'Employee QR certificate access — unique employee QR codes for hard-hat inspection, employees able to see their own deficiencies'; crew, complete on both sides; V19's wave-1 grade stands.",
    "title": "My Tickets",
    "section": "tracker:app",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor V19·codex"
   },
   {
    "id": "P41",
    "action": "merged",
    "survivingId": "V19·codex",
    "survivorTitle": "Employee QR certificate access",
    "survivorState": "complete",
    "priorState": "complete",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R1-page",
    "reason": "duplicate-of-V19·codex",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); rule R1 in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the page row's text in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the requirement's statement in materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "The no-login read-only ticket check is V19·codex's 'external viewers limited to active certificates' on the screen; complete on both sides.",
    "title": "Read-only ticket check",
    "section": "tracker:app",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor V19·codex"
   },
   {
    "id": "A19",
    "action": "merged",
    "survivingId": "V19·codex",
    "survivorTitle": "Employee QR certificate access",
    "survivorState": "complete",
    "priorState": "complete",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R1-page",
    "reason": "duplicate-of-V19·codex",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); rule R1 in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the page row's text in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the requirement's statement in materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "'See what the inspector sees → the scan page in a sheet' is the action that opens V19·codex's viewer; owner, complete on both sides.",
    "title": "See what the inspector sees → the scan page in a sheet, plus Open it as its own page ↗",
    "section": "tracker:app",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor V19·codex"
   },
   {
    "id": "A56",
    "action": "merged",
    "survivingId": "V19·codex",
    "survivorTitle": "Employee QR certificate access",
    "survivorState": "complete",
    "priorState": "complete",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R1-page",
    "reason": "duplicate-of-V19·codex",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); rule R1 in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the page row's text in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the requirement's statement in materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "'Scan the QR → page 41 (drawn on the device, works with no signal)' is the scan that reaches V19·codex's viewer; complete on both sides.",
    "title": "Scan the QR → page 41. Drawn on the device, so it works with no signal",
    "section": "tracker:app",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor V19·codex"
   },
   {
    "id": "A12",
    "action": "merged",
    "survivingId": "V06·codex",
    "survivorTitle": "Granular module permissions",
    "survivorState": "complete",
    "priorState": "complete",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R1-page",
    "reason": "duplicate-of-V06·codex",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); rule R1 in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the page row's text in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the requirement's statement in materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "'Per-person, per-tab on/off switch — flip it, sign in as them, the tab is gone from their menu' is the visible outcome of V06·codex 'Granular module permissions — per-tab employee roles'; owner, complete on both sides; V06's batch-1 grade stands.",
    "title": "Per-person, per-tab on/off switch — flip it, sign in as them, the tab is gone from their menu and will not open by link",
    "section": "tracker:app",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor V06·codex"
   },
   {
    "id": "A20",
    "action": "merged",
    "survivingId": "R04",
    "survivorTitle": "Preserve categorized job costs",
    "survivorState": "complete",
    "priorState": "complete",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R1-page",
    "reason": "duplicate-of-R04",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); rule R1 in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the page row's text in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the requirement's statement in materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "'Job modal — … the money block gated per role' is the visible outcome of R04 'Preserve categorized job costs — opening a job displays category detail and a reconcilable total; authorized owners can compare costs with selling price'; owner, complete on both sides; R04's batch-2 grade stands.",
    "title": "Job modal — invoice #, PO #, quote date, demo date, then the money block gated per role (Owner: sell, total w/GST, cost, profit, margin, GST + a cost breakdown · Site lead: contract, actual cost, cost-vs-contract, assignee + his cost breakdown · Bookkeeper: invoice value, owed, GST, to-invoice). Crew and Estimator cannot open it at all (openJob returns early)",
    "section": "tracker:app",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor R04"
   },
   {
    "id": "A24",
    "action": "merged",
    "survivingId": "F06",
    "survivorTitle": "Estimate versus actual project view",
    "survivorState": "complete",
    "priorState": "complete",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R1-page",
    "reason": "duplicate-of-F06",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); rule R1 in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the page row's text in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the requirement's statement in materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "'Budget, spent, a used bar and (owner only) variance, per code and in total' is F06's 'estimate, actual and difference for each metric' on the cost-code pane; complete on both sides.",
    "title": "Budget, spent, a used bar,  percent and (owner only) variance, per code and in total",
    "section": "tracker:app",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor F06"
   },
   {
    "id": "A28",
    "action": "merged",
    "survivingId": "F08",
    "survivorTitle": "Project document sharing",
    "survivorState": "complete",
    "priorState": "complete",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R1-page",
    "reason": "duplicate-of-F08",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); rule R1 in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the page row's text in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the requirement's statement in materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "'Take / choose photo — stage, caption, camera or file picker, kept on the device' is the photo half of F08 'Project document sharing — drawings, specifications, documentation and photos within a project vault'; complete on both sides; F08's gl-notbuilt6 grade stands.",
    "title": "Take / choose photo — stage, caption, camera or file picker; resized to 960 px, kept on the device, capped at 24 added photos",
    "section": "tracker:app",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor F08"
   },
   {
    "id": "A29",
    "action": "merged",
    "survivingId": "F08",
    "survivorTitle": "Project document sharing",
    "survivorState": "complete",
    "priorState": "complete",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R1-page",
    "reason": "duplicate-of-F08",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); rule R1 in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the page row's text in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the requirement's statement in materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "'Open a photo full size, with ← Back to job' is the same F08 photo vault on the screen; complete on both sides.",
    "title": "Open a photo full size, with ← Back to job",
    "section": "tracker:app",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor F08"
   },
   {
    "id": "A30",
    "action": "merged",
    "survivingId": "F08",
    "survivorTitle": "Project document sharing",
    "survivorState": "complete",
    "priorState": "complete",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R1-page",
    "reason": "duplicate-of-F08",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); rule R1 in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the page row's text in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the requirement's statement in materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "'Open a document — a placeholder page watermarked DEMO, with which jobs require it' is F08's document vault on the screen (placeholders, labelled demo); complete on both sides.",
    "title": "Open a document — a placeholder page watermarked DEMO, with which jobs require it, and ← Back to job",
    "section": "tracker:app",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor F08"
   },
   {
    "id": "A31",
    "action": "merged",
    "survivingId": "V35·codex",
    "survivorTitle": "Project documents and closeout pack",
    "survivorState": "complete",
    "priorState": "complete",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R1-page",
    "reason": "duplicate-of-V35·codex",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); rule R1 in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the page row's text in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the requirement's statement in materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "'Open the closeout report — scope, permits, tickets the job needed, waste and landfill tickets …' is the visible outcome of V35·codex 'Project documents and closeout pack'; complete on both sides; V35's batch-1 grade stands.",
    "title": "Open the closeout report — scope, permits, tickets the job needed, waste and landfill tickets, hours on the job, change orders, cost codes (owner only), safety, documents, photos, three signature lines. Owner copy carries prices; the site copy is headed \"no prices\"",
    "section": "tracker:app",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor V35·codex"
   },
   {
    "id": "A57",
    "action": "merged",
    "survivingId": "P42",
    "survivorTitle": "Read-only equipment check",
    "survivorState": "complete",
    "priorState": "complete",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R1-page",
    "reason": "duplicate-of-P42",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); rule R1 in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the page row's text in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the requirement's statement in materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "'Scan the QR → page 42' is the scan that opens P42, the read-only equipment check (both tracker rows, both complete, both read-only — the inspection-from-scan gap is GL-008 and stays its own partial row).",
    "title": "Scan the QR → page 42",
    "section": "tracker:app",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor P42"
   },
   {
    "id": "A61",
    "action": "merged",
    "survivingId": "H2",
    "survivorTitle": "The Collector — Nightly: finished-not-invoiced, overdue by age, holdbacks; drafts invoices, never sends",
    "survivorState": "complete",
    "priorState": "complete",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R1-tool",
    "reason": "duplicate-of-H2",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); rule R1 in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); both rows in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A)",
    "note": "'Nightly: what is not invoiced, what is overdue by age, holdbacks. Writes invoice drafts to outbox' is the Collector (H2) described by its output; both complete (tracker), both AI; nothing sends.",
    "title": "Nightly: what is not invoiced, what is overdue by age, holdbacks. Writes invoice drafts to outbox/invoices/ under a DRAFT header. The owner sends invoices, not the app",
    "section": "tracker:app",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor H2"
   },
   {
    "id": "A62",
    "action": "merged",
    "survivingId": "H3",
    "survivorTitle": "The Foreman's Voice — A foreman's voice note becomes a filed daily report",
    "survivorState": "complete",
    "priorState": "complete",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R1-tool",
    "reason": "duplicate-of-H3",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); rule R1 in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); both rows in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A)",
    "note": "'Turns a foreman's end-of-day words into a filed daily and a 5-line confirmation' is the Foreman's Voice (H3) described by its output; both complete (tracker), both AI.",
    "title": "Turns a foreman's end-of-day words (typed or transcribed) into a filed daily and a 5-line confirmation",
    "section": "tracker:app",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor H3"
   },
   {
    "id": "A63",
    "action": "merged",
    "survivingId": "H4",
    "survivorTitle": "The Ticket Keeper — Expiring tickets, who is un-bookable, hard-hat codes — and, since the merge, the OHS and asbestos paperwork tied to the right site",
    "survivorState": "complete",
    "priorState": "complete",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R1-tool",
    "reason": "duplicate-of-H4",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); rule R1 in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); both rows in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A)",
    "note": "'Weekly: expiring tickets, expiries, and who cannot be booked on a crew' is the Ticket Keeper (H4) described by its output; both complete (tracker), both AI.",
    "title": "Weekly: expiring tickets, expiries, and who cannot be booked on a crew",
    "section": "tracker:app",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor H4"
   },
   {
    "id": "V129",
    "action": "merged",
    "survivingId": "V05·codex",
    "survivorTitle": "Payroll-only accountant role",
    "survivorState": "complete",
    "priorState": "complete",
    "priorWaitingOn": "none",
    "ownerClass": "AI",
    "rule": "R1-walk",
    "reason": "duplicate-of-V05·codex",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); rule R1 in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the walkthrough row in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the requirement in materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11) and GO_LIVE.md",
    "note": "The owner's @8:14 ask 'Let the accountant see payroll and nothing else' (tracker note: gated at the field level, hours and no rate, the tab ships off) is V05·codex 'Payroll-only accountant role' said in his words; both complete, both AI; V05's grade stands.",
    "title": "Let the accountant see payroll and nothing else",
    "section": "tracker:walkthrough",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor V05·codex"
   },
   {
    "id": "V130",
    "action": "merged",
    "survivingId": "GL-076",
    "survivorTitle": "A short orientation video for managers — a walkthrough the owner can send his managers so they use the app without being taught one at a time; the owner asked Fieldflo f…",
    "survivorState": "blocked",
    "priorState": "blocked",
    "priorWaitingOn": "Omar",
    "ownerClass": "Omar-then-AI",
    "rule": "R1-walk",
    "reason": "duplicate-of-GL-076",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); rule R1 in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the walkthrough row in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the requirement in materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11) and GO_LIVE.md",
    "note": "The owner's @32:09 ask 'An orientation video for the program, to share with managers' (waits on Omar: a screen recording with a voiceover) is GL-076 'A short orientation video for managers' — one item, one open question (Omar: now on demo data or after go-live); both blocked on Omar. V130 names the AI portion (the recording), so the merged row takes Omar-then-AI (OWNER).",
    "title": "An orientation video for the program, to share with managers",
    "section": "tracker:walkthrough",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor GL-076"
   },
   {
    "id": "O3",
    "action": "merged",
    "survivingId": "GL-054",
    "survivorTitle": "The Collector's nightly cron — approved by Omar 2026-10-03 00:31 UTC (\"2. Yes approve\"); set 00:32 UTC as job `2cc5e203`, `0 5 * * *` America/Edmonton, isola…",
    "survivorState": "complete",
    "priorState": "open",
    "priorWaitingOn": "Omar",
    "ownerClass": "Omar",
    "rule": "R1-§E",
    "reason": "duplicate-of-GL-054",
    "rulingSource": "Omar 2026-10-03 00:31 UTC \"2. Yes approve\" — GO_LIVE.md lines 142–143 (GL-054, GL-055: crons set 00:32 UTC) and materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11); the ask row in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); 2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902)",
    "note": "'Say yes to the nightly Collector and the Monday Ticket Keeper schedules' was answered: GO_LIVE.md GL-054/GL-055 record Omar's yes of 2026-10-03 00:31 UTC ('2. Yes approve'; crons 2cc5e203 and e7259a56 set 00:32 UTC) and the tracker's own H2/H4 notes say 'scheduled 2026-10-03'. O3 is that ask said once more; it folds onto GL-054 (complete, Omar-then-AI) and leaves Omar's queue — the yes was given.",
    "title": "Say yes to the nightly Collector and the Monday Ticket Keeper schedules",
    "section": "tracker:decision",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor GL-054"
   },
   {
    "id": "O6",
    "action": "merged",
    "survivingId": "GL-053",
    "survivorTitle": "A Makki address instead of a pages.dev link (app.makkiinc.ca or similar) — whose Cloudflare account holds Makki's app long-term, then a domain pointed at it;…",
    "survivorState": "blocked",
    "priorState": "open",
    "priorWaitingOn": "Omar",
    "ownerClass": "Omar",
    "rule": "R1-§E",
    "reason": "duplicate-of-GL-053",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); v1 §E precedent restated in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the ask row and its link key in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the GO_LIVE ask row in GO_LIVE.md (2026-10-04) and materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "'Hosting: the owner's own Cloudflare account, or EazyLife's, and a Makki address' is the question GL-053 asks ('whose Cloudflare account holds Makki's app long-term, then a domain pointed at it … Omar's and the owner's to settle'); the tracker links O6 to The owner 12 by its key ali-hosting; GL-053 (waits Both) stands as the one row.",
    "title": "Hosting: the owner's own Cloudflare account, or EazyLife's, and a Makki address",
    "section": "tracker:decision",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor GL-053"
   },
   {
    "id": "The owner 12",
    "action": "merged",
    "survivingId": "GL-053",
    "survivorTitle": "A Makki address instead of a pages.dev link (app.makkiinc.ca or similar) — whose Cloudflare account holds Makki's app long-term, then a domain pointed at it;…",
    "survivorState": "blocked",
    "priorState": "open",
    "priorWaitingOn": "The owner",
    "ownerClass": "The owner",
    "rule": "R1-§E",
    "reason": "duplicate-of-GL-053",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); v1 §E precedent restated in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the ask row and its link key in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the GO_LIVE ask row in GO_LIVE.md (2026-10-04) and materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "'Hosting: your Cloudflare account or EazyLife's, and a Makki address' — the slide-15 ask to the owner — is the same GL-053 question (Omar and the owner); the tracker's key ali-hosting ties it to O6; folds onto GL-053 (waits Both).",
    "title": "Hosting: your Cloudflare account or EazyLife's, and a Makki address",
    "section": "tracker:owner",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor GL-053"
   },
   {
    "id": "O2",
    "action": "merged",
    "survivingId": "GL-067",
    "survivorTitle": "Ask 8 — A texting line, the crew's numbers, and the wording — the only ask that costs money; unblocks labourers-by-text",
    "survivorState": "blocked",
    "priorState": "open",
    "priorWaitingOn": "Omar",
    "ownerClass": "Omar",
    "rule": "R1-§E",
    "reason": "duplicate-of-GL-067",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); v1 §E precedent restated in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the ask row and its link key in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the GO_LIVE ask row in GO_LIVE.md (2026-10-04) and materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "'Say go on the texting number' is GL-067 'Ask 8 — A texting line, the crew's numbers, and the wording — Omar decides the purchase'; the tracker links O2 to The owner 10 by its key ali-textnumber; GL-067 (waits Both) stands.",
    "title": "Say go on the texting number (about $10–20 a month)",
    "section": "tracker:decision",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor GL-067"
   },
   {
    "id": "The owner 10",
    "action": "merged",
    "survivingId": "GL-067",
    "survivorTitle": "Ask 8 — A texting line, the crew's numbers, and the wording — the only ask that costs money; unblocks labourers-by-text",
    "survivorState": "blocked",
    "priorState": "open",
    "priorWaitingOn": "The owner",
    "ownerClass": "The owner",
    "rule": "R1-§E",
    "reason": "duplicate-of-GL-067",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); v1 §E precedent restated in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the ask row and its link key in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the GO_LIVE ask row in GO_LIVE.md (2026-10-04) and materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "'Yes to the texting number' — the slide-15 ask to the owner — is the the owner half of GL-067 ('the owner sends the numbers and approves the wordings'); the tracker's key ali-textnumber ties it to O2; folds onto GL-067 (waits Both).",
    "title": "Yes to the texting number (about $10–20 a month)",
    "section": "tracker:owner",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor GL-067"
   },
   {
    "id": "The owner 11",
    "action": "merged",
    "survivingId": "GL-067",
    "survivorTitle": "Ask 8 — A texting line, the crew's numbers, and the wording — the only ask that costs money; unblocks labourers-by-text",
    "survivorState": "blocked",
    "priorState": "open",
    "priorWaitingOn": "The owner",
    "ownerClass": "The owner",
    "rule": "R1-§E",
    "reason": "duplicate-of-GL-067",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); v1 §E precedent restated in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the ask row and its link key in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the GO_LIVE ask row in GO_LIVE.md (2026-10-04) and materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "'OK the two text wordings (morning, end of day)' is the wording half GL-067 names in its own title ('… and the wording'); folds onto GL-067 (waits Both).",
    "title": "OK the two text wordings (morning, end of day)",
    "section": "tracker:owner",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor GL-067"
   },
   {
    "id": "The owner 14",
    "action": "merged",
    "survivingId": "GL-019",
    "survivorTitle": "GPS clock-in / photo clock-out (FlōTime) — location-verified start, photo-confirmed stop, buddy-punch prevention; and where each man clocked in from, includi…",
    "survivorState": "blocked",
    "priorState": "open",
    "priorWaitingOn": "The owner",
    "ownerClass": "The owner",
    "rule": "R1-§E",
    "reason": "duplicate-of-GL-019",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); v1 §E precedent restated in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the ask row and its link key in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the GO_LIVE ask row in GO_LIVE.md (2026-10-04) and materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "'Do you want to see where each man clocks in from?' is GL-019's own question ('it is the owner's call whether Makki tracks where its men are'; Omar and the owner); the tracker cites Master list V18, which GL-019 names; folds onto GL-019 (waits Both).",
    "title": "Do you want to see where each man clocks in from?",
    "section": "tracker:owner",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor GL-019"
   },
   {
    "id": "The owner 15",
    "action": "merged",
    "survivingId": "GL-033",
    "survivorTitle": "CRM — contacts, prospect records, job walks, a reach-out log with reminders, proposal due-date alerts; the portal has a Pipeline and a Proposal printer, no c…",
    "survivorState": "blocked",
    "priorState": "open",
    "priorWaitingOn": "The owner",
    "ownerClass": "The owner",
    "rule": "R1-§E",
    "reason": "duplicate-of-GL-033",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); v1 §E precedent restated in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the ask row and its link key in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the GO_LIVE ask row in GO_LIVE.md (2026-10-04) and materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "'Do you want a CRM: contacts, job walks, reach-outs?' is GL-033's own question ('needs a yes or no from the owner'); the tracker cites V27, which the CRM card carries; folds onto GL-033 (waits the owner).",
    "title": "Do you want a CRM: contacts, job walks, reach-outs?",
    "section": "tracker:owner",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor GL-033"
   },
   {
    "id": "The owner 16",
    "action": "merged",
    "survivingId": "GL-040",
    "survivorTitle": "Payroll — a multi-approver sign-off chain with a trailing history (who besides the owner is allowed to approve payroll, and in what order); single approver is buil…",
    "survivorState": "blocked",
    "priorState": "open",
    "priorWaitingOn": "The owner",
    "ownerClass": "The owner",
    "rule": "R1-§E",
    "reason": "duplicate-of-GL-040",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); v1 §E precedent restated in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the ask row and its link key in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the GO_LIVE ask row in GO_LIVE.md (2026-10-04) and materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "'Who else signs off payroll, if anyone?' is GL-040's own question ('who besides the owner is allowed to approve payroll, and in what order … the owner names the approvers'); folds onto GL-040 (the owner-then-AI, waits the owner).",
    "title": "Who else signs off payroll, if anyone?",
    "section": "tracker:owner",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor GL-040"
   },
   {
    "id": "The owner 18",
    "action": "merged",
    "survivingId": "GL-045",
    "survivorTitle": "The DEMO band comes off — the permanent band should stay until the owner picks the day",
    "survivorState": "blocked",
    "priorState": "open",
    "priorWaitingOn": "The owner",
    "ownerClass": "The owner",
    "rule": "R1-§E",
    "reason": "duplicate-of-GL-045",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); v1 §E precedent restated in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the ask row and its link key in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the GO_LIVE ask row in GO_LIVE.md (2026-10-04) and materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "'The day the demo data comes out' is GL-045 'The DEMO band comes off — the band stays until the owner picks the day'; folds onto GL-045 (waits the owner).",
    "title": "The day the demo data comes out",
    "section": "tracker:owner",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor GL-045"
   },
   {
    "id": "The owner 3",
    "action": "merged",
    "survivingId": "GL-068",
    "survivorTitle": "Ask 9 — Equipment list, photos, cost codes, a change-order form — what takes the app off demo data",
    "survivorState": "blocked",
    "priorState": "open",
    "priorWaitingOn": "The owner",
    "ownerClass": "The owner",
    "rule": "R1-§E",
    "reason": "duplicate-of-GL-068",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); v1 §E precedent restated in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the ask row and its link key in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the GO_LIVE ask row in GO_LIVE.md (2026-10-04) and materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "'Your equipment list' is the first item of GL-068 'Ask 9 — Equipment list, photos, cost codes, a change-order form' — the slide-15 row of the same ask, as The owner 4/6/8/9/13 were of asks 2/4/3/6/1 in v1 §E; folds onto GL-068 (waits the owner). The owner 2 (crew list) and The owner 5 (forms) have no GO_LIVE ask row of their own and stay.",
    "title": "Your equipment list",
    "section": "tracker:owner",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor GL-068"
   },
   {
    "id": "O7",
    "action": "merged",
    "survivingId": "GL-076",
    "survivorTitle": "A short orientation video for managers — a walkthrough the owner can send his managers so they use the app without being taught one at a time; the owner asked Fieldflo f…",
    "survivorState": "blocked",
    "priorState": "open",
    "priorWaitingOn": "Omar",
    "ownerClass": "Omar",
    "rule": "R1-§E",
    "reason": "duplicate-of-GL-076",
    "rulingSource": "2026-10-31 (Auditor, on the Chief of Staff's 00:30Z order carrying Omar 2026-10-30 / Telegram 1902); v1 §E precedent restated in materials/canonical/2026-10-23_dedupe-decisions.v2.3.md (rules R1–R6, OWNER; 2026-10-24); the ask row and its link key in outbox/homebase_makki/tasks.json (tracker rows as built 2026-10-23, the v2.3 source A); the GO_LIVE ask row in GO_LIVE.md (2026-10-04) and materials/accounting/accounting-data.json (accounting r6 statements, 2026-10-11)",
    "note": "'An orientation video for managers: a screen recording with a voiceover' is GL-076's own question ('Omar decides: record it now on demo data, or after go-live'); the tracker cites V130, merged onto GL-076 in the same step; folds onto GL-076 (waits Omar).",
    "title": "An orientation video for managers: a screen recording with a voiceover",
    "section": "tracker:decision",
    "aliasesCarried": [],
    "aliases": [],
    "placedBy": "its survivor GL-076"
   }
  ]
 },
 "cancelledExcluded": [],
 "cancelledProjects": {
  "from": "vault/current/cancelled.json",
  "count": 0,
  "emptyOnPurpose": "No whole project of the thirteen has been cancelled, so nothing is listed. Omar's one cancelling word on record — 'Forget that', 2026-10-03, about adding the owner to this line — cancels an item inside hive-instance, not the project, and a project-level entry here would force that page's status to `cancelled`, which would be false. It is therefore kept on the hive-instance page as dated history instead. Writing a cancellation that Omar never gave, in order to exercise a code path, would be inventing a fact. Rule 6 is exercised by the fixtures under hive/tests/projmem/ and by the Checker's own fixtures, not by faking an entry here."
 },
 "historical": {
  "label": "Historical — accounting r6, 2026-10-11",
  "date": "2026-10-11",
  "why": "Superseded as the page's source by the canonical accounting named above. Kept folded for the record; none of these figures is a current count.",
  "accounting": {
   "file": "materials/accounting/accounting-data.json",
   "generatedAt": "2026-10-11T15:54:39.756Z",
   "revision": "r6",
   "versionLine": "Makki · Final accounting of every ID — r6 (2026-10-11T15:54:41.900Z)",
   "records": 347,
   "sections": {
    "Complete": 100,
    "In progress": 53,
    "Needs Omar": 107,
    "Needs Ali": 87
   },
   "printedCounts": {
    "Complete": 100,
    "In progress": 53,
    "Needs Omar": 107,
    "Needs Ali": 87
   },
   "recordedLiveVersion": "v32-nb6",
   "recordedOnDiskVersion": "v38-oh1",
   "batches": [
    {
     "n": 1,
     "label": "batch1-notes-invoice-pm",
     "state": "graded",
     "ids": 9
    },
    {
     "n": 2,
     "label": "batch2-money-payroll",
     "state": "graded",
     "ids": 6
    },
    {
     "n": 3,
     "label": "batch3-roles-nav",
     "state": "graded",
     "ids": 2
    },
    {
     "n": 5,
     "label": "batch5-time-crew",
     "state": "graded",
     "ids": 11
    },
    {
     "n": 6,
     "label": "batch6-certs-assets-warehouse",
     "state": "queued",
     "ids": 12
    },
    {
     "n": 7,
     "label": "batch7-forms-incidents-tm-project",
     "state": "queued",
     "ids": 14
    },
    {
     "n": 8,
     "label": "batch8-review-queue",
     "state": "queued",
     "ids": 1
    },
    {
     "n": 9,
     "label": "batch9-foundation-prototype",
     "state": "queued",
     "ids": 2
    },
    {
     "n": 10,
     "label": "batch10-reporting-cutoff",
     "state": "queued",
     "ids": 0
    },
    {
     "n": 11,
     "label": "billing-completion",
     "state": "graded",
     "ids": 3
    },
    {
     "n": 12,
     "label": "batch12-import-idempotency",
     "state": "queued",
     "ids": 1
    },
    {
     "n": 13,
     "label": "batch3fix-crew-board-matrix",
     "state": "graded",
     "ids": 0
    }
   ]
  },
  "remainingWorkDraft": {
   "file": "materials/handoff/2026-10-11_1007_remaining-work/DRAFT_REMAINING_WORK_2026-10-11_v1.md",
   "baseline": "Baseline: accounting r5 (2026-10-10 03:50Z; 347 ids = 162 + 71 + 109 + 5 additions; Complete 85 · In progress 69 · Needs Omar 106 · Needs Ali 87, its own check PASS 36 / FAIL 0). Dated evidence since r5, not yet folded into an r6: batch 5 graded clean r2 129/0/0 (10-10), batch 11 graded 58/58 on the corrected instrument (10-10), b3fix (= batch 13) graded (10-10). Live stays v32-nb6 on both URLs; disk is v37-b5; nothing published since 2026-10-04; nothing has reached the owner. Nothing here is launch evidence.",
   "presentationReady": [
    {
     "n": "A1",
     "item": "Open the v3.1 PPTX and the guide DOCX in Office; run RENDER_REVIEW_CHECKLIST.md (0705 packet)",
     "who": "Omar, a machine with Office",
     "state": "open — the only unverified step; PDFs are the rendering of record until it runs"
    },
    {
     "n": "A2",
     "item": "Omar reads HANDOFF.md §2 (deck PDF a9181f29…, PPTX v3.1, guide, demo r2) and says which build the demo shows",
     "who": "Omar",
     "state": "open"
    },
    {
     "n": "A3",
     "item": "Two portal defects seen on v37-b5 screens: a competitor's and the agency's name in client-facing copy; an unsized icon pushing five screens down",
     "who": "AI, one Builder on portal/, after Omar's word",
     "state": "named 10-10, not fixed, no batch"
    },
    {
     "n": "A4",
     "item": "Re-shoot deck screenshots (now v36-b11) on whichever build Omar names final",
     "who": "AI, after A2",
     "state": "waits on A2"
    },
    {
     "n": "A5",
     "item": "Send to the owner",
     "who": "Omar only",
     "state": "not before A1"
    }
   ],
   "queueB1": [
    {
     "order": "1",
     "batch": "accounting r6 (no portal write, no browser)",
     "rows": "moves 5 + 3 + 2 rows to Complete (demo) for batches 5, 11, b3fix; 3 stale r5 rows",
     "needs": "nothing",
     "state": "queued, not run"
    },
    {
     "order": "2",
     "batch": "batch 6 `batch6-certs-assets-yard`",
     "rows": "12: F26 F27 F31 V24 M-ASSET M-CERT M-WARE GL-005 GL-008 GL-009 GL-099 GL-101",
     "needs": "Checker criteria pinned first",
     "state": "queued, no criteria, nothing assigned — next Builder batch"
    },
    {
     "order": "3",
     "batch": "batch 7 `batch7-forms-tm-project`",
     "rows": "14: F23 V09 V16 M-FORM M-INC M-TM GL-041 GL-042 GL-095–098 GL-100 GL-102",
     "needs": "behind 6",
     "state": "queued"
    },
    {
     "order": "4",
     "batch": "batch 10 `batch10-reporting-cutoff`",
     "rows": "M-CST A9 (dated cutoff printed on the job-cost report)",
     "needs": "behind 7",
     "state": "queued"
    },
    {
     "order": "5",
     "batch": "batch 8 `batch8-review-queue`",
     "rows": "D02 (owner-side Review queue pane; RULE #1 stays)",
     "needs": "behind 10",
     "state": "queued"
    },
    {
     "order": "6",
     "batch": "batch 12 `batch12-import-idempotency`",
     "rows": "D03 (idempotency test on the demo CSV import)",
     "needs": "behind 8",
     "state": "queued"
    },
    {
     "order": "7",
     "batch": "re-grade queue",
     "rows": "22 rows whose only grade is Codex's crosswalk (R02 R05 R06 R15 R20 W02 W03 W05 W09 F05 F09 F15 F17 F19 F41 F45 F46 F49 F50 V04 V13 V28)",
     "needs": "a Checker criteria file per row, then a run",
     "state": "not in a batch"
    },
    {
     "order": "8",
     "batch": "batch 9 `batch9-foundation-prototype`",
     "rows": "M-AUTH·impl, O-DATA·impl (local prototype only)",
     "needs": "parent decisions stay Omar's",
     "state": "queued"
    },
    {
     "order": "—",
     "batch": "owner's money reports inside the app (10-10 decision)",
     "rows": "not an id yet",
     "needs": "spec, then a batch",
     "state": "not started"
    }
   ]
  }
 },
 "rows": [
  {
   "id": "F01",
   "canonicalId": "F01",
   "canonicalState": "complete",
   "sourceId": "F01",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Company operations dashboard",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave3-board.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "P2",
     "title": "Dashboard — Owner / Company Overview",
     "state": "complete",
     "cancelledNote": null
    }
   ],
   "flags": [
    "merged-v2.4"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "M-DASH",
    "GL-016",
    "GL-089",
    "V08·codex",
    "V09·codex",
    "V11·codex",
    "V13·codex",
    "V14·codex"
   ],
   "card": "mgmt-dash",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-dash \"Dashboard, stat tiles and the job-site map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave3-board.md",
    "hive/checks/2026-10-04_dash-4tabs.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "Company operations dashboard",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "F03",
   "canonicalId": "F03",
   "canonicalState": "complete",
   "sourceId": "F03",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Budget and overtime indicators",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave3-board.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-CST",
    "GL-016",
    "GL-096"
   ],
   "card": "mgmt-dash",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-dash \"Dashboard, stat tiles and the job-site map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave3-board.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "Budget and overtime indicators",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "F06",
   "canonicalId": "F06",
   "canonicalState": "complete",
   "sourceId": "F06",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Estimate versus actual project view",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-10-06_batch2-money-payroll.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "P26",
     "title": "Bid vs Actual",
     "state": "complete",
     "cancelledNote": null
    },
    {
     "id": "A24",
     "title": "Budget, spent, a used bar,  percent and (owner only) variance, per code and in total",
     "state": "complete",
     "cancelledNote": null
    }
   ],
   "flags": [
    "merged-v2.4",
    "merged-v2.4"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:08:26.715Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "M-CST",
    "GL-096",
    "GL-098"
   ],
   "card": "fin-cost",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cost \"Job costing, budgets, cost codes and P&L\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-10-06_batch2-money-payroll.md"
   ],
   "gradeRefPrevious": {
    "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
    "line": 145,
    "namedAs": "F06",
    "via": "v1.0.4 mechanics — superseded, reported only"
   },
   "gradeCandidates": [
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 3,
     "namedAs": "F06",
     "reason": "a Task: line, not a verdict"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 108,
     "namedAs": "F06",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 109,
     "namedAs": "F06",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 110,
     "namedAs": "F06",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 111,
     "namedAs": "F06",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 112,
     "namedAs": "F06",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 113,
     "namedAs": "F06",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 114,
     "namedAs": "F06",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 115,
     "namedAs": "F06",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 116,
     "namedAs": "F06",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 117,
     "namedAs": "F06",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 118,
     "namedAs": "F06",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 119,
     "namedAs": "F06",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 120,
     "namedAs": "F06",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 121,
     "namedAs": "F06",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 122,
     "namedAs": "F06",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 145,
     "namedAs": "F06",
     "reason": "a numbered criteria-table row, not a result"
    }
   ],
   "plainTitle": "Estimate versus actual project view",
   "outcome": "Completed on demo data: built and finished, reported finished 6 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "F08",
   "canonicalId": "F08",
   "canonicalState": "complete",
   "sourceId": "F08",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Project document sharing",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-10-04_gl-notbuilt6.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "A28",
     "title": "Take / choose photo — stage, caption, camera or file picker; resized to 960 px, kept on the device, capped at 24 added photos",
     "state": "complete",
     "cancelledNote": null
    },
    {
     "id": "A29",
     "title": "Open a photo full size, with ← Back to job",
     "state": "complete",
     "cancelledNote": null
    },
    {
     "id": "A30",
     "title": "Open a document — a placeholder page watermarked DEMO, with which jobs require it, and ← Back to job",
     "state": "complete",
     "cancelledNote": null
    }
   ],
   "flags": [
    "merged-v2.4",
    "merged-v2.4",
    "merged-v2.4"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "M-DOC",
    "GL-035",
    "F52",
    "F53",
    "F56",
    "V35·codex"
   ],
   "card": "mgmt-docs",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-docs \"Documents, photos, drawings and the closeout report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-10-04_gl-notbuilt6.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "Project document sharing",
   "outcome": "Completed on demo data: built and finished, reported finished 4 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "F11",
   "canonicalId": "F11",
   "canonicalState": "complete",
   "sourceId": "F11",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Roll call and attendance exceptions",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave3-board.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-TIME",
    "GL-030"
   ],
   "card": "crew-time",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-time \"Time, breaks, per diem, signatures and end of day\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave3-board.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "Roll call and attendance exceptions",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "F13",
   "canonicalId": "F13",
   "canonicalState": "complete",
   "sourceId": "F13",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Digital signatures for time records",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-10-10_batch5-time-crew.r2.grade.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "b1-acceptance-holds",
    "b2-acceptance-holds"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:49:56.324Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-TIME",
    "GL-036",
    "GL-090"
   ],
   "card": "crew-time",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-time \"Time, breaks, per diem, signatures and end of day\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": {
    "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
    "line": 27,
    "namedAs": "F13",
    "via": "ruling"
   },
   "gradeFilesLookedAt": [
    "hive/checks/2026-10-10_batch5-time-crew.r2.grade.md",
    "hive/checks/2026-10-10_batch5-time-crew.md",
    "hive/checks/2026-10-10_batch5-time-crew.r2c.measure_full.out",
    "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
    "hive/checks/2026-10-25_workflows-b2.r1c.grade.md"
   ],
   "gradeRefPrevious": {
    "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
    "line": 27,
    "namedAs": "F13",
    "via": "v1.0.4 mechanics — superseded, reported only"
   },
   "plainTitle": "Digital signatures for time records",
   "outcome": "Completed on demo data: built and finished, reported finished 10 October 2026; a final review on evidence ruled on it.",
   "next": "Nothing further: the final review ruled on this row."
  },
  {
   "id": "F14",
   "canonicalId": "F14",
   "canonicalState": "complete",
   "sourceId": "F14",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Breaks per diem and asset time",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-10-10_batch5-time-crew.r2.grade.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "b1-acceptance-partial-confirmed-same-gap",
    "b2-acceptance-holds"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:49:56.324Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-TIME",
    "GL-036",
    "GL-032",
    "GL-041"
   ],
   "card": "crew-time",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-time \"Time, breaks, per diem, signatures and end of day\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-10-10_batch5-time-crew.r2.grade.md",
    "hive/checks/2026-10-10_batch5-time-crew.md",
    "hive/checks/2026-10-10_batch5-time-crew.r2c.measure_full.out",
    "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
    "hive/checks/2026-10-25_workflows-b2.r1c.grade.md"
   ],
   "gradeRefPrevious": {
    "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
    "line": 27,
    "namedAs": "F14",
    "via": "v1.0.4 mechanics — superseded, reported only"
   },
   "gradeCandidates": [
    {
     "file": "hive/checks/2026-10-10_batch5-time-crew.md",
     "line": 1,
     "namedAs": "F14",
     "reason": "no passing verdict for the id outside code or quotes on its own line"
    },
    {
     "file": "hive/checks/2026-10-10_batch5-time-crew.md",
     "line": 12,
     "namedAs": "F14",
     "reason": "no passing verdict for the id outside code or quotes on its own line"
    },
    {
     "file": "hive/checks/2026-10-10_batch5-time-crew.md",
     "line": 61,
     "namedAs": "F14",
     "reason": "no passing verdict for the id outside code or quotes on its own line"
    },
    {
     "file": "hive/checks/2026-10-10_batch5-time-crew.md",
     "line": 64,
     "namedAs": "F14",
     "reason": "no passing verdict for the id outside code or quotes on its own line"
    },
    {
     "file": "hive/checks/2026-10-10_batch5-time-crew.md",
     "line": 184,
     "namedAs": "F14",
     "reason": "no passing verdict for the id outside code or quotes on its own line"
    },
    {
     "file": "hive/checks/2026-10-10_batch5-time-crew.md",
     "line": 186,
     "namedAs": "F14",
     "reason": "no passing verdict for the id outside code or quotes on its own line"
    },
    {
     "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
     "line": 17,
     "namedAs": "F14",
     "reason": "no passing verdict for the id outside code or quotes on its own line"
    },
    {
     "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
     "line": 27,
     "namedAs": "F14",
     "reason": "the verdict on this line is for another item; the id is only mentioned"
    },
    {
     "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
     "line": 28,
     "namedAs": "F14",
     "reason": "partial is never a pass"
    },
    {
     "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
     "line": 38,
     "namedAs": "F14",
     "reason": "partial is never a pass"
    },
    {
     "file": "hive/checks/2026-10-25_workflows-b2.r1c.grade.md",
     "line": 3,
     "namedAs": "F14",
     "reason": "partial is never a pass"
    },
    {
     "file": "hive/checks/2026-10-25_workflows-b2.r1c.grade.md",
     "line": 27,
     "namedAs": "F14",
     "reason": "no passing verdict for the id outside code or quotes on its own line"
    },
    {
     "file": "hive/checks/2026-10-25_workflows-b2.r1c.grade.md",
     "line": 31,
     "namedAs": "F14",
     "reason": "no evidence reference beside it"
    },
    {
     "file": "hive/checks/2026-10-25_workflows-b2.r1c.grade.md",
     "line": 85,
     "namedAs": "F14",
     "reason": "the verdict on this line is for another item; the id is only mentioned"
    }
   ],
   "plainTitle": "Breaks per diem and asset time",
   "outcome": "Completed on demo data: built and finished, reported finished 10 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "F18",
   "canonicalId": "F18",
   "canonicalState": "complete",
   "sourceId": "F18",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Temporary and contracted labour costs",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-10-10_batch5-time-crew.r2.grade.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "b1-acceptance-holds",
    "b2-acceptance-holds"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:49:56.324Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-CST",
    "GL-087"
   ],
   "card": "fin-cost",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cost \"Job costing, budgets, cost codes and P&L\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": {
    "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
    "line": 29,
    "namedAs": "F18",
    "via": "ruling"
   },
   "gradeFilesLookedAt": [
    "hive/checks/2026-10-10_batch5-time-crew.r2.grade.md",
    "hive/checks/2026-10-10_batch5-time-crew.md",
    "hive/checks/2026-10-10_batch5-time-crew.r2c.measure_full.out",
    "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
    "hive/checks/2026-10-25_workflows-b2.r1c.grade.md"
   ],
   "gradeRefPrevious": {
    "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
    "line": 22,
    "namedAs": "F18",
    "via": "v1.0.4 mechanics — superseded, reported only"
   },
   "plainTitle": "Temporary and contracted labour costs",
   "outcome": "Completed on demo data: built and finished, reported finished 10 October 2026; a final review on evidence ruled on it.",
   "next": "Nothing further: the final review ruled on this row."
  },
  {
   "id": "F20",
   "canonicalId": "F20",
   "canonicalState": "complete",
   "sourceId": "F20",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Equipment scheduling",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave3-board.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-SCH",
    "GL-032",
    "F19",
    "F21",
    "F22",
    "F23",
    "F24",
    "V38·codex",
    "V51·codex"
   ],
   "card": "mgmt-sched",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-sched \"Schedule board, Timeline and the 4-week look-ahead\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave3-board.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "Equipment scheduling",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "F22",
   "canonicalId": "F22",
   "canonicalState": "complete",
   "sourceId": "F22",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Double booking alerts",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave3-board.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-SCH",
    "GL-031",
    "F19",
    "F20",
    "F21",
    "F23",
    "F24",
    "V38·codex",
    "V51·codex"
   ],
   "card": "mgmt-sched",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-sched \"Schedule board, Timeline and the 4-week look-ahead\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave3-board.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "Double booking alerts",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "F24",
   "canonicalId": "F24",
   "canonicalState": "complete",
   "sourceId": "F24",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Schedule to timesheet preparation",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-10-10_batch5-time-crew.r2.grade.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "b1-acceptance-holds"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:49:56.324Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-HEAD",
    "GL-001",
    "GL-077",
    "F19",
    "F20",
    "F21",
    "F22",
    "F23",
    "V38·codex",
    "V51·codex"
   ],
   "card": "crew-startday",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-startday \"Start Day, timesheet head start and the daily report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": {
    "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
    "line": 23,
    "namedAs": "F24",
    "via": "ruling"
   },
   "gradeFilesLookedAt": [
    "hive/checks/2026-10-10_batch5-time-crew.r2.grade.md",
    "hive/checks/2026-10-10_batch5-time-crew.md",
    "hive/checks/2026-10-10_batch5-time-crew.r2c.measure_full.out",
    "hive/checks/2026-10-25_workflows-b1.r1c.grade.md"
   ],
   "gradeRefPrevious": {
    "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
    "line": 23,
    "namedAs": "F24",
    "via": "v1.0.4 mechanics — superseded, reported only"
   },
   "plainTitle": "Schedule to timesheet preparation",
   "outcome": "Completed on demo data: built and finished, reported finished 10 October 2026; a final review on evidence ruled on it.",
   "next": "Nothing further: the final review ruled on this row."
  },
  {
   "id": "F25",
   "canonicalId": "F25",
   "canonicalState": "complete",
   "sourceId": "F25",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Warehouse and project stock",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave2-forms.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-WARE",
    "GL-009",
    "GL-012",
    "F26",
    "F27",
    "R15",
    "V28·codex",
    "V29·codex"
   ],
   "card": "gear-ware",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-ware \"Warehouse, loadouts, inventory and materials\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave2-forms.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "Warehouse and project stock",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "F28",
   "canonicalId": "F28",
   "canonicalState": "complete",
   "sourceId": "F28",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Inspection maintenance and low stock reminders",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave3-board.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-ASSET",
    "GL-080",
    "GL-009"
   ],
   "card": "gear-assets",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-assets \"Equipment records, maintenance, inspections and the equipment map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave3-board.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "Inspection maintenance and low stock reminders",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "F29",
   "canonicalId": "F29",
   "canonicalState": "complete",
   "sourceId": "F29",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Equipment documents and rentals",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave2-forms.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "P15",
     "title": "Equipment — Equipment & Rentals",
     "state": "complete",
     "cancelledNote": null
    },
    {
     "id": "P35",
     "title": "Equipment — Equipment & Rentals",
     "state": "complete",
     "cancelledNote": null
    }
   ],
   "flags": [
    "merged-v2.4",
    "merged-v2.4"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "M-ASSET",
    "GL-006",
    "GL-008"
   ],
   "card": "gear-assets",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-assets \"Equipment records, maintenance, inspections and the equipment map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave2-forms.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "Equipment documents and rentals",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "F30",
   "canonicalId": "F30",
   "canonicalState": "complete",
   "sourceId": "F30",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Employee and company credentials",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave1-people.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "P13",
     "title": "Tickets & Certs — Tickets & Certificates",
     "state": "complete",
     "cancelledNote": null
    },
    {
     "id": "P33",
     "title": "My Crew",
     "state": "complete",
     "cancelledNote": null
    }
   ],
   "flags": [
    "merged-v2.4",
    "merged-v2.4"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "M-CERT",
    "GL-004",
    "GL-088",
    "GL-099",
    "F31",
    "V19·codex",
    "V24·codex"
   ],
   "card": "safe-tickets",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-tickets \"Tickets and certificates\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave1-people.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "Employee and company credentials",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "F34",
   "canonicalId": "F34",
   "canonicalState": "complete",
   "sourceId": "F34",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Employee skill records",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave1-people.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-HR",
    "GL-028",
    "GL-087"
   ],
   "card": "safe-people",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-people \"Employee records, skills and qualified dispatch\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave1-people.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "Employee skill records",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "F35",
   "canonicalId": "F35",
   "canonicalState": "complete",
   "sourceId": "F35",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Workforce qualification search",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave1-people.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-HR",
    "GL-028",
    "GL-099"
   ],
   "card": "safe-people",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-people \"Employee records, skills and qualified dispatch\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave1-people.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "Workforce qualification search",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "F36",
   "canonicalId": "F36",
   "canonicalState": "complete",
   "sourceId": "F36",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Disciplinary records and alerts",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave1-people.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-DISC",
    "GL-029"
   ],
   "card": "safe-people",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-people \"Employee records, skills and qualified dispatch\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave1-people.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "Disciplinary records and alerts",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "F37",
   "canonicalId": "F37",
   "canonicalState": "complete",
   "sourceId": "F37",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Custom company and client forms",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave2-forms.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-FORM",
    "GL-002",
    "GL-007",
    "F38",
    "F39",
    "F40",
    "V10·codex",
    "V46·codex"
   ],
   "card": "mgmt-forms",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-forms \"Forms: builder, templates, lifecycle and audit\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave2-forms.md",
    "hive/checks/2026-09-23_form-builder.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "Custom company and client forms",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "F40",
   "canonicalId": "F40",
   "canonicalState": "complete",
   "sourceId": "F40",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Mandatory daily forms",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave2-forms.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-DAY",
    "GL-002",
    "GL-100",
    "F37",
    "F38",
    "F39",
    "V10·codex",
    "V46·codex"
   ],
   "card": "crew-startday",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-startday \"Start Day, timesheet head start and the daily report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave2-forms.md",
    "hive/checks/2026-09-23_form-builder.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "Mandatory daily forms",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "F44",
   "canonicalId": "F44",
   "canonicalState": "complete",
   "sourceId": "F44",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Estimator and sales reporting",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave5-admin.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-CRM",
    "GL-083"
   ],
   "card": "sales-crm",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-crm \"CRM: contacts, follow-ups and estimator reporting\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave5-admin.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "Estimator and sales reporting",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "F47",
   "canonicalId": "F47",
   "canonicalState": "complete",
   "sourceId": "F47",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Outstanding T&M billing reports",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave5-admin.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-TM",
    "GL-042",
    "GL-083"
   ],
   "card": "mgmt-tm",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-tm \"T&M tickets and change orders\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave5-admin.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "Outstanding T&M billing reports",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "F51",
   "canonicalId": "F51",
   "canonicalState": "complete",
   "sourceId": "F51",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "QR access to equipment and chemical documents",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave2-forms.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-ASSET",
    "GL-006",
    "GL-008"
   ],
   "card": "gear-qr",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-qr \"QR setup: hats and assets\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave2-forms.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "QR access to equipment and chemical documents",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "F54",
   "canonicalId": "F54",
   "canonicalState": "complete",
   "sourceId": "F54",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Single worker mobile time entry",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-10-10_batch5-time-crew.r2.grade.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "b1-acceptance-holds"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:49:56.324Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-TIME",
    "GL-019",
    "GL-020",
    "GL-021",
    "V07·codex",
    "V40·codex",
    "V47·codex",
    "V54·codex"
   ],
   "card": "crew-time",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-time \"Time, breaks, per diem, signatures and end of day\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": {
    "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
    "line": 36,
    "namedAs": "F54",
    "via": "ruling"
   },
   "gradeFilesLookedAt": [
    "hive/checks/2026-10-10_batch5-time-crew.r2.grade.md",
    "hive/checks/2026-10-10_batch5-time-crew.md",
    "hive/checks/2026-10-10_batch5-time-crew.r2c.measure_full.out",
    "hive/checks/2026-10-25_workflows-b1.r1c.grade.md"
   ],
   "gradeRefPrevious": {
    "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
    "line": 36,
    "namedAs": "F54",
    "via": "v1.0.4 mechanics — superseded, reported only"
   },
   "plainTitle": "Single worker mobile time entry",
   "outcome": "Completed on demo data: built and finished, reported finished 10 October 2026; a final review on evidence ruled on it.",
   "next": "Nothing further: the final review ruled on this row."
  },
  {
   "id": "R04",
   "canonicalId": "R04",
   "canonicalState": "complete",
   "sourceId": "R04",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Preserve categorized job costs",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-10-06_batch2-money-payroll.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "A20",
     "title": "Job modal — invoice #, PO #, quote date, demo date, then the money block gated per role (Owner: sell, total w/GST, cost, profit, margin, GST + a cost breakdown · Site lead: contract, actual cost, cost-vs-contract, assignee + his cost breakdown · Bookkeeper: invoice value, owed, GST, to-invoice). Crew and Estimator cannot open it at all (openJob returns early)",
     "state": "complete",
     "cancelledNote": null
    }
   ],
   "flags": [
    "merged-v2.4"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:08:26.715Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "M-CST",
    "F17",
    "W05"
   ],
   "card": "fin-cost",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cost \"Job costing, budgets, cost codes and P&L\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-10-06_batch2-money-payroll.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 3,
     "namedAs": "R04",
     "reason": "a Task: line, not a verdict"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 103,
     "namedAs": "R04",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 104,
     "namedAs": "R04",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 105,
     "namedAs": "R04",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 106,
     "namedAs": "R04",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 107,
     "namedAs": "R04",
     "reason": "a numbered criteria-table row, not a result"
    }
   ],
   "plainTitle": "Preserve categorized job costs",
   "outcome": "Completed on demo data: built and finished, reported finished 6 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "R08",
   "canonicalId": "R08",
   "canonicalState": "complete",
   "sourceId": "R08",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Give accounting staff a restricted workspace",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-10-06_batch1-notes-invoice-pm.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "P17",
     "title": "Dashboard — Accounting Overview",
     "state": "complete",
     "cancelledNote": null
    },
    {
     "id": "P18",
     "title": "Outstanding — Outstanding Receivables",
     "state": "complete",
     "cancelledNote": null
    },
    {
     "id": "P20",
     "title": "Payments",
     "state": "complete",
     "cancelledNote": null
    }
   ],
   "flags": [
    "merged-v2.4",
    "merged-v2.4",
    "merged-v2.4"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:08:01.032Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "M-ACC",
    "D01",
    "V05·codex",
    "V06·codex"
   ],
   "card": "fin-money",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-money \"Money overview, collections, receivables and holdbacks\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-10-06_batch1-notes-invoice-pm.md"
   ],
   "gradeRefPrevious": {
    "file": "hive/checks/2026-10-06_batch1-notes-invoice-pm.md",
    "line": 3,
    "namedAs": "R08",
    "via": "v1.0.4 mechanics — superseded, reported only"
   },
   "gradeCandidates": [
    {
     "file": "hive/checks/2026-10-06_batch1-notes-invoice-pm.md",
     "line": 3,
     "namedAs": "R08",
     "reason": "a Task: line, not a verdict"
    }
   ],
   "plainTitle": "Give accounting staff a restricted workspace",
   "outcome": "Completed on demo data: built and finished, reported finished 6 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "R11",
   "canonicalId": "R11",
   "canonicalState": "complete",
   "sourceId": "R11",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Flag jobs due for invoicing",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-10-10_billing-completion.AUTHORITATIVE-v3.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "P19",
     "title": "To Invoice",
     "state": "complete",
     "cancelledNote": null
    }
   ],
   "flags": [
    "merged-v2.4",
    "b1-acceptance-holds"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:51:33.582Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "M-INV"
   ],
   "card": "fin-invoice",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-invoice \"Invoicing: ready to bill, completion marks and drafts in the app\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": {
    "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
    "line": 33,
    "namedAs": "R11",
    "via": "ruling"
   },
   "gradeFilesLookedAt": [
    "hive/checks/2026-10-10_billing-completion.AUTHORITATIVE-v3.md",
    "hive/checks/2026-10-10_billing-completion_GRADE_r1c.md",
    "hive/checks/2026-10-10_billing-completion.md",
    "hive/checks/2026-10-10_billing-completion.AUTHORITATIVE-v3.out",
    "hive/checks/2026-10-25_workflows-b1.r1c.grade.md"
   ],
   "gradeRefPrevious": {
    "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
    "line": 33,
    "namedAs": "R11",
    "via": "v1.0.4 mechanics — superseded, reported only"
   },
   "plainTitle": "Flag jobs due for invoicing",
   "outcome": "Completed on demo data: built and finished, reported finished 10 October 2026; a final review on evidence ruled on it.",
   "next": "Nothing further: the final review ruled on this row."
  },
  {
   "id": "V05·codex",
   "canonicalId": "V05·codex",
   "canonicalState": "complete",
   "sourceId": "V05",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Payroll-only accountant role",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-10-06_batch2-money-payroll.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "P21",
     "title": "Payroll hours",
     "state": "complete",
     "cancelledNote": null
    },
    {
     "id": "V129",
     "title": "Let the accountant see payroll and nothing else",
     "state": "complete",
     "cancelledNote": null
    }
   ],
   "flags": [
    "merged-v2.4",
    "merged-v2.4"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:08:26.715Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "M-ACC",
    "GL-052",
    "D01",
    "R08",
    "V06·codex"
   ],
   "card": "fin-payroll",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-payroll \"Payroll approval, allocation to jobs and export\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-10-06_batch2-money-payroll.md"
   ],
   "gradeRefPrevious": {
    "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
    "line": 146,
    "namedAs": "V05",
    "via": "v1.0.4 mechanics — superseded, reported only"
   },
   "gradeCandidates": [
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 3,
     "namedAs": "V05",
     "reason": "a Task: line, not a verdict"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 127,
     "namedAs": "V05",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 128,
     "namedAs": "V05",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 129,
     "namedAs": "V05",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 130,
     "namedAs": "V05",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 131,
     "namedAs": "V05",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 132,
     "namedAs": "V05",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 133,
     "namedAs": "V05",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 134,
     "namedAs": "V05",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 135,
     "namedAs": "V05",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 136,
     "namedAs": "V05",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 137,
     "namedAs": "V05",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 138,
     "namedAs": "V05",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 139,
     "namedAs": "V05",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 146,
     "namedAs": "V05",
     "reason": "a numbered criteria-table row, not a result"
    }
   ],
   "plainTitle": "Payroll-only accountant role",
   "outcome": "Completed on demo data: built and finished, reported finished 6 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V06·codex",
   "canonicalId": "V06·codex",
   "canonicalState": "complete",
   "sourceId": "V06",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Granular module permissions",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-10-06_batch1-notes-invoice-pm.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "A12",
     "title": "Per-person, per-tab on/off switch — flip it, sign in as them, the tab is gone from their menu and will not open by link",
     "state": "complete",
     "cancelledNote": null
    }
   ],
   "flags": [
    "merged-v2.4"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:08:01.032Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "M-ACC",
    "GL-104",
    "D01",
    "R08",
    "V05·codex"
   ],
   "card": "mgmt-roles",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-roles \"Logins, roles and who sees what (device-enforced)\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-10-06_batch1-notes-invoice-pm.md"
   ],
   "gradeRefPrevious": {
    "file": "hive/checks/2026-10-06_batch1-notes-invoice-pm.md",
    "line": 3,
    "namedAs": "V06",
    "via": "v1.0.4 mechanics — superseded, reported only"
   },
   "gradeCandidates": [
    {
     "file": "hive/checks/2026-10-06_batch1-notes-invoice-pm.md",
     "line": 3,
     "namedAs": "V06",
     "reason": "a Task: line, not a verdict"
    }
   ],
   "plainTitle": "Granular module permissions",
   "outcome": "Completed on demo data: built and finished, reported finished 6 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V08·codex",
   "canonicalId": "V08·codex",
   "canonicalState": "complete",
   "sourceId": "V08",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Live active-project dashboard",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave3-board.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-DASH",
    "GL-016",
    "F01",
    "V09·codex",
    "V11·codex",
    "V13·codex",
    "V14·codex"
   ],
   "card": "mgmt-dash",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-dash \"Dashboard, stat tiles and the job-site map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave3-board.md",
    "hive/checks/2026-10-04_dash-4tabs.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "Live active-project dashboard",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V11·codex",
   "canonicalId": "V11·codex",
   "canonicalState": "complete",
   "sourceId": "V11",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Labour budget and overtime warning widgets",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave3-board.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-CST",
    "GL-016",
    "GL-096",
    "F01",
    "V08·codex",
    "V09·codex",
    "V13·codex",
    "V14·codex"
   ],
   "card": "mgmt-dash",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-dash \"Dashboard, stat tiles and the job-site map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave3-board.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "Labour budget and overtime warning widgets",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V19·codex",
   "canonicalId": "V19·codex",
   "canonicalState": "complete",
   "sourceId": "V19",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Employee QR certificate access",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave1-people.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "P40",
     "title": "My Tickets",
     "state": "complete",
     "cancelledNote": null
    },
    {
     "id": "P41",
     "title": "Read-only ticket check",
     "state": "complete",
     "cancelledNote": null
    },
    {
     "id": "A19",
     "title": "See what the inspector sees → the scan page in a sheet, plus Open it as its own page ↗",
     "state": "complete",
     "cancelledNote": null
    },
    {
     "id": "A56",
     "title": "Scan the QR → page 41. Drawn on the device, so it works with no signal",
     "state": "complete",
     "cancelledNote": null
    }
   ],
   "flags": [
    "id-collision",
    "merged-v2.4",
    "merged-v2.4",
    "merged-v2.4",
    "merged-v2.4"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "M-CERT",
    "GL-093",
    "F30",
    "F31",
    "V24·codex"
   ],
   "card": "gear-qr",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-qr \"QR setup: hats and assets\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave1-people.md",
    "hive/checks/2026-09-25_tickets-edit-delete.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "Employee QR certificate access",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V22·codex",
   "canonicalId": "V22·codex",
   "canonicalState": "complete",
   "sourceId": "V22",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Employee profile and skills filters",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave1-people.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-HR",
    "GL-003",
    "GL-028",
    "GL-087"
   ],
   "card": "safe-people",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-people \"Employee records, skills and qualified dispatch\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave1-people.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "Employee profile and skills filters",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V25·codex",
   "canonicalId": "V25·codex",
   "canonicalState": "complete",
   "sourceId": "V25",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Asset QR inspection and SDS access",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave2-forms.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-ASSET",
    "GL-006",
    "GL-008",
    "GL-080"
   ],
   "card": "gear-qr",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-qr \"QR setup: hats and assets\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave2-forms.md",
    "hive/checks/2026-09-27_gl-wave3-board.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "Asset QR inspection and SDS access",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V26·codex",
   "canonicalId": "V26·codex",
   "canonicalState": "complete",
   "sourceId": "V26",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Equipment and stock master data",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave2-forms.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-ASSET",
    "GL-012",
    "GL-101",
    "GL-068"
   ],
   "card": "gear-assets",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-assets \"Equipment records, maintenance, inspections and the equipment map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave2-forms.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "Equipment and stock master data",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V27·codex",
   "canonicalId": "V27·codex",
   "canonicalState": "complete",
   "sourceId": "V27",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Failed-equipment inspection routing",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave3-board.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-ASSET",
    "GL-080",
    "GL-109"
   ],
   "card": "gear-assets",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-assets \"Equipment records, maintenance, inspections and the equipment map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave3-board.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "Failed-equipment inspection routing",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V29·codex",
   "canonicalId": "V29·codex",
   "canonicalState": "complete",
   "sourceId": "V29",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Project inventory report",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave5-admin.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-WARE",
    "GL-009",
    "GL-083",
    "F25",
    "F26",
    "F27",
    "R15",
    "V28·codex"
   ],
   "card": "gear-ware",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-ware \"Warehouse, loadouts, inventory and materials\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave5-admin.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "Project inventory report",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V30·codex",
   "canonicalId": "V30·codex",
   "canonicalState": "complete",
   "sourceId": "V30",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Project import and complete project book",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-10-06_batch1-notes-invoice-pm.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "P6",
     "title": "Project Book",
     "state": "complete",
     "cancelledNote": null
    }
   ],
   "flags": [
    "id-collision",
    "merged-v2.4"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:08:01.032Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "M-BOOK",
    "GL-041",
    "GL-015",
    "GL-097"
   ],
   "card": "mgmt-projbook",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-projbook \"Project Book and job setup\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-10-06_batch1-notes-invoice-pm.md"
   ],
   "gradeRefPrevious": {
    "file": "hive/checks/2026-10-06_batch1-notes-invoice-pm.md",
    "line": 3,
    "namedAs": "V30",
    "via": "v1.0.4 mechanics — superseded, reported only"
   },
   "gradeCandidates": [
    {
     "file": "hive/checks/2026-10-06_batch1-notes-invoice-pm.md",
     "line": 3,
     "namedAs": "V30",
     "reason": "a Task: line, not a verdict"
    }
   ],
   "plainTitle": "Project import and complete project book",
   "outcome": "Completed on demo data: built and finished, reported finished 6 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V35·codex",
   "canonicalId": "V35·codex",
   "canonicalState": "complete",
   "sourceId": "V35",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Project documents and closeout pack",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-10-06_batch1-notes-invoice-pm.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "A31",
     "title": "Open the closeout report — scope, permits, tickets the job needed, waste and landfill tickets, hours on the job, change orders, cost codes (owner only), safety, documents, photos, three signature lines. Owner copy carries prices; the site copy is headed \"no prices\"",
     "state": "complete",
     "cancelledNote": null
    }
   ],
   "flags": [
    "id-collision",
    "merged-v2.4"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:08:01.032Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "M-DOC",
    "GL-035",
    "F08",
    "F52",
    "F53",
    "F56"
   ],
   "card": "mgmt-docs",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-docs \"Documents, photos, drawings and the closeout report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-10-06_batch1-notes-invoice-pm.md"
   ],
   "gradeRefPrevious": {
    "file": "hive/checks/2026-10-06_batch1-notes-invoice-pm.md",
    "line": 3,
    "namedAs": "V35",
    "via": "v1.0.4 mechanics — superseded, reported only"
   },
   "gradeCandidates": [
    {
     "file": "hive/checks/2026-10-06_batch1-notes-invoice-pm.md",
     "line": 3,
     "namedAs": "V35",
     "reason": "a Task: line, not a verdict"
    }
   ],
   "plainTitle": "Project documents and closeout pack",
   "outcome": "Completed on demo data: built and finished, reported finished 6 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V38·codex",
   "canonicalId": "V38·codex",
   "canonicalState": "complete",
   "sourceId": "V38",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Previous-day or scheduled crew reuse",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-10-10_batch5-time-crew.r2.grade.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision",
    "b1-acceptance-holds"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:49:56.324Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-HEAD",
    "GL-001",
    "F19",
    "F20",
    "F21",
    "F22",
    "F23",
    "F24",
    "V51·codex"
   ],
   "card": "crew-startday",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-startday \"Start Day, timesheet head start and the daily report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": {
    "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
    "line": 24,
    "namedAs": "V38·codex",
    "via": "ruling"
   },
   "gradeFilesLookedAt": [
    "hive/checks/2026-10-10_batch5-time-crew.r2.grade.md",
    "hive/checks/2026-10-10_batch5-time-crew.md",
    "hive/checks/2026-10-10_batch5-time-crew.r2c.measure_full.out",
    "hive/checks/2026-10-25_workflows-b1.r1c.grade.md"
   ],
   "gradeRefPrevious": {
    "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
    "line": 24,
    "namedAs": "V38·codex",
    "via": "v1.0.4 mechanics — superseded, reported only"
   },
   "plainTitle": "Previous-day or scheduled crew reuse",
   "outcome": "Completed on demo data: built and finished, reported finished 10 October 2026; a final review on evidence ruled on it.",
   "next": "Nothing further: the final review ruled on this row."
  },
  {
   "id": "V39·codex",
   "canonicalId": "V39·codex",
   "canonicalState": "complete",
   "sourceId": "V39",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Bulk crew time and cost codes",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-10-10_batch5-time-crew.r2.grade.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision",
    "b1-acceptance-holds"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:49:56.324Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-TIME",
    "GL-049",
    "F09",
    "F12",
    "R12",
    "R21",
    "V52·codex",
    "V53·codex"
   ],
   "card": "crew-time",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-time \"Time, breaks, per diem, signatures and end of day\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": {
    "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
    "line": 26,
    "namedAs": "V39·codex",
    "via": "ruling"
   },
   "gradeFilesLookedAt": [
    "hive/checks/2026-10-10_batch5-time-crew.r2.grade.md",
    "hive/checks/2026-10-10_batch5-time-crew.md",
    "hive/checks/2026-10-10_batch5-time-crew.r2c.measure_full.out",
    "hive/checks/2026-10-25_workflows-b1.r1c.grade.md"
   ],
   "gradeRefPrevious": {
    "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
    "line": 26,
    "namedAs": "V39·codex",
    "via": "v1.0.4 mechanics — superseded, reported only"
   },
   "plainTitle": "Bulk crew time and cost codes",
   "outcome": "Completed on demo data: built and finished, reported finished 10 October 2026; a final review on evidence ruled on it.",
   "next": "Nothing further: the final review ruled on this row."
  },
  {
   "id": "V43·codex",
   "canonicalId": "V43·codex",
   "canonicalState": "complete",
   "sourceId": "V43",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Crew safety acknowledgment",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave4-jha.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-ACK",
    "GL-020",
    "GL-090",
    "F48",
    "F49",
    "R20",
    "V13·codex",
    "V37·codex",
    "V41·codex",
    "V42·codex",
    "V44·codex",
    "V45·codex"
   ],
   "card": "crew-jha",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-jha \"JHA / pre-job safety talk, acknowledgements and weather\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave4-jha.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "Crew safety acknowledgment",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V44·codex",
   "canonicalId": "V44·codex",
   "canonicalState": "complete",
   "sourceId": "V44",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Daily report content and photo evidence",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave2-forms.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-DAY",
    "GL-086",
    "F48",
    "F49",
    "R20",
    "V13·codex",
    "V37·codex",
    "V41·codex",
    "V42·codex",
    "V43·codex",
    "V45·codex"
   ],
   "card": "crew-startday",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-startday \"Start Day, timesheet head start and the daily report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave2-forms.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "Daily report content and photo evidence",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V47·codex",
   "canonicalId": "V47·codex",
   "canonicalState": "complete",
   "sourceId": "V47",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "End-of-day time and injury verification",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave2-forms.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-TIME",
    "GL-020",
    "GL-036",
    "GL-105",
    "F54",
    "V07·codex",
    "V40·codex",
    "V54·codex"
   ],
   "card": "crew-time",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-time \"Time, breaks, per diem, signatures and end of day\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave2-forms.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "End-of-day time and injury verification",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V49·codex",
   "canonicalId": "V49·codex",
   "canonicalState": "complete",
   "sourceId": "V49",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Feedback and release information",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave5-admin.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-FEED",
    "GL-091"
   ],
   "card": "office-company",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-company \"Company page, branding, Messages, Ideas and HQ\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave5-admin.md",
    "hive/checks/2026-09-23_form-builder.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "Feedback and release information",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V51·codex",
   "canonicalId": "V51·codex",
   "canonicalState": "complete",
   "sourceId": "V51",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Scheduling and resource outlook",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave3-board.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-SCH",
    "GL-031",
    "GL-032",
    "GL-102",
    "F19",
    "F20",
    "F21",
    "F22",
    "F23",
    "F24",
    "V38·codex"
   ],
   "card": "mgmt-sched",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-sched \"Schedule board, Timeline and the 4-week look-ahead\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-wave3-board.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [],
   "plainTitle": "Scheduling and resource outlook",
   "outcome": "Completed on demo data: built and finished, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "W04",
   "canonicalId": "W04",
   "canonicalState": "complete",
   "sourceId": "W04",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Separate sales amount and tax",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-10-06_batch2-money-payroll.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:08:26.715Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-MIG"
   ],
   "card": "fin-cutover",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cutover \"Data migration and the real-data cut-over\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-10-06_batch2-money-payroll.md"
   ],
   "gradeRefPrevious": {
    "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
    "line": 144,
    "namedAs": "W04",
    "via": "v1.0.4 mechanics — superseded, reported only"
   },
   "gradeCandidates": [
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 3,
     "namedAs": "W04",
     "reason": "a Task: line, not a verdict"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 96,
     "namedAs": "W04",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 97,
     "namedAs": "W04",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 98,
     "namedAs": "W04",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 99,
     "namedAs": "W04",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 100,
     "namedAs": "W04",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 101,
     "namedAs": "W04",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 102,
     "namedAs": "W04",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 144,
     "namedAs": "W04",
     "reason": "a numbered criteria-table row, not a result"
    }
   ],
   "plainTitle": "Separate sales amount and tax",
   "outcome": "Completed on demo data: built and finished, reported finished 6 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "W07",
   "canonicalId": "W07",
   "canonicalState": "complete",
   "sourceId": "W07",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Calculate profit consistently",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-10-06_batch2-money-payroll.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:08:26.715Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-CST"
   ],
   "card": "fin-cost",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cost \"Job costing, budgets, cost codes and P&L\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-10-06_batch2-money-payroll.md"
   ],
   "gradeRefPrevious": {
    "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
    "line": 94,
    "namedAs": "W07",
    "via": "v1.0.4 mechanics — superseded, reported only"
   },
   "gradeCandidates": [
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 3,
     "namedAs": "W07",
     "reason": "a Task: line, not a verdict"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 81,
     "namedAs": "W07",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 82,
     "namedAs": "W07",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 83,
     "namedAs": "W07",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 84,
     "namedAs": "W07",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 85,
     "namedAs": "W07",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 86,
     "namedAs": "W07",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 87,
     "namedAs": "W07",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 88,
     "namedAs": "W07",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 89,
     "namedAs": "W07",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 90,
     "namedAs": "W07",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 91,
     "namedAs": "W07",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 92,
     "namedAs": "W07",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 93,
     "namedAs": "W07",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 94,
     "namedAs": "W07",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 95,
     "namedAs": "W07",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-06_batch2-money-payroll.md",
     "line": 143,
     "namedAs": "W07",
     "reason": "a numbered criteria-table row, not a result"
    }
   ],
   "plainTitle": "Calculate the owner's figures consistently",
   "outcome": "Completed on demo data: built and finished, reported finished 6 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "W10",
   "canonicalId": "W10",
   "canonicalState": "complete",
   "sourceId": "W10",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Track whether a job has been invoiced",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-10-10_billing-completion.AUTHORITATIVE-v3.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "b1-acceptance-holds"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:51:33.582Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-STA"
   ],
   "card": "fin-invoice",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-invoice \"Invoicing: ready to bill, completion marks and drafts in the app\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-10-10_billing-completion.AUTHORITATIVE-v3.md",
    "hive/checks/2026-10-10_billing-completion_GRADE_r1c.md",
    "hive/checks/2026-10-10_billing-completion.md",
    "hive/checks/2026-10-10_billing-completion.AUTHORITATIVE-v3.out",
    "hive/checks/2026-10-25_workflows-b1.r1c.grade.md"
   ],
   "gradeRefPrevious": {
    "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
    "line": 22,
    "namedAs": "W10",
    "via": "v1.0.4 mechanics — superseded, reported only"
   },
   "gradeCandidates": [
    {
     "file": "hive/checks/2026-10-10_billing-completion.md",
     "line": 1,
     "namedAs": "W10",
     "reason": "no passing verdict for the id outside code or quotes on its own line"
    },
    {
     "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
     "line": 22,
     "namedAs": "W10",
     "reason": "the verdict on this line is for another item; the id is only mentioned"
    },
    {
     "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
     "line": 29,
     "namedAs": "W10",
     "reason": "the verdict on this line is for another item; the id is only mentioned"
    },
    {
     "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
     "line": 32,
     "namedAs": "W10",
     "reason": "no evidence reference beside it"
    }
   ],
   "plainTitle": "Track whether a job has been invoiced",
   "outcome": "Completed on demo data: built and finished, reported finished 10 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "W11",
   "canonicalId": "W11",
   "canonicalState": "complete",
   "sourceId": "W11",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Retain source notes during migration",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-10-06_batch1-notes-invoice-pm.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:08:01.032Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-MIG"
   ],
   "card": "fin-cutover",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cutover \"Data migration and the real-data cut-over\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-10-06_batch1-notes-invoice-pm.md"
   ],
   "gradeRefPrevious": {
    "file": "hive/checks/2026-10-06_batch1-notes-invoice-pm.md",
    "line": 3,
    "namedAs": "W11",
    "via": "v1.0.4 mechanics — superseded, reported only"
   },
   "gradeCandidates": [
    {
     "file": "hive/checks/2026-10-06_batch1-notes-invoice-pm.md",
     "line": 3,
     "namedAs": "W11",
     "reason": "a Task: line, not a verdict"
    }
   ],
   "plainTitle": "Retain source notes during migration",
   "outcome": "Completed on demo data: built and finished, reported finished 6 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "M-ACC",
   "canonicalId": "M-ACC",
   "canonicalState": "complete",
   "sourceId": "M-ACC",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Restricted accounting and payroll-only workspaces",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-10-06_batch1-notes-invoice-pm.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:08:01.032Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "R08",
    "V05·codex",
    "V06·codex",
    "M-AUTH",
    "O-DATA",
    "GL-052",
    "GL-104",
    "GL-013"
   ],
   "card": "mgmt-roles",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-roles \"Logins, roles and who sees what (device-enforced)\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-10-06_batch1-notes-invoice-pm.md"
   ],
   "gradeRefPrevious": {
    "file": "hive/checks/2026-10-06_batch1-notes-invoice-pm.md",
    "line": 3,
    "namedAs": "M-ACC",
    "via": "v1.0.4 mechanics — superseded, reported only"
   },
   "gradeCandidates": [
    {
     "file": "hive/checks/2026-10-06_batch1-notes-invoice-pm.md",
     "line": 3,
     "namedAs": "M-ACC",
     "reason": "a Task: line, not a verdict"
    }
   ],
   "plainTitle": "Restricted accounting and payroll-only workspaces",
   "outcome": "Completed on demo data: built and finished, reported finished 6 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "M-HEAD",
   "canonicalId": "M-HEAD",
   "canonicalState": "complete",
   "sourceId": "M-HEAD",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Schedule and previous-day timesheet head starts",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-10-10_batch5-time-crew.r2.grade.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "b1-acceptance-holds"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:49:56.324Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "F24",
    "V38·codex",
    "M-AUTH",
    "O-DATA",
    "GL-001",
    "GL-077"
   ],
   "card": "crew-startday",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-startday \"Start Day, timesheet head start and the daily report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": {
    "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
    "line": 25,
    "namedAs": "M-HEAD",
    "via": "ruling"
   },
   "gradeFilesLookedAt": [
    "hive/checks/2026-10-10_batch5-time-crew.r2.grade.md",
    "hive/checks/2026-10-10_batch5-time-crew.md",
    "hive/checks/2026-10-10_batch5-time-crew.r2c.measure_full.out",
    "hive/checks/2026-10-25_workflows-b1.r1c.grade.md"
   ],
   "gradeRefPrevious": {
    "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
    "line": 25,
    "namedAs": "M-HEAD",
    "via": "v1.0.4 mechanics — superseded, reported only"
   },
   "plainTitle": "Schedule and previous-day timesheet head starts",
   "outcome": "Completed on demo data: built and finished, reported finished 10 October 2026; a final review on evidence ruled on it.",
   "next": "Nothing further: the final review ruled on this row."
  },
  {
   "id": "M-INV",
   "canonicalId": "M-INV",
   "canonicalState": "complete",
   "sourceId": "M-INV",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Invoice preparation and review",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-10-10_billing-completion.AUTHORITATIVE-v3.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "b1-acceptance-partial-confirmed-same-gap",
    "b2-acceptance-holds"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:51:33.582Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "R07",
    "R09",
    "R11",
    "M-AUTH",
    "O-DATA"
   ],
   "card": "fin-invoice",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-invoice \"Invoicing: ready to bill, completion marks and drafts in the app\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-10-10_billing-completion.AUTHORITATIVE-v3.md",
    "hive/checks/2026-10-10_billing-completion_GRADE_r1c.md",
    "hive/checks/2026-10-10_billing-completion.md",
    "hive/checks/2026-10-10_billing-completion.AUTHORITATIVE-v3.out",
    "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
    "hive/checks/2026-10-25_workflows-b2.r1c.grade.md"
   ],
   "gradeRefPrevious": {
    "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
    "line": 34,
    "namedAs": "M-INV",
    "via": "v1.0.4 mechanics — superseded, reported only"
   },
   "gradeCandidates": [
    {
     "file": "hive/checks/2026-10-10_billing-completion.md",
     "line": 1,
     "namedAs": "M-INV",
     "reason": "no passing verdict for the id outside code or quotes on its own line"
    },
    {
     "file": "hive/checks/2026-10-10_billing-completion.md",
     "line": 107,
     "namedAs": "M-INV",
     "reason": "no passing verdict for the id outside code or quotes on its own line"
    },
    {
     "file": "hive/checks/2026-10-10_billing-completion.md",
     "line": 129,
     "namedAs": "M-INV",
     "reason": "no passing verdict for the id outside code or quotes on its own line"
    },
    {
     "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
     "line": 17,
     "namedAs": "M-INV",
     "reason": "no passing verdict for the id outside code or quotes on its own line"
    },
    {
     "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
     "line": 34,
     "namedAs": "M-INV",
     "reason": "partial is never a pass"
    },
    {
     "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
     "line": 38,
     "namedAs": "M-INV",
     "reason": "partial is never a pass"
    },
    {
     "file": "hive/checks/2026-10-25_workflows-b2.r1c.grade.md",
     "line": 3,
     "namedAs": "M-INV",
     "reason": "partial is never a pass"
    },
    {
     "file": "hive/checks/2026-10-25_workflows-b2.r1c.grade.md",
     "line": 27,
     "namedAs": "M-INV",
     "reason": "no passing verdict for the id outside code or quotes on its own line"
    },
    {
     "file": "hive/checks/2026-10-25_workflows-b2.r1c.grade.md",
     "line": 32,
     "namedAs": "M-INV",
     "reason": "no evidence reference beside it"
    },
    {
     "file": "hive/checks/2026-10-25_workflows-b2.r1c.grade.md",
     "line": 85,
     "namedAs": "M-INV",
     "reason": "the verdict on this line is for another item; the id is only mentioned"
    }
   ],
   "plainTitle": "Invoice preparation and review",
   "outcome": "Completed on demo data: built and finished, reported finished 10 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "M-UX",
   "canonicalId": "M-UX",
   "canonicalState": "complete",
   "sourceId": "M-UX",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Simple desktop and mobile navigation",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-10-10_b3fix.AUTHORITATIVE.out",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "b1-acceptance-holds"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:51:36.110Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "R06",
    "R22",
    "V02·codex",
    "M-AUTH",
    "O-DATA"
   ],
   "card": "mgmt-ux",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-ux \"Navigation and everyday usability\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": {
    "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
    "line": 35,
    "namedAs": "M-UX",
    "via": "ruling"
   },
   "gradeFilesLookedAt": [
    "hive/checks/2026-10-10_b3fix.AUTHORITATIVE.out",
    "hive/checks/2026-10-10_b3fix.r1.out",
    "hive/checks/2026-10-10_b3fix.r1c.out",
    "hive/checks/2026-10-06_batch3-roles-nav.md",
    "hive/checks/2026-10-25_workflows-b1.r1c.grade.md"
   ],
   "gradeRefPrevious": {
    "file": "hive/checks/2026-10-06_batch3-roles-nav.md",
    "line": 3,
    "namedAs": "M-UX",
    "via": "v1.0.4 mechanics — superseded, reported only"
   },
   "plainTitle": "Simple desktop and mobile navigation",
   "outcome": "Completed on demo data: built and finished, reported finished 10 October 2026; a final review on evidence ruled on it.",
   "next": "Nothing further: the final review ruled on this row."
  },
  {
   "id": "GL-001",
   "canonicalId": "GL-001",
   "canonicalState": "complete",
   "sourceId": "GL-001",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Timesheet head start: \"pull from the schedule\" does not really pull — the men on the sheet are still the login's own crew, and there is no man list on the sc…",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-10-10_batch5-time-crew.r2.grade.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "gl-state-vs-accounting",
    "b1-acceptance-holds",
    "b2-acceptance-holds"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:49:56.324Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "F24",
    "V38·codex",
    "M-HEAD"
   ],
   "card": "crew-startday",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-startday \"Start Day, timesheet head start and the daily report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": {
    "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
    "line": 22,
    "namedAs": "GL-001",
    "via": "ruling"
   },
   "gradeFilesLookedAt": [
    "hive/checks/2026-10-10_batch5-time-crew.r2.grade.md",
    "hive/checks/2026-10-10_batch5-time-crew.md",
    "hive/checks/2026-10-10_batch5-time-crew.r2c.measure_full.out",
    "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
    "hive/checks/2026-10-25_workflows-b2.r1c.grade.md"
   ],
   "gradeRefPrevious": {
    "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
    "line": 22,
    "namedAs": "GL-001",
    "via": "v1.0.4 mechanics — superseded, reported only"
   },
   "plainTitle": "Timesheet head start: \"pull from the schedule\" does not really pull — the men on the…",
   "outcome": "Completed on demo data: built and finished, reported finished 10 October 2026; a final review on evidence ruled on it.",
   "next": "Nothing further: the final review ruled on this row."
  },
  {
   "id": "GL-002",
   "canonicalId": "GL-002",
   "canonicalState": "review",
   "sourceId": "GL-002",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Build and edit a question template, then attach it to a job",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave2-forms.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "F37",
    "F40",
    "V10·codex",
    "M-FORM",
    "V73",
    "V74",
    "V74"
   ],
   "card": "mgmt-forms",
   "plainTitleCurrent": "Build and edit a question template, then attach it to a job",
   "capability": "a question template can be created and edited in the app, then attached to a job and answered, on demo data",
   "titleWords": {
    "was": "Question templates per project: you can attach a template to a job and answer it, but nothing in the app creates or edits one — still needs a template builder",
    "source": "hive/checks/2026-09-27_gl-wave2-forms.md — the forms wave grade (2026-09-27); the canonical accounting v2.4 of 2026-10-31 records the row in review. The canonical title records the gap that was closed; it stays verbatim in the row's details."
   },
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-forms \"Forms: builder, templates, lifecycle and audit\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "canonicalTitle": "Question templates per project: you can attach a template to a job and answer it, but nothing in the app creates or edits one — still needs a template builder",
   "titleSource": "hive/checks/2026-09-27_gl-wave2-forms.md — the forms wave grade (2026-09-27); the canonical accounting v2.4 of 2026-10-31 records the row in review. The canonical title records the gap that was closed; it stays verbatim in the row's details.",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Build and edit a question template, then attach it to a job",
   "outcome": "Completed on demo data: a question template can be created and edited in the app, then attached to a job and answered, on demo data",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-003",
   "canonicalId": "GL-003",
   "canonicalState": "review",
   "sourceId": "GL-003",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Emergency contact details on the man's own record — name and number of who to call; there is no edit form for a man anywhere",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave1-people.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "V22·codex",
    "M-HR",
    "V40",
    "V34",
    "V44"
   ],
   "card": "safe-people",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-people \"Employee records, skills and qualified dispatch\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Emergency contact details on the man's own record — name and number of who to call…",
   "outcome": "Completed on demo data: built and finished, awaiting Omar's review, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-004",
   "canonicalId": "GL-004",
   "canonicalState": "review",
   "sourceId": "GL-004",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Editing the list of cert types — a small admin screen over the certs.js types",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave1-people.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "F30",
    "V24·codex",
    "M-CERT",
    "V48",
    "V48"
   ],
   "card": "safe-tickets",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-tickets \"Tickets and certificates\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Editing the list of cert types — a small admin screen over the types",
   "outcome": "Completed on demo data: built and finished, awaiting Omar's review, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-006",
   "canonicalId": "GL-006",
   "canonicalState": "review",
   "sourceId": "GL-006",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "SDS from an asset scan — link a document to an asset and put it on the scan page",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave2-forms.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "F29",
    "F51",
    "V25·codex",
    "M-ASSET",
    "V57",
    "V57"
   ],
   "card": "gear-qr",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-qr \"QR setup: hats and assets\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "SDS from an asset scan — link a document to an asset and put it on the scan page",
   "outcome": "Completed on demo data: built and finished, awaiting Omar's review, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-007",
   "canonicalId": "GL-007",
   "canonicalState": "review",
   "sourceId": "GL-007",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Building your own inspection question sets (an inspection-template builder), and an asbestos-specific inspection checklist (manometer reading, two-stage wast…",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave2-forms.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "F37",
    "F48",
    "M-FORM",
    "V60",
    "V60"
   ],
   "card": "mgmt-forms",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-forms \"Forms: builder, templates, lifecycle and audit\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Building your own inspection question sets (an inspection-template builder), and an…",
   "outcome": "Completed on demo data: built and finished, awaiting Omar's review, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-012",
   "canonicalId": "GL-012",
   "canonicalState": "review",
   "sourceId": "GL-012",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Add an asset and add an inventory line from their own forms",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave2-forms.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "F25",
    "V26·codex",
    "M-ASSET",
    "V79",
    "V49",
    "V55"
   ],
   "card": "gear-assets",
   "plainTitleCurrent": "Add an asset and add an inventory line from their own forms",
   "capability": "an asset and an inventory line can each be added from their own form, and the new line shows in the list, on demo data",
   "titleWords": {
    "was": "An \"add\" form for an asset and for an inventory line — every list in the app can be read, searched and filtered; almost none of them can be added to",
    "source": "hive/checks/2026-09-27_gl-wave2-forms.md — the forms wave grade (2026-09-27); the canonical accounting v2.4 of 2026-10-31 records the row in review. The canonical title records the gap that was closed; it stays verbatim in the row's details."
   },
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-assets \"Equipment records, maintenance, inspections and the equipment map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "canonicalTitle": "An \"add\" form for an asset and for an inventory line — every list in the app can be read, searched and filtered; almost none of them can be added to",
   "titleSource": "hive/checks/2026-09-27_gl-wave2-forms.md — the forms wave grade (2026-09-27); the canonical accounting v2.4 of 2026-10-31 records the row in review. The canonical title records the gap that was closed; it stays verbatim in the row's details.",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Add an asset and add an inventory line from their own forms",
   "outcome": "Completed on demo data: an asset and an inventory line can each be added from their own form, and the new line shows in the list, on demo data",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-013",
   "canonicalId": "GL-013",
   "canonicalState": "review",
   "sourceId": "GL-013",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Ten project-manager seats — a project-manager role between Owner and Site lead: his own jobs, his own crews, budget but not company profit; turns Team & Acce…",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave5-admin.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "V55·codex",
    "M-ACC",
    "V139"
   ],
   "card": "mgmt-roles",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-roles \"Logins, roles and who sees what (device-enforced)\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Ten project-manager seats — a project-manager role between Owner and Site lead: his own…",
   "outcome": "Completed on demo data: built and finished, awaiting Omar's review, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-015",
   "canonicalId": "GL-015",
   "canonicalState": "review",
   "sourceId": "GL-015",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "A CSV import where there is no integration — load people, customers and jobs from a spreadsheet; the backstop named on the QuickBooks screen — Built 2026-09-…",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave5-admin.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "R01",
    "W01",
    "V18·codex",
    "V30·codex",
    "M-MIG",
    "V35",
    "V128"
   ],
   "card": "fin-cutover",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cutover \"Data migration and the real-data cut-over\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "A CSV import where there is no integration — load people, customers and jobs from a…",
   "outcome": "Completed on demo data: built and finished, awaiting Omar's review, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-016",
   "canonicalId": "GL-016",
   "canonicalState": "review",
   "sourceId": "GL-016",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Three more dashboard panels beside the first three",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave3-board.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "F01",
    "F03",
    "V08·codex",
    "V11·codex",
    "M-DASH"
   ],
   "card": "mgmt-dash",
   "plainTitleCurrent": "Three more dashboard panels beside the first three",
   "capability": "the dashboard carries all six panels, the three later ones beside the first three, on demo data",
   "titleWords": {
    "was": "Fieldflo dashboard rows 4–6 — the three panels after Today's projects, Nearing bid hours and Certificates expiring on their six-panel dashboard (rows 1–3 landed earlier)",
    "source": "hive/checks/2026-09-27_gl-wave3-board.md — the board wave grade (2026-09-27); the canonical accounting v2.4 of 2026-10-31 records the row in review. The canonical title is cut off mid-clause at the display cap; the whole of it stays in the row's details."
   },
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-dash \"Dashboard, stat tiles and the job-site map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "canonicalTitle": "Fieldflo dashboard rows 4–6 — the three panels after Today's projects, Nearing bid hours and Certificates expiring on their six-panel dashboard (rows 1–3 lan…",
   "titleSource": "hive/checks/2026-09-27_gl-wave3-board.md — the board wave grade (2026-09-27); the canonical accounting v2.4 of 2026-10-31 records the row in review. The canonical title is cut off mid-clause at the display cap; the whole of it stays in the row's details.",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Three more dashboard panels beside the first three",
   "outcome": "Completed on demo data: the dashboard carries all six panels, the three later ones beside the first three, on demo data",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-021",
   "canonicalId": "GL-021",
   "canonicalState": "review",
   "sourceId": "GL-021",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "A texted link that opens with no app, no account and no login — and still works when he taps it hours later: a signed, expiring web link per man per day and …",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave5-admin.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "F54",
    "V07·codex",
    "V54·codex",
    "M-SMS",
    "V136",
    "V137",
    "V138",
    "V4"
   ],
   "card": "office-textline",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-textline \"The labourer text line (verify by text, no login)\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "A texted link that opens with no app, no account and no login — and still works when he…",
   "outcome": "Completed on demo data: built and finished, awaiting Omar's review, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-027",
   "canonicalId": "GL-027",
   "canonicalState": "review",
   "sourceId": "GL-027",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Employee safety scorecards — not present anywhere in the portal",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave1-people.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "M-INC"
   ],
   "card": "safe-inc",
   "plainTitleCurrent": "Safety scorecards on each man's record, in the owner's login",
   "capability": "a Safety scorecards tab sits on each man's record in the owner's login; no other login receives it.",
   "titleWords": {
    "was": "Employee safety scorecards — not present anywhere in the portal (GO_LIVE.md row GL-027, written 2026-09-26 before the build)",
    "source": "hive/checks/2026-09-27_gl-wave1-people.md criteria 51 and 59 (GL-027 proven at 1440 and 390; the suite's lines name the safety scorecard), graded 2026-09-27; GO_LIVE.md row GL-027 state Built; portal/app-people2.js — the Safety scorecards tab, owner only (read 2026-11-07)"
   },
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-inc \"Incidents, inspections, corrective actions and OHS reports\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Safety scorecards on each man's record, in the owner's login",
   "outcome": "Completed on demo data: a Safety scorecards tab sits on each man's record in the owner's login; no other login receives it.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-028",
   "canonicalId": "GL-028",
   "canonicalState": "review",
   "sourceId": "GL-028",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Skills matrix and filter-by-skill dispatch — a skills list per man on top of the ticket list (Suncor orientation, a school background check) and a filter on …",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave1-people.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "F34",
    "F35",
    "V22·codex",
    "V23·codex",
    "M-HR",
    "V45"
   ],
   "card": "safe-people",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-people \"Employee records, skills and qualified dispatch\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Skills matrix and filter-by-skill dispatch — a skills list per man on top of the ticket…",
   "outcome": "Completed on demo data: built and finished, awaiting Omar's review, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-029",
   "canonicalId": "GL-029",
   "canonicalState": "review",
   "sourceId": "GL-029",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Disciplinary records — not present",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave1-people.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "F36",
    "M-DISC"
   ],
   "card": "safe-people",
   "plainTitleCurrent": "Disciplinary records in the conduct file on each man's record, owner's login only",
   "capability": "the conduct file on each man's record holds write-ups and disciplinary records (final warning, suspension, dismissal); owner's login only.",
   "titleWords": {
    "was": "Disciplinary records — not present (GO_LIVE.md row GL-029, written 2026-09-26 before the build)",
    "source": "hive/checks/2026-09-27_gl-wave1-people.md criteria 52 and 60 (GL-029 proven at 1440 and 390; the suite's lines name the disciplinary record and the owner), graded 2026-09-27; GO_LIVE.md row GL-029 state Built; portal/app-people2.js — the Write-ups & disciplinary tab, owner only (read 2026-11-07)"
   },
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-people \"Employee records, skills and qualified dispatch\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Disciplinary records in the conduct file on each man's record, owner's login only",
   "outcome": "Completed on demo data: the conduct file on each man's record holds write-ups and disciplinary records (final warning, suspension, dismissal); owner's login…",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-030",
   "canonicalId": "GL-030",
   "canonicalState": "review",
   "sourceId": "GL-030",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Roll Call — a real-time \"who has clocked in\" count with a link on the dashboard, and a no-show flag; the dashboard shows \"Who's on site today\" from Start Day…",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave3-board.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "F02",
    "F11",
    "M-TIME"
   ],
   "card": "crew-time",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-time \"Time, breaks, per diem, signatures and end of day\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Roll Call — a real-time \"who has clocked in\" count with a link on the dashboard, and a…",
   "outcome": "Completed on demo data: built and finished, awaiting Omar's review, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-031",
   "canonicalId": "GL-031",
   "canonicalState": "review",
   "sourceId": "GL-031",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Double-booking warning in scheduling — an alert when the same employee or asset is assigned to two jobs in the same window; and the crew-projected vs crew-sc…",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave3-board.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "F22",
    "V51·codex",
    "M-SCH"
   ],
   "card": "mgmt-sched",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-sched \"Schedule board, Timeline and the 4-week look-ahead\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Double-booking warning in scheduling — an alert when the same employee or asset is…",
   "outcome": "Completed on demo data: built and finished, awaiting Omar's review, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-032",
   "canonicalId": "GL-032",
   "canonicalState": "review",
   "sourceId": "GL-032",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Equipment on the schedule — assets assigned to jobs in the Gantt / week view; the scheduling board handles crews, not equipment — Built 2026-09-27 (gl-wave3-…",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave3-board.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "F14",
    "F20",
    "V51·codex",
    "M-SCH"
   ],
   "card": "mgmt-sched",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-sched \"Schedule board, Timeline and the 4-week look-ahead\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Equipment on the schedule — assets assigned to jobs in the Gantt / week view; the…",
   "outcome": "Completed on demo data: built and finished, awaiting Omar's review, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-035",
   "canonicalId": "GL-035",
   "canonicalState": "complete",
   "sourceId": "GL-035",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Document management — a folder tree under Company / Clients / Employees / Projects / Equipment, per-folder role lock, upload, offline, image mark-up; the job…",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-10-04_gl-notbuilt6.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "F08",
    "F52",
    "F53",
    "F56",
    "D06",
    "D07",
    "V35·codex",
    "M-DOC"
   ],
   "card": "mgmt-docs",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-docs \"Documents, photos, drawings and the closeout report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-10-04_gl-notbuilt6.md"
   ],
   "gradeRefPrevious": {
    "file": "hive/checks/2026-10-04_gl-notbuilt6.md",
    "line": 3,
    "namedAs": "GL-035",
    "via": "v1.0.4 mechanics — superseded, reported only"
   },
   "gradeCandidates": [
    {
     "file": "hive/checks/2026-10-04_gl-notbuilt6.md",
     "line": 3,
     "namedAs": "GL-035",
     "reason": "a Task: line, not a verdict"
    }
   ],
   "plainTitle": "Document management — a folder tree under Company / Clients / Employees / Projects /…",
   "outcome": "Completed on demo data: built and finished, reported finished 4 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-036",
   "canonicalId": "GL-036",
   "canonicalState": "review",
   "sourceId": "GL-036",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Meal / break attestation, and the \"Were you injured?\" question, on the end-of-day verify",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave2-forms.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "F10",
    "F13",
    "F14",
    "V47·codex",
    "M-TIME"
   ],
   "card": "crew-time",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-time \"Time, breaks, per diem, signatures and end of day\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Meal / break attestation, and the \"Were you injured?\" question, on the end-of-day verify",
   "outcome": "Completed on demo data: built and finished, awaiting Omar's review, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-037",
   "canonicalId": "GL-037",
   "canonicalState": "review",
   "sourceId": "GL-037",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "HQ dashboard across branches — The owner said five companies (@2:33), Dan mentioned it at @24:23. _2026-10-04: Built on Omar's word of 04:49 UTC (\"the 6 not built …",
   "state": "review",
   "ownerClass": "Omar",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-10-04_gl-notbuilt6.md",
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted",
    "owner-who-vs-section"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "V01·codex",
    "V36·codex",
    "M-MULTI",
    "V82",
    "The owner 19"
   ],
   "card": "office-company",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "GL-037",
   "decisionKey": "company",
   "decidedAt": "2026-10-04T04:49Z",
   "decisionWords": "Okay the 6 not built can you build it",
   "decisionSource": "Omar 2026-10-04 04:49 UTC — vault/topics/decisions/build the six not built.md; vault/topics/decisions/one company only.md (2026-09-15; Now-block 2026-10-04: answered twice over, do not raise it with him as an open question)",
   "decisionEffect": "the HQ-across-branches screen was built the same morning as an owner-only tab on demo branch labels (never a company name); one company stands everywhere else; a later dated word beats an earlier one, so the choice is not raised again — each row routes by its canonical state",
   "decisionKind": "decision",
   "plainTitleCurrent": "HQ tab for the owner: jobs and money rolled up by branch, on demo branch labels",
   "capability": "an owner-only HQ tab rolls jobs and money up by branch with a branch switcher; the branch names are demo labels until the owner names his.",
   "titleWords": {
    "was": "HQ dashboard across branches — The owner said five companies (@2:33), Dan mentioned it at @24:23. _2026-10-04: Built on Omar's word of 04:49 UTC …_ (GO_LIVE.md row GL-037: meeting stamps and the dated note, kept in the title)",
    "source": "hive/checks/2026-10-04_gl-notbuilt6.md (PASS 96/0, graded 2026-10-04 06:43 UTC); GO_LIVE.md row GL-037 state Built on Omar's 2026-10-04 04:49 UTC word (vault/topics/decisions/build the six not built.md); vault/topics/decisions/one company only.md, Now-block 2026-10-04"
   },
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-company \"Company page, branding, Messages, Ideas and HQ\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "currentReading": {
    "source": "vault/topics/decisions/build the six not built.md (Omar 2026-10-04 04:49 UTC) and vault/topics/decisions/one company only.md, Now-block 2026-10-04 — the HQ tab was built on demo branch labels and the real branch names are the owner's to send; read 2026-11-08.",
    "why": "The owner's branch-structure ask and this row are the two ends of one mapping and did not point at each other; the ask carries no canonical row of its own, so the link is recorded on this row"
   },
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "HQ tab for the owner: jobs and money rolled up by branch, on demo branch labels",
   "outcome": "Completed on demo data: an owner-only HQ tab rolls jobs and money up by branch with a branch switcher; the branch names are demo labels until the owner names…",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-054",
   "canonicalId": "GL-054",
   "canonicalState": "complete",
   "sourceId": "GL-054",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "The Collector's nightly cron — approved by Omar 2026-10-03 00:31 UTC (\"2. Yes approve\"); set 00:32 UTC as job `2cc5e203`, `0 5 * * *` America/Edmonton, isola…",
   "state": "complete",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "O3",
     "title": "Say yes to the nightly Collector and the Monday Ticket Keeper schedules",
     "state": "open",
     "cancelledNote": null
    }
   ],
   "flags": [
    "owner-who-vs-section",
    "complete-no-grade-file",
    "merged-v2.4"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "O-JOBS"
   ],
   "card": "office-seats",
   "canonicalWaitingOn": "none",
   "decidedAs": "O3",
   "decisionKey": "seats",
   "decidedAt": "2026-10-03T00:31Z",
   "decisionWords": "2. Yes approve",
   "decisionSource": "Omar 2026-10-03 00:31 UTC \"2. Yes approve\" (vault/topics/people/Omar.md; GO_LIVE.md rows GL-054 and GL-055, crons set 00:32 UTC); main CHECKER ORDER 2026-11-07T06:52Z carrying Omar 06:48Z Telegram 2118 (hive/EXECUTION_LOG.md)",
   "decisionEffect": "the Collector (nightly) and Ticket Keeper (Monday) schedules are approved and both fire; a built, firing schedule is not an open choice — O3 routes by its own master-list status, O-JOBS by its canonical state",
   "decisionKind": "decision",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-seats \"The helper agents and their schedules\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "The Collector's nightly cron — approved by Omar (\"2. Yes approve\"); set as job…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-055",
   "canonicalId": "GL-055",
   "canonicalState": "complete",
   "sourceId": "GL-055",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "The Ticket Keeper's weekly cron — approved by Omar 2026-10-03 00:31 UTC; set 00:32 UTC as job `e7259a56`, `0 5 * * 1` America/Edmonton (Monday 5 a.m.), isola…",
   "state": "complete",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "owner-who-vs-section",
    "complete-no-grade-file"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "O-JOBS"
   ],
   "card": "office-seats",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-seats \"The helper agents and their schedules\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "The Ticket Keeper's weekly cron — approved by Omar; set as job, America/Edmonton (Monday…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-059",
   "canonicalId": "GL-059",
   "canonicalState": "complete",
   "sourceId": "GL-059",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "The Estimator and The Books seats run on demo data",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-seats.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "M-AI"
   ],
   "card": "office-seats",
   "plainTitleCurrent": "The Estimator and The Books seats run on demo data",
   "capability": "the Estimator and The Books seats are built and open from the app's own navigation on demo data",
   "titleWords": {
    "was": "Estimator and The Books on mock data — open build work, nobody blocked; the seats themselves are GL-057 and GL-058, off the board until they can work",
    "source": "hive/checks/2026-09-27_gl-seats.md — the wave grade that proved the two seats on demo data (2026-09-27); the canonical accounting v2.4 of 2026-10-31 records the row complete. The canonical title is a build-queue note about two other rows, not what this row does; it stays verbatim in the row's details."
   },
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-seats \"The helper agents and their schedules\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "canonicalTitle": "Estimator and The Books on mock data — open build work, nobody blocked; the seats themselves are GL-057 and GL-058, off the board until they can work",
   "titleSource": "hive/checks/2026-09-27_gl-seats.md — the wave grade that proved the two seats on demo data (2026-09-27); the canonical accounting v2.4 of 2026-10-31 records the row complete. The canonical title is a build-queue note about two other rows, not what this row does; it stays verbatim in the row's details.",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-27_gl-seats.md"
   ],
   "gradeRefPrevious": null,
   "gradeCandidates": [
    {
     "file": "hive/checks/2026-09-27_gl-seats.md",
     "line": 2,
     "namedAs": "GL-059",
     "reason": "a Task: line, not a verdict"
    }
   ],
   "plainTitle": "The Estimator and The Books seats run on demo data",
   "outcome": "Completed on demo data: the Estimator and The Books seats are built and open from the app's own navigation on demo data",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-077",
   "canonicalId": "GL-077",
   "canonicalState": "review",
   "sourceId": "GL-077",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "\"Timesheet head start + CSV import\" aborted at ~46 min, no output, no reason — re-run, capture why — Built 2026-09-27 (gl-wave5-admin), live v30-admin 2026-1…",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave5-admin.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "F24",
    "M-HEAD"
   ],
   "card": "crew-startday",
   "plainTitleCurrent": "Timesheet head start from the day's board, plus a CSV import of people, customers and jobs",
   "capability": "the day's timesheet starts from the men on the schedule board, and a CSV import loads people, customers and jobs from a spreadsheet.",
   "titleWords": {
    "was": "\"Timesheet head start + CSV import\" aborted at ~46 min, no output, no reason — re-run, capture why — Built 2026-09-27 (gl-wave5-admin), live v30-admin 2026-10-03 (GO_LIVE.md row GL-077: the note of the aborted first run, kept in the title)",
    "source": "hive/checks/2026-09-27_gl-wave5-admin.md criteria 65, 73 and 74 (GL-077 / GL-001 proven at 1440 and 390: the pull from the schedule board, the men, the man list; GL-015 the import), graded 2026-09-27; GO_LIVE.md rows GL-077, GL-001 and GL-015 state Built, live v30-admin 2026-10-03"
   },
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-startday \"Start Day, timesheet head start and the daily report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Timesheet head start from the day's board, plus a CSV import of people, customers and jobs",
   "outcome": "Completed on demo data: the day's timesheet starts from the men on the schedule board, and a CSV import loads people, customers and jobs from a spreadsheet.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-078",
   "canonicalId": "GL-078",
   "canonicalState": "complete",
   "sourceId": "GL-078",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "The Checker loop's cap of 5 and its fail-back path have never fired — nothing has yet needed a round two",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-26_go-live-list_review.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "O-QUALITY"
   ],
   "card": "plat-evidence",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-evidence \"Six-role workflow acceptance (the evidence process)\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-09-26_go-live-list_review.md",
    "hive/checks/2026-09-26_go-live-list.md"
   ],
   "gradeRefPrevious": {
    "file": "hive/checks/2026-09-26_go-live-list_review.md",
    "line": 108,
    "namedAs": "GL-078",
    "via": "v1.0.4 mechanics — superseded, reported only"
   },
   "gradeCandidates": [
    {
     "file": "hive/checks/2026-09-26_go-live-list_review.md",
     "line": 108,
     "namedAs": "GL-078",
     "reason": "the line's own evidence is a file lookup (sed/grep of another file), not a test"
    },
    {
     "file": "hive/checks/2026-09-26_go-live-list.md",
     "line": 220,
     "namedAs": "GL-078",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-09-26_go-live-list.md",
     "line": 328,
     "namedAs": "GL-078",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-09-26_go-live-list.md",
     "line": 430,
     "namedAs": "GL-078",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-09-26_go-live-list.md",
     "line": 532,
     "namedAs": "GL-078",
     "reason": "a numbered criteria-table row, not a result"
    }
   ],
   "plainTitle": "the hive loop's cap of 5 and its fail-back path have never fired — nothing has yet…",
   "outcome": "Completed on demo data: built and finished, reported finished 26 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-079",
   "canonicalId": "GL-079",
   "canonicalState": "review",
   "sourceId": "GL-079",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Any language — a translate control that flips the whole portal, and a per-form globe, so a bilingual crew reads its own paperwork; nothing in the portal is t…",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave4-jha.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "V03·codex",
    "M-LANG"
   ],
   "card": "crew-lang",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-lang \"Languages and dictation\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Any language — a translate control that flips the whole portal, and a per-form globe, so…",
   "outcome": "Completed on demo data: built and finished, awaiting Omar's review, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-080",
   "canonicalId": "GL-080",
   "canonicalState": "review",
   "sourceId": "GL-080",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Equipment maintenance and inspection engine — nearing-maintenance by trigger miles / km / hours, next inspections due, equipment corrective actions, an inspe…",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave3-board.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "F28",
    "V14·codex",
    "V25·codex",
    "V27·codex",
    "M-ASSET"
   ],
   "card": "gear-assets",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-assets \"Equipment records, maintenance, inspections and the equipment map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Equipment maintenance and inspection engine — nearing-maintenance by trigger miles / km…",
   "outcome": "Completed on demo data: built and finished, awaiting Omar's review, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-081",
   "canonicalId": "GL-081",
   "canonicalState": "review",
   "sourceId": "GL-081",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Voice into the daily — the crew talks into the daily report instead of typing, in any language; the foreman's voice note by text (`tools/daily.cjs`) is the h…",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave4-jha.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "V03·codex",
    "M-LANG"
   ],
   "card": "crew-lang",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-lang \"Languages and dictation\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Voice into the daily — the crew talks into the daily report instead of typing, in any…",
   "outcome": "Completed on demo data: built and finished, awaiting Omar's review, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-082",
   "canonicalId": "GL-082",
   "canonicalState": "review",
   "sourceId": "GL-082",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Live weather and heat index on the JHA — current and forecast temperature, wind, humidity, a heat index, each with a \"have you reviewed this with the crew\" q…",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave4-jha.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "O-WEATHER"
   ],
   "card": "crew-jha",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-jha \"JHA / pre-job safety talk, acknowledgements and weather\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "currentReading": {
    "source": "portal/app-jha.js (read 2026-11-08): the weather and heat panel and its freshness label run on seeded numbers, and no outside service is called from this build; the canonical accounting v2.4 of 2026-10-31 records the row in review on demo scope.",
    "why": "the row read \"built and finished\" with no mention of what it runs on, which reads as a live weather feed; the panel is built on seeded numbers and no outside call is made"
   },
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Live weather and heat index on the JHA — current and forecast temperature, wind…",
   "outcome": "Completed on demo data: the hazard sheet's weather and heat panel is built and runs on seeded demo numbers; the outside feed is off.",
   "next": "Nothing further to build here; the outside call stays off until a dated word switches it on.",
   "readingWas": {
    "outcome": "Completed on demo data: built and finished, awaiting Omar's review, reported finished 27 September 2026.",
    "next": "Nothing further to build here; the final review on evidence is still to come."
   }
  },
  {
   "id": "GL-083",
   "canonicalId": "GL-083",
   "canonicalState": "review",
   "sourceId": "GL-083",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Reporting Center — 18 named exportable reports (asset, job costing, expense, per diem, T&M, change order, waste, warehouse, project inventory, CRM, incident,…",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave5-admin.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "F12",
    "F23",
    "F26",
    "F44",
    "F47",
    "D10",
    "V16·codex",
    "V29·codex",
    "M-DASH"
   ],
   "card": "mgmt-reports",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-reports \"Reporting Center and operational reports\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Reporting Center — 18 named exportable reports (asset, job costing, expense, per diem…",
   "outcome": "Completed on demo data: built and finished, awaiting Omar's review, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-084",
   "canonicalId": "GL-084",
   "canonicalState": "review",
   "sourceId": "GL-084",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Admin section — form sequencer, export builder, email templates and groups, email log, imports, timesheet adjuster, portal admin; the email pieces stay on Al…",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave5-admin.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "F38",
    "V09·codex",
    "M-FORM"
   ],
   "card": "mgmt-forms",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-forms \"Forms: builder, templates, lifecycle and audit\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Admin section — form sequencer, export builder, email templates and groups, email log…",
   "outcome": "Completed on demo data: built and finished, awaiting Omar's review, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-085",
   "canonicalId": "GL-085",
   "canonicalState": "review",
   "sourceId": "GL-085",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Equipment location map — where every vehicle, rental and piece of heavy equipment is, with rentals / heavy-equipment toggles and per-asset popups; Makki's ma…",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave3-board.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "V14·codex",
    "M-ASSET"
   ],
   "card": "gear-assets",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-assets \"Equipment records, maintenance, inspections and the equipment map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Equipment location map — where every vehicle, rental and piece of heavy equipment is…",
   "outcome": "Completed on demo data: built and finished, awaiting Omar's review, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-086",
   "canonicalId": "GL-086",
   "canonicalState": "review",
   "sourceId": "GL-086",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Abatement procedure checklist on the daily — install criticals, negative pressure, construct decon, pre clean, cover fixed objects, containment, removal, bag…",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave2-forms.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "V37·codex",
    "V44·codex",
    "M-CONT"
   ],
   "card": "crew-contain",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-contain \"Containment log and abatement daily\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Abatement procedure checklist on the daily — install criticals, negative pressure…",
   "outcome": "Completed on demo data: built and finished, awaiting Omar's review, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-087",
   "canonicalId": "GL-087",
   "canonicalState": "review",
   "sourceId": "GL-087",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Employee record depth — employee number, office / division, default cost code, union name and code, payroll group, temp-labour flag, write-ups, documents on …",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave1-people.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "F18",
    "F34",
    "F52",
    "D11",
    "V22·codex",
    "M-HR"
   ],
   "card": "safe-people",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-people \"Employee records, skills and qualified dispatch\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Employee record depth — employee number, office / division, default cost code, union…",
   "outcome": "Completed on demo data: built and finished, awaiting Omar's review, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-088",
   "canonicalId": "GL-088",
   "canonicalState": "review",
   "sourceId": "GL-088",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Cert photo on file — upload a picture of the actual ticket so the cert name on the scan opens the paper; Makki holds numbers and issuers only (the wider cert…",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave1-people.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "F30",
    "V24·codex",
    "M-CERT"
   ],
   "card": "gear-qr",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-qr \"QR setup: hats and assets\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Cert photo on file — upload a picture of the actual ticket so the cert name on the scan…",
   "outcome": "Completed on demo data: built and finished, awaiting Omar's review, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-089",
   "canonicalId": "GL-089",
   "canonicalState": "review",
   "sourceId": "GL-089",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Dashboard stat tiles — days without injury, client count, user count, contracts-in-progress value — Built 2026-09-27 (gl-wave3-board), live v30-admin 2026-10-03",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave3-board.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "F01",
    "F04",
    "M-DASH"
   ],
   "card": "mgmt-dash",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-dash \"Dashboard, stat tiles and the job-site map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Dashboard stat tiles — days without injury, client count, user count…",
   "outcome": "Completed on demo data: built and finished, awaiting Omar's review, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-090",
   "canonicalId": "GL-090",
   "canonicalState": "review",
   "sourceId": "GL-090",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Auditors on the JHA — up to 10 extra people signing the safety meeting with their own PIN — Built 2026-09-27 (gl-wave4-jha), live v30-admin 2026-10-03",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave4-jha.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "F13",
    "V43·codex",
    "M-ACK"
   ],
   "card": "crew-jha",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-jha \"JHA / pre-job safety talk, acknowledgements and weather\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Auditors on the JHA — up to 10 extra people signing the safety meeting with their own…",
   "outcome": "Completed on demo data: built and finished, awaiting Omar's review, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-091",
   "canonicalId": "GL-091",
   "canonicalState": "review",
   "sourceId": "GL-091",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Send in a feature idea from inside the app, and read what is new",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave5-admin.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "V49·codex",
    "M-FEED"
   ],
   "card": "office-company",
   "plainTitleCurrent": "Send in a feature idea from inside the app, and read what is new",
   "capability": "a feature idea can be sent in from inside the app and the what-is-new notes read in the same place, on demo data",
   "titleWords": {
    "was": "Submit a feature idea / what's new — the in-product channel Dan used to prove they listen — Built 2026-09-27 (gl-wave5-admin), live v30-admin 2026-10-03",
    "source": "hive/checks/2026-09-27_gl-wave5-admin.md — the admin wave grade (2026-09-27); the canonical accounting v2.4 of 2026-10-31 records the row in review. The canonical title names a competitor's salesman and ends in a build stamp; both stay in the row's details and off the row's own line."
   },
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-company \"Company page, branding, Messages, Ideas and HQ\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "canonicalTitle": "Submit a feature idea / what's new — the in-product channel Dan used to prove they listen — Built 2026-09-27 (gl-wave5-admin), live v30-admin 2026-10-03",
   "titleSource": "hive/checks/2026-09-27_gl-wave5-admin.md — the admin wave grade (2026-09-27); the canonical accounting v2.4 of 2026-10-31 records the row in review. The canonical title names a competitor's salesman and ends in a build stamp; both stay in the row's details and off the row's own line.",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Send in a feature idea from inside the app, and read what is new",
   "outcome": "Completed on demo data: a feature idea can be sent in from inside the app and the what-is-new notes read in the same place, on demo data",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-092",
   "canonicalId": "GL-092",
   "canonicalState": "review",
   "sourceId": "GL-092",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Evacuation plan on the job hazard sheet, filled from the project details",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave4-jha.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "F48",
    "M-ACK"
   ],
   "card": "crew-jha",
   "plainTitleCurrent": "Evacuation plan on the job hazard sheet, filled from the project details",
   "capability": "the job hazard sheet carries an evacuation plan section filled from the project's own details, on demo data",
   "titleWords": {
    "was": "Evacuation plan section on the JHA, pulled from the project details — Built 2026-09-27 (gl-wave4-jha), live v30-admin 2026-10-03",
    "source": "hive/checks/2026-09-27_gl-wave4-jha.md — the hazard-sheet wave grade (2026-09-27); the canonical accounting v2.4 of 2026-10-31 records the row in review. The canonical title ends in a build stamp and a release tag, which the row's details keep verbatim."
   },
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-jha \"JHA / pre-job safety talk, acknowledgements and weather\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "canonicalTitle": "Evacuation plan section on the JHA, pulled from the project details — Built 2026-09-27 (gl-wave4-jha), live v30-admin 2026-10-03",
   "titleSource": "hive/checks/2026-09-27_gl-wave4-jha.md — the hazard-sheet wave grade (2026-09-27); the canonical accounting v2.4 of 2026-10-31 records the row in review. The canonical title ends in a build stamp and a release tag, which the row's details keep verbatim.",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Evacuation plan on the job hazard sheet, filled from the project details",
   "outcome": "Completed on demo data: the job hazard sheet carries an evacuation plan section filled from the project's own details, on demo data",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-093",
   "canonicalId": "GL-093",
   "canonicalState": "review",
   "sourceId": "GL-093",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Export the employee list to a spreadsheet, and download every code at once",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave1-people.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "V19·codex",
    "M-HR"
   ],
   "card": "gear-qr",
   "plainTitleCurrent": "Export the employee list to a spreadsheet, and download every code at once",
   "capability": "the employee list exports to a spreadsheet file and every worker code downloads in one go, on demo data",
   "titleWords": {
    "was": "Export employees to CSV, and a bulk download of all QR codes; CSV export exists on Payroll only and codes come one at a time",
    "source": "hive/checks/2026-09-27_gl-wave1-people.md — the people wave grade (2026-09-27); the canonical accounting v2.4 of 2026-10-31 records the row in review. The canonical title records the gap that was closed, not the capability that stands; it stays verbatim in the row's details."
   },
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-qr \"QR setup: hats and assets\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "canonicalTitle": "Export employees to CSV, and a bulk download of all QR codes; CSV export exists on Payroll only and codes come one at a time",
   "titleSource": "hive/checks/2026-09-27_gl-wave1-people.md — the people wave grade (2026-09-27); the canonical accounting v2.4 of 2026-10-31 records the row in review. The canonical title records the gap that was closed, not the capability that stands; it stays verbatim in the row's details.",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Export the employee list to a spreadsheet, and download every code at once",
   "outcome": "Completed on demo data: the employee list exports to a spreadsheet file and every worker code downloads in one go, on demo data",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-094",
   "canonicalId": "GL-094",
   "canonicalState": "review",
   "sourceId": "GL-094",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Company page, Messages page, and the three-dots admin customisation on every list — Built 2026-09-27 (gl-wave5-admin), live v30-admin 2026-10-03",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-09-27_gl-wave5-admin.md",
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "review-not-accepted"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json#golive_build",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json#golive_build (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "M-BRAND"
   ],
   "card": "office-company",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-company \"Company page, branding, Messages, Ideas and HQ\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Company page, Messages page, and the three-dots admin customisation on every list…",
   "outcome": "Completed on demo data: built and finished, awaiting Omar's review, reported finished 27 September 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "GL-103",
   "canonicalId": "GL-103",
   "canonicalState": "complete",
   "sourceId": "GL-103",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Payroll filters — office, project type, verify status, approval status",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-10-10_batch5-time-crew.r2.grade.md",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "gl-state-vs-accounting",
    "b1-acceptance-holds"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:49:56.324Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "V52·codex",
    "M-PAY"
   ],
   "card": "fin-payroll",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-payroll \"Payroll approval, allocation to jobs and export\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": {
    "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
    "line": 30,
    "namedAs": "GL-103",
    "via": "ruling"
   },
   "gradeFilesLookedAt": [
    "hive/checks/2026-10-10_batch5-time-crew.r2.grade.md",
    "hive/checks/2026-10-10_batch5-time-crew.md",
    "hive/checks/2026-10-10_batch5-time-crew.r2c.measure_full.out",
    "hive/checks/2026-10-25_workflows-b1.r1c.grade.md"
   ],
   "gradeRefPrevious": {
    "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
    "line": 30,
    "namedAs": "GL-103",
    "via": "v1.0.4 mechanics — superseded, reported only"
   },
   "plainTitle": "Payroll filters — office, project type, verify status, approval status",
   "outcome": "Completed on demo data: built and finished, reported finished 10 October 2026; a final review on evidence ruled on it.",
   "next": "Nothing further: the final review ruled on this row."
  },
  {
   "id": "GL-104",
   "canonicalId": "GL-104",
   "canonicalState": "complete",
   "sourceId": "GL-104",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Role Profiles — saved, reusable permission presets rather than five fixed roles (the project-manager role itself is GL-013)",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "verified",
   "gradeFile": "hive/checks/2026-10-10_b3fix.AUTHORITATIVE.out",
   "accepted": true,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "gl-state-vs-accounting",
    "b1-acceptance-holds"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:51:36.110Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "V06·codex",
    "M-ACC"
   ],
   "card": "mgmt-roles",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-roles \"Logins, roles and who sees what (device-enforced)\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "gradeRef": null,
   "gradeFilesLookedAt": [
    "hive/checks/2026-10-10_b3fix.AUTHORITATIVE.out",
    "hive/checks/2026-10-10_b3fix.r1.out",
    "hive/checks/2026-10-10_b3fix.r1c.out",
    "hive/checks/2026-10-06_batch3-roles-nav.md",
    "hive/checks/2026-10-25_workflows-b1.r1c.grade.md"
   ],
   "gradeRefPrevious": {
    "file": "hive/checks/2026-10-06_batch3-roles-nav.md",
    "line": 3,
    "namedAs": "GL-104",
    "via": "v1.0.4 mechanics — superseded, reported only"
   },
   "gradeCandidates": [
    {
     "file": "hive/checks/2026-10-10_b3fix.r1c.out",
     "line": 85,
     "namedAs": "GL-104",
     "reason": "no passing verdict for the id outside code or quotes on its own line"
    },
    {
     "file": "hive/checks/2026-10-06_batch3-roles-nav.md",
     "line": 3,
     "namedAs": "GL-104",
     "reason": "a Task: line, not a verdict"
    },
    {
     "file": "hive/checks/2026-10-06_batch3-roles-nav.md",
     "line": 39,
     "namedAs": "GL-104",
     "reason": "the verdict on this line is for another item; the id is only mentioned"
    },
    {
     "file": "hive/checks/2026-10-06_batch3-roles-nav.md",
     "line": 102,
     "namedAs": "GL-104",
     "reason": "a numbered criteria-table row, not a result"
    },
    {
     "file": "hive/checks/2026-10-25_workflows-b1.r1c.grade.md",
     "line": 31,
     "namedAs": "GL-104",
     "reason": "no evidence reference beside it"
    }
   ],
   "plainTitle": "Role Profiles — saved, reusable permission presets rather than five fixed roles (the…",
   "outcome": "Completed on demo data: built and finished, reported finished 10 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "M-AUTH·design",
   "canonicalId": "M-AUTH·design",
   "canonicalState": "complete",
   "sourceId": "M-AUTH·design",
   "section": "addition",
   "idSpace": "accounting r3 addition",
   "title": "M-AUTH · design document: server-enforced identity, roles and data boundaries",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "design",
   "evidenceClass": "design",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-design-document"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:20:00.000Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-AUTH",
    "M-AUTH"
   ],
   "card": "plat-auth",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-auth \"Server-side auth, audit, sync and validated configurations\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "design document: server-enforced identity, roles and data boundaries",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "O-DATA·design",
   "canonicalId": "O-DATA·design",
   "canonicalState": "complete",
   "sourceId": "O-DATA·design",
   "section": "addition",
   "idSpace": "accounting r3 addition",
   "title": "O-DATA · design document: durable database and private file storage",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "design",
   "evidenceClass": "design",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-design-document"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:20:00.000Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "O-DATA",
    "O-DATA"
   ],
   "card": "plat-host",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-host \"Hosting, domain, database, backups and capacity\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "design document: durable database and private file storage",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "O-HOST·design",
   "canonicalId": "O-HOST·design",
   "canonicalState": "complete",
   "sourceId": "O-HOST·design",
   "section": "addition",
   "idSpace": "accounting r3 addition",
   "title": "O-HOST · design document: hosting ownership and architecture decision",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "design",
   "evidenceClass": "design",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-design-document"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:20:00.000Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "O-HOST",
    "O-HOST"
   ],
   "card": "plat-host",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-host \"Hosting, domain, database, backups and capacity\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "design document: hosting ownership and architecture decision",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "D02",
   "canonicalId": "D02",
   "canonicalState": "open",
   "sourceId": "D02",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Review consequential assistant actions",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:20:00.000Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-AI",
    "GL-039"
   ],
   "card": "office-ai",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-ai \"The assistant by text: answers and reviewed actions\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Review consequential assistant actions",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "D03",
   "canonicalId": "D03",
   "canonicalState": "open",
   "sourceId": "D03",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Prevent duplicate processing",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-10T03:20:00.000Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-SYNC"
   ],
   "card": "plat-auth",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-auth \"Server-side auth, audit, sync and validated configurations\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Prevent duplicate processing",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "F05",
   "canonicalId": "F05",
   "canonicalState": "open",
   "sourceId": "F05",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Project daily records",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:02:52.533Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-DAY"
   ],
   "card": "crew-startday",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-startday \"Start Day, timesheet head start and the daily report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Project daily records",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "F09",
   "canonicalId": "F09",
   "canonicalState": "open",
   "sourceId": "F09",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Daily project timesheets",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:02:52.533Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-TIME",
    "F12",
    "R12",
    "R21",
    "V39·codex",
    "V52·codex",
    "V53·codex"
   ],
   "card": "crew-time",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-time \"Time, breaks, per diem, signatures and end of day\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Daily project timesheets",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "F15",
   "canonicalId": "F15",
   "canonicalState": "open",
   "sourceId": "F15",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Estimate setup for job costing",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:02:52.533Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-CST",
    "GL-010",
    "GL-049",
    "GL-098"
   ],
   "card": "fin-cost",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cost \"Job costing, budgets, cost codes and P&L\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Estimate setup for job costing",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "F17",
   "canonicalId": "F17",
   "canonicalState": "open",
   "sourceId": "F17",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Project profit and loss",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:02:52.533Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-CST",
    "R04",
    "W05"
   ],
   "card": "fin-cost",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cost \"Job costing, budgets, cost codes and P&L\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Project the owner's figures and loss",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "F19",
   "canonicalId": "F19",
   "canonicalState": "open",
   "sourceId": "F19",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Employee scheduling",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:02:52.533Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-SCH",
    "F20",
    "F21",
    "F22",
    "F23",
    "F24",
    "V38·codex",
    "V51·codex"
   ],
   "card": "mgmt-sched",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-sched \"Schedule board, Timeline and the 4-week look-ahead\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Employee scheduling",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "F23",
   "canonicalId": "F23",
   "canonicalState": "partial",
   "sourceId": "F23",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Schedule reports",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-DASH",
    "GL-083",
    "F19",
    "F20",
    "F21",
    "F22",
    "F24",
    "V38·codex",
    "V51·codex"
   ],
   "card": "mgmt-reports",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-reports \"Reporting Center and operational reports\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Schedule reports",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "F26",
   "canonicalId": "F26",
   "canonicalState": "partial",
   "sourceId": "F26",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Missing equipment and project inventory reports",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-WARE",
    "GL-009",
    "GL-083",
    "F25",
    "F27",
    "R15",
    "V28·codex",
    "V29·codex"
   ],
   "card": "gear-ware",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-ware \"Warehouse, loadouts, inventory and materials\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Missing equipment and project inventory reports",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "F27",
   "canonicalId": "F27",
   "canonicalState": "partial",
   "sourceId": "F27",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Warehouse fulfillment and delivery planning",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-WARE",
    "GL-009",
    "F25",
    "F26",
    "R15",
    "V28·codex",
    "V29·codex"
   ],
   "card": "gear-ware",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-ware \"Warehouse, loadouts, inventory and materials\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Warehouse fulfillment and delivery planning",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "F31",
   "canonicalId": "F31",
   "canonicalState": "partial",
   "sourceId": "F31",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Automatic project certificate packs",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-CERT",
    "GL-005",
    "GL-024",
    "F30",
    "V19·codex",
    "V24·codex"
   ],
   "card": "safe-tickets",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-tickets \"Tickets and certificates\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Automatic project certificate packs",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "F41",
   "canonicalId": "F41",
   "canonicalState": "open",
   "sourceId": "F41",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Prospects bids and site walks",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:02:52.533Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-QUO",
    "GL-033"
   ],
   "card": "sales-quotes",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-quotes \"Quotes, pipeline, proposals and bid items\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Prospects bids and site walks",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "F45",
   "canonicalId": "F45",
   "canonicalState": "open",
   "sourceId": "F45",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Time and material tickets",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:20:00.000Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-TM",
    "GL-042"
   ],
   "card": "mgmt-tm",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-tm \"T&M tickets and change orders\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Time and material tickets",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "F46",
   "canonicalId": "F46",
   "canonicalState": "open",
   "sourceId": "F46",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "T&M notifications and change orders",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:02:52.533Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-TM",
    "GL-042",
    "GL-039"
   ],
   "card": "mgmt-tm",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-tm \"T&M tickets and change orders\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "T&M notifications and change orders",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "F49",
   "canonicalId": "F49",
   "canonicalState": "open",
   "sourceId": "F49",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Incidents near misses and corrective actions",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:02:52.533Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-INC",
    "GL-026",
    "GL-095",
    "F48",
    "R20",
    "V13·codex",
    "V37·codex",
    "V41·codex",
    "V42·codex",
    "V43·codex",
    "V44·codex",
    "V45·codex"
   ],
   "card": "safe-inc",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-inc \"Incidents, inspections, corrective actions and OHS reports\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Incidents near misses and corrective actions",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "F50",
   "canonicalId": "F50",
   "canonicalState": "open",
   "sourceId": "F50",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Safety alerts and performance indicators",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:20:00.000Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-INC",
    "GL-026",
    "GL-109"
   ],
   "card": "safe-inc",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-inc \"Incidents, inspections, corrective actions and OHS reports\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Safety alerts and performance indicators",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "R02",
   "canonicalId": "R02",
   "canonicalState": "open",
   "sourceId": "R02",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Keep a separate quote register",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:02:52.533Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-QUO"
   ],
   "card": "sales-quotes",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-quotes \"Quotes, pipeline, proposals and bid items\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Keep a separate quote register",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "R05",
   "canonicalId": "R05",
   "canonicalState": "open",
   "sourceId": "R05",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Replace ambiguous status colours with meaningful states",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:02:52.533Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-STA"
   ],
   "card": "fin-invoice",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-invoice \"Invoicing: ready to bill, completion marks and drafts in the app\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Replace ambiguous status colours with meaningful states",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "R06",
   "canonicalId": "R06",
   "canonicalState": "open",
   "sourceId": "R06",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Provide desktop access",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:02:52.533Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-UX"
   ],
   "card": "mgmt-ux",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-ux \"Navigation and everyday usability\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Provide desktop access",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "R15",
   "canonicalId": "R15",
   "canonicalState": "open",
   "sourceId": "R15",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Track inventory used on jobs",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:02:52.533Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-MAT",
    "GL-009",
    "F25",
    "F26",
    "F27",
    "V28·codex",
    "V29·codex"
   ],
   "card": "gear-ware",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-ware \"Warehouse, loadouts, inventory and materials\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Track inventory used on jobs",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "R20",
   "canonicalId": "R20",
   "canonicalState": "open",
   "sourceId": "R20",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Prepare job specific safety documents",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:02:52.533Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-SAFE",
    "GL-051",
    "GL-056",
    "GL-063",
    "F48",
    "F49",
    "V13·codex",
    "V37·codex",
    "V41·codex",
    "V42·codex",
    "V43·codex",
    "V44·codex",
    "V45·codex"
   ],
   "card": "safe-lib",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-lib \"Safety document library, permits and credential controls\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Prepare job specific safety documents",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "V04·codex",
   "canonicalId": "V04·codex",
   "canonicalState": "open",
   "sourceId": "V04",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Company branding",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:02:52.533Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-BRAND",
    "GL-106"
   ],
   "card": "office-company",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-company \"Company page, branding, Messages, Ideas and HQ\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Company branding",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "V09·codex",
   "canonicalId": "V09·codex",
   "canonicalState": "partial",
   "sourceId": "V09",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Cross-project form audit",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-DASH",
    "GL-100",
    "GL-084",
    "F01",
    "V08·codex",
    "V11·codex",
    "V13·codex",
    "V14·codex"
   ],
   "card": "mgmt-forms",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-forms \"Forms: builder, templates, lifecycle and audit\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Cross-project form audit",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "V13·codex",
   "canonicalId": "V13·codex",
   "canonicalState": "open",
   "sourceId": "V13",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Safety dashboard and corrective actions",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:02:52.533Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-INC",
    "GL-026",
    "GL-095",
    "F01",
    "F48",
    "F49",
    "R20",
    "V08·codex",
    "V09·codex",
    "V11·codex",
    "V14·codex",
    "V37·codex",
    "V41·codex",
    "V42·codex",
    "V43·codex",
    "V44·codex",
    "V45·codex"
   ],
   "card": "safe-inc",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-inc \"Incidents, inspections, corrective actions and OHS reports\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Safety dashboard and corrective actions",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "V16·codex",
   "canonicalId": "V16·codex",
   "canonicalState": "partial",
   "sourceId": "V16",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Operational exception summaries",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-DASH",
    "GL-083",
    "GL-106"
   ],
   "card": "mgmt-reports",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-reports \"Reporting Center and operational reports\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Operational exception summaries",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "V24·codex",
   "canonicalId": "V24·codex",
   "canonicalState": "partial",
   "sourceId": "V24",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Certificate lifecycle and pack export",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-CERT",
    "GL-004",
    "GL-005",
    "GL-088",
    "GL-099",
    "F30",
    "F31",
    "V19·codex"
   ],
   "card": "safe-tickets",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-tickets \"Tickets and certificates\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Certificate lifecycle and pack export",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "V28·codex",
   "canonicalId": "V28·codex",
   "canonicalState": "open",
   "sourceId": "V28",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Project loadout requests and fulfillment",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:02:52.533Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-WARE",
    "GL-009",
    "F25",
    "F26",
    "F27",
    "R15",
    "V29·codex"
   ],
   "card": "gear-ware",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-ware \"Warehouse, loadouts, inventory and materials\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Project loadout requests and fulfillment",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "W02",
   "canonicalId": "W02",
   "canonicalState": "open",
   "sourceId": "W02",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Preserve commercial identifiers",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:02:52.533Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-MIG"
   ],
   "card": "fin-cutover",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cutover \"Data migration and the real-data cut-over\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Preserve commercial identifiers",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "W03",
   "canonicalId": "W03",
   "canonicalState": "open",
   "sourceId": "W03",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Support multiple commercial records per site",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:02:52.533Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-MIG"
   ],
   "card": "fin-cutover",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cutover \"Data migration and the real-data cut-over\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Support multiple commercial records per site",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "W05",
   "canonicalId": "W05",
   "canonicalState": "open",
   "sourceId": "W05",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Support all seven visible expense categories",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:02:52.533Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-CST",
    "F17",
    "R04"
   ],
   "card": "fin-cost",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cost \"Job costing, budgets, cost codes and P&L\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Support all seven visible expense categories",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "W09",
   "canonicalId": "W09",
   "canonicalState": "open",
   "sourceId": "W09",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Represent holdback and payment exceptions",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:02:52.533Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-REC"
   ],
   "card": "fin-money",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-money \"Money overview, collections, receivables and holdbacks\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Represent holdback and payment exceptions",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "M-ASSET",
   "canonicalId": "M-ASSET",
   "canonicalState": "open",
   "sourceId": "M-ASSET",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Equipment records, rentals, maintenance and inspection",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "F28",
    "F29",
    "F51",
    "V25·codex",
    "V26·codex",
    "V27·codex",
    "M-AUTH",
    "O-DATA",
    "GL-101",
    "GL-080",
    "GL-085",
    "GL-012",
    "GL-006",
    "GL-008",
    "GL-068",
    "GL-095"
   ],
   "card": "gear-assets",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-assets \"Equipment records, maintenance, inspections and the equipment map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Equipment records, rentals, maintenance and inspection",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "M-CERT",
   "canonicalId": "M-CERT",
   "canonicalState": "open",
   "sourceId": "M-CERT",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Credential lifecycle, QR access and project packs",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "F30",
    "F31",
    "V19·codex",
    "V24·codex",
    "M-AUTH",
    "O-DATA",
    "GL-004",
    "GL-088",
    "GL-099",
    "GL-005"
   ],
   "card": "safe-tickets",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-tickets \"Tickets and certificates\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Credential lifecycle, QR access and project packs",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "M-CST",
   "canonicalId": "M-CST",
   "canonicalState": "open",
   "sourceId": "M-CST",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Cost budgets, cost lines and job profitability",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-10T03:20:00.000Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "R04",
    "W05",
    "W06",
    "W07",
    "F03",
    "F06",
    "F15",
    "F16",
    "F17",
    "F18",
    "V11·codex",
    "M-AUTH",
    "O-DATA",
    "GL-098",
    "GL-049",
    "GL-043"
   ],
   "card": "fin-cost",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cost \"Job costing, budgets, cost codes and P&L\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Cost budgets, cost lines and job profitability",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "M-FORM",
   "canonicalId": "M-FORM",
   "canonicalState": "open",
   "sourceId": "M-FORM",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Form builder, lifecycle and conditional alerts",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "F37",
    "F38",
    "F39",
    "M-AUTH",
    "O-DATA",
    "GL-007",
    "GL-100",
    "GL-084",
    "GL-002",
    "GL-108"
   ],
   "card": "mgmt-forms",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-forms \"Forms: builder, templates, lifecycle and audit\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Form builder, lifecycle and conditional alerts",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "M-INC",
   "canonicalId": "M-INC",
   "canonicalState": "open",
   "sourceId": "M-INC",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Incidents, corrective actions and safety indicators",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "unmapped-ref"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "F49",
    "F50",
    "V13·codex",
    "GL-025",
    "GL-027",
    "REV-D1-07",
    "M-AUTH",
    "O-DATA",
    "GL-026",
    "GL-025",
    "GL-027"
   ],
   "card": "safe-inc",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-inc \"Incidents, inspections, corrective actions and OHS reports\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Incidents, corrective actions and safety indicators",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "M-TM",
   "canonicalId": "M-TM",
   "canonicalState": "open",
   "sourceId": "M-TM",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "T&M tickets, sign-off and change orders",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "F45",
    "F46",
    "F47",
    "M-AUTH",
    "O-DATA",
    "GL-042"
   ],
   "card": "mgmt-tm",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-tm \"T&M tickets and change orders\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "T&M tickets, sign-off and change orders",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "M-WARE",
   "canonicalId": "M-WARE",
   "canonicalState": "open",
   "sourceId": "M-WARE",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Warehouse request, fulfillment, return and missing items",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "F25",
    "F26",
    "F27",
    "V28·codex",
    "V29·codex",
    "M-AUTH",
    "O-DATA",
    "GL-009"
   ],
   "card": "gear-ware",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-ware \"Warehouse, loadouts, inventory and materials\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Warehouse request, fulfillment, return and missing items",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "GL-005",
   "canonicalId": "GL-005",
   "canonicalState": "partial",
   "sourceId": "GL-005",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "A PDF pack of certificates on one button for a GC who asks mid-job, plus print styling over the cert tables (tickets file storage, PDF pack); the job's ticke…",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "F31",
    "V24·codex",
    "M-CERT",
    "V53"
   ],
   "card": "safe-tickets",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-tickets \"Tickets and certificates\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "A PDF pack of certificates on one button for a GC who asks mid-job, plus print styling…",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "GL-008",
   "canonicalId": "GL-008",
   "canonicalState": "partial",
   "sourceId": "GL-008",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Logging an inspection from the scan page with no login, and a maintenance and repair history per machine — scan the code on a machine and fill in the inspect…",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "F29",
    "F51",
    "V25·codex",
    "M-ASSET",
    "V61"
   ],
   "card": "gear-qr",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-qr \"QR setup: hats and assets\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Logging an inspection from the scan page with no login, and a maintenance and repair…",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "GL-009",
   "canonicalId": "GL-009",
   "canonicalState": "partial",
   "sourceId": "GL-009",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "The yard-to-site-and-back flow: loadout lists (exist in app-yard.js per the gap analysis; the master list and Not_Built_Why still say not built), stock movin…",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "R15",
    "F25",
    "F26",
    "F27",
    "F28",
    "V28·codex",
    "V29·codex",
    "M-WARE",
    "V62",
    "V63",
    "V64"
   ],
   "card": "gear-ware",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-ware \"Warehouse, loadouts, inventory and materials\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "The yard-to-site-and-back flow: loadout lists (exist in per the gap analysis; the master…",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "GL-041",
   "canonicalId": "GL-041",
   "canonicalState": "partial",
   "sourceId": "GL-041",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Project book — lien information, an air monitoring specialist field, a prevailing-wage flag; theirs has 22+ sections, ours the main ones",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "F14",
    "V30·codex",
    "V33·codex",
    "M-BOOK"
   ],
   "card": "mgmt-projbook",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-projbook \"Project Book and job setup\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Project book — lien information, an air monitoring specialist field, a prevailing-wage…",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "GL-042",
   "canonicalId": "GL-042",
   "canonicalState": "partial",
   "sourceId": "GL-042",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Time & Material — client sign-off on site or by email, an instant alert when T&M work starts, outstanding-T&M-ticket reports, a one-click change order off a …",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "F45",
    "F46",
    "F47",
    "M-TM"
   ],
   "card": "mgmt-tm",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-tm \"T&M tickets and change orders\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Time & Material — client sign-off on site or by email, an instant alert when T&M work…",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "GL-095",
   "canonicalId": "GL-095",
   "canonicalState": "partial",
   "sourceId": "GL-095",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Inspection engine — Makki can build an inspection form and log a result; Fieldflo walks it line by line with a photo per line and turns a \"no\" into an assign…",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "F39",
    "F49",
    "V13·codex",
    "M-ASSET"
   ],
   "card": "safe-inc",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-inc \"Incidents, inspections, corrective actions and OHS reports\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Inspection engine — Makki can build an inspection form and log a result; Fieldflo walks…",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "GL-096",
   "canonicalId": "GL-096",
   "canonicalState": "partial",
   "sourceId": "GL-096",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Project gauges and stats — Makki has bid-vs-spent rings; Fieldflo adds mandays and waste-loads gauges, days left, and a stats panel with disciplinary actions…",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "F03",
    "F06",
    "V11·codex",
    "M-DASH"
   ],
   "card": "mgmt-dash",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-dash \"Dashboard, stat tiles and the job-site map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Project gauges and stats — Makki has bid-vs-spent rings; Fieldflo adds mandays and…",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "GL-097",
   "canonicalId": "GL-097",
   "canonicalState": "partial",
   "sourceId": "GL-097",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Project-level settings — allow multiple timesheets, allow multiple PSI / JHA, phases, a daily overtime trigger, per-project timezone, project-level form sett…",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "V10·codex",
    "V30·codex",
    "M-BOOK"
   ],
   "card": "mgmt-projbook",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-projbook \"Project Book and job setup\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Project-level settings — allow multiple timesheets, allow multiple PSI / JHA, phases, a…",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "GL-098",
   "canonicalId": "GL-098",
   "canonicalState": "partial",
   "sourceId": "GL-098",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Job cost estimate page — Makki has cost breakdown and change orders; Fieldflo adds contract value, a  percent complete with a change log, labour estimate rows and i…",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "F06",
    "F15",
    "V34·codex",
    "M-CST"
   ],
   "card": "fin-cost",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cost \"Job costing, budgets, cost codes and P&L\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Job cost estimate page — Makki has cost breakdown and change orders; Fieldflo adds…",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "GL-099",
   "canonicalId": "GL-099",
   "canonicalState": "partial",
   "sourceId": "GL-099",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Certificates page depth — cert photo upload (GL-088), a six-field filter panel (SS last 4, union code, labor type), and the cert-name link to the scanned paper",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "F30",
    "F35",
    "V24·codex",
    "M-CERT"
   ],
   "card": "safe-tickets",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-tickets \"Tickets and certificates\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Certificates page depth — cert photo upload, a six-field filter panel (SS last 4, union…",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "GL-100",
   "canonicalId": "GL-100",
   "canonicalState": "partial",
   "sourceId": "GL-100",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Forms lifecycle — Active / Closed / Deleted tabs, download .pdf and .zip, and the red-until-right rule on every form; the Form Builder itself is live since 0…",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "F40",
    "V09·codex",
    "V46·codex",
    "M-FORM"
   ],
   "card": "mgmt-forms",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-forms \"Forms: builder, templates, lifecycle and audit\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Forms lifecycle — Active / Closed / Deleted tabs, download.pdf.zip, and the…",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "GL-101",
   "canonicalId": "GL-101",
   "canonicalState": "partial",
   "sourceId": "GL-101",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Inventory depth — a next-inspection-due column, yard / aisle location, asset tag, asset class, quick transfer, item rates (hourly / daily / weekly / monthly)…",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "W12",
    "V26·codex",
    "M-ASSET"
   ],
   "card": "gear-assets",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-assets \"Equipment records, maintenance, inspections and the equipment map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Inventory depth — a next-inspection-due column, yard / aisle location, asset tag, asset…",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "GL-102",
   "canonicalId": "GL-102",
   "canonicalState": "partial",
   "sourceId": "GL-102",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "A 4-week look ahead as its own view alongside the Timeline",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "V51·codex",
    "M-SCH"
   ],
   "card": "mgmt-sched",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-sched \"Schedule board, Timeline and the 4-week look-ahead\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "A 4-week look ahead as its own view alongside the Timeline",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "M-AUTH·impl",
   "canonicalId": "M-AUTH·impl",
   "canonicalState": "open",
   "sourceId": "M-AUTH·impl",
   "section": "addition",
   "idSpace": "accounting r3 addition",
   "title": "M-AUTH · implementation: local prototype of server-enforced roles on synthetic fixtures",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:20:00.000Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-AUTH",
    "M-AUTH"
   ],
   "card": "plat-auth",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-auth \"Server-side auth, audit, sync and validated configurations\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "implementation: local prototype of server-enforced roles on synthetic fixtures",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "O-DATA·impl",
   "canonicalId": "O-DATA·impl",
   "canonicalState": "open",
   "sourceId": "O-DATA·impl",
   "section": "addition",
   "idSpace": "accounting r3 addition",
   "title": "O-DATA · implementation: local prototype of the schema, API and private files on synthetic data",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:20:00.000Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "O-DATA",
    "O-DATA"
   ],
   "card": "plat-host",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-host \"Hosting, domain, database, backups and capacity\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "implementation: local prototype of the schema, API and private files on synthetic data",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "D01",
   "canonicalId": "D01",
   "canonicalState": "blocked",
   "sourceId": "D01",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Authorization enforced throughout the system",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-AUTH",
    "R08",
    "V05·codex",
    "V06·codex"
   ],
   "card": "plat-auth",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-auth \"Server-side auth, audit, sync and validated configurations\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Authorization enforced throughout the system",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "D04",
   "canonicalId": "D04",
   "canonicalState": "blocked",
   "sourceId": "D04",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Audit changes and corrections",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-AUD",
    "GL-040"
   ],
   "card": "plat-auth",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-auth \"Server-side auth, audit, sync and validated configurations\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Audit changes and corrections",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "D05",
   "canonicalId": "D05",
   "canonicalState": "blocked",
   "sourceId": "D05",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Manage sync failures and conflicts",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-SYNC"
   ],
   "card": "plat-auth",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-auth \"Server-side auth, audit, sync and validated configurations\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Manage sync failures and conflicts",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "D06",
   "canonicalId": "D06",
   "canonicalState": "blocked",
   "sourceId": "D06",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Protect approved document versions",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-AUD",
    "GL-035"
   ],
   "card": "mgmt-docs",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "D06",
   "decisionKey": "documents",
   "decidedAt": "2026-10-06T16:43Z",
   "decisionWords": "Omar authorizes implementation now (6 Oct): proceed with the confirmed fixes and remaining agreed work from our reviews, on YOUR existing Makki runtime.",
   "decisionSource": "Omar 2026-10-06 16:43 UTC — vault/topics/decisions/implementation now, on your runtime.md (implementation against the requirement ids is authorised and does not come back for approval; demo fixes do not wait on hosting, auth or data decisions); re-stated by Omar 2026-11-07 06:48Z Telegram 2118",
   "decisionEffect": "build time only — authorised implementation; each row routes by its canonical state (Not done until the hive reports it finished)",
   "decisionKind": "decision",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-docs \"Documents, photos, drawings and the closeout report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Protect approved document versions",
   "outcome": "Not done: held up by a step outside the build on demo data — Omar's word of 6 October 2026 settles it; it waits on nobody.",
   "next": "Next: a person's step comes first on this row; the hive picks it up after that."
  },
  {
   "id": "D08",
   "canonicalId": "D08",
   "canonicalState": "blocked",
   "sourceId": "D08",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Keep business records as the authoritative data",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-AI",
    "GL-044"
   ],
   "card": "office-ai",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-ai \"The assistant by text: answers and reviewed actions\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Keep business records as the authoritative data",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "D09",
   "canonicalId": "D09",
   "canonicalState": "blocked",
   "sourceId": "D09",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Monitor assistant quality and usage",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-AI"
   ],
   "card": "office-ai",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-ai \"The assistant by text: answers and reviewed actions\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Monitor assistant quality and usage",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "D10",
   "canonicalId": "D10",
   "canonicalState": "blocked",
   "sourceId": "D10",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Back up and export business data",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-BACK",
    "GL-083"
   ],
   "card": "plat-host",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-host \"Hosting, domain, database, backups and capacity\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Back up and export business data",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "D11",
   "canonicalId": "D11",
   "canonicalState": "blocked",
   "sourceId": "D11",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Keep location and HR access limited",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-PRIV",
    "GL-019",
    "GL-087"
   ],
   "card": "safe-privacy",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-privacy \"Location verification and HR privacy\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Keep location and HR access limited",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "F02",
   "canonicalId": "F02",
   "canonicalState": "blocked",
   "sourceId": "F02",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Current site attendance",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-TIME",
    "GL-030"
   ],
   "card": "crew-time",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "F02",
   "decisionKey": "attendance",
   "decidedAt": "2026-10-06T16:43Z",
   "decisionWords": "implementation now, on your runtime",
   "decisionSource": "Omar 2026-10-06 16:43 UTC — vault/topics/decisions/implementation now, on your runtime.md (implementation against the requirement ids is authorised and does not come back for approval; demo fixes do not wait on hosting, auth or data decisions); re-stated by Omar 2026-11-07 06:48Z Telegram 2118",
   "decisionEffect": "build time only — authorised implementation; routes by its canonical state",
   "decisionKind": "decision",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-time \"Time, breaks, per diem, signatures and end of day\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Current site attendance",
   "outcome": "Not done: held up by a step outside the build on demo data — Omar's word of 6 October 2026 settles it (“implementation now, on your runtime”); it waits on…",
   "next": "Next: a person's step comes first on this row; the hive picks it up after that."
  },
  {
   "id": "F07",
   "canonicalId": "F07",
   "canonicalState": "blocked",
   "sourceId": "F07",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Project exception notifications",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-DASH",
    "GL-039",
    "GL-109"
   ],
   "card": "office-msg",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-msg \"Notifications, broadcasts and auto-send\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Project exception notifications",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "F21",
   "canonicalId": "F21",
   "canonicalState": "blocked",
   "sourceId": "F21",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Schedule messaging",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-SMS",
    "GL-023",
    "GL-039",
    "F19",
    "F20",
    "F22",
    "F23",
    "F24",
    "V38·codex",
    "V51·codex"
   ],
   "card": "office-msg",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-msg \"Notifications, broadcasts and auto-send\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Schedule messaging",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "F32",
   "canonicalId": "F32",
   "canonicalState": "blocked",
   "sourceId": "F32",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Custom training and certificates",
   "state": "blocked",
   "ownerClass": "released by a dated decision — build work, nobody's step in front of it",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-TRAIN",
    "GL-024",
    "F33",
    "F55",
    "V20·codex",
    "V21·codex",
    "V23·codex"
   ],
   "card": "safe-train",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "F32",
   "decisionKey": "training-edges",
   "decidedAt": "2026-11-07T22:13Z",
   "decisionWords": "the dependency edges are wrong — only the rows that depend on the decision stay under the question (Omar's live review, as carried by main's order of 2026-11-07 23:10Z)",
   "decisionSource": "Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)",
   "decisionEffect": "released from the training question: only the two licensed-catalogue rows (the catalogue decision and the catalogue option) depend on the paid-catalogue decision; the training matrix, the onboarding and orientation material, the training library, history and reports and the custom training rows are build work that never depended on it; each released row routes by its canonical state (Not done, build work) and leaves Omar's queue; the rows that depend on the decision stay under the question",
   "decisionKind": "released",
   "aiExecutableWhy": "The task accounting of 2026-10-31 recorded this row outside the AI-executable set while its owner field read Omar. The dated decision of 2026-11-07T22:13Z took that step away: the row is build work on demo data and waits on nobody. The flag is left as the accounting recorded it — the superseded person-step is no longer the reason, and the row's own next action is the current reading.",
   "aiExecutableVia": "derived from the row's own canonical field, its dated decision (training-edges) and the accounting the flag was read from; source: Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-train \"Training, training matrix, orientation and onboarding\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "canonicalOwnerClass": "Omar",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Custom training and certificates",
   "outcome": "Not done: not built yet on demo data — released from Omar's queue on 7 November 2026; it never depended on the decision that question asks.",
   "next": "Next: the accounting puts it outside the hive's automated set; nothing in the queue holds it."
  },
  {
   "id": "F33",
   "canonicalId": "F33",
   "canonicalState": "blocked",
   "sourceId": "F33",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Training history and reports",
   "state": "blocked",
   "ownerClass": "released by a dated decision — build work, nobody's step in front of it",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-TRAIN",
    "GL-024",
    "F32",
    "F55",
    "V20·codex",
    "V21·codex",
    "V23·codex"
   ],
   "card": "safe-train",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "F33",
   "decisionKey": "training-edges",
   "decidedAt": "2026-11-07T22:13Z",
   "decisionWords": "the dependency edges are wrong — only the rows that depend on the decision stay under the question (Omar's live review, as carried by main's order of 2026-11-07 23:10Z)",
   "decisionSource": "Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)",
   "decisionEffect": "released from the training question: only the two licensed-catalogue rows (the catalogue decision and the catalogue option) depend on the paid-catalogue decision; the training matrix, the onboarding and orientation material, the training library, history and reports and the custom training rows are build work that never depended on it; each released row routes by its canonical state (Not done, build work) and leaves Omar's queue; the rows that depend on the decision stay under the question",
   "decisionKind": "released",
   "aiExecutableWhy": "The task accounting of 2026-10-31 recorded this row outside the AI-executable set while its owner field read Omar. The dated decision of 2026-11-07T22:13Z took that step away: the row is build work on demo data and waits on nobody. The flag is left as the accounting recorded it — the superseded person-step is no longer the reason, and the row's own next action is the current reading.",
   "aiExecutableVia": "derived from the row's own canonical field, its dated decision (training-edges) and the accounting the flag was read from; source: Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-train \"Training, training matrix, orientation and onboarding\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "canonicalOwnerClass": "Omar",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Training history and reports",
   "outcome": "Not done: not built yet on demo data — released from Omar's queue on 7 November 2026; it never depended on the decision that question asks.",
   "next": "Next: the accounting puts it outside the hive's automated set; nothing in the queue holds it."
  },
  {
   "id": "F38",
   "canonicalId": "F38",
   "canonicalState": "blocked",
   "sourceId": "F38",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Automatic form distribution",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-FORM",
    "GL-084",
    "GL-108",
    "F37",
    "F39",
    "F40",
    "V10·codex",
    "V46·codex"
   ],
   "card": "office-msg",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-msg \"Notifications, broadcasts and auto-send\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Automatic form distribution",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "F39",
   "canonicalId": "F39",
   "canonicalState": "blocked",
   "sourceId": "F39",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Answer triggered form alerts",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-FORM",
    "GL-095",
    "GL-109",
    "F37",
    "F38",
    "F40",
    "V10·codex",
    "V46·codex"
   ],
   "card": "office-msg",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-msg \"Notifications, broadcasts and auto-send\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Answer triggered form alerts",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "F52",
   "canonicalId": "F52",
   "canonicalState": "blocked",
   "sourceId": "F52",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Folders attached to business records",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-DOC",
    "GL-035",
    "GL-087",
    "F08",
    "F53",
    "F56",
    "V35·codex"
   ],
   "card": "mgmt-docs",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "F52",
   "decisionKey": "documents",
   "decidedAt": "2026-10-06T16:43Z",
   "decisionWords": "Omar authorizes implementation now (6 Oct): proceed with the confirmed fixes and remaining agreed work from our reviews, on YOUR existing Makki runtime.",
   "decisionSource": "Omar 2026-10-06 16:43 UTC — vault/topics/decisions/implementation now, on your runtime.md (implementation against the requirement ids is authorised and does not come back for approval; demo fixes do not wait on hosting, auth or data decisions); re-stated by Omar 2026-11-07 06:48Z Telegram 2118",
   "decisionEffect": "build time only — authorised implementation; each row routes by its canonical state (Not done until the hive reports it finished)",
   "decisionKind": "decision",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-docs \"Documents, photos, drawings and the closeout report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Folders attached to business records",
   "outcome": "Not done: held up by a step outside the build on demo data — Omar's word of 6 October 2026 settles it; it waits on nobody.",
   "next": "Next: a person's step comes first on this row; the hive picks it up after that."
  },
  {
   "id": "F53",
   "canonicalId": "F53",
   "canonicalState": "blocked",
   "sourceId": "F53",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Restricted document access and image markup",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-DOC",
    "GL-035",
    "F08",
    "F52",
    "F56",
    "V35·codex"
   ],
   "card": "mgmt-docs",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "F53",
   "decisionKey": "documents",
   "decidedAt": "2026-10-06T16:43Z",
   "decisionWords": "Omar authorizes implementation now (6 Oct): proceed with the confirmed fixes and remaining agreed work from our reviews, on YOUR existing Makki runtime.",
   "decisionSource": "Omar 2026-10-06 16:43 UTC — vault/topics/decisions/implementation now, on your runtime.md (implementation against the requirement ids is authorised and does not come back for approval; demo fixes do not wait on hosting, auth or data decisions); re-stated by Omar 2026-11-07 06:48Z Telegram 2118",
   "decisionEffect": "build time only — authorised implementation; each row routes by its canonical state (Not done until the hive reports it finished)",
   "decisionKind": "decision",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-docs \"Documents, photos, drawings and the closeout report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Restricted document access and image markup",
   "outcome": "Not done: held up by a step outside the build on demo data — Omar's word of 6 October 2026 settles it; it waits on nobody.",
   "next": "Next: a person's step comes first on this row; the hive picks it up after that."
  },
  {
   "id": "F55",
   "canonicalId": "F55",
   "canonicalState": "blocked",
   "sourceId": "F55",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Training library access",
   "state": "blocked",
   "ownerClass": "released by a dated decision — build work, nobody's step in front of it",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-CAT",
    "GL-024",
    "F32",
    "F33",
    "V20·codex",
    "V21·codex",
    "V23·codex"
   ],
   "card": "safe-train",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "F55",
   "decisionKey": "training-edges",
   "decidedAt": "2026-11-07T22:13Z",
   "decisionWords": "the dependency edges are wrong — only the rows that depend on the decision stay under the question (Omar's live review, as carried by main's order of 2026-11-07 23:10Z)",
   "decisionSource": "Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)",
   "decisionEffect": "released from the training question: only the two licensed-catalogue rows (the catalogue decision and the catalogue option) depend on the paid-catalogue decision; the training matrix, the onboarding and orientation material, the training library, history and reports and the custom training rows are build work that never depended on it; each released row routes by its canonical state (Not done, build work) and leaves Omar's queue; the rows that depend on the decision stay under the question",
   "decisionKind": "released",
   "aiExecutableWhy": "The task accounting of 2026-10-31 recorded this row outside the AI-executable set while its owner field read Omar. The dated decision of 2026-11-07T22:13Z took that step away: the row is build work on demo data and waits on nobody. The flag is left as the accounting recorded it — the superseded person-step is no longer the reason, and the row's own next action is the current reading.",
   "aiExecutableVia": "derived from the row's own canonical field, its dated decision (training-edges) and the accounting the flag was read from; source: Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-train \"Training, training matrix, orientation and onboarding\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "canonicalOwnerClass": "Omar",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Training library access",
   "outcome": "Not done: not built yet on demo data — released from Omar's queue on 7 November 2026; it never depended on the decision that question asks.",
   "next": "Next: the accounting puts it outside the hive's automated set; nothing in the queue holds it."
  },
  {
   "id": "F56",
   "canonicalId": "F56",
   "canonicalState": "blocked",
   "sourceId": "F56",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Plans and drawings",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-DRAW",
    "GL-035",
    "GL-038",
    "F08",
    "F52",
    "F53",
    "V35·codex"
   ],
   "card": "mgmt-docs",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "F56",
   "decisionKey": "documents",
   "decidedAt": "2026-10-06T16:43Z",
   "decisionWords": "Omar authorizes implementation now (6 Oct): proceed with the confirmed fixes and remaining agreed work from our reviews, on YOUR existing Makki runtime.",
   "decisionSource": "Omar 2026-10-06 16:43 UTC — vault/topics/decisions/implementation now, on your runtime.md (implementation against the requirement ids is authorised and does not come back for approval; demo fixes do not wait on hosting, auth or data decisions); re-stated by Omar 2026-11-07 06:48Z Telegram 2118",
   "decisionEffect": "build time only — authorised implementation; each row routes by its canonical state (Not done until the hive reports it finished)",
   "decisionKind": "decision",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-docs \"Documents, photos, drawings and the closeout report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Plans and drawings",
   "outcome": "Not done: held up by a step outside the build on demo data — Omar's word of 6 October 2026 settles it; it waits on nobody.",
   "next": "Next: a person's step comes first on this row; the hive picks it up after that."
  },
  {
   "id": "R01",
   "canonicalId": "R01",
   "canonicalState": "blocked",
   "sourceId": "R01",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Connect the operating tools",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-CON",
    "GL-015",
    "GL-046",
    "GL-047",
    "F57",
    "V17·codex",
    "V18·codex"
   ],
   "card": "office-connect",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-connect \"Connections: email, calendar, workbook and the Claude context\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Connect the operating tools",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "R03",
   "canonicalId": "R03",
   "canonicalState": "blocked",
   "sourceId": "R03",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Convert accepted quotes into jobs",
   "state": "blocked",
   "ownerClass": "released by a dated decision — build work, nobody's step in front of it",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-QUO",
    "GL-057"
   ],
   "card": "sales-quotes",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "R03",
   "decisionKey": "proposals-edges",
   "decidedAt": "2026-11-07T22:13Z",
   "decisionWords": "the dependency edges are wrong — only the rows that depend on the decision stay under the question (Omar's live review, as carried by main's order of 2026-11-07 23:10Z)",
   "decisionSource": "Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)",
   "decisionEffect": "released from the proposals question: only the e-signature send from the app depends on the send decision; turning an accepted quote into a job is build work that never depended on it; each released row routes by its canonical state (Not done, build work) and leaves Omar's queue; the rows that depend on the decision stay under the question",
   "decisionKind": "released",
   "aiExecutableWhy": "The task accounting of 2026-10-31 recorded this row outside the AI-executable set while its owner field read Omar. The dated decision of 2026-11-07T22:13Z took that step away: the row is build work on demo data and waits on nobody. The flag is left as the accounting recorded it — the superseded person-step is no longer the reason, and the row's own next action is the current reading.",
   "aiExecutableVia": "derived from the row's own canonical field, its dated decision (proposals-edges) and the accounting the flag was read from; source: Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-quotes \"Quotes, pipeline, proposals and bid items\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "canonicalOwnerClass": "Omar",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Convert accepted quotes into jobs",
   "outcome": "Not done: not built yet on demo data — released from Omar's queue on 7 November 2026; it never depended on the decision that question asks.",
   "next": "Next: the accounting puts it outside the hive's automated set; nothing in the queue holds it."
  },
  {
   "id": "R07",
   "canonicalId": "R07",
   "canonicalState": "blocked",
   "sourceId": "R07",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Offer conversational invoicing",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-INV"
   ],
   "card": "fin-invoice",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-invoice \"Invoicing: ready to bill, completion marks and drafts in the app\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Offer conversational invoicing",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "R09",
   "canonicalId": "R09",
   "canonicalState": "blocked",
   "sourceId": "R09",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Remove owner mediated invoicing handoffs",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-INV"
   ],
   "card": "fin-invoice",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-invoice \"Invoicing: ready to bill, completion marks and drafts in the app\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Remove owner mediated invoicing handoffs",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "R10",
   "canonicalId": "R10",
   "canonicalState": "blocked",
   "sourceId": "R10",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Link calendar events to jobs",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-CON",
    "GL-014"
   ],
   "card": "office-connect",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-connect \"Connections: email, calendar, workbook and the Claude context\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Link calendar events to jobs",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "R13",
   "canonicalId": "R13",
   "canonicalState": "blocked",
   "sourceId": "R13",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Monitor relevant email activity",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-CON",
    "GL-039"
   ],
   "card": "office-connect",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-connect \"Connections: email, calendar, workbook and the Claude context\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Monitor relevant email activity",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "R22",
   "canonicalId": "R22",
   "canonicalState": "blocked",
   "sourceId": "R22",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Keep the familiar workflow simple",
   "state": "blocked",
   "ownerClass": "released by a dated decision — build work, nobody's step in front of it",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-UX"
   ],
   "card": "mgmt-ux",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "R22",
   "decisionKey": "adoption-edges",
   "decidedAt": "2026-11-07T22:13Z",
   "decisionWords": "the dependency edges are wrong — only the rows that depend on the decision stay under the question (Omar's live review, as carried by main's order of 2026-11-07 23:10Z)",
   "decisionSource": "Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)",
   "decisionEffect": "released from the adoption question: only the field-adoption measurement row depends on the measurement decision; keeping the familiar workflow simple is build work that never depended on it; each released row routes by its canonical state (Not done, build work) and leaves Omar's queue; the rows that depend on the decision stay under the question",
   "decisionKind": "released",
   "aiExecutableWhy": "The task accounting of 2026-10-31 recorded this row outside the AI-executable set while its owner field read Omar. The dated decision of 2026-11-07T22:13Z took that step away: the row is build work on demo data and waits on nobody. The flag is left as the accounting recorded it — the superseded person-step is no longer the reason, and the row's own next action is the current reading.",
   "aiExecutableVia": "derived from the row's own canonical field, its dated decision (adoption-edges) and the accounting the flag was read from; source: Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-ux \"Navigation and everyday usability\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "canonicalOwnerClass": "Omar",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Keep the familiar workflow simple",
   "outcome": "Not done: not built yet on demo data — released from Omar's queue on 7 November 2026; it never depended on the decision that question asks.",
   "next": "Next: the accounting puts it outside the hive's automated set; nothing in the queue holds it."
  },
  {
   "id": "V02·codex",
   "canonicalId": "V02·codex",
   "canonicalState": "blocked",
   "sourceId": "V02",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Make field adoption measurable",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-UX"
   ],
   "card": "mgmt-ux",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-ux \"Navigation and everyday usability\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Make field adoption measurable",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "V07·codex",
   "canonicalId": "V07·codex",
   "canonicalState": "blocked",
   "sourceId": "V07",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Worker verification without full portal use",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-SMS",
    "GL-020",
    "GL-021",
    "GL-067",
    "F54",
    "V40·codex",
    "V47·codex",
    "V54·codex"
   ],
   "card": "office-textline",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-textline \"The labourer text line (verify by text, no login)\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Worker verification without full portal use",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "V12·codex",
   "canonicalId": "V12·codex",
   "canonicalState": "blocked",
   "sourceId": "V12",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Team broadcasts",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-SMS",
    "GL-022",
    "GL-039"
   ],
   "card": "office-msg",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-msg \"Notifications, broadcasts and auto-send\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Team broadcasts",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "V14·codex",
   "canonicalId": "V14·codex",
   "canonicalState": "blocked",
   "sourceId": "V14",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Equipment exception dashboard",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-DASH",
    "GL-080",
    "GL-085",
    "F01",
    "V08·codex",
    "V09·codex",
    "V11·codex",
    "V13·codex"
   ],
   "card": "gear-assets",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "V14·codex",
   "decisionKey": "equipment",
   "decidedAt": "2026-10-06T16:43Z",
   "decisionWords": "implementation now, on your runtime",
   "decisionSource": "Omar 2026-10-06 16:43 UTC — vault/topics/decisions/implementation now, on your runtime.md (implementation against the requirement ids is authorised and does not come back for approval; demo fixes do not wait on hosting, auth or data decisions); re-stated by Omar 2026-11-07 06:48Z Telegram 2118",
   "decisionEffect": "build time only — authorised implementation; routes by its canonical state",
   "decisionKind": "decision",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-assets \"Equipment records, maintenance, inspections and the equipment map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Equipment exception dashboard",
   "outcome": "Not done: held up by a step outside the build on demo data — Omar's word of 6 October 2026 settles it (“implementation now, on your runtime”); it waits on…",
   "next": "Next: a person's step comes first on this row; the hive picks it up after that."
  },
  {
   "id": "V15·codex",
   "canonicalId": "V15·codex",
   "canonicalState": "blocked",
   "sourceId": "V15",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Scheduled and instant notifications",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-SMS",
    "GL-039",
    "GL-106"
   ],
   "card": "office-msg",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-msg \"Notifications, broadcasts and auto-send\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Scheduled and instant notifications",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "V20·codex",
   "canonicalId": "V20·codex",
   "canonicalState": "blocked",
   "sourceId": "V20",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Targeted mobile training",
   "state": "blocked",
   "ownerClass": "released by a dated decision — build work, nobody's step in front of it",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-TRAIN",
    "GL-024",
    "F32",
    "F33",
    "F55",
    "V21·codex",
    "V23·codex"
   ],
   "card": "safe-train",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "V20·codex",
   "decisionKey": "training-edges",
   "decidedAt": "2026-11-07T22:13Z",
   "decisionWords": "the dependency edges are wrong — only the rows that depend on the decision stay under the question (Omar's live review, as carried by main's order of 2026-11-07 23:10Z)",
   "decisionSource": "Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)",
   "decisionEffect": "released from the training question: only the two licensed-catalogue rows (the catalogue decision and the catalogue option) depend on the paid-catalogue decision; the training matrix, the onboarding and orientation material, the training library, history and reports and the custom training rows are build work that never depended on it; each released row routes by its canonical state (Not done, build work) and leaves Omar's queue; the rows that depend on the decision stay under the question",
   "decisionKind": "released",
   "aiExecutableWhy": "The task accounting of 2026-10-31 recorded this row outside the AI-executable set while its owner field read Omar. The dated decision of 2026-11-07T22:13Z took that step away: the row is build work on demo data and waits on nobody. The flag is left as the accounting recorded it — the superseded person-step is no longer the reason, and the row's own next action is the current reading.",
   "aiExecutableVia": "derived from the row's own canonical field, its dated decision (training-edges) and the accounting the flag was read from; source: Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-train \"Training, training matrix, orientation and onboarding\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "canonicalOwnerClass": "Omar",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Targeted mobile training",
   "outcome": "Not done: not built yet on demo data — released from Omar's queue on 7 November 2026; it never depended on the decision that question asks.",
   "next": "Next: the accounting puts it outside the hive's automated set; nothing in the queue holds it."
  },
  {
   "id": "V21·codex",
   "canonicalId": "V21·codex",
   "canonicalState": "blocked",
   "sourceId": "V21",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Licensed training catalogue option",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-CAT",
    "GL-024",
    "F32",
    "F33",
    "F55",
    "V20·codex",
    "V23·codex"
   ],
   "card": "safe-train",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-train \"Training, training matrix, orientation and onboarding\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Licensed training catalogue option",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "V23·codex",
   "canonicalId": "V23·codex",
   "canonicalState": "blocked",
   "sourceId": "V23",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Training matrix",
   "state": "blocked",
   "ownerClass": "released by a dated decision — build work, nobody's step in front of it",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-TRAIN",
    "GL-024",
    "GL-028",
    "F32",
    "F33",
    "F55",
    "V20·codex",
    "V21·codex"
   ],
   "card": "safe-train",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "V23·codex",
   "decisionKey": "training-edges",
   "decidedAt": "2026-11-07T22:13Z",
   "decisionWords": "the dependency edges are wrong — only the rows that depend on the decision stay under the question (Omar's live review, as carried by main's order of 2026-11-07 23:10Z)",
   "decisionSource": "Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)",
   "decisionEffect": "released from the training question: only the two licensed-catalogue rows (the catalogue decision and the catalogue option) depend on the paid-catalogue decision; the training matrix, the onboarding and orientation material, the training library, history and reports and the custom training rows are build work that never depended on it; each released row routes by its canonical state (Not done, build work) and leaves Omar's queue; the rows that depend on the decision stay under the question",
   "decisionKind": "released",
   "aiExecutableWhy": "The task accounting of 2026-10-31 recorded this row outside the AI-executable set while its owner field read Omar. The dated decision of 2026-11-07T22:13Z took that step away: the row is build work on demo data and waits on nobody. The flag is left as the accounting recorded it — the superseded person-step is no longer the reason, and the row's own next action is the current reading.",
   "aiExecutableVia": "derived from the row's own canonical field, its dated decision (training-edges) and the accounting the flag was read from; source: Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-train \"Training, training matrix, orientation and onboarding\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "canonicalOwnerClass": "Omar",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Training matrix",
   "outcome": "Not done: not built yet on demo data — released from Omar's queue on 7 November 2026; it never depended on the decision that question asks.",
   "next": "Next: the accounting puts it outside the hive's automated set; nothing in the queue holds it."
  },
  {
   "id": "V36·codex",
   "canonicalId": "V36·codex",
   "canonicalState": "blocked",
   "sourceId": "V36",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "HQ view across branches",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-MULTI",
    "GL-037",
    "V01·codex"
   ],
   "card": "office-company",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "V36·codex",
   "decisionKey": "company",
   "decidedAt": "2026-10-04T04:49Z",
   "decisionWords": "Okay the 6 not built can you build it",
   "decisionSource": "Omar 2026-10-04 04:49 UTC — vault/topics/decisions/build the six not built.md; vault/topics/decisions/one company only.md (2026-09-15; Now-block 2026-10-04: answered twice over, do not raise it with him as an open question)",
   "decisionEffect": "the HQ-across-branches screen was built the same morning as an owner-only tab on demo branch labels (never a company name); one company stands everywhere else; a later dated word beats an earlier one, so the choice is not raised again — each row routes by its canonical state",
   "decisionKind": "decision",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-company \"Company page, branding, Messages, Ideas and HQ\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "HQ view across branches",
   "outcome": "Not done: held up by a step outside the build on demo data — Omar's word of 4 October 2026 settles it (“Okay the 6 not built can you build it”); it waits on…",
   "next": "Next: a person's step comes first on this row; the hive picks it up after that."
  },
  {
   "id": "V40·codex",
   "canonicalId": "V40·codex",
   "canonicalState": "blocked",
   "sourceId": "V40",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Location verification request",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-PRIV",
    "GL-019",
    "GL-039",
    "F54",
    "V07·codex",
    "V47·codex",
    "V54·codex"
   ],
   "card": "safe-privacy",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-privacy \"Location verification and HR privacy\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Location verification request",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "V41·codex",
   "canonicalId": "V41·codex",
   "canonicalState": "blocked",
   "sourceId": "V41",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Daily JHA reuse with fresh review",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-SAFE",
    "GL-043",
    "F48",
    "F49",
    "R20",
    "V13·codex",
    "V37·codex",
    "V42·codex",
    "V43·codex",
    "V44·codex",
    "V45·codex"
   ],
   "card": "crew-jha",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "V41·codex",
   "decisionKey": "jha-build",
   "decidedAt": "2026-10-06T16:43Z",
   "decisionWords": "Omar authorizes implementation now (6 Oct): proceed with the confirmed fixes and remaining agreed work from our reviews, on YOUR existing Makki runtime.",
   "decisionSource": "Omar 2026-10-06 16:43 UTC — vault/topics/decisions/implementation now, on your runtime.md (implementation against the requirement ids is authorised and does not come back for approval; demo fixes do not wait on hosting, auth or data decisions)",
   "decisionEffect": "daily JHA reuse with a fresh review and the crew / auditor acknowledgements are demo implementation against requirement ids, authorised; they never waited on the weather-feed choice — each routes by its canonical state (Not done until the hive reports it finished)",
   "decisionKind": "decision",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-jha \"JHA / pre-job safety talk, acknowledgements and weather\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Daily JHA reuse with fresh review",
   "outcome": "Not done: held up by a step outside the build on demo data — Omar's word of 6 October 2026 settles it; it waits on nobody.",
   "next": "Next: a person's step comes first on this row; the hive picks it up after that."
  },
  {
   "id": "V48·codex",
   "canonicalId": "V48·codex",
   "canonicalState": "blocked",
   "sourceId": "V48",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Orientation and onboarding materials",
   "state": "blocked",
   "ownerClass": "released by a dated decision — build work, nobody's step in front of it",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "parked-not-cancelled",
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-ONB",
    "GL-076",
    "GL-024"
   ],
   "card": "safe-train",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "V48·codex",
   "decisionKey": "training-edges",
   "decidedAt": "2026-11-07T22:13Z",
   "decisionWords": "the dependency edges are wrong — only the rows that depend on the decision stay under the question (Omar's live review, as carried by main's order of 2026-11-07 23:10Z)",
   "decisionSource": "Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)",
   "decisionEffect": "released from the training question: only the two licensed-catalogue rows (the catalogue decision and the catalogue option) depend on the paid-catalogue decision; the training matrix, the onboarding and orientation material, the training library, history and reports and the custom training rows are build work that never depended on it; each released row routes by its canonical state (Not done, build work) and leaves Omar's queue; the rows that depend on the decision stay under the question",
   "decisionKind": "released",
   "aiExecutableWhy": "The task accounting of 2026-10-31 recorded this row outside the AI-executable set while its owner field read Omar. The dated decision of 2026-11-07T22:13Z took that step away: the row is build work on demo data and waits on nobody. The flag is left as the accounting recorded it — the superseded person-step is no longer the reason, and the row's own next action is the current reading.",
   "aiExecutableVia": "derived from the row's own canonical field, its dated decision (training-edges) and the accounting the flag was read from; source: Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-train \"Training, training matrix, orientation and onboarding\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "canonicalOwnerClass": "Omar",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Orientation and onboarding materials",
   "outcome": "Not done: not built yet on demo data — released from Omar's queue on 7 November 2026; it never depended on the decision that question asks.",
   "next": "Next: the accounting puts it outside the hive's automated set; nothing in the queue holds it."
  },
  {
   "id": "V50·codex",
   "canonicalId": "V50·codex",
   "canonicalState": "blocked",
   "sourceId": "V50",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Optional takeoff and estimating exploration",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-TAKE",
    "GL-038",
    "R17",
    "R18",
    "R19",
    "V34·codex"
   ],
   "card": "sales-est",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "optional",
   "necessitySource": "canonical v2.4 (materials/canonical/2026-10-31_canonical-tasks.v2.4.json, generated 2026-10-31): row V50·codex is titled \"Optional …\" (codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md))",
   "necessityWord": "Optional",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Optional takeoff and estimating exploration",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "V54·codex",
   "canonicalId": "V54·codex",
   "canonicalState": "blocked",
   "sourceId": "V54",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "SMS failure detection and recovery",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-SMS",
    "GL-021",
    "GL-020",
    "F54",
    "V07·codex",
    "V40·codex",
    "V47·codex"
   ],
   "card": "office-textline",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-textline \"The labourer text line (verify by text, no login)\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "SMS failure detection and recovery",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "V56·codex",
   "canonicalId": "V56·codex",
   "canonicalState": "blocked",
   "sourceId": "V56",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Training and support commitments",
   "state": "blocked",
   "ownerClass": "released by a dated decision — build work, nobody's step in front of it",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "parked-not-cancelled",
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-ONB",
    "GL-076"
   ],
   "card": "safe-train",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "V56·codex",
   "decisionKey": "training-edges",
   "decidedAt": "2026-11-07T22:13Z",
   "decisionWords": "the dependency edges are wrong — only the rows that depend on the decision stay under the question (Omar's live review, as carried by main's order of 2026-11-07 23:10Z)",
   "decisionSource": "Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)",
   "decisionEffect": "released from the training question: only the two licensed-catalogue rows (the catalogue decision and the catalogue option) depend on the paid-catalogue decision; the training matrix, the onboarding and orientation material, the training library, history and reports and the custom training rows are build work that never depended on it; each released row routes by its canonical state (Not done, build work) and leaves Omar's queue; the rows that depend on the decision stay under the question",
   "decisionKind": "released",
   "aiExecutableWhy": "The task accounting of 2026-10-31 recorded this row outside the AI-executable set while its owner field read Omar. The dated decision of 2026-11-07T22:13Z took that step away: the row is build work on demo data and waits on nobody. The flag is left as the accounting recorded it — the superseded person-step is no longer the reason, and the row's own next action is the current reading.",
   "aiExecutableVia": "derived from the row's own canonical field, its dated decision (training-edges) and the accounting the flag was read from; source: Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-train \"Training, training matrix, orientation and onboarding\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "canonicalOwnerClass": "Omar",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Training and support commitments",
   "outcome": "Not done: not built yet on demo data — released from Omar's queue on 7 November 2026; it never depended on the decision that question asks.",
   "next": "Next: the accounting puts it outside the hive's automated set; nothing in the queue holds it."
  },
  {
   "id": "M-ACK",
   "canonicalId": "M-ACK",
   "canonicalState": "blocked",
   "sourceId": "M-ACK",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Crew and auditor safety acknowledgments",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "V43·codex",
    "M-AUTH",
    "O-DATA",
    "GL-092",
    "GL-090"
   ],
   "card": "crew-jha",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "M-ACK",
   "decisionKey": "jha-build",
   "decidedAt": "2026-10-06T16:43Z",
   "decisionWords": "Omar authorizes implementation now (6 Oct): proceed with the confirmed fixes and remaining agreed work from our reviews, on YOUR existing Makki runtime.",
   "decisionSource": "Omar 2026-10-06 16:43 UTC — vault/topics/decisions/implementation now, on your runtime.md (implementation against the requirement ids is authorised and does not come back for approval; demo fixes do not wait on hosting, auth or data decisions)",
   "decisionEffect": "daily JHA reuse with a fresh review and the crew / auditor acknowledgements are demo implementation against requirement ids, authorised; they never waited on the weather-feed choice — each routes by its canonical state (Not done until the hive reports it finished)",
   "decisionKind": "decision",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-jha \"JHA / pre-job safety talk, acknowledgements and weather\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Crew and auditor safety acknowledgments",
   "outcome": "Not done: held up by a step outside the build on demo data — Omar's word of 6 October 2026 settles it; it waits on nobody.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "M-AI",
   "canonicalId": "M-AI",
   "canonicalState": "blocked",
   "sourceId": "M-AI",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Reviewed assistant actions and authoritative records",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "D02",
    "D08",
    "D09",
    "GL-059",
    "M-AUTH",
    "O-DATA",
    "GL-014",
    "GL-057",
    "GL-058",
    "GL-059"
   ],
   "card": "office-ai",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-ai \"The assistant by text: answers and reviewed actions\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Reviewed assistant actions and authoritative records",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "M-AUD",
   "canonicalId": "M-AUD",
   "canonicalState": "blocked",
   "sourceId": "M-AUD",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Change audit, corrections and approved versions",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "D04",
    "D06",
    "M-AUTH",
    "O-DATA"
   ],
   "card": "plat-auth",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-auth \"Server-side auth, audit, sync and validated configurations\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Change audit, corrections and approved versions",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "M-AUTH",
   "canonicalId": "M-AUTH",
   "canonicalState": "blocked",
   "sourceId": "M-AUTH",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Server-enforced identity, roles and data boundaries",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "unmapped-ref"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:20:00.000Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "D01",
    "REV-B1-02"
   ],
   "card": "plat-auth",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-auth \"Server-side auth, audit, sync and validated configurations\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Server-enforced identity, roles and data boundaries",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "M-BACK",
   "canonicalId": "M-BACK",
   "canonicalState": "blocked",
   "sourceId": "M-BACK",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Backups, restore and usable exports",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "D10",
    "M-AUTH",
    "O-DATA"
   ],
   "card": "plat-host",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-host \"Hosting, domain, database, backups and capacity\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Backups, restore and usable exports",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "M-CAT",
   "canonicalId": "M-CAT",
   "canonicalState": "blocked",
   "sourceId": "M-CAT",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Licensed training catalogue decision and integration",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "F55",
    "V21·codex",
    "M-AUTH",
    "O-DATA"
   ],
   "card": "safe-train",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-train \"Training, training matrix, orientation and onboarding\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Licensed training catalogue decision and integration",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "M-CON",
   "canonicalId": "M-CON",
   "canonicalState": "blocked",
   "sourceId": "M-CON",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Connect email, calendar, workbook and assistant workflows",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "R01",
    "R10",
    "R13",
    "R19",
    "M-AUTH",
    "O-DATA"
   ],
   "card": "office-connect",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-connect \"Connections: email, calendar, workbook and the Claude context\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Connect email, calendar, workbook and assistant workflows",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "M-DASH",
   "canonicalId": "M-DASH",
   "canonicalState": "blocked",
   "sourceId": "M-DASH",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Active project dashboards and operational reports",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "F01",
    "F07",
    "F23",
    "V08·codex",
    "V09·codex",
    "V14·codex",
    "V16·codex",
    "M-AUTH",
    "O-DATA",
    "GL-089",
    "GL-016",
    "GL-096",
    "GL-083"
   ],
   "card": "mgmt-dash",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "M-DASH",
   "decisionKey": "dashboards",
   "decidedAt": "2026-10-06T16:43Z",
   "decisionWords": "implementation now, on your runtime",
   "decisionSource": "Omar 2026-10-06 16:43 UTC — vault/topics/decisions/implementation now, on your runtime.md (implementation against the requirement ids is authorised and does not come back for approval; demo fixes do not wait on hosting, auth or data decisions); re-stated by Omar 2026-11-07 06:48Z Telegram 2118",
   "decisionEffect": "build time only — authorised implementation; routes by its canonical state",
   "decisionKind": "decision",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-dash \"Dashboard, stat tiles and the job-site map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Active project dashboards and operational reports",
   "outcome": "Not done: held up by a step outside the build on demo data — Omar's word of 6 October 2026 settles it (“implementation now, on your runtime”); it waits on…",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "M-DISC",
   "canonicalId": "M-DISC",
   "canonicalState": "blocked",
   "sourceId": "M-DISC",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Restricted disciplinary records",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "F36",
    "M-AUTH",
    "O-DATA",
    "GL-029"
   ],
   "card": "safe-people",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-people \"Employee records, skills and qualified dispatch\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Restricted disciplinary records",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "M-DOC",
   "canonicalId": "M-DOC",
   "canonicalState": "blocked",
   "sourceId": "M-DOC",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Secure folders, sharing, markup and closeout",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "F08",
    "F52",
    "F53",
    "V35·codex",
    "M-AUTH",
    "O-DATA",
    "GL-035"
   ],
   "card": "mgmt-docs",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "M-DOC",
   "decisionKey": "documents",
   "decidedAt": "2026-10-06T16:43Z",
   "decisionWords": "Omar authorizes implementation now (6 Oct): proceed with the confirmed fixes and remaining agreed work from our reviews, on YOUR existing Makki runtime.",
   "decisionSource": "Omar 2026-10-06 16:43 UTC — vault/topics/decisions/implementation now, on your runtime.md (implementation against the requirement ids is authorised and does not come back for approval; demo fixes do not wait on hosting, auth or data decisions); re-stated by Omar 2026-11-07 06:48Z Telegram 2118",
   "decisionEffect": "build time only — authorised implementation; each row routes by its canonical state (Not done until the hive reports it finished)",
   "decisionKind": "decision",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-docs \"Documents, photos, drawings and the closeout report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Secure folders, sharing, markup and closeout",
   "outcome": "Not done: held up by a step outside the build on demo data — Omar's word of 6 October 2026 settles it; it waits on nobody.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "M-DRAW",
   "canonicalId": "M-DRAW",
   "canonicalState": "blocked",
   "sourceId": "M-DRAW",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Current drawings, revisions and field markup",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "F56",
    "M-AUTH",
    "O-DATA"
   ],
   "card": "mgmt-docs",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "M-DRAW",
   "decisionKey": "documents",
   "decidedAt": "2026-10-06T16:43Z",
   "decisionWords": "Omar authorizes implementation now (6 Oct): proceed with the confirmed fixes and remaining agreed work from our reviews, on YOUR existing Makki runtime.",
   "decisionSource": "Omar 2026-10-06 16:43 UTC — vault/topics/decisions/implementation now, on your runtime.md (implementation against the requirement ids is authorised and does not come back for approval; demo fixes do not wait on hosting, auth or data decisions); re-stated by Omar 2026-11-07 06:48Z Telegram 2118",
   "decisionEffect": "build time only — authorised implementation; each row routes by its canonical state (Not done until the hive reports it finished)",
   "decisionKind": "decision",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-docs \"Documents, photos, drawings and the closeout report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Current drawings, revisions and field markup",
   "outcome": "Not done: held up by a step outside the build on demo data — Omar's word of 6 October 2026 settles it; it waits on nobody.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "M-FEED",
   "canonicalId": "M-FEED",
   "canonicalState": "blocked",
   "sourceId": "M-FEED",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Feedback and release information",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "V49·codex",
    "M-AUTH",
    "O-DATA",
    "GL-091"
   ],
   "card": "office-company",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "M-FEED",
   "decisionKey": "feedback",
   "decidedAt": "2026-10-06T18:02Z",
   "decisionWords": "A repair you can do is not a decision — never relabel AI work as a human dependency",
   "decisionSource": "Omar 2026-10-06 18:02 UTC (restated 21:35 and 22:08 UTC) — vault/topics/decisions/a repair you can do is not a decision.md; Omar 2026-10-06 16:43 UTC — vault/topics/decisions/implementation now, on your runtime.md; main BUILDER DELTA 2026-11-07T18:20Z carrying Omar 18:15Z Telegram 2186 (hive/EXECUTION_LOG.md); pin v2.1.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)",
   "decisionEffect": "a place in the app for feedback and for what changed in each build is demo build work the hive does on its own; the row routes by its canonical state (Not done until built) and leaves Omar's queue",
   "decisionKind": "decision",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-company \"Company page, branding, Messages, Ideas and HQ\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Feedback and release information",
   "outcome": "Not done: held up by a step outside the build on demo data — Omar's word of 6 October 2026 settles it; it waits on nobody.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "M-MULTI",
   "canonicalId": "M-MULTI",
   "canonicalState": "blocked",
   "sourceId": "M-MULTI",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Company boundaries, HQ and branch scope",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "V01·codex",
    "V36·codex",
    "M-AUTH",
    "O-DATA",
    "GL-037"
   ],
   "card": "office-company",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "M-MULTI",
   "decisionKey": "company",
   "decidedAt": "2026-10-04T04:49Z",
   "decisionWords": "Okay the 6 not built can you build it",
   "decisionSource": "Omar 2026-10-04 04:49 UTC — vault/topics/decisions/build the six not built.md; vault/topics/decisions/one company only.md (2026-09-15; Now-block 2026-10-04: answered twice over, do not raise it with him as an open question)",
   "decisionEffect": "the HQ-across-branches screen was built the same morning as an owner-only tab on demo branch labels (never a company name); one company stands everywhere else; a later dated word beats an earlier one, so the choice is not raised again — each row routes by its canonical state",
   "decisionKind": "decision",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-company \"Company page, branding, Messages, Ideas and HQ\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Company boundaries, HQ and branch scope",
   "outcome": "Not done: held up by a step outside the build on demo data — Omar's word of 4 October 2026 settles it (“Okay the 6 not built can you build it”); it waits on…",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "M-ONB",
   "canonicalId": "M-ONB",
   "canonicalState": "blocked",
   "sourceId": "M-ONB",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Role onboarding materials and training",
   "state": "blocked",
   "ownerClass": "released by a dated decision — build work, nobody's step in front of it",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "parked-not-cancelled"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "V48·codex",
    "V56·codex",
    "M-AUTH",
    "O-DATA",
    "GL-076"
   ],
   "card": "safe-train",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "M-ONB",
   "decisionKey": "training-edges",
   "decidedAt": "2026-11-07T22:13Z",
   "decisionWords": "the dependency edges are wrong — only the rows that depend on the decision stay under the question (Omar's live review, as carried by main's order of 2026-11-07 23:10Z)",
   "decisionSource": "Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)",
   "decisionEffect": "released from the training question: only the two licensed-catalogue rows (the catalogue decision and the catalogue option) depend on the paid-catalogue decision; the training matrix, the onboarding and orientation material, the training library, history and reports and the custom training rows are build work that never depended on it; each released row routes by its canonical state (Not done, build work) and leaves Omar's queue; the rows that depend on the decision stay under the question",
   "decisionKind": "released",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-train \"Training, training matrix, orientation and onboarding\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "canonicalOwnerClass": "Omar-then-AI",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Role onboarding materials and training",
   "outcome": "Not done: not built yet on demo data — released from Omar's queue on 7 November 2026; it never depended on the decision that question asks.",
   "next": "Next: the hive builds it on demo data; nothing waits on Omar here."
  },
  {
   "id": "M-PRIV",
   "canonicalId": "M-PRIV",
   "canonicalState": "blocked",
   "sourceId": "M-PRIV",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Location and HR privacy controls",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "D11",
    "V40·codex",
    "GL-019"
   ],
   "card": "safe-privacy",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-privacy \"Location verification and HR privacy\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Location and HR privacy controls",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "M-SMS",
   "canonicalId": "M-SMS",
   "canonicalState": "blocked",
   "sourceId": "M-SMS",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Crew messages, verification and delivery recovery",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "F21",
    "V07·codex",
    "V12·codex",
    "V15·codex",
    "V54·codex",
    "M-AUTH",
    "O-DATA",
    "GL-039",
    "GL-105",
    "GL-109",
    "GL-106",
    "GL-020",
    "GL-021",
    "GL-023",
    "GL-067",
    "GL-022"
   ],
   "card": "office-msg",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-msg \"Notifications, broadcasts and auto-send\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Crew messages, verification and delivery recovery",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "M-SYNC",
   "canonicalId": "M-SYNC",
   "canonicalState": "blocked",
   "sourceId": "M-SYNC",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Reliable sync, deduplication and conflict recovery",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "D03",
    "D05",
    "M-AUTH",
    "O-DATA"
   ],
   "card": "plat-auth",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-auth \"Server-side auth, audit, sync and validated configurations\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Reliable sync, deduplication and conflict recovery",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "M-TAKE",
   "canonicalId": "M-TAKE",
   "canonicalState": "blocked",
   "sourceId": "M-TAKE",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Optional drawing takeoff and estimate experiment",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "V50·codex",
    "M-AUTH",
    "O-DATA",
    "GL-038"
   ],
   "card": "sales-est",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "optional",
   "necessitySource": "canonical v2.4 (materials/canonical/2026-10-31_canonical-tasks.v2.4.json, generated 2026-10-31): row M-TAKE is titled \"Optional …\" (codex-launch-plan master-plan.json)",
   "necessityWord": "Optional",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Optional drawing takeoff and estimate experiment",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "M-TRAIN",
   "canonicalId": "M-TRAIN",
   "canonicalState": "blocked",
   "sourceId": "M-TRAIN",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Custom mobile training, assignment and certificates",
   "state": "blocked",
   "ownerClass": "released by a dated decision — build work, nobody's step in front of it",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "F32",
    "F33",
    "V20·codex",
    "V23·codex",
    "M-AUTH",
    "O-DATA",
    "GL-024"
   ],
   "card": "safe-train",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "M-TRAIN",
   "decisionKey": "training-edges",
   "decidedAt": "2026-11-07T22:13Z",
   "decisionWords": "the dependency edges are wrong — only the rows that depend on the decision stay under the question (Omar's live review, as carried by main's order of 2026-11-07 23:10Z)",
   "decisionSource": "Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)",
   "decisionEffect": "released from the training question: only the two licensed-catalogue rows (the catalogue decision and the catalogue option) depend on the paid-catalogue decision; the training matrix, the onboarding and orientation material, the training library, history and reports and the custom training rows are build work that never depended on it; each released row routes by its canonical state (Not done, build work) and leaves Omar's queue; the rows that depend on the decision stay under the question",
   "decisionKind": "released",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-train \"Training, training matrix, orientation and onboarding\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "canonicalOwnerClass": "Omar-then-AI",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Custom mobile training, assignment and certificates",
   "outcome": "Not done: not built yet on demo data — released from Omar's queue on 7 November 2026; it never depended on the decision that question asks.",
   "next": "Next: the hive builds it on demo data; nothing waits on Omar here."
  },
  {
   "id": "O-CAPACITY",
   "canonicalId": "O-CAPACITY",
   "canonicalState": "blocked",
   "sourceId": "O-CAPACITY",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Measure capacity, load and growth",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "O-HOST",
    "O-DATA",
    "M-SIZE"
   ],
   "card": "plat-host",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-host \"Hosting, domain, database, backups and capacity\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Measure capacity, load and growth",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "O-CLIENT",
   "canonicalId": "O-CLIENT",
   "canonicalState": "blocked",
   "sourceId": "O-CLIENT",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Optional customer self-service portal",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-QUO",
    "M-INV",
    "M-AUTH"
   ],
   "card": "sales-crm",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "optional",
   "necessitySource": "canonical v2.4 (materials/canonical/2026-10-31_canonical-tasks.v2.4.json, generated 2026-10-31): row O-CLIENT is titled \"Optional …\" (codex-launch-plan master-plan.json)",
   "necessityWord": "Optional",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Optional customer self-service portal",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "O-CUT",
   "canonicalId": "O-CUT",
   "canonicalState": "blocked",
   "sourceId": "O-CUT",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Controlled cutover and launch approval",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "GL-045",
    "O-UAT",
    "M-MIG",
    "M-BACK",
    "O-MONITOR",
    "GL-045"
   ],
   "card": "plat-launch",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-launch \"Pilot, cut-over and launch approval\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Controlled cutover and launch approval",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "O-DATA",
   "canonicalId": "O-DATA",
   "canonicalState": "blocked",
   "sourceId": "O-DATA",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Durable database and private file storage",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:20:00.000Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-AUTH"
   ],
   "card": "plat-host",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-host \"Hosting, domain, database, backups and capacity\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Durable database and private file storage",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "O-DECISIONS",
   "canonicalId": "O-DECISIONS",
   "canonicalState": "blocked",
   "sourceId": "O-DECISIONS",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Resolve old planning decisions without hiding work",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "parked-not-cancelled"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "GL-065",
    "GL-070",
    "GL-071",
    "GL-072",
    "GL-073",
    "GL-075",
    "GL-065",
    "GL-070",
    "GL-071",
    "GL-072",
    "GL-073",
    "GL-075"
   ],
   "card": "office-reviews",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "O-DECISIONS",
   "decisionKey": "old-decisions",
   "decidedAt": "2026-11-07T06:48Z",
   "decisionWords": "the already-decided ids leave the questions with their dated sources",
   "decisionSource": "Omar 2026-11-07 06:48 UTC Telegram 2118 (the reconciliation of the decided ids); vault/topics/decisions/a repair you can do is not a decision.md (2026-10-06); main CHECKER ORDER 2026-11-07T06:52Z (hive/EXECUTION_LOG.md)",
   "decisionEffect": "resolving the old planning decisions is hive work: every decision with a dated word on record is applied to its rows and cited there, and the ones without one are listed as questions — a repair the hive can do is not a human choice; the row routes by its canonical state (Not done until the hive reports it finished)",
   "decisionKind": "decision",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-reviews \"Omar's open reviews and old planning decisions (kept visible)\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Resolve old planning decisions without hiding work",
   "outcome": "Not done: held up by a step outside the build on demo data — Omar's word of 7 November 2026 settles it; it waits on nobody.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "O-DOMAIN",
   "canonicalId": "O-DOMAIN",
   "canonicalState": "blocked",
   "sourceId": "O-DOMAIN",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Owned domain, secure entry point and recovery",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "GL-053",
    "O-HOST",
    "M-AUTH",
    "GL-053"
   ],
   "card": "plat-host",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-host \"Hosting, domain, database, backups and capacity\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Owned domain, secure entry point and recovery",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "O-HOST",
   "canonicalId": "O-HOST",
   "canonicalState": "blocked",
   "sourceId": "O-HOST",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Hosting ownership and architecture decision",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-06T22:20:00.000Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-SIZE"
   ],
   "card": "plat-host",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-host \"Hosting, domain, database, backups and capacity\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Hosting ownership and architecture decision",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "O-INSTALL",
   "canonicalId": "O-INSTALL",
   "canonicalState": "blocked",
   "sourceId": "O-INSTALL",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Get the app on phones and desktop",
   "state": "blocked",
   "ownerClass": "released by a dated decision — build work, nobody's step in front of it",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "O-DOMAIN",
    "M-UX",
    "M-AUTH"
   ],
   "card": "plat-install",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "O-INSTALL",
   "decisionKey": "install-edges",
   "decidedAt": "2026-11-07T22:13Z",
   "decisionWords": "the dependency edges are wrong — only the rows that depend on the decision stay under the question (Omar's live review, as carried by main's order of 2026-11-07 23:10Z)",
   "decisionSource": "Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)",
   "decisionEffect": "released from the install question: only the optional public app-store listing depends on the paid-store decision; getting the app on phones and desktop and the safe-release / rollback work are build work that never depended on it; each released row routes by its canonical state (Not done, build work) and leaves Omar's queue; the rows that depend on the decision stay under the question",
   "decisionKind": "released",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-install \"Install on phones and desktop, offline, updates and rollback\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "canonicalOwnerClass": "Omar-then-AI",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Get the app on phones and desktop",
   "outcome": "Not done: not built yet on demo data — released from Omar's queue on 7 November 2026; it never depended on the decision that question asks.",
   "next": "Next: the hive builds it on demo data; nothing waits on Omar here."
  },
  {
   "id": "O-JOBS",
   "canonicalId": "O-JOBS",
   "canonicalState": "blocked",
   "sourceId": "O-JOBS",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Reliable scheduled assistants and background jobs",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "GL-054",
    "GL-055",
    "M-AI",
    "M-SYNC",
    "M-INV",
    "M-CERT",
    "GL-054",
    "GL-055"
   ],
   "card": "office-seats",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "O-JOBS",
   "decisionKey": "seats",
   "decidedAt": "2026-10-03T00:31Z",
   "decisionWords": "2. Yes approve",
   "decisionSource": "Omar 2026-10-03 00:31 UTC \"2. Yes approve\" (vault/topics/people/Omar.md; GO_LIVE.md rows GL-054 and GL-055, crons set 00:32 UTC); main CHECKER ORDER 2026-11-07T06:52Z carrying Omar 06:48Z Telegram 2118 (hive/EXECUTION_LOG.md)",
   "decisionEffect": "the Collector (nightly) and Ticket Keeper (Monday) schedules are approved and both fire; a built, firing schedule is not an open choice — O3 routes by its own master-list status, O-JOBS by its canonical state",
   "decisionKind": "decision",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-seats \"The helper agents and their schedules\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Reliable scheduled assistants and background jobs",
   "outcome": "Not done: held up by a step outside the build on demo data — Omar's word of 3 October 2026 settles it (“Yes approve”); it waits on nobody.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "O-LEGAL",
   "canonicalId": "O-LEGAL",
   "canonicalState": "blocked",
   "sourceId": "O-LEGAL",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Data handling, terms and retention review",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-PRIV",
    "O-HOST",
    "M-AUD"
   ],
   "card": "plat-auth",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-auth \"Server-side auth, audit, sync and validated configurations\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Data handling, terms and retention review",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "O-MONITOR",
   "canonicalId": "O-MONITOR",
   "canonicalState": "blocked",
   "sourceId": "O-MONITOR",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Monitoring, incident response and status",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "O-HOST",
    "O-DATA",
    "M-SYNC"
   ],
   "card": "plat-launch",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-launch \"Pilot, cut-over and launch approval\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Monitoring, incident response and status",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "O-QUALITY",
   "canonicalId": "O-QUALITY",
   "canonicalState": "blocked",
   "sourceId": "O-QUALITY",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "AI evaluation and bounded failure recovery",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "GL-078",
    "M-AI",
    "M-AUD",
    "GL-078"
   ],
   "card": "plat-evidence",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "O-QUALITY",
   "decisionKey": "evidence",
   "decidedAt": "2026-09-22T01:27Z",
   "decisionWords": "1 yes, 2 yes",
   "decisionSource": "vault/topics/decisions/the checker loop.md — approved 2026-09-22 01:27 UTC (\"1 yes, 2 yes\"): five rounds, hard; criteria before the work; a FAIL goes back to the same worker; vault/topics/decisions/accepted means ruled.md (2026-10-31)",
   "decisionEffect": "how AI work is judged and how far a seat may retry on its own is the Checker loop with its cap of five rounds, approved: criteria as commands before the work, a FAIL goes back to the same worker, five rounds hard, the whole record to Omar after five; the row routes by its canonical state",
   "decisionKind": "decision",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-evidence \"Six-role workflow acceptance (the evidence process)\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "AI evaluation and bounded failure recovery",
   "outcome": "Not done: held up by a step outside the build on demo data — Omar's word of 22 September 2026 settles it (“1 yes, 2 yes”); it waits on nobody.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "O-RECOVERY",
   "canonicalId": "O-RECOVERY",
   "canonicalState": "blocked",
   "sourceId": "O-RECOVERY",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Disaster recovery and portability rehearsal",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-BACK",
    "O-HOST",
    "O-DATA"
   ],
   "card": "plat-host",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-host \"Hosting, domain, database, backups and capacity\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Disaster recovery and portability rehearsal",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "O-SECURITY",
   "canonicalId": "O-SECURITY",
   "canonicalState": "blocked",
   "sourceId": "O-SECURITY",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Security review and access recovery",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-AUTH",
    "M-ACC",
    "M-PRIV",
    "O-DATA"
   ],
   "card": "plat-auth",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-auth \"Server-side auth, audit, sync and validated configurations\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Security review and access recovery",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "O-STORE",
   "canonicalId": "O-STORE",
   "canonicalState": "blocked",
   "sourceId": "O-STORE",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Optional public app-store distribution",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "O-INSTALL",
    "O-UPDATE"
   ],
   "card": "plat-install",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "optional",
   "necessitySource": "canonical v2.4 (materials/canonical/2026-10-31_canonical-tasks.v2.4.json, generated 2026-10-31): row O-STORE is titled \"Optional …\" (codex-launch-plan master-plan.json)",
   "necessityWord": "Optional",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Optional public app-store distribution",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "O-SUPPORT",
   "canonicalId": "O-SUPPORT",
   "canonicalState": "blocked",
   "sourceId": "O-SUPPORT",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Support ownership and self-service help",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-ONB",
    "M-FEED"
   ],
   "card": "plat-launch",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-launch \"Pilot, cut-over and launch approval\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Support ownership and self-service help",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "O-UAT",
   "canonicalId": "O-UAT",
   "canonicalState": "blocked",
   "sourceId": "O-UAT",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "End-to-end pilot and acceptance evidence",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "GL-069",
    "GL-074",
    "O-SECURITY",
    "O-CAPACITY",
    "O-UPDATE",
    "O-SUPPORT",
    "M-QBO",
    "M-INV",
    "M-PAY",
    "M-SAFE",
    "GL-069",
    "GL-074"
   ],
   "card": "plat-launch",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-launch \"Pilot, cut-over and launch approval\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "End-to-end pilot and acceptance evidence",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "O-UPDATE",
   "canonicalId": "O-UPDATE",
   "canonicalState": "blocked",
   "sourceId": "O-UPDATE",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Safe releases, updates and rollback",
   "state": "blocked",
   "ownerClass": "released by a dated decision — build work, nobody's step in front of it",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "O-DATA",
    "M-OFF",
    "O-QUALITY"
   ],
   "card": "plat-install",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "O-UPDATE",
   "decisionKey": "install-edges",
   "decidedAt": "2026-11-07T22:13Z",
   "decisionWords": "the dependency edges are wrong — only the rows that depend on the decision stay under the question (Omar's live review, as carried by main's order of 2026-11-07 23:10Z)",
   "decisionSource": "Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)",
   "decisionEffect": "released from the install question: only the optional public app-store listing depends on the paid-store decision; getting the app on phones and desktop and the safe-release / rollback work are build work that never depended on it; each released row routes by its canonical state (Not done, build work) and leaves Omar's queue; the rows that depend on the decision stay under the question",
   "decisionKind": "released",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-install \"Install on phones and desktop, offline, updates and rollback\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "canonicalOwnerClass": "Omar-then-AI",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Safe releases, updates and rollback",
   "outcome": "Not done: not built yet on demo data — released from Omar's queue on 7 November 2026; it never depended on the decision that question asks.",
   "next": "Next: the hive builds it on demo data; nothing waits on Omar here."
  },
  {
   "id": "O-WEATHER",
   "canonicalId": "O-WEATHER",
   "canonicalState": "blocked",
   "sourceId": "O-WEATHER",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Live job weather with visible freshness",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "GL-082",
    "M-BOOK",
    "M-SAFE",
    "GL-082"
   ],
   "card": "crew-jha",
   "freedScope": {
    "held": "only the outside call waits on his word",
    "free": "the panel and its freshness label are build work on seeded demo numbers",
    "next": "Next: the hive builds the panel on seeded demo numbers; the outside call stays off until his word.",
    "source": "portal/app-jha.js (read 2026-11-08): the weather panel and its freshness label run on seeded numbers today; the row's own canonical scope reads demo and its own AI-executable flag reads true (accounting v2.4, 2026-10-31). Codex review ruling 2026-11-08T04:12Z, under Omar's standing instructions, relayed by main: the separation is the authorised work, the switch-on is not."
   },
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-jha \"JHA / pre-job safety talk, acknowledgements and weather\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Live job weather with visible freshness",
   "outcome": "Needs Omar: only the outside call waits on his word; the panel and its freshness label are build work on seeded demo numbers.",
   "next": "Next: the hive builds the panel on seeded demo numbers; the outside call stays off until his word."
  },
  {
   "id": "GL-014",
   "canonicalId": "GL-014",
   "canonicalState": "blocked",
   "sourceId": "GL-014",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Telling it to change something by text — \"bump Crew B to Thursday\", \"mark 17 Ave complete\" — and it changes, and texts back the one line that changed",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "R10",
    "M-AI"
   ],
   "card": "office-ai",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-ai \"The assistant by text: answers and reviewed actions\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Telling it to change something by text — \"bump Crew B to Thursday\", \"mark 17 Ave…",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "GL-019",
   "canonicalId": "GL-019",
   "canonicalState": "blocked",
   "sourceId": "GL-019",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "GPS clock-in / photo clock-out (FlōTime) — location-verified start, photo-confirmed stop, buddy-punch prevention; and where each man clocked in from, includi…",
   "state": "blocked",
   "ownerClass": "Omar+the owner",
   "waitingOn": "Both",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "The owner 14",
     "title": "Do you want to see where each man clocks in from?",
     "state": "open",
     "cancelledNote": null
    }
   ],
   "flags": [
    "merged-v2.4"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "F54",
    "D11",
    "V40·codex",
    "M-PRIV",
    "V18",
    "V91"
   ],
   "card": "safe-privacy",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-privacy \"Location verification and HR privacy\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-both",
   "status5Word": "Needs both",
   "plainTitle": "GPS clock-in / photo clock-out (FlōTime) — location-verified start, photo-confirmed…",
   "outcome": "Needs both Omar and the owner: a joint word closes it.",
   "next": "Omar and the owner both answer; the question that lists this row sits under What's needed from Omar on the tasks page."
  },
  {
   "id": "GL-020",
   "canonicalId": "GL-020",
   "canonicalState": "blocked",
   "sourceId": "GL-020",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "The labourer text line — a labourer who never logs in at all: the safety-talk sign-off text before work and the end-of-day hours confirm (rows 7, 82, 86, 94)…",
   "state": "blocked",
   "ownerClass": "Omar+the owner",
   "waitingOn": "Both",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "F54",
    "V07·codex",
    "V43·codex",
    "V47·codex",
    "V54·codex",
    "M-SMS",
    "V4"
   ],
   "card": "office-textline",
   "scopeSource": "The two daily crew texts this question bounds are this row's own two texts: the morning line-up — the safety-talk sign-off text before work — and the end-of-day report, the hours confirm. Read from the row's own canonical title in the accounting v2.4 of 2026-10-31, on 2026-11-08.",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-textline \"The labourer text line (verify by text, no login)\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-both",
   "status5Word": "Needs both",
   "plainTitle": "The labourer text line — a labourer who never logs in at all: the safety-talk sign-off…",
   "outcome": "Needs both Omar and the owner: a joint word closes it.",
   "next": "Omar and the owner both answer; the question that lists this row sits under What's needed from Omar on the tasks page."
  },
  {
   "id": "GL-022",
   "canonicalId": "GL-022",
   "canonicalState": "blocked",
   "sourceId": "GL-022",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "One message pushed to the whole crew — PPE week, the holiday party, site closed Monday — one message, everyone, at once",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "V16",
     "title": "Deploy one message to the whole crew by text or email (PPE week, holiday party)",
     "state": "blocked",
     "cancelledNote": null
    }
   ],
   "flags": [
    "id-collision",
    "merged-v2.2",
    "alias-owner-conflict"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "V12·codex",
    "M-SMS",
    "V4",
    "The owner 10"
   ],
   "card": "office-msg",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-msg \"Notifications, broadcasts and auto-send\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "One message pushed to the whole crew — PPE week, the holiday party, site closed Monday…",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "GL-023",
   "canonicalId": "GL-023",
   "canonicalState": "blocked",
   "sourceId": "GL-023",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Each man's own week sent to his own phone — Crew › My Schedule and the board's per-man preview are built; actually sending it is not, and the preview is labe…",
   "state": "blocked",
   "ownerClass": "Omar-then-AI",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "gl-state-vs-accounting"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:51:38.630Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "F21",
    "M-SMS",
    "V31"
   ],
   "card": "office-msg",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-msg \"Notifications, broadcasts and auto-send\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Each man's own week sent to his own phone — Crew › My Schedule and the board's per-man…",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "GL-024",
   "canonicalId": "GL-024",
   "canonicalState": "blocked",
   "sourceId": "GL-024",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Training pushed to a man's phone in his language, signed with a PIN, and the video library (Got Safety) that auto-issues a certificate on pass; creating and …",
   "state": "blocked",
   "ownerClass": "released by a dated decision — build work, nobody's step in front of it",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "F31",
    "F32",
    "F33",
    "F55",
    "V20·codex",
    "V21·codex",
    "V23·codex",
    "V48·codex",
    "M-TRAIN",
    "V41",
    "V42"
   ],
   "card": "safe-train",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "GL-024",
   "decisionKey": "training-edges",
   "decidedAt": "2026-11-07T22:13Z",
   "decisionWords": "the dependency edges are wrong — only the rows that depend on the decision stay under the question (Omar's live review, as carried by main's order of 2026-11-07 23:10Z)",
   "decisionSource": "Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)",
   "decisionEffect": "released from the training question: only the two licensed-catalogue rows (the catalogue decision and the catalogue option) depend on the paid-catalogue decision; the training matrix, the onboarding and orientation material, the training library, history and reports and the custom training rows are build work that never depended on it; each released row routes by its canonical state (Not done, build work) and leaves Omar's queue; the rows that depend on the decision stay under the question",
   "decisionKind": "released",
   "aiExecutableWhy": "The task accounting of 2026-10-31 recorded this row outside the AI-executable set while its owner field read Omar. The dated decision of 2026-11-07T22:13Z took that step away: the row is build work on demo data and waits on nobody. The flag is left as the accounting recorded it — the superseded person-step is no longer the reason, and the row's own next action is the current reading.",
   "aiExecutableVia": "derived from the row's own canonical field, its dated decision (training-edges) and the accounting the flag was read from; source: Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-train \"Training, training matrix, orientation and onboarding\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "canonicalOwnerClass": "Omar",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Training pushed to a man's phone in his language, signed with a PIN, and the video…",
   "outcome": "Not done: not built yet on demo data — released from Omar's queue on 7 November 2026; it never depended on the decision that question asks.",
   "next": "Next: the accounting puts it outside the hive's automated set; nothing in the queue holds it."
  },
  {
   "id": "GL-034",
   "canonicalId": "GL-034",
   "canonicalState": "blocked",
   "sourceId": "GL-034",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "E-signature on proposals — send-for-signature directly from the platform; proposals are printed / PDF, no send, no signature, and the owner sends",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "F43",
    "M-QUO"
   ],
   "card": "sales-quotes",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-quotes \"Quotes, pipeline, proposals and bid items\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "E-signature on proposals — send-for-signature directly from the platform; proposals are…",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "GL-038",
   "canonicalId": "GL-038",
   "canonicalState": "blocked",
   "sourceId": "GL-038",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Takeoff & estimating (AI-assisted, \"Let FLO cook!\") and bid items dropping into a proposal — the Estimator seat's ground; the owner pushed back (\"I know our estima…",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "F56",
    "V50·codex",
    "M-TAKE",
    "V110",
    "V112",
    "V113"
   ],
   "card": "sales-est",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-est \"Estimating knowledge, reviewed AI estimates and the Estimator seat\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Takeoff & estimating (AI-assisted, \"Let FLO cook!\") and bid items dropping into a…",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "GL-039",
   "canonicalId": "GL-039",
   "canonicalState": "blocked",
   "sourceId": "GL-039",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Auto-send — SMS, email, e-sign (\"Ready SMS\", Auto-Send, send-for-signature): theirs are real and ours are deliberately not; nothing sends without Omar's expl…",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "R13",
    "F07",
    "F21",
    "F46",
    "D02",
    "V12·codex",
    "V15·codex",
    "V40·codex",
    "M-SMS"
   ],
   "card": "office-msg",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-msg \"Notifications, broadcasts and auto-send\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Auto-send — SMS, email, e-sign (\"Ready SMS\", Auto-Send, send-for-signature): theirs are…",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "GL-043",
   "canonicalId": "GL-043",
   "canonicalState": "blocked",
   "sourceId": "GL-043",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Their two strongest screens — Job Costing (bid vs actual with gross profit and GPM on one page) and the JHA output (bilingual risk matrix, PIN sign-off, live…",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "F48",
    "V41·codex",
    "M-CST"
   ],
   "card": "fin-cost",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "GL-043",
   "decisionKey": "costing",
   "decidedAt": "2026-10-06T16:43Z",
   "decisionWords": "Omar authorizes implementation now (6 Oct)",
   "decisionSource": "Omar 2026-10-06 16:43 UTC — vault/topics/decisions/implementation now, on your runtime.md; vault/topics/decisions/the money reports live in the app.md (2026-10-10)",
   "decisionEffect": "the bid-versus-actual costing page is demo implementation, owner-only by rail 4, authorised; the 2026-10-10 word puts the money reports inside the app — the row routes by its canonical state (Not done until the hive reports it finished)",
   "decisionKind": "decision",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cost \"Job costing, budgets, cost codes and P&L\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Their two strongest screens — Job Costing (bid vs actual with the owner's figures and…",
   "outcome": "Not done: held up by a step outside the build on demo data — Omar's word of 6 October 2026 settles it (“Omar authorizes implementation now (6 Oct)”); it waits…",
   "next": "Next: a person's step comes first on this row; the hive picks it up after that."
  },
  {
   "id": "GL-044",
   "canonicalId": "GL-044",
   "canonicalState": "blocked",
   "sourceId": "GL-044",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Demo data → real data — Omar's word that the real data is connected; until then every figure carries a demo header",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": true,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "D08",
    "M-MIG"
   ],
   "card": "fin-cutover",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cutover \"Data migration and the real-data cut-over\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Demo data → real data — Omar's word that the real data is connected; until then every…",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "GL-053",
   "canonicalId": "GL-053",
   "canonicalState": "blocked",
   "sourceId": "GL-053",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "A Makki address instead of a pages.dev link (app.makkiinc.ca or similar) — whose Cloudflare account holds Makki's app long-term, then a domain pointed at it;…",
   "state": "blocked",
   "ownerClass": "Omar+the owner",
   "waitingOn": "Both",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "O6",
     "title": "Hosting: the owner's own Cloudflare account, or EazyLife's, and a Makki address",
     "state": "open",
     "cancelledNote": null
    },
    {
     "id": "The owner 12",
     "title": "Hosting: your Cloudflare account or EazyLife's, and a Makki address",
     "state": "open",
     "cancelledNote": null
    }
   ],
   "flags": [
    "merged-v2.4",
    "merged-v2.4"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "O-DOMAIN",
    "The owner 12"
   ],
   "card": "plat-host",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-host \"Hosting, domain, database, backups and capacity\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-both",
   "status5Word": "Needs both",
   "plainTitle": "A Makki address instead of a pages.dev link (app.makkiinc.ca or similar) — whose…",
   "outcome": "Needs both Omar and the owner: a joint word closes it.",
   "next": "Omar and the owner both answer; the question that lists this row sits under What's needed from Omar on the tasks page."
  },
  {
   "id": "GL-065",
   "canonicalId": "GL-065",
   "canonicalState": "blocked",
   "sourceId": "GL-065",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Ask 6 — The owner's Telegram id, so he can be added to this line",
   "state": "cancelled",
   "ownerClass": "Omar+the owner",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "O4",
     "title": "Add the owner to this Telegram line",
     "state": "",
     "cancelledNote": null
    },
    {
     "id": "The owner 9",
     "title": "Your Telegram id",
     "state": "",
     "cancelledNote": null
    }
   ],
   "flags": [
    "parked-not-cancelled",
    "alias-state-conflict",
    "alias-state-conflict",
    "parked-on-Omar"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "O-DECISIONS"
   ],
   "card": "office-reviews",
   "canonicalWaitingOn": "Both",
   "decidedAs": "GL-065",
   "decisionKey": "owner-line",
   "decidedAt": "2026-10-03T00:31Z",
   "decisionWords": "6. Forget that",
   "decisionSource": "Omar 2026-10-03 00:31 UTC \"6. Forget that\" — Ask 6, the owner's Telegram id (vault/topics/people/Omar.md); main BUILDER ORDER 2026-11-07T17:40Z carrying Omar 17:06Z Telegram 2174 (hive/EXECUTION_LOG.md)",
   "decisionEffect": "The owner is not being added to this line; O4 routes by its own master-list status and GL-065 by its canonical state — neither waits on Omar or the owner any longer",
   "decisionKind": "decision",
   "declined": {
    "why": "the ask is closed by the dated decline, so no person's step and no demo stand-in is waiting on this row",
    "source": "Omar 2026-10-03 00:31 UTC \"6. Forget that\" — Ask 6, the owner's Telegram id (vault/topics/people/Omar.md); the dated decision owner-line in omar_questions.json names this row.",
    "at": "2026-10-03T00:31Z"
   },
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "dropped",
   "necessitySource": "Omar 2026-10-03 00:31 UTC \"6. Forget that\" — Ask 6, the owner's Telegram id (vault/topics/people/Omar.md); the dated decision owner-line in omar_questions.json names this row.",
   "necessityWord": "Dropped",
   "declinedScope": {
    "why": "Omar's word of 3 October 2026 declines the ask, so the row is history: nothing is asked of anyone, nothing is built for it, and it is not counted among the work that must still be done. Read as Not done it sat inside required unfinished work, which is what the live re-review failed.",
    "source": "Omar 2026-10-03 00:31 UTC \"6. Forget that\" — Ask 6, the owner's Telegram id (vault/topics/people/Omar.md); the dated decision owner-line in omar_questions.json names this row."
   },
   "stateBeforeDecline": "blocked",
   "necessityReason": "closed by a dated decline: Omar's word of 3 October 2026 declines the ask, so the row is history: nothing is asked of anyone, nothing is built for it, and it is not counted among the work that must still be done. Read as Not done it sat inside required unfinished work, which is what the live re-review failed.",
   "status5": "declined",
   "status5Word": "Declined",
   "plainTitle": "Ask 6 — The owner's Telegram id, so he can be added to this line",
   "outcome": "Declined: the ask is closed — Omar's word of 3 October 2026 declines it (“Forget that”); it sits in history and is not counted as work.",
   "next": "Nothing further: the dated decline closes this row; its history stays in the row's own details."
  },
  {
   "id": "GL-067",
   "canonicalId": "GL-067",
   "canonicalState": "blocked",
   "sourceId": "GL-067",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Ask 8 — A texting line, the crew's numbers, and the wording — the only ask that costs money; unblocks labourers-by-text",
   "state": "blocked",
   "ownerClass": "Omar+the owner",
   "waitingOn": "Both",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "O2",
     "title": "Say go on the texting number (about $10–20 a month)",
     "state": "open",
     "cancelledNote": null
    },
    {
     "id": "The owner 10",
     "title": "Yes to the texting number (about $10–20 a month)",
     "state": "open",
     "cancelledNote": null
    },
    {
     "id": "The owner 11",
     "title": "OK the two text wordings (morning, end of day)",
     "state": "open",
     "cancelledNote": null
    }
   ],
   "flags": [
    "merged-v2.4",
    "merged-v2.4",
    "merged-v2.4"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "V07·codex",
    "M-SMS",
    "The owner 10"
   ],
   "card": "office-textline",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-textline \"The labourer text line (verify by text, no login)\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-both",
   "status5Word": "Needs both",
   "plainTitle": "Ask 8 — A texting line, the crew's numbers, and the wording — the only ask that costs…",
   "outcome": "Needs both Omar and the owner: a joint word closes it.",
   "next": "Omar and the owner both answer; the question that lists this row sits under What's needed from Omar on the tasks page."
  },
  {
   "id": "GL-069",
   "canonicalId": "GL-069",
   "canonicalState": "blocked",
   "sourceId": "GL-069",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Forms is live — good / bad / change; he opens it and says",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "O-UAT"
   ],
   "card": "office-reviews",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-reviews \"Omar's open reviews and old planning decisions (kept visible)\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Forms is live — good / bad / change; he opens it and says",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "GL-070",
   "canonicalId": "GL-070",
   "canonicalState": "blocked",
   "sourceId": "GL-070",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "The nightly librarian report posts here; twice he's asked why — say \"quiet\" and it would file silently",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "O-DECISIONS"
   ],
   "card": "office-reviews",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-reviews \"Omar's open reviews and old planning decisions (kept visible)\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "The nightly report posts here; twice he's asked why — say \"quiet\" and it would file…",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "GL-071",
   "canonicalId": "GL-071",
   "canonicalState": "blocked",
   "sourceId": "GL-071",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "The Team page demo login prints an email address on screen — cut or leave",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "O-DECISIONS"
   ],
   "card": "office-reviews",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-reviews \"Omar's open reviews and old planning decisions (kept visible)\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "The Team page demo login prints an email address on screen — cut or leave",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "GL-072",
   "canonicalId": "GL-072",
   "canonicalState": "blocked",
   "sourceId": "GL-072",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Slide 7's \"about $10–20/mo\", against the no-price order · Slidev's phone toolbar — leave or cut",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "possibly-superseded"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "O-DECISIONS"
   ],
   "card": "pres-deck",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "GL-072",
   "decisionKey": "deck",
   "decidedAt": "2026-10-10",
   "decisionWords": "redesign the presentation from scratch — the old deck is reference only",
   "decisionSource": "Omar 2026-10-10 — vault/topics/decisions/redesign the presentation from scratch.md; vault/topics/decisions/no dates and no price on the deck.md (2026-09-18); main CHECKER ORDER 2026-11-07T06:52Z carrying Omar 06:48Z Telegram 2118 (hive/EXECUTION_LOG.md)",
   "decisionEffect": "the slide-by-slide pass and the two slide notes belong to the old deck, reference only since the redesign order; the no-price rule stands for the new deck; O5 routes by its own master-list status, GL-072 by its canonical state",
   "decisionKind": "decision",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card pres-deck \"The redesigned deck, current screenshots, one-hour demo, guide and downloads\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Slide 7's \"about $10–20/mo\", against the no-price order · Slidev's phone toolbar — leave…",
   "outcome": "Not done: held up by a step outside the build on demo data — Omar's word of 10 October 2026 settles it; it waits on nobody.",
   "next": "Next: a person's step comes first on this row; the hive picks it up after that."
  },
  {
   "id": "GL-073",
   "canonicalId": "GL-073",
   "canonicalState": "blocked",
   "sourceId": "GL-073",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "The two jobs that said done and wrote nothing — re-run or drop",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "O-DECISIONS"
   ],
   "card": "office-reviews",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "GL-073",
   "decisionKey": "silent-jobs",
   "decidedAt": "2026-10-06T18:02Z",
   "decisionWords": "AI-executable repair, not an Omar/the owner decision: queue/fix it in the existing workflow and add a regression check",
   "decisionSource": "Omar 2026-10-06 18:02 UTC — vault/topics/decisions/a repair you can do is not a decision.md (restated 21:35 and 22:08 UTC the same day)",
   "decisionEffect": "two jobs that said done and wrote nothing is failed AI work; re-running them is an AI-executable repair, never an item on a human's list — the row routes by its canonical state (Not done until the hive reports it finished)",
   "decisionKind": "decision",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-reviews \"Omar's open reviews and old planning decisions (kept visible)\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "The two jobs that said done and wrote nothing — re-run or drop",
   "outcome": "Not done: held up by a step outside the build on demo data — Omar's word of 6 October 2026 settles it; it waits on nobody.",
   "next": "Next: a person's step comes first on this row; the hive picks it up after that."
  },
  {
   "id": "GL-074",
   "canonicalId": "GL-074",
   "canonicalState": "blocked",
   "sourceId": "GL-074",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Tickets write · earlier design and phone passes — good / bad / change; live since 2026-09-17 awaiting his word",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "O-UAT"
   ],
   "card": "office-reviews",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-reviews \"Omar's open reviews and old planning decisions (kept visible)\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Tickets write · earlier design and phone passes — good / bad / change; live since…",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "GL-075",
   "canonicalId": "GL-075",
   "canonicalState": "blocked",
   "sourceId": "GL-075",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Estimator + bookkeeper on one login slide · 3 master-list rows (V45, V17, V132/V84, flagged as decisions not corrections) · \"Bid vs Actual\" tab — decide each",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "O-DECISIONS"
   ],
   "card": "office-reviews",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-reviews \"Omar's open reviews and old planning decisions (kept visible)\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Estimator + bookkeeper on one login slide · 3 master-list rows (flagged as decisions not…",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "GL-076",
   "canonicalId": "GL-076",
   "canonicalState": "blocked",
   "sourceId": "GL-076",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "A short orientation video for managers — a walkthrough the owner can send his managers so they use the app without being taught one at a time; the owner asked Fieldflo f…",
   "state": "blocked",
   "ownerClass": "released by a dated decision — build work, nobody's step in front of it",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "V130",
     "title": "An orientation video for the program, to share with managers",
     "state": "blocked",
     "cancelledNote": null
    },
    {
     "id": "O7",
     "title": "An orientation video for managers: a screen recording with a voiceover",
     "state": "open",
     "cancelledNote": null
    }
   ],
   "flags": [
    "parked-not-cancelled",
    "merged-v2.4",
    "merged-v2.4"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "V48·codex",
    "V56·codex",
    "M-ONB",
    "V130"
   ],
   "card": "safe-train",
   "canonicalWaitingOn": "Omar",
   "decidedAs": "GL-076",
   "decisionKey": "training-edges",
   "decidedAt": "2026-11-07T22:13Z",
   "decisionWords": "the dependency edges are wrong — only the rows that depend on the decision stay under the question (Omar's live review, as carried by main's order of 2026-11-07 23:10Z)",
   "decisionSource": "Omar's independent live review of the All Tasks page, 2026-11-07 22:13 UTC Telegram 2233, carried by main's Builder order 2026-11-07T23:10Z (hive/EXECUTION_LOG.md); pin v2.3.0 (hive/checks/2026-11-07_requirements-tasks-b3.md, 2026-11-07)",
   "decisionEffect": "released from the training question: only the two licensed-catalogue rows (the catalogue decision and the catalogue option) depend on the paid-catalogue decision; the training matrix, the onboarding and orientation material, the training library, history and reports and the custom training rows are build work that never depended on it; each released row routes by its canonical state (Not done, build work) and leaves Omar's queue; the rows that depend on the decision stay under the question",
   "decisionKind": "released",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-train \"Training, training matrix, orientation and onboarding\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "canonicalOwnerClass": "Omar-then-AI",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "A short orientation video for managers — a walkthrough the owner can send his managers…",
   "outcome": "Not done: not built yet on demo data — released from Omar's queue on 7 November 2026; it never depended on the decision that question asks.",
   "next": "Next: the hive builds it on demo data; nothing waits on Omar here."
  },
  {
   "id": "GL-105",
   "canonicalId": "GL-105",
   "canonicalState": "blocked",
   "sourceId": "GL-105",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "\"Send Verify SMS\" and \"Mark week approved & notify\" from payroll — the labourer verifies his week by text and is told when it is approved",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "V47·codex",
    "V52·codex",
    "M-SMS"
   ],
   "card": "office-textline",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-textline \"The labourer text line (verify by text, no login)\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "\"Send Verify SMS\" and \"Mark week approved & notify\" from payroll — the labourer verifies…",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "GL-106",
   "canonicalId": "GL-106",
   "canonicalState": "blocked",
   "sourceId": "GL-106",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "The notification digest sent as an email with Makki's logo, rather than read in the app — the Checker saw the delivered Gmail digest, ~60 rows of employee / …",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "V04·codex",
    "V15·codex",
    "V16·codex",
    "M-SMS"
   ],
   "card": "office-msg",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-msg \"Notifications, broadcasts and auto-send\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "The notification digest sent as an email with Makki's logo, rather than read in the app…",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "GL-107",
   "canonicalId": "GL-107",
   "canonicalState": "blocked",
   "sourceId": "GL-107",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Emailing the office about a refused add, or an explicitly proposed override",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "V32·codex",
    "M-SAFE"
   ],
   "card": "office-msg",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-msg \"Notifications, broadcasts and auto-send\" on finish line 2",
   "necessityWord": "Needed for launch",
   "canonicalTitle": "Emailing the office automatically when a man without the right certs is added to a job anyway",
   "titleSource": "portal/app-crew.js and the A17 / A36 rows of the canonical accounting v2.4 of 2026-10-31 (read 2026-11-08): the add is refused, nothing is emailed, and no warning behaviour exists to describe.",
   "currentReading": {
    "source": "portal/app-crew.js and the A17 / A36 rows of the canonical accounting v2.4 of 2026-10-31 (read 2026-11-08): the add is refused, nothing is emailed, and no warning behaviour exists to describe.",
    "why": "the recorded title said the man is \"added to a job anyway\", the same presupposition V88 carried, and the row shares one premise with A17, A36 and V88 — the current refusal"
   },
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Emailing the office about a refused add, or an explicitly proposed override",
   "outcome": "Needs Omar: the add is refused today; the ask is whether a blocked attempt emails the office, or an explicitly proposed override.",
   "next": "Omar answers which of the two emails is wanted; the refusal stays as it is and the warning is not built.",
   "readingWas": {
    "outcome": "Needs Omar: it waits on his word.",
    "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
   }
  },
  {
   "id": "GL-108",
   "canonicalId": "GL-108",
   "canonicalState": "blocked",
   "sourceId": "GL-108",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "\"Send Forms\" in the forms bulk menu — the filled forms go out from the app",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "F38",
    "M-FORM"
   ],
   "card": "office-msg",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-msg \"Notifications, broadcasts and auto-send\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "\"Send Forms\" in the forms bulk menu — the filled forms go out from the app",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "GL-109",
   "canonicalId": "GL-109",
   "canonicalState": "blocked",
   "sourceId": "GL-109",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Notifying the assignee of a corrective action, and notifying the warehouse manager of a failed equipment inspection",
   "state": "blocked",
   "ownerClass": "Omar",
   "waitingOn": "Omar",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "F07",
    "F39",
    "F50",
    "V27·codex",
    "M-SMS"
   ],
   "card": "office-msg",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-msg \"Notifications, broadcasts and auto-send\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-omar",
   "status5Word": "Needs Omar",
   "plainTitle": "Notifying the assignee of a corrective action, and notifying the warehouse manager of a…",
   "outcome": "Needs Omar: it waits on his word.",
   "next": "Omar answers the question that lists this row under What's needed from Omar on the tasks page."
  },
  {
   "id": "D07",
   "canonicalId": "D07",
   "canonicalState": "blocked",
   "sourceId": "D07",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Support field connectivity interruptions",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-OFF",
    "GL-035"
   ],
   "card": "plat-install",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-install \"Install on phones and desktop, offline, updates and rollback\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Support field connectivity interruptions",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "D12",
   "canonicalId": "D12",
   "canonicalState": "blocked",
   "sourceId": "D12",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Validate safety and payroll configurations",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "M-RULE",
     "title": "Validated safety and payroll configurations",
     "state": "blocked",
     "cancelledNote": null
    }
   ],
   "flags": [
    "merged-v2.2",
    "owner-class-from-alias"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "GL-026",
    "GL-062",
    "GL-063"
   ],
   "card": "plat-auth",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-auth \"Server-side auth, audit, sync and validated configurations\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Validate safety and payroll configurations",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "F04",
   "canonicalId": "F04",
   "canonicalState": "blocked",
   "sourceId": "F04",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Pipeline and contract overview",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-QUO",
    "GL-033",
    "GL-089"
   ],
   "card": "sales-quotes",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-quotes \"Quotes, pipeline, proposals and bid items\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Pipeline and contract overview",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "F10",
   "canonicalId": "F10",
   "canonicalState": "blocked",
   "sourceId": "F10",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Time coding and attestations",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-TIME",
    "GL-036"
   ],
   "card": "crew-time",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-time \"Time, breaks, per diem, signatures and end of day\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Time coding and attestations",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "F12",
   "canonicalId": "F12",
   "canonicalState": "blocked",
   "sourceId": "F12",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Payroll export",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-PAY",
    "GL-062",
    "GL-083",
    "F09",
    "R12",
    "R21",
    "V39·codex",
    "V52·codex",
    "V53·codex"
   ],
   "card": "fin-payroll",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-payroll \"Payroll approval, allocation to jobs and export\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Payroll export",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "F16",
   "canonicalId": "F16",
   "canonicalState": "blocked",
   "sourceId": "F16",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Operational cost feeds",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-CST",
    "GL-018",
    "GL-058"
   ],
   "card": "fin-cost",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cost \"Job costing, budgets, cost codes and P&L\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Operational cost feeds",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "F42",
   "canonicalId": "F42",
   "canonicalState": "blocked",
   "sourceId": "F42",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Sales follow up and reminders",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-CRM",
    "GL-033"
   ],
   "card": "sales-crm",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-crm \"CRM: contacts, follow-ups and estimator reporting\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Sales follow up and reminders",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "F43",
   "canonicalId": "F43",
   "canonicalState": "blocked",
   "sourceId": "F43",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Proposals and electronic signature",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-QUO",
    "GL-010",
    "GL-034"
   ],
   "card": "sales-quotes",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-quotes \"Quotes, pipeline, proposals and bid items\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Proposals and electronic signature",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "F48",
   "canonicalId": "F48",
   "canonicalState": "blocked",
   "sourceId": "F48",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Job hazard analysis and inspections",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-SAFE",
    "GL-007",
    "GL-011",
    "GL-043",
    "GL-092",
    "F49",
    "R20",
    "V13·codex",
    "V37·codex",
    "V41·codex",
    "V42·codex",
    "V43·codex",
    "V44·codex",
    "V45·codex"
   ],
   "card": "crew-jha",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-jha \"JHA / pre-job safety talk, acknowledgements and weather\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Job hazard analysis and inspections",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "F57",
   "canonicalId": "F57",
   "canonicalState": "blocked",
   "sourceId": "F57",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Accounting integration candidates",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-QBO",
    "GL-046",
    "GL-064",
    "R01",
    "V17·codex",
    "V18·codex"
   ],
   "card": "fin-qbo",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-qbo \"QuickBooks Online connection, first import and The Books\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Accounting integration candidates",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "R12",
   "canonicalId": "R12",
   "canonicalState": "blocked",
   "sourceId": "R12",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Allocate payroll costs automatically",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-PAY",
    "GL-058",
    "GL-062",
    "F09",
    "F12",
    "R21",
    "V39·codex",
    "V52·codex",
    "V53·codex"
   ],
   "card": "fin-payroll",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-payroll \"Payroll approval, allocation to jobs and export\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Allocate payroll costs automatically",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "R14",
   "canonicalId": "R14",
   "canonicalState": "blocked",
   "sourceId": "R14",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Offer statement based payment matching",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-REC",
    "GL-048"
   ],
   "card": "fin-money",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-money \"Money overview, collections, receivables and holdbacks\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Offer statement based payment matching",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "R16",
   "canonicalId": "R16",
   "canonicalState": "blocked",
   "sourceId": "R16",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Read pasted delivery messages",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-MAT",
    "GL-058"
   ],
   "card": "gear-ware",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-ware \"Warehouse, loadouts, inventory and materials\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Read pasted delivery messages",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "R17",
   "canonicalId": "R17",
   "canonicalState": "blocked",
   "sourceId": "R17",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Retain historical estimating knowledge",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-EST",
    "GL-057",
    "GL-061",
    "R18",
    "R19",
    "V34·codex",
    "V50·codex"
   ],
   "card": "sales-est",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-est \"Estimating knowledge, reviewed AI estimates and the Estimator seat\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Retain historical estimating knowledge",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "R18",
   "canonicalId": "R18",
   "canonicalState": "blocked",
   "sourceId": "R18",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Support reviewing and correcting AI estimates",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-EST",
    "R17",
    "R19",
    "V34·codex",
    "V50·codex"
   ],
   "card": "sales-est",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-est \"Estimating knowledge, reviewed AI estimates and the Estimator seat\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Support reviewing and correcting AI estimates",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "R19",
   "canonicalId": "R19",
   "canonicalState": "blocked",
   "sourceId": "R19",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Migrate existing Claude context",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-CON",
    "GL-061",
    "R17",
    "R18",
    "V34·codex",
    "V50·codex"
   ],
   "card": "office-connect",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-connect \"Connections: email, calendar, workbook and the Claude context\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Migrate existing Claude context",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "R21",
   "canonicalId": "R21",
   "canonicalState": "blocked",
   "sourceId": "R21",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Preserve assisted payroll preparation",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-PAY",
    "GL-040",
    "GL-052",
    "GL-062",
    "F09",
    "F12",
    "R12",
    "V39·codex",
    "V52·codex",
    "V53·codex"
   ],
   "card": "fin-payroll",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-payroll \"Payroll approval, allocation to jobs and export\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Preserve assisted payroll preparation",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V03·codex",
   "canonicalId": "V03·codex",
   "canonicalState": "blocked",
   "sourceId": "V03",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Multilingual interface and dictation",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-LANG",
    "GL-079",
    "GL-081"
   ],
   "card": "crew-lang",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-lang \"Languages and dictation\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Multilingual interface and dictation",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V10·codex",
   "canonicalId": "V10·codex",
   "canonicalState": "blocked",
   "sourceId": "V10",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Job-type daily form templates",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-DAY",
    "GL-002",
    "GL-097",
    "F37",
    "F38",
    "F39",
    "F40",
    "V46·codex"
   ],
   "card": "mgmt-forms",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-forms \"Forms: builder, templates, lifecycle and audit\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Job-type daily form templates",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V17·codex",
   "canonicalId": "V17·codex",
   "canonicalState": "blocked",
   "sourceId": "V17",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "QuickBooks Online employee import",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-QBO",
    "GL-046",
    "GL-047",
    "GL-064",
    "F57",
    "R01",
    "V18·codex"
   ],
   "card": "fin-qbo",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-qbo \"QuickBooks Online connection, first import and The Books\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "QuickBooks Online employee import",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V18·codex",
   "canonicalId": "V18·codex",
   "canonicalState": "blocked",
   "sourceId": "V18",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "CSV onboarding alternative",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-MIG",
    "GL-015",
    "F57",
    "R01",
    "V17·codex"
   ],
   "card": "fin-cutover",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cutover \"Data migration and the real-data cut-over\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "CSV onboarding alternative",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V31·codex",
   "canonicalId": "V31·codex",
   "canonicalState": "blocked",
   "sourceId": "V31",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Permit and required-credential controls",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-SAFE",
    "GL-050"
   ],
   "card": "safe-lib",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-lib \"Safety document library, permits and credential controls\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Permit and required-credential controls",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V32·codex",
   "canonicalId": "V32·codex",
   "canonicalState": "blocked",
   "sourceId": "V32",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Explicit credential override policy",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-SAFE",
    "GL-107"
   ],
   "card": "safe-lib",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-lib \"Safety document library, permits and credential controls\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Explicit credential override policy",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V33·codex",
   "canonicalId": "V33·codex",
   "canonicalState": "blocked",
   "sourceId": "V33",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Waste and project reference details",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-BOOK",
    "GL-018",
    "GL-041"
   ],
   "card": "mgmt-projbook",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-projbook \"Project Book and job setup\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Waste and project reference details",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V34·codex",
   "canonicalId": "V34·codex",
   "canonicalState": "blocked",
   "sourceId": "V34",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Estimate input and awarded-proposal transfer",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-QUO",
    "GL-010",
    "GL-057",
    "GL-098",
    "R17",
    "R18",
    "R19",
    "V50·codex"
   ],
   "card": "sales-quotes",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-quotes \"Quotes, pipeline, proposals and bid items\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Estimate input and awarded-proposal transfer",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V37·codex",
   "canonicalId": "V37·codex",
   "canonicalState": "blocked",
   "sourceId": "V37",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Start-day checklist",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-DAY",
    "GL-086",
    "F48",
    "F49",
    "R20",
    "V13·codex",
    "V41·codex",
    "V42·codex",
    "V43·codex",
    "V44·codex",
    "V45·codex"
   ],
   "card": "crew-startday",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-startday \"Start Day, timesheet head start and the daily report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Start-day checklist",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V42·codex",
   "canonicalId": "V42·codex",
   "canonicalState": "blocked",
   "sourceId": "V42",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "JHA task and hazard library",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-SAFE",
    "GL-011",
    "F48",
    "F49",
    "R20",
    "V13·codex",
    "V37·codex",
    "V41·codex",
    "V43·codex",
    "V44·codex",
    "V45·codex"
   ],
   "card": "crew-jha",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-jha \"JHA / pre-job safety talk, acknowledgements and weather\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "JHA task and hazard library",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V45·codex",
   "canonicalId": "V45·codex",
   "canonicalState": "blocked",
   "sourceId": "V45",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Containment logs",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-CONT",
    "GL-017",
    "F48",
    "F49",
    "R20",
    "V13·codex",
    "V37·codex",
    "V41·codex",
    "V42·codex",
    "V43·codex",
    "V44·codex"
   ],
   "card": "crew-contain",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-contain \"Containment log and abatement daily\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Containment logs",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V46·codex",
   "canonicalId": "V46·codex",
   "canonicalState": "blocked",
   "sourceId": "V46",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Form completeness indicators",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-DAY",
    "GL-100",
    "GL-017",
    "F37",
    "F38",
    "F39",
    "F40",
    "V10·codex"
   ],
   "card": "crew-startday",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-startday \"Start Day, timesheet head start and the daily report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Form completeness indicators",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V52·codex",
   "canonicalId": "V52·codex",
   "canonicalState": "blocked",
   "sourceId": "V52",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Weekly payroll review and export",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-PAY",
    "GL-040",
    "GL-062",
    "GL-103",
    "GL-105",
    "F09",
    "F12",
    "R12",
    "R21",
    "V39·codex",
    "V53·codex"
   ],
   "card": "fin-payroll",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-payroll \"Payroll approval, allocation to jobs and export\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Weekly payroll review and export",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V53·codex",
   "canonicalId": "V53·codex",
   "canonicalState": "blocked",
   "sourceId": "V53",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "PM approval gate and history",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-PAY",
    "GL-040",
    "F09",
    "F12",
    "R12",
    "R21",
    "V39·codex",
    "V52·codex"
   ],
   "card": "fin-payroll",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-payroll \"Payroll approval, allocation to jobs and export\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "PM approval gate and history",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V55·codex",
   "canonicalId": "V55·codex",
   "canonicalState": "blocked",
   "sourceId": "V55",
   "section": "baseline",
   "idSpace": "codex-requirements (profile/Codex_Requirements_and_Notes_2026-10-04.md)",
   "title": "Sizing baseline and account types",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-SIZE",
    "GL-013"
   ],
   "card": "plat-host",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-host \"Hosting, domain, database, backups and capacity\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Sizing baseline and account types",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "W01",
   "canonicalId": "W01",
   "canonicalState": "blocked",
   "sourceId": "W01",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Import historical annual registers",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-MIG",
    "GL-015"
   ],
   "card": "fin-cutover",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cutover \"Data migration and the real-data cut-over\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Import historical annual registers",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "W06",
   "canonicalId": "W06",
   "canonicalState": "blocked",
   "sourceId": "W06",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Replace sums embedded in cells with cost lines",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-CST"
   ],
   "card": "fin-cost",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cost \"Job costing, budgets, cost codes and P&L\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Replace sums embedded in cells with cost lines",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "W08",
   "canonicalId": "W08",
   "canonicalState": "blocked",
   "sourceId": "W08",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Record partial payments and remaining balances",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-REC",
    "GL-048"
   ],
   "card": "fin-money",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-money \"Money overview, collections, receivables and holdbacks\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Record partial payments and remaining balances",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "W12",
   "canonicalId": "W12",
   "canonicalState": "blocked",
   "sourceId": "W12",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Normalize inventory units and pack prices",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-MAT",
    "GL-101"
   ],
   "card": "gear-ware",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-ware \"Warehouse, loadouts, inventory and materials\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Normalize inventory units and pack prices",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "W13",
   "canonicalId": "W13",
   "canonicalState": "blocked",
   "sourceId": "W13",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Allow adjustments and credits",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-REC"
   ],
   "card": "fin-money",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-money \"Money overview, collections, receivables and holdbacks\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Allow adjustments and credits",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "W14",
   "canonicalId": "W14",
   "canonicalState": "blocked",
   "sourceId": "W14",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Expose reconciliation exceptions",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-REC"
   ],
   "card": "fin-money",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-money \"Money overview, collections, receivables and holdbacks\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Expose reconciliation exceptions",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "W15",
   "canonicalId": "W15",
   "canonicalState": "blocked",
   "sourceId": "W15",
   "section": "baseline",
   "idSpace": "codex-requirements",
   "title": "Use year filters without duplicating jobs",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "M-MIG"
   ],
   "card": "fin-cutover",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cutover \"Data migration and the real-data cut-over\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Use year filters without duplicating jobs",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "M-BOOK",
   "canonicalId": "M-BOOK",
   "canonicalState": "blocked",
   "sourceId": "M-BOOK",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Complete project book and settings",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "unmapped-ref"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "V30·codex",
    "V33·codex",
    "GL-066",
    "REV-D1-06",
    "M-AUTH",
    "O-DATA",
    "GL-018",
    "GL-041",
    "GL-097",
    "GL-066"
   ],
   "card": "mgmt-projbook",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-projbook \"Project Book and job setup\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Finish project book and settings",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "M-BRAND",
   "canonicalId": "M-BRAND",
   "canonicalState": "blocked",
   "sourceId": "M-BRAND",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Makki branding and company details",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "V04·codex",
    "GL-094",
    "M-AUTH",
    "O-DATA",
    "GL-094"
   ],
   "card": "office-company",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-company \"Company page, branding, Messages, Ideas and HQ\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Makki branding and company details",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "M-CONT",
   "canonicalId": "M-CONT",
   "canonicalState": "blocked",
   "sourceId": "M-CONT",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Containment and abatement daily logs",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "V45·codex",
    "M-AUTH",
    "O-DATA",
    "GL-086",
    "GL-017"
   ],
   "card": "crew-contain",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-contain \"Containment log and abatement daily\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Containment and abatement daily logs",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "M-CRM",
   "canonicalId": "M-CRM",
   "canonicalState": "blocked",
   "sourceId": "M-CRM",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Sales follow-up, reminders and estimator reporting",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "F42",
    "F44",
    "M-AUTH",
    "O-DATA",
    "GL-033"
   ],
   "card": "sales-crm",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-crm \"CRM: contacts, follow-ups and estimator reporting\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Sales follow-up, reminders and estimator reporting",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "M-DAY",
   "canonicalId": "M-DAY",
   "canonicalState": "blocked",
   "sourceId": "M-DAY",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Start-day forms, daily reports and photo evidence",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "F05",
    "F40",
    "V10·codex",
    "V37·codex",
    "V44·codex",
    "V46·codex",
    "M-AUTH",
    "O-DATA"
   ],
   "card": "crew-startday",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-startday \"Start Day, timesheet head start and the daily report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Start-day forms, daily reports and photo evidence",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "M-EST",
   "canonicalId": "M-EST",
   "canonicalState": "blocked",
   "sourceId": "M-EST",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Historical estimating knowledge and reviewed AI estimates",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "R17",
    "R18",
    "M-AUTH",
    "O-DATA",
    "GL-061"
   ],
   "card": "sales-est",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-est \"Estimating knowledge, reviewed AI estimates and the Estimator seat\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Historical estimating knowledge and reviewed AI estimates",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "M-HR",
   "canonicalId": "M-HR",
   "canonicalState": "blocked",
   "sourceId": "M-HR",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Employee records, skills and qualified dispatch",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "F34",
    "F35",
    "V22·codex",
    "M-AUTH",
    "O-DATA",
    "GL-087",
    "GL-093",
    "GL-028",
    "GL-003"
   ],
   "card": "safe-people",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-people \"Employee records, skills and qualified dispatch\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Employee records, skills and qualified dispatch",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "M-LANG",
   "canonicalId": "M-LANG",
   "canonicalState": "blocked",
   "sourceId": "M-LANG",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Useful translations and dictation",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "V03·codex",
    "M-AUTH",
    "O-DATA",
    "GL-079",
    "GL-081"
   ],
   "card": "crew-lang",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-lang \"Languages and dictation\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Useful translations and dictation",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "M-MAT",
   "canonicalId": "M-MAT",
   "canonicalState": "blocked",
   "sourceId": "M-MAT",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Materials from deliveries and normalized stock costs",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "R15",
    "R16",
    "W12",
    "M-AUTH",
    "O-DATA"
   ],
   "card": "gear-ware",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-ware \"Warehouse, loadouts, inventory and materials\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Materials from deliveries and normalized stock costs",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "M-MIG",
   "canonicalId": "M-MIG",
   "canonicalState": "blocked",
   "sourceId": "M-MIG",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Historical migration with traceability",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "W01",
    "W02",
    "W03",
    "W04",
    "W11",
    "W15",
    "V18·codex",
    "M-AUTH",
    "O-DATA",
    "GL-015",
    "GL-044"
   ],
   "card": "fin-cutover",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cutover \"Data migration and the real-data cut-over\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Historical migration with traceability",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "M-OFF",
   "canonicalId": "M-OFF",
   "canonicalState": "blocked",
   "sourceId": "M-OFF",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Offline field work and safe synchronization",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "D07",
    "M-AUTH",
    "O-DATA"
   ],
   "card": "plat-install",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-install \"Install on phones and desktop, offline, updates and rollback\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Offline field work and safe synchronization",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "M-PAY",
   "canonicalId": "M-PAY",
   "canonicalState": "blocked",
   "sourceId": "M-PAY",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Payroll allocation, approval history and export",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "unmapped-ref"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "R12",
    "R21",
    "F12",
    "V52·codex",
    "V53·codex",
    "REV-B1-57",
    "M-AUTH",
    "O-DATA",
    "GL-062",
    "GL-040",
    "GL-103"
   ],
   "card": "fin-payroll",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-payroll \"Payroll approval, allocation to jobs and export\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Payroll allocation, approval history and export",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "M-QBO",
   "canonicalId": "M-QBO",
   "canonicalState": "blocked",
   "sourceId": "M-QBO",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "QuickBooks connection and initial import",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "F57",
    "V17·codex",
    "M-AUTH",
    "O-DATA",
    "M-SYNC",
    "M-MIG",
    "GL-046",
    "GL-047",
    "GL-064"
   ],
   "card": "fin-qbo",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-qbo \"QuickBooks Online connection, first import and The Books\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "QuickBooks connection and initial import",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "M-QUO",
   "canonicalId": "M-QUO",
   "canonicalState": "blocked",
   "sourceId": "M-QUO",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Quotes, line items and accepted-job conversion",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "R02",
    "R03",
    "F04",
    "F41",
    "F43",
    "V34·codex",
    "M-AUTH",
    "O-DATA",
    "GL-010",
    "GL-034"
   ],
   "card": "sales-quotes",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-quotes \"Quotes, pipeline, proposals and bid items\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Quotes, line items and accepted-job conversion",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "M-REC",
   "canonicalId": "M-REC",
   "canonicalState": "blocked",
   "sourceId": "M-REC",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Payments, balances, holdbacks and reconciliation",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "R14",
    "W08",
    "W09",
    "W13",
    "W14",
    "M-AUTH",
    "O-DATA",
    "GL-048"
   ],
   "card": "fin-money",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-money \"Money overview, collections, receivables and holdbacks\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Payments, balances, holdbacks and reconciliation",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "M-SAFE",
   "canonicalId": "M-SAFE",
   "canonicalState": "blocked",
   "sourceId": "M-SAFE",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Job-specific safety document library",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "R20",
    "F48",
    "V31·codex",
    "V32·codex",
    "V41·codex",
    "V42·codex",
    "M-AUTH",
    "O-DATA",
    "GL-051",
    "GL-056",
    "GL-063",
    "GL-011",
    "GL-050",
    "GL-107"
   ],
   "card": "safe-lib",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-lib \"Safety document library, permits and credential controls\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Job-specific safety document library",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "M-SCH",
   "canonicalId": "M-SCH",
   "canonicalState": "blocked",
   "sourceId": "M-SCH",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Crew and asset scheduling with look-ahead",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "F19",
    "F20",
    "F22",
    "V51·codex",
    "M-AUTH",
    "O-DATA",
    "GL-032",
    "GL-031",
    "GL-102"
   ],
   "card": "mgmt-sched",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-sched \"Schedule board, Timeline and the 4-week look-ahead\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Crew and asset scheduling with look-ahead",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "M-SIZE",
   "canonicalId": "M-SIZE",
   "canonicalState": "blocked",
   "sourceId": "M-SIZE",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Users, devices and capacity baseline",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "V55·codex"
   ],
   "card": "plat-host",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-host \"Hosting, domain, database, backups and capacity\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Users, devices and capacity baseline",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "M-STA",
   "canonicalId": "M-STA",
   "canonicalState": "blocked",
   "sourceId": "M-STA",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Explicit job states, completion and reopening",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "unmapped-ref"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-10T03:45:00.000Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "R05",
    "W10",
    "REV-B1-46",
    "M-AUTH",
    "O-DATA"
   ],
   "card": "fin-invoice",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-invoice \"Invoicing: ready to bill, completion marks and drafts in the app\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Explicit job states, completion and reopening",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "M-TIME",
   "canonicalId": "M-TIME",
   "canonicalState": "blocked",
   "sourceId": "M-TIME",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Attendance, time entry and attestation",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "F02",
    "F09",
    "F10",
    "F11",
    "F13",
    "F14",
    "F54",
    "V39·codex",
    "V47·codex",
    "M-AUTH",
    "O-DATA",
    "GL-030",
    "GL-036"
   ],
   "card": "crew-time",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-time \"Time, breaks, per diem, signatures and end of day\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Attendance, time entry and attestation",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "O-WEB",
   "canonicalId": "O-WEB",
   "canonicalState": "blocked",
   "sourceId": "O-WEB",
   "section": "task",
   "idSpace": "codex-launch-plan master-plan.json",
   "title": "Public presence and staff entry page",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    }
   ],
   "related": [
    "GL-060",
    "M-BRAND",
    "O-DOMAIN",
    "O-INSTALL",
    "GL-060"
   ],
   "card": "plat-web",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-web \"Public website and staff entry page\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Public presence and staff entry page",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "GL-010",
   "canonicalId": "GL-010",
   "canonicalState": "blocked",
   "sourceId": "GL-010",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Bid items on the proposal, by hand or from Excel — line items instead of one price",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "V79",
     "title": "Add bid items by hand or from an Excel sheet",
     "state": "blocked",
     "cancelledNote": null
    }
   ],
   "flags": [
    "merged-v2.2"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "F15",
    "F43",
    "V34·codex",
    "M-QUO",
    "The owner 4"
   ],
   "card": "sales-quotes",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-quotes \"Quotes, pipeline, proposals and bid items\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Bid items on the proposal, by hand or from Excel — line items instead of one price",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "GL-011",
   "canonicalId": "GL-011",
   "canonicalState": "blocked",
   "sourceId": "GL-011",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "A task library that fills the JHA in — The owner's own task and hazard wording, then a picker on the safety talk",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "F48",
    "V42·codex",
    "M-SAFE",
    "V96",
    "V96"
   ],
   "card": "crew-jha",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-jha \"JHA / pre-job safety talk, acknowledgements and weather\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "A task library that fills the JHA in — The owner's own task and hazard wording, then a…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "GL-017",
   "canonicalId": "GL-017",
   "canonicalState": "blocked",
   "sourceId": "GL-017",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "The containment log — per-person form: respirator type, task, time in/out, PIN signature — and with it the abatement paperwork the owner flagged himself: asbestos/…",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "V45·codex",
    "V46·codex",
    "M-CONT",
    "V104",
    "V106",
    "V107",
    "V131"
   ],
   "card": "crew-contain",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-contain \"Containment log and abatement daily\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "The containment log — per-person form: respirator type, task, time in/out, PIN signature…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "GL-018",
   "canonicalId": "GL-018",
   "canonicalState": "blocked",
   "sourceId": "GL-018",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "A waste manifest per load out — hauler, material type, truck type, landfill, waste-load count vs bid; one row per load exists since 09-20 (the Waste loads ta…",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "F16",
    "V33·codex",
    "M-BOOK"
   ],
   "card": "mgmt-projbook",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-projbook \"Project Book and job setup\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "A waste manifest per load out — hauler, material type, truck type, landfill, waste-load…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "GL-025",
   "canonicalId": "GL-025",
   "canonicalState": "blocked",
   "sourceId": "GL-025",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Claim walkthrough — an insurance claim walked room by room for the adjuster: photos before, during and after, scope per room, exported as the sheet the adjus…",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "M-INC"
   ],
   "card": "safe-inc",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-inc \"Incidents, inspections, corrective actions and OHS reports\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Claim walkthrough — an insurance claim walked room by room for the adjuster: photos…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "GL-026",
   "canonicalId": "GL-026",
   "canonicalState": "blocked",
   "sourceId": "GL-026",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Regulator / OHS reports at one button — leading and lagging indicators, a monthly incident trend chart, and one press that prints the file an inspector asks …",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "F49",
    "F50",
    "D12",
    "V13·codex",
    "M-INC",
    "V25"
   ],
   "card": "safe-inc",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-inc \"Incidents, inspections, corrective actions and OHS reports\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Regulator / OHS reports at one button — leading and lagging indicators, a monthly…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "GL-033",
   "canonicalId": "GL-033",
   "canonicalState": "blocked",
   "sourceId": "GL-033",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "CRM — contacts, prospect records, job walks, a reach-out log with reminders, proposal due-date alerts; the portal has a Pipeline and a Proposal printer, no c…",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "The owner 15",
     "title": "Do you want a CRM: contacts, job walks, reach-outs?",
     "state": "open",
     "cancelledNote": null
    }
   ],
   "flags": [
    "merged-v2.4"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "F04",
    "F41",
    "F42",
    "M-CRM",
    "V27"
   ],
   "card": "sales-crm",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-crm \"CRM: contacts, follow-ups and estimator reporting\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "CRM — contacts, prospect records, job walks, a reach-out log with reminders, proposal…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "GL-040",
   "canonicalId": "GL-040",
   "canonicalState": "blocked",
   "sourceId": "GL-040",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Payroll — a multi-approver sign-off chain with a trailing history (who besides the owner is allowed to approve payroll, and in what order); single approver is buil…",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "The owner 16",
     "title": "Who else signs off payroll, if anyone?",
     "state": "open",
     "cancelledNote": null
    }
   ],
   "flags": [
    "merged-v2.4"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "R21",
    "D04",
    "V52·codex",
    "V53·codex",
    "M-PAY",
    "V122"
   ],
   "card": "fin-payroll",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-payroll \"Payroll approval, allocation to jobs and export\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Payroll — a multi-approver sign-off chain with a trailing history (who besides the owner…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "GL-045",
   "canonicalId": "GL-045",
   "canonicalState": "blocked",
   "sourceId": "GL-045",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "The DEMO band comes off — the permanent band should stay until the owner picks the day",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "The owner 18",
     "title": "The day the demo data comes out",
     "state": "open",
     "cancelledNote": null
    }
   ],
   "flags": [
    "merged-v2.4"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "O-CUT"
   ],
   "card": "plat-launch",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-launch \"Pilot, cut-over and launch approval\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "The DEMO band comes off — the permanent band should stay until the owner picks the day",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "GL-046",
   "canonicalId": "GL-046",
   "canonicalState": "blocked",
   "sourceId": "GL-046",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "QuickBooks Online connected for real — the real connection instead of the preview screen at Owner › Money › QuickBooks; fifteen minutes with the owner at his scree…",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "The owner 1",
     "title": "Fifteen minutes on QuickBooks Online, at your screen",
     "state": "open",
     "cancelledNote": null
    }
   ],
   "flags": [
    "merged-v2.2"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "R01",
    "F57",
    "V17·codex",
    "M-QBO",
    "V128",
    "V32",
    "V33"
   ],
   "card": "fin-qbo",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-qbo \"QuickBooks Online connection, first import and The Books\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "QuickBooks Online connected for real — the real connection instead of the preview screen…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "GL-047",
   "canonicalId": "GL-047",
   "canonicalState": "blocked",
   "sourceId": "GL-047",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Employees, customers and jobs brought across from QuickBooks once — the first pull, so nobody types the business in twice",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "R01",
    "V17·codex",
    "M-QBO"
   ],
   "card": "fin-qbo",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-qbo \"QuickBooks Online connection, first import and The Books\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Employees, customers and jobs brought across from QuickBooks once — the first pull, so…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "GL-048",
   "canonicalId": "GL-048",
   "canonicalState": "blocked",
   "sourceId": "GL-048",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "A payment matching itself against its job — a payment lands and the job goes paid without anyone ticking it",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": "GL-046",
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "owner-who-vs-section",
    "blocked-on-task"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "R14",
    "W08",
    "M-REC"
   ],
   "card": "fin-money",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-money \"Money overview, collections, receivables and holdbacks\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "A payment matching itself against its job — a payment lands and the job goes paid…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "GL-049",
   "canonicalId": "GL-049",
   "canonicalState": "blocked",
   "sourceId": "GL-049",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Makki's own cost-code names — the mechanism is built, the vocabulary is invented; ours are demo codes and his names still have to come from the owner",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "F15",
    "V39·codex",
    "M-CST"
   ],
   "card": "fin-cost",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cost \"Job costing, budgets, cost codes and P&L\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Makki's own cost-code names — the mechanism is built, the vocabulary is invented; ours…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "GL-050",
   "canonicalId": "GL-050",
   "canonicalState": "blocked",
   "sourceId": "GL-050",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "A few real permits (a demolition permit, an abatement notification) so the permit document holder is shaped like his; the permit dates and warnings are built…",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "The owner 7",
     "title": "A couple of real permits (a demolition permit, an abatement notification)",
     "state": "open",
     "cancelledNote": null
    }
   ],
   "flags": [
    "merged-v2.2"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "V31·codex",
    "M-SAFE"
   ],
   "card": "safe-lib",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-lib \"Safety document library, permits and credential controls\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "A few real permits (a demolition permit, an abatement notification) so the permit…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "GL-051",
   "canonicalId": "GL-051",
   "canonicalState": "blocked",
   "sourceId": "GL-051",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "The safety document library with real documents in it — JHAs, safe work practices, toolbox talks and SDS sheets, and which job needs which; 11 placeholders t…",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "R20",
    "M-SAFE"
   ],
   "card": "safe-lib",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-lib \"Safety document library, permits and credential controls\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "The safety document library with real documents in it — JHAs, safe work practices…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "GL-052",
   "canonicalId": "GL-052",
   "canonicalState": "blocked",
   "sourceId": "GL-052",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "The owner flips the bookkeeper's Payroll-hours switch on Owner › People › Team & Access — the accountant seeing hours and never rates; built, gated and working, of…",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "The owner 17",
     "title": "Flip the bookkeeper's Payroll-hours switch on (Team & Access)",
     "state": "open",
     "cancelledNote": null
    }
   ],
   "flags": [
    "merged-v2.2"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "R21",
    "V05·codex",
    "M-ACC",
    "V129"
   ],
   "card": "fin-payroll",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-payroll \"Payroll approval, allocation to jobs and export\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "The owner flips the bookkeeper's Payroll-hours switch on Owner › People › Team & Access…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "GL-056",
   "canonicalId": "GL-056",
   "canonicalState": "blocked",
   "sourceId": "GL-056",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "The Ticket Keeper's safety half — the OHS and asbestos paperwork tied to the right site; not started, switches on with the owner's existing OHS documents (ask 4)",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "R20",
    "M-SAFE"
   ],
   "card": "safe-lib",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-lib \"Safety document library, permits and credential controls\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "The Ticket Keeper's safety half — the OHS and asbestos paperwork tied to the right site…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "GL-057",
   "canonicalId": "GL-057",
   "canonicalState": "blocked",
   "sourceId": "GL-057",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "The Estimator (seat 5) — quotes in the owner's voice with his pricing rules, won → live job; a quote drafted in the owner's own pricing has nothing to learn from yet",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "H5",
     "title": "The Estimator — Quotes in the owner's voice with his pricing rules; won → live job",
     "state": "blocked",
     "cancelledNote": null
    }
   ],
   "flags": [
    "merged-v2.2"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "R03",
    "R17",
    "V34·codex",
    "M-AI"
   ],
   "card": "sales-est",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-est \"Estimating knowledge, reviewed AI estimates and the Estimator seat\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "The Estimator (seat 5) — quotes in the owner's voice with his pricing rules, won → live…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "GL-058",
   "canonicalId": "GL-058",
   "canonicalState": "blocked",
   "sourceId": "GL-058",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "The Books (seat 6) — payroll hours onto the right job, budget vs actual live, invoices and costs pulled from QuickBooks nightly, materials logged from a driv…",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "H6",
     "title": "The Books — Payroll hours onto the right job, budget vs actual live; pulls invoices and costs from QuickBooks nightly; logs materials from a driver's text",
     "state": "blocked",
     "cancelledNote": null
    }
   ],
   "flags": [
    "merged-v2.2"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "R12",
    "R16",
    "F16",
    "M-AI"
   ],
   "card": "fin-qbo",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-qbo \"QuickBooks Online connection, first import and The Books\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "The Books (seat 6) — payroll hours onto the right job, budget vs actual live, invoices…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "GL-060",
   "canonicalId": "GL-060",
   "canonicalState": "blocked",
   "sourceId": "GL-060",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Ask 1 — Does Makki have a public website today, and does the owner want one? (§2: unknown, not recorded anywhere in this workspace)",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "The owner 13",
     "title": "Does Makki have a public website today, and do you want one?",
     "state": "",
     "cancelledNote": null
    }
   ],
   "flags": [
    "alias-state-conflict"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "O-WEB"
   ],
   "card": "plat-web",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-web \"Public website and staff entry page\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Ask 1 — Does Makki have a public website today, and does the owner want one? (§2…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "GL-061",
   "canonicalId": "GL-061",
   "canonicalState": "blocked",
   "sourceId": "GL-061",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Ask 2 — Past quotes, or access to the quoting assistant he trained (agent 5)",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "The owner 4",
     "title": "A handful of past quotes, or access to the quoting assistant you trained",
     "state": "",
     "cancelledNote": null
    }
   ],
   "flags": [
    "alias-state-conflict"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "R17",
    "R19",
    "M-EST"
   ],
   "card": "sales-est",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-est \"Estimating knowledge, reviewed AI estimates and the Estimator seat\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Ask 2 — Past quotes, or access to the quoting assistant he trained (agent 5)",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "GL-062",
   "canonicalId": "GL-062",
   "canonicalState": "blocked",
   "sourceId": "GL-062",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Ask 3 — Which payroll system (agent 6)",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "The owner 8",
     "title": "Which payroll system you use",
     "state": "",
     "cancelledNote": null
    }
   ],
   "flags": [
    "alias-state-conflict"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "R12",
    "R21",
    "F12",
    "D12",
    "V52·codex",
    "M-PAY"
   ],
   "card": "fin-payroll",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-payroll \"Payroll approval, allocation to jobs and export\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Ask 3 — Which payroll system (agent 6)",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "GL-063",
   "canonicalId": "GL-063",
   "canonicalState": "blocked",
   "sourceId": "GL-063",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Ask 4 — Existing OHS documents (switches on the Ticket Keeper's safety half, agent 4)",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "The owner 6",
     "title": "Your OHS documents: JHAs, SWPs, toolbox talks",
     "state": "",
     "cancelledNote": null
    }
   ],
   "flags": [
    "alias-state-conflict"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "R20",
    "D12",
    "M-SAFE"
   ],
   "card": "safe-lib",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-lib \"Safety document library, permits and credential controls\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Ask 4 — Existing OHS documents (switches on the Ticket Keeper's safety half, agent 4)",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "GL-064",
   "canonicalId": "GL-064",
   "canonicalState": "blocked",
   "sourceId": "GL-064",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Ask 5 — QuickBooks Online connect, one click, when we get there (agent 6, The Books)",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "F57",
    "V17·codex",
    "M-QBO"
   ],
   "card": "fin-qbo",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-qbo \"QuickBooks Online connection, first import and The Books\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Ask 5 — QuickBooks Online connect, one click, when we get there (agent 6, The Books)",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "GL-066",
   "canonicalId": "GL-066",
   "canonicalState": "blocked",
   "sourceId": "GL-066",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Ask 7 — Real job-site addresses / coordinates for the dashboard map; today's pins are demo placements, and they come for free once his job list is connected",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    }
   ],
   "related": [
    "M-BOOK"
   ],
   "card": "mgmt-dash",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-dash \"Dashboard, stat tiles and the job-site map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Ask 7 — Real job-site addresses / coordinates for the dashboard map; today's pins are…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "GL-068",
   "canonicalId": "GL-068",
   "canonicalState": "blocked",
   "sourceId": "GL-068",
   "section": "gl",
   "idSpace": "GO_LIVE.md",
   "title": "Ask 9 — Equipment list, photos, cost codes, a change-order form — what takes the app off demo data",
   "state": "blocked",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "The owner 3",
     "title": "Your equipment list",
     "state": "open",
     "cancelledNote": null
    }
   ],
   "flags": [
    "merged-v2.4"
   ],
   "sourceDates": [
    {
     "file": "materials/accounting/accounting-data.json",
     "date": "2026-10-11T15:54:39.756Z"
    },
    {
     "file": "outbox/homebase_makki/tracker.json",
     "date": "2026-10-23T22:58:49.045Z"
    },
    {
     "file": "GO_LIVE.md",
     "date": "2026-09-26 (written) · 2026-10-04 (State counts re-printed) · file mtime 2026-10-04T06:46:16.929Z"
    },
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "V26·codex",
    "M-ASSET"
   ],
   "card": "fin-cutover",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cutover \"Data migration and the real-data cut-over\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Ask 9 — Equipment list, photos, cost codes, a change-order form — what takes the app off…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V1",
   "canonicalId": "V1",
   "canonicalState": "complete",
   "sourceId": "V1",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Log in to one platform that holds the business",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-roles",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-roles \"Logins, roles and who sees what (device-enforced)\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Log in to one platform that holds the business",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V2",
   "canonicalId": "V2",
   "canonicalState": "complete",
   "sourceId": "V2",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Your own logo and branding on it — \"wherever you see Fieldflo, just imagine your logo\"",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "office-company",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-company \"Company page, branding, Messages, Ideas and HQ\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Your own logo and branding on it — \"wherever you see Fieldflo, just imagine your logo\"",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V3",
   "canonicalId": "V3",
   "canonicalState": "complete",
   "sourceId": "V3",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Everything built on role and permission; access restricted to every part of the platform",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-roles",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-roles \"Logins, roles and who sees what (device-enforced)\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Everything built on role and permission; access restricted to every part of the platform",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V4",
   "canonicalId": "V4",
   "canonicalState": "blocked",
   "sourceId": "V4",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Daily labourers verify time and safety but never log into the platform",
   "state": "blocked",
   "ownerClass": "Omar+the owner",
   "waitingOn": "Both",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 10"
   ],
   "card": "office-textline",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-textline \"The labourer text line (verify by text, no login)\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-both",
   "status5Word": "Needs both",
   "plainTitle": "Daily labourers verify time and safety but never log into the platform",
   "outcome": "Needs both Omar and the owner: a joint word closes it.",
   "next": "Omar and the owner both answer; the question that lists this row sits under What's needed from Omar on the tasks page."
  },
  {
   "id": "V5",
   "canonicalId": "V5",
   "canonicalState": "complete",
   "sourceId": "V5",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Open a person, tick the tabs they may see — the accountant given payroll only",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-roles",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-roles \"Logins, roles and who sees what (device-enforced)\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Open a person, tick the tabs they may see — the accountant given payroll only",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V6",
   "canonicalId": "V6",
   "canonicalState": "complete",
   "sourceId": "V6",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "A foreman limited to view projects, add forms, take pictures",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-roles",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-roles \"Logins, roles and who sees what (device-enforced)\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "A foreman limited to view projects, add forms, take pictures",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V7",
   "canonicalId": "V7",
   "canonicalState": "partial",
   "sourceId": "V7",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Each employee sent his own approval by text: his time and hours for the day and the week, \"Were you injured? Does everything look good?\"",
   "state": "partial",
   "ownerClass": "Omar+the owner",
   "waitingOn": "Both",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 10"
   ],
   "card": "office-textline",
   "scopeSource": "This row is the end-of-day report itself: each man's own time and hours for the day and the week, sent to him to confirm. Read from the row's own canonical title in the accounting v2.4 of 2026-10-31, on 2026-11-08.",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-textline \"The labourer text line (verify by text, no login)\" on finish line 2",
   "necessityWord": "Needed for launch",
   "currentReading": {
    "source": "the row's own canonical title in the accounting v2.4 of 2026-10-31 — \"his time and hours for the day and the week\", sent to each man to confirm — read 2026-11-08; the same line is the scopeSource this correction already recorded for the row.",
    "why": "the row's own sentence never said which of the two daily crew texts it is, so the question that keeps it could not be read as covering it; the row is the end-of-day confirm, and the weekly total it also carries belongs to another question"
   },
   "status5": "needs-both",
   "status5Word": "Needs both",
   "plainTitle": "Each employee sent his own approval by text: his time and hours for the day and the…",
   "outcome": "Needs both Omar and the owner: this row is the end-of-day confirm itself — each man's own hours sent to him by text — and it is partly built.",
   "next": "Omar and the owner both answer the two-daily-texts question; the hours for the week are asked on their own question, not that one.",
   "readingWas": {
    "outcome": "Needs both Omar and the owner: a joint word closes it — partly built so far.",
    "next": "Omar and the owner both answer; the question that lists this row sits under What's needed from Omar on the tasks page."
   }
  },
  {
   "id": "V8",
   "canonicalId": "V8",
   "canonicalState": "complete",
   "sourceId": "V8",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Today's active projects, coming to life as the foreman clocks his crew in",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-dash",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-dash \"Dashboard, stat tiles and the job-site map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Today's active projects, coming to life as the foreman clocks his crew",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V9",
   "canonicalId": "V9",
   "canonicalState": "complete",
   "sourceId": "V9",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Click into a project and audit all their paperwork from the dashboard",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-dash",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-dash \"Dashboard, stat tiles and the job-site map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Click into a project and audit all their paperwork from the dashboard",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V10",
   "canonicalId": "V10",
   "canonicalState": "complete",
   "sourceId": "V10",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Projects over 50 percent on bid vs actual: cost codes, labour types, bid / actual / remaining",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only",
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-dash",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-dash \"Dashboard, stat tiles and the job-site map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Projects over 50 percent on bid vs actual: cost codes, labour types, bid / actual /…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V11",
   "canonicalId": "V11",
   "canonicalState": "complete",
   "sourceId": "V11",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Certs flagged several ways as they get close to expiring",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only",
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-dash",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-dash \"Dashboard, stat tiles and the job-site map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Certs flagged several ways as they get close to expiring",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V12",
   "canonicalId": "V12",
   "canonicalState": "complete",
   "sourceId": "V12",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Employees nearing overtime, live at 32 hours",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only",
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "crew-time",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-time \"Time, breaks, per diem, signatures and end of day\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Employees nearing overtime, live at 32 hours",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V13",
   "canonicalId": "V13",
   "canonicalState": "complete",
   "sourceId": "V13",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "New projects on the dashboard",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only",
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-dash",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-dash \"Dashboard, stat tiles and the job-site map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "New projects on the dashboard",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V14",
   "canonicalId": "V14",
   "canonicalState": "complete",
   "sourceId": "V14",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Time and materials and change orders on the dashboard",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only",
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-tm",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-tm \"T&M tickets and change orders\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Time and materials and change orders on the dashboard",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V15",
   "canonicalId": "V15",
   "canonicalState": "complete",
   "sourceId": "V15",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Audit all forms in one place — \"all the safety meetings across all our branches in the last month\"",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only",
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-forms",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-forms \"Forms: builder, templates, lifecycle and audit\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Audit all forms in one place — \"all the safety meetings across all our branches in the…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V17",
   "canonicalId": "V17",
   "canonicalState": "complete",
   "sourceId": "V17",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "A map of where the projects are",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only",
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-dash",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-dash \"Dashboard, stat tiles and the job-site map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "A map of where the projects are",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V18",
   "canonicalId": "V18",
   "canonicalState": "blocked",
   "sourceId": "V18",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "A map of where employees clock in from",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 14"
   ],
   "card": "safe-privacy",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-privacy \"Location verification and HR privacy\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "A map of where employees clock in",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V19",
   "canonicalId": "V19",
   "canonicalState": "complete",
   "sourceId": "V19",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "The last injury form on the dashboard",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only",
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-dash",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-dash \"Dashboard, stat tiles and the job-site map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "The last injury form on the dashboard",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V20",
   "canonicalId": "V20",
   "canonicalState": "complete",
   "sourceId": "V20",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Counts of employees, clients and users",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only",
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-dash",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-dash \"Dashboard, stat tiles and the job-site map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Counts of employees, clients and users",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V21",
   "canonicalId": "V21",
   "canonicalState": "complete",
   "sourceId": "V21",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "A safety dashboard: incidents, near miss, stop work",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only",
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "safe-inc",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-inc \"Incidents, inspections, corrective actions and OHS reports\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "A safety dashboard: incidents, near miss, stop work",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V22",
   "canonicalId": "V22",
   "canonicalState": "partial",
   "sourceId": "V22",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "An incident reporting system that walks a claim through — property damage or injury",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "safe-inc",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-inc \"Incidents, inspections, corrective actions and OHS reports\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "An incident reporting system that walks a claim through — property damage or injury",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "V23",
   "canonicalId": "V23",
   "canonicalState": "partial",
   "sourceId": "V23",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Inspection management — your own or ready-made inspections",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "safe-inc",
   "coveredBy": {
    "gl": "GL-007",
    "extent": "partly",
    "source": "GO_LIVE.md row GL-007 (V23's own-or-ready-made ask) (written 2026-09-26, State re-printed 2026-10-04): Built — wave gl-wave2-forms, criteria and run 2026-09-27 (hive/checks/2026-09-27_gl-wave2-forms.md); state review in the canonical accounting v2.4 (2026-10-31)",
    "uncovered": "a library of ready-made inspections beyond the one asbestos checklist",
    "why": "GL-007 builds the builder and one asbestos-specific checklist; the ready-made library the V row names is not in it",
    "glState": "review",
    "glTitle": "Building your own inspection question sets (an inspection-template builder), and an asbestos-specific inspection checklist (manometer reading, two-stage wast…",
    "gradeFile": "hive/checks/2026-09-27_gl-wave2-forms.md",
    "accepted": false
   },
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-inc \"Incidents, inspections, corrective actions and OHS reports\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Inspection management — your own or ready-made inspections",
   "outcome": "Not done: built in part under a later row; what remains: a library of ready-made inspections beyond the one asbestos checklist.",
   "next": "Next: a library of ready-made inspections beyond the one asbestos checklist."
  },
  {
   "id": "V24",
   "canonicalId": "V24",
   "canonicalState": "complete",
   "sourceId": "V24",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "A failed item assigned as a corrective action to a person; \"they'll remain on this board until they fix it\"",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only",
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "safe-inc",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-inc \"Incidents, inspections, corrective actions and OHS reports\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "A failed item assigned as a corrective action to a person; \"they'll remain on this board…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V25",
   "canonicalId": "V25",
   "canonicalState": "blocked",
   "sourceId": "V25",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Reports and stats for OSHA",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 6"
   ],
   "card": "safe-inc",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-inc \"Incidents, inspections, corrective actions and OHS reports\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Reports and stats for OSHA",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V26",
   "canonicalId": "V26",
   "canonicalState": "partial",
   "sourceId": "V26",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "An equipment dashboard: maintenance, corrective actions on assets, inspections due, rentals to call off, what is assigned where",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "gear-assets",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-assets \"Equipment records, maintenance, inspections and the equipment map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "An equipment dashboard: maintenance, corrective actions on assets, inspections due…",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "V27",
   "canonicalId": "V27",
   "canonicalState": "partial",
   "sourceId": "V27",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "A CRM: reach-outs, job walks, proposals sent, won / lost",
   "state": "partial",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 15"
   ],
   "card": "sales-crm",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-crm \"CRM: contacts, follow-ups and estimator reporting\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "A CRM: reach-outs, job walks, proposals sent, won / lost",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide — partly built so far.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V28",
   "canonicalId": "V28",
   "canonicalState": "complete",
   "sourceId": "V28",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "A notification digest daily, twice a day if there are night shifts",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only",
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "office-msg",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-msg \"Notifications, broadcasts and auto-send\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "A notification digest daily, twice a day if there are night shifts",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V29",
   "canonicalId": "V29",
   "canonicalState": "partial",
   "sourceId": "V29",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Instant notifications: property damage, injury, change order, no access",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "office-msg",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-msg \"Notifications, broadcasts and auto-send\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Instant notifications: property damage, injury, change order, no access",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "V30",
   "canonicalId": "V30",
   "canonicalState": "complete",
   "sourceId": "V30",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "What the digest carries: certs near expiry with a link, permits near expiry, who is not doing paperwork correctly, warehouse orders pending, low inventory, scheduling conflicts",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only",
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "office-msg",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-msg \"Notifications, broadcasts and auto-send\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "What the digest carries: certs near expiry with a link, permits near expiry, who is not…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V31",
   "canonicalId": "V31",
   "canonicalState": "partial",
   "sourceId": "V31",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Send each employee his own schedule to his cell or email",
   "state": "partial",
   "ownerClass": "Omar+the owner",
   "waitingOn": "Both",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 10"
   ],
   "card": "office-msg",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-msg \"Notifications, broadcasts and auto-send\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-both",
   "status5Word": "Needs both",
   "plainTitle": "Send each employee his own schedule to his cell or email",
   "outcome": "Needs both Omar and the owner: a joint word closes it — partly built so far.",
   "next": "Omar and the owner both answer; the question that lists this row sits under What's needed from Omar on the tasks page."
  },
  {
   "id": "V32",
   "canonicalId": "V32",
   "canonicalState": "blocked",
   "sourceId": "V32",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Connect to QuickBooks — Online",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 1"
   ],
   "card": "fin-qbo",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-qbo \"QuickBooks Online connection, first import and The Books\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Connect to QuickBooks — Online",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V33",
   "canonicalId": "V33",
   "canonicalState": "blocked",
   "sourceId": "V33",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "The integration brings the employees across, so there is no duplicate entry",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 1"
   ],
   "card": "fin-qbo",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-qbo \"QuickBooks Online connection, first import and The Books\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "The integration brings the employees across, so there is no duplicate entry",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V34",
   "canonicalId": "V34",
   "canonicalState": "partial",
   "sourceId": "V34",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Then click each employee to update their information",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "safe-people",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-people \"Employee records, skills and qualified dispatch\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Then click each employee to update their information",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "V35",
   "canonicalId": "V35",
   "canonicalState": "blocked",
   "sourceId": "V35",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "CSV import where there is no integration",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 1"
   ],
   "card": "fin-cutover",
   "coveredBy": {
    "gl": "GL-015",
    "extent": "partly",
    "source": "GO_LIVE.md row GL-015 (profile/Master_List_2026-09-16.md:498; written 2026-09-26): \"Built 2026-09-27 (gl-wave5-admin), live v30-admin 2026-10-03\" (hive/checks/2026-09-27_gl-wave5-admin.md); state review in the canonical accounting v2.4 (2026-10-31)",
    "uncovered": "loading the owner's own people, customers and jobs — his spreadsheet or QuickBooks export",
    "why": "GL-015 builds the spreadsheet import; the V row as the owner asked it also needs his own data loaded, which waits on him",
    "glState": "review",
    "glTitle": "A CSV import where there is no integration — load people, customers and jobs from a spreadsheet; the backstop named on the QuickBooks screen — Built 2026-09-…",
    "gradeFile": "hive/checks/2026-09-27_gl-wave5-admin.md",
    "accepted": false
   },
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cutover \"Data migration and the real-data cut-over\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "CSV import where there is no integration",
   "outcome": "Needs Ali: built in part under a later row; what remains: loading the owner's own people, customers and jobs — his spreadsheet or QuickBooks export.",
   "next": "Next: loading the owner's own people, customers and jobs — his spreadsheet or QuickBooks export."
  },
  {
   "id": "V36",
   "canonicalId": "V36",
   "canonicalState": "partial",
   "sourceId": "V36",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Every page works the same way: a big button adds, three dots customise — \"painting by number\"",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-ux",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-ux \"Navigation and everyday usability\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Every page works the same way: a big button adds, three dots customise — \"painting by…",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "V37",
   "canonicalId": "V37",
   "canonicalState": "complete",
   "sourceId": "V37",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "A unique QR code created for a person the moment they are created",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only",
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "gear-qr",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-qr \"QR setup: hats and assets\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "A unique QR code created for a person the moment they are created",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V38",
   "canonicalId": "V38",
   "canonicalState": "complete",
   "sourceId": "V38",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "An inspector scans the hard hat and sees that man's active certificates",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only",
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "gear-qr",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-qr \"QR setup: hats and assets\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "An inspector scans the hard hat and sees that man's active certificates",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V39",
   "canonicalId": "V39",
   "canonicalState": "partial",
   "sourceId": "V39",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "The inspector sees only active certs; the employee sees the same page including missing and expired, \"so it's on them and the company\"",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "gear-qr",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-qr \"QR setup: hats and assets\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "The inspector sees only active certs; the employee sees the same page including missing…",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "V40",
   "canonicalId": "V40",
   "canonicalState": "blocked",
   "sourceId": "V40",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Emergency details on the profile",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 2"
   ],
   "card": "safe-people",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-people \"Employee records, skills and qualified dispatch\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Emergency details on the profile",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V41",
   "canonicalId": "V41",
   "canonicalState": "open",
   "sourceId": "V41",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Training pushed to the whole company or a division, onto each phone, entered with a secret PIN, taken in his own language",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "safe-train",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-train \"Training, training matrix, orientation and onboarding\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Training pushed to the whole company or a division, onto each phone, entered with a…",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "V42",
   "canonicalId": "V42",
   "canonicalState": "open",
   "sourceId": "V42",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "600+ Got Safety training videos with a quiz, at $4 per employee per month",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "safe-train",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-train \"Training, training matrix, orientation and onboarding\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "600+ Got Safety training videos with a quiz, at $4 per employee per month",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "V43",
   "canonicalId": "V43",
   "canonicalState": "partial",
   "sourceId": "V43",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "A passed training produces a branded certificate tracked like any other cert, with the same expiry warning",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "safe-train",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-train \"Training, training matrix, orientation and onboarding\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "A passed training produces a branded certificate tracked like any other cert, with the…",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "V44",
   "canonicalId": "V44",
   "canonicalState": "partial",
   "sourceId": "V44",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Profile fields: employee number, name, cell, temp labour, default cost code / position, office or division",
   "state": "partial",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision",
    "stale-tracker-claim"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 2"
   ],
   "card": "safe-people",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-people \"Employee records, skills and qualified dispatch\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Profile fields: employee number, name, cell, temp labour, default cost code / position…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide — partly built so far.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V45",
   "canonicalId": "V45",
   "canonicalState": "blocked",
   "sourceId": "V45",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Skills on the profile; dispatchers filter by skill; a skill icon on the project",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 2"
   ],
   "card": "safe-people",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-people \"Employee records, skills and qualified dispatch\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Skills on the profile; dispatchers filter by skill; a skill icon on the project",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V46",
   "canonicalId": "V46",
   "canonicalState": "partial",
   "sourceId": "V46",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "A training matrix: who has what certs and whether they have the right ones",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "safe-train",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-train \"Training, training matrix, orientation and onboarding\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "A training matrix: who has what certs and whether they have the right ones",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "V47",
   "canonicalId": "V47",
   "canonicalState": "partial",
   "sourceId": "V47",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Write-ups, permissions, trainings, documents and emergency contact on the person",
   "state": "partial",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 2"
   ],
   "card": "safe-people",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-people \"Employee records, skills and qualified dispatch\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Write-ups, permissions, trainings, documents and emergency contact on the person",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide — partly built so far.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V48",
   "canonicalId": "V48",
   "canonicalState": "open",
   "sourceId": "V48",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Define the list of cert types (three dots → Cert names)",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "safe-tickets",
   "coveredBy": {
    "gl": "GL-004",
    "extent": "covered",
    "source": "GO_LIVE.md row GL-004 (profile/Master_List_2026-09-16.md:477, V48; written 2026-09-26): Built — wave gl-wave1-people, criteria and run 2026-09-27 (hive/checks/2026-09-27_gl-wave1-people.md, criteria 29 and 54); state review in the canonical accounting v2.4 (2026-10-31)",
    "uncovered": null,
    "why": "the V row asks for a list of cert types that can be defined; GL-004 is the admin screen over the seeded types",
    "glState": "review",
    "glTitle": "Editing the list of cert types — a small admin screen over the certs.js types",
    "gradeFile": "hive/checks/2026-09-27_gl-wave1-people.md",
    "accepted": false
   },
   "coveredFromState": "open",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-tickets \"Tickets and certificates\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Define the list of cert types (three dots → Cert names)",
   "outcome": "Completed on demo data: a later go-live row built this and reported it finished; the older wording of this row is kept in its details.",
   "next": "Nothing left to build here: the later row that built it carries the report and its review record."
  },
  {
   "id": "V49",
   "canonicalId": "V49",
   "canonicalState": "complete",
   "sourceId": "V49",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Add a certificate: pick the type, valid from, expiry, which employee, take a picture of it, upload",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only",
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "safe-tickets",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-tickets \"Tickets and certificates\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Add a certificate: pick the type, valid, expiry, which employee, take a picture of it…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V50",
   "canonicalId": "V50",
   "canonicalState": "partial",
   "sourceId": "V50",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Certs listed alphabetically",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "safe-tickets",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-tickets \"Tickets and certificates\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Certs listed alphabetically",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "V51",
   "canonicalId": "V51",
   "canonicalState": "complete",
   "sourceId": "V51",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "A renewals list — \"all the ones that need to be renewed\"",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only",
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "safe-tickets",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-tickets \"Tickets and certificates\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "A renewals list — \"all the ones that need to be renewed\"",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V52",
   "canonicalId": "V52",
   "canonicalState": "complete",
   "sourceId": "V52",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Renew a cert: new valid-from and expiry; the new one becomes active, the old one is archived forever",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only",
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "safe-tickets",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-tickets \"Tickets and certificates\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Renew a cert: new valid-from and expiry; the new one becomes active, the old one is…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V53",
   "canonicalId": "V53",
   "canonicalState": "open",
   "sourceId": "V53",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Export a PDF pack of certs to send to anyone",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "safe-tickets",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-tickets \"Tickets and certificates\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Export a PDF pack of certs to send to anyone",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "V54",
   "canonicalId": "V54",
   "canonicalState": "complete",
   "sourceId": "V54",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "The archive is visible forever",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only",
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "safe-tickets",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-tickets \"Tickets and certificates\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "The archive is visible forever",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V55",
   "canonicalId": "V55",
   "canonicalState": "partial",
   "sourceId": "V55",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "An Inventory page with Add item (excavator, skid steer, sprayers)",
   "state": "partial",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 3"
   ],
   "card": "gear-assets",
   "coveredBy": {
    "gl": "GL-012",
    "extent": "partly",
    "source": "GO_LIVE.md row GL-012 (profile/Master_List_2026-09-16.md:500, Add item) (written 2026-09-26, State re-printed 2026-10-04): Built — wave gl-wave2-forms, criteria and run 2026-09-27 (hive/checks/2026-09-27_gl-wave2-forms.md); state review in the canonical accounting v2.4 (2026-10-31)",
    "uncovered": "The owner's own equipment list to fill the page",
    "why": "GL-012 builds the add form for an asset and an inventory line; the V row as the owner asked it also waits on his equipment list",
    "glState": "review",
    "glTitle": "An \"add\" form for an asset and for an inventory line — every list in the app can be read, searched and filtered; almost none of them can be added to",
    "gradeFile": "hive/checks/2026-09-27_gl-wave2-forms.md",
    "accepted": false
   },
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-assets \"Equipment records, maintenance, inspections and the equipment map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "An Inventory page with Add item (excavator, skid steer, sprayers)",
   "outcome": "Needs Ali: built in part under a later row; what remains: the owner's own equipment list to fill the page.",
   "next": "Next: the owner's own equipment list to fill the page."
  },
  {
   "id": "V56",
   "canonicalId": "V56",
   "canonicalState": "partial",
   "sourceId": "V56",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "A QR code on every asset; an operator scans it and inspects it without logging into the platform",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "id-collision"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "gear-qr",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-qr \"QR setup: hats and assets\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "A QR code on every asset; an operator scans it and inspects it without logging into the…",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "V57",
   "canonicalId": "V57",
   "canonicalState": "blocked",
   "sourceId": "V57",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Read the SDS on a chemical from the same scan",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 3"
   ],
   "card": "gear-qr",
   "coveredBy": {
    "gl": "GL-006",
    "extent": "partly",
    "source": "GO_LIVE.md row GL-006 (profile/Master_List_2026-09-16.md:481, V57) (written 2026-09-26, State re-printed 2026-10-04): Built — wave gl-wave2-forms, criteria and run 2026-09-27 (hive/checks/2026-09-27_gl-wave2-forms.md); state review in the canonical accounting v2.4 (2026-10-31)",
    "uncovered": "The owner's own safety data sheets to link to his chemicals",
    "why": "GL-006 links a document to an asset and puts it on the scan page; the V row's own SDS documents are the owner's to send",
    "glState": "review",
    "glTitle": "SDS from an asset scan — link a document to an asset and put it on the scan page",
    "gradeFile": "hive/checks/2026-09-27_gl-wave2-forms.md",
    "accepted": false
   },
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-qr \"QR setup: hats and assets\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Read the SDS on a chemical from the same scan",
   "outcome": "Needs Ali: built in part under a later row; what remains: the owner's own safety data sheets to link to his chemicals.",
   "next": "Next: the owner's own safety data sheets to link to his chemicals."
  },
  {
   "id": "V58",
   "canonicalId": "V58",
   "canonicalState": "partial",
   "sourceId": "V58",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "The item record: number, warehouse location, name, inspections, quantity, office, cost codes and rates (T&M rates brought in)",
   "state": "partial",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 3"
   ],
   "card": "gear-assets",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-assets \"Equipment records, maintenance, inspections and the equipment map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "The item record: number, warehouse location, name, inspections, quantity, office, cost…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide — partly built so far.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V59",
   "canonicalId": "V59",
   "canonicalState": "partial",
   "sourceId": "V59",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Inspections per item; a failed one notifies the warehouse manager",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "gear-assets",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-assets \"Equipment records, maintenance, inspections and the equipment map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Inspections per item; a failed one notifies the warehouse manager",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "V60",
   "canonicalId": "V60",
   "canonicalState": "open",
   "sourceId": "V60",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Build your own inspection question sets",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-forms",
   "coveredBy": {
    "gl": "GL-007",
    "extent": "covered",
    "source": "GO_LIVE.md row GL-007 (profile/Master_List_2026-09-16.md:482, V60) (written 2026-09-26, State re-printed 2026-10-04): Built — wave gl-wave2-forms, criteria and run 2026-09-27 (hive/checks/2026-09-27_gl-wave2-forms.md); state review in the canonical accounting v2.4 (2026-10-31)",
    "uncovered": null,
    "why": "the V row asks for building your own inspection question sets; GL-007 is the inspection-template builder",
    "glState": "review",
    "glTitle": "Building your own inspection question sets (an inspection-template builder), and an asbestos-specific inspection checklist (manometer reading, two-stage wast…",
    "gradeFile": "hive/checks/2026-09-27_gl-wave2-forms.md",
    "accepted": false
   },
   "coveredFromState": "open",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-forms \"Forms: builder, templates, lifecycle and audit\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Build your own inspection question sets",
   "outcome": "Completed on demo data: a later go-live row built this and reported it finished; the older wording of this row is kept in its details.",
   "next": "Nothing left to build here: the later row that built it carries the report and its review record."
  },
  {
   "id": "V61",
   "canonicalId": "V61",
   "canonicalState": "blocked",
   "sourceId": "V61",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Maintenance and repair history per item",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 3"
   ],
   "card": "gear-assets",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-assets \"Equipment records, maintenance, inspections and the equipment map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Maintenance and repair history per item",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V62",
   "canonicalId": "V62",
   "canonicalState": "blocked",
   "sourceId": "V62",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "A loadout list: the PM lists what a project needs, the warehouse manager is notified with the address and delivery notes, and fulfils it",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 3"
   ],
   "card": "gear-ware",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-ware \"Warehouse, loadouts, inventory and materials\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "A loadout list: the PM lists what a project needs, the warehouse manager is notified…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V63",
   "canonicalId": "V63",
   "canonicalState": "blocked",
   "sourceId": "V63",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Stock moves out of inventory onto the project, cost-coded, estimates versus actuals",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 3"
   ],
   "card": "gear-ware",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-ware \"Warehouse, loadouts, inventory and materials\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Stock moves out of inventory onto the project, cost-coded, estimates versus actuals",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V64",
   "canonicalId": "V64",
   "canonicalState": "blocked",
   "sourceId": "V64",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Reporting Center → Project Inventory Report: everything ordered, returned or consumed on a project, in real time",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 3"
   ],
   "card": "gear-ware",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-ware \"Warehouse, loadouts, inventory and materials\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Reporting Center → Project Inventory Report: everything ordered, returned or consumed on…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V65",
   "canonicalId": "V65",
   "canonicalState": "partial",
   "sourceId": "V65",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Projects come over from QuickBooks, or you press the big button",
   "state": "partial",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 1"
   ],
   "card": "fin-qbo",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-qbo \"QuickBooks Online connection, first import and The Books\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Projects come over from QuickBooks, or you press the big button",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide — partly built so far.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V66",
   "canonicalId": "V66",
   "canonicalState": "complete",
   "sourceId": "V66",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Project details = the project book: name, number, night shift, crew list, loss type, projected work days, scope of work, address",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-projbook",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-projbook \"Project Book and job setup\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Project details = the project book: name, number, night shift, crew list, loss type…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V67",
   "canonicalId": "V67",
   "canonicalState": "partial",
   "sourceId": "V67",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Permits and notifications in the book, with expiry warnings, visible to the field",
   "state": "partial",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 7"
   ],
   "card": "safe-lib",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-lib \"Safety document library, permits and credential controls\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Permits and notifications in the book, with expiry warnings, visible to the field",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide — partly built so far.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V68",
   "canonicalId": "V68",
   "canonicalState": "complete",
   "sourceId": "V68",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Per diem on the project",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-projbook",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-projbook \"Project Book and job setup\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Per diem on the project",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V69",
   "canonicalId": "V69",
   "canonicalState": "complete",
   "sourceId": "V69",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "What certs and trainings are mandatory for this project — set once, then checked when you schedule people and when they go on the timesheet",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "V69-rest"
   ],
   "card": "safe-tickets",
   "coveredBy": {
    "gl": "V69",
    "extent": "partly",
    "source": "profile/Master_List_2026-09-16.md:337 (V69): \"Built — and ours refuses rather than warning. Trainings are not covered, only tickets\" (raw-transcript pass, 2026-09-16); no grade file names V69 in the canonical accounting v2.4 (2026-10-31)",
    "uncovered": "trainings are not covered, only tickets, and it refuses rather than warns",
    "why": "the bundled Completed covers the mandatory-cert check on scheduling and the timesheet; trainings and a warning instead of a refusal are not in it",
    "glState": "complete",
    "glTitle": "What certs and trainings are mandatory for this project — set once, then checked when you schedule people and when they go on the timesheet",
    "gradeFile": null,
    "accepted": false
   },
   "completedPortion": "the tickets half: set once, then checked at scheduling and on the timesheet",
   "remainderId": "V69-rest",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-tickets \"Tickets and certificates\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "What certs and trainings are mandatory for this project — set once, then checked when…",
   "outcome": "Completed on demo data: the tickets half: set once, then checked at scheduling and on the timesheet; the rest is its own row.",
   "next": "Nothing further here: the rest sits on its own row, V69-rest."
  },
  {
   "id": "V70",
   "canonicalId": "V70",
   "canonicalState": "complete",
   "sourceId": "V70",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Cost codes for the job, mirroring your own naming",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "fin-cost",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cost \"Job costing, budgets, cost codes and P&L\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Cost codes for the job, mirroring your own naming",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V71",
   "canonicalId": "V71",
   "canonicalState": "complete",
   "sourceId": "V71",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Building and owner information on the project",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-projbook",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-projbook \"Project Book and job setup\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Building and owner information on the project",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V72",
   "canonicalId": "V72",
   "canonicalState": "complete",
   "sourceId": "V72",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Waste reporting: haulers, material types, truck types, landfills",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-projbook",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-projbook \"Project Book and job setup\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Waste reporting: haulers, material types, truck types, landfills",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V73",
   "canonicalId": "V73",
   "canonicalState": "complete",
   "sourceId": "V73",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Custom tabs on the project",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-projbook",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-projbook \"Project Book and job setup\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Custom tabs on the project",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V74",
   "canonicalId": "V74",
   "canonicalState": "partial",
   "sourceId": "V74",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Templates — \"for these projects, I want you to answer these questions\"",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-forms",
   "coveredBy": {
    "gl": "GL-002",
    "extent": "covered",
    "source": "GO_LIVE.md row GL-002 (profile/Master_List_2026-09-16.md:486, V74) (written 2026-09-26, State re-printed 2026-10-04): Built — wave gl-wave2-forms, criteria and run 2026-09-27 (hive/checks/2026-09-27_gl-wave2-forms.md); state review in the canonical accounting v2.4 (2026-10-31)",
    "uncovered": null,
    "why": "the V row asks for question templates per project; GL-002 adds the template builder the row's note said was missing",
    "glState": "review",
    "glTitle": "Question templates per project: you can attach a template to a job and answer it, but nothing in the app creates or edits one — still needs a template builder",
    "gradeFile": "hive/checks/2026-09-27_gl-wave2-forms.md",
    "accepted": false
   },
   "coveredFromState": "partial",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-forms \"Forms: builder, templates, lifecycle and audit\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Templates — \"for these projects, I want you to answer these questions\"",
   "outcome": "Completed on demo data: a later go-live row built this and reported it finished; the older wording of this row is kept in its details.",
   "next": "Nothing left to build here: the later row that built it carries the report and its review record."
  },
  {
   "id": "V75",
   "canonicalId": "V75",
   "canonicalState": "complete",
   "sourceId": "V75",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Insurance on the project",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-projbook",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-projbook \"Project Book and job setup\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Insurance on the project",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V76",
   "canonicalId": "V76",
   "canonicalState": "complete",
   "sourceId": "V76",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Emergency contact filled in once, landing on the daily safety meeting every day automatically",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-projbook",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-projbook \"Project Book and job setup\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Emergency contact filled in once, landing on the daily safety meeting every day…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V77",
   "canonicalId": "V77",
   "canonicalState": "complete",
   "sourceId": "V77",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Job costing estimates on the project",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "fin-cost",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cost \"Job costing, budgets, cost codes and P&L\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Job costing estimates on the project",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V78",
   "canonicalId": "V78",
   "canonicalState": "partial",
   "sourceId": "V78",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Proposal builder: send the proposal with bid items to the client; if it is awarded, they drop in",
   "state": "partial",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 4"
   ],
   "card": "sales-quotes",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-quotes \"Quotes, pipeline, proposals and bid items\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Proposal builder: send the proposal with bid items to the client; if it is awarded, they…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide — partly built so far.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V80",
   "canonicalId": "V80",
   "canonicalState": "partial",
   "sourceId": "V80",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Every project has its own document system",
   "state": "partial",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 6"
   ],
   "card": "mgmt-docs",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-docs \"Documents, photos, drawings and the closeout report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Every project has its own document system",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide — partly built so far.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V81",
   "canonicalId": "V81",
   "canonicalState": "complete",
   "sourceId": "V81",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "A closeout report with the dailies, certs and documents in it",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-docs",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-docs \"Documents, photos, drawings and the closeout report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "A closeout report with the dailies, certs and documents in it",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V83",
   "canonicalId": "V83",
   "canonicalState": "partial",
   "sourceId": "V83",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "The foreman opens the app and sees only projects, in any language",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "crew-lang",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-lang \"Languages and dictation\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "The foreman opens the app and sees only projects, in any language",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "V84",
   "canonicalId": "V84",
   "canonicalState": "complete",
   "sourceId": "V84",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Press Start day and the day's paperwork appears — \"a timesheet, a JHA, an inspection, and a daily\"",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "crew-startday",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-startday \"Start Day, timesheet head start and the daily report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Press Start day and the day's paperwork appears — \"a timesheet, a JHA, an inspection…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V85",
   "canonicalId": "V85",
   "canonicalState": "complete",
   "sourceId": "V85",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Timesheet head start: three dots → Same as previous day",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "crew-startday",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-startday \"Start Day, timesheet head start and the daily report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Timesheet head start: three dots → Same as previous day",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V86",
   "canonicalId": "V86",
   "canonicalState": "partial",
   "sourceId": "V86",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Timesheet head start: Pull from scheduling",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "crew-startday",
   "coveredBy": {
    "gl": "GL-001",
    "extent": "covered",
    "source": "GO_LIVE.md row GL-001 (profile/Not_Built_Why_2026-09-16.md:413; written 2026-09-26): Built — batch5-time-crew, graded 2026-10-10 (hive/checks/2026-10-10_batch5-time-crew.r2.grade.md); ruled \"holds\" 2026-10-25 (hive/checks/2026-10-25_workflows-b1.r1c.grade.md:22); state complete, accepted, in the canonical accounting v2.4 (2026-10-31)",
    "uncovered": null,
    "why": "the V row asks for the timesheet head start pulled from the schedule; GL-001 is that pull, graded and ruled",
    "glState": "complete",
    "glTitle": "Timesheet head start: \"pull from the schedule\" does not really pull — the men on the sheet are still the login's own crew, and there is no man list on the sc…",
    "gradeFile": "hive/checks/2026-10-10_batch5-time-crew.r2.grade.md",
    "accepted": true
   },
   "coveredFromState": "partial",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-startday \"Start Day, timesheet head start and the daily report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Timesheet head start: Pull from scheduling",
   "outcome": "Completed on demo data: a later go-live row built this and reported it finished; the older wording of this row is kept in its details.",
   "next": "Nothing left to build here: the later row that built it carries the report and its review record."
  },
  {
   "id": "V87",
   "canonicalId": "V87",
   "canonicalState": "complete",
   "sourceId": "V87",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Add or delete men on the timesheet based on who really showed up",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "crew-startday",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-startday \"Start Day, timesheet head start and the daily report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Add or delete men on the timesheet based on who really showed up",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V88",
   "canonicalId": "V88",
   "canonicalState": "partial",
   "sourceId": "V88",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "A man without the right certs: the add is refused, and the office is told",
   "state": "partial",
   "ownerClass": "Omar+the owner",
   "waitingOn": "Both",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 10"
   ],
   "card": "safe-lib",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-lib \"Safety document library, permits and credential controls\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "canonicalTitle": "A man added without the right certs: the supervisor is warned, and if he is added anyway an email goes to the office",
   "titleSource": "portal/app-crew.js and the A17 / A36 rows of the canonical accounting v2.4 of 2026-10-31 (read 2026-11-08): the app refuses the add and names every missing ticket; no warning path and no email are built, and the office line is written on screen as a demo note.",
   "currentReading": {
    "source": "portal/app-crew.js and the A17 / A36 rows of the canonical accounting v2.4 of 2026-10-31 (read 2026-11-08): the app refuses the add and names every missing ticket; no warning path and no email are built, and the office line is written on screen as a demo note.",
    "why": "the recorded title said the man is \"added anyway\", which presupposes the add succeeds against the refusal the app actually enforces; the two emails — a blocked attempt, and an explicitly proposed override — are different asks and had never been told apart"
   },
   "status5": "needs-both",
   "status5Word": "Needs both",
   "plainTitle": "A man without the right certs: the add is refused, and the office is told",
   "outcome": "Needs both Omar and the owner: the add is refused today; the ask is whether a blocked attempt emails the office, or an explicitly proposed override.",
   "next": "Omar and the owner answer which of the two emails is wanted; the refusal stays as it is and the warning is not built.",
   "readingWas": {
    "outcome": "Needs both Omar and the owner: a joint word closes it — partly built so far.",
    "next": "Omar and the owner both answer; the question that lists this row sits under What's needed from Omar on the tasks page."
   }
  },
  {
   "id": "V89",
   "canonicalId": "V89",
   "canonicalState": "complete",
   "sourceId": "V89",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "A cost code per man on the timesheet, mirroring the company codes, defaultable",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "crew-startday",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-startday \"Start Day, timesheet head start and the daily report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "A cost code per man on the timesheet, mirroring the company codes, defaultable",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V90",
   "canonicalId": "V90",
   "canonicalState": "partial",
   "sourceId": "V90",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Pick who is starting → Start; the supervisor controls the timesheet, each labourer verifies",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "crew-startday",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-startday \"Start Day, timesheet head start and the daily report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Pick who is starting → Start; the supervisor controls the timesheet, each labourer…",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "V91",
   "canonicalId": "V91",
   "canonicalState": "blocked",
   "sourceId": "V91",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "The labourer gets a text within seconds asking for his location (optional)",
   "state": "blocked",
   "ownerClass": "Omar+the owner",
   "waitingOn": "Both",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 10"
   ],
   "card": "office-textline",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-textline \"The labourer text line (verify by text, no login)\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-both",
   "status5Word": "Needs both",
   "plainTitle": "The labourer gets a text within seconds asking for his location (optional)",
   "outcome": "Needs both Omar and the owner: a joint word closes it.",
   "next": "Omar and the owner both answer; the question that lists this row sits under What's needed from Omar on the tasks page."
  },
  {
   "id": "V92",
   "canonicalId": "V92",
   "canonicalState": "complete",
   "sourceId": "V92",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "The office dashboard shows the project started to the second",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "crew-startday",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-startday \"Start Day, timesheet head start and the daily report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "The office dashboard shows the project started to the second",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V93",
   "canonicalId": "V93",
   "canonicalState": "partial",
   "sourceId": "V93",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "The JHA / pre-job safety meeting, with Same as previous day then edit",
   "state": "partial",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 6"
   ],
   "card": "crew-jha",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-jha \"JHA / pre-job safety talk, acknowledgements and weather\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "The JHA / pre-job safety meeting, with Same as previous day then edit",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide — partly built so far.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V94",
   "canonicalId": "V94",
   "canonicalState": "complete",
   "sourceId": "V94",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "The supervisor enters his PIN to sign the JHA",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "crew-jha",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-jha \"JHA / pre-job safety talk, acknowledgements and weather\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "The supervisor enters his PIN to sign the JHA",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V95",
   "canonicalId": "V95",
   "canonicalState": "partial",
   "sourceId": "V95",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "JHA contents: nearest hospital, PPE requirements, personal limitations, hazards, evacuation plan (pulled from the project details), task steps, hazards and controls",
   "state": "partial",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 6"
   ],
   "card": "crew-jha",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-jha \"JHA / pre-job safety talk, acknowledgements and weather\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "JHA contents: nearest hospital, PPE requirements, personal limitations, hazards…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide — partly built so far.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V96",
   "canonicalId": "V96",
   "canonicalState": "blocked",
   "sourceId": "V96",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "A task library — \"hit add tasks and they'll select what they're doing, it will automatically fill out the paperwork for them\"",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 6"
   ],
   "card": "crew-jha",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-jha \"JHA / pre-job safety talk, acknowledgements and weather\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "A task library — \"hit add tasks and they'll select what they're doing, it will…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V97",
   "canonicalId": "V97",
   "canonicalState": "complete",
   "sourceId": "V97",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "New-day questions must be answered fresh each day",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "crew-jha",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-jha \"JHA / pre-job safety talk, acknowledgements and weather\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "New-day questions must be answered fresh each day",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V98",
   "canonicalId": "V98",
   "canonicalState": "partial",
   "sourceId": "V98",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Everybody on the timesheet verifies he understood the safety meeting — the whole meeting goes to his phone by text, translatable, signed on his own phone",
   "state": "partial",
   "ownerClass": "Omar+the owner",
   "waitingOn": "Both",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 10"
   ],
   "card": "office-textline",
   "scopeSource": "This row is the morning line-up text: the safety meeting goes to the man's phone before work and he signs it off there. Read from the row's own canonical title in the accounting v2.4 of 2026-10-31, on 2026-11-08.",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-textline \"The labourer text line (verify by text, no login)\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-both",
   "status5Word": "Needs both",
   "plainTitle": "Everybody on the timesheet verifies he understood the safety meeting — the whole meeting…",
   "outcome": "Needs both Omar and the owner: a joint word closes it — partly built so far.",
   "next": "Omar and the owner both answer; the question that lists this row sits under What's needed from Omar on the tasks page."
  },
  {
   "id": "V99",
   "canonicalId": "V99",
   "canonicalState": "partial",
   "sourceId": "V99",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Inspections during the day; a \"no\" or \"broken\" assigned as a corrective action, the person notified",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "safe-inc",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-inc \"Incidents, inspections, corrective actions and OHS reports\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Inspections during the day; a \"no\" or \"broken\" assigned as a corrective action, the…",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "V100",
   "canonicalId": "V100",
   "canonicalState": "partial",
   "sourceId": "V100",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Dailies ready-made for the industry",
   "state": "partial",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 5"
   ],
   "card": "crew-startday",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-startday \"Start Day, timesheet head start and the daily report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Dailies ready-made for the industry",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide — partly built so far.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V101",
   "canonicalId": "V101",
   "canonicalState": "complete",
   "sourceId": "V101",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Talk into the daily in any language — \"What'd you do today?\"",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "crew-lang",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-lang \"Languages and dictation\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Talk into the daily in any language — \"What'd you do today?\"",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V102",
   "canonicalId": "V102",
   "canonicalState": "complete",
   "sourceId": "V102",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "An incident / near miss / stop work on the daily notifies the office at once",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "safe-inc",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-inc \"Incidents, inspections, corrective actions and OHS reports\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "An incident / near miss / stop work on the daily notifies the office at once",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V103",
   "canonicalId": "V103",
   "canonicalState": "complete",
   "sourceId": "V103",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Goals for tomorrow and the week, and a meeting log, on the daily",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "crew-startday",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-startday \"Start Day, timesheet head start and the daily report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Goals for tomorrow and the week, and a meeting log, on the daily",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V104",
   "canonicalId": "V104",
   "canonicalState": "blocked",
   "sourceId": "V104",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "\"Any more asbestos that are mold detected, any abatement procedures\" on the daily",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 5"
   ],
   "card": "crew-contain",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-contain \"Containment log and abatement daily\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "\"Any more asbestos that are mold detected, any abatement procedures\" on the daily",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V105",
   "canonicalId": "V105",
   "canonicalState": "complete",
   "sourceId": "V105",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Pictures on every daily",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "crew-startday",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-startday \"Start Day, timesheet head start and the daily report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Pictures on every daily",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V106",
   "canonicalId": "V106",
   "canonicalState": "blocked",
   "sourceId": "V106",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "The containment log: names already there, respirator used, task, time in, time out, signature",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 5"
   ],
   "card": "crew-contain",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-contain \"Containment log and abatement daily\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "The containment log: names already there, respirator used, task, time, time out, signature",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V107",
   "canonicalId": "V107",
   "canonicalState": "blocked",
   "sourceId": "V107",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Unanswered containment fields stay red until they are filled",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 5"
   ],
   "card": "crew-contain",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-contain \"Containment log and abatement daily\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Unanswered containment fields stay red until they are filled",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V108",
   "canonicalId": "V108",
   "canonicalState": "complete",
   "sourceId": "V108",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "End of day: back into the timesheet — who is leaving, what breaks they took",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "crew-time",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-time \"Time, breaks, per diem, signatures and end of day\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "End of day: back into the timesheet — who is leaving, what breaks they took",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V109",
   "canonicalId": "V109",
   "canonicalState": "partial",
   "sourceId": "V109",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Everyone verifies by text at the end of the day: time correct, meals, injured, \"everything looks good\"",
   "state": "partial",
   "ownerClass": "Omar+the owner",
   "waitingOn": "Both",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 10"
   ],
   "card": "office-textline",
   "scopeSource": "This row is the end-of-day report: everyone confirms by text at the end of the day that the time is right, meals taken, nobody injured. Read from the row's own canonical title in the accounting v2.4 of 2026-10-31, on 2026-11-08.",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-textline \"The labourer text line (verify by text, no login)\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-both",
   "status5Word": "Needs both",
   "plainTitle": "Everyone verifies by text at the end of the day: time correct, meals, injured…",
   "outcome": "Needs both Omar and the owner: a joint word closes it — partly built so far.",
   "next": "Omar and the owner both answer; the question that lists this row sits under What's needed from Omar on the tasks page."
  },
  {
   "id": "V110",
   "canonicalId": "V110",
   "canonicalState": "blocked",
   "sourceId": "V110",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "A takeoff and estimating system built for the abatement world",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 4"
   ],
   "card": "sales-est",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-est \"Estimating knowledge, reviewed AI estimates and the Estimator seat\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "A takeoff and estimating system built for the abatement world",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V111",
   "canonicalId": "V111",
   "canonicalState": "partial",
   "sourceId": "V111",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Pick the work type — demolition or abatement; residential, commercial or industrial",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "sales-quotes",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-quotes \"Quotes, pipeline, proposals and bid items\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Pick the work type — demolition or abatement; residential, commercial or industrial",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "V112",
   "canonicalId": "V112",
   "canonicalState": "blocked",
   "sourceId": "V112",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Bring in the drawings and \"Fieldflo will start cooking for you\"",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 4"
   ],
   "card": "sales-est",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-est \"Estimating knowledge, reviewed AI estimates and the Estimator seat\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Bring in the drawings and \"Fieldflo will start cooking for you\"",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V113",
   "canonicalId": "V113",
   "canonicalState": "blocked",
   "sourceId": "V113",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "The output drops automatically into the proposal with bid items and tasks, sent to the client",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 4"
   ],
   "card": "sales-est",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-est \"Estimating knowledge, reviewed AI estimates and the Estimator seat\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "The output drops automatically into the proposal with bid items and tasks, sent to the…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V114",
   "canonicalId": "V114",
   "canonicalState": "partial",
   "sourceId": "V114",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "A dispatching system that sends each employee his own schedule",
   "state": "partial",
   "ownerClass": "Omar+the owner",
   "waitingOn": "Both",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 10"
   ],
   "card": "office-msg",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-msg \"Notifications, broadcasts and auto-send\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-both",
   "status5Word": "Needs both",
   "plainTitle": "A dispatching system that sends each employee his own schedule",
   "outcome": "Needs both Omar and the owner: a joint word closes it — partly built so far.",
   "next": "Omar and the owner both answer; the question that lists this row sits under What's needed from Omar on the tasks page."
  },
  {
   "id": "V115",
   "canonicalId": "V115",
   "canonicalState": "complete",
   "sourceId": "V115",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "The projects in the chosen time frame are listed; pick the ones you want to schedule",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-sched",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-sched \"Schedule board, Timeline and the 4-week look-ahead\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "The projects in the chosen time frame are listed; pick the ones you want to schedule",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V116",
   "canonicalId": "V116",
   "canonicalState": "partial",
   "sourceId": "V116",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Each employee gets his assignments on his cell phone",
   "state": "partial",
   "ownerClass": "Omar+the owner",
   "waitingOn": "Both",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 10"
   ],
   "card": "office-msg",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-msg \"Notifications, broadcasts and auto-send\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-both",
   "status5Word": "Needs both",
   "plainTitle": "Each employee gets his assignments on his cell phone",
   "outcome": "Needs both Omar and the owner: a joint word closes it — partly built so far.",
   "next": "Omar and the owner both answer; the question that lists this row sits under What's needed from Omar on the tasks page."
  },
  {
   "id": "V117",
   "canonicalId": "V117",
   "canonicalState": "partial",
   "sourceId": "V117",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "A Gantt chart of everything coming up, to see people coming off a project and where more work is needed",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-sched",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-sched \"Schedule board, Timeline and the 4-week look-ahead\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "A Gantt chart of everything coming up, to see people coming off a project and where more…",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "V118",
   "canonicalId": "V118",
   "canonicalState": "complete",
   "sourceId": "V118",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "A closeout report of everything done on the project",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-docs",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-docs \"Documents, photos, drawings and the closeout report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "A closeout report of everything done on the project",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V119",
   "canonicalId": "V119",
   "canonicalState": "complete",
   "sourceId": "V119",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Weekly payroll approval: everybody's total time, then per employee, per project, per cost code",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "fin-payroll",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-payroll \"Payroll approval, allocation to jobs and export\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Weekly payroll approval: everybody's total time, then per employee, per project, per…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V120",
   "canonicalId": "V120",
   "canonicalState": "complete",
   "sourceId": "V120",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Make fixes inside payroll approval",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "fin-payroll",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-payroll \"Payroll approval, allocation to jobs and export\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Make fixes inside payroll approval",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V121",
   "canonicalId": "V121",
   "canonicalState": "complete",
   "sourceId": "V121",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Dan: \"A nice spreadsheet right for your in-house accountant\" — \"in-house\" is Dan's word, not the owner's. Owner: \"We do have an accountant doing payroll.\" @8:14. Omar confirmed 2026-09-16: outside firm.",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "fin-payroll",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-payroll \"Payroll approval, allocation to jobs and export\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Dan: \"A nice spreadsheet right for your in-house accountant\" — \"in-house\" is Dan's word…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V122",
   "canonicalId": "V122",
   "canonicalState": "partial",
   "sourceId": "V122",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "An approval chain: named PMs approve their own projects, with a trailing history; the payroll administrator cannot run it until they have all signed",
   "state": "partial",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 16"
   ],
   "card": "fin-payroll",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-payroll \"Payroll approval, allocation to jobs and export\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "An approval chain: named PMs approve their own projects, with a trailing history; the…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide — partly built so far.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V124",
   "canonicalId": "V124",
   "canonicalState": "complete",
   "sourceId": "V124",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "A demo or trial login to click through before signing",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "pres-deck",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card pres-deck \"The redesigned deck, current screenshots, one-hour demo, guide and downloads\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "A demo or trial login to click through before signing",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "V125",
   "canonicalId": "V125",
   "canonicalState": "partial",
   "sourceId": "V125",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "A program his workers and managers find easy to use on site — the last ones were \"hard for our workers and our managers to use\"",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-ux",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-ux \"Navigation and everyday usability\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "A program his workers and managers find easy to use on site — the last ones were \"hard…",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "V126",
   "canonicalId": "V126",
   "canonicalState": "partial",
   "sourceId": "V126",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "One system everybody actually uses — today \"some people were using it, some people weren't, everything was out of whack\"",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-ux",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-ux \"Navigation and everyday usability\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "One system everybody actually uses — today \"some people were using it, some people…",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "V128",
   "canonicalId": "V128",
   "canonicalState": "blocked",
   "sourceId": "V128",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Connect to QuickBooks. Online.",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 1"
   ],
   "card": "fin-qbo",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-qbo \"QuickBooks Online connection, first import and The Books\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Connect to QuickBooks. Online.",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V131",
   "canonicalId": "V131",
   "canonicalState": "blocked",
   "sourceId": "V131",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Job-specific abatement forms — \"some stuff for abatements is a little more detailed and job specific\"",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 5"
   ],
   "card": "crew-contain",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-contain \"Containment log and abatement daily\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Job-specific abatement forms — \"some stuff for abatements is a little more detailed and…",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "V132",
   "canonicalId": "V132",
   "canonicalState": "partial",
   "sourceId": "V132",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "What his crews actually fill out: a timesheet, a safety meeting, some dailies (@4:26) — and, agreed again, a timesheet, a JHA, an inspection, and a daily (@25:39)",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "crew-startday",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-startday \"Start Day, timesheet head start and the daily report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "What his crews actually fill out: a timesheet, a safety meeting, some dailies —, agreed…",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "V133",
   "canonicalId": "V133",
   "canonicalState": "partial",
   "sourceId": "V133",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "80 employees doing \"meetings and time\" in it",
   "state": "partial",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-ux",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-ux \"Navigation and everyday usability\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "80 employees doing \"meetings and time\" in it",
   "outcome": "Not done: partly built on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "V136",
   "canonicalId": "V136",
   "canonicalState": "blocked",
   "sourceId": "V136",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "A link we text a man must open in the phone's plain browser — no app to install. The owner tapped Fieldflo's texts live on the call: \"I have, but when I'm clicking on them, they're not going anywhere because it I'm not connected to the... Fieldflo app\"",
   "state": "blocked",
   "ownerClass": "Omar+the owner",
   "waitingOn": "Both",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 10"
   ],
   "card": "office-textline",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-textline \"The labourer text line (verify by text, no login)\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-both",
   "status5Word": "Needs both",
   "plainTitle": "A link we text a man must open in the phone's plain browser — no app to install. The…",
   "outcome": "Needs both Omar and the owner: a joint word closes it.",
   "next": "Omar and the owner both answer; the question that lists this row sits under What's needed from Omar on the tasks page."
  },
  {
   "id": "V137",
   "canonicalId": "V137",
   "canonicalState": "blocked",
   "sourceId": "V137",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "That same link must open with no account and no login — \"kept saying that I'm not connected to the app\"",
   "state": "blocked",
   "ownerClass": "Omar+the owner",
   "waitingOn": "Both",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 10"
   ],
   "card": "office-textline",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-textline \"The labourer text line (verify by text, no login)\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-both",
   "status5Word": "Needs both",
   "plainTitle": "That same link must open with no account and no login — \"kept saying that I'm not…",
   "outcome": "Needs both Omar and the owner: a joint word closes it.",
   "next": "Omar and the owner both answer; the question that lists this row sits under What's needed from Omar on the tasks page."
  },
  {
   "id": "V138",
   "canonicalId": "V138",
   "canonicalState": "blocked",
   "sourceId": "V138",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "And it must still be valid when he taps it — \"and the link is not valid\"; asked \"Did you see the JHA?\" he answered \"No.\"",
   "state": "blocked",
   "ownerClass": "Omar+the owner",
   "waitingOn": "Both",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 10"
   ],
   "card": "office-textline",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-textline \"The labourer text line (verify by text, no login)\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-both",
   "status5Word": "Needs both",
   "plainTitle": "And it must still be valid when he taps it — \"and the link is not valid\"; asked \"Did you…",
   "outcome": "Needs both Omar and the owner: a joint word closes it.",
   "next": "Omar and the owner both answer; the question that lists this row sits under What's needed from Omar on the tasks page."
  },
  {
   "id": "V139",
   "canonicalId": "V139",
   "canonicalState": "open",
   "sourceId": "V139",
   "section": "tracker:walkthrough",
   "idSpace": "master-list walkthrough (profile/Master_List_2026-09-16.md Part 2)",
   "title": "Ten project-manager seats — \"we'd have 10 project managers on there\"",
   "state": "review",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-roles",
   "coveredBy": {
    "gl": "GL-013",
    "extent": "covered",
    "source": "GO_LIVE.md row GL-013 (profile/Master_List_2026-09-16.md; written 2026-09-26): \"Built 2026-09-27 (gl-wave5-admin), live v30-admin 2026-10-03\" (hive/checks/2026-09-27_gl-wave5-admin.md, criteria 13–22 and 28); state review in the canonical accounting v2.4 (2026-10-31)",
    "uncovered": null,
    "why": "the V row asks for ten project-manager seats; GL-013 is the project-manager role and the ten-seat roster",
    "glState": "review",
    "glTitle": "Ten project-manager seats — a project-manager role between Owner and Site lead: his own jobs, his own crews, budget but not company profit; turns Team & Acce…",
    "gradeFile": "hive/checks/2026-09-27_gl-wave5-admin.md",
    "accepted": false
   },
   "coveredFromState": "open",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-roles \"Logins, roles and who sees what (device-enforced)\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Ten project-manager seats — \"we'd have 10 project managers on there\"",
   "outcome": "Completed on demo data: a later go-live row built this and reported it finished; the older wording of this row is kept in its details.",
   "next": "Nothing left to build here: the later row that built it carries the report and its review record."
  },
  {
   "id": "P1",
   "canonicalId": "P1",
   "canonicalState": "complete",
   "sourceId": "P1",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Sign in to your dashboard",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-roles",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-roles \"Logins, roles and who sees what (device-enforced)\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Sign in to your dashboard",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "P3",
   "canonicalId": "P3",
   "canonicalState": "complete",
   "sourceId": "P3",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Pipeline — Sales Pipeline",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "sales-quotes",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-quotes \"Quotes, pipeline, proposals and bid items\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Pipeline — Sales Pipeline",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "P4",
   "canonicalId": "P4",
   "canonicalState": "complete",
   "sourceId": "P4",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Proposals",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "sales-quotes",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-quotes \"Quotes, pipeline, proposals and bid items\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Proposals",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "P5",
   "canonicalId": "P5",
   "canonicalState": "complete",
   "sourceId": "P5",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Jobs & P&L",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "fin-cost",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cost \"Job costing, budgets, cost codes and P&L\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Jobs & P&L",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "P7",
   "canonicalId": "P7",
   "canonicalState": "complete",
   "sourceId": "P7",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Schedule Board",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-sched",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-sched \"Schedule board, Timeline and the 4-week look-ahead\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Schedule Board",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "P8",
   "canonicalId": "P8",
   "canonicalState": "complete",
   "sourceId": "P8",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Timeline",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-sched",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-sched \"Schedule board, Timeline and the 4-week look-ahead\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Timeline",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "P9",
   "canonicalId": "P9",
   "canonicalState": "complete",
   "sourceId": "P9",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Collections — Collections & AR",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "fin-money",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-money \"Money overview, collections, receivables and holdbacks\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Collections — Collections & AR",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "P10",
   "canonicalId": "P10",
   "canonicalState": "complete",
   "sourceId": "P10",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Payroll — Payroll Approval",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "fin-payroll",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-payroll \"Payroll approval, allocation to jobs and export\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Payroll — Payroll Approval",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "P11",
   "canonicalId": "P11",
   "canonicalState": "partial",
   "sourceId": "P11",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "QuickBooks — QuickBooks Online",
   "state": "partial",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 1"
   ],
   "card": "fin-qbo",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-qbo \"QuickBooks Online connection, first import and The Books\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "QuickBooks — QuickBooks Online",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide — partly built so far.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "P12",
   "canonicalId": "P12",
   "canonicalState": "complete",
   "sourceId": "P12",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Team & Access",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-roles",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-roles \"Logins, roles and who sees what (device-enforced)\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Team & Access",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "P14",
   "canonicalId": "P14",
   "canonicalState": "complete",
   "sourceId": "P14",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Safety — Safety & Incidents",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "safe-inc",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-inc \"Incidents, inspections, corrective actions and OHS reports\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Safety — Safety & Incidents",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "P16",
   "canonicalId": "P16",
   "canonicalState": "complete",
   "sourceId": "P16",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Inventory",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "gear-ware",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-ware \"Warehouse, loadouts, inventory and materials\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Inventory",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "P22",
   "canonicalId": "P22",
   "canonicalState": "complete",
   "sourceId": "P22",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Dashboard — Estimating Overview",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-dash",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-dash \"Dashboard, stat tiles and the job-site map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Dashboard — Estimating Overview",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "P23",
   "canonicalId": "P23",
   "canonicalState": "complete",
   "sourceId": "P23",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "My Quotes",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "sales-quotes",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-quotes \"Quotes, pipeline, proposals and bid items\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "My Quotes",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "P24",
   "canonicalId": "P24",
   "canonicalState": "complete",
   "sourceId": "P24",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Win Rate — My Win Rate",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "sales-quotes",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-quotes \"Quotes, pipeline, proposals and bid items\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Win Rate — My Win Rate",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "P25",
   "canonicalId": "P25",
   "canonicalState": "complete",
   "sourceId": "P25",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Proposals",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "sales-quotes",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-quotes \"Quotes, pipeline, proposals and bid items\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Proposals",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "P27",
   "canonicalId": "P27",
   "canonicalState": "complete",
   "sourceId": "P27",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Dashboard — My Overview",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-dash",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-dash \"Dashboard, stat tiles and the job-site map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Dashboard — My Overview",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "P28",
   "canonicalId": "P28",
   "canonicalState": "complete",
   "sourceId": "P28",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Start Day",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "crew-startday",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-startday \"Start Day, timesheet head start and the daily report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Start Day",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "P29",
   "canonicalId": "P29",
   "canonicalState": "complete",
   "sourceId": "P29",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "My Jobs",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-projbook",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-projbook \"Project Book and job setup\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "My Jobs",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "P30",
   "canonicalId": "P30",
   "canonicalState": "complete",
   "sourceId": "P30",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Schedule — My Schedule",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-sched",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-sched \"Schedule board, Timeline and the 4-week look-ahead\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Schedule — My Schedule",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "P31",
   "canonicalId": "P31",
   "canonicalState": "complete",
   "sourceId": "P31",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Crew Board",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-sched",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-sched \"Schedule board, Timeline and the 4-week look-ahead\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Crew Board",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "P32",
   "canonicalId": "P32",
   "canonicalState": "complete",
   "sourceId": "P32",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Timeline",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-sched",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-sched \"Schedule board, Timeline and the 4-week look-ahead\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Timeline",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "P34",
   "canonicalId": "P34",
   "canonicalState": "complete",
   "sourceId": "P34",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Safety — Safety & Incidents",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "safe-inc",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-inc \"Incidents, inspections, corrective actions and OHS reports\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Safety — Safety & Incidents",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "P36",
   "canonicalId": "P36",
   "canonicalState": "complete",
   "sourceId": "P36",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Materials",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "gear-ware",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-ware \"Warehouse, loadouts, inventory and materials\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Materials",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "P37",
   "canonicalId": "P37",
   "canonicalState": "complete",
   "sourceId": "P37",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Today",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "crew-startday",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-startday \"Start Day, timesheet head start and the daily report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Today",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "P38",
   "canonicalId": "P38",
   "canonicalState": "complete",
   "sourceId": "P38",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "End of Day",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "crew-time",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-time \"Time, breaks, per diem, signatures and end of day\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "End of Day",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "P39",
   "canonicalId": "P39",
   "canonicalState": "complete",
   "sourceId": "P39",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "My Schedule",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-sched",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-sched \"Schedule board, Timeline and the 4-week look-ahead\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "My Schedule",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "P42",
   "canonicalId": "P42",
   "canonicalState": "complete",
   "sourceId": "P42",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Read-only equipment check",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "A57",
     "title": "Scan the QR → page 42",
     "state": "complete",
     "cancelledNote": null
    }
   ],
   "flags": [
    "complete-reported-only",
    "merged-v2.4"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "gear-qr",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-qr \"QR setup: hats and assets\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Read-only equipment check",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A1",
   "canonicalId": "A1",
   "canonicalState": "complete",
   "sourceId": "A1",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Click a role card → fills that role's username and password",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-roles",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-roles \"Logins, roles and who sees what (device-enforced)\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Click a role card → fills that role's username and password",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A2",
   "canonicalId": "A2",
   "canonicalState": "complete",
   "sourceId": "A2",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Install app → a sheet with the app icon, an Install app button, and per-platform steps for iPhone, Android and desktop; hides itself once installed",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "plat-install",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-install \"Install on phones and desktop, offline, updates and rollback\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Install app → a sheet with the app icon, an Install app button, and per-platform steps…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A3",
   "canonicalId": "A3",
   "canonicalState": "complete",
   "sourceId": "A3",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Search box — mirrors what you type into the current page's table filter; goes grey and disabled on a page with no table",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-ux",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-ux \"Navigation and everyday usability\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Search box — mirrors what you type into the current page's table filter; goes grey and…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A4",
   "canonicalId": "A4",
   "canonicalState": "complete",
   "sourceId": "A4",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Notifications bell → a popup with Mark all read; carries counts and dates only, never a dollar figure",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "A4-rest"
   ],
   "card": "office-msg",
   "coveredBy": {
    "gl": "A4",
    "extent": "partly",
    "source": "profile/Master_List_2026-09-16.md:156 (A4): \"Built — rebuilt 2026-09-20 for the owner and the site lead … The bookkeeper, estimator and crew logins still get the three hard-coded mock lines\"; no grade file names A4 in the canonical accounting v2.4 (2026-10-31)",
    "uncovered": "the bookkeeper, estimator and crew logins still get three fixed sample lines in the bell",
    "why": "the bundled Completed covers the live bell for the owner and the site lead; the other three logins' bell is not in it",
    "glState": "complete",
    "glTitle": "Notifications bell → a popup with Mark all read; carries counts and dates only, never a dollar figure",
    "gradeFile": null,
    "accepted": false
   },
   "completedPortion": "the bell for the owner and the site lead: popup, unread count, Mark all read",
   "remainderId": "A4-rest",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-msg \"Notifications, broadcasts and auto-send\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Notifications bell → a popup with Mark all read; carries counts and dates only, never a…",
   "outcome": "Completed on demo data: the bell for the owner and the site lead: popup, unread count, Mark all read; the rest is its own row.",
   "next": "Nothing further here: the rest sits on its own row, A4-rest."
  },
  {
   "id": "A5",
   "canonicalId": "A5",
   "canonicalState": "complete",
   "sourceId": "A5",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Sign out",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-roles",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-roles \"Logins, roles and who sees what (device-enforced)\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Sign out",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A6",
   "canonicalId": "A6",
   "canonicalState": "complete",
   "sourceId": "A6",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Open / close a nav group (accordion); a group with one tab acts as that tab",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-ux",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-ux \"Navigation and everyday usability\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Open / close a nav group (accordion); a group with one tab acts as that tab",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A7",
   "canonicalId": "A7",
   "canonicalState": "complete",
   "sourceId": "A7",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "The sub-tab row on a phone (the bottom bar only has room for the 7 groups)",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-ux",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-ux \"Navigation and everyday usability\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "The sub-tab row on a phone (the bottom bar only has room for the 7 groups)",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A8",
   "canonicalId": "A8",
   "canonicalState": "complete",
   "sourceId": "A8",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Live search + per-column dropdown filters, a live row count, and a \"No matching rows\" message; options are derived from the table's own cells",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-ux",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-ux \"Navigation and everyday usability\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Live search + per-column dropdown filters, a live row count, and a \"No matching rows\"…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A9",
   "canonicalId": "A9",
   "canonicalState": "complete",
   "sourceId": "A9",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Period dropdown — re-buckets the same rows over a different trailing window and redraws the chart and the stat strip live",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-ux",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-ux \"Navigation and everyday usability\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Period dropdown — re-buckets the same rows over a different trailing window and redraws…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A10",
   "canonicalId": "A10",
   "canonicalState": "complete",
   "sourceId": "A10",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Hover or drag for a date + value tooltip, on mouse and on touch",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-ux",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-ux \"Navigation and everyday usability\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Hover or drag for a date + value tooltip, on mouse and on touch",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A11",
   "canonicalId": "A11",
   "canonicalState": "complete",
   "sourceId": "A11",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Rows become label:value cards automatically",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-ux",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-ux \"Navigation and everyday usability\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Rows become label:value cards automatically",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A13",
   "canonicalId": "A13",
   "canonicalState": "complete",
   "sourceId": "A13",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Reset all switches back to the role defaults",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-roles",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-roles \"Logins, roles and who sees what (device-enforced)\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Reset all switches back to the role defaults",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A14",
   "canonicalId": "A14",
   "canonicalState": "complete",
   "sourceId": "A14",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Add member form → a working login saved on the device",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-roles",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-roles \"Logins, roles and who sees what (device-enforced)\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Add member form → a working login saved on the device",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A15",
   "canonicalId": "A15",
   "canonicalState": "complete",
   "sourceId": "A15",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Edit team member modal (name, role, password; email locked)",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-roles",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-roles \"Logins, roles and who sees what (device-enforced)\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Edit team member modal (name, role, password; email locked)",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A16",
   "canonicalId": "A16",
   "canonicalState": "complete",
   "sourceId": "A16",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Remove a member — their login stops working",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-roles",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-roles \"Logins, roles and who sees what (device-enforced)\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Remove a member — their login stops working",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A17",
   "canonicalId": "A17",
   "canonicalState": "complete",
   "sourceId": "A17",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Put a man on a crew → allowed, or Blocked with every missing ticket named and why (\"never filed\" or \"expired\")",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "safe-tickets",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-tickets \"Tickets and certificates\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Put a man on a crew → allowed, or Blocked with every missing ticket named and why…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A18",
   "canonicalId": "A18",
   "canonicalState": "complete",
   "sourceId": "A18",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Show archive / Hide archive toggle",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "safe-tickets",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-tickets \"Tickets and certificates\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Show archive / Hide archive toggle",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A21",
   "canonicalId": "A21",
   "canonicalState": "complete",
   "sourceId": "A21",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Job switcher — a dropdown of every job this login may see, ◀ / ▶ arrows, and an \"n / N\" counter; jumping re-projects, so it can never reach a job or a field the role is not allowed",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-ux",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-ux \"Navigation and everyday usability\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Job switcher — a dropdown of every job this login may see, ◀ / ▶ arrows, and an \"n / N\"…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A22",
   "canonicalId": "A22",
   "canonicalState": "complete",
   "sourceId": "A22",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Project book section — scope, permits table with expiry pills, the tickets this job needs on top of its crew's, crew readiness (click a man for his file), waste and hauling",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-projbook",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-projbook \"Project Book and job setup\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Project book section — scope, permits table with expiry pills, the tickets this job…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A23",
   "canonicalId": "A23",
   "canonicalState": "complete",
   "sourceId": "A23",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Job book tabs — Cost codes · Change orders · Photos · Documents · Closeout",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-projbook",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-projbook \"Project Book and job setup\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Job book tabs — Cost codes · Change orders · Photos · Documents · Closeout",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A25",
   "canonicalId": "A25",
   "canonicalState": "complete",
   "sourceId": "A25",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "New change order (what changed, fixed price or T&M, amount) → Save as draft",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-tm",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-tm \"T&M tickets and change orders\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "New change order (what changed, fixed price or T&M, amount) → Save as draft",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A26",
   "canonicalId": "A26",
   "canonicalState": "complete",
   "sourceId": "A26",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Mark sent to customer · Approve · Decline · Back to draft. Approving raises the revised contract on the owner's view. The code says it plainly: \"Sent to customer is a status, not a send\"",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-tm",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-tm \"T&M tickets and change orders\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Mark sent to customer · Approve · Decline · Back to draft. Approving raises the revised…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A27",
   "canonicalId": "A27",
   "canonicalState": "complete",
   "sourceId": "A27",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "T&M day form — date, men, hours each, materials at cost (owner only), materials used, equipment, note → Save day; rolls into the order's man-hours and, for the owner, its value",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-tm",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-tm \"T&M tickets and change orders\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "T&M day form — date, men, hours each, materials at cost (owner only), materials used…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A32",
   "canonicalId": "A32",
   "canonicalState": "complete",
   "sourceId": "A32",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Print / Save as PDF (the browser's own) · ← Back to job",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-docs",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-docs \"Documents, photos, drawings and the closeout report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Print / Save as PDF (the browser's own) · ← Back to job",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A33",
   "canonicalId": "A33",
   "canonicalState": "complete",
   "sourceId": "A33",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Open a proposal → Print / Save as PDF; banded DRAFT PROPOSAL — DEMO DATA",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "sales-quotes",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card sales-quotes \"Quotes, pipeline, proposals and bid items\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Open a proposal → Print / Save as PDF; banded DRAFT PROPOSAL — DEMO DATA",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A34",
   "canonicalId": "A34",
   "canonicalState": "complete",
   "sourceId": "A34",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Click a cell → pick a site or \"No work / off\" → Save",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-sched",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-sched \"Schedule board, Timeline and the 4-week look-ahead\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Click a cell → pick a site or \"No work / off\" → Save",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A35",
   "canonicalId": "A35",
   "canonicalState": "complete",
   "sourceId": "A35",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Drag a day to another day or crew; swap when the target is occupied; tap-and-hold on a phone",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-sched",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-sched \"Schedule board, Timeline and the 4-week look-ahead\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Drag a day to another day or crew; swap when the target is occupied; tap-and-hold on a…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A36",
   "canonicalId": "A36",
   "canonicalState": "complete",
   "sourceId": "A36",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "A drag that would break a ticket requirement is refused, and a modal shows the same block the crew page shows, one panel per man",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-sched",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-sched \"Schedule board, Timeline and the 4-week look-ahead\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "A drag that would break a ticket requirement is refused, and a modal shows the same…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A37",
   "canonicalId": "A37",
   "canonicalState": "complete",
   "sourceId": "A37",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "← Previous week · This week · Next week →",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-sched",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-sched \"Schedule board, Timeline and the 4-week look-ahead\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "← Previous week · This week · Next week →",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A38",
   "canonicalId": "A38",
   "canonicalState": "complete",
   "sourceId": "A38",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Text the week to the crew (in-app demo) — shows every man's message, sends nothing",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "office-msg",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-msg \"Notifications, broadcasts and auto-send\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Text the week to the crew (in-app demo) — shows every man's message, sends nothing",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A39",
   "canonicalId": "A39",
   "canonicalState": "complete",
   "sourceId": "A39",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Start Day — one button that opens the timesheet, the safety talk and the notes",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "crew-startday",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-startday \"Start Day, timesheet head start and the daily report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Start Day — one button that opens the timesheet, the safety talk and the notes",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A40",
   "canonicalId": "A40",
   "canonicalState": "complete",
   "sourceId": "A40",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Change a man's hours (saved as you type, clamped 0–16)",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "crew-time",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-time \"Time, breaks, per diem, signatures and end of day\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Change a man's hours (saved as you type, clamped 0–16)",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A41",
   "canonicalId": "A41",
   "canonicalState": "complete",
   "sourceId": "A41",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Safety-talk checklist — pick the topic from 6, tick all 6 items, Talk done — crew briefed (disabled until every item is ticked)",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "crew-jha",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-jha \"JHA / pre-job safety talk, acknowledgements and weather\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Safety-talk checklist — pick the topic from 6, tick all 6 items, Talk done — crew…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A42",
   "canonicalId": "A42",
   "canonicalState": "complete",
   "sourceId": "A42",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Talk — browser speech-to-text in 6 languages, interim results into the box, then Add note",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "crew-lang",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-lang \"Languages and dictation\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Talk — browser speech-to-text in 6 languages, interim results into the box, then Add note",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A43",
   "canonicalId": "A43",
   "canonicalState": "complete",
   "sourceId": "A43",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Send end-of-day check to the crew (in-app) — disabled until the talk is closed",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "office-msg",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-msg \"Notifications, broadcasts and auto-send\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Send end-of-day check to the crew (in-app) — disabled until the talk is closed",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A44",
   "canonicalId": "A44",
   "canonicalState": "complete",
   "sourceId": "A44",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Reset today's daily (demo)",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "crew-startday",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-startday \"Start Day, timesheet head start and the daily report\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Reset today's daily (demo)",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A45",
   "canonicalId": "A45",
   "canonicalState": "complete",
   "sourceId": "A45",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Yes, I attended / No, I did not + My hours are wrong",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "crew-time",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card crew-time \"Time, breaks, per diem, signatures and end of day\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Yes, I attended / No, I did not + My hours are wrong",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A46",
   "canonicalId": "A46",
   "canonicalState": "complete",
   "sourceId": "A46",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "File it — report an incident, with an optional corrective action, owner and due date",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "safe-inc",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-inc \"Incidents, inspections, corrective actions and OHS reports\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "File it — report an incident, with an optional corrective action, owner and due date",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A47",
   "canonicalId": "A47",
   "canonicalState": "complete",
   "sourceId": "A47",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Log it — log an inspection (site, kind, pass or deficiencies, notes)",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "safe-inc",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-inc \"Incidents, inspections, corrective actions and OHS reports\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Log it — log an inspection (site, kind, pass or deficiencies, notes)",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A48",
   "canonicalId": "A48",
   "canonicalState": "complete",
   "sourceId": "A48",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Close / Reopen a corrective action; it stays on file either way",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "safe-inc",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-inc \"Incidents, inspections, corrective actions and OHS reports\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Close / Reopen a corrective action; it stays on file either way",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A49",
   "canonicalId": "A49",
   "canonicalState": "complete",
   "sourceId": "A49",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Open an asset → its record and its QR code → See the scan page",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "gear-qr",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card gear-qr \"QR setup: hats and assets\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Open an asset → its record and its QR code → See the scan page",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A50",
   "canonicalId": "A50",
   "canonicalState": "complete",
   "sourceId": "A50",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Export CSV — a file headed \"DEMO DATA\"; the owner's carries rates and pay, the bookkeeper's carries hours only",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "fin-payroll",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-payroll \"Payroll approval, allocation to jobs and export\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Export CSV — a file headed \"DEMO DATA\"; the owner's carries rates and pay, the…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A51",
   "canonicalId": "A51",
   "canonicalState": "complete",
   "sourceId": "A51",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Approve this week — records who and when, then shows the stamp instead of the button",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "fin-payroll",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-payroll \"Payroll approval, allocation to jobs and export\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Approve this week — records who and when, then shows the stamp instead of the button",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A52",
   "canonicalId": "A52",
   "canonicalState": "complete",
   "sourceId": "A52",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "← Previous week · This week · Next week →",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "fin-payroll",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-payroll \"Payroll approval, allocation to jobs and export\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "← Previous week · This week · Next week →",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A53",
   "canonicalId": "A53",
   "canonicalState": "blocked",
   "sourceId": "A53",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Connect QuickBooks Online — explains what it needs; connects nothing",
   "state": "blocked",
   "ownerClass": "The owner-then-AI",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "The owner 1"
   ],
   "card": "fin-qbo",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-qbo \"QuickBooks Online connection, first import and The Books\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Connect QuickBooks Online — explains what it needs; connects nothing",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "A54",
   "canonicalId": "A54",
   "canonicalState": "complete",
   "sourceId": "A54",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Click a status chip to hide or show those pins; the count updates",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-dash",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-dash \"Dashboard, stat tiles and the job-site map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Click a status chip to hide or show those pins; the count updates",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A55",
   "canonicalId": "A55",
   "canonicalState": "complete",
   "sourceId": "A55",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Click a pin to open that job. The Crew map is deliberately drill-free",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "mgmt-dash",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card mgmt-dash \"Dashboard, stat tiles and the job-site map\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Click a pin to open that job. The Crew map is deliberately drill-free",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A58",
   "canonicalId": "A58",
   "canonicalState": "complete",
   "sourceId": "A58",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "The DEMO band under the header — it cannot scroll away or be dismissed, and render() never wipes it",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "fin-cutover",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cutover \"Data migration and the real-data cut-over\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "The DEMO band under the header — it cannot scroll away or be dismissed, and render never…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A59",
   "canonicalId": "A59",
   "canonicalState": "complete",
   "sourceId": "A59",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Install as an app (PWA) — full screen, works offline, updates itself; a service worker reloads once when a new build takes over",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "plat-install",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-install \"Install on phones and desktop, offline, updates and rollback\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Install as an app (PWA) — full screen, works offline, updates itself; a service worker…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "A60",
   "canonicalId": "A60",
   "canonicalState": "open",
   "sourceId": "A60",
   "section": "tracker:app",
   "idSpace": "master-list app pages/actions (Part 1)",
   "title": "Ask it a number by text, get the answer off the data",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "malformed-title"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "office-seats",
   "canonicalTitle": "lost] [by <estimator>], crew <A\\",
   "titleSource": "profile/Master_List_2026-09-16.md line 219 — the A60 row, whose table cell escapes its pipes as \\|; the title is that row's own cell, read on 2026-11-07 (the canonical accounting v2.4 of 2026-10-31 carried the cell split at every pipe and flagged it malformed-title)",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-seats \"The helper agents and their schedules\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Ask it a number by text, get the answer off the data",
   "outcome": "Not done: not started on demo data.",
   "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
  },
  {
   "id": "H1",
   "canonicalId": "H1",
   "canonicalState": "complete",
   "sourceId": "H1",
   "section": "tracker:agents",
   "idSpace": "BUILD_PLAN §3 helper agents",
   "title": "The Assistant — Exact answers from the business data, texted in plain English",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "complete-reported-only"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "office-seats",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-seats \"The helper agents and their schedules\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "The Assistant — Exact answers from the business data, texted in plain English",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "H2",
   "canonicalId": "H2",
   "canonicalState": "complete",
   "sourceId": "H2",
   "section": "tracker:agents",
   "idSpace": "BUILD_PLAN §3 helper agents",
   "title": "The Collector — Nightly: finished-not-invoiced, overdue by age, holdbacks; drafts invoices, never sends",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "A61",
     "title": "Nightly: what is not invoiced, what is overdue by age, holdbacks. Writes invoice drafts to outbox/invoices/ under a DRAFT header. The owner sends invoices, not the app",
     "state": "complete",
     "cancelledNote": null
    }
   ],
   "flags": [
    "complete-reported-only",
    "merged-v2.4"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "office-seats",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-seats \"The helper agents and their schedules\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "The Collector — Nightly: finished-not-invoiced, overdue by age, holdbacks; drafts…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "H3",
   "canonicalId": "H3",
   "canonicalState": "complete",
   "sourceId": "H3",
   "section": "tracker:agents",
   "idSpace": "BUILD_PLAN §3 helper agents",
   "title": "The Foreman's Voice — A foreman's voice note becomes a filed daily report",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "A62",
     "title": "Turns a foreman's end-of-day words (typed or transcribed) into a filed daily and a 5-line confirmation",
     "state": "complete",
     "cancelledNote": null
    }
   ],
   "flags": [
    "complete-reported-only",
    "merged-v2.4"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "office-seats",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-seats \"The helper agents and their schedules\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "The Foreman's Voice — A foreman's voice note becomes a filed daily report",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "H4",
   "canonicalId": "H4",
   "canonicalState": "complete",
   "sourceId": "H4",
   "section": "tracker:agents",
   "idSpace": "BUILD_PLAN §3 helper agents",
   "title": "The Ticket Keeper — Expiring tickets, who is un-bookable, hard-hat codes — and, since the merge, the OHS and asbestos paperwork tied to the right site",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [
    {
     "id": "A63",
     "title": "Weekly: expiring tickets, expiries, and who cannot be booked on a crew",
     "state": "complete",
     "cancelledNote": null
    }
   ],
   "flags": [
    "complete-reported-only",
    "merged-v2.4"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "H4-rest"
   ],
   "card": "office-seats",
   "coveredBy": {
    "gl": "H4",
    "extent": "partly",
    "source": "BUILD_PLAN.md §3 row 4 (The Ticket Keeper): \"Built; scheduled 2026-10-03, job e7259a56, Monday 5 a.m. Calgary. Safety half not started\"; no grade file names H4 in the canonical accounting v2.4 (2026-10-31)",
    "uncovered": "the safety half — the OHS and asbestos paperwork tied to the right site — is not started",
    "why": "the bundled Completed covers the ticket keeper — expiring tickets, who is un-bookable, hard-hat codes — and not the safety half",
    "glState": "complete",
    "glTitle": "The Ticket Keeper — Expiring tickets, who is un-bookable, hard-hat codes — and, since the merge, the OHS and asbestos paperwork tied to the right site",
    "gradeFile": null,
    "accepted": false
   },
   "completedPortion": "the weekly tickets half: expiring tickets, who cannot be booked, hard-hat codes",
   "remainderId": "H4-rest",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-seats \"The helper agents and their schedules\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "The Ticket Keeper — Expiring tickets, who is un-bookable, hard-hat codes —, since the…",
   "outcome": "Completed on demo data: the weekly tickets half: expiring tickets, who cannot be booked, hard-hat codes; the rest is its own row.",
   "next": "Nothing further here: the rest sits on its own row, H4-rest."
  },
  {
   "id": "H7",
   "canonicalId": "H7",
   "canonicalState": "complete",
   "sourceId": "H7",
   "section": "tracker:agents",
   "idSpace": "BUILD_PLAN §3 helper agents",
   "title": "The Eye — Black + gold, the 7-tab nav, phone layout, the deck. Shoots the live URL, looks at the pixels, judges before a human has to",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": {
    "version": "v2.3",
    "state": "blocked",
    "waitingOn": "The owner"
   },
   "aliases": [],
   "flags": [
    "state-corrected-v2.4"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "office-seats",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-seats \"The helper agents and their schedules\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "The Eye — Black + gold, the 7-tab nav, phone layout, the deck. Shoots the live URL…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "H8",
   "canonicalId": "H8",
   "canonicalState": "complete",
   "sourceId": "H8",
   "section": "tracker:agents",
   "idSpace": "BUILD_PLAN §3 helper agents",
   "title": "The Checker — Writes the success criteria before the worker starts, grades the finished work against them, sends a fail back to the same worker, cap 5 rounds (§8)",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": {
    "version": "v2.3",
    "state": "blocked",
    "waitingOn": "The owner"
   },
   "aliases": [],
   "flags": [
    "state-corrected-v2.4"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "office-seats",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-seats \"The helper agents and their schedules\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "the hive — Writes the success criteria before the worker starts, grades the finished…",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "H9",
   "canonicalId": "H9",
   "canonicalState": "complete",
   "sourceId": "H9",
   "section": "tracker:agents",
   "idSpace": "BUILD_PLAN §3 helper agents",
   "title": "The Builder — A standing seat that owns portal/ — app-ops.js, roles.js, sw.js, the gating assertions, node outbox/publish.cjs",
   "state": "complete",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": {
    "version": "v2.3",
    "state": "blocked",
    "waitingOn": "The owner"
   },
   "aliases": [],
   "flags": [
    "state-corrected-v2.4"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "office-seats",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-seats \"The helper agents and their schedules\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "the hive — A standing seat that owns portal/ — the gating assertions, node outbox/",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "O1",
   "canonicalId": "O1",
   "canonicalState": "complete",
   "sourceId": "O1",
   "section": "tracker:decision",
   "idSpace": "Omar's decisions (tracker O-rows)",
   "title": "Put the latest app build on the portal link",
   "state": "complete",
   "ownerClass": "Omar",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "reported",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": {
    "version": "v2.3",
    "state": "partial",
    "waitingOn": "Omar"
   },
   "aliases": [],
   "flags": [
    "live-vs-disk",
    "state-corrected-v2.4"
   ],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "plat-home",
   "canonicalWaitingOn": "none",
   "decidedAs": "O1",
   "decisionKey": "publish",
   "decidedAt": "2026-09-21",
   "decisionWords": "publish it right away · if it passed the checks it's good",
   "decisionSource": "vault/topics/decisions/publish it right away.md (2026-09-21); vault/topics/decisions/if it passed the checks it's good.md (2026-09-27); the standing conditional release, Omar 2026-11-07 06:07Z Telegram 2114; main CHECKER ORDER 2026-11-07T06:52Z carrying Omar 06:48Z Telegram 2118 (hive/EXECUTION_LOG.md)",
   "decisionEffect": "gated publishing is a standing permission, not an open choice; O1 is complete on the live read",
   "decisionKind": "decision",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card plat-home \"Home, tasks page, tracker and the hive board\" on finish line 1",
   "necessityWord": "Needed for the demo",
   "status5": "completed",
   "status5Word": "Completed",
   "plainTitle": "Put the latest app build on the portal link",
   "outcome": "Completed on demo data: built and finished, recorded finished in the task accounting of 31 October 2026.",
   "next": "Nothing further to build here; the final review on evidence is still to come."
  },
  {
   "id": "The owner 2",
   "canonicalId": "The owner 2",
   "canonicalState": "open",
   "sourceId": "The owner 2",
   "section": "tracker:owner",
   "idSpace": "The owner's asks (tracker)",
   "title": "Crew list: names, mobiles, tickets and expiry dates",
   "state": "open",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [],
   "card": "fin-cutover",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cutover \"Data migration and the real-data cut-over\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Crew list: names, mobiles, tickets and expiry dates",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide — not started so far.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "The owner 5",
   "canonicalId": "The owner 5",
   "canonicalState": "open",
   "sourceId": "The owner 5",
   "section": "tracker:owner",
   "idSpace": "The owner's asks (tracker)",
   "title": "Your forms: containment log, waste manifest, adjuster sheet",
   "state": "open",
   "ownerClass": "The owner",
   "waitingOn": "The owner",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": false,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [],
   "sourceDates": [
    {
     "file": "outbox/homebase_makki/tasks.json",
     "date": "2026-10-23T23:09:04.124Z"
    },
    {
     "file": "live snapshot of live_tasks.json (a build-box temp copy at the time)",
     "date": "2026-10-04T06:46:40.254Z"
    }
   ],
   "related": [
    "V104",
    "V106",
    "V131"
   ],
   "card": "fin-cutover",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessitySource": "plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card fin-cutover \"Data migration and the real-data cut-over\" on finish line 2",
   "necessityWord": "Needed for launch",
   "status5": "needs-ali",
   "status5Word": "Needs Ali",
   "plainTitle": "Your forms: containment log, waste manifest, adjuster sheet",
   "outcome": "Needs Ali: it waits on something only the owner can send or decide — not started so far.",
   "next": "The owner sends it or decides; there is nothing to build until then."
  },
  {
   "id": "A4-rest",
   "canonicalId": "A4-rest",
   "canonicalState": "open",
   "sourceId": "A4-rest",
   "section": "tracker:app",
   "idSpace": "split-remainder",
   "title": "Notifications bell for the bookkeeper, estimator and crew logins: live items instead of three fixed sample lines",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "split-remainder"
   ],
   "sourceDates": [
    {
     "file": "outbox/tasks_corrections.json",
     "date": "2026-11-08T00:00:00.000Z"
    }
   ],
   "related": [
    "A4"
   ],
   "card": "office-msg",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-launch",
   "necessityWord": "Needed for launch",
   "necessitySource": "the remainder of A4, which carries this row's tag: plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-msg \"Notifications, broadcasts and auto-send\" on finish line 2",
   "necessityVia": "the parent row A4's tag",
   "splitFrom": "A4",
   "remainderOf": "A4",
   "addedRow": {
    "parent": "A4",
    "reason": "split from A4 on 8 November 2026: the canonical row carries the part that was built and reported finished, so the unfinished part is represented once, on its own row, with its own status word",
    "source": "the correction of 8 November 2026 (tasks-correction-2 v2.0.0), reading the parent row's own completion report in the canonical accounting v2.4 of 2026-10-31 and the task-page row that already recorded the split",
    "at": "2026-11-08T00:00:00.000Z"
   },
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Notifications bell for the bookkeeper, estimator and crew logins: live items instead of…",
   "outcome": "Not done: the unfinished half of A4 — the bookkeeper, estimator and crew bells still show three fixed sample lines; split out on 8 November 2026.",
   "next": "Next: the hive builds it on demo data; it is the remainder of A4 and waits on nobody.",
   "readingWas": {
    "outcome": "Not done: not started on demo data.",
    "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
   }
  },
  {
   "id": "V69-rest",
   "canonicalId": "V69-rest",
   "canonicalState": "open",
   "sourceId": "V69-rest",
   "section": "tracker:walkthrough",
   "idSpace": "split-remainder",
   "title": "Mandatory trainings, not only tickets, checked when scheduling and on the timesheet",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "split-remainder"
   ],
   "sourceDates": [
    {
     "file": "outbox/tasks_corrections.json",
     "date": "2026-11-08T00:00:00.000Z"
    }
   ],
   "related": [
    "V69"
   ],
   "card": "safe-tickets",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessityWord": "Needed for the demo",
   "necessitySource": "the remainder of V69, which carries this row's tag: plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card safe-tickets \"Tickets and certificates\" on finish line 1",
   "necessityVia": "the parent row V69's tag",
   "splitFrom": "V69",
   "remainderOf": "V69",
   "addedRow": {
    "parent": "V69",
    "reason": "split from V69 on 8 November 2026: the tickets half is built and reported finished on the canonical row, and the missing training coverage is this row",
    "source": "the correction of 8 November 2026 (tasks-correction-2 v2.0.0), reading the parent row's own completion report in the canonical accounting v2.4 of 2026-10-31 and the task-page row that already recorded the split",
    "at": "2026-11-08T00:00:00.000Z"
   },
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "Mandatory trainings, not only tickets, checked when scheduling and on the timesheet",
   "outcome": "Not done: the unfinished half of V69 — trainings are not covered, only tickets; split out on 8 November 2026.",
   "next": "Next: the hive builds it on demo data; it is the remainder of V69 and waits on nobody.",
   "readingWas": {
    "outcome": "Not done: not started on demo data.",
    "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
   }
  },
  {
   "id": "H4-rest",
   "canonicalId": "H4-rest",
   "canonicalState": "open",
   "sourceId": "H4-rest",
   "section": "tracker:agents",
   "idSpace": "split-remainder",
   "title": "The Ticket Keeper's safety half: the OHS and asbestos paperwork tied to the right site",
   "state": "open",
   "ownerClass": "AI",
   "waitingOn": "none",
   "waitingOnTask": null,
   "scope": "demo",
   "evidenceClass": "none",
   "gradeFile": null,
   "accepted": false,
   "aiExecutable": true,
   "conditionUnmet": false,
   "cancelled": null,
   "ruling": null,
   "stateBefore": null,
   "aliases": [],
   "flags": [
    "split-remainder"
   ],
   "sourceDates": [
    {
     "file": "outbox/tasks_corrections.json",
     "date": "2026-11-08T00:00:00.000Z"
    }
   ],
   "related": [
    "H4"
   ],
   "card": "office-seats",
   "accountingDate": "2026-10-31T00:54:18.780Z",
   "necessity": "needed-for-demo",
   "necessityWord": "Needed for the demo",
   "necessitySource": "the remainder of H4, which carries this row's tag: plan v0.2 (materials/handoff/2026-10-31_0102_audit-v2.4/DRAFT_MAKKI_PROJECT_PLAN_2026-10-31_v0.2.md, generated 2026-10-31): card office-seats \"The helper agents and their schedules\" on finish line 1",
   "necessityVia": "the parent row H4's tag",
   "splitFrom": "H4",
   "remainderOf": "H4",
   "addedRow": {
    "parent": "H4",
    "reason": "split from H4 on 8 November 2026: the weekly tickets report is the finished half on the canonical row, and the safety paperwork it was merged with is this row",
    "source": "the correction of 8 November 2026 (tasks-correction-2 v2.0.0), reading the parent row's own completion report in the canonical accounting v2.4 of 2026-10-31 and the task-page row that already recorded the split",
    "at": "2026-11-08T00:00:00.000Z"
   },
   "status5": "not-done",
   "status5Word": "Not done",
   "plainTitle": "The Ticket Keeper's safety half: the OHS and asbestos paperwork tied to the right site",
   "outcome": "Not done: the unfinished half of H4 — the OHS and asbestos paperwork tied to the right site; split out on 8 November 2026.",
   "next": "Next: the hive builds it on demo data; it is the remainder of H4 and waits on nobody.",
   "readingWas": {
    "outcome": "Not done: not started on demo data.",
    "next": "Next: the hive builds it on demo data; nothing waits on anyone else."
   }
  }
 ]
}