# Classical literature fluency OOD eval lane (Phase 5.7)

## What it measures

Whether the deterministic realizer produces grammatical English surfaces over classical-literature vocabulary the seed pack does not contain.

The structural claim under test: fluency is mechanistic in the
realizer (templates over typed graph nodes), not lexical
(pack-bound).  If the claim holds, this OOD vocabulary passes the
same syntactic gates the seed vocabulary did at v1/v2 of
`grammatical_coverage` — and the same 13 constructions covered by
the Phase 5.1 `english_fluency_ood` lane.

## Inputs

`public/v1/cases.jsonl`
:  117 cases — 13 constructions × 3 public domains (epic, tragedy, lyric)
   × 3 lexical items per domain.

`holdouts/v1/cases.jsonl`
:  39 cases — 13 constructions × 1 held-out domain
   (comedy) × 3 items.

`dev/cases.jsonl`
:  13 cases — one of each construction from the first public domain.

Each case is one PropositionGraph JSON with realised constraints,
generated by `scripts/generate_phase5_domain_lanes.py`.

## Scoring rubric

Delegated to `evals/grammatical_coverage/runner.py` so the rubric
stays consistent across all fluency-OOD lanes:

  - surface satisfies `accept_surfaces` or `constraints` (must_contain,
    word_order, max_words)
  - surface is not in `reject_surfaces`

## Target

100% on public + holdouts.  Any miss indicates a real realizer or
inflection gap and is filed in `gaps.md`.

## Provenance

Same harness as `evals/english_fluency_ood/` (Phase 5.1).
Vocabulary is the only material change between lanes.
