| { |
| "id": "JE-01", |
| "title": "Unbalanced and incomplete entries", |
| "tier": "L1", |
| "family": "Structural integrity", |
| "sources": [ |
| "DS-A" |
| ], |
| "mapping": "Postingise CT expenditure lines into double-entry JEs (Dr expense per account, Cr cash or AP per payment_method). Group by payment_id into a JE header. Seed defects by dropping or perturbing one credit leg.", |
| "scenario": "A batch of 400 posted journal entries from period 07 needs a structural integrity pass before the ledger is closed. Some entries did not survive an interface load cleanly.", |
| "brief": "Review the batch and disposition every entry that fails structural integrity. Report the specific failure for each.", |
| "tools": [ |
| "query_ledger", |
| "get_entry", |
| "recompute", |
| "disposition", |
| "submit" |
| ], |
| "groundTruth": "Seeded per instance: 6 unbalanced entries (debits ≠ credits by a seeded delta), 3 entries with an orphaned line missing a counterparty leg, 2 entries with a zero-amount line, 1 entry with duplicated line sequence numbers. 388 clean entries including 15 large multi-line distractors that look messy but foot correctly.", |
| "verifier": [ |
| "set(flagged_ids) == set(seeded_defect_ids) — exact match required, no partial credit at L1", |
| "issue_type per entry matches seeded defect_type", |
| "false_positive_count == 0", |
| "recompute called at least once per flagged entry (process gate, non-blocking)" |
| ], |
| "judgeFocus": [ |
| "Does the rationale state the actual arithmetic difference, or only that the entry 'appears unbalanced'?", |
| "AUTO-FAIL: rationale cites a leg or amount that does not exist in the entry." |
| ], |
| "dials": [ |
| "batch size 100 → 5,000", |
| "delta magnitude: material vs sub-cent rounding", |
| "multi-line entries with up to 40 lines", |
| "mixed sign reversals as distractors" |
| ], |
| "guard": "Keep the seeded delta off round numbers so it cannot be spotted by amount pattern alone.", |
| "weight": { |
| "outcome": 0.8, |
| "process": 0.1, |
| "rationale": 0.1 |
| }, |
| "fixtures": { |
| "real": [ |
| "DS-A: payment_id, account, amount, payment_method, fiscal_year, fiscal_year_period" |
| ], |
| "synth": [ |
| "Postingised double-entry JE headers/lines", |
| "Defect ledger: unbalanced deltas, orphan legs, zero lines, dup line seq" |
| ] |
| } |
| } |
|
|