# english-fluency-ood — v1 gaps

## v1 results

| split   | total | passed | accuracy |
| ------- | ----- | ------ | -------- |
| public  | 117   | 117    | 100%     |
| holdout | 39    | 39     | 100%     |

Per-construction accuracy is 100% on every C01–C13 across every
domain (nature, tech, domestic, chemistry).  Authoritative
metrics: `results/v1_public_metrics.json`,
`results/v1_holdouts_metrics.json`.

## Headline

**Realizer fluency is mechanistic, not pack-bound.**  The same 13
constructions that pass on `en_core_cognition_v1` vocabulary
(`grammatical_coverage` v1/v2) pass equally on vocabulary the
seed pack does not contain.  The structural claim Phase 5.1 set
out to test holds at v1.

## Resolution — G1 / G2 / G3 closed 2026-05-17

All three v1 gaps below have been closed in `generate/morphology.py`,
`generate/templates.py`, and `evals/grammatical_coverage/runner.py`.
Regression tests:

  - `tests/test_morphology_irregular.py` (28 cases) — `bind`→`bound`,
    `run`→`ran`/`running`, `stop`→`stopped`/`stopping`, etc.
  - `tests/test_realizer_quantifier_agreement.py` (17 cases) —
    "all molecules bind enzyme" (count) + "all evidence supports
    truth" (mass), plus negation/aspect interactions.

Phase 5.1–5.7 lane sweep stays at 100% on the more-correct realizer.

The original gap descriptions are preserved below for traceability.

## Original v1 gaps (now resolved)

These are realizer gaps the v1 lane intentionally **avoids
exercising** so the structural fluency claim is not confounded
with morphology / agreement issues.  They are real and need
follow-on work, but they belong in their own lanes.

### G1 — Irregular past tense

The realizer applies a regular `-ed` suffix unconditionally:

```text
input:  subject=molecule predicate=bind object=enzyme tense=past
output: "molecule binded enzyme."   (expected: "molecule bound enzyme.")
```

v1 cases use only regular verbs (flows, shapes, returns, carries,
warms, binds — "binds" is the present 3rd person which is regular;
the irregular past would be "bound").  A future v2 lane should
add an irregular-verb sub-lane and either:
- extend the realizer with an irregular-verb table from the
  seed pack, or
- emit an explicit OOV-morphology marker so downstream callers
  know the surface is best-effort.

### G2 — Plural agreement under quantifiers

The realizer does not pluralize subjects under universal /
existential quantifiers:

```text
input:  quantifier=all subject=molecule
output: "all molecule binds enzyme."   (expected: "all molecules bind enzyme.")
```

Same fix tier as G1 — either a typed plural form in the lemma
table, or an OOV-aware fallback.  v1 documents the gap and
scores the cases as passing because the rubric does not require
pluralisation; v2 should tighten the rubric and add the form.

### G3 — Constraint-rubric punctuation strictness (lane-side)

The shared `_check_word_order` rubric in
`evals/grammatical_coverage/runner.py` splits on whitespace and
compares words exactly, so `"river,"` does not match `"river"`.
The OOD generator works around this by pinning
`accept_surfaces` for C06 relative clauses.  Long-term, the
runner should strip trailing punctuation before comparison, but
that touches every dependent lane and belongs in its own change.

## Recommended follow-ons (out of this lane)

1. **v2 irregular-morphology sub-lane** — small, explicit, with
   the gap-G1 verbs and a fix path inside the realizer.
2. **v2 quantifier-agreement sub-lane** — gap G2.
3. **A discourse-scale fluency lane** (Phase 5.x) — anaphora,
   topic continuity, multi-sentence coherence over chained
   propositions.  Out of scope for v1.
4. **Cross-language fluency lanes** (Phase 5.2 Hebrew, 5.3
   Koine Greek).  Depend on per-language packs and per-language
   morphology tables; not blocked by this lane.

## What this lane evidences for Phase 5

The Phase 5 capability story rests on the realizer being able to
voice arbitrary curriculum content grammatically.  v1 shows that
for content within the realizer's morphology comfort zone, this
is true regardless of pack.  The remaining work is morphology
breadth, not fluency-architecture.  That's the right shape of
finding for opening Phase 5: the structural bet is good, the
follow-on work is bounded.
