| ADR-001 | Form Analytics Architecture | Accepted | 2025-12-05 | FW-27 extends PF-09 rather than replacing it; two-tier form analytics architecture |
| ADR-002 | CL–PM Cross-Core Foreign Keys | Accepted | 2026-02-25 | CL tables may reference pm_encounters.id via DB FK; all other cross-core refs use UUID columns only |
| ADR-003 | MCP PF-72 Phase 4 | Accepted | 2026-03-15 | MCP server baseline committed to .cursor/mcp.json (shadcn, fallow); user-local plugins for Supabase, Context7 |
| ADR-004 | CL–FW Event Patterns | Proposed | 2026-03-01 | Clinical workflow event contract patterns between CL and FW cores (pending final acceptance) |
| ADR-005 | Cross-Core FK: PM Patients | Accepted | 2026-03-20 | HR core may reference pm_patients.id via UUID column only; no DB-level FK |
| ADR-006 | Cross-Core FK: HR Employees | Accepted | 2026-03-20 | PM/CL cores reference hr_employees.id via UUID column; no DB-level FK |
| ADR-007 | Multi-Tenant via Supabase RLS | Accepted | 2026-04-12 | All tenant isolation via Postgres RLS + organization_id; no application-layer sharding |
| ADR-008 | Vite SPA vs Next.js SSR | Accepted | 2026-04-12 | Vite-based SPA chosen over Next.js for this ERP platform; PWA with Workbox for offline |
| ADR-009 | Biome as Primary Formatter | Accepted | 2026-04-12 | Biome replaces Prettier + ESLint for formatting and import organization; ESLint retained for custom rules |
| ADR-010 | Core–PF Dependency Boundary | Accepted | 2026-04-12 | Domain cores depend only on Platform Foundation (PF); no direct core-to-core imports |
| ADR-011 | Edge Functions on Deno | Accepted | 2026-04-12 | Supabase Edge Functions use Deno runtime; _shared/ for cross-function utilities |
| ADR-012 | PF-96 Jurisdiction Profile Architecture | Accepted | 2026-04-12 | State Medicaid rules via jurisdiction profiles (PF-96); Arizona AHCCCS is the first profile, not a global default |
| ADR-013 | PWA Strategy | Accepted | 2026-04-12 | Platform is a Progressive Web App with Workbox service worker; CacheFirst for assets, NetworkFirst for REST, NetworkOnly for auth |
| ADR-014 | GR-02 Canonical Training Substrate; HR-22/HR-27 Overlays | Proposed | 2026-04-19 | GR-02 owns the canonical training tables; HR-22/HR-27 are HR-side overlays on the same surface, not competing schemas |
| ADR-015 | PM Refund / Recoupment / Takeback Path | Accepted | 2026-04-20 | Lite-first refund/recoupment path under the PM-53 umbrella; avoids duplicate pm_refunds/pm_payer_takebacks tables and event publishers |
| ADR-016 | Workspace packages overlay | Superseded by ADR-022 | 2026-04-22 | Per-package package.json under packages/ declares dependency surface; source files stay in src/ (no physical migration in Phase 2). Torn down 2026-05-25 — never wired up. |
| ADR-017 | PWA scoping under Microfrontends | Superseded by ADR-022 | 2026-04-22 | Phase 3 amendment to ADR-013: the public zone disables its SW; only the authenticated zone owns scope /. Torn down 2026-05-25 — never activated. |
| ADR-025 | TypeScript 7.0 (Go compiler) Evaluation and Adoption | Proposed | 2026-04-23 | Adopt @typescript/native-preview (tsgo) as opt-in typecheck:fast now (validated: cold typecheck 478s → 53s, zero diagnostic delta). Cut over CI gate in Phase 2 once TS 7.0 reaches RC/GA and typescript-eslint peer range supports TS 7.x; use npm:@typescript/typescript6 alias to keep linter/audit scripts/ts-node working. |
| ADR-018 | PF→PM Encounter Reference Posture (No DB FK) | Proposed | 2026-04-23 | PF columns referencing PM-owned entities (e.g. pf_transcription_sessions.encounter_id) use UUID with no DB FK or trigger; validation happens in the originating Edge Function/RPC with a background reconciliation job. Reaffirms ADR-002’s narrow CL→PM exception. |
| ADR-019 | Defer Next.js / Turbopack for the authenticated ERP shell | Accepted | 2026-04-24 | Do not migrate the authenticated shell to Next.js for Turbopack/RSC; stay on the Vite + React Router SPA (ADR-008) and keep investing in Vite/Rolldown chunking, route-level lazy loading, and Turborepo caching. |
| ADR-020 | Two-Phase Partition Strategy for Audit and Event Tables | Accepted | 2026-05-13 | High-growth PF/FW audit/event tables use non-cutover shadow partition phase first, then explicit backfill/parity/cutover with retention runbook controls. |
| ADR-021 | One-Time Exception to “Never Edit Existing Migrations” | Accepted | 2026-05-23 | Documents a one-time, criteria-bound exception to the never-edit-migrations rule to resolve the 20260513225500 timestamp/RLS-helper collision, and codifies the bar future exceptions must meet. |
| ADR-022 | Tear down workspace-packages + microfrontends overlay | Accepted | 2026-05-25 | Supersedes ADR-016/ADR-017. Removes never-activated empty packages/ stubs, microfrontends.json, and their audit gates; architecture stays enforced by the import-scan layer. packages/docs retained. |
| ADR-023 | Agent Harness, Skills & Eval-Tooling Direction | Accepted | 2026-06-04 | Grounded response to 2026-06 external research: defer Mastra/product agent harness (no product agent; no SOC 2); reject @AGENTS.md import (documented local choice); Promptfoo C4 + self-hosted Langfuse C3 already shipped (#814/#815); accept skill-regression evals + Claude Code OTEL→Langfuse next; command→skill consolidation + context-file audit on backlog. |
| ADR-024 | @/platform/workflow Execution Seam (IG-06) | Proposed | 2026-06-07 | Adds a tenant-scoped execution API (enqueueWorkflowExecution/getThrottleStatus/subscribeKpiSnapshot) to the diagram-only @/platform/workflow, wrapping FW’s pgmq enqueue behind an edge fn so HR/FA/RH can run FW workflows without importing FW; unblocks the 19 cross-core templates. Surfaces FW-53 throttle/hold state; idempotency-keyed; fire-and-durable. |
| ADR-026 | LangChain Ecosystem & Agent OS — Not Adopted | Accepted (directional) | 2026-06-11 | Do not adopt LangChain, LangGraph, LangSmith, or Agent OS — each duplicates the existing provider-agnostic AIProvider seam (PF-111), pgmq/ADR-024 durable execution, self-hosted Langfuse evals, or eos-spec, while widening the HIPAA dependency surface. Enshrines “extend the seam, don’t adopt a framework”; revisit only on a funded product-agent feature (per ADR-023). |
| ADR-027 | Picklist Naming & Three-Tier Value-Set Classification | Proposed | 2026-06-12 | New PF-15 picklist names use dot-namespace {core}.{domain}.{field} (legacy flat names grandfathered); every picklist is classified Tier A (workflow state, code-owned), B (org vocabulary, fully editable), or C (constraint-mirrored, metadata.value_set_locked blocks add/delete/deactivate while labels/colors/order/aliases stay editable). |
| ADR-028 | .claude/rules ↔ .cursor/rules parity model | Accepted | 2026-06-16 | The two IDE rule sets are intentionally divergent (different formats, granularity, filenames; some single-IDE by design), not a byte-for-byte mirror. Canonical model = a documented per-IDE allowlist keyed by rule topic (automation/_platform/rules-parity.json) + a drift gate (check:rules-parity, in validate:governance) enforcing on-disk completeness, no undeclared drift, and cross-IDE topic coverage unless documented exempt. sync.ts stays scoped to skills/commands/agents. |
| ADR-029 | ONC HTI-1 §170.315(b)(11) DSI scope for billing / RCM AI | Accepted | 2026-06-23 | Records the determination that Encore adopts §170.315(b)(11) DSI transparency as a platform-wide control covering billing/RCM AI (PM-64 coding, PM-50 denial, PM-66 PA, PM-29-EN-01 appeals), not just clinical AI — a deliberate, defensible over-compliance choice (the criterion is administrative-DSS-ambiguous) that also mitigates FCA + bias risk. Disclosures are tiered by dsi_type so generative/evidence-based features publish without fabricating predictive metrics, while predictive features (PM-50/66) stay unpublishable until externally validated. Ratified by the owner 2026-06-23 — clears CL-65’s compliance-review gate and closes PM-64 G-3. |