Skip to content

Expand quiz workflow beyond multiple-choice question type #69

Description

@MaboroshiChan

Summary

The current quiz workflow only supports one question type: multiple_choice with 4 options. We want to expand quiz generation to support a broader set of reading assessment formats.

Motivation

Multiple choice is useful for breadth, but it does not cover all the reading skills we want to assess. Adding more quiz types will allow us to evaluate comprehension depth, structural understanding, and higher-order reasoning more effectively.

Proposed Question Types

Open-ended

  • Short answer
  • Summary / main idea
  • Fill in the blank

Analysis / inference

  • True / False / Not Given
  • Inference
  • Vocabulary in context

Structure / logic

  • Ordering
  • Matching
  • Paragraph heading match

Higher-order output

  • Discussion / response
  • Diagram / mind-map completion

Design Direction

Separate:

  • type: interaction format
  • skill: reading skill being tested

This allows combinations such as:

  • multiple_choice + Inference
  • true_false_not_given + Facts
  • short_answer + Argument
  • ordering + Inference
  • matching + Facts

Suggested Rollout

Phase 1: low-cost / high-impact

  • true_false_not_given
  • short_answer
  • fill_in_blank

These should fit the current workflow most easily because they can still be generated from chapter knowledge extraction units.

Phase 2: structure-heavy

  • ordering
  • matching
  • paragraph_heading_match

These likely need stronger chapter/page structure support beyond single source knowledge units.

Phase 3: higher-order output

  • summary
  • discussion
  • mindmap_fill

These may be better treated as practice mode rather than standard auto-graded quiz mode.

Implementation Areas

Backend types

Update:

  • reading-app-server/src/modules/quiz-workflow/quiz-workflow.types.ts

Expand QuizWorkflowQuestionType from a single literal to a union of supported types.

Prompting

Update:

  • reading-app-server/prompts/v1/quiz.txt

Support question-type-specific generation instructions and JSON schemas.

Workflow logic

Update:

  • reading-app-server/src/modules/quiz-workflow/quiz-workflow.service.ts

Add:

  • question-type-aware prompt building
  • source-unit selection rules by type
  • structured validation/coercion per question type

Frontend rendering

Update:

  • reading-app/src/components/quiz/QuizWindow.tsx

Move from a single multiple-choice renderer to question-type-based rendering.

Acceptance Criteria

  • Quiz question schema supports multiple type values.
  • Backend can generate and validate at least the Phase 1 question types.
  • Frontend can render and handle interaction for at least the Phase 1 question types.
  • Existing multiple_choice flow remains backward compatible.
  • Question skill remains separate from question type.

Notes

The current system already has a useful skill axis:

  • Facts
  • Inference
  • Tone
  • Argument

This should remain orthogonal to type, not be overloaded to represent interaction format.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions