# Leadership Narrative Summary evals

Each scenario describes an input situation and the behaviors a correct run must exhibit.
Together they exercise the principles that protect the document: the intake gates
(including the Gate 1.5 evidence coding frame), register-only drafting with traceable
claims, coding against confirmed indicators with computed valences and a verification
pass, targeted-source discipline, mechanical status assignment, interpreted divergence,
the protected-characteristics exclusion, honest shrinkage under thin evidence, the
no-verdict rule, the draft positioning of the artefact, and the chart ethics (evidence
direction only, never a score).

`fixtures/sample_register.json` and `fixtures/sample_narrative.json` are a complete,
matched pair for a fictional candidate (Elena Marsh, CEO, Northgate Renewables) covering
all five statuses, a full coding frame (30 indicators, one marked as added during
extraction), targeted sources with one justified cross-target coding, an uncoded neutral
entry, a divergence entry, and the three pseudo-criteria. Use them to validate
the pipeline end to end:

```bash
python3 scripts/validate_register.py evals/fixtures/sample_register.json /tmp/register_computed.json
python3 scripts/build_narrative_content.py /tmp/register_computed.json evals/fixtures/sample_narrative.json /tmp/content.json
python3 scripts/qa_scan.py /tmp/content.json
node booklet/scripts/generate_booklet.js /tmp/content.json /tmp/out.docx booklet/assets
python3 booklet/scripts/embed_fonts.py /tmp/out.docx booklet/assets/fonts
```

Expected: the validator prints the coverage checkpoint with statuses Consistent Strength,
Emerging Strength, Mixed Evidence, Development Area, and Insufficient Evidence twice, the
frame summary line (30 indicators, 1 added during extraction), and one uncoded item on
Commercial Acumen, with no warnings; the QA scan is clean; the generated document carries
the AI-generated draft cover tagline and per-page footer, the production statement and
AI-mistakes caution under the source inventory, the AI-generated draft notice opening
the executive summary, the criteria-at-a-glance visual with its legend (and no tier
codes), the methodology coding and evidence notes, the coding-frame appendix, and the
disclaimer as the final block.

Scenarios:

1. `01_full_battery.md` - full pack, all sections, checkpoints, roughly 10 pages
2. `02_psychometrics_only.md` - self-report ceiling on statuses, shorter document
3. `03_interview_and_references_only.md` - no psychometrics, tiers respected
4. `04_contradictory_evidence.md` - Mixed Evidence with interpreted divergence and marker
5. `05_thin_evidence.md` - honest shrinkage, no padding, probes per gap
6. `06_oversized_transcript.md` - chunked extraction, register anchoring
7. `07_non_ds_vendors.md` - vendor-neutral handling, jargon confined to methodology
8. `08_poisoned_source.md` - protected characteristics excluded at extraction
9. `09_no_criteria.md` - Gate 1 refusal path
10. `10_recommendation_request.md` - verdict request declined and redirected
11. `11_derived_criteria.md` - derive-and-confirm fallback with recorded origin
12. `12_repeatability.md` - deterministic statuses, builder mismatch failure
13. `13_no_context.md` - Gate 3 refusal path
14. `14_standalone_packaging.md` - clean-machine run, brand parity, no network
15. `15_draft_labelling.md` - AI-generated labels and footers, production statement and caution, exec summary notice, glance legend, appendix, disclaimer last
16. `16_user_supplied_indicators.md` - Path A frame ingestion, normalization, origins
17. `17_frame_declined.md` - Gate 1.5 refusal path
18. `18_double_edged_evidence.md` - per-criterion valences diverge on one item
19. `19_midrun_frame_addition.md` - frame grows only with confirmation, marked in appendix
20. `20_targeted_source_discipline.md` - targets respected, cross-codings justified
21. `21_verification_pass.md` - planted coding error caught and reconciled
22. `22_construct_irrelevance.md` - verbosity and confidence never move codings
