exam-paper-check
Check an exam paper and its mark scheme before they go to print or to a moderator — a script reads the teacher's own files and finds part marks that don't add up to a question's total, questions that don't add up to the paper's total (an either/or choice counted once), numbering that skips or repeats, parts with no marks, parts the mark scheme misses or marks differently, and objectives that are never assessed or far off their weighting — then reads the questions for clarity and fairness. Use when a teacher asks to "check my exam paper", "proofread this test", "does the mark scheme match the paper", "do the marks add up", "check this assessment before moderation", or "is this paper balanced across the objectives".
Other ways to install
With the sibling skills it hands off to:
The whole pack it belongs to:
By hand, from a clone of the repo:
In Claude Code, with the educator plugin installed, invoke it as:
Try it
A realistic prompt from the skill's acceptance evals:
Can you check my Year 9 forces test before it goes to the printers? Paper is year9-science.md and the mark scheme is year9-science-scheme.md. Our grid is AO1 40%, AO2 40%, AO3 20%.
What a good result looks like
Example output
Worked example: a Year 9 forces test · the skill's own worked example, source
Input
"Can you check my Year 9 forces and energy test before I send it to the printers? inputs/year9-science.md, mark scheme inputs/year9-science-scheme.md, and our planning grid is AO1 40 %, AO2 40 %, AO3 20 %."
The spec was written from the planning grid (inputs/spec.json).
What the files show
# Exam paper check
| Question | Marks | Stated total | Parts |
|---|---:|---:|---|
| 1 | 5 | 5 | (a) 1, (b) 3, (c) 1 |
| 2 | 8 | 8 | (a)(i) 2, (a)(ii) 3, (a)(iii) 2, (b) 1 |
| 3 | 6 | 6 | (a) 1, (c) 3, (d) 2 |
| 4 | 6 | 6 | |
| 5 | 4 | 4 | (a) 2, (b) 2 |
| 6 | 12 | | |
| 7 | 10 | | |
| **Paper** | **41** | 50 | |
Time: 50 minutes for 41 marks, 1.22 minutes a mark.
| Objective | Marks | Share |
|---|---:|---:|
| AO1 | 11 | 27 % |
| AO2 | 29 | 71 % |
| AO3 | 1 | 2 % |
FAIL Questions 6 and 7 are a choice but are worth 12 and 10 marks
FAIL the questions add up to 41 marks but the paper says 50
FAIL the mark scheme has nothing for Question 2(b)
FAIL Question 7 is worth 10 on the paper but 12 in the mark scheme
WARN Question 3: part (c) follows (a); (b) is missing
WARN objective AO1 has 27 % of the marks against a target of 40 %
WARN objective AO2 has 71 % of the marks against a target of 40 %
WARN objective AO3 has 2 % of the marks against a target of 20 %
Reply
Four things to fix before it goes to print:
- The cover says 50 marks, but the paper is worth 41. Section A adds up to 29 and Section B to 12 (a student answers Question 6 or 7). Either change the cover to 41, or add 9 marks.
- Questions 6 and 7 are an either/or but aren't worth the same: 12 and 10. Make both 12 (the mark scheme already gives 7 twelve marks).
- Question 3 goes from (a) to (c). Reletter (c) and (d) as (b) and (c), and the scheme to match.
- The mark scheme has nothing for 2(b) (reducing measurement error, 1 mark). Add: "repeat and take a mean / use a set square or eye level with the top of the ball (1)".
Balance. Against your grid, AO1 has 27 % (target 40), AO2 71 % (40) and AO3 2 % (20). Section B's 12 marks all sit in AO2. Crediting 6 of Question 6's 12 marks to an AO3 judgement strand, and making 2(b) a 3-mark planning question, would give AO3 9 of 43 marks (21 %).
Time. 50 minutes for 41 marks is 1.2 minutes a mark, generous for Year 9; at 50 marks it would be 1.0.
Wording
- 1(b): give the formula sheet reference, or the formula, if students aren't expected to recall it.
- 4: "Include a risk assessment" carries no marks of its own in the scheme; say how it is credited.
- 5(b): "Sketch" for 2 marks: say what earns each mark (axes labelled, straight line).
How it's checked
Admitted against plain Claude Code, on its second draft: on held-out evals written blind from its description, two judges preferred it in 2 of 4 and 3 of 4 pairs, and it met 93% of their checks, against 86% without it (RFC-0080). How skills are checked
34 assertions across 5 acceptance evals, and 7 trigger queries. Every skill's checks
What the output must do
When it should and shouldn't activate
Should activate:
- Check my exam paper before it goes to print
- Does the mark scheme match the paper?
- Do the marks on this test add up?
- Check this assessment is balanced across AO1 to AO3 before moderation
Should leave to another skill:
- Write ten multiple-choice questions on photosynthesis
- Make a slide deck for my Year 9 lesson on forces
- Proofread this research paper's citations
Source
SKILL.md · the whole folder on GitHub.