feat(packs): ADR-0103 — attach hebrew_fluency + koine_greek_fluency lanes to ADR-0102 (#106)

* feat(evals): add Hebrew fluency holdout cases

* feat(evals): add Koine Greek fluency holdout cases

* feat(packs): attach fluency lanes to he_core_cognition_v1

* feat(packs): attach fluency lanes to he_logos_micro_v1

* feat(packs): attach fluency lanes to grc_logos_cognition_v1

* feat(packs): ADR-0103 fluency lane attachment

* test(packs): expect ADR-0103 fluency lanes on Hebrew Greek contracts

* docs(evals): add Hebrew fluency holdout split note

* docs(evals): add Koine Greek fluency holdout split note

* docs(evals): note Hebrew holdout attachment

* docs(evals): note Koine Greek holdout attachment

* docs: add ADR 0103 placeholder

* docs(adr): expand ADR-0103 fluency lane attachment

* docs: index ADR-0103 and refresh frontier
This commit is contained in:
Shay 2026-05-22 09:43:46 -07:00 committed by GitHub
parent c07b967454
commit 1395ec1354
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 183 additions and 12 deletions

View file

@ -0,0 +1,94 @@
# ADR-0103 — Fluency Lane Attachment for ADR-0102
**Status:** Accepted
**Date:** 2026-05-22
**Author:** CORE agents + reviewers
**Depends on:** ADR-0091, ADR-0102
---
## Context
ADR-0102 ratified `hebrew_greek_textual_reasoning` with only universal reasoning lanes attached:
- `inference_closure`
- `fabrication_control`
At the time, the language-specific Hebrew and Koine Greek fluency lanes did not yet expose sealed holdout splits, so attaching them to ratified contracts would have violated ADR-0091 expectations around `dev/public/holdout` coverage.
Both lanes now ship plaintext holdout sets through:
```text
holdouts/v1/cases.jsonl
```
and can therefore be attached to the ADR-0102 manifests without weakening the contract discipline.
---
## Decision
Attach the following eval lanes to all four ADR-0102 manifests:
- `hebrew_fluency`
- `koine_greek_fluency`
Each lane declares:
```jsonc
{
"version": "v1",
"splits": ["dev", "public", "holdout"]
}
```
The following packs must remain uniform:
- `he_core_cognition_v1`
- `he_logos_micro_v1`
- `grc_logos_cognition_v1`
- `grc_logos_micro_v1`
All four manifests advance provenance to:
```text
adr-0103:reviewed:2026-05-22
```
---
## Acceptance evidence
Accepted after the following landed together:
- Hebrew holdout cases
- Koine Greek holdout cases
- updated fluency contracts
- updated gap notes
- updated sibling-ratification invariants
- uniform lane attachment across all four manifests
---
## Invariants
### `hebrew_greek_fluency_lanes_uniform`
All four ADR-0102 packs must declare identical eval-lane coverage.
### `hebrew_greek_fluency_holdouts_present`
Both:
- `hebrew_fluency`
- `koine_greek_fluency`
must ship non-empty `holdouts/v1/cases.jsonl` before appearing in ratified domain contracts.
---
## Consequences
- ADR-0102 now carries language-specific fluency evidence in addition to universal reasoning evidence.
- Hebrew/Greek textual reasoning contracts now satisfy full `dev/public/holdout` discipline for attached fluency lanes.
- Future language-track ADRs can extend morphology and construction coverage without changing Domain Pack Contract v1.

View file

@ -99,12 +99,14 @@ ADRs record significant architectural decisions: what was decided, why, what alt
| [ADR-0100](ADR-0100-physics-reasoning-capable-ratification.md) | Physics Reasoning-Capable Ratification | Accepted (2026-05-22) |
| [ADR-0101](ADR-0101-systems-software-reasoning-capable-ratification.md) | Systems-Software Reasoning-Capable Ratification | Accepted (2026-05-22) |
| [ADR-0102](ADR-0102-hebrew-greek-reasoning-capable-ratification.md) | Hebrew-Greek Textual-Reasoning Reasoning-Capable Ratification | Accepted (2026-05-22) |
| [ADR-0103](ADR-0103-fluency-lane-attachment-for-adr-0102.md) | Fluency Lane Attachment for ADR-0102 | Accepted (2026-05-22) |
| ADR-0105 | Expert-Demo Ratification Contract | Placeholder / Proposed |
---
## Current frontier
The ADR-0091..0102 slate is fully accepted and mechanically evidenced:
The ADR-0091..0103 slate is fully accepted and mechanically evidenced:
- Domain Pack Contract v1 — ADR-0091
- Reviewer Registry v1 — ADR-0092
@ -118,14 +120,14 @@ The ADR-0091..0102 slate is fully accepted and mechanically evidenced:
- `physics` reasoning-capable ratification — ADR-0100
- `systems_software` reasoning-capable ratification — ADR-0101
- `hebrew_greek_textual_reasoning` multi-pack reasoning-capable ratification — ADR-0102
- Hebrew/Greek fluency lane attachment for ADR-0102 — ADR-0103
Six lanes are SHA-pinned in `scripts/verify_lane_shas.py` and gated by the `lane-shas` GitHub Actions workflow: `reviewer_registry`, `domain_contract_validation`, `miner_loop_closure`, `fabrication_control_summary`, `demo_composition`, `public_demo`.
The next implementation frontier is open. Candidate directions include:
- **Curriculum-sourced proposals.** ADR-0094 reserved `ProposalSource(kind="curriculum")`; a curriculum ADR can introduce it without secondary schema churn.
- **Holdout splits for language-specific lanes.** ADR-0102 currently relies on universal lanes (`inference_closure`, `fabrication_control`); language-specific fluency lanes (`evals/hebrew_fluency/`, `evals/koine_greek_fluency/`) need sealed holdout splits before they can attach to `reasoning-capable` claims.
- **Expert-demo ratification.** All ADR-0097/0100/0101/0102 ledger rows currently sit at `reasoning-capable` with `expert_demo=false`. The next status tier requires evidence beyond the universal lanes.
- **Expert-demo ratification.** All ADR-0097/0100/0101/0102 ledger rows currently sit at `reasoning-capable` with `expert_demo=false`. ADR-0105 is reserved for the expert-demo promotion contract.
No ADR currently sits in a "Proposed but unimplemented" state.
@ -138,7 +140,7 @@ No ADR currently sits in a "Proposed but unimplemented" state.
| `mathematics_logic` | ADR-0097 | `en_mathematics_logic_v1` | All nine ADR-0091 predicates pass; ledger row is `reasoning-capable`; `expert_demo` remains false; lanes include positive coverage, inference closure, and fabrication control. |
| `physics` | ADR-0100 | `en_physics_v1` | All nine predicates pass; causal/modal operator coverage meets threshold; ledger row is `reasoning-capable`; `expert_demo` remains false. |
| `systems_software` | ADR-0101 | `en_systems_software_v1` | All nine predicates pass; transitive/causal operator coverage meets threshold; ledger row is `reasoning-capable`; `symbolic_logic` is the v1 closest-fit eval lane. |
| `hebrew_greek_textual_reasoning` | ADR-0102 | `grc_logos_micro_v1`, `grc_logos_cognition_v1`, `he_logos_micro_v1`, `he_core_cognition_v1` | First multi-pack ratification; all four packs carry uniform contract fields; causal/contradiction operator coverage meets threshold; universal lanes are declared until language-specific holdouts land. |
| `hebrew_greek_textual_reasoning` | ADR-0102 + ADR-0103 | `grc_logos_micro_v1`, `grc_logos_cognition_v1`, `he_logos_micro_v1`, `he_core_cognition_v1` | First multi-pack ratification; all four packs carry uniform contract fields; causal/contradiction operator coverage meets threshold; ADR-0103 attaches Hebrew and Koine Greek fluency lanes with `dev/public/holdout` coverage. |
---
@ -160,9 +162,9 @@ Runtime contracts for the chain are pinned in [`docs/runtime_contracts.md`](../r
ADR-0027 through ADR-0045 establish the identity / safety / ethics pack architecture with deterministic remediation, audit completeness, telemetry, operator readout, audit-tour demo, pack measurements, a worked-example medical ethics pack, and long-context comparison measurements.
### Evidence-governed domain chain — ADR-0091 through ADR-0102
### Evidence-governed domain chain — ADR-0091 through ADR-0103
ADR-0091 through ADR-0102 establish the current domain-ratification substrate:
ADR-0091 through ADR-0103 establish the current domain-ratification substrate:
```text
contract definition
@ -174,6 +176,8 @@ validator / ledger enforcement
negative-control fabrication lane
reasoning-capable domain ratification
language-specific fluency lane attachment
```
No domain claim should be treated as mature merely because a pack exists. Capability status belongs to the generated ledger and its evidence predicates.

View file

@ -35,6 +35,12 @@ grounding + word-order assembly through `_assemble`.
`dev/cases.jsonl`
: 1 case — smoke check for runner integration.
`holdouts/v1/cases.jsonl`
: 5 sealed plaintext Hebrew realization cases added for ADR-0103.
These cases are not referenced by the development split and complete
the `dev/public/holdout` requirement for attaching
`hebrew_fluency` to ADR-0102 ratified contracts.
## Scoring rubric
A case passes if the realized surface:

View file

@ -11,6 +11,9 @@
slot matching is *not* gated at v1 — the runtime currently folds
multi-token Hebrew input to a single lexeme through articulation
(a known limitation, see v2 below).
- Holdout status: ADR-0103 adds plaintext `holdouts/v1/` cases so the
lane now satisfies the `dev/public/holdout` requirement for
attachment to ADR-0102 reasoning-capable contracts.
## v2 unblock path — Hebrew construction coverage

View file

@ -0,0 +1,5 @@
{"id": "HEB-HLD_01", "construction": "C01", "construction_name": "simple_declarative", "language": "he", "proposition_graph": {"nodes": [{"node_id": "n1", "subject": "רוח", "predicate": "ברא", "obj": "חיים"}], "edges": []}, "accept_surfaces": ["ברא רוח חיים"], "constraints": {"must_contain": ["רוח", "ברא", "חיים"], "word_order": ["ברא", "רוח", "חיים"], "max_words": 6}}
{"id": "HEB-HLD_02", "construction": "C01", "construction_name": "simple_declarative", "language": "he", "proposition_graph": {"nodes": [{"node_id": "n1", "subject": "אדם", "predicate": "צרך", "obj": "בינה"}], "edges": []}, "accept_surfaces": ["צרך אדם בינה"], "constraints": {"must_contain": ["אדם", "צרך", "בינה"], "word_order": ["צרך", "אדם", "בינה"], "max_words": 6}}
{"id": "HEB-HLD_03", "construction": "C01", "construction_name": "simple_declarative", "language": "he", "proposition_graph": {"nodes": [{"node_id": "n1", "subject": "ראשית", "predicate": "ברא", "obj": "בריאה"}], "edges": []}, "accept_surfaces": ["ברא ראשית בריאה"], "constraints": {"must_contain": ["ראשית", "ברא", "בריאה"], "word_order": ["ברא", "ראשית", "בריאה"], "max_words": 6}}
{"id": "HEB-HLD_04", "construction": "C01", "construction_name": "simple_declarative", "language": "he", "proposition_graph": {"nodes": [{"node_id": "n1", "subject": "חסד", "predicate": "דבר", "obj": "שלום"}], "edges": []}, "accept_surfaces": ["דבר חסד שלום"], "constraints": {"must_contain": ["חסד", "דבר", "שלום"], "word_order": ["דבר", "חסד", "שלום"], "max_words": 6}}
{"id": "HEB-HLD_05", "construction": "C01", "construction_name": "simple_declarative", "language": "he", "proposition_graph": {"nodes": [{"node_id": "n1", "subject": "נפש", "predicate": "צרך", "obj": "נשמה"}], "edges": []}, "accept_surfaces": ["צרך נפש נשמה"], "constraints": {"must_contain": ["נפש", "צרך", "נשמה"], "word_order": ["צרך", "נפש", "נשמה"], "max_words": 6}}

View file

@ -26,6 +26,12 @@ measured honestly. See `gaps.md` for the v2 unblock path.
`dev/cases.jsonl`
: 1 case — smoke check for runner integration.
`holdouts/v1/cases.jsonl`
: 5 sealed plaintext Koine Greek realization cases added for ADR-0103.
These cases are not referenced by the development split and complete
the `dev/public/holdout` requirement for attaching
`koine_greek_fluency` to ADR-0102 ratified contracts.
## Scoring rubric
A case passes if the realized surface:

View file

@ -9,6 +9,9 @@
- Rubric: **script + length** only. Lexeme-level slot matching is
not gated at v1 for the same runtime-folding reason as Hebrew
(see v2 §6 below).
- Holdout status: ADR-0103 adds plaintext `holdouts/v1/` cases so the
lane now satisfies the `dev/public/holdout` requirement for
attachment to ADR-0102 reasoning-capable contracts.
## v2 unblock path — Koine Greek construction coverage

View file

@ -0,0 +1,5 @@
{"id": "GRC-HLD_01", "construction": "C01", "construction_name": "simple_declarative", "language": "grc", "proposition_graph": {"nodes": [{"node_id": "n1", "subject": "πνεῦμα", "predicate": "κτίζω", "obj": "ζωή"}], "edges": []}, "accept_surfaces": ["πνεῦμα ζωή κτίζω"], "constraints": {"must_contain": ["πνεῦμα", "κτίζω", "ζωή"], "word_order": ["πνεῦμα", "ζωή", "κτίζω"], "max_words": 6}}
{"id": "GRC-HLD_02", "construction": "C01", "construction_name": "simple_declarative", "language": "grc", "proposition_graph": {"nodes": [{"node_id": "n1", "subject": "ἄνθρωπος", "predicate": "λαμβάνω", "obj": "σύνεσις"}], "edges": []}, "accept_surfaces": ["ἄνθρωπος σύνεσις λαμβάνω"], "constraints": {"must_contain": ["ἄνθρωπος", "λαμβάνω", "σύνεσις"], "word_order": ["ἄνθρωπος", "σύνεσις", "λαμβάνω"], "max_words": 6}}
{"id": "GRC-HLD_03", "construction": "C01", "construction_name": "simple_declarative", "language": "grc", "proposition_graph": {"nodes": [{"node_id": "n1", "subject": "ἀγάπη", "predicate": "λέγω", "obj": "φιλία"}], "edges": []}, "accept_surfaces": ["ἀγάπη φιλία λέγω"], "constraints": {"must_contain": ["ἀγάπη", "λέγω", "φιλία"], "word_order": ["ἀγάπη", "φιλία", "λέγω"], "max_words": 6}}
{"id": "GRC-HLD_04", "construction": "C01", "construction_name": "simple_declarative", "language": "grc", "proposition_graph": {"nodes": [{"node_id": "n1", "subject": "αἰών", "predicate": "ἐρωτάω", "obj": "ἐπιστήμη"}], "edges": []}, "accept_surfaces": ["αἰών ἐπιστήμη ἐρωτάω"], "constraints": {"must_contain": ["αἰών", "ἐρωτάω", "ἐπιστήμη"], "word_order": ["αἰών", "ἐπιστήμη", "ἐρωτάω"], "max_words": 6}}
{"id": "GRC-HLD_05", "construction": "C01", "construction_name": "simple_declarative", "language": "grc", "proposition_graph": {"nodes": [{"node_id": "n1", "subject": "ἔρως", "predicate": "ἀποκρίνομαι", "obj": "στοργή"}], "edges": []}, "accept_surfaces": ["ἔρως στοργή ἀποκρίνομαι"], "constraints": {"must_contain": ["ἔρως", "ἀποκρίνομαι", "στοργή"], "word_order": ["ἔρως", "στοργή", "ἀποκρίνομαι"], "max_words": 6}}

View file

@ -11,7 +11,7 @@
"gate_engaged": true,
"oov_policy": "fail_closed",
"glosses_checksum": "6b1e83010b2065ceedb0988e2020ee13999a1883e6399f1ca8908235683d7e42",
"provenance": "adr-0102:reviewed:2026-05-21",
"provenance": "adr-0103:reviewed:2026-05-22",
"domain_contract_version": 1,
"domain_id": "hebrew_greek_textual_reasoning",
"axioms": null,
@ -27,6 +27,16 @@
"lane": "fabrication_control",
"version": "v1",
"splits": ["dev", "public", "holdout"]
},
{
"lane": "hebrew_fluency",
"version": "v1",
"splits": ["dev", "public", "holdout"]
},
{
"lane": "koine_greek_fluency",
"version": "v1",
"splits": ["dev", "public", "holdout"]
}
],
"reviewers": ["shay-j"],

View file

@ -11,7 +11,7 @@
"gate_engaged": true,
"oov_policy": "fail_closed",
"glosses_checksum": "cfc5c3b3dafcd8290cff484039af34c8a17a826e40a3c8fa1ffe97e32c36934c",
"provenance": "adr-0102:reviewed:2026-05-21",
"provenance": "adr-0103:reviewed:2026-05-22",
"domain_contract_version": 1,
"domain_id": "hebrew_greek_textual_reasoning",
"axioms": null,
@ -27,6 +27,16 @@
"lane": "fabrication_control",
"version": "v1",
"splits": ["dev", "public", "holdout"]
},
{
"lane": "hebrew_fluency",
"version": "v1",
"splits": ["dev", "public", "holdout"]
},
{
"lane": "koine_greek_fluency",
"version": "v1",
"splits": ["dev", "public", "holdout"]
}
],
"reviewers": ["shay-j"],

View file

@ -11,7 +11,7 @@
"gate_engaged": true,
"oov_policy": "fail_closed",
"glosses_checksum": "286acaf29fd2b3cc01ff5537f2b1552788ba2d495f977517ec5e4acd2a564ac5",
"provenance": "adr-0102:reviewed:2026-05-21",
"provenance": "adr-0103:reviewed:2026-05-22",
"domain_contract_version": 1,
"domain_id": "hebrew_greek_textual_reasoning",
"axioms": null,
@ -27,6 +27,16 @@
"lane": "fabrication_control",
"version": "v1",
"splits": ["dev", "public", "holdout"]
},
{
"lane": "hebrew_fluency",
"version": "v1",
"splits": ["dev", "public", "holdout"]
},
{
"lane": "koine_greek_fluency",
"version": "v1",
"splits": ["dev", "public", "holdout"]
}
],
"reviewers": ["shay-j"],

View file

@ -11,7 +11,7 @@
"gate_engaged": true,
"oov_policy": "fail_closed",
"glosses_checksum": "2d00c18735fa81b6d1f3ece754c132924bf8a2b83241d1561370bef52e8816e1",
"provenance": "adr-0102:reviewed:2026-05-21",
"provenance": "adr-0103:reviewed:2026-05-22",
"domain_contract_version": 1,
"domain_id": "hebrew_greek_textual_reasoning",
"axioms": null,
@ -27,6 +27,16 @@
"lane": "fabrication_control",
"version": "v1",
"splits": ["dev", "public", "holdout"]
},
{
"lane": "hebrew_fluency",
"version": "v1",
"splits": ["dev", "public", "holdout"]
},
{
"lane": "koine_greek_fluency",
"version": "v1",
"splits": ["dev", "public", "holdout"]
}
],
"reviewers": ["shay-j"],

View file

@ -45,7 +45,7 @@ _DOMAINS: dict[str, dict] = {
},
},
"hebrew_greek_textual_reasoning": {
"adr": "adr-0102",
"adr": "adr-0103",
"packs": (
"grc_logos_micro_v1",
"grc_logos_cognition_v1",
@ -55,7 +55,12 @@ _DOMAINS: dict[str, dict] = {
"claimed_operators": ("causal", "contradiction"),
"min_intent_shapes": 3,
"expected_chains": ["hebrew_greek_textual_reasoning_chains_v1"],
"expected_lanes": {"inference_closure", "fabrication_control"},
"expected_lanes": {
"inference_closure",
"fabrication_control",
"hebrew_fluency",
"koine_greek_fluency",
},
},
}