Symptom
Coverage is strong overall (~360 tests in internal/loader/hcl) but uneven:
cmd/hclexp/flows.go (8.2 KB) — zero tests.
internal/loader/hcl/macros_introspect.go — live-test only; no unit coverage.
internal/loader/hcl/plan.go (7.8 KB) — 1 test; render_json.go (4.8 KB) — 1 test.
dictionary_introspect.go (9.6 KB), dictionary_sqlgen.go (7.2 KB), named_collection_diff.go (5 KB), named_collection_dump.go, hclfuncs.go — no direct unit tests (dictionaries covered only via live tests).
CI computes total coverage but does not gate on it.
Fix direction
Add unit tests for the files above (dictionary/named-collection paths can be tested against canned create_table_query strings without a live server), then set a coverage floor in CI so it can't regress.
Found in the 2026-07-02 deep-dive audit (docs/plans/2026-07-02-deep-dive-improvement-areas.md, E2).
Symptom
Coverage is strong overall (~360 tests in internal/loader/hcl) but uneven:
cmd/hclexp/flows.go(8.2 KB) — zero tests.internal/loader/hcl/macros_introspect.go— live-test only; no unit coverage.internal/loader/hcl/plan.go(7.8 KB) — 1 test;render_json.go(4.8 KB) — 1 test.dictionary_introspect.go(9.6 KB),dictionary_sqlgen.go(7.2 KB),named_collection_diff.go(5 KB),named_collection_dump.go,hclfuncs.go— no direct unit tests (dictionaries covered only via live tests).CI computes total coverage but does not gate on it.
Fix direction
Add unit tests for the files above (dictionary/named-collection paths can be tested against canned
create_table_querystrings without a live server), then set a coverage floor in CI so it can't regress.Found in the 2026-07-02 deep-dive audit (docs/plans/2026-07-02-deep-dive-improvement-areas.md, E2).