Priority: medium · touches UI
GAPS.md 8.6, unimplemented. Hosts want ~10 personal questions about the birthday person mixed into a session — today that requires hand-editing JSON under custom_components/quizify/questions/. The loader (game/questions.py) already validates arbitrary packs including estimation type and image_url sanitization, and pack_submission.py/cf-workers formalize the submission schema, so an editor writes files the engine already understands.
Sketch: New "My Packs" tab in admin.html: create pack, add MC/estimation questions with difficulty + optional image URL, stored as JSON under the existing .quizify-data storage dir (same atomic-write pattern as analytics.py). Server CRUD view in server/views.py (admin-token-gated); custom packs appear in the normal picker flagged "custom". Reuse validation from game/questions.py and surface errors inline. Optional "export/share to community" wiring into pack_submission.py.
Needs design pass for the editor UI.
Surfaced by QuizifyBot Fable deep-dive (2026-07-04). Evidence is code-grounded; verify before implementing.
Priority: medium · touches UI
GAPS.md8.6, unimplemented. Hosts want ~10 personal questions about the birthday person mixed into a session — today that requires hand-editing JSON undercustom_components/quizify/questions/. The loader (game/questions.py) already validates arbitrary packs including estimation type andimage_urlsanitization, andpack_submission.py/cf-workers formalize the submission schema, so an editor writes files the engine already understands.Sketch: New "My Packs" tab in
admin.html: create pack, add MC/estimation questions with difficulty + optional image URL, stored as JSON under the existing.quizify-datastorage dir (same atomic-write pattern asanalytics.py). Server CRUD view inserver/views.py(admin-token-gated); custom packs appear in the normal picker flagged "custom". Reuse validation fromgame/questions.pyand surface errors inline. Optional "export/share to community" wiring intopack_submission.py.Needs design pass for the editor UI.
Surfaced by QuizifyBot Fable deep-dive (2026-07-04). Evidence is code-grounded; verify before implementing.