Epic: #51 · branch: sprint/fao-input-integrity
Execution checklist for the FAO input-integrity sprint, corrected to the post-/falsify design (representation-agnostic invariants in delivery/, pandas isolated to unfao/extraction.py, guards called-not-inherited). Cross off in order.
Order of execution
Dependency graph
#61 S0 ──► #53 S1 ──► #55 S4
├─► #52 S2 (also blocked on pipeline-core companion)
├─► #54 S3
└─► #56 S5
{#53,#52,#54,#55,#56} ──► #57 S6
Design contract (enforced)
tests/test_input_integrity_design_contract.py (xfail-strict) encodes the three tightenings: ① two homes (delivery/ vs unfao/extraction.py), ② primitives-not-Protocol, ③ called-not-inherited (manager LSP/SDP/SAP deferred to C-40). Each stub flips RED when its piece is built correctly, forcing the marker off.
Cross-repo dependencies
- pipeline-core companion (from S2 — surface
last_valid_month_id).
- views-models#127 (REGION → land_gaul) + views-datafactory land_gaul region (register D-10) — gate S4's live run.
Related / superseded / deferred
Done when
Epic #51's acceptance criteria hold: invariants in a pandas-free delivery/, pandas isolated to unfao/extraction.py, guards called-not-inherited, all five checks enforced, package hygiene done, design-contract stubs real, suite green — the pipeline is ready for the land_gaul global switch with no silent-bad-data paths.
Epic: #51 · branch:
sprint/fao-input-integrityExecution checklist for the FAO input-integrity sprint, corrected to the post-
/falsifydesign (representation-agnostic invariants indelivery/, pandas isolated tounfao/extraction.py, guards called-not-inherited). Cross off in order.Order of execution
delivery/+unfao/extraction.pyseam + package hygiene ·implementation(foundational)implementationlast_valid_month_id(C-26) ·implementationblocked(pipeline-core companion: surface last_valid_month_id)implementationimplementation(after S1; live run gated on views-models#127 + datafactory land_gaul)implementationtestingDependency graph
Design contract (enforced)
tests/test_input_integrity_design_contract.py(xfail-strict) encodes the three tightenings: ① two homes (delivery/vsunfao/extraction.py), ② primitives-not-Protocol, ③ called-not-inherited (manager LSP/SDP/SAP deferred to C-40). Each stub flips RED when its piece is built correctly, forcing the marker off.Cross-repo dependencies
last_valid_month_id).Related / superseded / deferred
Done when
Epic #51's acceptance criteria hold: invariants in a pandas-free
delivery/, pandas isolated tounfao/extraction.py, guards called-not-inherited, all five checks enforced, package hygiene done, design-contract stubs real, suite green — the pipeline is ready for the land_gaul global switch with no silent-bad-data paths.