Establish prepared metadata identity

This commit is contained in:
2026-08-13 01:52:11 +00:00
parent e520ffb13b
commit e2dd8d0e29
6 changed files with 153 additions and 27 deletions

View File

@@ -78,9 +78,12 @@ modules. SPC discussion is omitted unless a retained categorical outlook meets
the package's severity criterion and matching discussion text exists.
Effective units, timezone, and location context arrive in `ModuleContext` from
configuration and resolved report metadata. Field defaults are owned by
[configuration](../config.md), and prompt-package layout is owned by
[prompt input](prompt-input.md).
configuration and resolved report metadata. Report preparation also creates one
`PreparedIdentity` for the shared report identity, timing, configuration
context, and source warnings. Briefing metadata derives its matching fields
from that value; module projections retain their prompt-safe shape. Field
defaults are owned by [configuration](../config.md), and prompt-package layout
is owned by [prompt input](prompt-input.md).
## Verification and invariants

View File

@@ -4,11 +4,17 @@
execution. This is the immutable boundary shared by ordinary report generation
and profile comparison; it is not a durable artifact.
Preparation builds report facts, the configured module snapshot, briefing
metadata, the curated prompt-input package, serialized YAML, and the
generated-text definition. It deep-copies mutable facts, snapshots, metadata,
and data-package bytes before returning them. Consumers receive independent
copies so one execution cannot change another's input or rendering context.
Preparation first establishes one `PreparedIdentity` for the report run, report
and prompt IDs, variant, generation time, units, timezone, valid period,
location, and source warnings. It then builds report facts, the configured
module snapshot, briefing metadata, the curated prompt-input package,
serialized YAML, and the generated-text definition. The current metadata
projections remain equivalent to that identity while each retains its own
boundary-specific shape.
Preparation deep-copies mutable facts, snapshots, identity, metadata, and
data-package bytes before returning them. Consumers receive independent copies
so one execution cannot change another's input or rendering context.
Single-report generation executes one prepared profile and publishes its
Markdown. Comparison prepares once, gives every selected profile the same YAML