# US01-01 — Inventory and Characterize Donor Code Epic: [E01](../E01-shared-identity-inventory.md) **State: done (2026-07-15).** Deliverables: [`donor_ledger.yaml`](../../donor_ledger.yaml) (44 rows, all 12 required areas), characterization suite `tests/characterization/` (61 tests incl. ledger lint), all passing via `python3 -m pytest tests/characterization/`. No legacy file moved. As a maintainer, I want a donor ledger and characterization suite for the current CLI implementations so proven behavior is reused deliberately instead of rewritten. ## Acceptance criteria - Relevant functions in both CLI codebases are classified as reuse, extract, refactor, or replace, with rationale and target module. - The ledger covers discovery, hashing, imaging, NSFW, vision, EXIF, database, UI, configuration, logging, cancellation, and error behavior. - Representative current outputs are captured against stable fixture IDs. - No legacy file is moved or archived in this story. ## Automated tests - Characterization tests run against current donor entry points and core functions. - A ledger-lint test rejects missing source references, target locations, or test IDs.