src/core/reporter.ts — writeReport() has ~128 lines and handles 8 distinct responsibilities:
directory creation, suggestion matching, verdict table, finding blocks, next step text,
forge interpretation, cross-contract section, and file writing.
Break it into smaller named helpers, each independently testable.
Acceptance criteria:
- writeReport() becomes an orchestrator of smaller functions
- Each helper has a unit test
- No change in report output format
src/core/reporter.ts — writeReport() has ~128 lines and handles 8 distinct responsibilities:
directory creation, suggestion matching, verdict table, finding blocks, next step text,
forge interpretation, cross-contract section, and file writing.
Break it into smaller named helpers, each independently testable.
Acceptance criteria: