01must proveProposed | Term rules use anniversary, calendar or never-ending bases, require valid length and units where applicable and report incompatible or missing settings together. no proof recorded yet | validation | service, database | test |
02must proveProposed | Partial package changes validate the combined stored and submitted term rule rather than only submitted settings. no proof recorded yet | validation | service | observed |
03must proveProposed | A continuing term begins the day after the existing term’s end regardless of purchase date unless continuation is disabled. no proof recorded yet | calculation | service | test |
04must proveProposed | A terminated term continues through its end plus the reinstatement allowance, treating absence as zero days; purchases after that boundary restart. no proof recorded yet | calculation | service | observed |
05must proveProposed | Anniversary rules apply their month-end rounding and new-term sell-after threshold to year, quarter and month terms, while day and week terms retain the full count. no proof recorded yet | calculation | service | test |
06must proveProposed | Fixed windows match an adjusted anniversary start; an immediately following date moves back only when the window end is in that start’s year, excluding the January-after-December boundary. no proof recorded yet | calculation | service | observed |
07must proveProposed | Calendar rules end before their start month, use the sell-for-next-year threshold and backdate a fresh term to the period start while retaining a continuation’s start. no proof recorded yet | calculation | service | test |
08must proveProposed | A calendar period finishing in February uses the actual last day, including leap day. origin: services-membership:README.md#2026-10-18 — Final acceptance, Decisions (Andrew: a calendar period ending in February ends on the month's real last day)no proof recorded yet | calculation | service | test |
09must proveProposed | A never-ending rule returns its starting point with no end date. no proof recorded yet | calculation | service | test |
10must proveProposed | Date computation uses supplied inputs without reading a clock or mutating those inputs. no proof recorded yet | invariant | service | test |
11must proveConfirmed | The term engine imports no other Membership module so it can be extracted when another domain adopts it. origin: services-membership:README.md#The term engine (D-45, decided 2026-10-17: the engine imports nothing of Membership and is extracted later)no proof recorded yet | invariant | service | test |
12Proposed | Overlapping fixed windows are accepted and resolved by the first matching window in stored order. | policy | service | observed |
13must proveProposed | Equal start and end month-days create a year-spanning fixed window, with the result after the window end and additional years for multi-year terms. no proof recorded yet | policy | service | observed |