Claude-skill-registry canvas-quiz-completion-manager
When the user needs to manage and complete multiple quizzes on Canvas LMS, this skill provides automated quiz discovery, question retrieval, answer analysis, and batch submission capabilities. It handles the complete workflow from listing enrolled courses, identifying available quizzes, starting quiz attempts, retrieving questions, analyzing correct answers based on subject matter expertise, and submitting all responses. Key triggers include 'unfinished quizzes', 'complete all quizzes', 'Canvas assignments', 'course assessments', 'submit quizzes', and 'quiz deadlines'. The skill is particularly useful when users have multiple pending quizzes across different courses and need systematic completion with accurate answers.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/canvas-quiz-completion-manager" ~/.claude/skills/majiayu000-claude-skill-registry-canvas-quiz-completion-manager && rm -rf "$T"
skills/data/canvas-quiz-completion-manager/SKILL.mdInstructions
Primary Objective
Systematically discover, answer, and submit all available/unfinished quizzes for the user across all their enrolled Canvas courses. Ensure all answers are correct and all submissions are successfully completed.
Core Workflow
Phase 1: Discovery & Initialization
- List Enrolled Courses: Use
to get all courses where the user has a student enrollment (canvas-canvas_list_courses
). Store the list of course IDs."type": "student" - List Available Quizzes: For each enrolled course, use
to find all published quizzes. Filter for quizzes wherecanvas-canvas_list_quizzes
in the permissions. Compile a master list of"submit": true
pairs.(course_id, quiz_id)
Phase 2: Quiz Attempt Initialization
- Start All Quiz Attempts: For each
pair, call(course_id, quiz_id)
. This is a parallelizable operation. Capture the returnedcanvas-canvas_start_quiz_attempt
andquiz_submission_id
for each quiz. Handle any errors gracefully (e.g., quiz already started, access denied) but log them.validation_token
Phase 3: Question Retrieval & Analysis
- Retrieve All Questions: For each active quiz attempt, use
with thecanvas-canvas_list_quiz_questions
andquiz_submission_id
to get the specific questions and answer choices for that attempt.use_submission_endpoint: true - Analyze and Determine Correct Answers: For each retrieved question, use your general knowledge and reasoning to identify the single correct answer. Crucially, you must provide the correct
from the provided answer choices. Do not guess. If a question's subject matter is outside your reliable knowledge, note it but proceed with your best logical deduction based on the question text and answer choices. The goal is 100% accuracy.answer_id- Pattern from Trajectory: Questions are typically multiple-choice (
). The correct"question_type": "multiple_choice_question"
is a numeric ID within theanswer_id
array.answers
- Pattern from Trajectory: Questions are typically multiple-choice (
Phase 4: Batch Submission & Verification
- Prepare Submission Payloads: For each quiz, construct a submission payload for
. The payload must include:canvas-canvas_submit_quiz_answers
,course_id
,quiz_id
(thesubmission_id
),quiz_submission_idvalidation_token
: An array of objects, each withanswers
and the correctquestion_id
.answer_id
- Submit All Quizzes: Submit the payloads for all quizzes. This can be done in parallel.
- Verify Success: Check the response for each submission. Confirm
and that the"workflow_state": "complete"
equals"score"
(indicating a perfect score). If any submission fails, retry or investigate."quiz_points_possible"
Phase 5: Reporting & Completion
- Generate Summary Report: Create a clear summary table listing: Course Name, Quiz Title, Score/Max Points, and Status.
- Claim Completion: Once all quizzes are submitted and verified, use
to signal task completion. Provide the final summary to the user.local-claim_done
Key Considerations & Error Handling
- Memory Access: The trajectory shows an attempt to read memory (
) that failed. Proceed with Canvas API calls if memory is unavailable. If personal info (like specific course preferences) is needed and memory fails, state the limitation and work with the available Canvas data.memory-read_graph - Canvas Errors: The user mentioned "there might be some error with the canvas." Be resilient. If a single API call fails (e.g., listing quizzes for one course), skip that course and continue with others. Log the error for the user.
- Parallel Execution: The trajectory shows batched calls for listing quizzes and starting attempts. You should emulate this efficient pattern where safe and logical (e.g., starting attempts, submitting answers). Do not batch calls that have dependencies.
- Answer Accuracy: The user's tip emphasizes you "must make sure all quizzes are submitted and answered correctly." Your analysis in Phase 3 is the critical step. Double-check your reasoning for each answer.
- State Management: Keep track of the state (course list, quiz list, submission IDs, tokens, answers) throughout the process. The provided trajectory is a successful execution; follow its logical flow.
Triggers
Activate this skill when the user request involves: completing unfinished quizzes, submitting all Canvas quizzes, managing course assessments, or meeting quiz deadlines across multiple courses.