3.0 KiB
Code Quality Audit Snapshot
Purpose
This roadmap file records the current cleanup audit status for weatherfeeder.
It is not current-behavior documentation and should not be used as the source of
truth for implemented features. Current behavior belongs in README, config,
operations, internal, consumer, and integration docs.
Current Assessment
weatherfeeder remains architecturally coherent:
cmd/weatherfeederis runtime composition.- Source adapters fetch upstream provider payloads.
- Provider helpers isolate provider-specific parsing.
- Normalizers map raw schemas into canonical
modelpayloads. standardsowns schema, kind, and WMO constants.- Postgres sink mapping is isolated under
internal/sinks/postgres. - Feedkit owns generic config, scheduling, processing, dispatch, and sink mechanics.
The highest-value completed cleanup work since the original audit includes:
- event kind constants in
standards; - source driver constants in provider source packages;
- source registry tests derived from registered drivers;
- shared HTTP config parsing for multi-document sources;
- config/example load coverage;
- shallow documentation consistency tests for current schemas and source drivers;
- consumer documentation for public Go packages.
Remaining Cleanup Opportunities
Postgres Mapper Boilerplate
The Postgres mapper still repeats event envelope values and parent-row map patterns across canonical product families.
Recommended next action: implement the Postgres mapper envelope cleanup in
cleanup.md without changing table contracts or mapper behavior.
Package-Local Fixture Helpers
Some tests still use package-local fixture-loading helpers that may be consolidated where multiple files in the same package duplicate the same logic.
Recommended next action: consolidate only obvious same-package duplication. Do not add cross-package test helper packages.
Literal Sweep
Some string literals remain intentional in docs, YAML examples, and negative tests. Internal code and tests can still be reviewed for opportunities to use existing constants where that reduces drift risk.
Recommended next action: perform a final literal sweep only after higher-value cleanup stages are complete.
Non-Issues
These areas were reviewed and should not be refactored without a new roadmap:
- Normalizer
Matchmethods are intentionally explicit schema checks. - Provider-specific time parsers should remain provider-specific.
- SPC multi-document polling should remain source-local and atomic.
- The current runtime does not need a generic workflow engine.
- The Postgres sink should not become an ORM or reflection mapper.
- Documentation should remain audience-specific rather than generated from code.
Validation Baseline
The current test suite covers source construction, normalizer registration and mapping, Postgres schema/mapping, maintained config loading, source-driver docs, and event-schema docs.
Recommended baseline after any cleanup:
go test ./...