This commit is contained in:
lila 2026-06-03 00:02:19 +02:00
parent 0118798e36
commit cc89f0c75c
20 changed files with 384 additions and 5600 deletions

View file

@ -0,0 +1,41 @@
# trial run — implementation roadmap (pure vertical)
goal: english + italian nouns through the full pipeline on local models, emit
coverage report. build a thin end-to-end slice first, then widen each pass.
## phase 0 — foundation
- confirm @lila/shared types (lang codes, POS) exist and match
- package.json deps for what phase 1 needs
- one hardcoded test word to carry through the slice (e.g. "house")
## phase 1 — thin vertical slice (ONE word, 1a→3, crudest possible)
goal: prove a single card can travel the whole pipeline and come out the end.
allowed to be ugly — hardcode, skip voting, one model, fake CEFRLex.
- 1a: one lemma record, by hand or trivial read
- 2a: look it up in Kaikki, confirm it exists
- 2b: extract its senses → card(s) with gloss
- 2c: fill one missing translation with ONE local model, no voting
- 3: assign a difficulty crudely (even hardcoded "easy")
- OUT: one finished card. the pipeline has a shape.
## phase 2 — widen: real deterministic front (1a2b, all words)
- 1a: real frequency list, verified
- 2a: real existence gate + miss-list triage
- 2b: real sense extraction, gender from tags, gloss-required drop
- still JSON output. inspect cards by hand.
## phase 3 — widen: real LLM back (2c + 3)
- storage seam: JSON → SQLite, schema, resumability
- 2c: real generate→vote, three families, all sub-passes
- 3: real CEFRLex single-sense + 3-model vote multi-sense + exclude-on-split
## phase 4 — coverage report + runs
- emit report
- run english, then italian
- decide: local good enough? rent vs API?