This commit is contained in:
@@ -70,6 +70,32 @@ Use fixtures, local test servers, and package-level tests.
|
||||
- Prefer explicit registries and small package-level constructors over hidden
|
||||
global behavior.
|
||||
|
||||
## Architecture-Preserving Changes
|
||||
|
||||
When changing `weatherfeeder`, preserve the split between feedkit
|
||||
infrastructure and weather-domain behavior.
|
||||
|
||||
Do:
|
||||
|
||||
- keep generic scheduling, dispatch, processor, config, and sink mechanics in
|
||||
feedkit;
|
||||
- keep weather provider rules in source adapters, provider helpers, and
|
||||
normalizers;
|
||||
- keep canonical weather payloads in `model` and schema/wire identifiers in
|
||||
`standards`;
|
||||
- keep Postgres table and row mapping under `internal/sinks/postgres`;
|
||||
- use explicit registries for built-in sources and normalizers.
|
||||
|
||||
Do not:
|
||||
|
||||
- move provider parsing, WMO mapping, or canonical weather policy into
|
||||
`cmd/weatherfeeder`;
|
||||
- move weather-specific constants, schemas, or validation rules into feedkit;
|
||||
- put database column metadata or sink-specific tags on canonical model structs;
|
||||
- replace explicit registries with dynamic plugin loading;
|
||||
- introduce broad abstractions when a small provider-specific helper preserves
|
||||
clarity.
|
||||
|
||||
## Dependency Policy
|
||||
|
||||
Prefer the Go standard library unless a dependency materially improves
|
||||
|
||||
Reference in New Issue
Block a user