diff --git a/docs/FACTS.md b/docs/FACTS.md index e8022a0d1a..20a35e770b 100644 --- a/docs/FACTS.md +++ b/docs/FACTS.md @@ -11,8 +11,8 @@ green. Quote a fact instead of restating it, and it updates itself when the sour | `auth-provider` | Supabase Auth | Sign-in service used when `WARD_AUTH_PROVIDER` is not set | `backend/ward-flow/config.mjs` | | `latest-migration` | 017-account-preferences | Newest shared-workspace database migration | `backend/ward-flow/migrations/` | | `migration-count` | 17 | Numbered database migrations | `backend/ward-flow/migrations/` | -| `ward-route-count` | 60 | `page.tsx` routes under `/ward-flow` | `src/app/ward-flow/` | -| `app-route-count` | 64 | Pages and route handlers: the Ward Flow routes plus sign-in and the `/mockups` digest | `src/app/ward-flow/, src/app/ward-flow-sign-in/, src/app/mockups/` | +| `ward-route-count` | 61 | `page.tsx` routes under `/ward-flow` | `src/app/ward-flow/` | +| `app-route-count` | 65 | Pages and route handlers: the Ward Flow routes plus sign-in and the `/mockups` digest | `src/app/ward-flow/, src/app/ward-flow-sign-in/, src/app/mockups/` | | `latest-decision` | D-147 | Newest entry in the decision log | `docs/ward-flow/decisions.md` | | `next-decision` | D-148 | Number to use for the next decision | `docs/ward-flow/decisions.md` | | `node-engine` | >=24.22.1 <25 | Supported Node.js range | `package.json` | diff --git a/docs/script-budget-history/2026-11-11-pr1607-batch5-counts-screens-print.md b/docs/script-budget-history/2026-11-11-pr1607-batch5-counts-screens-print.md new file mode 100644 index 0000000000..50453c714b --- /dev/null +++ b/docs/script-budget-history/2026-11-11-pr1607-batch5-counts-screens-print.md @@ -0,0 +1,17 @@ +# 11 Nov 2026, Feature build batch 5: counts, screens and print (PR #1607) + +Changed on top of `main` at `5b08a5eb`: Home `/ward-flow` raised 575.4 to 577.7; Capacity `/ward-flow/capacity` raised 654.3 to 656.3; bed meeting `/ward-flow/bed-meeting` raised 592.2 to 593.4; referrals `/ward-flow/referrals` raised 583.6 to 584.0; ED `/ward-flow/ed` raised 535.4 to 535.7; ward `/ward-flow/ward/rph-adult-secure` raised 613.8 to 614.1. Each raise is under 2.5 KB, within the 5 KB per-screen allowance in HOW-WE-WORK section 6. + +Measured on hosted CI (production build of the PR head `b8c7a8cc`, merged with main): Home 577.4 KB, Capacity 656.0 KB, bed meeting 593.1 KB, referrals 583.7 KB, ED 535.4 KB, ward 613.8 KB. Each new limit is the measurement plus about 0.3. + +Why it changed: Home and Capacity gained tap-a-number figures (plan item 5, D-137), whose buttons and row builders load with the screen, and Home's More menu links the Night view (item 29). The bed meeting and ward TV gained the "Changed 14:32" marks (item 43). Shared shell code every desk route carries grew by under 0.3 KB for the count leak fix (item 1). + +Trim tried: the breakdown panel and phone sheet already load only when a figure is tapped (`next/dynamic`), and the desk QR library loads only on Settings. The row builders stay with the screens because they read the screens' own lists. No other safe trim was found. + +Later the same day (PR head `272e9c8`, merged with `main` at `35c7ccd`, which carries PR #1621's raises): the two PRs' raises add up. Home is 578.0, referrals 584.3, ED 536.0, ward 614.4 and capacity 656.7. Hosted CI then measured three routes just over: movement `/ward-flow/movements/WF-001` at 610.0 KB (limit 609.8), bed meeting at 593.6 KB (593.4) and statistics at 632.9 KB (632.6). So movement is raised 609.8 to 610.3, bed meeting 593.4 to 593.9 and statistics 632.6 to 633.2, each the measurement plus about 0.3. The growth is the shared shell code from the count leak fix (item 1), which every desk route loads, combined with #1621's shared forecast code. Same trim reasoning as above. This PR's total raise is still under 2.5 KB on every screen. + +Later again (merging `main` at `c21e99a`, which carries PR #1609's raises): this PR's raise on each screen is added on top of main's new limit. That gives Home 579.2, referrals 585.5, ED 536.6, ward 615.3, movement 611.4, capacity 657.9, bed meeting 595.0 and statistics 634.2. Arm ED takes main's 667.6. +Hosted CI on `143f097` measured ED at 536.7 KB, 0.1 KB over the summed limit, so ED is raised 536.6 to 537.0 (the measurement plus about 0.3). + +Later again (merging `main` at `cc755fa`, which carries PR #1605's limits): this PR's raise on each screen is again added on top of main's new limit. That gives Home 580.5, referrals 586.9, ED 538.5, ward 616.8, movement 613.1, capacity 659.3, bed meeting 596.5 and statistics 635.7. Arm ED takes main's 668.1. +Hosted CI on `9e45f14` measured Arm ED at 668.2 KB, 0.1 KB over main's 668.1, so Arm ED is raised to 668.5 (the measurement plus about 0.3). diff --git a/docs/site-map.md b/docs/site-map.md index 233bca2103..20b05dbcd6 100644 --- a/docs/site-map.md +++ b/docs/site-map.md @@ -36,6 +36,7 @@ See also [`ward-flow/SCREEN-MAP.md`](ward-flow/SCREEN-MAP.md), which pairs each - `/ward-flow/movements` - Route discovered from app directory Source: `src/app/ward-flow/movements/page.tsx`. - `/ward-flow/movements/[movementId]` - Route discovered from app directory Source: `src/app/ward-flow/movements/[movementId]/page.tsx`. - `/ward-flow/network` - Route discovered from app directory Source: `src/app/ward-flow/network/page.tsx`. +- `/ward-flow/night` - Route discovered from app directory Source: `src/app/ward-flow/night/page.tsx`. - `/ward-flow/on-call` - Route discovered from app directory Source: `src/app/ward-flow/on-call/page.tsx`. - `/ward-flow/out-of-area` - Route discovered from app directory Source: `src/app/ward-flow/out-of-area/page.tsx`. - `/ward-flow/people/[patientId]` - Route discovered from app directory Source: `src/app/ward-flow/people/[patientId]/page.tsx`. diff --git a/docs/ward-flow/OWNER-RULINGS.md b/docs/ward-flow/OWNER-RULINGS.md index 9f17b68d4b..f19ff483c3 100644 --- a/docs/ward-flow/OWNER-RULINGS.md +++ b/docs/ward-flow/OWNER-RULINGS.md @@ -9,7 +9,7 @@ Scanned `docs/ward-flow/decisions.md`, `docs/ward-flow/owner-*.md` and `docs/his One file matches `*owner*` but not `owner-*` and is deliberately excluded: `how-to-write-to-the-owner.md` — it is instructions for writing TO the owner, not a record of what he ruled. -**700 rulings/items extracted, across 43 of 44 files.** +**701 rulings/items extracted, across 43 of 44 files.** **0 file(s) UNPARSED** — no recognised ruling structure found; listed, not dropped. See below. **1 file(s) recorded as holding no ruling of their own**, each with its reason. See below. @@ -32,7 +32,7 @@ line, in the order discovered — confirm which instance you mean before citing --- -## ID index — 450 distinct IDs +## ID index — 451 distinct IDs So an ID like `D-9` or `O-17.1` can be looked up directly, without knowing which file it lives in. Bare numbered rulings (files that number "1., 2., 3. …" with no owner-issued letter code) are @@ -72,243 +72,244 @@ safe global key across 30 files. | `D-1` ⚠️ **3 occurrences in 3 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-12-four-answers.md`:16 | D-1 · Legal forms: split the list in two | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:85 | D-1 — 🔴 The screen is called **Patient**, not "Patient Now" | -| ↳ | `decisions.md`:167 | D-1. Ward Flow is local only, with no linked repository (Replaced by D-27) | +| ↳ | `decisions.md`:168 | D-1. Ward Flow is local only, with no linked repository (Replaced by D-27) | | `D-2` ⚠️ **3 occurrences in 3 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-12-four-answers.md`:57 | D-2 · Raise the three unbindable table thresholds | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:108 | D-2 — 🔴 Communication: BUILD IT. The system must be able to tell someone something. | -| ↳ | `decisions.md`:177 | D-2. Railway is disconnected | +| ↳ | `decisions.md`:178 | D-2. Railway is disconnected | | `D-3` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:215 | D-3 — 🔴 The 12px floor is ADOPTED. Screen by screen, not as a sweep. | -| ↳ | `decisions.md`:188 | D-3. The PsychSift and Database code is being retired from Ward Flow | +| ↳ | `decisions.md`:189 | D-3. The PsychSift and Database code is being retired from Ward Flow | | `D-3b` | `../history/archive/dated-notes/owner-decisions-2026-09-12-four-answers.md`:77 | D-3b · The data-conditional absence sweep is DEFERRED | | `D-4` ⚠️ **4 occurrences in 3 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-12-four-answers.md`:97 | D-4 · The deliberate sub-12px exception stands if its reasoning is sound | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:263 | D-4 · WARD LEAD RULING, not the owner's — the Access record's false assurance | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:390 | D-4 ADDENDUM, 2026-09-11 — 🔴 the OTHER half of that sentence, found by Lane C after the fix | -| ↳ | `decisions.md`:196 | D-4. Synthetic patients only | +| ↳ | `decisions.md`:197 | D-4. Synthetic patients only | | `D-5` ⚠️ **4 occurrences in 3 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-12-routing-and-nine-flags.md`:15 | D-5 · 🔴 A NEW STANDING RULE: PROTECTED-WORK DELETIONS COME TO WARD VERIFIER FIRST | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:340 | D-5 · WARD LEAD RULING, not the owner's — gender reaches BOTH bed gates or neither | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:431 | D-5 MEASUREMENT, 2026-09-11 — the wiring task handed back, and the arithmetic is starker than I expected | -| ↳ | `decisions.md`:204 | D-5. Parallel threads in separate worktrees, folded one at a time | +| ↳ | `decisions.md`:205 | D-5. Parallel threads in separate worktrees, folded one at a time | | `D-6` ⚠️ **3 occurrences in 3 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-12-routing-and-nine-flags.md`:52 | D-6 · 🟢 THE `--t-0` COLLISION — amend the brief in the same change | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:472 | D-6 · WARD LEAD RULING — "Not recorded" and "Not yet recorded" are BOTH used, deliberately | -| ↳ | `decisions.md`:215 | D-6. Aboriginal cultural safety review deferred | +| ↳ | `decisions.md`:216 | D-6. Aboriginal cultural safety review deferred | | `D-7` ⚠️ **3 occurrences in 3 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-12-routing-and-nine-flags.md`:72 | D-7 · 🟢 THE REMAINING SEVEN ARE FLAGGED TO WARD LEAD | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:499 | D-7 · WARD LEAD RULING — the Patient screen SHOWS gender, and the addition is logged as an addition | -| ↳ | `decisions.md`:223 | D-7. The first four milestones, in this order | +| ↳ | `decisions.md`:224 | D-7. The first four milestones, in this order | | `D-8` ⚠️ **3 occurrences in 3 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-12-fold-and-authorisation.md`:9 | D-8 · 🔴 "FOLD INTO MAIN" ALWAYS MEANS THE LOCAL WARD FLOW LINE | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:545 | D-8 · WARD LEAD RULING — the announced marker says "invented NAMES", never "invented people" | -| ↳ | `decisions.md`:235 | D-8. Josh's standing rulings, numbered R1 to R16, for every session and tool | +| ↳ | `decisions.md`:236 | D-8. Josh's standing rulings, numbered R1 to R16, for every session and tool | | `D-9` ⚠️ **3 occurrences in 3 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-12-fold-and-authorisation.md`:51 | D-9 · 🟢 THE MENTAL HEALTH ACT AUTHORISATION GATE IS OVERRIDABLE — with the owner's clinical reason | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:589 | D-9 · WARD LEAD RULING — the referral board's table MAY scroll sideways; the missing thing is the affordance | -| ↳ | `decisions.md`:267 | D-9. Josh's rulings of 25 September, 11:43 to 12:00 (R17 to R21) | +| ↳ | `decisions.md`:268 | D-9. Josh's rulings of 25 September, 11:43 to 12:00 (R17 to R21) | | `D-10` ⚠️ **3 occurrences in 3 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-12-fold-and-authorisation.md`:91 | D-10 · ⏸️ THE SMALL-TEXT RAISE IS DEFERRED — with the triggers written down, because a deferral without one is a drop | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:618 | D-10 · WARD LEAD RULING — the overflow affordance is a SENTENCE first and a measured border second, not the standard's shade | -| ↳ | `decisions.md`:281 | D-10. Gate build type check (R22) | +| ↳ | `decisions.md`:282 | D-10. Gate build type check (R22) | | `D-11` ⚠️ **3 occurrences in 3 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-12-fold-and-authorisation.md`:129 | D-11 · 🔴 TWO LEDGERS IS CORRECT AND INTENDED — WARD FLOW TASKS GO ON THE WARD FLOW LEDGER, AND THE MAIN PROJECT'S IS DISREGARDED FOR THIS PROJECT | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:685 | D-11 · A-1 — the half-written referral history WARNS, and is never stored | -| ↳ | `decisions.md`:290 | D-11. Rulings of 25 September, 12:41 (R23 to R25) | +| ↳ | `decisions.md`:291 | D-11. Rulings of 25 September, 12:41 (R23 to R25) | | `D-12` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:704 | D-12 · A-2 — the referrer is the RECORDED SOURCE, and a person only if the record carries one | -| ↳ | `decisions.md`:306 | D-12. Rulings of 25 September, 12:43 (R26 to R31) | +| ↳ | `decisions.md`:307 | D-12. Rulings of 25 September, 12:43 (R26 to R31) | | `D-13` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:720 | D-13 · A-3 and A-4 — both resolve FOR THE CODE; the drawings change | -| ↳ | `decisions.md`:325 | D-13. Tooling tests in batch gates (R32) | +| ↳ | `decisions.md`:326 | D-13. Tooling tests in batch gates (R32) | | `D-14` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:739 | D-14 · A-6 and A-8 — ADD THE LINK, AND MAKE THE GUARD ENFORCE IN THE SAME CHANGE. Never one without the other. | -| ↳ | `decisions.md`:335 | D-14. Standing defaults: decide small things without asking | +| ↳ | `decisions.md`:336 | D-14. Standing defaults: decide small things without asking | | `D-15` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:778 | D-15 · A-7 — the figure NAMES ITS OWN CLOCK, or it does not ship | -| ↳ | `decisions.md`:347 | D-15. Rulings of 25 September, 13:26 (R33 to R35) | +| ↳ | `decisions.md`:348 | D-15. Rulings of 25 September, 13:26 (R33 to R35) | | `D-16` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:799 | D-16 · WARD LEAD RULING — the unwired primary actions use §8.6's EXISTING sentence; nothing new is invented | -| ↳ | `decisions.md`:360 | D-16. Legal overrides and form receipts, 25 September 13:51 UTC | +| ↳ | `decisions.md`:361 | D-16. Legal overrides and form receipts, 25 September 13:51 UTC | | `D-17` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:843 | D-17 · WARD LEAD RULING — A-8: FD-23 wins. The Patient screen never shows where else a patient has been. | -| ↳ | `decisions.md`:373 | D-17. Morning roll-up time is Josh's own default (25 September) | +| ↳ | `decisions.md`:374 | D-17. Morning roll-up time is Josh's own default (25 September) | | `D-18` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:878 | D-18 · WARD LEAD RULING — the referral query contract carries MODEL values; and `gp` is a question for the owner, not a mapping for me | -| ↳ | `decisions.md`:384 | D-18. The privacy lock stops saving only for typed text (25 September) | +| ↳ | `decisions.md`:385 | D-18. The privacy lock stops saving only for typed text (25 September) | | `D-19` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:922 | D-19 · WARD LEAD RULING — "something is already open for this person" is PERMITTED; "where" never is | -| ↳ | `decisions.md`:395 | D-19. Rulings of 25 September, evening (walkthrough, leave beds, PsychSift, gender display) | +| ↳ | `decisions.md`:396 | D-19. Rulings of 25 September, evening (walkthrough, leave beds, PsychSift, gender display) | | `D-20` ⚠️ **3 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:967 | D-20 · WARD LEAD RULING — the drawing wins; the vocabulary anchor was never the heading | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:1010 | D-20-REVISED · the drawing renames BOTH, so neither side is taken whole | -| ↳ | `decisions.md`:425 | D-20. One high-contrast colour check retired (26 September) | +| ↳ | `decisions.md`:426 | D-20. One high-contrast colour check retired (26 September) | | `D-21` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:1058 | D-21 · WARD LEAD RULING — tasks 10 and 12 are CLOSED, not deferred, and not built as callerless modules | -| ↳ | `decisions.md`:438 | D-21. Coordinator bed board: all nine recommended answers (26 September) | +| ↳ | `decisions.md`:439 | D-21. Coordinator bed board: all nine recommended answers (26 September) | | `D-22` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:1084 | D-22 · SHAPE 2 — the landmark label and the heading stop being two strings | -| ↳ | `decisions.md`:450 | D-22. No legal limits in hour rules; the rest are labelled defaults (26 September) | +| ↳ | `decisions.md`:451 | D-22. No legal limits in hour rules; the rest are labelled defaults (26 September) | | `D-23` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:1121 | D-23 · The bed board passes an empty leave-bed list into three capacity figures, and says nothing | -| ↳ | `decisions.md`:466 | D-23. Leave-bed fields kept; patient search stops matching by ward (26 September) | +| ↳ | `decisions.md`:467 | D-23. Leave-bed fields kept; patient search stops matching by ward (26 September) | | `D-24` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:1142 | D-24 · The raw `1.2` line-height — token it, and accept that community no longer matches | -| ↳ | `decisions.md`:480 | D-24. Hour-rules morning list: all A (26 September) | +| ↳ | `decisions.md`:481 | D-24. Hour-rules morning list: all A (26 September) | | `D-25` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:1161 | D-25 · Command's `deadlineLine` sentence is not built — and this DEFERS the R-5 question rather than answering it | -| ↳ | `decisions.md`:504 | D-25. The lone-patient check counts free beds on both matching paths (26 September) | +| ↳ | `decisions.md`:505 | D-25. The lone-patient check counts free beds on both matching paths (26 September) | | `D-26` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:1184 | D-26 · `edPressure` becomes a projection of `edHomeSummaries` — the two screens stop being able to disagree | -| ↳ | `decisions.md`:512 | D-26. Select fold checks by changed risk (27 September) | +| ↳ | `decisions.md`:513 | D-26. Select fold checks by changed risk (27 September) | | `D-27` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:1213 | D-27 · The word for a free bed is READY — and the ruling is about the WORD, not the identifier | -| ↳ | `decisions.md`:530 | D-27. Ward Flow uses its dedicated repository (28 September) | -| `D-28` | `decisions.md`:543 | D-28. Design Modernization & Anti-Box Architecture (30 September 2026) | -| `D-29` | `decisions.md`:557 | D-29. Act time limits shown as a labelled synthetic demo (4 October 2026) | +| ↳ | `decisions.md`:531 | D-27. Ward Flow uses its dedicated repository (28 September) | +| `D-28` | `decisions.md`:544 | D-28. Design Modernization & Anti-Box Architecture (30 September 2026) | +| `D-29` | `decisions.md`:558 | D-29. Act time limits shown as a labelled synthetic demo (4 October 2026) | | `D-30` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:1238 | D-30 · `Unit.forensic` is a WARD flag, and every rendered string says so | -| ↳ | `decisions.md`:572 | D-30. Central Coordinator Approval for Inter-Ward Bed Transfers (6 October 2026) | +| ↳ | `decisions.md`:573 | D-30. Central Coordinator Approval for Inter-Ward Bed Transfers (6 October 2026) | | `D-31` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:1367 | D-31 · The plan's disposition — delete one half, re-derive the other | -| ↳ | `decisions.md`:579 | D-31. Gender-Diverse Bed Placement Policy & Clinical Override Safety (6 October 2026) | +| ↳ | `decisions.md`:580 | D-31. Gender-Diverse Bed Placement Policy & Clinical Override Safety (6 October 2026) | | `D-32` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:1289 | D-32 · D-6 is restated: ONE WORDING PER STATE, and the states are named | -| ↳ | `decisions.md`:586 | D-32. FIFO Waiting Time with Clinical Triage Badging vs Algorithmic Urgency Sorting (6 October 2026) | +| ↳ | `decisions.md`:587 | D-32. FIFO Waiting Time with Clinical Triage Badging vs Algorithmic Urgency Sorting (6 October 2026) | | `D-33` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:1322 | D-33 · "Nothing outstanding" does three jobs, and only one of them may keep the words | -| ↳ | `decisions.md`:593 | D-33. Separation of Local Ward Shift Notes from Statewide Coordinator Telemetry (6 October 2026) | +| ↳ | `decisions.md`:594 | D-33. Separation of Local Ward Shift Notes from Statewide Coordinator Telemetry (6 October 2026) | | `D-34` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:1347 | D-34 · A hypothetical destination row may not use obligation vocabulary at all | -| ↳ | `decisions.md`:600 | D-34. Acute Medical Deterioration Bed Release and Escalation Protocol (6 October 2026) | +| ↳ | `decisions.md`:601 | D-34. Acute Medical Deterioration Bed Release and Escalation Protocol (6 October 2026) | | `D-35` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:1388 | D-35 · The ED pressure strip does not narrow to the selected service, and #6 is CLOSED | -| ↳ | `decisions.md`:607 | D-35. Deferral of Regional Multi-Leg Transport & RFDS Repatriation (6 October 2026) | +| ↳ | `decisions.md`:608 | D-35. Deferral of Regional Multi-Leg Transport & RFDS Repatriation (6 October 2026) | | `D-36` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:1405 | D-36 · _Referrals into this ward_ / _into the team_ — PRESENTATION, with a condition | -| ↳ | `decisions.md`:614 | D-36. Affirmation of External Governance & Clinical Safety Hard Gates (6 October 2026) (Replaced by D-87) | +| ↳ | `decisions.md`:615 | D-36. Affirmation of External Governance & Clinical Safety Hard Gates (6 October 2026) (Replaced by D-87) | | `D-37` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:1411 | D-37 · _Clinically ready, not yet gone_ — PRESENTATION, and the heading must name its subject | -| ↳ | `decisions.md`:629 | D-37. External Governance Hard Gate Operational Postures & Resolution Roadmap (6 October 2026) (Replaced by D-87) | +| ↳ | `decisions.md`:630 | D-37. External Governance Hard Gate Operational Postures & Resolution Roadmap (6 October 2026) (Replaced by D-87) | | `D-38` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:1417 | D-38 · _People currently in a hospital bed_ on community team statistics — an aggregate that identifies at small N | -| ↳ | `decisions.md`:656 | D-38. Leave, absent without leave and CTO on the Patient page (9 October 2026) | +| ↳ | `decisions.md`:657 | D-38. Leave, absent without leave and CTO on the Patient page (9 October 2026) | | `D-39` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:1437 | D-39 · _Contacts_ and _Time to first contact_ — HELD, build neither | -| ↳ | `decisions.md`:674 | D-39. Patients are identified by UMRN, never by a WF number (9 October 2026) | +| ↳ | `decisions.md`:675 | D-39. Patients are identified by UMRN, never by a WF number (9 October 2026) | | `D-40` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:1445 | D-40 · An empty check array never claims reconciliation — on either shell surface | -| ↳ | `decisions.md`:718 | D-40. A second community treatment order keeps the first (9 October 2026) | +| ↳ | `decisions.md`:719 | D-40. A second community treatment order keeps the first (9 October 2026) | | `D-41` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:1478 | D-41 · `corridorCounts` is extended, and its POPULATION changes | -| ↳ | `decisions.md`:729 | D-41. Delays board filters narrow the table and state the hidden count (9 October 2026) | +| ↳ | `decisions.md`:730 | D-41. Delays board filters narrow the table and state the hidden count (9 October 2026) | | `D-42` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:1490 | D-42 · _Referrals into this ward_ renders bare counts. No share. | -| ↳ | `decisions.md`:742 | D-42. 12px typography floor with no uppercase exception reaffirmed in Design System v9 (9–10 October 2026) | +| ↳ | `decisions.md`:743 | D-42. 12px typography floor with no uppercase exception reaffirmed in Design System v9 (9–10 October 2026) | | `D-43` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:1724 | D-43 · Ward Lead ruling — the bed board's ordinal contradiction is a LANE TASK | -| ↳ | `decisions.md`:748 | D-43. Colour lives in glyphs and the hero; red means act now with a thin 1px edge, never a fill (9 October 2026) | +| ↳ | `decisions.md`:749 | D-43. Colour lives in glyphs and the hero; red means act now with a thin 1px edge, never a fill (9 October 2026) | | `D-44` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:1791 | D-44 · The community scope note is reworded and the comparison panel stays | -| ↳ | `decisions.md`:755 | D-44. Compact sizing, white cards and smaller text retained over expression-test card tints (9 October 2026) | +| ↳ | `decisions.md`:756 | D-44. Compact sizing, white cards and smaller text retained over expression-test card tints (9 October 2026) | | `D-45` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:1803 | D-45 · 🔴 THE SEED DECISION — the fixture gains BOTH, as ONE change, after the statistics screens | -| ↳ | `decisions.md`:761 | D-45. Phone is its own 390×844 design, never a desktop reflow (9 October 2026) | +| ↳ | `decisions.md`:762 | D-45. Phone is its own 390×844 design, never a desktop reflow (9 October 2026) | | `D-46` ⚠️ **2 occurrences in 2 files — not unique** | | | | ↳ | `../history/archive/dated-notes/owner-decisions-2026-09-1x.md`:1984 | D-46 · A guard that fails whenever the machine is busy | -| ↳ | `decisions.md`:768 | D-46. Every page has a focal part, a part of its own, a page-specific hero and command-bar action rules (9 October 2026) | -| `D-47` | `decisions.md`:774 | D-47. Glass stays about 80% opaque with the top sheen kept (10 October 2026) | -| `D-48` | `decisions.md`:780 | D-48. Figures stay in Geist Mono with tabular digits while chart axes use Geist Sans (10 October 2026) | -| `D-49` | `decisions.md`:786 | D-49. Ward Flow 44px default row target (dense 36px, touch 52px) vs retired 48px PsychSift tap knob (10 October 2026) | -| `D-50` | `decisions.md`:792 | D-50. Neutral T1 urgency pill vs Form 1A amber statutory warning badge (10 October 2026) | -| `D-51` | `decisions.md`:798 | D-51. Delays filters hide rows with a stated hidden count while other queues highlight by default (10 October 2026) | -| `D-52` | `decisions.md`:805 | D-52. 10 October page review rulings: time-axis overdue zone, 15px/20px strip figures, 8px people pips and incremental shared parts (10 October 2026) | -| `D-53` | `decisions.md`:811 | D-53. Elevate design language and Glare mode adopted for Design System v9 (10 October 2026) | -| `D-54` | `decisions.md`:818 | D-54. Tier time thresholds remain synthetic demo values requiring clinical sign-off (10 October 2026) | -| `D-55` | `decisions.md`:826 | D-55. Supabase is Ward Flow's database and sign-in provider, and Azure is retired (15 October 2026) | -| `D-56` | `decisions.md`:832 | D-56. Josh signs the clinical values that have a recorded source, for the prototype (15 October 2026) | -| `D-57` | `decisions.md`:838 | D-57. Twenty Top 25 items move from the showcase into the real screens, each behind its own flag (15 October 2026) | -| `D-58` | `decisions.md`:865 | D-58. Josh signs three more clinical values that have a national source, for the prototype (15 October 2026) | -| `D-59` | `decisions.md`:871 | D-59. Each role sees only what it needs, from one access table (15 October 2026) | -| `D-60` | `decisions.md`:877 | D-60. Criteria led discharge, for voluntary patients only (15 October 2026) | -| `D-61` | `decisions.md`:886 | D-61. Tasks and Alerts are one queue called Alerts (16 October 2026) | -| `D-62` | `decisions.md`:892 | D-62. The one Alerts queue is signed off and its flag removed (16 October 2026) | -| `D-63` | `decisions.md`:898 | D-63. Josh signs the remaining clinical values and the criteria list, for the prototype (16 October 2026) | -| `D-64` | `decisions.md`:906 | D-64. Criteria led discharge shows on the boards and warns at departure (16 October 2026) | -| `D-65` | `decisions.md`:913 | D-65. Criteria led discharge on in production, typed patient specific criteria, and the AWOL bed hold review paused (17 October 2026) | -| `D-66` | `decisions.md`:929 | D-66. Granted roles work without a second approval (17 October 2026) | -| `D-67` | `decisions.md`:937 | D-67. Recover synthetic form drafts within the browser session (17 October 2026) | -| `D-68` | `decisions.md`:944 | D-68. Bed meeting TV content and access (19 October 2026) | -| `D-69` | `decisions.md`:952 | D-69. A referral with no legal status: "Needs an involuntary-capable bed until status is set." (20 October 2026) | -| `D-70` | `decisions.md`:959 | D-70. No computed Mental Health Act periods: show only the recorded due time (20 October 2026) | -| `D-71` | `decisions.md`:965 | D-71. Audit 1 clinical safety fixes: no suggested wards, wait-order queues, recorded facts only (20 October 2026) | -| `D-72` | `decisions.md`:978 | D-72. Seven product decisions for the 21 October fix plan (21 October 2026) | -| `D-73` | `decisions.md`:994 | D-73. Batch merge safeguards (21 October 2026) | -| `D-74` | `decisions.md`:1010 | D-74. Owner answers to the 21 October open questions (21 October 2026) | -| `D-75` | `decisions.md`:1031 | D-75. UX audit follow-up, page caching, community gaps and the extra-travel bed hold (21 October 2026) | -| `D-76` | `decisions.md`:1044 | D-76. Community referral gaps: the full move journey and asking more wards (21 October 2026) | -| `D-77` | `decisions.md`:1053 | D-77. The ten bigger UX changes approved for build (22 October 2026) | -| `D-78` | `decisions.md`:1073 | D-78. One decline list for wards and coordinators (22 October 2026) | -| `D-79` | `decisions.md`:1084 | D-79. Wards see the full referral, with name and UMRN, before they answer (23 October 2026) | -| `D-80` | `decisions.md`:1095 | D-80. Role access plan version 2: all 17 recommendations (23 October 2026) | -| `D-81` | `decisions.md`:1110 | D-81. Pulled, with a pull time limit, for a bed kept for an incoming patient (24 October 2026) | -| `D-82` | `decisions.md`:1117 | D-82. A PR may raise a phone size limit by up to 5 KB per screen without asking (26 October 2026) | -| `D-83` | `decisions.md`:1125 | D-83. Patient names stay in full on every screen, copy and TV; privacy work must not make the app less useful (26 October 2026) | -| `D-84` | `decisions.md`:1136 | D-84. The live app stays on Railway Singapore for now, and there is no server-side TV account yet (26 October 2026) | -| `D-85` | `decisions.md`:1144 | D-85. "Held" only for a bed kept for its own patient; "pulled" for an incoming bed; "held up" for a delay (26 October 2026) | -| `D-86` | `decisions.md`:1151 | D-86. No second approver for role grants, at pilot or otherwise (27 October 2026) | -| `D-87` | `decisions.md`:1158 | D-87. D-36 and D-37 are replaced by the real-data gate (27 October 2026) | -| `D-88` | `decisions.md`:1170 | D-88. The public demo opens with a demo code once the front door is on (27 October 2026) | -| `D-89` | `decisions.md`:1177 | D-89. Redesign mock-up copies of large screens may pass the 1,500-line cap (30 October 2026) | -| `D-90` | `decisions.md`:1185 | D-90. Help gets How do I…, Show me runs everywhere, and Help is built without a separate mock-up step (30 October 2026) | -| `D-91` | `decisions.md`:1196 | D-91. One design home for the redesign, and Josh's answers on Help, Settings, search and notifications (31 October 2026) | -| `D-92` | `decisions.md`:1231 | D-92. Help goes live before its mock-up review, one search box on Capacity, and referral rows on Home open the panel (31 October 2026) | -| `D-93` | `decisions.md`:1241 | D-93. Legal form times show only as typed, never as a countdown (31 October 2026) | -| `D-94` | `decisions.md`:1249 | D-94. Design rulings of 31 October 2026 | -| `D-95` | `decisions.md`:1262 | D-95. One page scroll, and a click outside closes a drawer (3 November 2026) | -| `D-96` | `decisions.md`:1272 | D-96. A named bed is pulled, and its patient is not also waiting (8 November 2026) | -| `D-97` | `decisions.md`:1282 | D-97. Owner answers on seven open items: N21, N25, N26, N29, N40, N41 and WF-B008 (8 November 2026) | -| `D-98` | `decisions.md`:1295 | D-98. Friction pass: Quick bar, Patient peek and Ward peek (8 November 2026) | -| `D-99` | `decisions.md`:1304 | D-99. "Real details" in the referral drawer's sample patients (25 September 2026) | -| `D-100` | `decisions.md`:1310 | D-100. "Under a form" means one rule everywhere (9 November 2026) | -| `D-101` | `decisions.md`:1317 | D-101. Clinically ready for discharge, with one delay reason (9 November 2026) | -| `D-102` | `decisions.md`:1326 | D-102. Report-a-problem screenshots are blurred, and patient-table exports carry no names (9 November 2026) | -| `D-103` | `decisions.md`:1335 | D-103. Any coordinator on shift may mark a bed override reviewed (9 November 2026) | -| `D-104` | `decisions.md`:1342 | D-104. Care plans and safety flags: five defaults (9 November 2026) | -| `D-105` | `decisions.md`:1354 | D-105. Optional clerk details on the patient record (8 November 2026) | -| `D-106` | `decisions.md`:1361 | D-106. Clinical values from the 9 November 2026 documentation audit (9 November 2026) | -| `D-107` | `decisions.md`:1373 | D-107. Working rules and documentation from the 9 November 2026 audit (9 November 2026) | -| `D-108` | `decisions.md`:1387 | D-108. Six bed-flow features: keep D-93 and D-72, ED long-wait next steps (9 November 2026) | -| `D-109` | `decisions.md`:1396 | D-109. Home's bed alert line tests the whole number shown (9 November 2026) | -| `D-110` | `decisions.md`:1403 | D-110. ED and referral flow: neutral fit line, clearance timing and alternatives to admission (9 November 2026) | -| `D-111` | `decisions.md`:1413 | D-111. Review and audit plan: first guards and four open answers (9 November 2026) | -| `D-112` | `decisions.md`:1427 | D-112. Phone bottom bar: the floating bar (9 November 2026) | -| `D-113` | `decisions.md`:1436 | D-113. Second patient identifier on accept and Mark done; no initials search (9 November 2026) | -| `D-114` | `decisions.md`:1446 | D-114. Allow pull_request_target for three workflows only (9 November 2026) | -| `D-115` | `decisions.md`:1454 | D-115. One count on every screen, and a missing patient shown everywhere (9 November 2026) | -| `D-116` | `decisions.md`:1468 | D-116. Page tops: the PR #1581 recommendations stand (9 November 2026) | -| `D-117` | `decisions.md`:1485 | D-117. Care plans follow-up: frequent presenter count, tribunal date and ward flags (10 November 2026) | -| `D-118` | `decisions.md`:1494 | D-118. Page tops: Referrals and Ward phone limits up to 8 KB above main (10 November 2026) | -| `D-119` | `decisions.md`:1500 | D-119. Page tops: phone limits raised to measured sizes, trim after merge (10 November 2026) | -| `D-120` | `decisions.md`:1507 | D-120. Discharge and capacity values: pull limit, transport delay and discharge date slip (9 November 2026) | -| `D-121` | `decisions.md`:1516 | D-121. Working rules, guards and your PC from the 10 November 2026 audit (10 November 2026) | -| `D-122` | `decisions.md`:1530 | D-122. Clinical and privacy answers from the 10 November 2026 audit (10 November 2026) | -| `D-123` | `decisions.md`:1543 | D-123. Master audit list answers: two clinical fixes and five working rules (10 November 2026) | -| `D-124` | `decisions.md`:1557 | D-124. Offline saves whose record changed are refused and shown (10 November 2026) | -| `D-125` | `decisions.md`:1564 | D-125. Top 10 audit follow-ups approved (10 November 2026) | -| `D-126` | `decisions.md`:1576 | D-126. Ranked lists: neutral orders approved (10 November 2026) | -| `D-127` | `decisions.md`:1595 | D-127. Neutral wording for a community treatment order at arrival (10 November 2026) | -| `D-128` | `decisions.md`:1602 | D-128. Final master audit: nine answers (10 November 2026) | -| `D-129` | `decisions.md`:1617 | D-129. Master audit findings: every recommendation approved (10 November 2026) | -| `D-130` | `decisions.md`:1667 | D-130. Audit follow-ups: every remaining recommendation approved (10 November 2026) | -| `D-131` | `decisions.md`:1683 | D-131. Hard-case demo data allowed, and the movement diagram follows the engine (10 November 2026) | -| `D-132` | `decisions.md`:1692 | D-132. Audit fixes group 1: docs and CI guards (10 November 2026) | -| `D-136` | `decisions.md`:1702 | D-136. Feature batch 3 (shift change and follow-up): two signed values (10 November 2026) | -| `D-138` | `decisions.md`:1714 | D-138. Phone alert urgency by kind (10 November 2026) | -| `D-139` | `decisions.md`:1720 | D-139. Phone Statistics ward list A to Z, and leave return times as typed (10 November 2026) | -| `D-143` | `decisions.md`:1730 | D-143. MHERT is MHERL in the glossary; SMHMR deferred (11 November 2026) | -| `D-144` | `decisions.md`:1738 | D-144. Chip rows move only sideways on a phone (11 November 2026) | -| `D-147` | `decisions.md`:1744 | D-147. Demo-code tries keep per-address keying until a trusted proxy is set (11 November 2026) | +| ↳ | `decisions.md`:769 | D-46. Every page has a focal part, a part of its own, a page-specific hero and command-bar action rules (9 October 2026) | +| `D-47` | `decisions.md`:775 | D-47. Glass stays about 80% opaque with the top sheen kept (10 October 2026) | +| `D-48` | `decisions.md`:781 | D-48. Figures stay in Geist Mono with tabular digits while chart axes use Geist Sans (10 October 2026) | +| `D-49` | `decisions.md`:787 | D-49. Ward Flow 44px default row target (dense 36px, touch 52px) vs retired 48px PsychSift tap knob (10 October 2026) | +| `D-50` | `decisions.md`:793 | D-50. Neutral T1 urgency pill vs Form 1A amber statutory warning badge (10 October 2026) | +| `D-51` | `decisions.md`:799 | D-51. Delays filters hide rows with a stated hidden count while other queues highlight by default (10 October 2026) | +| `D-52` | `decisions.md`:806 | D-52. 10 October page review rulings: time-axis overdue zone, 15px/20px strip figures, 8px people pips and incremental shared parts (10 October 2026) | +| `D-53` | `decisions.md`:812 | D-53. Elevate design language and Glare mode adopted for Design System v9 (10 October 2026) | +| `D-54` | `decisions.md`:819 | D-54. Tier time thresholds remain synthetic demo values requiring clinical sign-off (10 October 2026) | +| `D-55` | `decisions.md`:827 | D-55. Supabase is Ward Flow's database and sign-in provider, and Azure is retired (15 October 2026) | +| `D-56` | `decisions.md`:833 | D-56. Josh signs the clinical values that have a recorded source, for the prototype (15 October 2026) | +| `D-57` | `decisions.md`:839 | D-57. Twenty Top 25 items move from the showcase into the real screens, each behind its own flag (15 October 2026) | +| `D-58` | `decisions.md`:866 | D-58. Josh signs three more clinical values that have a national source, for the prototype (15 October 2026) | +| `D-59` | `decisions.md`:872 | D-59. Each role sees only what it needs, from one access table (15 October 2026) | +| `D-60` | `decisions.md`:878 | D-60. Criteria led discharge, for voluntary patients only (15 October 2026) | +| `D-61` | `decisions.md`:887 | D-61. Tasks and Alerts are one queue called Alerts (16 October 2026) | +| `D-62` | `decisions.md`:893 | D-62. The one Alerts queue is signed off and its flag removed (16 October 2026) | +| `D-63` | `decisions.md`:899 | D-63. Josh signs the remaining clinical values and the criteria list, for the prototype (16 October 2026) | +| `D-64` | `decisions.md`:907 | D-64. Criteria led discharge shows on the boards and warns at departure (16 October 2026) | +| `D-65` | `decisions.md`:914 | D-65. Criteria led discharge on in production, typed patient specific criteria, and the AWOL bed hold review paused (17 October 2026) | +| `D-66` | `decisions.md`:930 | D-66. Granted roles work without a second approval (17 October 2026) | +| `D-67` | `decisions.md`:938 | D-67. Recover synthetic form drafts within the browser session (17 October 2026) | +| `D-68` | `decisions.md`:945 | D-68. Bed meeting TV content and access (19 October 2026) | +| `D-69` | `decisions.md`:953 | D-69. A referral with no legal status: "Needs an involuntary-capable bed until status is set." (20 October 2026) | +| `D-70` | `decisions.md`:960 | D-70. No computed Mental Health Act periods: show only the recorded due time (20 October 2026) | +| `D-71` | `decisions.md`:966 | D-71. Audit 1 clinical safety fixes: no suggested wards, wait-order queues, recorded facts only (20 October 2026) | +| `D-72` | `decisions.md`:979 | D-72. Seven product decisions for the 21 October fix plan (21 October 2026) | +| `D-73` | `decisions.md`:995 | D-73. Batch merge safeguards (21 October 2026) | +| `D-74` | `decisions.md`:1011 | D-74. Owner answers to the 21 October open questions (21 October 2026) | +| `D-75` | `decisions.md`:1032 | D-75. UX audit follow-up, page caching, community gaps and the extra-travel bed hold (21 October 2026) | +| `D-76` | `decisions.md`:1045 | D-76. Community referral gaps: the full move journey and asking more wards (21 October 2026) | +| `D-77` | `decisions.md`:1054 | D-77. The ten bigger UX changes approved for build (22 October 2026) | +| `D-78` | `decisions.md`:1074 | D-78. One decline list for wards and coordinators (22 October 2026) | +| `D-79` | `decisions.md`:1085 | D-79. Wards see the full referral, with name and UMRN, before they answer (23 October 2026) | +| `D-80` | `decisions.md`:1096 | D-80. Role access plan version 2: all 17 recommendations (23 October 2026) | +| `D-81` | `decisions.md`:1111 | D-81. Pulled, with a pull time limit, for a bed kept for an incoming patient (24 October 2026) | +| `D-82` | `decisions.md`:1118 | D-82. A PR may raise a phone size limit by up to 5 KB per screen without asking (26 October 2026) | +| `D-83` | `decisions.md`:1126 | D-83. Patient names stay in full on every screen, copy and TV; privacy work must not make the app less useful (26 October 2026) | +| `D-84` | `decisions.md`:1137 | D-84. The live app stays on Railway Singapore for now, and there is no server-side TV account yet (26 October 2026) | +| `D-85` | `decisions.md`:1145 | D-85. "Held" only for a bed kept for its own patient; "pulled" for an incoming bed; "held up" for a delay (26 October 2026) | +| `D-86` | `decisions.md`:1152 | D-86. No second approver for role grants, at pilot or otherwise (27 October 2026) | +| `D-87` | `decisions.md`:1159 | D-87. D-36 and D-37 are replaced by the real-data gate (27 October 2026) | +| `D-88` | `decisions.md`:1171 | D-88. The public demo opens with a demo code once the front door is on (27 October 2026) | +| `D-89` | `decisions.md`:1178 | D-89. Redesign mock-up copies of large screens may pass the 1,500-line cap (30 October 2026) | +| `D-90` | `decisions.md`:1186 | D-90. Help gets How do I…, Show me runs everywhere, and Help is built without a separate mock-up step (30 October 2026) | +| `D-91` | `decisions.md`:1197 | D-91. One design home for the redesign, and Josh's answers on Help, Settings, search and notifications (31 October 2026) | +| `D-92` | `decisions.md`:1232 | D-92. Help goes live before its mock-up review, one search box on Capacity, and referral rows on Home open the panel (31 October 2026) | +| `D-93` | `decisions.md`:1242 | D-93. Legal form times show only as typed, never as a countdown (31 October 2026) | +| `D-94` | `decisions.md`:1250 | D-94. Design rulings of 31 October 2026 | +| `D-95` | `decisions.md`:1263 | D-95. One page scroll, and a click outside closes a drawer (3 November 2026) | +| `D-96` | `decisions.md`:1273 | D-96. A named bed is pulled, and its patient is not also waiting (8 November 2026) | +| `D-97` | `decisions.md`:1283 | D-97. Owner answers on seven open items: N21, N25, N26, N29, N40, N41 and WF-B008 (8 November 2026) | +| `D-98` | `decisions.md`:1296 | D-98. Friction pass: Quick bar, Patient peek and Ward peek (8 November 2026) | +| `D-99` | `decisions.md`:1305 | D-99. "Real details" in the referral drawer's sample patients (25 September 2026) | +| `D-100` | `decisions.md`:1311 | D-100. "Under a form" means one rule everywhere (9 November 2026) | +| `D-101` | `decisions.md`:1318 | D-101. Clinically ready for discharge, with one delay reason (9 November 2026) | +| `D-102` | `decisions.md`:1327 | D-102. Report-a-problem screenshots are blurred, and patient-table exports carry no names (9 November 2026) | +| `D-103` | `decisions.md`:1336 | D-103. Any coordinator on shift may mark a bed override reviewed (9 November 2026) | +| `D-104` | `decisions.md`:1343 | D-104. Care plans and safety flags: five defaults (9 November 2026) | +| `D-105` | `decisions.md`:1355 | D-105. Optional clerk details on the patient record (8 November 2026) | +| `D-106` | `decisions.md`:1362 | D-106. Clinical values from the 9 November 2026 documentation audit (9 November 2026) | +| `D-107` | `decisions.md`:1374 | D-107. Working rules and documentation from the 9 November 2026 audit (9 November 2026) | +| `D-108` | `decisions.md`:1388 | D-108. Six bed-flow features: keep D-93 and D-72, ED long-wait next steps (9 November 2026) | +| `D-109` | `decisions.md`:1397 | D-109. Home's bed alert line tests the whole number shown (9 November 2026) | +| `D-110` | `decisions.md`:1404 | D-110. ED and referral flow: neutral fit line, clearance timing and alternatives to admission (9 November 2026) | +| `D-111` | `decisions.md`:1414 | D-111. Review and audit plan: first guards and four open answers (9 November 2026) | +| `D-112` | `decisions.md`:1428 | D-112. Phone bottom bar: the floating bar (9 November 2026) | +| `D-113` | `decisions.md`:1437 | D-113. Second patient identifier on accept and Mark done; no initials search (9 November 2026) | +| `D-114` | `decisions.md`:1447 | D-114. Allow pull_request_target for three workflows only (9 November 2026) | +| `D-115` | `decisions.md`:1455 | D-115. One count on every screen, and a missing patient shown everywhere (9 November 2026) | +| `D-116` | `decisions.md`:1469 | D-116. Page tops: the PR #1581 recommendations stand (9 November 2026) | +| `D-117` | `decisions.md`:1486 | D-117. Care plans follow-up: frequent presenter count, tribunal date and ward flags (10 November 2026) | +| `D-118` | `decisions.md`:1495 | D-118. Page tops: Referrals and Ward phone limits up to 8 KB above main (10 November 2026) | +| `D-119` | `decisions.md`:1501 | D-119. Page tops: phone limits raised to measured sizes, trim after merge (10 November 2026) | +| `D-120` | `decisions.md`:1508 | D-120. Discharge and capacity values: pull limit, transport delay and discharge date slip (9 November 2026) | +| `D-121` | `decisions.md`:1517 | D-121. Working rules, guards and your PC from the 10 November 2026 audit (10 November 2026) | +| `D-122` | `decisions.md`:1531 | D-122. Clinical and privacy answers from the 10 November 2026 audit (10 November 2026) | +| `D-123` | `decisions.md`:1544 | D-123. Master audit list answers: two clinical fixes and five working rules (10 November 2026) | +| `D-124` | `decisions.md`:1558 | D-124. Offline saves whose record changed are refused and shown (10 November 2026) | +| `D-125` | `decisions.md`:1565 | D-125. Top 10 audit follow-ups approved (10 November 2026) | +| `D-126` | `decisions.md`:1577 | D-126. Ranked lists: neutral orders approved (10 November 2026) | +| `D-127` | `decisions.md`:1596 | D-127. Neutral wording for a community treatment order at arrival (10 November 2026) | +| `D-128` | `decisions.md`:1603 | D-128. Final master audit: nine answers (10 November 2026) | +| `D-129` | `decisions.md`:1618 | D-129. Master audit findings: every recommendation approved (10 November 2026) | +| `D-130` | `decisions.md`:1668 | D-130. Audit follow-ups: every remaining recommendation approved (10 November 2026) | +| `D-131` | `decisions.md`:1684 | D-131. Hard-case demo data allowed, and the movement diagram follows the engine (10 November 2026) | +| `D-132` | `decisions.md`:1693 | D-132. Audit fixes group 1: docs and CI guards (10 November 2026) | +| `D-136` | `decisions.md`:1703 | D-136. Feature batch 3 (shift change and follow-up): two signed values (10 November 2026) | +| `D-137` | `decisions.md`:1715 | D-137. Feature build batch 5: count leak first, TV change mark and QR library (10 November 2026) | +| `D-138` | `decisions.md`:1731 | D-138. Phone alert urgency by kind (10 November 2026) | +| `D-139` | `decisions.md`:1737 | D-139. Phone Statistics ward list A to Z, and leave return times as typed (10 November 2026) | +| `D-143` | `decisions.md`:1747 | D-143. MHERT is MHERL in the glossary; SMHMR deferred (11 November 2026) | +| `D-144` | `decisions.md`:1755 | D-144. Chip rows move only sideways on a phone (11 November 2026) | +| `D-147` | `decisions.md`:1761 | D-147. Demo-code tries keep per-address keying until a trusted proxy is set (11 November 2026) | | `D9-1` | `../history/archive/dated-notes/ward-flow-phase-9-decisions.md`:62 | D9-1 — The wait becomes prominent, and its ceiling is removed; it never outranks urgency (SESSION) | | `D9-2` | `../history/archive/dated-notes/ward-flow-phase-9-decisions.md`:102 | D9-2 — Declaring escalation records it and marks the screens, and changes nothing else (SESSION, and partly blocked) | | `D9-3` | `../history/archive/dated-notes/ward-flow-phase-9-decisions.md`:126 | D9-3 — The retrospective is one person's journey replayed, plus the ward prediction track record last (SESSION) | @@ -617,146 +618,147 @@ safe global key across 30 files. **Title:** Ward Flow — decision log -138 item(s): - -- `D-1` — line 167, heading: "D-1. Ward Flow is local only, with no linked repository (Replaced by D-27)" -- `D-2` — line 177, heading: "D-2. Railway is disconnected" -- `D-3` — line 188, heading: "D-3. The PsychSift and Database code is being retired from Ward Flow" -- `D-4` — line 196, heading: "D-4. Synthetic patients only" -- `D-5` — line 204, heading: "D-5. Parallel threads in separate worktrees, folded one at a time" -- `D-6` — line 215, heading: "D-6. Aboriginal cultural safety review deferred" -- `D-7` — line 223, heading: "D-7. The first four milestones, in this order" -- `D-8` — line 235, heading: "D-8. Josh's standing rulings, numbered R1 to R16, for every session and tool" -- `D-9` — line 267, heading: "D-9. Josh's rulings of 25 September, 11:43 to 12:00 (R17 to R21)" -- `D-10` — line 281, heading: "D-10. Gate build type check (R22)" -- `D-11` — line 290, heading: "D-11. Rulings of 25 September, 12:41 (R23 to R25)" -- `D-12` — line 306, heading: "D-12. Rulings of 25 September, 12:43 (R26 to R31)" -- `D-13` — line 325, heading: "D-13. Tooling tests in batch gates (R32)" -- `D-14` — line 335, heading: "D-14. Standing defaults: decide small things without asking" -- `D-15` — line 347, heading: "D-15. Rulings of 25 September, 13:26 (R33 to R35)" -- `D-16` — line 360, heading: "D-16. Legal overrides and form receipts, 25 September 13:51 UTC" -- `D-17` — line 373, heading: "D-17. Morning roll-up time is Josh's own default (25 September)" -- `D-18` — line 384, heading: "D-18. The privacy lock stops saving only for typed text (25 September)" -- `D-19` — line 395, heading: "D-19. Rulings of 25 September, evening (walkthrough, leave beds, PsychSift, gender display)" -- `D-20` — line 425, heading: "D-20. One high-contrast colour check retired (26 September)" -- `D-21` — line 438, heading: "D-21. Coordinator bed board: all nine recommended answers (26 September)" -- `D-22` — line 450, heading: "D-22. No legal limits in hour rules; the rest are labelled defaults (26 September)" -- `D-23` — line 466, heading: "D-23. Leave-bed fields kept; patient search stops matching by ward (26 September)" -- `D-24` — line 480, heading: "D-24. Hour-rules morning list: all A (26 September)" -- `D-25` — line 504, heading: "D-25. The lone-patient check counts free beds on both matching paths (26 September)" -- `D-26` — line 512, heading: "D-26. Select fold checks by changed risk (27 September)" -- `D-27` — line 530, heading: "D-27. Ward Flow uses its dedicated repository (28 September)" -- `D-28` — line 543, heading: "D-28. Design Modernization & Anti-Box Architecture (30 September 2026)" -- `D-29` — line 557, heading: "D-29. Act time limits shown as a labelled synthetic demo (4 October 2026)" -- `D-30` — line 572, heading: "D-30. Central Coordinator Approval for Inter-Ward Bed Transfers (6 October 2026)" -- `D-31` — line 579, heading: "D-31. Gender-Diverse Bed Placement Policy & Clinical Override Safety (6 October 2026)" -- `D-32` — line 586, heading: "D-32. FIFO Waiting Time with Clinical Triage Badging vs Algorithmic Urgency Sorting (6 October 2026)" -- `D-33` — line 593, heading: "D-33. Separation of Local Ward Shift Notes from Statewide Coordinator Telemetry (6 October 2026)" -- `D-34` — line 600, heading: "D-34. Acute Medical Deterioration Bed Release and Escalation Protocol (6 October 2026)" -- `D-35` — line 607, heading: "D-35. Deferral of Regional Multi-Leg Transport & RFDS Repatriation (6 October 2026)" -- `D-36` — line 614, heading: "D-36. Affirmation of External Governance & Clinical Safety Hard Gates (6 October 2026) (Replaced by D-87)" -- `D-37` — line 629, heading: "D-37. External Governance Hard Gate Operational Postures & Resolution Roadmap (6 October 2026) (Replaced by D-87)" -- `D-38` — line 656, heading: "D-38. Leave, absent without leave and CTO on the Patient page (9 October 2026)" -- `D-39` — line 674, heading: "D-39. Patients are identified by UMRN, never by a WF number (9 October 2026)" -- `D-40` — line 718, heading: "D-40. A second community treatment order keeps the first (9 October 2026)" -- `D-41` — line 729, heading: "D-41. Delays board filters narrow the table and state the hidden count (9 October 2026)" -- `D-42` — line 742, heading: "D-42. 12px typography floor with no uppercase exception reaffirmed in Design System v9 (9–10 October 2026)" -- `D-43` — line 748, heading: "D-43. Colour lives in glyphs and the hero; red means act now with a thin 1px edge, never a fill (9 October 2026)" -- `D-44` — line 755, heading: "D-44. Compact sizing, white cards and smaller text retained over expression-test card tints (9 October 2026)" -- `D-45` — line 761, heading: "D-45. Phone is its own 390×844 design, never a desktop reflow (9 October 2026)" -- `D-46` — line 768, heading: "D-46. Every page has a focal part, a part of its own, a page-specific hero and command-bar action rules (9 October 2026)" -- `D-47` — line 774, heading: "D-47. Glass stays about 80% opaque with the top sheen kept (10 October 2026)" -- `D-48` — line 780, heading: "D-48. Figures stay in Geist Mono with tabular digits while chart axes use Geist Sans (10 October 2026)" -- `D-49` — line 786, heading: "D-49. Ward Flow 44px default row target (dense 36px, touch 52px) vs retired 48px PsychSift tap knob (10 October 2026)" -- `D-50` — line 792, heading: "D-50. Neutral T1 urgency pill vs Form 1A amber statutory warning badge (10 October 2026)" -- `D-51` — line 798, heading: "D-51. Delays filters hide rows with a stated hidden count while other queues highlight by default (10 October 2026)" -- `D-52` — line 805, heading: "D-52. 10 October page review rulings: time-axis overdue zone, 15px/20px strip figures, 8px people pips and incremental shared parts (10 October 2026)" -- `D-53` — line 811, heading: "D-53. Elevate design language and Glare mode adopted for Design System v9 (10 October 2026)" -- `D-54` — line 818, heading: "D-54. Tier time thresholds remain synthetic demo values requiring clinical sign-off (10 October 2026)" -- `D-55` — line 826, heading: "D-55. Supabase is Ward Flow's database and sign-in provider, and Azure is retired (15 October 2026)" -- `D-56` — line 832, heading: "D-56. Josh signs the clinical values that have a recorded source, for the prototype (15 October 2026)" -- `D-57` — line 838, heading: "D-57. Twenty Top 25 items move from the showcase into the real screens, each behind its own flag (15 October 2026)" -- `D-58` — line 865, heading: "D-58. Josh signs three more clinical values that have a national source, for the prototype (15 October 2026)" -- `D-59` — line 871, heading: "D-59. Each role sees only what it needs, from one access table (15 October 2026)" -- `D-60` — line 877, heading: "D-60. Criteria led discharge, for voluntary patients only (15 October 2026)" -- `D-61` — line 886, heading: "D-61. Tasks and Alerts are one queue called Alerts (16 October 2026)" -- `D-62` — line 892, heading: "D-62. The one Alerts queue is signed off and its flag removed (16 October 2026)" -- `D-63` — line 898, heading: "D-63. Josh signs the remaining clinical values and the criteria list, for the prototype (16 October 2026)" -- `D-64` — line 906, heading: "D-64. Criteria led discharge shows on the boards and warns at departure (16 October 2026)" -- `D-65` — line 913, heading: "D-65. Criteria led discharge on in production, typed patient specific criteria, and the AWOL bed hold review paused (17 October 2026)" -- `D-66` — line 929, heading: "D-66. Granted roles work without a second approval (17 October 2026)" -- `D-67` — line 937, heading: "D-67. Recover synthetic form drafts within the browser session (17 October 2026)" -- `D-68` — line 944, heading: "D-68. Bed meeting TV content and access (19 October 2026)" -- `D-69` — line 952, heading: "D-69. A referral with no legal status: "Needs an involuntary-capable bed until status is set." (20 October 2026)" -- `D-70` — line 959, heading: "D-70. No computed Mental Health Act periods: show only the recorded due time (20 October 2026)" -- `D-71` — line 965, heading: "D-71. Audit 1 clinical safety fixes: no suggested wards, wait-order queues, recorded facts only (20 October 2026)" -- `D-72` — line 978, heading: "D-72. Seven product decisions for the 21 October fix plan (21 October 2026)" -- `D-73` — line 994, heading: "D-73. Batch merge safeguards (21 October 2026)" -- `D-74` — line 1010, heading: "D-74. Owner answers to the 21 October open questions (21 October 2026)" -- `D-75` — line 1031, heading: "D-75. UX audit follow-up, page caching, community gaps and the extra-travel bed hold (21 October 2026)" -- `D-76` — line 1044, heading: "D-76. Community referral gaps: the full move journey and asking more wards (21 October 2026)" -- `D-77` — line 1053, heading: "D-77. The ten bigger UX changes approved for build (22 October 2026)" -- `D-78` — line 1073, heading: "D-78. One decline list for wards and coordinators (22 October 2026)" -- `D-79` — line 1084, heading: "D-79. Wards see the full referral, with name and UMRN, before they answer (23 October 2026)" -- `D-80` — line 1095, heading: "D-80. Role access plan version 2: all 17 recommendations (23 October 2026)" -- `D-81` — line 1110, heading: "D-81. Pulled, with a pull time limit, for a bed kept for an incoming patient (24 October 2026)" -- `D-82` — line 1117, heading: "D-82. A PR may raise a phone size limit by up to 5 KB per screen without asking (26 October 2026)" -- `D-83` — line 1125, heading: "D-83. Patient names stay in full on every screen, copy and TV; privacy work must not make the app less useful (26 October 2026)" -- `D-84` — line 1136, heading: "D-84. The live app stays on Railway Singapore for now, and there is no server-side TV account yet (26 October 2026)" -- `D-85` — line 1144, heading: "D-85. "Held" only for a bed kept for its own patient; "pulled" for an incoming bed; "held up" for a delay (26 October 2026)" -- `D-86` — line 1151, heading: "D-86. No second approver for role grants, at pilot or otherwise (27 October 2026)" -- `D-87` — line 1158, heading: "D-87. D-36 and D-37 are replaced by the real-data gate (27 October 2026)" -- `D-88` — line 1170, heading: "D-88. The public demo opens with a demo code once the front door is on (27 October 2026)" -- `D-89` — line 1177, heading: "D-89. Redesign mock-up copies of large screens may pass the 1,500-line cap (30 October 2026)" -- `D-90` — line 1185, heading: "D-90. Help gets How do I…, Show me runs everywhere, and Help is built without a separate mock-up step (30 October 2026)" -- `D-91` — line 1196, heading: "D-91. One design home for the redesign, and Josh's answers on Help, Settings, search and notifications (31 October 2026)" -- `D-92` — line 1231, heading: "D-92. Help goes live before its mock-up review, one search box on Capacity, and referral rows on Home open the panel (31 October 2026)" -- `D-93` — line 1241, heading: "D-93. Legal form times show only as typed, never as a countdown (31 October 2026)" -- `D-94` — line 1249, heading: "D-94. Design rulings of 31 October 2026" -- `D-95` — line 1262, heading: "D-95. One page scroll, and a click outside closes a drawer (3 November 2026)" -- `D-96` — line 1272, heading: "D-96. A named bed is pulled, and its patient is not also waiting (8 November 2026)" -- `D-97` — line 1282, heading: "D-97. Owner answers on seven open items: N21, N25, N26, N29, N40, N41 and WF-B008 (8 November 2026)" -- `D-98` — line 1295, heading: "D-98. Friction pass: Quick bar, Patient peek and Ward peek (8 November 2026)" -- `D-99` — line 1304, heading: "D-99. "Real details" in the referral drawer's sample patients (25 September 2026)" -- `D-100` — line 1310, heading: "D-100. "Under a form" means one rule everywhere (9 November 2026)" -- `D-101` — line 1317, heading: "D-101. Clinically ready for discharge, with one delay reason (9 November 2026)" -- `D-102` — line 1326, heading: "D-102. Report-a-problem screenshots are blurred, and patient-table exports carry no names (9 November 2026)" -- `D-103` — line 1335, heading: "D-103. Any coordinator on shift may mark a bed override reviewed (9 November 2026)" -- `D-104` — line 1342, heading: "D-104. Care plans and safety flags: five defaults (9 November 2026)" -- `D-105` — line 1354, heading: "D-105. Optional clerk details on the patient record (8 November 2026)" -- `D-106` — line 1361, heading: "D-106. Clinical values from the 9 November 2026 documentation audit (9 November 2026)" -- `D-107` — line 1373, heading: "D-107. Working rules and documentation from the 9 November 2026 audit (9 November 2026)" -- `D-108` — line 1387, heading: "D-108. Six bed-flow features: keep D-93 and D-72, ED long-wait next steps (9 November 2026)" -- `D-109` — line 1396, heading: "D-109. Home's bed alert line tests the whole number shown (9 November 2026)" -- `D-110` — line 1403, heading: "D-110. ED and referral flow: neutral fit line, clearance timing and alternatives to admission (9 November 2026)" -- `D-111` — line 1413, heading: "D-111. Review and audit plan: first guards and four open answers (9 November 2026)" -- `D-112` — line 1427, heading: "D-112. Phone bottom bar: the floating bar (9 November 2026)" -- `D-113` — line 1436, heading: "D-113. Second patient identifier on accept and Mark done; no initials search (9 November 2026)" -- `D-114` — line 1446, heading: "D-114. Allow pull_request_target for three workflows only (9 November 2026)" -- `D-115` — line 1454, heading: "D-115. One count on every screen, and a missing patient shown everywhere (9 November 2026)" -- `D-116` — line 1468, heading: "D-116. Page tops: the PR #1581 recommendations stand (9 November 2026)" -- `D-117` — line 1485, heading: "D-117. Care plans follow-up: frequent presenter count, tribunal date and ward flags (10 November 2026)" -- `D-118` — line 1494, heading: "D-118. Page tops: Referrals and Ward phone limits up to 8 KB above main (10 November 2026)" -- `D-119` — line 1500, heading: "D-119. Page tops: phone limits raised to measured sizes, trim after merge (10 November 2026)" -- `D-120` — line 1507, heading: "D-120. Discharge and capacity values: pull limit, transport delay and discharge date slip (9 November 2026)" -- `D-121` — line 1516, heading: "D-121. Working rules, guards and your PC from the 10 November 2026 audit (10 November 2026)" -- `D-122` — line 1530, heading: "D-122. Clinical and privacy answers from the 10 November 2026 audit (10 November 2026)" -- `D-123` — line 1543, heading: "D-123. Master audit list answers: two clinical fixes and five working rules (10 November 2026)" -- `D-124` — line 1557, heading: "D-124. Offline saves whose record changed are refused and shown (10 November 2026)" -- `D-125` — line 1564, heading: "D-125. Top 10 audit follow-ups approved (10 November 2026)" -- `D-126` — line 1576, heading: "D-126. Ranked lists: neutral orders approved (10 November 2026)" -- `D-127` — line 1595, heading: "D-127. Neutral wording for a community treatment order at arrival (10 November 2026)" -- `D-128` — line 1602, heading: "D-128. Final master audit: nine answers (10 November 2026)" -- `D-129` — line 1617, heading: "D-129. Master audit findings: every recommendation approved (10 November 2026)" -- `D-130` — line 1667, heading: "D-130. Audit follow-ups: every remaining recommendation approved (10 November 2026)" -- `D-131` — line 1683, heading: "D-131. Hard-case demo data allowed, and the movement diagram follows the engine (10 November 2026)" -- `D-132` — line 1692, heading: "D-132. Audit fixes group 1: docs and CI guards (10 November 2026)" -- `D-136` — line 1702, heading: "D-136. Feature batch 3 (shift change and follow-up): two signed values (10 November 2026)" -- `D-138` — line 1714, heading: "D-138. Phone alert urgency by kind (10 November 2026)" -- `D-139` — line 1720, heading: "D-139. Phone Statistics ward list A to Z, and leave return times as typed (10 November 2026)" -- `D-143` — line 1730, heading: "D-143. MHERT is MHERL in the glossary; SMHMR deferred (11 November 2026)" -- `D-144` — line 1738, heading: "D-144. Chip rows move only sideways on a phone (11 November 2026)" -- `D-147` — line 1744, heading: "D-147. Demo-code tries keep per-address keying until a trusted proxy is set (11 November 2026)" +139 item(s): + +- `D-1` — line 168, heading: "D-1. Ward Flow is local only, with no linked repository (Replaced by D-27)" +- `D-2` — line 178, heading: "D-2. Railway is disconnected" +- `D-3` — line 189, heading: "D-3. The PsychSift and Database code is being retired from Ward Flow" +- `D-4` — line 197, heading: "D-4. Synthetic patients only" +- `D-5` — line 205, heading: "D-5. Parallel threads in separate worktrees, folded one at a time" +- `D-6` — line 216, heading: "D-6. Aboriginal cultural safety review deferred" +- `D-7` — line 224, heading: "D-7. The first four milestones, in this order" +- `D-8` — line 236, heading: "D-8. Josh's standing rulings, numbered R1 to R16, for every session and tool" +- `D-9` — line 268, heading: "D-9. Josh's rulings of 25 September, 11:43 to 12:00 (R17 to R21)" +- `D-10` — line 282, heading: "D-10. Gate build type check (R22)" +- `D-11` — line 291, heading: "D-11. Rulings of 25 September, 12:41 (R23 to R25)" +- `D-12` — line 307, heading: "D-12. Rulings of 25 September, 12:43 (R26 to R31)" +- `D-13` — line 326, heading: "D-13. Tooling tests in batch gates (R32)" +- `D-14` — line 336, heading: "D-14. Standing defaults: decide small things without asking" +- `D-15` — line 348, heading: "D-15. Rulings of 25 September, 13:26 (R33 to R35)" +- `D-16` — line 361, heading: "D-16. Legal overrides and form receipts, 25 September 13:51 UTC" +- `D-17` — line 374, heading: "D-17. Morning roll-up time is Josh's own default (25 September)" +- `D-18` — line 385, heading: "D-18. The privacy lock stops saving only for typed text (25 September)" +- `D-19` — line 396, heading: "D-19. Rulings of 25 September, evening (walkthrough, leave beds, PsychSift, gender display)" +- `D-20` — line 426, heading: "D-20. One high-contrast colour check retired (26 September)" +- `D-21` — line 439, heading: "D-21. Coordinator bed board: all nine recommended answers (26 September)" +- `D-22` — line 451, heading: "D-22. No legal limits in hour rules; the rest are labelled defaults (26 September)" +- `D-23` — line 467, heading: "D-23. Leave-bed fields kept; patient search stops matching by ward (26 September)" +- `D-24` — line 481, heading: "D-24. Hour-rules morning list: all A (26 September)" +- `D-25` — line 505, heading: "D-25. The lone-patient check counts free beds on both matching paths (26 September)" +- `D-26` — line 513, heading: "D-26. Select fold checks by changed risk (27 September)" +- `D-27` — line 531, heading: "D-27. Ward Flow uses its dedicated repository (28 September)" +- `D-28` — line 544, heading: "D-28. Design Modernization & Anti-Box Architecture (30 September 2026)" +- `D-29` — line 558, heading: "D-29. Act time limits shown as a labelled synthetic demo (4 October 2026)" +- `D-30` — line 573, heading: "D-30. Central Coordinator Approval for Inter-Ward Bed Transfers (6 October 2026)" +- `D-31` — line 580, heading: "D-31. Gender-Diverse Bed Placement Policy & Clinical Override Safety (6 October 2026)" +- `D-32` — line 587, heading: "D-32. FIFO Waiting Time with Clinical Triage Badging vs Algorithmic Urgency Sorting (6 October 2026)" +- `D-33` — line 594, heading: "D-33. Separation of Local Ward Shift Notes from Statewide Coordinator Telemetry (6 October 2026)" +- `D-34` — line 601, heading: "D-34. Acute Medical Deterioration Bed Release and Escalation Protocol (6 October 2026)" +- `D-35` — line 608, heading: "D-35. Deferral of Regional Multi-Leg Transport & RFDS Repatriation (6 October 2026)" +- `D-36` — line 615, heading: "D-36. Affirmation of External Governance & Clinical Safety Hard Gates (6 October 2026) (Replaced by D-87)" +- `D-37` — line 630, heading: "D-37. External Governance Hard Gate Operational Postures & Resolution Roadmap (6 October 2026) (Replaced by D-87)" +- `D-38` — line 657, heading: "D-38. Leave, absent without leave and CTO on the Patient page (9 October 2026)" +- `D-39` — line 675, heading: "D-39. Patients are identified by UMRN, never by a WF number (9 October 2026)" +- `D-40` — line 719, heading: "D-40. A second community treatment order keeps the first (9 October 2026)" +- `D-41` — line 730, heading: "D-41. Delays board filters narrow the table and state the hidden count (9 October 2026)" +- `D-42` — line 743, heading: "D-42. 12px typography floor with no uppercase exception reaffirmed in Design System v9 (9–10 October 2026)" +- `D-43` — line 749, heading: "D-43. Colour lives in glyphs and the hero; red means act now with a thin 1px edge, never a fill (9 October 2026)" +- `D-44` — line 756, heading: "D-44. Compact sizing, white cards and smaller text retained over expression-test card tints (9 October 2026)" +- `D-45` — line 762, heading: "D-45. Phone is its own 390×844 design, never a desktop reflow (9 October 2026)" +- `D-46` — line 769, heading: "D-46. Every page has a focal part, a part of its own, a page-specific hero and command-bar action rules (9 October 2026)" +- `D-47` — line 775, heading: "D-47. Glass stays about 80% opaque with the top sheen kept (10 October 2026)" +- `D-48` — line 781, heading: "D-48. Figures stay in Geist Mono with tabular digits while chart axes use Geist Sans (10 October 2026)" +- `D-49` — line 787, heading: "D-49. Ward Flow 44px default row target (dense 36px, touch 52px) vs retired 48px PsychSift tap knob (10 October 2026)" +- `D-50` — line 793, heading: "D-50. Neutral T1 urgency pill vs Form 1A amber statutory warning badge (10 October 2026)" +- `D-51` — line 799, heading: "D-51. Delays filters hide rows with a stated hidden count while other queues highlight by default (10 October 2026)" +- `D-52` — line 806, heading: "D-52. 10 October page review rulings: time-axis overdue zone, 15px/20px strip figures, 8px people pips and incremental shared parts (10 October 2026)" +- `D-53` — line 812, heading: "D-53. Elevate design language and Glare mode adopted for Design System v9 (10 October 2026)" +- `D-54` — line 819, heading: "D-54. Tier time thresholds remain synthetic demo values requiring clinical sign-off (10 October 2026)" +- `D-55` — line 827, heading: "D-55. Supabase is Ward Flow's database and sign-in provider, and Azure is retired (15 October 2026)" +- `D-56` — line 833, heading: "D-56. Josh signs the clinical values that have a recorded source, for the prototype (15 October 2026)" +- `D-57` — line 839, heading: "D-57. Twenty Top 25 items move from the showcase into the real screens, each behind its own flag (15 October 2026)" +- `D-58` — line 866, heading: "D-58. Josh signs three more clinical values that have a national source, for the prototype (15 October 2026)" +- `D-59` — line 872, heading: "D-59. Each role sees only what it needs, from one access table (15 October 2026)" +- `D-60` — line 878, heading: "D-60. Criteria led discharge, for voluntary patients only (15 October 2026)" +- `D-61` — line 887, heading: "D-61. Tasks and Alerts are one queue called Alerts (16 October 2026)" +- `D-62` — line 893, heading: "D-62. The one Alerts queue is signed off and its flag removed (16 October 2026)" +- `D-63` — line 899, heading: "D-63. Josh signs the remaining clinical values and the criteria list, for the prototype (16 October 2026)" +- `D-64` — line 907, heading: "D-64. Criteria led discharge shows on the boards and warns at departure (16 October 2026)" +- `D-65` — line 914, heading: "D-65. Criteria led discharge on in production, typed patient specific criteria, and the AWOL bed hold review paused (17 October 2026)" +- `D-66` — line 930, heading: "D-66. Granted roles work without a second approval (17 October 2026)" +- `D-67` — line 938, heading: "D-67. Recover synthetic form drafts within the browser session (17 October 2026)" +- `D-68` — line 945, heading: "D-68. Bed meeting TV content and access (19 October 2026)" +- `D-69` — line 953, heading: "D-69. A referral with no legal status: "Needs an involuntary-capable bed until status is set." (20 October 2026)" +- `D-70` — line 960, heading: "D-70. No computed Mental Health Act periods: show only the recorded due time (20 October 2026)" +- `D-71` — line 966, heading: "D-71. Audit 1 clinical safety fixes: no suggested wards, wait-order queues, recorded facts only (20 October 2026)" +- `D-72` — line 979, heading: "D-72. Seven product decisions for the 21 October fix plan (21 October 2026)" +- `D-73` — line 995, heading: "D-73. Batch merge safeguards (21 October 2026)" +- `D-74` — line 1011, heading: "D-74. Owner answers to the 21 October open questions (21 October 2026)" +- `D-75` — line 1032, heading: "D-75. UX audit follow-up, page caching, community gaps and the extra-travel bed hold (21 October 2026)" +- `D-76` — line 1045, heading: "D-76. Community referral gaps: the full move journey and asking more wards (21 October 2026)" +- `D-77` — line 1054, heading: "D-77. The ten bigger UX changes approved for build (22 October 2026)" +- `D-78` — line 1074, heading: "D-78. One decline list for wards and coordinators (22 October 2026)" +- `D-79` — line 1085, heading: "D-79. Wards see the full referral, with name and UMRN, before they answer (23 October 2026)" +- `D-80` — line 1096, heading: "D-80. Role access plan version 2: all 17 recommendations (23 October 2026)" +- `D-81` — line 1111, heading: "D-81. Pulled, with a pull time limit, for a bed kept for an incoming patient (24 October 2026)" +- `D-82` — line 1118, heading: "D-82. A PR may raise a phone size limit by up to 5 KB per screen without asking (26 October 2026)" +- `D-83` — line 1126, heading: "D-83. Patient names stay in full on every screen, copy and TV; privacy work must not make the app less useful (26 October 2026)" +- `D-84` — line 1137, heading: "D-84. The live app stays on Railway Singapore for now, and there is no server-side TV account yet (26 October 2026)" +- `D-85` — line 1145, heading: "D-85. "Held" only for a bed kept for its own patient; "pulled" for an incoming bed; "held up" for a delay (26 October 2026)" +- `D-86` — line 1152, heading: "D-86. No second approver for role grants, at pilot or otherwise (27 October 2026)" +- `D-87` — line 1159, heading: "D-87. D-36 and D-37 are replaced by the real-data gate (27 October 2026)" +- `D-88` — line 1171, heading: "D-88. The public demo opens with a demo code once the front door is on (27 October 2026)" +- `D-89` — line 1178, heading: "D-89. Redesign mock-up copies of large screens may pass the 1,500-line cap (30 October 2026)" +- `D-90` — line 1186, heading: "D-90. Help gets How do I…, Show me runs everywhere, and Help is built without a separate mock-up step (30 October 2026)" +- `D-91` — line 1197, heading: "D-91. One design home for the redesign, and Josh's answers on Help, Settings, search and notifications (31 October 2026)" +- `D-92` — line 1232, heading: "D-92. Help goes live before its mock-up review, one search box on Capacity, and referral rows on Home open the panel (31 October 2026)" +- `D-93` — line 1242, heading: "D-93. Legal form times show only as typed, never as a countdown (31 October 2026)" +- `D-94` — line 1250, heading: "D-94. Design rulings of 31 October 2026" +- `D-95` — line 1263, heading: "D-95. One page scroll, and a click outside closes a drawer (3 November 2026)" +- `D-96` — line 1273, heading: "D-96. A named bed is pulled, and its patient is not also waiting (8 November 2026)" +- `D-97` — line 1283, heading: "D-97. Owner answers on seven open items: N21, N25, N26, N29, N40, N41 and WF-B008 (8 November 2026)" +- `D-98` — line 1296, heading: "D-98. Friction pass: Quick bar, Patient peek and Ward peek (8 November 2026)" +- `D-99` — line 1305, heading: "D-99. "Real details" in the referral drawer's sample patients (25 September 2026)" +- `D-100` — line 1311, heading: "D-100. "Under a form" means one rule everywhere (9 November 2026)" +- `D-101` — line 1318, heading: "D-101. Clinically ready for discharge, with one delay reason (9 November 2026)" +- `D-102` — line 1327, heading: "D-102. Report-a-problem screenshots are blurred, and patient-table exports carry no names (9 November 2026)" +- `D-103` — line 1336, heading: "D-103. Any coordinator on shift may mark a bed override reviewed (9 November 2026)" +- `D-104` — line 1343, heading: "D-104. Care plans and safety flags: five defaults (9 November 2026)" +- `D-105` — line 1355, heading: "D-105. Optional clerk details on the patient record (8 November 2026)" +- `D-106` — line 1362, heading: "D-106. Clinical values from the 9 November 2026 documentation audit (9 November 2026)" +- `D-107` — line 1374, heading: "D-107. Working rules and documentation from the 9 November 2026 audit (9 November 2026)" +- `D-108` — line 1388, heading: "D-108. Six bed-flow features: keep D-93 and D-72, ED long-wait next steps (9 November 2026)" +- `D-109` — line 1397, heading: "D-109. Home's bed alert line tests the whole number shown (9 November 2026)" +- `D-110` — line 1404, heading: "D-110. ED and referral flow: neutral fit line, clearance timing and alternatives to admission (9 November 2026)" +- `D-111` — line 1414, heading: "D-111. Review and audit plan: first guards and four open answers (9 November 2026)" +- `D-112` — line 1428, heading: "D-112. Phone bottom bar: the floating bar (9 November 2026)" +- `D-113` — line 1437, heading: "D-113. Second patient identifier on accept and Mark done; no initials search (9 November 2026)" +- `D-114` — line 1447, heading: "D-114. Allow pull_request_target for three workflows only (9 November 2026)" +- `D-115` — line 1455, heading: "D-115. One count on every screen, and a missing patient shown everywhere (9 November 2026)" +- `D-116` — line 1469, heading: "D-116. Page tops: the PR #1581 recommendations stand (9 November 2026)" +- `D-117` — line 1486, heading: "D-117. Care plans follow-up: frequent presenter count, tribunal date and ward flags (10 November 2026)" +- `D-118` — line 1495, heading: "D-118. Page tops: Referrals and Ward phone limits up to 8 KB above main (10 November 2026)" +- `D-119` — line 1501, heading: "D-119. Page tops: phone limits raised to measured sizes, trim after merge (10 November 2026)" +- `D-120` — line 1508, heading: "D-120. Discharge and capacity values: pull limit, transport delay and discharge date slip (9 November 2026)" +- `D-121` — line 1517, heading: "D-121. Working rules, guards and your PC from the 10 November 2026 audit (10 November 2026)" +- `D-122` — line 1531, heading: "D-122. Clinical and privacy answers from the 10 November 2026 audit (10 November 2026)" +- `D-123` — line 1544, heading: "D-123. Master audit list answers: two clinical fixes and five working rules (10 November 2026)" +- `D-124` — line 1558, heading: "D-124. Offline saves whose record changed are refused and shown (10 November 2026)" +- `D-125` — line 1565, heading: "D-125. Top 10 audit follow-ups approved (10 November 2026)" +- `D-126` — line 1577, heading: "D-126. Ranked lists: neutral orders approved (10 November 2026)" +- `D-127` — line 1596, heading: "D-127. Neutral wording for a community treatment order at arrival (10 November 2026)" +- `D-128` — line 1603, heading: "D-128. Final master audit: nine answers (10 November 2026)" +- `D-129` — line 1618, heading: "D-129. Master audit findings: every recommendation approved (10 November 2026)" +- `D-130` — line 1668, heading: "D-130. Audit follow-ups: every remaining recommendation approved (10 November 2026)" +- `D-131` — line 1684, heading: "D-131. Hard-case demo data allowed, and the movement diagram follows the engine (10 November 2026)" +- `D-132` — line 1693, heading: "D-132. Audit fixes group 1: docs and CI guards (10 November 2026)" +- `D-136` — line 1703, heading: "D-136. Feature batch 3 (shift change and follow-up): two signed values (10 November 2026)" +- `D-137` — line 1715, heading: "D-137. Feature build batch 5: count leak first, TV change mark and QR library (10 November 2026)" +- `D-138` — line 1731, heading: "D-138. Phone alert urgency by kind (10 November 2026)" +- `D-139` — line 1737, heading: "D-139. Phone Statistics ward list A to Z, and leave return times as typed (10 November 2026)" +- `D-143` — line 1747, heading: "D-143. MHERT is MHERL in the glossary; SMHMR deferred (11 November 2026)" +- `D-144` — line 1755, heading: "D-144. Chip rows move only sideways on a phone (11 November 2026)" +- `D-147` — line 1761, heading: "D-147. Demo-code tries keep per-address keying until a trusted proxy is set (11 November 2026)" ### `../history/archive/dated-notes/ward-management-decisions.md` (2026-08-18 – 2026-10-24 (mixed, see file)) diff --git a/docs/ward-flow/SCREEN-MAP.md b/docs/ward-flow/SCREEN-MAP.md index 85bb59a117..d9687622ec 100644 --- a/docs/ward-flow/SCREEN-MAP.md +++ b/docs/ward-flow/SCREEN-MAP.md @@ -5,7 +5,7 @@ See also [`site-map.md`](../site-map.md), the full list of app routes. -**70 mockups · 62 routes · 45 screen folders.** +**70 mockups · 63 routes · 46 screen folders.** ⚠️ The PAIRING is hand-authored — no rule derives that `command-third-edition.html` is route `/`. **COMPLETENESS is not**: everything is discovered from disk, so a new or renamed file shows up as @@ -96,7 +96,7 @@ UNMAPPED rather than disappearing. ## What the checks found -### ⚠️ ROUTE WITH NO MOCKUP — undrawn, or needs an entry — 27 +### ⚠️ ROUTE WITH NO MOCKUP — undrawn, or needs an entry — 28 - `/activity` - `/bed-meeting` @@ -112,6 +112,7 @@ UNMAPPED rather than disappearing. - `/hub/catchments` - `/leave` - `/movements/[movementId]` +- `/night` - `/people/[patientId]/triage` - `/queue` - `/reports/chronology` diff --git a/docs/ward-flow/STATUS.md b/docs/ward-flow/STATUS.md index c0a060d5af..da28f77f68 100644 --- a/docs/ward-flow/STATUS.md +++ b/docs/ward-flow/STATUS.md @@ -125,8 +125,8 @@ gone. The 16 November date for the sign-in test was dropped (Q390). Two asks are ## What is built -**Route and screen overview.** The 60 Ward page routes -form part of the 64 scoped app pages/handlers including +**Route and screen overview.** The 61 Ward page routes +form part of the 65 scoped app pages/handlers including sign-in and digest. The separate root redirect is additional. Engine and components are under `src/components/ward-management/` and `src/components/wf/`. Redirect routes are retained for old links; their presence does not establish an independent screen: diff --git a/docs/ward-flow/clinical-values.md b/docs/ward-flow/clinical-values.md index 6755f8c1c2..9e431d1c34 100644 --- a/docs/ward-flow/clinical-values.md +++ b/docs/ward-flow/clinical-values.md @@ -80,6 +80,7 @@ governance sign-off before real patient use (D-54). | Alerts and holds | Forecast alert raised when someone in ED will pass the access target within | 12 hours, default, changeable in Settings | Synthetic value | Forecasting build (Josh, 23 Oct 2026, per the forecast source comments; no decision entry), labelled default; added to the register 10 Nov 2026 (D-122) | None recorded | `forecastEdRiskLead` | | Alerts and holds | Forecast alert raised when tomorrow's likely free beds dropped since the last look by | 2, default, changeable in Settings | Synthetic value | Forecasting build (Josh, 23 Oct 2026, per the forecast source comments; no decision entry), labelled default; added to the register 10 Nov 2026 (D-122) | None recorded | `forecastWorseAlert` | | Alerts and holds | Rail shows Handover Due once the shift has this long or less to run | 15 minutes | Synthetic value | Shift ring on the rail, in the 27 Sep 2026 source snapshot with no decision recorded; added to the register 10 Nov 2026 (D-122) | None recorded | `handoverDuePrompt` | +| Alerts and holds | TV tile shows when its figure changed, for | 15 minutes | Signed for the prototype by Josh (product owner), 2026-11-10 | D-137 (Josh, 10 Nov 2026), plan item 43: TV "Changed HH:MM" mark on the ward and bed meeting TVs | None recorded | `tvChangeMark` | | Alerts and holds | Handover page lists your own open work to hand on once the shift has this long or less to run | 30 minutes | Signed for the prototype by Josh (product owner), 2026-11-10 | Feature build plan batch 3, item 21: Josh signed 30 minutes on a decision card, 10 Nov 2026 (D-136) | None recorded | `handoverOwnWorkLead` | | Arrivals and answers | Arrival counted as late, past the estimate, after | 1 hour | Signed for the prototype by Josh (product owner), 2026-10-15 | D-22 (26 Sep 2026), labelled default | None recorded | `lateArrivalGrace` | | Arrivals and answers | Ward that has not answered a referral, first reminder after | 2 hours | Signed for the prototype by Josh (product owner), 2026-10-15 | D-22 (26 Sep 2026), labelled default | None recorded | `silentWardFirstReminder` | diff --git a/docs/ward-flow/code-map/README.md b/docs/ward-flow/code-map/README.md index 8322037f46..d884aa8a94 100644 --- a/docs/ward-flow/code-map/README.md +++ b/docs/ward-flow/code-map/README.md @@ -24,7 +24,7 @@ verdict it names that document. | [Overview](overview.md) | The whole thing on one page: sizes, how the pieces fit, known gaps (the original 25 Sept map) | | [Engine](engine.md) | Reducer, every event type, state shape, entities, persistence, the clock, adding an event | | [Data and rules](data-and-rules.md) | Seeds, reference data, eligibility, referrals, catchment, legal clocks, capacity, all selectors | -| [Routes, shell and shared UI](shell-and-shared.md) | All 60 routes under `/ward-flow/*` (64 total including sign-in and digest, plus `/` redirect), the layout chain, rail, top bar, navigation, shared UI pieces, and `src/components/wf/**` | +| [Routes, shell and shared UI](shell-and-shared.md) | All 61 routes under `/ward-flow/*` (65 total including sign-in and digest, plus `/` redirect), the layout chain, rail, top bar, navigation, shared UI pieces, and `src/components/wf/**` | | [Screens A](screens-a.md) | Coordinator (`/` and `/command`), ED (`/ed`, `/ed/[edId]`), ward, referrals, community, search, statistics (12 routes), reports (`/reports/chronology`, `/reports/downtime`) | | [Screens B](screens-b.md) | Board, capacity, movements, delays, handover, patients, alerts and the rest | | [Tests](tests.md) | Every ward test file, how the suites run, which tests to run for a change | diff --git a/docs/ward-flow/code-map/overview.md b/docs/ward-flow/code-map/overview.md index 80141ee441..c151beaa68 100644 --- a/docs/ward-flow/code-map/overview.md +++ b/docs/ward-flow/code-map/overview.md @@ -34,7 +34,7 @@ of shared UI pieces) and nothing else. Nothing in PsychSift imports Ward Flow. | Area (tracked files, `git ls-files`) | Files | Size | | ------------------------------------------------------------ | -----: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Ward Flow engine + screens `src/components/ward-management/` | 315 | ~153,000 lines of `.ts/.tsx` (plus 99 CSS modules and `src/components/wf/` shared v10 primitives) | -| Ward Flow routes `src/app/ward-flow/` | 76 | **60 `page.tsx`** (**64 total routes** incl. `/ward-flow-sign-in` and `/mockups/ward-flow-digest`, plus `/` redirect) | +| Ward Flow routes `src/app/ward-flow/` | 76 | **61 `page.tsx`** (**65 total routes** incl. `/ward-flow-sign-in` and `/mockups/ward-flow-digest`, plus `/` redirect) | | Ward Flow tests `tests/ward-*`, `tests/ui-ward-*` | 648 | ~188,700 lines (635 unit/DOM + 13 browser) | | Ward Flow scripts `scripts/ward-flow/` | 49 | 45 top-level + `audit/` | | Ward Flow docs `docs/ward-flow/` | 1,272 | incl. 140 files of design drawings | @@ -236,7 +236,7 @@ bar's Tools drawer. The rail's "clinical persona" popover is cosmetic. ## 3. Routes, shell and navigation -### 3.1 Routes (60 `page.tsx` under `src/app/ward-flow/`, 64 total including sign-in and digest) +### 3.1 Routes (61 `page.tsx` under `src/app/ward-flow/`, 65 total including sign-in and digest) Every page file is a server component that renders one client screen (or redirects). @@ -272,6 +272,7 @@ Every page file is a server component that renders one client screen (or redirec | `/referrals/new` | `ReferralBoard` + referral slide-out (referrals) | | `/reports/chronology` | `PatientChronologyScreen` (`reports/patient-chronology-screen.tsx`) | | `/reports/downtime` | `DowntimePackScreen` (`reports/downtime-pack-screen.tsx`) | +| `/night` | `NightViewScreen` (night) | | `/review` | `TodaysReviewScreen` (review) | | `/search` | `PatientSearchPage` (search) | | `/seclusion` | `SeclusionScreen` (restrictive-practice), operational view only (D-72) | diff --git a/docs/ward-flow/code-map/screens-b.md b/docs/ward-flow/code-map/screens-b.md index 2ccee29603..e0382bf91c 100644 --- a/docs/ward-flow/code-map/screens-b.md +++ b/docs/ward-flow/code-map/screens-b.md @@ -1,5 +1,14 @@ # Screens B: board, capacity, movements, delays, handover, patients and the rest +## Feature build batch 5: counts, screens and print — 10 November 2026 + +- **Item 1 (count leak, D-137):** `shell/ward-desk-early.ts` `wardDeskHeldFromCookie` holds the server's page unless the `wardflow-desk-held` cookie is `0` (the whole-network coordinator's desk), so a fresh device gets the loading page first. `tests/ward-access-first-paint.dom.test.tsx`. +- **Item 5:** `count-breakdown/` — tap a figure to see who or what it counts. `count-breakdown-model.ts` holds the small-number and scope rules; rows come from each figure's own list (`openEdJourneys().people`, `waitingInEds().people`, `readyBedsByWard`, `capacityBreakdownLists`); hero figures and band cells use the kit hook `renderPress` (`wf/hero-top.tsx`). Wired on Home, Capacity and the bed board; never on the TV. `tests/ward-count-breakdown*.ts(x)`. +- **Item 29:** `night/night-view-screen.tsx` and `night-view-figures.ts` — Night view (`/ward-flow/night`), coordinator only, opened from Home's More menu. Figures come from `readyBedsNow`/`totalReadyBedsNow`, `edOpenSummaries` with `edWaitStep`, the Moving stage and the On-call key lines; `tests/ward-night-view.test.ts` checks they equal the day screens'. Its six-step walk round is in `help/ward-help-screen-tours-pages.ts`. +- **Item 40:** `patient-carer-page*.ts(x)` — Print for patient or carer on an accepted movement (patient page, under the Handover pack). Fixed draft wording in `patient-carer-page-text.ts`; the model takes only the ward and hospital. `tests/ward-patient-carer-page.dom.test.tsx`. +- **Item 42:** `settings/ward-desk-qr*.ts(x)` — ward desk QR code card in Settings, Your desk. The code holds `origin + /ward-flow/ward/` only; `uqr` is lazy-loaded. `tests/ward-desk-qr.test.ts`. +- **Item 43:** `bed-meeting/tv-change-marks.ts` and `tv-change-mark.tsx` — TV "Changed HH:MM" marks on the ward TV's bed flow tiles and the bed meeting TV's hero figures. They compare each figure with the last refresh, last `tvChangeMark` minutes (15, D-137), record nothing while frozen and reset per screen or scenario. `tests/ward-tv-change-marks*.ts(x)`. + ## Handover completion and ownership — 4 November 2026 Local repair branch from main `559f225892b27b6c42bd7e9a6fa81f3ef81e62ec`: diff --git a/docs/ward-flow/decisions.md b/docs/ward-flow/decisions.md index 8bfe3c0ef9..decd949133 100644 --- a/docs/ward-flow/decisions.md +++ b/docs/ward-flow/decisions.md @@ -156,6 +156,7 @@ Checked 9 November 2026 (D-107 audit). "Partly replaced" means part of the entry | [D-131](#d-131-hard-case-demo-data-allowed-and-the-movement-diagram-follows-the-engine-10-november-2026) | Hard-case demo data allowed, and the movement diagram follows the engine | Active | | [D-132](#d-132-audit-fixes-group-1-docs-and-ci-guards-10-november-2026) | Audit fixes group 1: docs and CI guards; Claude-authored sensitive changes warn | Active | | [D-136](#d-136-feature-batch-3-shift-change-and-follow-up-two-signed-values-10-november-2026) | Feature batch 3: two signed values (7-day diversion return, 30-minute handover list) | Active | +| [D-137](#d-137-feature-build-batch-5-count-leak-first-tv-change-mark-and-qr-library-10-november-2026) | Feature build batch 5: count leak first, TV change mark 15 minutes, QR library | Active | | [D-138](#d-138-phone-alert-urgency-by-kind-10-november-2026) | Phone alert urgency by kind | Active | | [D-139](#d-139-phone-statistics-ward-list-a-to-z-and-leave-return-times-as-typed-10-november-2026) | Phone Statistics ward list A to Z, and leave return times as typed | Active | | [D-143](#d-143-mhert-is-mherl-in-the-glossary-smhmr-deferred-11-november-2026) | MHERT is MHERL in the glossary; SMHMR deferred | Active | @@ -1711,6 +1712,22 @@ is inferred. 6. **Item 21 placement (11 November 2026):** the "Your open work" list sits at the top of the Handover page. - **Boundary:** synthetic data only. Both values are prompts: neither blocks sign-out, ranks a person or judges the alternative. Approves no merge or release. +## D-137. Feature build batch 5: count leak first, TV change mark and QR library (10 November 2026) + +- **Date:** 10 November 2026, 1:05 AM AWST on 11 November (17:05 UTC on 10 November). **Decided by:** Josh, choosing the recommended option on three decision cards in the "Build counts, screens and print" project thread, and writing "Go ahead with all your recommendations and disregard anything you cannot do" in the feature list thread (17:04 UTC) for the build plan's twelve questions. Numbered D-137 because the numbers before it were taken first. D-132 is claimed by PR #1601. D-133 is claimed by PR #1606. D-134 is claimed by PR #1608. D-135 is claimed by PR #1603. D-136 is claimed by PR #1605. +- **Decision:** + 1. **Count leak (plan question 1, item 1):** fixed first, before item 5. The server holds the page whenever it cannot be sure of the desk: only a browser that has said its desk is the whole-network coordinator's (cookie value `0`) gets the server's page. This changes H-0111 for a fresh device, which now sees a short loading page before its first page. + 2. **TV change mark (plan question 9, item 43):** "Changed 14:32" shows on a ward or bed meeting TV tile for 15 minutes after its figure changes. Signed for the prototype by Josh as `tvChangeMark` in clinical-values.md. + 3. **QR code library (plan question 11, item 42):** one small, well-known QR code library may be added as a dependency, loaded only where the desk QR code is drawn. + 4. **Design approval and review answers (11 November 2026, 10:20 AM AWST, 02:20 UTC):** Josh chose "Approve all, with your answers" on the batch 5 approval card and wrote "Go ahead with all recommendations now for me." That approves the drawn parts on the batch's design review page (D-74) and these answers: + - No names in executive or statistics (aggregate) views at any count: a tapped count of people there lists nobody and says "Names are not listed in this view." + - The patient or carer page shows the receiving ward's mock nurses' station number from the on-call directory as "Ward phone". + - The patient or carer page wording stays marked as draft until consumer, carer and cultural review. + - The Night view's ready-bed heading reads "Beds ready now". + - This batch may change three files that held PR #1599 also changes (`bed-meeting-tv.tsx`, `ward-clinical-values.ts`, `ward-clinical-value-notes.ts`); this batch fixes any conflict. +- **Note:** D-128 item 9 said no new features until #1564 to #1577 close. This batch builds because Josh chose the 27 items and asked for the batches to start on 10 November 2026; Josh may say otherwise on the PR. +- **Boundary:** synthetic data only. Design approval for the drawn parts stays with the batch's design review page (D-74). Approves no merge or release. + ## D-138. Phone alert urgency by kind (10 November 2026) - **Date:** 10 November 2026 (`2026-11-10`). **Decided by:** Josh, picking item 23 of the audit fix build plan (Ward Flow project thread "Fix audit app and backend issues", audit fix group 2), which counts as his yes to audit decision 20. Numbered D-138 because D-132 to D-137 belong to other threads. D-133 is claimed by open PR #1606. D-134 is claimed by open PR #1608, and D-135 is claimed by open PR #1603, and D-136 is claimed by open PR #1605, and D-137 is claimed by open PR #1607. On 11 November 2026 Josh told every thread to go ahead with its recommendations, which approved the Settings line as drawn in the design review. diff --git a/docs/ward-flow/desk-guides/why-cant-i.md b/docs/ward-flow/desk-guides/why-cant-i.md index 9b7e2d9232..1c616846e3 100644 --- a/docs/ward-flow/desk-guides/why-cant-i.md +++ b/docs/ward-flow/desk-guides/why-cant-i.md @@ -38,6 +38,7 @@ Each desk opens only the screens its role allows. If you cannot open a screen, c | `statistics` | Bed coordinator, Bed manager (counts only), Nurse in charge (counts only), ED clinician (counts only), Community team (counts only), Executive (counts only) | | `governance` | Bed coordinator, Access admin (own place) | | `review` | Bed coordinator | +| `night` | Bed coordinator | | `alerts` | Bed coordinator, Bed manager (own place), Nurse in charge (own place), ED clinician (own place), Community team (own place), Transport officer (own place) | | `on-call` | Bed coordinator, Bed manager, Nurse in charge, ED clinician, Community team, Transport officer | | `seclusion` | Bed coordinator, Bed manager (own place), Nurse in charge (own place) | diff --git a/docs/ward-flow/evidence/error-message-inventory-2026-11-10.md b/docs/ward-flow/evidence/error-message-inventory-2026-11-10.md index 4999bf54b1..39d214362e 100644 --- a/docs/ward-flow/evidence/error-message-inventory-2026-11-10.md +++ b/docs/ward-flow/evidence/error-message-inventory-2026-11-10.md @@ -10,7 +10,7 @@ with no next step is added. Seed narratives, Help and tour text and the approved Wording that touches a clinical term is Josh's to approve. The next-step check is a plain word match, so a Yes is a lead, not proof the step is clear. -208 messages; 103 with no next step found. +209 messages; 103 with no next step found. | Next step | Message | Where | | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -189,6 +189,7 @@ is a lead, not proof the step is clear. | Yes | The action was sent but could not be confirmed. Check its status before trying again. | `src/components/ward-management/shell/ward-step-up.tsx` | | Yes | The application failed to load. Try again, or reload the page. | `src/app/global-error.tsx` | | Yes | The change could not open. Check the connection, then try again. | `src/components/ward-management/ward-shared-access.tsx` | +| Yes | The code could not be made. Close and try again. | `src/components/ward-management/settings/ward-desk-qr-card.tsx` | | Yes | The patient record link could not be checked. Check the patient, then try again. Nothing was changed. | `src/components/ward-management/ward-protected-refusal-reasons.ts` | | Yes | The previous recovery record could not be read. Its outcome is unknown. Review the board before repeating an action. | `src/components/ward-management/ward-command-recovery-run.ts` | | Yes | The request could not be confirmed. Reload to check its status before trying again. | `src/components/ward-management/ward-shared-role-gate.tsx` | diff --git a/docs/ward-flow/journey/CURRENT-REVIEW.md b/docs/ward-flow/journey/CURRENT-REVIEW.md index e7466fd526..b333a1eb94 100644 --- a/docs/ward-flow/journey/CURRENT-REVIEW.md +++ b/docs/ward-flow/journey/CURRENT-REVIEW.md @@ -127,3 +127,15 @@ fields; it still raises one ADD_PATIENT with the same required payload. The ADD_ guard prose were updated, and the whole-file digests for these four files refreshed in `actions.json`, `event-dispositions.json` and `machines.json`. Evidence: `tests/ward-add-patient.dom.test.tsx` and `tests/ward-patient-model.test.ts`, run locally. A later review fix only adds `aria-controls` to Add patient's Open all button (and its import); its digest was refreshed again. + +## 11 November 2026 — feature build batch 5 (PR #1607) + +Two cited review sources changed, compared line by line with main `5b08a5eb`. `board/ward-board.tsx` only makes +the hero figures tappable (plan item 5, D-137): it reads the lists those figures were already counted from +(`capacityBreakdownLists`) and hands them to the count breakdown panel, with each person's name and patient link. +The PATIENT_ARRIVED, RECORD_LEAVING, RECORD_AWAY_AT_EMERGENCY_DEPARTMENT, RECORD_RETURNED_FROM_EMERGENCY_DEPARTMENT +and END_LEAVE_BED `raise()` calls, payloads and guards are unchanged; they moved down 9 or 51 lines. +`settings/settings-screen.tsx` adds the ward desk QR card (plan item 42) beside the drafts card; the +SET_CONFIGURATION save is unchanged and moved down one line. The six whole-file digests and lines in +`actions.json` were refreshed. Evidence: `tests/ward-count-breakdown.dom.test.tsx` and `tests/ward-desk-qr.test.ts`, +run locally. diff --git a/docs/ward-flow/journey/actions.json b/docs/ward-flow/journey/actions.json index 6ffb2e95ed..2b69364193 100644 --- a/docs/ward-flow/journey/actions.json +++ b/docs/ward-flow/journey/actions.json @@ -2621,8 +2621,8 @@ }, { "path": "src/components/ward-management/board/ward-board.tsx", - "line": 357, - "sha256": "9de0c99b18db0f7709030d017def2ae105456d80a64cbb880f7bf6c2609599ea" + "line": 366, + "sha256": "8ca5f056dbdee273d28f95f97133d93b25ac934c39b2ebfaf1ca6eae0791a49c" }, { "path": "src/components/ward-management/patients/patient-transit-operations.tsx", @@ -3400,8 +3400,8 @@ }, { "path": "src/components/ward-management/board/ward-board.tsx", - "line": 885, - "sha256": "9de0c99b18db0f7709030d017def2ae105456d80a64cbb880f7bf6c2609599ea" + "line": 936, + "sha256": "8ca5f056dbdee273d28f95f97133d93b25ac934c39b2ebfaf1ca6eae0791a49c" }, { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", @@ -3479,8 +3479,8 @@ }, { "path": "src/components/ward-management/board/ward-board.tsx", - "line": 904, - "sha256": "9de0c99b18db0f7709030d017def2ae105456d80a64cbb880f7bf6c2609599ea" + "line": 955, + "sha256": "8ca5f056dbdee273d28f95f97133d93b25ac934c39b2ebfaf1ca6eae0791a49c" }, { "path": "src/components/ward-management/patients/patient-now-screen.tsx", @@ -3558,8 +3558,8 @@ }, { "path": "src/components/ward-management/board/ward-board.tsx", - "line": 988, - "sha256": "9de0c99b18db0f7709030d017def2ae105456d80a64cbb880f7bf6c2609599ea" + "line": 1039, + "sha256": "8ca5f056dbdee273d28f95f97133d93b25ac934c39b2ebfaf1ca6eae0791a49c" }, { "path": "src/components/ward-management/patients/patient-now-screen.tsx", @@ -3696,8 +3696,8 @@ }, { "path": "src/components/ward-management/board/ward-board.tsx", - "line": 980, - "sha256": "9de0c99b18db0f7709030d017def2ae105456d80a64cbb880f7bf6c2609599ea" + "line": 1031, + "sha256": "8ca5f056dbdee273d28f95f97133d93b25ac934c39b2ebfaf1ca6eae0791a49c" }, { "path": "src/components/ward-management/patients/patient-now-screen.tsx", @@ -5125,8 +5125,8 @@ }, { "path": "src/components/ward-management/settings/settings-screen.tsx", - "line": 443, - "sha256": "aba9a6945556afdd1f1dba22fdb45f47b7f7e197829ff42ea2d94bdfb9ee3ab1" + "line": 444, + "sha256": "59b6fc559d0d40fdd16cd3444d0db3e3c673cdbb3591f5bda4000b36120a3928" } ] } diff --git a/docs/ward-flow/journey/ward-journey-explorer.html b/docs/ward-flow/journey/ward-journey-explorer.html index cddceb018c..d24f89b06f 100644 --- a/docs/ward-flow/journey/ward-journey-explorer.html +++ b/docs/ward-flow/journey/ward-journey-explorer.html @@ -1284,7 +1284,7 @@

What to do here