Skip to content

ADR Index

github-actions[bot] edited this page Oct 24, 2026 · 4 revisions

ADR index

Source of truth: this wiki page.

Every architecture decision record in the repo's docs/adr folder. Each one has its own page.

  • ADR-0001: Build with Flutter
  • ADR-0002: Use the operating system's TTS, behind an interface
  • ADR-0003: GPL-3.0 with an App Store Distribution Exception
  • ADR-0004: Decks are YAML files in git
  • ADR-0005: SM-2 scheduling over an append-only review log
  • ADR-0006: Every interface string is a token, from the first screen
  • ADR-0007: State reaches widgets through AppScope, with no package
  • ADR-0008: Features without a backend are built and shown disabled
  • ADR-0009: script is an open list, checked with a warning
  • ADR-0010: Vocabulary is taught along a shared path of themes
  • ADR-0011: Generated numbers are spelled from each language's rules, and not logged
  • ADR-0012: Revising a finished deck is not logged
  • ADR-0013: Each course is taught along a curated path, as data
  • ADR-0014: Speaking is drilled through the phone's own speech recogniser
  • ADR-0015: A language's sound contrasts live in a file of their own
  • ADR-0016: Each script has a guide to its recurring features
  • ADR-0017: The app checks GitHub for updates and installs them itself
  • ADR-0018: A card id names the language, and a word is one card
  • ADR-0019: Reading comprehension is passages whose questions are scheduled like cards
  • ADR-0020: Decks a learner adds are kept apart, and paths place them by wildcard
  • ADR-0021: Reports go from a bug icon on every screen, by the reporter's mail, into GitHub issues
  • ADR-0022: Answers typed in Latin letters are graded against the reading, in the language's scheme
  • ADR-0023: A language can be learned without its alphabet
  • ADR-0024: New words come in a daily lesson, and every drill has more kinds of question
  • ADR-0025: Readings use ISO 15919 letters as the word is said, with the IPA beside them
  • ADR-0026: Every card has a speaker, words can play by themselves, and sound can be switched off
  • ADR-0027: Each language's icon is the first letter of its own name
  • ADR-0029: Quick revision revises known words, and records only the misses
  • ADR-0030: Today's skill tiles start a review of their skill, and quick revision can take one
  • ADR-0031: What's new shows GitHub's release notes, fetched when the page opens
  • ADR-0032: A word in match pairs says itself when tapped, by a switch of its own that is on by default
  • ADR-0033: FSRS in place of SM-2
  • ADR-0034: Recognition, Hear, Say and Write: four schedules per word
  • ADR-0035: FSRS fitted to each learner, per language and skill
  • ADR-0036: Decks are a core and layers, with rules, bases, typed notes and a B1 plan
  • ADR-0037: Decks download from main, by an index, and update when asked
  • ADR-0038: Reviews become proposals in the decks, and agreement merges them
  • ADR-0039: Questions are derived from card data
  • ADR-0040: Decks are CC BY-SA 4.0; the app's code stays GPL-3.0
  • ADR-0041: The IPA is taught as a language, as one course
  • ADR-0042: Script fonts are downloaded per course
  • ADR-0043: English Braille is a notation course, typed on the app's own keyboard
  • ADR-0044: Documentation lives in the wiki, mirrored from the repo by a workflow
  • ADR-0045: A path sets its own level sizes, and a level counts roots only
  • ADR-0046: A lesson takes the next eligible items, and a sentence waits until its words and rules are known

See also: Contributing · ADR-Index · Home

Clone this wiki locally