Commit Graph
1 Commits
Author SHA1 Message Date
Claude 82d65bfa34 Rebuild the Verbs tab on the prefix rule, and add a verbs on/off switch
Five clusters, named as signed off, taught in the order that makes each one
cheapest to learn:

  Prepositions in Disguise  the free ones            25 verbs, one rule
  Aimed at Someone          the list you learn        9
  Facing Someone            the list you learn        5
  Upside Down Verbs         the subject swaps         6
  The Five Liars            where English misleads    5 pairs

The organising claim is that a verb beginning with a dative preposition takes
the dative, so 25 of the 45 dative verbs cost one rule rather than 25
memorisations. The UI makes that visible instead of stating it: the prefix is
printed in the dative colour wherever a verb appears, in the Lernen panel, in
the rule modal and in Charts. zuhören, beitreten, widersprechen.

The rule has a hole, and the lesson now says so. As a preposition, wider
governs the ACCUSATIVE (wider Erwarten), so widersprechen and widerstehen
being dative is not something the rule predicts. They carry a ruleExempt flag,
are marked ✱ everywhere they appear, and a test fails if a verb lands in the
prefix cluster whose prefix is not in DATIVE_PREFIXES without that flag —
otherwise the first lesson would be teaching something false.

Coverage: the earlier plan parked 19 prefix verbs in Charts as a reference
list. That was wrong — a list you read is not a verb you can produce — so
there are now two "Der Rest der Familie" lessons that drill them, and Daily
Practice draws from all 68 verbs. Lesson one is six exemplars covering six
different prefixes; nothing is taught twice and nothing is left untested,
which a test asserts by set equality.

Verbs on/off, defaulting to OFF. With it off every case in the app comes from
a preposition, so a question never asks two unknowns at once, and the Verbs
tab is hidden. On, the two tabs whose case source is a free choice go to
roughly half and half. Only those two tabs change, and it is worth being
precise about why: Präpositionen, Artikel, Adjektive and Komparativ lessons
are named after the preposition group or the ending table they drill, so there
is no verb-governed variant of "Dativ: mit, von, aus, bei" to mix in. The
sign-off board claimed ~50% for every tab; that was my overstatement, not a
decision, and the switch is implemented where it means something.

Pronouns needed new code for this, as flagged. Every pronoun question was
"Ich helfe ___", which leans on knowing helfen is dative, so with the switch
off that tab had nothing to generate. PRON_PREP_FRAMES adds nine
preposition-governed shapes (four accusative, five dative) — Er wartet auf
mich, Er wohnt bei mir — and a test checks each frame's preposition really
governs the case it claims. Pronoun questions still carry no noun on either
setting, so the guard that fixed the blank screen stays real.

Data: 29 new verbs. 25 prefix verbs across eight dative prefixes, ähneln,
gehorchen and dienen for Facing Someone, gelingen and leidtun for the flippers
(leidtun needed a `tail` field, since its clause closes with a fixed word).
45 dative verbs in total, which is where the "about 50" figure comes from once
prefix verbs are counted individually rather than folded into a rule.

Four things the corpus diff caught before they shipped: "I obey the child",
"I serve the child", "I succeed the girl", and — the real one — "The doctor
feels sorry for the doctor", because leidtun had people on both sides and
Arzt/Ärztin are two German nouns with one English word. A collision scan over
every verb line is now clean. The old test asserting the dative list "matches
the reference" is gone; it matched my own subset, not a reference, and it now
checks the cluster structure the lessons rely on and says in a comment why no
canonical list exists to check against.

Two things the browser pass caught that tests could not. The Lernen panel had
widersprechen among the six exemplars with its prefix coloured like the rest —
presenting the one verb the rule does not predict as proof of the rule, on the
same screen as the note saying it is an exception. It is now ausweichen, and a
test fails if a ruleExempt verb is ever used as an exemplar. And the prefix
colour means "this prefix is a preposition governing THIS case", so wider- now
prints in the accusative colour rather than the dative one: it really is a
preposition, it just governs the other case, which is the whole reason those
two verbs are exceptions.

219 tests pass. Every level in every tab renders and answers on both switch
settings — 57 rows with verbs on, 45 with verbs off, no page errors — driven
by clicking through the real UI rather than calling the generator.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017Uza6mhTpAvSwMQuFc4Cz8
2026-10-14 10:00:13 +00:00