Checkpoint 1 · Grammar Pilot

What a card is now — the grammar pilot

Nine grammar-rule cards, built from your own reference book, now live and gradeable in your Flashcard Carousel — the first proof that a "card" in WordSense can be more than a vocabulary word.

9 cards live 1 real grade recorded Sneddon ber- chapter ADR-083 / PLAN-171
Checkpoints Latest →
Why this matters

Your grammar knowledge lives in a book, not in your daily practice

Right now, when you want to check a grammar rule — like when Indonesian uses the prefix ber- — you go open Sneddon's Indonesian Reference Grammar. That knowledge never touches your daily WordSense review loop; it just sits in a book on a shelf.

Yesterday's work (ADR-083, PLAN-171) gave WordSense a "card archetype registry" — think of it as a rulebook that says what KINDS of cards are allowed to exist, beyond just "a vocabulary word." But a rulebook with no cards written against it proves nothing. So today's pilot picked one real grammar topic — the ber- prefix — pulled 9 rules straight out of Sneddon, wrote them at plain-student level, and loaded them into your account as real, gradeable cards. This checkpoint walks through exactly what that took, using one live card as the tour guide.

The tour

What a card is now — walked through one live card

The card: "ber- + noun = have." Three tables work together to make it real.

1. The archetype registry (t080) — "what kinds of cards are allowed to exist"

This is a small table that defines card families. The row for grammar rules is called passage, and it says: this family of cards is a self-contained, sectioned piece of text — not a word with different forms, just one level, released as a whole. In code terms: tier_scheme = 1 level, lifecycle = no word-forms, renderer = "passage-sections." That last piece — a special sectioned look — hasn't been built yet, so for now these cards borrow the normal vocabulary-card look, and it works fine (see the screenshots below).

2. The card catalog (t070) — "one row per learnable thing"

Every learnable thing in WordSense — a word, a sense of a word, now a grammar rule — is one row in this table. For the "ber- + noun = have" rule: the archetype is set to passage, it's tier 1 (no parent card above it), and the content is spread across a few familiar-sounding fields — the plain rule statement lives where a word's "definition" normally goes, the short answer lives where a "gloss" (quick meaning) normally goes, Sneddon's own example sentences (bernama, berguna, berumur) sit in the examples field, the fuller write-up (the rule, its exceptions, extra notes) sits in a dedicated "grammar" pocket on the row, and the book citation (Sneddon §1.170, §1.176) is recorded so you always know the source.

3. Your personal progress (t310) — "one row per (you, card)"

When a card gets released to you, it gets one progress row that holds the spaced-repetition scheduler's memory of how well you know it. Grading a card writes straight into this row. Here is the live proof from today: your profile ("MBP - First Migrate") graded one of the 9 cards, and the scheduler recorded last_grade = 2 ("Hard") — not because you didn't know it, but because you answered in under 2 seconds and the anti-cheat step down-graded a too-fast "Good" tap to "Hard" on purpose (that's the system working as designed, not a bug). Its difficulty score moved from 5.0 to 6.67, and it's now scheduled to come back to you in about 3 minutes.

See it live

The card, front and revealed

Screenshots straight from your Flashcard Carousel, phone-sized (390×844).
Card front
Grammar pilot card front in the Flashcard Carousel
Revealed
Grammar pilot card revealed with answer band, Sneddon examples, and grade buttons
The pilot batch

The 9 cards, pulled from Sneddon's ber- chapter

Each is its own card — tap "Add note" on any one to flag a wording issue or a wrong example.
1
ber- + noun = have — §1.170, 1.176
Examples: bernama (have a name), berguna (be useful / have use), berumur (be aged / have an age).
2
ber- + noun = wear / use / ride — §1.171, 1.176
Examples: bertopi (wear a hat), bersepeda (ride a bike), berperahu (go by boat).
3
ber- loses its r — §1.4
Examples: berenang (swim), bekerja (work), belajar (study/learn).
4
ber- verbs from verb bases — §1.167-8
Examples: berangkat (depart), berhenti (stop), bertemu (meet).
5
ber- + noun = produce — §1.172
Examples: bertelur (lay eggs), berteriak (shout), berkata (say / utter words).
6
ber- = be in a relationship — §1.173
Examples: berteman (be friends), bertetangga (be neighbors).
7
ber- = work or activity you do — §1.174-5
Examples: bertani (farm), berbelanja (go shopping), berolahraga (exercise).
8
ber-…-an = do to each other — §1.255-9
Examples: bersalaman (shake hands), bertabrakan (collide), berpegangan tangan (hold hands).
9
Many verbs need no ber- at all — §1.166 (the counter-rule)
Examples: datang (come), duduk (sit), tidur (sleep). Included on purpose — so you don't over-apply the pattern.
Try it now

Go study the pilot cards

The 9 cards are marked priority so they surface first in your carousel.

Open the Carousel →

Heads up: the preview server is being redeployed right now with the loader change that lets these cards through. If they don't show up yet, give it about 10 minutes and try again, or use localhost:3000 on the MBP in the meantime.

Decision needed

Do grammar rules get their own registry row, or ride the existing one?

1
Recommendation: ride the existing "passage" row — do not create a new one.
All 9 rule cards fit the passage archetype's single-level scheme: each rule stands on its own (no parent card needed — the "chapter" grouping was handled by tags, not by a container row), the no-word-forms lifecycle matched exactly, and the standard card view rendered them well (see the screenshots above). ADR-083's own test for "does this need a new archetype row" is: does it need its OWN tier scheme, lifecycle, or renderer? These rules needed none of the three. ADR-083 actually predicted this outcome already ("grammar rules and exceptions belong under the passage archetype"), so no amendment to that ADR is needed either — this pilot just confirms it in real content.
Decided by Frank
Honest findings

What we had to fix to get here

1
The card-serving code only expected 2 levels (word + its senses)
A single-level card (grammar rule, no parent) was getting silently filtered out. A 3-line fix let single-level cards through — already covered by ADR-083's own review of what needed to change, and committed as d29c673b.
2
Grammar cards borrow the normal card look for now
A dedicated sectioned view (separate "rule / exceptions / notes" layout) hasn't been built. The screenshots above show these cards rendering through the everyday vocabulary-card view instead — and it reads fine as-is.
3
Pre-existing bug found: a brand-new "priority" card can vanish from every deck
Not caused by today's pilot, but hit while testing it. Filed as BRIEF-2026-07-03-001 to the UI role for a fix.
4
Tiny cosmetic quirk: the pronunciation row repeats the card title with dots
Low priority — noted for a future pass, not blocking anything.
Also spotted

Notes for a future dispatch — the alphabet deck has gaps

While in the books for this pilot, we noticed the alphabet/script deck currently has 31 units (26 letters + 5 digraphs, including one dubious one, "NK"). It's missing three things Sneddon covers in §1.2: the TWO distinct sounds of the letter E as separate units, the diphthongs ai / au / oi, and the stress-placement rules. Not acted on now — just flagging it as a candidate for a future pass.