A Claude Code plugin that helps educators build high-quality assessments — classroom quizzes, thematic and summative tests, diagnostic instruments, and exam-preparation banks — for any subject and grade. It operationalizes an evidence-based master document (The Ultimate Test Construction Guide) as a repeatable, tool-assisted workflow: mode selection, blueprint and "topics × Bloom × outcome strands" matrix design, item drafting by format rules, per-item "passports," a review checklist, and post-administration psychometrics.
A human expert stays firmly in the loop: every AI-generated item is flagged in its passport and must pass human review against the checklist before use — the plugin never presents a generated test as ready-to-administer.
- Asks for the assessment mode first (formative / diagnostic / summative) — the mode dictates difficulty targets, psychometric rigor, feedback, and ethics.
- Builds the specification and matrix before any item is written, and flags coverage gaps (construct underrepresentation).
- Drafts original items in the correct format for the target cognitive level and difficulty, with a documented rationale for every distractor.
- Screens items against the seven forbidden cue-giveaways, ethics and accessibility rules, and per-format constraints (no "all/none of the above," announced multiple-response scoring schemes, mandatory rubrics…).
- Computes item and test statistics from real response data: P-value, D-index, Rit/Rir, distractor uptake, reliability (KR-20 / Cronbach's alpha), SEM, and distribution shape — with verdicts from the guide's interval tables.
- Claude Code (a recent version with plugin support).
- Python 3.9+ available on PATH as
python3for the bundled analysis tools (preinstalled on macOS and most Linux distributions; on Windows, install Python and ensurepython3resolves, e.g. via an alias forpy -3).
From an interactive Claude Code session:
/plugin marketplace add OleksiiDotsenko/test-builder
/plugin install test-builder@test-builder-marketplace
For local development, point the marketplace command at a local clone of this repository instead of the GitHub path. To uninstall:
/plugin uninstall test-builder@test-builder-marketplace
Start a new session after installing. Natural requests trigger the skill
("draft a summative test on fractions for grade 7", "review these quiz
items", "here are my students' answers — which items worked?"); you can also
invoke it explicitly with /test-builder:test-builder, or use the shortcut
skills:
| Shortcut | What it does |
|---|---|
/test-builder:new-test <topic, grade, mode…> |
Full workflow: mode → blueprint → matrix → items with passports → review |
/test-builder:review-items <items or file> |
Anti-pattern screen + full checklist on existing items |
/test-builder:analyze-results <responses.csv> |
P-value, D-index, Rit, distractor analysis, verdicts |
You: I need a 20-item summative test on percentages for grade 6. Claude: asks about outcome strands and time, drafts the specification and matrix, writes items with per-distractor rationales, validates each passport, runs the checklist, and delivers everything as a draft pending your expert review.
After administration, export responses to CSV and run
/analyze-results— you get a report with per-item verdicts (bank / revise / retire), dead distractors, and any keying anomalies.
All scripts live in plugins/test-builder/skills/test-builder/scripts/ and
run offline. The skill invokes them for you at the right workflow steps —
run them by hand only if you want to use them outside Claude Code:
# Scaffold a blank matrix with per-topic totals and a difficulty plan
python3 scripts/new_matrix.py --topics "Fractions,Decimals" --items 20 --weights "50,50"
# Validate item passports (YAML subset or JSON); non-zero exit on violations
python3 scripts/validate_passport.py item-001.yaml item-002.yaml
# Item & test statistics from a response CSV (KEY row) or scored matrix
python3 scripts/psychometrics.py responses.csv --out report.mdResponse CSV format:
taker_id,Q1,Q2,Q3
KEY,B,A,C
s01,B,C,C
s02,A,A,See examples/ for a complete validated item passport, a sample response CSV, and the statistics report the analyzer generates from it.
plugins/test-builder/skills/
├── test-builder/
│ ├── SKILL.md # the working algorithm (guide §18)
│ ├── references/ # the methodology, split for on-demand loading
│ ├── assets/ # passport / specification / matrix templates
│ └── scripts/ # the three stdlib-only tools
├── new-test/ # shortcut skills (slash-invoked)
├── review-items/
└── analyze-results/
examples/ # sample passport, response CSV, generated report
tests/ # python3 -m unittest discover tests
- Human review is mandatory. Generated items are flagged
source: AI-generated, reviewed by <name>and fail passport validation until a named human reviewer signs off. - Facts are verified, not trusted for fluency; unverifiable claims are marked for expert verification.
- Ethics and child safety by default: no discriminatory, sensitive, dangerous, or elitist contexts; crisis/war caution in stems.
- Scoring schemes are fixed and announced before administration — never left ambiguous.
- Statistics are indicative. Classical Test Theory with classroom-sized samples gives rough signals, not verdicts; the reports say so when n is small.
The bundled methodology derives from the author's own master document, which synthesizes: the Standards for Educational and Psychological Testing (AERA/APA/NCME); the Haladyna–Downing–Rodriguez item-writing taxonomy; Classical Test Theory; OECD PISA frameworks; national high-stakes testing practice; formative assessment research (Black & Wiliam, D. Wiliam); and the cognitive science of learning. No third-party copyrighted assessment content is included; all example items are original.
python3 -m unittest discover -s testsNo runtime dependencies beyond the Python 3 standard library.
MIT © 2026 Oleksii Dotsenko — see LICENSE.