# Anleitung für Prüfer > Stand: 29.10.2026 · Ziel: jede Frage fachlich prüfen und freigeben oder ablehnen. ## Voraussetzungen - Python ≥ 3.11 (nur Standardbibliothek), ein aktueller Browser (Firefox, Chromium). - Editor mit JSON-Schema-Unterstützung (z. B. VSCode/VSCodium) – validiert beim Tippen über `$schema`. ## Ablauf 1. Paket entpacken, `index.html` öffnen und die Fragen im **Lernmodus** durchgehen (Topic-Filter auf der Startseite, Reihenfolge „nach Objective“, Optionen nicht mischen). 2. Fragen im Quelltext `data//questions_.json` prüfen – Regeln: [question_rules.md](question_rules.md), Prüfungsrahmen: [exam_format.md](exam_format.md). 3. Ergebnis je Frage als Vermerk eintragen: ```json "review": { "status": "approved", "by": "", "date": "2026-11-02" } "review": { "status": "rejected", "by": "", "date": "2026-11-02", "note": "Option ‚…‘ ist ebenfalls korrekt" } ``` Korrekturen direkt in der Frage vornehmen und `meta.version` der Datei erhöhen. 4. Prüfen und bauen: ```bash python3 tools/build_bank.py -c # Regeln, Prüfstatus, Abdeckung je Objective python3 tools/build_bank.py # js/bank.js neu (verschlüsselt, eigener PSK in tools/.psk) python3 tools/build_bank.py --approved-only -e # nur Freigegebenes, Export nach dist/ python3 -m http.server 8080 -d dist # Export ausliefern ``` 5. Geänderte `questions_*.json` zurückgeben (nicht `js/bank.js`, nicht `tools/.psk`). ## Neue Fragen Nächste freie Nummer im Objective verwenden (`-`), Format siehe [`../README.md`](../README.md#format-einer-frage). Ohne Build testen: Datei im Simulator über **Import** laden. ## Tests ```bash chromium --headless --allow-file-access-from-files --virtual-time-budget=5000 --dump-dom tests/selftest.html | grep -o 'RESULT[^<]*' chromium --headless --allow-file-access-from-files --virtual-time-budget=40000 --dump-dom tests/ui_smoke.html | grep -oE '(FAIL|RESULT)[^<]*' ```