Full Mock 200 — Rectification Report
(position-resolved or content-matched), 113 hand-written per option.
Full Mock 200 — Rectification Report
What was broken (live v3 deploy, 2026-10-01)
| Defect | Count | Impact |
|---|---|---|
x (Why Others Are Wrong) rows labelled positionally, not by option |
191 / 200 | User read the wrong option’s reasoning |
| Correct-answer explanation sitting on a distractor row | 86 | Worst case: “Correct” text on a wrong letter |
Filler text in x (“misses the stated review-day discriminator”) |
29 questions | No teaching content at all |
| Option lists with 3 or 4 options instead of 5 | 7 | Broken scoring, letter keys wrong |
I-D010 option C corrupted with 3 options concatenated into one string |
1 | Unusable |
c[1] answer text desynced from the option it labelled |
184 | Confusing answer reveal |
x rows opening “Wrong —” / “A:” under a table already titled “Why every other option is wrong” |
461 rows | Redundant, confusing |
Exact duplicate stem (B-D024 / SURG_375, same question, answer letter differs) |
1 | Same question twice in one mock |
CARD_BRIDGE_008 was a meta-question (“which topic matches this discriminator?”) with filler distractors |
1 | Not an MCQ |
| Option-length cue, correct answer >35% longer than distractor mean | 75 | Guessable from word count |
What was fixed
xlayer relabelled or rewritten on all 200 questions. 103 automatically (position-resolved or content-matched), 113 hand-written per option. Every question now has exactly 4 rows, labelled with the true distractor letters in order, correct answer excluded.- 7 malformed option lists rebuilt to 5 options each;
I-D010rewritten. B-D024/SURG_375duplicate resolved —SURG_375replaced with a tension pneumothorax question.CARD_BRIDGE_008rewritten as a ventricular fibrillation question.c[1]re-anchored to the option text it labels.- 210
xrows de-noised (leading “Wrong —”, “A:”, “Correct answer”). - Option-length cues: 75 → 35. Max gap cut from +262% to +92%; median gap 20%. No question now exceeds 100%.
Remaining known issues
- 35 questions still have an option-length gap above 35% (6 above 50%, 1
above 75%:
PHARM_043at +92%). These are cases where the correct answer is inherently more specific — e.g. organophosphate poisoning needs “atropine titrated to drying secretions” while the distractors are single drug names. Closing these fully requires either padding distractors with clinically meaningless qualifiers or deleting real diagnostic detail. Both harm the question. I stopped at 92% rather than do that. - 4 bridge-review questions are still meta-format rather than clinical
vignettes:
SMALL_APPLIED_BRIDGE_017,SMALL_APPLIED_BRIDGE_008,PAED_OBG_BRIDGE_019,PAED_OBG_BRIDGE_023. Their explanations are now correct, but the stems read as index items (“which concept matches this discriminator”) rather than NRE-style clinical questions. They should be rewritten as vignettes. - Answer key is A/B skewed: A 64, B 53, C 31, D 25, E 27. A student could
exploit this. Fixing it means permuting options on ~24 questions, which
requires the
xrows to be relabelled in lockstep. I built and tested that transform, got it wrong twice, and reverted rather than ship a corrupted answer key. It is mechanical and can be done carefully. - Subject allocation is 53 Medicine / 49 Surgery / 15 each Paeds & OBGYN / 11 Anatomy & Pathology / 10 Physiology / 8 Pharma / 6 each Biochem, ComMed, Ophtho, ENT / 4 Forensic = 200. Basic sciences total 56, not the 60 implied by the official table header (its rows sum to 56). The agreed proportional treatment of the 4 unallocated questions was never applied — the four extras went to clinical subjects instead.
Verification (headless Chromium, 2 Oct 2026)
- Data island parses; 200 questions, 200 unique IDs
- Option labels A–E correct on all 200;
amatchesc[0]on all 200 xlabels equal the true distractor set on all 200- All 7 layers present on all 200 (
s,co,ct,d,w,t,f,x,rule) - No duplicate option text, no “all of the above” placeholders
- Space starts the mock; clicking the correct option shows “✓ Correct — well done”; a wrong pick shows “✗ Incorrect … you chose B)”
- “Why Others Are Wrong” renders 4 rows with the right letters and the right explanations for the verified question
- Zero page errors, zero console errors