| 1 |
Input presence: data/firms.csv exists |
FAIL: data/ is empty; recorded as a blocking limitation and not fixable within the rules |
| 2 |
Clean re-run: deleted results.json/analytic.csv/exclusions.csv, re-ran analysis.py, compared SHA-256 |
PASS: byte-identical |
| 3 |
Exclusion ledger chain: n_before − n_removed = n_after, chained |
PASS: one row, 0−0=0 |
| 4 |
analytic.csv rows = n_analysed |
PASS (vacuous): 0 data rows; n_analysed is null because nothing was analysed |
| 5 |
Every estimate is null when infeasible, with no fabricated numbers |
PASS |
| 6 |
Data path of analysis.py, smoke test on a 5-row throwaway fixture in a temp dir (not task data, results discarded) |
PASS: ledger chained 5→2, USD/MUSD conversions correct, unknown unit excluded |
| 7 |
Gate run (see phases.json for receipts) |
FAILS on non-nullable keys that are null; this cannot be fixed without fabricating values (see report) |