All Architecture Decision Records (ADR)

96 decisions · 87 Accepted · 1 Superseded · 8 Round 4–6 closures

#TitleStatus
0001Separate Booking from AppointmentAccepted for the base distinction; the original one-to-one MVP cardinality is su...
0002Allow Guest Booking with Optional Client AccountAccepted for the MVP working model; guest access is scoped by ADR 0020 and email...
0003Use Shared Services with Psychologist-level OfferingsAccepted for the MVP working model; psychologist-specific offering cardinality i...
0004Model Availability as Rules, Exceptions, and Concrete SlotsAccepted for the MVP working model; psychologist-specific offering slots, 90-day...
0005Payment Success Gates Appointment ConfirmationAccepted; hold TTL is resolved by ADR 0014, payment truth by ADR 0023, late-succ...
0006Minimize Client Data in Booking MVPAccepted for the MVP working model; retention, field-level access, and consent w...
0007Give Psychologists Scoped Self-ServiceAccepted for the MVP working model; exact field-level visibility and approval wo...
0008Store Versioned Consent Records per PurposeAccepted for the MVP working model; exact purposes, legal wording, retention, an...
0009Include Minimal Transactional NotificationsAccepted for the MVP working model; email is the automated channel, Admin WhatsA...
0010Start with One Versioned Global Cancellation PolicyAccepted for the MVP working model; launch uses no automatic cutoff and Admin ca...
0011Keep Rescheduling Administrative and AuditedAccepted for the MVP working model; replacement, same-payment, and same-entitlem...
0012Use Asia/Jakarta as Operational TimezoneAccepted for the MVP working model.
0013Tie Availability Slots to Service OfferingsAccepted for the MVP working model; exact generation algorithm and overlap index...
0014Use a Ten-minute Configurable Slot HoldAccepted for the MVP working model.
0015Track Operational Appointment OutcomesAccepted for the MVP working model; initial marking/correction authority is reso...
0016Support Multi-session Packages in MVPAccepted for the MVP working model; package boundaries are resolved by ADR 0017/...
0017Schedule the First Package Session at CheckoutAccepted for the MVP working model; PackagePurchase and first-entitlement reserv...
0018Bind a Package to One Psychologist and OfferingAccepted for the MVP working model; package binding is single psychologist/offer...
0019Give Packages a Visible Configurable Validity PeriodAccepted for the MVP working model; validity is configurable per ServicePackage ...
0020Scope Guest Access to the Booking or PackageAccepted for the MVP working model; email is the primary automated channel for C...
0021Use Email as Primary Transactional ChannelAccepted for the MVP working model; email is automated and Admin WhatsApp is opt...
0022Settle Packages with Full Upfront PaymentAccepted for the MVP working model; gateway limits, refund/credit rules, and adm...
0023Make Verified Gateway Webhook the Payment Truth SourceAccepted for launch planning; Midtrans + Snap is resolved by ADR 0068 and the in...
0024Require Admin Review for Single-session CancellationAccepted for the MVP working model; client/manual initiator, pending slot reserv...
0025Keep Slot Reserved During Cancellation ReviewAccepted for the MVP working model.
0026Consume Package Entitlements by Operational OutcomeAccepted for the MVP working model; correction authority is resolved by ADR 0054...
0027No-show Consumes Package Entitlement by DefaultAccepted for the MVP working model; no-show grace period is resolved by ADR 0028...
0028Mark No-show After a Fifteen-minute Grace PeriodAccepted for the MVP working model.
0029Handle Privacy Requests Through a Manual WorkflowAccepted for the MVP working model; retention schedule, verification standard, a...
0030Allow Editors to Publish CMS Content DirectlyAccepted for the MVP working model; exact content types, fields, media handling,...
0031Separate Editorial Profile Copy from Protected FactsAccepted for the MVP working model; exact field matrix and approval/locking UI r...
0032Assign Staff Roles Through Explicit MembershipAccepted for the MVP working model; invitation lifecycle, identity provider, and...
0033Give Psychologists Scoped Assigned-client VisibilityAccepted for the MVP working model; exact field matrix and contact necessity by ...
0034Separate Package Catalog from Purchased Package InstanceAccepted for the MVP working model.
0035Reserve the First Package Entitlement at CheckoutAccepted for the MVP working model.
0036Start Package Validity at Verified Payment SuccessAccepted for the MVP working model; validity starts at verified payment success ...
0037Schedule Package Sessions in SequenceAccepted for the MVP working model; normal sequence, Admin override capability, ...
0038Advance Package Sequence Past Closed EntitlementsAccepted for the MVP working model; expired/closed units are skipped and restore...
0039Reschedule with a Replacement AppointmentAccepted for the MVP working model; replacement Appointment, same-payment, same-...
0040Generate Availability on a Rolling Ninety-day HorizonAccepted for the MVP working model; 90-day rolling horizon, rule/exception sourc...
0041Apply a Fifteen-minute Configurable Transition BufferAccepted for the MVP working model; default 15-minute value, per-offering config...
0042Snapshot Offering Values at Booking Payment IntentAccepted for the MVP working model; exact quote expiry display and amendment/ref...
0043Limit ServiceOffering Overrides to Effective Booking ValuesAccepted for the MVP working model; exact admin UI and policy/eligibility schema...
0044Publish ServiceOfferings Through a Draft-published-archived LifecycleAccepted for the MVP working model; published-only generation and source-change ...
0045Version Published ServiceOffering ChangesAccepted for the MVP working model; immutable revisions and preservation of held...
0046Use Short-lived One-time ClientAccess TokensAccepted for the MVP working model; exact rate limits, session revocation, recov...
0047Keep Guest Client Records Separate by DefaultAccepted for the MVP working model; exact merge/link semantics, verification che...
0048Configure Package Validity per ServicePackageAccepted for the MVP working model; calendar-period validity is resolved by ADR ...
0049Keep Crisis Handling Outside the Booking DomainAccepted for the MVP working model; exact notice copy, referral resources, local...
0050Record Refunds as Separate Payment ActionsAccepted for the MVP working model; refunds are append-only PaymentAction record...
0051Separate Cancellation Intake from Admin DecisionAccepted for the MVP working model; request/decision separation, approve/deny Ca...
0052Include Transactional Appointment RemindersAccepted for the MVP working model; Appointment reminder offsets are resolved by...
0053Use 24-hour and 2-hour Appointment RemindersAccepted for the MVP working model; exact opt-out, quiet hours, and provider fai...
0054Correct Appointment Outcomes Through Admin-only EventsAccepted for the MVP working model; correction authority is Admin-only and audit...
0055Calculate Package Validity as a Calendar PeriodAccepted for the MVP working model; allowed units/range and end-of-month behavio...
0056Model Retention by Transactional Data CategoryAccepted for the MVP working model; exact durations, legal basis, anonymization ...
0057Launch with One Payment Gateway Behind an AdapterAccepted for launch planning; Midtrans + Snap is selected by ADR 0068 and the in...
0058Make Psychologist Availability Changes Effective for Future GenerationAccepted for the MVP working model; precedence and regeneration boundaries are r...
0059Reconcile Late Payment After SlotHold ExpiryAccepted for the MVP working model; exact admin resolution options, SLA, refund ...
0060Resolve Package Unavailability ExplicitlyAccepted for the MVP working model; exact SLA, client communication, launch full...
0061Regenerate Only Uncommitted Future Availability SlotsAccepted for the MVP working model; exact scheduler trigger/backfill cadence and...
0062Restore Entitlements Without Resetting ExpiryAccepted for the MVP working model; exact Admin extension authority/SLA and clie...
0063Keep Package Refunds Manual at Purchase LevelAccepted for the MVP working model; package refunds are purchase-level Admin dec...
0064Use Required WhatsApp Follow-up for Paid Confirmed BookingsSuperseded by ADR 0066 for timing/task semantics. The cancellation/refund handli...
0065Keep Cancellation and Refund Records Internal and MinimalAccepted for the MVP working model; internal minimal records are resolved by ADR...
0066Keep Admin WhatsApp as Flexible Manual SupportAccepted; this ADR supersedes the required timing/task semantics in ADR 0064. Em...
0067Execute Cancellation and Refund Through Admin CMSAccepted; Admin CMS execution and automatic atomic release of eligible future ca...
0068Select Midtrans Snap for Launch PaymentsAccepted for launch planning; Midtrans is the single gateway-of-record and Snap ...
0069Keep Launch Payment Methods MinimalAccepted for launch planning; the initial method categories are QRIS and bank tr...
0070Separate Public Program Pillars from Bookable Launch ScopeAccepted for launch planning.
0071Launch Counseling Before Psychological AssessmentAccepted for launch planning.
0072Launch Counseling Online and OfflineAccepted for launch planning.
0073Standard Counseling Session DurationAccepted for launch planning.
0074Launch Counseling Catalog and PricesAccepted for launch planning; prices and package structures are recorded from th...
0075Start Launch with One Confirmed PsychologistAccepted for launch planning; profile content is recorded from the supplied busi...
0076Case-by-Case Cancellation Without Automatic CutoffAccepted for launch planning.
0077Restrict Launch Refunds to Full or No RefundAccepted for launch planning.
0078One Admin May Execute Separate Cancellation and Refund ActionsAccepted for launch planning.
0079Launch with Admin and Psychologist Staff RolesAccepted for launch planning.
0080Staff Access via Google SSO and Explicit MembershipAccepted for launch planning.
0081Bootstrap Two Admins for RecoveryAccepted for launch planning.
0082Joint Privacy and Consent Sign-offAccepted for launch planning.
0083Retain Client and Contact Data for 12 MonthsAccepted for launch planning; duration selected, exact trigger implementation re...
0084Retain Payment and Refund Records by Audit/Legal PolicyAccepted for launch planning; exact duration remains a policy-owner follow-up.
0085Retain Consent with Related Records and Policy RequirementsAccepted for launch planning; exact policy implementation/evidence remains a fol...
0086Retain Audit and Security Metadata by PolicyAccepted for launch planning; exact duration remains a policy-owner follow-up.
0087Redact Direct Client Identifiers and Preserve Minimal Pseudonymous LinksAccepted for launch planning.
0088Separate PRD Handoff from Production Launch GateAccepted for launch planning.
0089Single Application Architecture — Cloudflare Worker + D1 with PersistenceAdapter SeamAccepted for launch planning. Closes `TBC-STACK-01` (Round 1 P0-01 in `PRD-GUIDE...
0090Couple Package Participant ModelAccepted for MVP working model. Implements the participant, consent, visibility,...
0091Capacity Overlap and TransitionBuffer PlacementAccepted for MVP. Closes `TBC-CAPACITY-01` and `TBC-BUFFER-01` from `PRD-GUIDELI...
0092Finalize Appointment Outcome Timing, Late-arrival, and Correction WindowAccepted. This ADR is the **final model** for no-show timing, late-arrival handl...
0093Payment Settlement Uniqueness and `paid_late` Package EffectsAccepted for MVP. Closes `TBC-PAY-SETTLEMENT-01` from `PRD-GUIDELINE-REVIEW.md` ...
0094Intake Field Schema, Minor (16–17) Guardian Route, Eligibility Boundary, and Booking CutoffAccepted for the MVP working model. Closes `TBC-INTAKE-01`, `TBC-MINOR-01`, `TBC...
0095Package Cancellation Matrix and Outcome Race ResolutionAccepted for the MVP working model. Closes `TBC-PACKAGE-CANCEL-01` from `PRD-GUI...
0096Launch-Gate Executable Checklist (Matrix §7 → owner-by-owner)Accepted for MVP launch planning. Closes `TBC-LAUNCH-GATE-DETAIL-01` from `PRD-G...