Files
weatherreporter/docs/operations.md

2.3 KiB

Weatherreporter Operations

Normal Workflow

The implemented Daily generation workflow is:

weatherreporter generate daily --date 2026-05-29

The command fetches weather data, builds the Daily briefing, builds the prompt input data package, runs scriptorium render, runs scriptorium run, and writes inspectable artifacts under the configured workspace.

Filesystem Layout

The default workspace root is workspace.

workspace/
  snapshots/
    daily/
      YYYY-MM-DD/
        <run_id>.briefing.json
        <run_id>.metadata.json
  data-packages/
    daily/
      YYYY-MM-DD/
        <run_id>.data_package.json
  preflight/
    daily/
      YYYY-MM-DD/
        <run_id>.render.json
  reports/
    daily/
      <run_id>.md

The Markdown report is written to the managed report path. When --out is provided, the managed report is also copied to that path.

Run Identifiers

Run IDs are based on generation time plus report ID, such as:

20260529T100000.123456789Z_daily_today

Managed artifact filenames use the RunID so repeated runs for the same valid date do not overwrite each other.

Metadata

Each Daily generation writes metadata that links:

  • RunID
  • report ID and prompt ID
  • generation time and valid period
  • source location, source hashes, and source warnings
  • briefing snapshot path
  • prompt input data package path
  • preflight output path
  • rendered report path

Recent Changes

When a prior comparable Daily briefing snapshot exists for the same valid local date, the app compares structured briefing data before writing the prompt input data package. Meaningful changes are included under recentChanges.items.

When no prior comparable snapshot exists, or no configured threshold is crossed, the Recent Changes list is empty.

Recovery

If render preflight exits nonzero after producing a result, the captured stdout, stderr, exit code, and command are still written to the preflight artifact, and metadata is still written for inspection.

If scriptorium run exits nonzero after writing a report, the generated report and metadata remain available for inspection. Exit code 2 is still returned as an error because it indicates validation failed, even if report output exists.

The application does not currently implement resume, cleanup, archive, or remote storage behavior.