Figured questions for grade-12 geometry (conics, systems, vectors: 50 new); docs: figured questions win in the island quiz

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-14 22:24:53 +03:30
parent cd4f2ce0b2
commit 998b68e4bc
3 changed files with 2875 additions and 0 deletions

View File

@@ -323,6 +323,13 @@ has been done before.
- `GET /api/nodes/{id}/quiz`: at most one question per lesson, shuffled on `nodeId:userId` only, so a student
sees the same quiz every time (owner's decision; `NodeQuizStabilityTests`).
**Figured questions win:** inside a lesson the quiz takes a question with a `figure` over one without
(`NodeQuizPrefersFigureTests`). So adding figured questions to a lesson replaces its figureless ones in
the quiz without deleting anything; the old rows stay (seed never deletes, answers may reference them).
Owner's standing plan (2026-10-14): keep writing more figured questions and re-review the whole bank over
time; this rule is the mechanism, so new figures need no other switch. Write them with
`tools/figures/batch.py` (`docs/content-authoring.md` «سوالِ شکل‌دار»). The lesson-level list
(`/api/lessons/{id}/questions`) does not reorder; only the island quiz does.
- `POST /api/nodes/{id}/quiz/complete` completes the island at any score (score sets stars/XP) and returns
`nextNodeId`. It refuses a locked island (403 `node_locked`, same rule as `/api/home`) and a user who has
not answered every question (409 `answers_missing`; required = `max(client totalQuestions, min(4, questions