1.5 KiB
1.5 KiB
Prompt Input Internals
This document describes the implemented prompt input package boundary.
Purpose
internal/promptinput converts a structured briefing package into the
data_package JSON file passed to scriptorium prompts.
Inputs and Outputs
Input:
briefing.Packagecontaining Daily-family, 3-Day Outlook, Weekend Outlook, or Storm Report content
Output:
promptinput.PackageJSON with report metadata, briefing content, source warnings, RunID, and a Recent Changes section.
Boundaries
- This package owns the prompt input schema and required-field validation.
- It does not fetch weather data, compute forecast summaries, compare prior
snapshots, or invoke
scriptorium.
Behavior
promptinput.Buildcopies report metadata from the briefing package.promptinput.Validaterejects missing or inconsistent required fields before render preflight.promptinput.Savewrites JSON atomically where practical.- Recent Changes is present as an
itemslist. It is empty when no prior comparable snapshot exists or no meaningful changes are detected.
Failure Behavior
Validation errors name the missing or inconsistent field. Save failures include the filesystem operation and path context.
Tests
Inspect:
internal/promptinput/package_test.gointernal/changes/daily_test.gointernal/app/app_test.go
Invariants
- Prompt input data remains structured JSON.
- Briefing metadata and top-level report metadata must agree.
- Recent Changes is not inferred from rendered report text.