DEC-W10 — Bounded Product Freezes (PKG-FEES-W10 / SC-FEES V1)
Mode: Server /home/scola/odoo
Approval: APPROVED_BY_REQUESTING_USER_CONVERSATION (2026-08-29)
Scope: Map immutable T6B-FEES-approved-product-contract.md (30 decisions) to matrix §7.6 rows — no new product scope
Predecessor bridge: T4-T6B2-closure-decision.md
RT-W10-TEN-01 — STAB-014 tenant ownership
| Aspect |
V1 bounded decision |
| Contract |
T6B-FEES #4 — all FKs same active company; cross-company denied atomically |
| Harness proof |
RT-W10-TEN-01 PASS @ rebind T6B-W10-runtime-matrix-REBIND-20260829T141108Z |
| Unit proof |
test_w10_pkg_fees_unit.py TEN cases (34/34) |
RT-W10-STA-01 / RT-W10-REC-01 — SoD, reversal, recovery
| Aspect |
V1 bounded decision |
| Maker-checker |
T6B-FEES #5 — creator cannot verify/refund own object |
| Refund/reversal |
T6B-FEES #19 — verified/paid only; separate approver; reason + audit; no delete |
| Recovery |
T6B-FEES #16 — pending_reconciliation + bounded retry to verified |
| Harness proof |
STA-01, REC-01 PASS on overlay |
| Non-claim |
Full refund UI wizard / journal reversal → out of scope (SC-FIN T6G) |
RT-W10-XMD-01 — Accounting / gateway / bridge
| Aspect |
V1 bounded decision |
| Accounting |
T6B-FEES #22–23 — fail-close accounting_excluded; no hidden journals |
| Gateway |
T6B-FEES #11/#13 — deferred T6B.3; channel/callback denied |
| Adm bridge |
T6B.2 CLOSED bounded — post-enrollment handoff only when both SKUs entitled |
| Harness proof |
XMD-01 PASS; T6B2 XINT-H denies SPMB pre-enrollment billing |
RT-W10-VAL-01 / RT-W10-IDM-01
| Aspect |
V1 bounded decision |
| Validation |
T6B-FEES #12/#14/#17 — proof AV scan, overpay denied, channel whitelist |
| Idempotency |
T6B-FEES #15 — same key replay OK; different payload → conflict |
| Harness proof |
VAL-01, IDM-01 PASS |
RT-W10-UIA-01 — Package gate
| Aspect |
V1 bounded decision |
| Entitlement |
T6B-FEES #29 — package OFF fail-close at API + nav |
| Harness proof |
UIA-01 PASS (feature_disabled on save when SC-FEES stripped) |
| Playwright |
Bounded route gate @ scoladev — see T6-W10-UI-*-playwright.json |
Explicit deferrals (not blocking bounded W10 closure)
| Item |
Track |
| Midtrans/Xendit gateway |
T6B.3 |
| SC-FIN journal posting |
T6G |
| Complex scholarship policy |
Separate product decision |
| Pre-enrollment applicant billing |
SPMB/W03 non-claim |