diff --git a/.claude/board/EPIPHANIES.md b/.claude/board/EPIPHANIES.md index c529668e4..de76ab6a3 100644 --- a/.claude/board/EPIPHANIES.md +++ b/.claude/board/EPIPHANIES.md @@ -1,3 +1,27 @@ +## 2026-07-26 — E-CODEBOOK-LICENSE-REGIMES-ONE-ASSET-EACH-1 — the derived codebooks do NOT share one publication path: **UD-derived and WordNet-derived assets can ship as PUBLIC lance-graph Releases; PROIEL-derived and COCA-derived assets must stay PRIVATE (MedCare-rs)** — because a derived database inherits its source's licence, and PROIEL's NonCommercial clause is the blocker. Never bundle regimes into one asset. + +**Status:** RULING (governance). **Confidence:** High — every licence below was fetched and read, not assumed. + +**Verified licences** (probed 2026-07-26): + +| source | licence | NC? | copyleft | derived asset may be… | +|---|---|---|---|---| +| UD German-GSD | CC BY-SA 4.0 | no | SA | **PUBLIC** Release (attribute + SA) | +| UD German-HDT | CC BY-SA 4.0 (annotation) | no | SA | **PUBLIC** Release (attribute + SA) | +| theographic-bible-metadata | CC BY-SA 4.0 | no | SA | **PUBLIC** Release (attribute + SA) | +| **WordNet** (Princeton + OEWN) | WordNet License + **CC BY 4.0** | no | **none** | **PUBLIC**, attribution only — the most permissive asset we hold | +| **PROIEL** treebank | **CC BY-NC-SA 3.0** | **YES** | SA | **PRIVATE** only (MedCare-rs) | +| COCA (wordfrequency.info) | commercial/restricted | — | — | **PRIVATE** only (already ruled) | +| NTN (SemanticBible) | UNVERIFIED | ? | ? | LOCAL only until checked | + +**The reasoning that decides it.** A derived database is a derivative work, so the codebook inherits the source licence. Three consequences: (1) the German codebook is a CC BY-SA 4.0 derivative of UD GSD+HDT — BY-SA *permits* redistribution including commercial use, so a PUBLIC lance-graph Release is fine provided the asset attributes UD and carries BY-SA; (2) any Greek codebook mined from PROIEL inherits **NonCommercial**, which a public Release of a commercially-usable project cannot carry — private repo, same shelf as COCA; (3) WordNet carries neither NC nor SA, so it imposes **no copyleft on anything it is combined with** — the safest thing to depend on. + +**THE TRAP, and the rule: one Release asset per licence regime — never bundle.** Shipping the German codebook (BY-SA, commercial-OK) in the same archive as a PROIEL-derived Greek codebook (NC) makes the *combined* asset effectively NonCommercial: a permissive artifact silently contaminated by its packaging. Assets must be separated by regime, each with its own attribution and licence file, even when a consumer wants both. + +**The data-in-Releases convention turns out to be legally load-bearing, not merely size hygiene.** Code lives in the repo (Apache-2.0); data lives in Release assets under its own licence. That is *mere aggregation* — the SA obligation attaches to the derived DATABASE and never propagates into the Apache-2.0 Rust/Python that reads it. Had the codebooks been committed into the tree, a BY-SA database would sit inside an Apache-2.0 source tree and the boundary would be far harder to argue. The convention we adopted to keep 26k-line TSVs out of diffs is the same structure that keeps the licences clean. + +**Actions:** (a) German codebook → public lance-graph Release, asset carries `LICENSE-CC-BY-SA-4.0` + a citation of UD German-GSD/HDT; (b) WordNet rails → public Release, attribution to Princeton WordNet + the Open English WordNet team; (c) theographic rails → public Release, BY-SA + attribution; (d) Greek/PROIEL codebook → MedCare-rs private, NC recorded in its MANIFEST; (e) COCA → unchanged, private; (f) NTN → verify SemanticBible's terms before it leaves local disk (it is currently only in the session scratchpad — no action has published it). Every MANIFEST states its regime explicitly so a future session cannot re-bundle by accident. Refs: `E-SCI-1-COCA-GROUNDED-EXTRACTION-1` (the data-in-Releases convention), `E-ROSETTA-IS-A-JOIN-NOT-A-CHOICE-1` (the Latin/OCS additions inherit PROIEL's NC), task board W15/W17/W18. + ## 2026-07-26 — E-HYPERNYM-CLIMB-IS-A-CASCADE-TIER-DELTA-1 — WordNet's hypernym hierarchy is EXPLICIT vertical navigation, and it lines up with the substrate's own vertical machinery (HHTL tiers / CLAM-CHAODA cluster tree / the hierarchical-4⁴ codebook). Consequence: the fox→animal specificity loss stops being a judgement call and becomes a MEASURABLE tier delta — and the coarsest tier is the cheapest error detector. Caught a live bug that would have poisoned the Aesop probe. **Status:** FINDING for the walkability + the caught bug; [H] for the CLAM/codebook alignment (probe specified, NOT run). **Confidence:** High on what was measured; the alignment claim is explicitly unmeasured. diff --git a/.claude/board/PR_ARC_INVENTORY.md b/.claude/board/PR_ARC_INVENTORY.md index 1cb651cc1..0836dae10 100644 --- a/.claude/board/PR_ARC_INVENTORY.md +++ b/.claude/board/PR_ARC_INVENTORY.md @@ -33,6 +33,18 @@ > - **Docs** — knowledge files produced (immutable) > - **Confidence (YYYY-MM-DD):** — the ONLY mutable field +## 2026-07-26 — lance-graph #850 — D-SCI-1 findings arc: the anaphora TYPE boundary, the gateway hinge, the German codebook generator + 6 review fixes + +**Merged:** `e7db817` (branch `claude/lance-graph-last-10-pr-z30uij`, commits `2ed46e8`..`5170c45`). Board + data-generator only — no contract or source change, so no test surface moved. + +- **Added (generator)** — `crates/lance-graph-planner/examples/data/de/build_de_codebook.py`: the German COCA-shaped codebook from UD German-GSD+HDT. Emits `lexicon` / `article_case` / `article_decidability` / `satzklammer` / `valency` / `tekamolo` / `wechsel` / `reflexive` / `relative_pronoun`. Data stays in Releases (gitignored); the gitignore excludes directory CONTENTS with an explicit negation so the GENERATOR is tracked — git cannot re-include a file under an excluded directory, and an ignore rule naming a dir nobody can regenerate is a dangling reference. +- **Added (findings, all measured)** — `E-ANAPHORA-BEYOND-I4-IS-A-BASIN-EDGE-1` (7,657 German relative clauses: beyond the i4 window there are 7× more intervening finite verbs and 8.4× more competing nouns ⇒ a type boundary, not a size limit); `E-GATEWAY-TEXT-IS-A-PROJECTION-HINGE-1` (vocative 615-vs-3 Greek-vs-German; the four properties of a gateway text; calquing INVERTED from defect to projection asset); `E-TENSE-IS-A-BASIN-REGISTER-NOT-A-POINTER-1` (Plusquamperfekt 91.7 % basin-edge — opposite polarity to entity anaphora); `E-CONSTRUCTION-CHOICE-IS-THE-QUALIA-SIGNAL-1` (808 verbs with ≥4 constructions; qualia = surprisal of the construction given the paradigm); `E-ROSETTA-IS-A-JOIN-NOT-A-CHOICE-1` (wordnet = denominator, witness = numerator; Gospel Rosetta stack verified downloadable — Greek 29.1 MB + Vulgate 23.3 MB + OCS Marianus 13.0 MB); `E-HYPERNYM-CLIMB-IS-A-CASCADE-TIER-DELTA-1` (rails walk as depth hierarchy; `fox → animal` is a 4-step climb). +- **Locked** — **the i4 window is a TYPE boundary**: local (`-8 <= off <= +7`) = nibble pointer = SYNTAX; non-local = basin edge (SPO-G / AriGraph) = DISCOURSE, because past the window the discriminator becomes IDENTITY not POSITION, so a wider pointer cannot help. **Tense morphology is a basin-register OPERATION** (SET/READ R), never a pointer. **Construction choice is the qualia signal**, and its strength is `-log P(construction | paradigm)` — which CORRECTS `E-SCI-1-RIGHT-CORNER-DELAYED-COMMITMENT-1`'s "the passive is never the stored meaning": true of OUR normalization, false if read as discarding the SPEAKER's choice (assertion vs expression layer). **German: any bracket question must be asked of the verb CLUSTER, never a single token** (the finite verb anchors verb-finality). **Case never yields a semantic reading alone** — the ALTERNATION is the evidence (a `(prep, governor)` pair locked to one case is lexically governed). +- **Review** — 6 findings, ALL confirmed real and fixed pre-merge (`8e4631b`, `42978b4`): Codex P1 Satzklammer measured sentence-wide (V2 corrected to 40,882 vs V3+ 851); Codex P1 verb-finality read from the participle, REVERSING periphrastic clauses (relative 75.8 %, subordinate 82.1 % verb-final after fix); Codex P2 case→spatial meaning (11,001/36,934 tokens = 30 % reclassified as governed); CodeRabbit AUX excluded from subordinate detection (German modals are UPOS=AUX); plus the i4 notation ambiguity and MD040. Three of the four were the GERMAN FORM of the same bug this arc diagnosed in English — reading a surface signal as structure without checking what governs it. +- **Deferred** — the CLAM/HHTL ↔ WordNet-hierarchy alignment probe (specified, NOT run: does centroid ancestry track hypernym ancestry, against a flat-256 null?); `voice_paradigm.tsv`; the basin-level R register; Partizip I detection (UD German tags it ADJ, 0 detected); cross-sentence R-anchors (blocked on a non-shuffled corpus). **W5 gap 4 (keep-first polysemy) is now a BLOCKER for W11** — the vertical walk caught `swallow → consumption` (verb sense) and `grape → shot` (grapeshot), which would have poisoned the Aesop probe. +- **Docs** — EPIPHANIES ×6; LATEST_STATE contract inventory; this entry. +- **Confidence (2026-07-26):** working — all findings carry their measurements and their honest limits (Partizip I undetected; the 67.2 % no-anchor figure is a LOWER bound on a sentence-shuffled corpus; Futur II n=69 too sparse for statistics; the CLAM alignment explicitly unmeasured). + ## 2026-07-26 — lance-graph #849 (with #844 context) — D-SCI-1 Phases 1+2: right-corner delayed clause commitment + PROIEL witness-gated construction licenses **Merged:** #849 (`8e66ded` Phase 1 + `0200466` Phase 2 + `cecfc32` review round → merge `615f762`). Preceded on the same branch by #844 (`7b2ae3f` → merge `40b50d7`, 2026-07-24): `ValueTenant::Tekamolo = 13` (the 14th value tenant, `[188,204)` U8×16, Full carve 156→172 B layout-preserving) + `insight_reason_wired` (SPO-G `G` slot: `Utterance` beside `WordNet` rails + all text-derived tenants, slab round-trip proof). Branch `claude/lance-graph-last-10-pr-z30uij`.