exam-question-pipeline
Processes course materials and past exams into structured question bank JSON.
Install
mkdir -p .claude/skills/exam-question-pipeline && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/12919" && unzip -o skill.zip -d .claude/skills/exam-question-pipeline && rm skill.zipInstalls to .claude/skills/exam-question-pipeline
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Convert professor-provided lecture PDFs, transcripts, prior exams, and generated drafts into Exam-Lab question-bank JSON with local-only material handling, source separation, exam-session metadata, validation, and app upload steps. Use when preparing midterm/final expected questions, converting course materials to Markdown, extracting professor intent from transcripts, separating past exams from AI-generated questions, or adding a new course question bank to Exam-Lab.Key capabilities
- →Create local-only workspace for exam materials
- →Classify sources before generation (previous_exam, lecture_material, transcript)
- →Convert materials to Markdown using MarkItDown or Docling
- →Extract exam scope and professor intent from materials
- →Generate draft questions covering the confirmed exam range
- →Normalize questions for Exam-Lab JSON schema
How it works
The skill processes course materials to generate app-ready Exam-Lab question JSON, classifying sources, converting formats, extracting intent, and normalizing data while keeping AI-generated content distinct.
Inputs & outputs
When to use exam-question-pipeline
- →Converting lectures to question banks
- →Processing past exam papers
- →Preparing midterm question data
About this skill
Exam Question Pipeline
Use this skill to turn course materials into app-ready Exam-Lab question JSON without committing raw materials or confusing AI-generated questions with real past-exam questions.
Workflow
-
Create local-only workspace
- Put raw PDFs, transcripts, audio, converted Markdown, and intermediate JSON
under
.local/exam-materials/{course-id}/. - Ensure
.local/, raw material folders, and conversion output folders are in.gitignore.
- Put raw PDFs, transcripts, audio, converted Markdown, and intermediate JSON
under
-
Classify sources before generation
previous_exam: actual prior exam material. Use only for the matching exam scope, or as separated pattern/context evidence.lecture_material: PPT/PDF/handout content used for formula and answer-key grounding.transcript: lecture recording transcript. Use for scope, emphasis, and professor intent; do not use transcript text alone as formula authority.
-
Convert materials to Markdown
- Use MarkItDown for fast readable slide text.
- Use Docling when tables, images, layout, or extracted assets matter.
- Treat OCR-heavy distribution tables as reference-only unless checked against official sources or source images.
- Read
references/material-conversion-policy.mdwhen choosing tools or checking conversion quality.
-
Extract exam scope and intent
- Record exact user clarifications about scope.
- Separate midterm/final and year-specific evidence early.
- If a transcript exists, extract only the relevant speaker lane and correct obvious domain-term misrecognitions before using it for intent.
-
Generate draft questions
- Cover the full confirmed exam range.
- Weight emphasized lectures or problem sets more heavily, but do not drop other in-scope materials.
- Give needed critical values directly in calculation prompts unless the learning goal is table/distribution selection.
-
Normalize for Exam-Lab
- Add
source,answerStatus,exam, andmetadatafields according toreferences/exam-lab-schema.md. - Use
source: "ai"andanswerStatus: "ai_draft"for AI-generated expected questions. - Use
exam.kind: "past_exam"only for real prior exam questions. - Run
scripts/normalize-exam-questions.mjswhen converting a draft JSON into app-ready JSON.
- Add
-
Review and validate
- Use
references/question-generation-review.mdfor content-review checks. - Run
scripts/validate-question-bank.mjs <json-file>. - Run app verification after upload:
npm testif tests exist.npm run build.
- Use
-
Upload to app
- Write the final JSON to
src/lib/questions/{courseId}.json. - Import it from
src/lib/questions/index.js. - If the UI lacks exam-session filtering, add filtering by
question.exam.idinstead of overloadingsource.
- Write the final JSON to
Output Rules
- Commit app-ready question JSON and process reports only.
- Do not commit raw PDFs, recordings, transcripts, conversion artifacts, or intermediate generation dumps.
- Always report remaining review risk for AI-generated answer keys.
- Keep real past exams and AI expected questions separated by both file location and metadata.
Resources
references/exam-lab-schema.md: app JSON schema and exam/source conventions.references/material-conversion-policy.md: PDF/STT conversion and source handling rules.references/question-generation-review.md: generation and review checklist.scripts/validate-question-bank.mjs: deterministic JSON validation.scripts/normalize-exam-questions.mjs: inject/normalize Exam-Lab metadata.
When not to use it
- →Do not commit raw PDFs, recordings, transcripts, conversion artifacts, or intermediate generation dumps
- →Do not use transcript text alone as formula authority
- →Do not overload `source` for exam-session filtering if UI lacks it
Limitations
- →Always report remaining review risk for AI-generated answer keys
- →Keep real past exams and AI expected questions separated by both file location and metadata
How it compares
This workflow provides a structured pipeline for converting diverse course materials into a standardized, validated question bank JSON, ensuring source separation and metadata consistency, unlike manual question creation.
Compared to similar skills
exam-question-pipeline side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| exam-question-pipeline (this skill) | 0 | 2mo | Review | Advanced |
| scientific-critical-thinking | 18 | 7mo | Review | Advanced |
| scholar-evaluation | 4 | 2mo | Review | Intermediate |
| tooluniverse-drug-research | 3 | 2mo | No flags | Advanced |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
scientific-critical-thinking
davila7
Evaluate research rigor. Assess methodology, experimental design, statistical validity, biases, confounding, evidence quality (GRADE, Cochrane ROB), for critical analysis of scientific claims.
scholar-evaluation
K-Dense-AI
Systematically evaluate scholarly work using the ScholarEval framework, providing structured assessment across research quality dimensions including problem formulation, methodology, analysis, and writing with quantitative scoring and actionable feedback.
tooluniverse-drug-research
mims-harvard
Generates comprehensive drug research reports with compound disambiguation, evidence grading, and mandatory completeness sections. Covers identity, chemistry, pharmacology, targets, clinical trials, safety, pharmacogenomics, and ADMET properties. Use when users ask about drugs, medications, therapeutics, or need drug profiling, safety assessment, or clinical development research.
hkdse-subject-grading
AKCqhzdy
>
matlab-symbolic-math
matlab
Generate correct MATLAB code using the Symbolic Math Toolbox. Use when the user asks for symbolic computations, analytical solutions, symbolic differentiation/integration, equation solving, or converting symbolic results to numeric MATLAB functions. Also use when converting differential equations to
markitdown
K-Dense-AI
Convert various file formats (PDF, Office documents, images, audio, web content, structured data) to Markdown optimized for LLM processing. Use when converting documents to markdown, extracting text from PDFs/Office files, transcribing audio, performing OCR on images, extracting YouTube transcripts, or processing batches of files. Supports 20+ formats including DOCX, XLSX, PPTX, PDF, HTML, EPUB, CSV, JSON, images with OCR, and audio with transcription.