Audit math question bank files for answer-key and explanation accuracy. Use when asked to check, verify, review, or audit answers, correct answers, explanations, or calculations in test question bank files (bank 1 or bank 2). Covers locating source files, verifying every \correctAnswer and \explanation, fixing errors, and compiling to validate.
This skill guides you through a rigorous chapter-by-chapter accuracy audit of the Grade 7 math question bank LaTeX files. The goal is to catch wrong answer keys (\correctAnswer) and incorrect math in explanations (\explanation), then fix them with minimal changes.
There are two independent question bank sets:
| Bank | Source directory | Assembled review docs | Books that use it |
|---|---|---|---|
| Bank 1 | tests_questions_bank/ |
tests/grade7_test_questions_bank_ch{N}.tex| 3, 5, 7, 10 practice tests |
| Bank 2 | tests_questions_bank_2/ | tests/grade7_test_questions_bank_2_ch{N}.tex | 6, 9, 12 practice tests |
Within each bank directory, source files live in three subdirectories:
tests_questions_bank_2/
topics/ # Core CCSS topic question files
topics_additional/ # Additional state-specific topic questions
topics_modified/ # Modified topic questions
Each source file contains 27 questions: 15 multiple choice (mc), 6 short answer (sa), and 6 graphical (gmc/gsa).
First, run the chapter-facts Python script to discover the topic IDs and relative file paths for that chapter:
p scripts/get_chapter_topic_facts.py --chapter {N}
This prints the chapter's:
topics/topics_additional/topics_modified/Use that output to build the exact bank-specific source file list:
tests_questions_bank/ to each printed file path.tests_questions_bank_2/ to each printed file path.Then read the assembled chapter review document to confirm the exact \input{} lines:
tests/grade7_test_questions_bank_2_ch{N}.tex # for bank 2
tests/grade7_test_questions_bank_ch{N}.tex # for bank 1
The script tells you what topic files exist for the chapter, and the assembled review file confirms which ones are actually included in that bank/chapter build. Do not guess.
Read each source file in full. Do not skim or sample. Every question must be checked.
For every question, perform these checks:
mc and gmc)\correctAnswer{X} matches the only choice that equals the right value.\explanation{} and confirm every intermediate step is correct. Watch for sign errors, exponent mistakes, and wrong arithmetic.\correctAnswer? If the explanation derives one answer but the key says another, that's a bug.sa and gsa)\correctAnswer{}.Only flag issues where:
\correctAnswer is objectively wrong\explanation contains a calculation error, wrong intermediate result, or a factually false statementDo NOT flag or change (unless the user explicitly requests it):
Hard rule —
\correctAnswerchanges:
- Only change
\correctAnswerwhen the current value is objectively, mathematically wrong. If the existing answer is correct, leave it alone — even if you think additional words or context could be added.- For multiple-choice questions the correct answer must be a single letter (A, B, C, or D). Never expand it into words or a phrase.
- For short-answer / graphical questions the correct answer should be the shortest correct response — typically one or two numbers, a single expression, or at most a few words. Do not pad a correct short answer with extra explanation, qualifiers, or reworded phrasing. If the existing text is mathematically correct and answers the question, it is good enough.
- Never modify
\choiceA/\choiceB/\choiceC/\choiceDtext. If a distractor is identical to the keyed answer, change only the key and explanation to point to the right choice — do not rewrite the choice text.
For each confirmed issue:
\correctAnswer. If both are wrong, fix both.After editing, build a review PDF containing only the changed questions so the user can visually verify the corrections. Use the build_audit_review.py script, which has two subcommands: add to accumulate changed questions, and open to compile and display the PDF.
Each time you fix a question, immediately register it with the script. Pass the chapter title on the first call via --chapter; subsequent calls inherit it.
# First call — include --chapter
python3 scripts/build_audit_review.py add \
--chapter "Ratios and Proportional Relationships" \
tests_questions_bank_2/topics/ch01-02-recognizing-proportional-relationships.tex 1-2-q03 1-2-q15
# Later calls — chapter is inherited
python3 scripts/build_audit_review.py add \
tests_questions_bank_2/topics_additional/ch01-07-proportional-reasoning-with-scale-models.tex 1-7-q12
The positional arguments are: a .tex file path (relative to workspace root) followed by the question IDs you changed in that file. Multiple files can be passed in one call. If you re-edit a question, just add it again — the script replaces the earlier version.
The grade is read automatically from config.py.
After all fixes are done:
python3 scripts/build_audit_review.py open
This generates tests/audit_review.tex, compiles it into build/audit_review.pdf, opens the PDF, and clears the accumulated data for the next audit.
Each page shows one question with its ID and source file in the header, rendered with inline answer/explanation boxes.
If compilation fails, check editor diagnostics on every changed file and fix any LaTeX syntax errors before retrying.
List each question ID, the file it lives in, what was wrong, and what you changed.
These are the most frequent bugs found in past audits:
| Pattern | Example | Where to look |
|---|---|---|
| Sign error in factoring | −4x(x + 2) claimed to equal −4x² + 8x but actually gives −4x² − 8x (caught in 3-8-q15: key said "Both A and B" but expanding A shows it's wrong) | Factoring and expanding questions |
| Explanation contradicts key | Explanation derives answer A but \correctAnswer{B} | Any question type |
| Wrong graph interpretation | TikZ plots point at (3, 4) but explanation says "the point is at (3, 5)" | Graphical questions (gmc, gsa) |
| Arithmetic slip in explanation | "5 × 8 = 45" or "$3^{-2} = \frac{1}{6}$" | Scientific notation, exponents |
| Financial formula error | Interest calculated as $P \times r$ instead of $P \times r \times t$ | Financial literacy topics |
After completing the audit, summarize: