90aea92fba
The eligibility filter required every form's regularity tag to equal "regular", but the data uses four labels: - regular (179 forms — curated paradigm verbs) - ordinary (50,992 forms — pattern-following verbs like hablar, comer) - irregular (8,653) - orto (176 — orthographic spelling changes like busqué) Result was a 27-combo eligible pool, ~26 of which were -ir verbs in present tense — every Full Table prompt landed on the same handful of verbs. Pulled the rule into a SharedModels function (FullTableEligibility) so it's testable in isolation. Accepts "regular" + "ordinary" (both mean "follows the pattern"); rejects "irregular" and "orto". 9 unit tests cover the matrix including edge cases (incomplete forms, mixed labels, unknown values). PracticeSessionService.makePromptIfFullyRegular now delegates to FullTableEligibility, sorting forms by personIndex so the regularity array lines up. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>