AddThisFeature

Quiz Builder

Build a scored quiz with branching questions and a result page that reflects the answers.

involved Editors & Builders

What it adds

An authoring tool for multi-question quizzes with scoring rules and answer-based branching, plus the taking experience and a result page.

What your agent is told to do

5
  1. 1

    Reuse the app's existing form machinery for the taking experience. If Multi-Step Form and Conditional Form Fields exist, the quiz runner is those features driven by the quiz definition, not a second form engine.

  2. 2

    Support a small set of question types that actually score: single choice, multiple choice, and short text with an exact or pattern match. Free-text grading and media questions are a separate scope and should be deferred.

  3. 3

    Give the author a way to see the quiz as a taker would, including a specific answer path, before it is published. A branching quiz cannot be checked by reading the editor.

  4. 4

    Keep the entire scoring model on the server. Correct answers, weights and branch rules are never sent to the browser, and the result page is computed from the submitted attempt.

  5. 5

    Do not let a broken quiz be published. Validate the structure at publish time and block on the problems that produce a dead end for the taker.

Edge cases it handles

8
  • Branching produces questions no path can ever reach, and rules that loop back on themselves. Detect both at publish time and name the specific questions involved rather than refusing with a generic error.
  • Correct answers must never be readable from the page. If the browser holds the answer key, or the runner reveals correctness before submission, the score means nothing.
  • People leave halfway through. Save progress and let a partially completed attempt resume on the same device, and be explicit about whether resuming is allowed after the attempt has been submitted.
  • Skipped and partially answered questions need a defined score, decided by the author rather than assumed. A multiple-choice question with two of three correct answers selected must score the same way every time.
  • Editing a live quiz changes what past attempts mean. Version the definition, keep attempts pinned to the version they were taken against, and keep old results reportable after the questions change.
  • A quiz open to the public invites automated submissions. Rate limit attempts and reuse the app's existing abuse protections rather than trusting the front end.
  • Two submissions of the same attempt must produce one result. Reuse the app's idempotent submission handling so a double click or a retry does not create a duplicate score.
  • The result page must render meaningfully when nothing was answered, and when a branch ends the quiz early.

Definition of done

9
  • Authors can create branching, scored quizzes and preview a specific answer path before publishing.
  • Publish is blocked when a question is unreachable or a branch loops, with the offending questions named.
  • Correct answers, weights and branch rules never reach the browser.
  • Partial attempts resume on the same device with answers intact.
  • Scoring for skipped and partially answered questions is explicit and consistent.
  • Quiz definitions are versioned and past attempts still report against the version they were taken on.
  • Duplicate submissions of one attempt produce a single result.
  • The feature matches the existing design system.
  • No existing functionality is broken.

Related features

How it works

  1. 1

    Copy the link

    Grab the Markdown instruction URL for this feature.

  2. 2

    Give it to your AI

    Paste it into Claude Code, Cursor, v0, Lovable — whatever you build with.

  3. 3

    It inspects, then implements

    Your agent reads your existing app first, then adds the feature to fit it.

Works with your stack

These instructions are written to adapt. They tell the agent to detect your framework, match your existing design system, and reuse what you already have — rather than assuming a particular stack.

Need it tighter than that? Customize the feature and tell it exactly what you're running.