Donation receipts: Codex review (2026-09-25)
Recorded by the orchestrator from Codex's final message (its sandbox is read-only). Verdict: FAIL.
The arithmetic matches in 40 of 41 cases. US-TC-20 is the mismatch: the formula allows FMV == P and gives a $0 deduction, while the test expects rejection. Most computed fixtures omit hard-gated required fields (signer, org and donor names, dates), so, read literally, they could not generate a document.
| id | sev | location | problem | fix |
|---|---|---|---|---|
| DR-001 | critical | US-04 / US-14 / US-TC-20 | The FMV <= P constraint contradicts the note and test that reject FMV == P | Use 0 <= FMV < P, and make FMV == P invalid |
| DR-002 | major | CA computed fixtures | Omit the required signer (F-CA-18) and other gated fields | Add a shared valid fixture block and merge each case into it |
| DR-003 | major | US computed fixtures | Omit the org name, donor name, issue date, etc. | Add a shared valid US fixture block, or label the cases formula-only |
| DR-004 | major | tests vs rules | No canonical input/output schema; field names are aliased (amount_of_gift vs amount_of_cash_gift, advantage vs amount_of_advantage, near_cash vs advantage_is_cash_or_near_cash, fmv vs good_faith_estimate…) | Define a canonical schema and use it everywhere |
| DR-005 | major | F-US-02/03/05/15 | Empty satisfies mapping (org address, EIN, donor address, officer signature) | Add product/layout rule ids |
| DR-006 | major | CA-03 / CA-16 | No batch-level assertion that serial numbers are unique; no duplicate test | Add the assertion and a rejection test |
| DR-007 | major | US-14 / US-02 | goods_status is required only for gifts of $250 or more, although every statement prints a status | Require it for every gift |
| DR-008 | major | F-CA-18 / template | Signer name and title have no field ids or validation | Define them and validate them |
| DR-009 | major | F-US-07/08/11/14 | Tax year, gift date, the goods description/GFE when provided, and the issue date can be blank | Add non-blank and type assertions |
| DR-010 | minor | CA-09 tests | No non-cash advantage at exactly 10% | Add G=500, A=50 (nominal) and A=50.01 |
| DR-011 | minor | CA-16 / US-14 tests | $0 gifts are never tested | Add $0 cases |
| DR-012 | minor | CA-TC-19 | The cents test can't tell exact arithmetic from rounded | Add a case where they differ, e.g. Opus M-2: G=333.35, A=33.34 → 300.01 |
| DR-013 | minor | open Q8, Q12 | Per-gift CA de minimis and US $250 gross vs net are unresolved | Resolve them (Opus M-1: Pub 526 says net) |
The boundaries are consistent: exactly 80% is allowed; exactly $75 is nominal on the CA side with no US disclosure; exactly $250 needs a CWA; cumulative receipts are tested with 53 and 52 gifts.