| ADR-001 |
Minimal API and BackgroundService Workers |
Backend |
Accepted |
| ADR-002 |
Thin Dataverse Plugins |
Dataverse |
Accepted |
| ADR-003 |
Lean Authorization Seams |
Security |
Accepted |
| ADR-004 |
Async Job Contract |
Backend |
Accepted |
| ADR-005 |
Flat Storage for SPE |
Storage |
Accepted |
| ADR-006 |
Anti-Legacy-JS: PCF for Form Controls, React Code Pages for Dialogs |
Frontend |
Accepted |
| ADR-007 |
SPE Storage Seam Minimalism |
Storage |
Accepted |
| ADR-008 |
Authorization Endpoint Filters |
Security |
Accepted |
| ADR-009 |
Redis-First Caching Strategy |
Caching |
Accepted |
| ADR-010 |
Dependency Injection Minimalism |
Backend |
Accepted |
| ADR-011 |
Dataset PCF for Form-Embedded List Controls |
Frontend |
Accepted |
| ADR-012 |
Shared Component Library |
Frontend |
Accepted |
| ADR-013 |
AI Tool Framework Architecture |
AI |
Accepted |
| ADR-014 |
AI Caching and Reuse Policy |
AI |
Accepted |
| ADR-015 |
AI Data Governance |
AI |
Accepted |
| ADR-016 |
AI Cost, Rate Limits, Backpressure |
AI |
Accepted |
| ADR-017 |
Async Job Status and Persistence |
Backend |
Accepted |
| ADR-018 |
Feature Flags and Kill Switches |
Operations |
Accepted |
| ADR-019 |
API Errors and ProblemDetails |
Backend |
Accepted |
| ADR-020 |
Versioning Strategy |
Operations |
Accepted |
| ADR-021 |
Fluent UI v9 Design System |
UI/UX |
Accepted |
| ADR-022 |
PCF Platform Libraries — Field-Bound Controls Only |
Frontend |
Accepted |
| ADR-023 |
Choice Dialog Pattern |
Frontend |
Accepted |
| ADR-026 |
Full-Page Custom Page Standard |
Frontend |
Accepted |
| ADR-027 |
Subscription Isolation & Dataverse Solution Management |
Operations |
Proposed |
| ADR-029 |
BFF Publish Hygiene (framework-dependent linux-x64, sourcemap exclusion, transitive CVE overrides, size baseline) |
Backend / Operations |
Accepted |
| ADR-030 |
BFF Null-Object Kill-Switch Pattern (P1/P2/P3 patterns; FeatureDisabledException → 503 ProblemDetails; closes RB-T028 cluster) |
Backend / API |
Accepted |
| ADR-034 |
User-Record Membership Resolution Pattern (discovery-based MembershipResolverService + 6-path identity normalization + Phase 2 junction table sprk_userentityassociation + Service Bus topic sprk-membership-changes; LookupUserMembership playbook node ActionType=52; closes A1/D5 root cause from R2 UAT) |
Backend / AI / Dataverse |
Accepted (R3 Part 1, 2026-06-21) |
| ADR-036 |
Background-Job Infrastructure (Spaarke.Scheduling — shared lib + IScheduledJob contract + ScheduledJobHost + Cronos cron parsing + sprk_backgroundjob* Dataverse entities + /api/admin/jobs/* admin surface; two reference consumers: MembershipReconciliationJob + migrated PlaybookSchedulerJob) |
Backend / Scheduling |
Accepted (R3 Part 2, 2026-06-21) |
| ADR-037 |
Multi-Node Output Composition (NodeType.DeliverComposite + ActionType.DeliverComposite=42; per-section SSE streaming; FE widget rework to sections-by-name; reduces 5 brittle coordination points to 2) |
AI / BFF / FE |
Accepted (chat-routing-redesign-r1 Phase 5R Wave 5-C, 2026-06-25) |
| ADR-038 |
Testing Strategy — Integration-heavy pyramid, 6 KEEP path categories as MUST rules (auth/regression/data-mutation/tenant/contract/domain), coverage as observation never gate, ban Mock<HttpMessageHandler> + DI-registration + ctor null-check tests, TimeProvider over Stopwatch. STANDALONE — does NOT supersede ADR-022 (PCF Platform Libraries — unrelated frontend scope). |
Testing / Backend |
Accepted (ci-cd-unit-test-remediation-r1 Phase 1 Stream B, 2026-06-26) |
| ADR-045 |
Communication Architecture — canonical <EmailComposer/> send (1 engine + 3 wrappers + sendCommunication()) + Association Engine over a normalized envelope (8 targets; deterministic-first rungs 0–3 then semantic 4 + AI 5; confidence + provenance) + direction-agnostic ICommunicationEnrichmentService (both directions, adds outbound RAG) + channel seams (email impl only); auto-file ON deterministic ≥0.85 (ADR-018 kill-switch; AI rungs never auto-file); org target sprk_organization; retires OOB-email/SSS. Supersedes the never-written R3 "ADR-033" plan |
Communication / BFF / FE |
Accepted (email-communication-solution-r4, 2026-07-14) |