Add the HIPAA emergency mode operation plan
Epic 5916 (HIPAA gap remediation) asked to "fix everything that does not require human". One Required Security Rule spec is still a gap with no owner even though it is pure policy text: §164.308(a)(7)(ii)(C) Emergency mode operation plan.
Observed (Finish 5948): `docs/compliance/hipaa-crosswalk.md:68` marks §164.308(a)(7)(ii)(C) `gap` → `R-HIPAA-EMOP`; `docs/compliance/risk-register.md:128` says "add the plan to BC/DR (deferred follow-up, no Task filed)". `docs/policies/bc-dr.md` (sections: Objectives :9, Rules :23, Restore procedure :50, Controls :67) restores service but never says which security processes keep running while degraded, or who decides.
Fix: add a short "Emergency mode" section to `docs/policies/bc-dr.md` (status stays `draft`, bump its version per `docs/compliance/README.md` governance) that states, by ROLE never person: who declares emergency mode; that MFA, the HIPAA idle logoff, the PHI read audit and DB TLS live in the API and run whenever it serves (point at `apps/api/app/hipaa.py`, `apps/api/app/mfa.py` — pointers, not restated prose); that no control may be switched off to restore service without the Security owner's recorded decision; how emergency access is logged; how the mode ends. Then flip the crosswalk row to `live` (pointer to the new section), update the summary counts so `python3 tools/hipaa_crosswalk.py` and its tests stay consistent, and close `R-HIPAA-EMOP` in the risk register (status Closed/Mitigated with the date) — or delete the row if the checker requires every row to be cited, whichever the checker enforces.
Out of scope: any other crosswalk row or R-HIPAA risk; any product code, terraform or other policy; publishing anything or moving a policy past `draft`; naming a person (instance data stays in `portfolio/projects/jaah.md`).
Done means:
- `grep -n "Emergency mode" docs/policies/bc-dr.md` hits the new section; version header changed; status `draft`.
- `docs/compliance/hipaa-crosswalk.md` row §164.308(a)(7)(ii)(C) is `live` with a resolving pointer; `python3 tools/hipaa_crosswalk.py` reports no problems and its counts equal the summary table (gap 9, live 47 unless something else moved).
- `python3 -m pytest tools/tests/test_hipaa_crosswalk.py` passes; `python3 tools/check_context.py` exits 0.
- `./dc check full` green; PR merged to develop; Jaah Deploy green on dev.
Outcome
Added Emergency mode section to BC/DR (v0.4, draft); crosswalk §164.308(a)(7)(ii)(C) live (47 live/9 gap); R-HIPAA-EMOP deleted (checker requires citation). Full gate green, PR #5183 merged, Jaah Deploy dev green.
Artifacts
Activity
- Ready
- Runner started
- Runner ended (done)