Wire hourly generated text rendering
This commit is contained in:
15
docs/cli.md
15
docs/cli.md
@@ -38,11 +38,13 @@ weatherreporter inspect sources [--config PATH] RUN_ID
|
||||
Implemented Markdown `generate` commands write a JSON module snapshot, YAML
|
||||
data package, preflight artifact, managed Markdown report, and metadata under
|
||||
the configured workspace. `--out` writes an extra Markdown copy for the
|
||||
operator; distributor notification uses the managed report path, not the extra
|
||||
copy. `generate hourly` is parsed and resolved, covers the next six hours in
|
||||
the effective report timezone, and does not accept date or event window flags;
|
||||
its rendering workflow is not implemented yet. `generate storm` requires
|
||||
explicit event-window bounds with `--start` and `--end`.
|
||||
operator on those Markdown-path commands; distributor notification uses the
|
||||
managed report path, not the extra copy. `generate hourly` covers the next six
|
||||
hours in the effective report timezone, does not accept date or event window
|
||||
flags, writes managed generated-text artifacts, validates the structured text,
|
||||
and renders the managed Markdown report from the embedded hourly template.
|
||||
`generate storm` requires explicit event-window bounds with `--start` and
|
||||
`--end`.
|
||||
|
||||
`run morning` generates Daily Today and the 3-Day Outlook, plus Weekend Outlook
|
||||
except on Sunday. `run evening` generates the Tomorrow Planning Brief. Batch
|
||||
@@ -66,7 +68,7 @@ They do not fetch weather data or invoke `scriptorium`.
|
||||
- `--config PATH`: load configuration from `PATH` instead of `/usr/local/etc/weatherreporter/config.yml`.
|
||||
- `--units VALUE`: override configured Weather API units for `generate` and `run`.
|
||||
- `--tz NAME`: override configured Weather API timezone for `generate` and `run`.
|
||||
- `--out PATH`: write an extra Markdown report copy for `generate` commands.
|
||||
- `--out PATH`: write an extra Markdown report copy where supported by the `generate` command.
|
||||
- `--out-dir PATH`: write extra Markdown report copies for `run morning` and `run evening`.
|
||||
- `--date YYYY-MM-DD`: optional date for `generate daily`; defaults to the current local date in the configured timezone.
|
||||
- `--start TIME`: required start time for `generate storm`.
|
||||
@@ -83,6 +85,7 @@ are no distributor-specific CLI flags.
|
||||
|
||||
```sh
|
||||
weatherreporter generate tomorrow --out ./tomorrow.md
|
||||
weatherreporter generate hourly
|
||||
weatherreporter generate three-day --out ./three-day.md
|
||||
weatherreporter generate weekend --out ./weekend.md
|
||||
weatherreporter generate storm --start 2026-05-29T18:00 --end 2026-05-30T06:00 --out ./storm.md
|
||||
|
||||
@@ -28,7 +28,8 @@ Outputs:
|
||||
|
||||
- generated report results with JSON module snapshot, YAML data package,
|
||||
preflight, report, metadata, prior snapshot, Recent Changes, Scriptorium
|
||||
result details, and notification result when attempted
|
||||
result details, generated-text artifact paths when applicable, and
|
||||
notification result when attempted
|
||||
- batch summaries with per-report status, artifact paths, error text, and
|
||||
notification outcome when attempted
|
||||
- saved Weather API bundle JSON for fetch workflows
|
||||
@@ -63,7 +64,7 @@ defaults.
|
||||
|
||||
## Generation Workflow
|
||||
|
||||
Single-report generation follows this order:
|
||||
Single-report generation shares this setup:
|
||||
|
||||
1. Resolve the command report to a `report.Resolved` value.
|
||||
2. Create or use a filesystem store.
|
||||
@@ -76,13 +77,26 @@ Single-report generation follows this order:
|
||||
9. Run Scriptorium render preflight.
|
||||
10. Save preflight JSON when a render result is available.
|
||||
11. Save metadata for inspection.
|
||||
12. Run Scriptorium report generation to the managed report path.
|
||||
13. Copy the managed report to the requested `--out` path when provided.
|
||||
14. Save metadata with the managed report path.
|
||||
15. If distributor notification is enabled, notify using the managed report
|
||||
|
||||
For `scriptorium_markdown` reports, generation then:
|
||||
|
||||
12. Runs Scriptorium report generation to the managed report path.
|
||||
13. Copies the managed report to the requested `--out` path when provided.
|
||||
14. Saves metadata with the managed report path.
|
||||
15. If distributor notification is enabled, notifies using the managed report
|
||||
path as the source file.
|
||||
16. Save a distributor notification debug artifact and update metadata with its
|
||||
path.
|
||||
16. Saves a distributor notification debug artifact and updates metadata with
|
||||
its path.
|
||||
|
||||
For `generated_text_template` reports, generation then:
|
||||
|
||||
12. Runs structured Scriptorium generation to the raw generated-text JSON path.
|
||||
13. Saves the structured Scriptorium run result.
|
||||
14. Validates and saves normalized generated text.
|
||||
15. Builds and saves a typed render context.
|
||||
16. Renders Markdown from the embedded template to the managed report path.
|
||||
17. Saves final metadata with generated-text paths, render context path, schema
|
||||
ID, and managed report path.
|
||||
|
||||
If render preflight returns both a result and an error, preflight JSON and
|
||||
metadata are persisted before the error is returned. If Scriptorium report
|
||||
@@ -142,6 +156,8 @@ Inspect:
|
||||
- Generated reports use the same app request and result types regardless of
|
||||
report ID.
|
||||
- Render preflight precedes Scriptorium report generation.
|
||||
- Generated-text reports render Markdown from a curated render context, not from
|
||||
a raw data package.
|
||||
- Recent Changes are computed from structured module snapshots.
|
||||
- Metadata links artifacts produced for a run.
|
||||
- Distributor notification maps the managed Markdown report path to configured
|
||||
|
||||
@@ -26,10 +26,11 @@ Each report definition declares:
|
||||
- morning or evening batch membership
|
||||
- default ordered module composition
|
||||
|
||||
Current Markdown report definitions use the `scriptorium_markdown` generation
|
||||
mode. Their template and structured-text schema identifiers are empty. Hourly
|
||||
Report declares `generated_text_template` with template ID `hourly` and schema
|
||||
ID `hourly`; the app rendering workflow for that mode is not implemented yet.
|
||||
Markdown report definitions use the `scriptorium_markdown` generation mode.
|
||||
Their template and structured-text schema identifiers are empty. Hourly Report
|
||||
declares `generated_text_template` with template ID `hourly` and schema ID
|
||||
`hourly`; the app uses those identifiers to validate generated text and render
|
||||
the embedded hourly template.
|
||||
|
||||
## Reports
|
||||
|
||||
|
||||
@@ -11,24 +11,27 @@ Generation commands:
|
||||
```text
|
||||
weatherreporter generate daily --date 2026-05-29
|
||||
weatherreporter generate tomorrow
|
||||
weatherreporter generate hourly
|
||||
weatherreporter generate three-day
|
||||
weatherreporter generate weekend
|
||||
weatherreporter generate storm --start 2026-05-29T18:00 --end 2026-05-30T06:00
|
||||
```
|
||||
|
||||
Each implemented Markdown generation command resolves a report period, fetches
|
||||
a Weather API bundle, builds a JSON module snapshot, builds a YAML prompt input
|
||||
data package, runs `scriptorium render`, runs `scriptorium run`, and writes
|
||||
managed artifacts under the configured workspace.
|
||||
When distributor notification is enabled, weatherreporter uploads the managed
|
||||
Markdown report after `scriptorium run` succeeds and final metadata is saved.
|
||||
`--out PATH` writes an extra Markdown copy for the current generated report; it
|
||||
is not used as the distributor upload source.
|
||||
Markdown-path generation commands resolve a report period, fetch a Weather API
|
||||
bundle, build a JSON module snapshot, build a YAML prompt input data package,
|
||||
run `scriptorium render`, run `scriptorium run`, and write managed artifacts
|
||||
under the configured workspace. When distributor notification is enabled,
|
||||
weatherreporter uploads the managed Markdown report after `scriptorium run`
|
||||
succeeds and final metadata is saved. `--out PATH` writes an extra Markdown
|
||||
copy for Markdown-path generated reports; it is not used as the distributor
|
||||
upload source.
|
||||
|
||||
`generate hourly` is an explicit command shell. It covers the six-hour rolling
|
||||
period from generation time in the effective report timezone and is not part of
|
||||
scheduled morning or evening batches, but its rendering workflow is not
|
||||
implemented yet.
|
||||
`generate hourly` covers the six-hour rolling period from generation time in
|
||||
the effective report timezone and is not part of scheduled morning or evening
|
||||
batches. It builds the same module snapshot and data package, runs
|
||||
`scriptorium render` as preflight, runs structured `scriptorium run` to raw
|
||||
GeneratedText JSON, validates the structured text, saves a render context, and
|
||||
renders the managed Markdown report from the embedded hourly template.
|
||||
|
||||
Batch commands:
|
||||
|
||||
@@ -71,6 +74,10 @@ workspace/
|
||||
YYYY-MM-DD/
|
||||
<run_id>.modules.json
|
||||
<run_id>.metadata.json
|
||||
<run_id>.generated_text.raw.json
|
||||
<run_id>.generated_text.run.json
|
||||
<run_id>.generated_text.json
|
||||
<run_id>.render_context.json
|
||||
storm/
|
||||
YYYY-MM-DD/
|
||||
<run_id>.modules.json
|
||||
@@ -156,6 +163,7 @@ Each generated report writes metadata that links:
|
||||
- prompt input data package path
|
||||
- preflight output path
|
||||
- managed Markdown report path
|
||||
- generated text schema ID and generated-text artifact paths for Hourly Report
|
||||
- distributor notification debug artifact path, when notification is attempted
|
||||
|
||||
Batch summaries include report status, error text when applicable, notification
|
||||
@@ -185,9 +193,11 @@ report generation has a distinct retry identity. The default bundle path uses
|
||||
the valid-period start date, artifact group, and RunID. Distributor owns
|
||||
destination merge, retention, and derived snapshot behavior such as `latest`.
|
||||
|
||||
Notification happens after final metadata save. Weather API, module snapshot,
|
||||
data-package, render preflight, Scriptorium run, and metadata-save failures do
|
||||
not trigger notification. A notification failure fails that report.
|
||||
Notification happens after final metadata save for Markdown-path generation.
|
||||
Weather API, module snapshot, data-package, render preflight, Scriptorium run,
|
||||
and metadata-save failures do not trigger notification. Hourly generated-text
|
||||
reports write the managed Markdown report and generated-text artifacts but do
|
||||
not notify distributor yet. A notification failure fails that report.
|
||||
In a batch, other reports continue, the failed report includes notification
|
||||
fields in the JSON summary, and the batch returns nonzero.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user