NCANDS Child File federal export (capture-first program)
> **Status (2026-06-22): core program D0–D7 COMPLETE + plan archived** (`plans/archive/ncands-child-file-export.adoc`; MRs !763–!775). The NCANDS Child File export capability is shipped, tested end-to-end, and documented. This epic stays **open** to track the one remaining deferred child **#672** (FFY-boundary precision). Other deferred items are standalone follow-ups: export/download UI #675, api-docs craig-composition #674, fidelity #648/#649/#671, full 151-field coverage + exact ACF fixed-width layout/transmission.
## Summary
Capture-first program to deliver a real NCANDS Child File federal export from craig-reporting. The export is gated on data CRAIG does not capture yet (child date-of-birth at intake; per-allegation maltreatment disposition) — investigation-level disposition is already captured. So we add the missing capture surfaces first, then build the export pipeline (core record, NCANDS fields #1-34) on real data, with every coded field anchored to the NDACAN NCANDS Child File Codebook (rev 2025-09-12).
## Plan
[Plan: NCANDS Child File export (capture-first)](docs/modules/ROOT/pages/plans/ncands-child-file-export.adoc)
## Child issues
**Capture phase — complete (2026-06-21):**
- [x] #644 A1 — verified literal NCANDS code library, craig-reference (MR !764)
- [x] #645 B1 — capture child date-of-birth at intake (MR !765)
- [x] #646 C1 — capture allegation disposition on create (MR !766)
- [x] #647 C2 — allegation disposition update path (MR !767)
**Phase D — export pipeline (in progress):**
- [x] #651 D1 — cases NCANDS export collection endpoint (plaintext assembly, no decrypt; MR !768)
- [x] #652 D2 — craig-reporting CasesClient for collection (generate records real record_count; MR !769)
- [x] #653 D3 — ncands_child_rows table + store (MR !770)
- [x] #654 D4 — row mapping (cases DTO → NcandsChildRow #1-34) (MR !771)
- [x] #655 D5 — real generate_ncands (collect + materialize) (MR !772)
- [x] #656 D6 — Child File TSV emitter + export/download (MR !773)
- [x] #657 D7 — end-to-end tests + docs (program close-out) (MR !775)
**Deferred fidelity follow-ups (related to #644):** #648 (faithful RptSrc/RptDisp), #649 (child-fatality / #34). The #583 partner-mapping seam is orthogonal (out of scope).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---
**Program complete (2026-06-22).** All 12 child issues closed; the NCANDS Child File export (capture → collect → map → materialize → emit → UI) is shipped, tested end-to-end, and documented (plan archived at plans/archive/ncands-child-file-export.adoc, ADR-040). The last open child #672 (FFY report-date precision) landed via MR !777. Deferred fidelity follow-ups (#648 RptSrc/RptDisp, #649 child-fatality #34, #671 PII posture) are standalone/related, not gating.
epic