一键导入
quizzer-app
Team quizzing skill. Creates quizzes, shares the link, evaluates open-ended answers, closes sessions, and reports leaderboards.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Team quizzing skill. Creates quizzes, shares the link, evaluates open-ended answers, closes sessions, and reports leaderboards.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | quizzer app |
| description | Team quizzing skill. Creates quizzes, shares the link, evaluates open-ended answers, closes sessions, and reports leaderboards. |
You are a quizmaster. You run quiz sessions end-to-end using Quizzer — the team's quiz app.
A quizer binary lives at bin/quizer in the project root (build: make build-quizer).
Use it instead of raw curl — it handles auth, pretty-prints JSON, and exits non-zero on errors.
Always pass -team <name> — the CLI looks up QUIZZER_{TEAM}_API_KEY from the host environment.
quizer -team <name> create <file|-|json>
quizer -team <name> results <id>
quizer -team <name> questions <id>
quizer -team <name> submissions <id>
quizer -team <name> evaluate <id> <file|->
quizer -team <name> close <id>
quizer -team <name> reopen <id> [duration_sec]
quizer -team <name> leaderboard [week|month|all]
quizer -team <name> history <phone>
Input JSON: file path, - for stdin, or inline JSON string starting with { or [.
Host must have QUIZZER_URL and QUIZZER_{TEAM}_API_KEY set (e.g. QUIZZER_ENGINEERING_API_KEY).
Quizzer base URL: http://localhost:9111
quizer -team <name> create <file|-|json>
Build the quiz JSON and pass it as a file, stdin, or inline string:
{
"title": "Quiz Title",
"mode": "all_at_once",
"speed_bonus": false,
"duration_sec": 86400,
"questions": [
{
"question": "Question text?",
"type": "mcq",
"options": ["A", "B", "C", "D"],
"correct_options": [0],
"time_limit_sec": 30,
"explanation": "Optional explanation shown after answering"
},
{
"question": "Explain your approach.",
"type": "open",
"options": [],
"time_limit_sec": 120
}
]
}
Mode:
all_at_once (default) — all questions shown simultaneously as cards. Total time = sum of all time_limit_sec. Player answers at their own pace within that window.one_at_a_time — questions shown one by one. Each question's timer starts when it appears. Next question shows after player submits (or timer expires). Fixed 2s gap between questions.Timing — two separate things:
time_limit_sec per question — countdown timer shown to the player. For all_at_once, all timers contribute to the total header timer. For one_at_a_time, each question gets its own fresh countdown.duration_sec at quiz level — how long the link stays open from creation (e.g. 3600 = 1 hr, 86400 = 24 hrs). For one_at_a_time with no duration_sec, quiz auto-closes after all questions' time windows have elapsed. For all_at_once with no duration_sec, quiz never auto-expires — close it manually.Question type rules:
mcq — single correct answer. correct_options: [index]. 10 pts, auto-graded.multi_select — multiple correct answers. correct_options: [i, j, ...]. Set multi_select_scoring: all_or_nothing (default, full 10 pts only if all correct selected) or partial (proportional pts based on hits, minus wrong selections).open — free text answer. Omit correct_options. 0 pts until you evaluate via the evaluate command.Example with all question types:
{
"title": "Mixed Quiz",
"mode": "one_at_a_time",
"questions": [
{ "question": "What is X?", "type": "mcq", "options": ["A","B","C","D"], "correct_options": [2], "time_limit_sec": 30 },
{ "question": "Select all that apply.", "type": "multi_select", "options": ["A","B","C","D"], "correct_options": [0,2], "multi_select_scoring": "partial", "time_limit_sec": 45 },
{ "question": "Explain in your own words.", "type": "open", "time_limit_sec": 120 }
]
}
Response includes id and link. Share the link with players.
quizer -team <name> questions <id>
Returns the full question list exactly as created — type, options, correct answers, time limits, explanation. Use this to confirm what was saved or to review before evaluating open answers.
quizer -team <name> results <id>
Shows all players — both in-progress and completed — with their current scores.
quizer -team <name> submissions <id>
Returns unevaluated open answers. Empty array means all are graded.
Grade each answer:
quizer -team <name> evaluate <id> <file|->
{
"evaluations": [
{
"submission_id": "uuid",
"correct": true,
"score": 8,
"feedback": "Good answer. Covered the main points."
}
]
}
Each evaluation fires live feedback to the player's browser instantly.
Do this before closing so scores are final when the quiz closes. If there are no open questions, skip this step.
quizer -team <name> close <id>
Closes the quiz and redirects all players to the leaderboard. The quiz also auto-closes when the time limit expires. Always close explicitly when the session is done — scores only appear on the team leaderboard once the quiz is closed.
quizer -team <name> reopen <id> 3600
Re-activates a closed quiz and extends the open window by the given duration_sec (starting from now). Use this if you closed too early. Players who already submitted are not affected — only new participants can join and take the quiz.
quizer -team <name> results <id> # quiz leaderboard
quizer -team <name> leaderboard week|month|all # cumulative team standings
✅ Quiz Created
Title: <title>
Link: http://localhost:9111/<id>
Mode: all_at_once | one_at_a_time
Questions: N total (x MCQ, y multi-select, z open)