Checkpoint 2 · Grammar cards v3 — the two-stage design

Grammar cards v3 — the two-stage design

Your verdict on the last draft: it "missed the mark kind of broadly." This is the reframe — grammar is now a concept curriculum you go through before you drill vocabulary, and the sentence-fill-in-the-blank cards from v2 didn't get thrown away — they moved to a second stage that unlocks later.

ADR-084 · still proposed v3 short review: ENR + UI accept-with-comments Personas: opt-in now load-bearing Design only — no code yet
Checkpoints 1 Latest →
Why this changed

Learn the rule first. Practice producing it later.

Your words, from the v2 checkpoint's general comment box.

v2 built grammar the same way as a vocabulary card: one small graded drill, "fill in the blank," repeated for every rule. You said that missed the mark. What you actually described is closer to how you'd study a language textbook: read the grammar chapter first — understand the pattern and its exceptions as their own rule — then go practice using it. Two separate stages, not one.

Concretely: WordSense's grammar content sorts into 126 topics across 19 families (verb prefixes, negation, questions, numbers, and so on — the full list is in the curriculum section below). Your instinct that there were "14... not sure... 19" families lands on 19 once the source books are fully mined — you were right in the ballpark. That 19-family tree becomes a curriculum you work through, family by family, understanding each rule at a general level before any card asks you to produce a specific form.

The two stages: (1) understand the concept now — a graded "can I state what this rule does and how it forms" card — and (2) practice producing forms later, when that concept card "graduates" the same way a word graduates into family learning (the "plant → family learning" lifecycle step already used for word forms). Nothing is taught before you're ready for it.

The new centerpiece

The rule-concept card — worked example (ber- verbs)

This replaces v2's cloze card as the primary, first-encountered grammar card. Front asks you to recall the rule; nothing is given away.
Front — your job: recall the rule
Card front
ber- verbs
pattern cue: "ber- + ___"
grammar · concept
Reveal — meaning, formation, examples
ber- + verb base = "to do that activity"
How it's built
ber- + BASE → verb
be- before rbel- (belajar)
2-3 illustrative examples
kerja bekerja (to work)
nama bernama (to be named)
More examples (collapsed)
  • renang → berenang (to swim)
  • ajar → belajar (to study)
Watch out
✗ berkerja✓ bekerja
Related rules
ber- + noun = haveber- reduplicated
Your example-count law: pack 10 examples onto one gradeable card and it's a perpetual "Again" — nobody recalls all 10. One example per card and you're just memorizing that one instance, not the concept. 2-3 examples is the concept — enough to see the pattern, not so many it becomes a memory-dump. A fuller example list still exists, just tucked in the collapsible "more examples" block, not part of the graded recall.
Stage 2

v2's cloze cards survive — as practice children, unlocked later

The fill-in-the-blank design from the last checkpoint wasn't wrong — it was staged wrong. It's still exactly this, just gated behind the rule-concept card maturing.
Stage 2 — unlocks when the rule card matures
Card front — your job: fill the blank
Dia kerja di bank.
"She works at a bank."
grammar · practice
bekerja
Sentence with the answer highlighted
Dia bekerja di bank.

Same grading as before: "Good" means you produced the right surface form for that sentence, not that you can recite the rule. 3-5 of these sit under each rule-concept card, each on its own spaced-repetition schedule.

Under construction, not yet real That "matured → unlocks Stage 2" gate is the same lifecycle step words already use to release inflected forms ("plant → family learning") — but right now it's designed, not built: the code writes that a word has entered family learning, but nothing reads it yet to actually release anything. Phase B builds this gate for rules AND for vocabulary forms at the same time — one gate, two consumers.
Your call

Four decisions — one click each

"Recommended" means my own best judgment on the merits, worked out independently — not a guess at which one you'll pick.
D1. Confirm the resolved shape: family (curriculum, never graded) → rule-concept (primary graded card) → practice clozes (Stage 2, gated).

This is what your v2 note resolved D1 to, without needing a fresh menu of options — the 19 families become the un-graded curriculum container, the rule-concept card is the day-to-day graded unit, and v2's clozes become the tier-3 practice children behind the family-learning gate. Flagging it as its own decision so you can catch a misread before it locks in.

D2. Should each rule's short identifier (e.g. "ber-noun-have") get its own permanent database column, or live in the flexible catch-all area we already use? (unchanged from v2)

Pocket only (recommended): store it in the same flexible per-card storage area every other archetype already uses. Zero new database structure, ships faster, easy to change later.

Real column: gives the database a hard guarantee the identifier always matches something in the master rule list. Slightly safer against typos in the generation pipeline, but it's the one piece of actual database surgery in this whole plan.

D3. Should the grammar-concept curriculum be something a learner turns on, or on by default for everyone?

Opt-in (recommended) — now more strongly recommended than in v2: when the two learner personas we check every design against (a retiree profile and a kid profile) reviewed this curriculum-first shape, both were a harder fit than v2's simpler drill-only design — not a hard "no," but further against their natural grain. Since a whole preceding curriculum is a bigger ask than a handful of drill cards, opt-in stops being a nice-to-have and becomes load-bearing.

Default-on: simpler onboarding, but risks putting a dense, study-first curriculum in front of learners who just want to review words.

D4. On a rule-concept card, what should tapping "hint" show — a partial reveal, or nothing at all?

Graded partial reveal (recommended): the hint shows the formation pattern with the allomorphs blanked out, then one highlighted example — never the full assembly step v2's cloze hints used, since that would just hand you the concept-card's own answer.

Hide hints entirely: concept recall is all-or-nothing — you either state the rule or you don't. Cleaner grading signal, but no gentle on-ramp if you're stuck.

The end of a session

What the summary screen looks like with grammar cards mixed in

The overall counts (Again/Hard/Good/Easy) don't change — grading works the same underneath. Concept cards and practice cards are labeled distinctly so you can tell which stage you were reviewing.
Session summary
14 cards reviewed
Good ×9Easy ×3Hard ×2
WORDS (10)
pilih memilih · Good
… 9 more
GRAMMAR (4)
ber- verbs conceptGood
bekerja practiceber- verbs · Good
berenang practiceber- verbs · Hard
Settings

The settings screen for grammar cards

Carried over from v2 — nothing here changes with the two-stage split; concept cards and practice clozes share the same settings row.
Kept, grammar-specific:
Dropped — doesn't apply:
At scale

How this gets generated for all 126 topics

Hand-authoring is the topic skeleton only. Everything below that is machine-generated and checked — unchanged from v2, now producing a rule-concept card plus its cloze children per rule.
1
Grammar books already loaded (Sneddon), broken into addressable sections
2 · hand-authored
The rule inventory — the topic skeleton, written once by a human
3 · generated
One generation job per rule, on the existing background job queue (a new job type)
4 · generated
Automatic checks — cloze answer must appear verbatim in the sentence, 2-3 examples on the concept card, related rules must exist, etc.
5
Rule-concept card + its practice children written to the database, ready for review/release
Note: example sentences are still mined preferentially from words already in your deck.
The curriculum

The 19 families are the curriculum — 126 topics, 4 books

Same skeleton as v2. One deep-dive branch (verbal prefixes/suffixes) was worked all the way down to 45 card-ready rules to prove the design holds at real depth — 11 of those are just the "ber-" prefix.
All 19 grammar families (126 topics total)
  • Sound & spelling system (this becomes the Script track, below) 5 topics
  • Pronouns & terms of address 9 topics
  • Basic sentence word order 10 topics
  • Negation (saying "not") 8 topics
  • Questions 8 topics
  • Numbers, time & dates 7 topics
  • Classifiers & quantifiers 4 topics
  • Prepositions 4 topics
  • Noun phrases & possession 8 topics
  • Verbal prefixes/suffixes — worked to card-ready depth 1 overview + 45 rules
  • Reduplication (doubling words) 6 topics
  • Passive & object-focus voice 7 topics
  • Imperatives & requests 6 topics
  • Time/aspect markers & modals 10 topics
  • Comparison 5 topics
  • Relative clauses & "yang" 6 topics
  • Particles & discourse markers 7 topics
  • Complex sentences 10 topics
  • Formal vs. casual register 5 topics
The "ber-" branch, worked to card-ready depth (11 rules)
  • Sound changes (be- before r, bel- in belajar) A2
  • ber- + noun = "to have X" (bernama, beranak) A2
  • ber- + noun = "to wear/use/ride X" (bersepeda) A2
  • ber- + noun = "to produce X" (bertelur, berbuah) B1
  • ber- + verb base = "do the activity" (bekerja, berenang) A2
  • ber- for mutual relationship (berteman, berkenalan) B1
  • ber- + number = "in a group of N" (berdua) A2
  • ber-...-an = reciprocal action (bersalaman) B1
  • ber-...-an = many actors/random motion (berjatuhan) B2
  • ber-...-kan = "have X as" (berdasarkan) B2
  • ber- + doubled base (berjalan-jalan) A2
Known gaps, flagged for later:
Reach

Does this work for languages other than Indonesian?

Yes, unchanged from v2. We paper-checked this whole design against Japanese (particles and verb conjugation instead of prefixes) before committing. It holds with zero database surgery: the same per-language override mechanism the app already uses for other content covers everything Japanese needs — free-text formation patterns instead of "ber- + base," and an optional field for how a word is read aloud (for kana/kanji). The two-stage split (concept card → gated practice children) is equally language-agnostic; the Indonesian topic map is content, not part of the underlying design.

What's next

The Script (alphabet) track reuses this exact framework

Right now the Script track has 31 units built (the 26 letters + 5 letter-pairs, one of which — "NK" — looks questionable and needs a second look), but it's missing some sounds (the letter E actually makes two different sounds), the diphthongs (ai/au/oi), and stress rules — and the on-screen renderer isn't finished either.

The same four-question design framework used here re-applies directly. The main differences: what you're practicing is recognizing/hearing a letter, not filling in a blank in a sentence; and since audio is central to letters, the "autoplay audio" default flips back to on (the opposite of grammar cards).

This starts once your 4 decisions above are answered.

Under the hood

What changes in the database