TIER-2 READ conductor/code_styleguides/error_handling.md end-to-end before Phase 1.
Captures:
- tests/artifacts/PHASE1_AUDIT.json: full audit output for src/ (77KB)
- gui_2.py has 54 sites: 25 INTERNAL_BROAD_CATCH + 13 INTERNAL_SILENT_SWALLOW
+ 2 INTERNAL_RETHROW + 2 UNCLEAR + 12 INTERNAL_COMPLIANT
- tests/artifacts/PHASE1_SITE_INVENTORY.md: 42-row site inventory with
phase assignment, migration target, and rationale per site
Phase distribution: Phase 3 (8) + Phase 4 (3) + Phase 5 (13) + Phase 7 (1)
+ Phase 8 (4) + Phase 9 (1) + Phase 10 (8) + Phase 11 (2) + Phase 12 (2) = 39
sites (3 of the 13 INTERNAL_SILENT_SWALLOW sites were reclassified to other
phases because they are in render-loop or worker contexts where the drain
target is the render-result helper, not the silent-swallow migration).
Notes on classification:
- L65, L69 (UNCLEAR, _LazyModule._resolve): legitimate lazy-loading fallback
pattern with _FiledialogStub sentinel. Likely reclassifiable as
INTERNAL_COMPLIANT in Phase 12.
- L757, L760 (RETHROW, __getattr__): bare raise AttributeError(name) in the
canonical Python dunder method. Audit heuristic misclassifies as
INTERNAL_RETHROW; should be INTERNAL_PROGRAMMER_RAISE. Documented in
Phase 11.