Repository navigation
ADR 0046 Lessons Take The Next Eligible Items
github-actions[bot] edited this page Oct 24, 2026
·
2 revisions
ADR-0046: A lesson takes the next eligible items, and a sentence waits until its words and rules are known
Source of truth: this wiki page.
- Status: Accepted. Amends ADR-0024: the fixed quota of three items of each difficulty goes.
- Date: 2026-10-23
ADR-0024 made a lesson nine new items, the first three of each difficulty. Every sentence came from the first lesson on, with its words untaught: on Telugu, 0% of the words of the first six lessons' sentences were known (Plan: Words, Rules, Sentences). The owner decided (2026-10-16 to 2026-10-23, #414, #416):
- a word or a rule is known when 9 of its last 10 answers are right (changed 2026-10-24, "Align 'known' with FSRS": see Decision);
- a sentence is offered once every word in it, by its base word, and every rule it uses are known; a phrasebook chunk is never held back;
- a lesson adds fewer new items until those in progress reach the bar; everyone changes at once, and nothing learnt is lost;
- closed sentences are greyed with what they wait for, and a tap opens a sheet saying why; there is no lesson plan screen.
-
Known is read from the review log (
RecentAnswers), never stored: as Progress counts known (owner, 2026-10-24, replacing 9 of the last 10 answers right): a word is known when its last review in every skill it was asked in was right and FSRS gave at least 85% recall at that review (kKnownRecall,leavesKnown); a rule when every skill asked in any cell of its table is. A word reviewed once is not known yet: there is no recall to measure. -
The gate (
Unlocks,lib/core/progress/unlocks.dart):- a sentence naming words (
basesby card) and rules (rules) is closed while any of them is not known; a word or rule its course has no card or cell for is not waited for; - a phrasebook chunk, and a sentence naming nothing, are never closed;
- a rules table's cell is taught only for a word that is known, so a table grows as words are learned.
- a sentence naming words (
-
A closed sentence is not new. It is left out of a lesson's new cards,
and the path moves on from a unit when nothing else in it is left to
teach (
notStudiedOpenIn), so a sentence waiting for its words does not hold the unit back. A unit still shows Done only when every card in it is taught. A sentence already taught stays open. Reviews never wait: the gate decides only when a new sentence appears. - A lesson takes the next eligible items in the path's order: at most nine, less the words and rules taught and not known yet, never fewer than two, and at most three cells of a rules table (owner, 2026-10-16: "3 per lesson"). They are taught easy first.
- A learner who has not met a word's reviews often enough sees few sentences at first; that is the owner's aim. The floor of two new items keeps a lesson from being only reviews.
- Existing learners continue from the next eligible item; nothing is removed.
- The unit page shows the gate: sentences open of its sentences, a closed one greyed with what it waits for.
- A lesson plan screen before each lesson: explains the smaller lessons but costs a tap every time. Not chosen (owner, 2026-10-23).
- Hiding closed sentences: a shorter page, but a unit looks smaller than it is.
- The B1 plan as the denominator for counts: a tiny share early on (86 of 900). Counts are of what is taught so far.
See also: ADR-0024 · Plan: Words, Rules, Sentences · ADR-Index · Home
1. Learner guides
- Learner Guide
- Getting Started
- Today and Daily Lessons
- Drills and Skills
- Courses and Paths
- Proficiency Levels
- Scripts and Readings
- Readings ISO 15919
- Speaking and Listening
- Progress and Stats
- Profiles and Settings
- Backup and Restore
- Reporting a Problem
2. Deck building guides
- Deck Building Guide
- Deck Format
- Romanising Indic Languages
- Deck Licences and Quoted Books
- Deck Tools
3. Review guides
4. Translation guide
5. Building on iOS
6. Roadmap
7. Sources and attributions
8. Contribution and agentic coding