Language Practice Service

Practice, Generated and Verified

Modules → shared core → generate → verify → deliver & schedule
Zone 01
Learner
Surface
💬
Dialogue
guided · free · role play
planning together
🧩
Trainers
word order · pronouns · tenses
syllable building for Korean
📷
Study from input
a photo becomes speech
a pasted text becomes a lesson
🎓
Exam
listening · reading
from a topic or your own text
a new module is a router
plus a screen - the core is untouched
request +
profile
Zone 02
Shared
Core
🌍
Two languages
the one being learned
the one explanations arrive in
🧠
Model client
structured replies, salvaged
and retried in one place
🔊
Speech chokepoint
times, prices and dates rewritten
into speakable form before the cache key
🗄️
State & queues
relational store with vectors
cache · background workers
every module reads the same services
and none of them owns an engine
prompt +
level
Zone 03
Content
Generation
✍️
Per-part prompts
one call per section or text
coupled sections regenerate whole
🎲
Seeded variety
details, names, register and genre
drawn per item, not left to the model
🔁
Split retries
a provider failure backs off
a rejected sample resamples at once
🩹
Gap top-up
repair rounds on every path, so one
hiccup is not a hole in a printed paper
content is made once per card -
regeneration is an explicit act
draft
card
rejected →
regenerate
Zone 04
Quality
Gates
🔩
Structural hardening
per format, with its own rules -
grammar pairs are not distractors
📊
Card-level checks
key balance · saturation · repeated
names · spread - hard ones regenerate
⚖️
The judge solves
supported
none
several
the key is never shown; the verdict
follows from what it picks
✦ a false rejection destroys a sound item -
every error path returns a pass
verified
card
Zone 05
Delivery
& Retention
▶️
Attempt engine
short codes, addressable at every
level - a reload keeps the place
🔗
Shared link
a visitor sits the same paper
without triggering generation or audio
🖨️
Printable booklet
pre-rendered audio · transcript
answer key as a choice
📈
Back into practice
mistakes become cards · repetition
per card mode · streak · export
what a learner got wrong is
the next thing they are scheduled
Isolation
A second exam format forks its own service and screen tree behind a named never-touch list, verified by diff rather than by care.
Failure bias
Verification is conservative in one direction: an unreachable provider degrades the judge to a no-op instead of gutting a good card.
Speech routing
Each feature picks its engine over a global default, and a voice saved for one engine falls back rather than crossing over.
Reach
Learner content stays in the language being learned; the interface follows the learner, across seventeen locales and both directions of script.
Learner request with a profile
Prompt built from shared services
Draft card, not yet trusted
Sends the item back to be remade
Card cleared for a learner
Sitting, printing, scheduling