# Report Registry Internals `internal/report` owns report identities, valid-period resolution, exact prompt identity and version, output names, default module composition, and Distributor path declarations. Public command syntax belongs in the [CLI reference](../cli.md); configuration aliases and overrides belong in the [configuration reference](../config.md). ## Definitions And Resolution Each `Definition` declares a stable ID and display name, prompt ID and version, template and generated-text schema IDs, valid-period resolver, default output name, Distributor path templates, module list, and fixed batch eligibility. `Resolved` combines a definition with one valid period and run identity. | Report ID | Prompt version | Default profile | Period policy | Fixed batch flag | Default output | | --- | --- | --- | --- | --- | --- | | `daily` | `2.0.0` | `weather-balanced` | Explicit local civil day | Dynamic Daily inclusion is app-owned | `daily-YYYY-MM-DD.md` | | `today` | `2.0.0` | `weather-balanced` | Selected or current local civil day | Morning | `today.md` | | `tomorrow` | `2.0.0` | `weather-balanced` | Next local civil day | Evening | `tomorrow.md` | | `hourly` | `2.0.0` | `weather-light` | Rolling six-hour interval | — | `hourly.md` | Daily derives its filename from the resolved valid-period start in the effective timezone, so multiple Daily items have distinct destinations. Exact template fields and schema assets belong to [report templates](../templates.md) and [generated-text internals](generatedtext.md). Prompt assets own default profile selection; the registry stores no provider setting. ## Collaborators And Boundaries `DefaultRegistry`, `Lookup`, `Resolve`, and report-name helpers prevent callers from duplicating report identity rules. Registry overrides clone a recognized definition and replace its module list. `DistributorPathTemplates` are consumed by app orchestration; their rendered external bundle-path contract is documented in the [Distributor bundle guide](../integrations/distributor/pkg-bundle.md). `morning` and `evening` are registry-owned batch names. Fixed flags declare Today and Tomorrow eligibility; app orchestration determines data-dependent Daily membership and the actual batch plan. The registry never collects weather data, parses CLI flags, writes output, executes Promptkit, or delivers a report. Focused tests cover definition completeness, command and alias lookup, period resolution, run IDs, output names, composition defaults, and override validation: ```sh go test ./internal/report ```