Update raw output files and manifests

This commit is contained in:
2026-07-07 19:27:28 +00:00
parent aa14faa3cb
commit 7c95791e94
10 changed files with 253 additions and 51 deletions

View File

@@ -21,7 +21,7 @@ merge output through unchanged.
## Output Shape
For a single chunk, `outputs/spells.json` has this shape:
For a single chunk, `lanes/spells.json` has this shape:
```json
{

View File

@@ -20,7 +20,7 @@ The `json` output module writes:
- `index.json`
- `manifest.json`
- `outputs/<lane-id>.json`, one file per normalized raw lane output
- `lanes/<lane-id>.json`, one file per normalized raw lane output
- `rejected.json`
- `warnings.json`
@@ -37,7 +37,7 @@ Shape:
{
"lane_id": "spells",
"media_type": "application/json",
"file": "outputs/spells.json",
"file": "lanes/spells.json",
"module_key": "noop",
"schema_id": "notarius.dnd.spells",
"schema_name": "notarius_dnd_spells_v1",
@@ -49,7 +49,7 @@ Shape:
}
```
`output_files` is in normalized output order. Output file names are produced by
`output_files` is sorted by lane ID. Output file names are produced by
sanitizing the lane ID:
- characters outside `A-Z`, `a-z`, `0-9`, `.`, `_`, and `-` become `_`;
@@ -103,14 +103,21 @@ references.
`validation_status` is `approved` when no raw outputs were rejected and
`rejected` when one or more raw outputs were rejected.
`normalized_outputs` summarizes each normalized lane output without embedding
payload bytes. Entries include lane ID, normalizer module key, source ID, media
type, and response schema provenance where available.
`rejected_outputs` summarizes rejected module outputs without embedding raw
payload bytes. Entries include stage, lane, module, chunk, validator or reason,
message, attempt count, and optional diagnostic artifact path.
## Output Payload Files
Each normalized raw output is written to `outputs/<sanitized-lane-id>.json`.
For `application/json` payloads, the file contains the raw JSON payload
pretty-printed. Other media types are written as raw bytes with the media type
reported in `index.json`.
Each normalized raw output is written to `lanes/<sanitized-lane-id>.json`.
The JSON output encoder accepts only `application/json` normalized outputs. The
file contains the raw JSON payload pretty-printed.
For the current D&D spell extractor, `outputs/spells.json` has this shape:
For the current D&D spell extractor, `lanes/spells.json` has this shape:
```json
{