limba

Romanian B1 — the workspace hub
Generated 2026-09-29 by scripts/hub.mjs · Phase 1 — A1 foundations (U01–U10). Every number is read from the file that owns it — nothing here is hand-maintained.

Where things stand

125
days to exam→
2027-02-01 — the working target
7/30
units done→
next up: U08 — Food and shopping
41/79
grammar taught→
individual pieces of grammar fully covered, out of everything B1 needs
102
came around today
86 more than one interval late
plus 149 in the daily pool
part 1 takes the oldest 10 of 251
32
study sessions→
most recent was 2026-09-29
1/4
lessons this week→
3 short · 6 days left
Mon 28 Sep – Sun 4 Oct
266
items in it
The deck →
211 words · 55 grammar patterns · 251 of them due today — each with its notes and, where it exists, its audio.
Filter by unit, tier or part of speech and sort the same three ways; hide one side (RO → EN or EN → RO) and reveal a row at a time.
Opens deck.html next to this page — rebuilt from the ledgers at every close-out, so it is current. 2 of the 268 tracked items are not in it: they are seeded against a unit that has not taught them yet.
What to do next

Run /limba-lesson — 3 lessons short, 2 drills short. The queue leads part 1, then U08.

1/4 lessons this week 0/2 drills 102 to review
the detail

102 came around, 149 in the pool. Part 1's 10′ takes the oldest 10 of them; the rest keep their place in line — the queue is oldest-first so the tail can wait. A drill instead spends ≈185′ on the same rows and teaches nothing new. Agree a block budget before the first set.

SES-032 left: (1) The weekly review and replan the learner has asked for — this is the second session in a row to stand open across an idle stretch. (2) The -ez- third person produced many times, not re-explained — ERR-105, ERR-093. (3) stânga and dreapta drilled against each other, anchored on drept. (4) The U07 part-2 words re-met. (5) Polite against familiar, chosen on cue — ERR-108. (6) U08 opens. (7) Carried: SES-031's Next.

Memory ladder
Where the 268 tracked items sit. Tier 1 is shaky, tier 5 is cold storage.
149
37
42
23
15
tier 1 · 0dtier 2 · 3dtier 3 · 7dtier 4 · 21dtier 5 · 60d

Cheat sheets — several units' tables on one page

Filed under U00, which is a shelf rather than a unit: these pages teach nothing new, so they move none of the counts above. They are where the tables of the units below are held side by side.

Every table so far

reference

Every table taught so far on one page, and the endings that mean four different things depending on the table.

The 30 units — what each one has given you

Click any unit to open it. Two bars, and they measure different things: taught is how much of the unit's material has been delivered, retained is how much of it you currently hold. They come apart — a unit can be finished and still be shaky, which is the case the plain "covered" label could never show. Every study page ever built for you sits inside the unit it belongs to, and every page has its audio built in.
order solid shaky
U01 Sounds, spelling, first contact taught in full
taught15/15 aspects
retained60%

What this unit owns

Alphabet, 31 letters R W
Vowel inventory (7) and the two new ones (ă, â/î) R L S
Consonant values and digraphs (ce/ci, ge/gi, ch/gh) R L S
The î/â spelling rule R W
No palatalization before front vowels L S
10 more
Stress — variable, unwritten L S
Subject pronouns + formal dumneavoastră R W L S
The infinitive marker a (a fi, a vorbi) R W
a fi, present R W L S
Negation with nu (nu sunt student) R W S
The n- contraction (nu am → n-am) R W L
Yes-no questions by intonation R L S
tu vs dumneavoastră S W
Greetings, courtesy, classroom meta-phrases S L
The UA/RU/EN false-friend set R S
Taught 2026-07-31.

40 things to remember

24 solid · 16 still shaky
vă roga înțelegecartea învățalibrăriebună dimineațabună searanoapte bunăla revederecu plăcere+6 more
Taught by

The whole sound system: 31 letters, seven vowels, the digraphs, stress and the î/â rule — every sound playable.

The verb to be

explainer

A fi in the present, all six forms, with negation and questions — and the Eu student trap Ukrainian sets.

Subject pronouns

explainer

Subject pronouns complete, plus a map of all seven pronoun sub-systems and the unit each one arrives in.

Romanian vowels

superseded explainer

ă and â/î with their anchors and minimal pairs (superseded by sounds, the whole system).

Drilled by

Unit 1 deck

superseded practice

Unit 1's whole intake as a drill surface (superseded by deck.html, which rebuilds itself from the ledgers).

Repaired by — built after something failed

The three present-tense classes rebuilt after they failed, including the -ez- and -esc- infixes.

U02 You and I: introductions taught in full
taught4/4 aspects
retained78%

What this unit owns

Interrogative pronouns (cine, ce, cum) S L
a avea, present R W L S
Numbers 0–100 L S
Countries, professions, personal data S W
Taught 2026-07-31 → 2026-08-03.

32 things to remember

25 solid · 7 still shaky
orașRomâniadina lucranumăra locuinumeralele 0–100
Taught by
Repaired by — built after something failed

The three present-tense classes rebuilt after they failed, including the -ez- and -esc- infixes.

U03 The noun I: gender, un/o, plural taught in full
taught5/5 aspects
retained43%

What this unit owns

Non-syllabic final -i R L
Three genders, including the m-sg/f-pl neuter R W
Plural endings -i / -e / -uri, plus the small -le class (zi→zile) R W
Indefinite un / o / niște R W
Everyday objects and the home R S
Taught 2026-08-07 → 2026-08-10.

42 things to remember

18 solid · 24 still shaky
scaunpatușăcheiecreionperetemuntedintefloarecovor+14 more
Taught by

The whole noun system: three genders with the counting test, and all five plural classes as paradigms.

The plural as three ordered steps you run forward, not a table you search backwards.

Repaired by — built after something failed

Noun gender as four gates run in sequence, not a word list to memorise.

The adjective as three ordered steps, built after step 3 turned out to be the one that goes missing.

U04 Family and describing people taught in full
taught5/5 aspects
retained19%

What this unit owns

Diphthongs and semivowels R L
Possessive/genitival al / a / ai / ale R W
Possessive pronouns and adjectives R W
Adjective agreement, four-form basics R W
Family, appearance, character S W
Taught 2026-08-12 → 2026-08-17.

32 things to remember

6 solid · 26 still shaky · 1 seeded, not yet taught
fratesorăbunicbunfrumosmicmarepărintecopilbăiat+16 more
Taught by

Agreement as four cells rather than six, and the four form-classes an adjective can belong to.

The possessive

explainer

All six owners across four forms, plus al/a/ai/ale at first contact in its possessive job only.

Repaired by — built after something failed

The adjective as three ordered steps, built after step 3 turned out to be the one that goes missing.

U05 The definite article: the ending taught in full
taught5/5 aspects
retained9%

What this unit owns

Definite article as a suffix R W
When Romanian requires the definite article and UA/RU use nothing R W S
Present, group I (-a) R W
City places R S
Everyday action verbs, group I R W S
Taught 2026-08-15 → 2026-08-19.

35 things to remember

3 solid · 32 still shaky · 1 seeded, not yet taught
parcpiațămagazinspitalfarmaciebancămuzeuhotelrestaurantcentru+22 more
Taught by

All eight forms of the article as an ending, and when Romanian requires the where Ukrainian uses nothing.

U06 Daily routine and the clock taught in full
taught4/4 aspects
retained8%

What this unit owns

Reflexive pronouns R W S
Present, groups -ea / -e / -i, and reflexive verbs R W
Telling time, days, months L S
Daily routine and times of day S L
Taught 2026-08-20 → 2026-08-25.

51 things to remember

4 solid · 47 still shaky
a dormia citia mergea facea scriea vedeaa puteaa beaa mâncaa se trezi+37 more
Taught by

all four present-tense groups stated as one table of endings, plus the reflexive verbs.

Telling the time with și and fără, plus all seven days and all twelve months with their Russian mapping.

U07 The city: directions and transport taught in full
taught3/3 aspects
retained0%

What this unit owns

Imperative S
Location vs direction (în / la / pe) R W S
Transport, directions, landmarks S L
Taught 2026-09-06 → 2026-09-07.

34 things to remember

0 solid · 34 still shaky
autobuztrenbiletstațiea venia luaa ajungeacasăstângadreapta+24 more
Taught by

la, în and pe chosen by the kind of place, with the verb — not the noun — carrying where you are going.

The command form in all four shapes, plus left, right and the last of the words for crossing a city.

U08 Food and shopping not opened
taught0/3 aspects
retained—

What this unit owns

Subjunctive with să R W S · pending
Numbers 100+, prices, quantities L S · pending
Food, shops, quantities S L · pending

Nothing tracked yet

No word or pattern is filed under this unit yet. It arrives when the unit opens.
U09 The past I: the compound perfect not opened
taught0/3 aspects
retained—

What this unit owns

Perfect compus R W S · pending
Narrative connectors (și, apoi, după aceea) W S · pending
Leisure and weekend activities S W · pending

Nothing tracked yet

No word or pattern is filed under this unit yet. It arrives when the unit opens.
U10 A1 consolidation + mini-test not opened
taught0/1 aspects
retained—

What this unit owns

A1 review and mini-mock R W L S · pending

Nothing tracked yet

No word or pattern is filed under this unit yet. It arrives when the unit opens.
U11 The future and making plans not opened
taught0/1 aspects
retained—

What this unit owns

Future (o să / voi) R W S · pending

Nothing tracked yet

No word or pattern is filed under this unit yet. It arrives when the unit opens.
U12 Genitive-dative of nouns not opened
taught0/2 aspects
retained—

What this unit owns

Genitive-dative noun forms R W · pending
Definite article inflected for genitive-dative R W · pending

Nothing tracked yet

No word or pattern is filed under this unit yet. It arrives when the unit opens.
U13 Pronouns II: accusative and „pe" not opened
taught0/2 aspects
retained—

What this unit owns

Accusative clitics and pe-marking R W · pending
pe-marking of personal direct objects R W · pending

Nothing tracked yet

No word or pattern is filed under this unit yet. It arrives when the unit opens.
U14 The dative and „îmi place" not opened
taught0/1 aspects
retained—

What this unit owns

Dative clitics R W · pending

Nothing tracked yet

No word or pattern is filed under this unit yet. It arrives when the unit opens.
U15 Imperfect against compound perfect not opened
taught0/1 aspects
retained—

What this unit owns

Imperfect, and its contrast with perfect compus R W · pending

Nothing tracked yet

No word or pattern is filed under this unit yet. It arrives when the unit opens.
U16 Health and the body not opened
taught0/2 aspects
retained—

What this unit owns

Impersonal trebuie să R W S · pending
Health and the body S L · pending

Nothing tracked yet

No word or pattern is filed under this unit yet. It arrives when the unit opens.
U17 Housing and services not opened
taught0/4 aspects
retained—

What this unit owns

Demonstrative determiners (acest / acel) R W · pending
Demonstrative pronouns R W · pending
Comparative and superlative R W S · pending
Housing and services R S · pending

Nothing tracked yet

No word or pattern is filed under this unit yet. It arrives when the unit opens.
U18 Work and study not opened
taught0/3 aspects
retained—

What this unit owns

Conditional present R W S · pending
Conditional as politeness (aș vrea) S W · pending
Work and studies W S · pending

Nothing tracked yet

No word or pattern is filed under this unit yet. It arrives when the unit opens.
U19 Travel and weather not opened
taught0/1 aspects
retained—

What this unit owns

Travel and weather W S · pending

Nothing tracked yet

No word or pattern is filed under this unit yet. It arrives when the unit opens.
U20 A2 consolidation + threshold test not opened
taught0/1 aspects
retained—

What this unit owns

A2 review and threshold test R W L S · pending

Nothing tracked yet

No word or pattern is filed under this unit yet. It arrives when the unit opens.
U21 Opinion and argument not opened
taught0/1 aspects
retained—

What this unit owns

Opinion frames and concessives (deși, totuși) W S · pending

Nothing tracked yet

No word or pattern is filed under this unit yet. It arrives when the unit opens.
U22 Relative clauses: „care / pe care" not opened
taught0/2 aspects
retained—

What this unit owns

Relative care / pe care R W · pending
Relative clauses R W · pending

Nothing tracked yet

No word or pattern is filed under this unit yet. It arrives when the unit opens.
U23 The passive and impersonal „se" not opened
taught0/1 aspects
retained—

What this unit owns

Passive and impersonal se R W · pending

Nothing tracked yet

No word or pattern is filed under this unit yet. It arrives when the unit opens.
U24 Reported speech not opened
taught0/1 aspects
retained—

What this unit owns

Reported speech R W L · pending

Nothing tracked yet

No word or pattern is filed under this unit yet. It arrives when the unit opens.
U25 Formal register: official letters not opened
taught0/1 aspects
retained—

What this unit owns

Formal letter conventions W · pending

Nothing tracked yet

No word or pattern is filed under this unit yet. It arrives when the unit opens.
U26 Society, media, technology not opened
taught0/1 aspects
retained—

What this unit owns

Society, media, technology R W · pending

Nothing tracked yet

No word or pattern is filed under this unit yet. It arrives when the unit opens.
U27 Narration II: the pluperfect not opened
taught0/1 aspects
retained—

What this unit owns

Pluperfect R W · pending

Nothing tracked yet

No word or pattern is filed under this unit yet. It arrives when the unit opens.
U28 The conditional and hypotheticals not opened
taught0/2 aspects
retained—

What this unit owns

Conditional perfect R · pending
Conditional clauses with dacă W S · pending

Nothing tracked yet

No word or pattern is filed under this unit yet. It arrives when the unit opens.
U29 Romania: culture and civilisation not opened
taught0/2 aspects
retained—

What this unit owns

Vocative S · pending
Romania — geography, holidays, customs S L · pending

Nothing tracked yet

No word or pattern is filed under this unit yet. It arrives when the unit opens.
U30 B1 consolidation: into the mock cycle not opened
taught0/1 aspects
retained—

What this unit owns

B1 review and first full mock R W L S · pending

Nothing tracked yet

No word or pattern is filed under this unit yet. It arrives when the unit opens.
How the learning works — the shape of a session, and of the whole run

The tables below are read straight out of the files that define these rules — the phase plan from the plan, the five parts from the session mechanic, the seven beats from the teaching contract. They keep their working voice, file references and all, because a friendlier paraphrase here would be a second copy free to drift from the rules actually in force. Change a rule in its own file and this drawer changes with it.

1 · The run — 30 units, four phases

Every unit is a themed block of grammar and vocabulary. Phases group them and each ends with an assessment that gates the next one: a mini-mock at U10, a threshold test at U20, a full four-section mock at U30. Phase 4 stops teaching and only drills the exam. Right now you are in Phase 1 — A1 foundations (U01–U10) — highlighted below.

PhaseUnitsWeeksEndsWeekly load
1U01–U1052026-09-03~4 lessons + 2 drills
2U11–U2062026-10-15~4 lessons + 2 drills (U11–U15 buffer week included)
3U21–U3052026-11-19~4 lessons + 2 writes
4drilling6examweekly mock cycles

2 · The week — which session type, how often

The weekly load column above is the plan. Lessons carry new material; drills keep the old material warm without adding any; the weekly review checks pace against the exam date and changes the plan when reality disagrees with it.

/limba-drill
Short Romanian practice
/limba-lesson
Run today's full Romanian lesson (60-75 min)
/limba-mock
Run a timed mock of one Romanian exam section (Reading+Grammar, Writing, Listening, or Speaking), score it, freeze the result as a snapshot
/limba-retro
Capture what this session learned about the workspace itself
/limba-review
Weekly Romanian progress review and replan
/limba-vocab
Capture a Romanian word or phrase into the vocabulary ledger
/limba-write
Romanian writing practice in exam genres

3 · One lesson — five parts, in this order

The order is deliberate: the graded check comes before applied practice, so the check measures what the teaching alone landed, and practice becomes targeted repair of whatever it just missed.

#PartTimeWhat happens
1SRS review~10′node scripts/queue.mjs → quiz due items at the mode their tier calls for (RO→EN at tier 1, EN→RO bare at 2, the full package as the tier-3 gate, sweep at 4–5 — srs.md); grammar items via one production sentence each → update tier/last
2New material~30′Current unit (../curriculum.md): 10–20 new vocab items with gender/plural + transfer hooks; 1 grammar point — built per teaching.md, all eight beats, each beat in one place only, per its table — the page holds the material, chat carries placement, the load as a number, one trap, and the link
3Graded check~10′10 questions over today's + due material, sampling at least 3 of the day's new words; score recorded in the session log
4Applied practice~15′Short reading or guided dialogue that forces due + new items into use, aimed at what part 3 just missed; exam-adjacent formats preferred
5Close-out~5′The ritual below

What happens when a part scores badly depends on which part — a bad SRS review and a bad graded check mean opposite things:

Where it failedWhat it meansWhat to do
Part 3 — graded checkToday's material was too hard.Target is 60–70%. Two consecutive sessions > 80% → pace up (more items, denser texts) at the next review. < 50% → pace down and drill the gap before new material.
Part 1 — SRS reviewRetention of already-taught material has failed. The intake volume or the interval is wrong.< 50% → do not teach a full part 2 on top of it. Cut the new intake hard or drop it, spend the time on a repair loop over the misses, and flag it for /limba-review — evidence about the ladder and the intake number, not about today's unit.
Part 1, second session the same dayNothing. Those rows were answered hours ago; tier 1 is a zero-day interval, so the queue reports them due again.The band does not apply, and the block does not run — see When part 1 does not run below, and srs.md.
A drill's SRS passNothing to calibrate.A drill has no target score. The band is fitted to ten questions on the day's new material; a drill measures retention of old material, where the same number means the opposite thing. Report the number, do not grade the session against it.

When something is genuinely broken, the fix is the repair loop: test → show the answers → work out why each miss happened → build the material that was missing → retest on new items covering the same ground. Up to three rounds. It is the shape you invented in SES-007, where it took a score from 43% to 86% in one sitting.

4 · One teaching block — seven beats, every time

How the new-material half of a lesson is built. The rule behind the order: the whole system first, the difference from Ukrainian second — the opposite order is efficient only for someone who already holds the map.

#BeatWhat it does
①PlacementWhere this sits in its topic, what it exhausts, what's deferred and to which unit, which exam sections it serves
②The whole systemThe complete inventory — table, paradigm, or rule set — before any contrast
③The loadWhat must actually be memorised, and what follows automatically from it
④The deltaWhat differs from UA/RU/EN, grounded per ../reference/transfer.md
⑤Worked examples2–3, fully translated, with a one-line "what's happening"
⑥First contact onlyWhat was named but not taught, and the unit where it returns
⑦Guided attempt2–3 low-stakes items with concealed answers — before anything graded
⑧The compressed ruleOne line to carry away

Underneath all of it — the memory ladder

Every word and grammar pattern sits on the tier ladder shown above. Anything you recall cleanly moves up a rung and comes back later; anything you miss drops one and comes back sooner. Each rung asks a harder question than the one below it: tier 1 only asks what a Romanian word means, tier 2 asks you to produce the bare word from English, and tier 3 asks the whole thing — article, singular and plural — which is the exam-shaped question and the gate into "owned". Tiers 4 and 5 are a fast recognition sweep that keeps it warm. Nothing is ever retired before exam day.

Commands — what to type to start a session
/limba-drill
Short Romanian practice
/limba-lesson
Run today's full Romanian lesson (60-75 min)
/limba-mock
Run a timed mock of one Romanian exam section (Reading+Grammar, Writing, Listening, or Speaking), score it, freeze the result as a snapshot
/limba-retro
Capture what this session learned about the workspace itself
/limba-review
Weekly Romanian progress review and replan
/limba-vocab
Capture a Romanian word or phrase into the vocabulary ledger
/limba-write
Romanian writing practice in exam genres
In the terminal
npm install
once; dev deps are Vitest + TypeScript only
npm test
the contract tests — docs, ledgers, logs, curriculum, topics, visuals, marked sheets
npm run test:watch
watch mode
node scripts/queue.mjs
today's SRS due queue (oldest first, capped — see the script)
node scripts/queue.mjs --counts
one-line summary, for session-start triage
node scripts/dex.mjs <word>
dexonline check: gender/plural/conjugation before teaching it
node scripts/factcheck.mjs
sweep the whole vocab ledger against dexonline (--limit N, --marked, --json); NEVER in CI — it hits the network per row
node scripts/deck.mjs
regenerate work/visuals/deck.html — the ledger drill surface (--due, --topic, --tier, --unit)
node scripts/leakcheck.mjs <set.json>
answer-leak check on a scored set (see session_format.md)
node scripts/newvisual.mjs <slug>
start a page — frame inlined, passes all 12 gates before you write a word (--vocab)
node scripts/visualcheck.mjs <visual>.html
THE PUBLISH GATE for a page — all 12 checks, leakcheck included. Green before you index it.
node scripts/visualcheck.mjs --all
every page (--strict also holds pre-2026-08-15 pages to the dated gates)
scripts/speak.sh "<text>"
speak Romanian aloud (neural voice; --slow; offline fallback)
scripts/pronounce.sh "<text>"
pronunciation round-trip: record → RO transcribe → compare
node scripts/tts-embed.mjs <f>
fill a visual's audio placeholders with playable neural audio
node scripts/tts-warm.mjs
voice every drillable ledger row (--dry to list); run before deck.mjs
node scripts/profile.mjs
regenerate work/visuals/profile.html — the profile and stats page (--why: what it skipped and which file each reads)
node scripts/hub.mjs
regenerate work/visuals/index.html — the learner's one bookmark
node scripts/closeout.mjs --start
AT ORIENT: work/ audit, queue, and the tree snapshot the commit needs
node scripts/closeout.mjs --brief
START of close-out: the audit, the counts, and every template
node scripts/closeout.mjs --finish
END: regenerate, gate, npm test, print the path-named commit line
scripts/feedback.sh "<src>" --file <f>
lock-protected append to work/feedback/insights.md