Closer/seed/questions/QUESTION_REWRITE_PLAN.md

5.0 KiB

QUESTION_REWRITE_PLAN.md

Purpose

This plan defines how to rewrite Closer question packs without producing valid but dead content.

The goal is not just clean JSON.

The goal is questions real couples want to answer.

Standard Pack Workflow

For normal 250 question category packs:

  1. Define the category purpose.
  2. Define the main subtopics.
  3. Write in batches of 40 to 50.
  4. Review tone and repetition after each batch.
  5. Assign types, access, and depth.
  6. Validate schema.
  7. Check duplicate question text.
  8. Check duplicate option lists.
  9. Read random questions out loud.
  10. Fix weak items before shipping.

Standard 250 Question Mix

Type Count
multi_choice 140
single_choice 50
scale 35
this_or_that 15
written 10

Free and premium split:

  • 75 free
  • 175 premium

Special Pack Exception

Some packs are product-specific and may override the standard 250 question mix.

A special pack must document:

  • pack id
  • file name
  • expected count
  • allowed question types
  • free count
  • premium count
  • required tags
  • reason for the exception

Special packs still must pass tone, duplicate, option, schema, and sample review.

Daily Single Choice Weekday Pack

Pack id:

daily_single_choice_weekly_v1

Current compatibility file name:

daily_fun_multiple_choice_v3.json

Recommended future file name:

daily_single_choice_weekly_v1.json

Expected counts:

  • 500 total questions
  • 75 free questions
  • 425 premium questions
  • 500 single_choice questions

Rules:

  • every question must be single_choice
  • every question must have 4 to 6 options
  • 4 options preferred
  • every question must have a weekday tag
  • every option must answer the prompt
  • no therapy worksheet tone
  • no wellness survey tone
  • no household admin tone
  • no chore-heavy answer sets
  • no repeated exact option lists

Weekday tags:

  • daily_monday_mood_check
  • daily_tuesday_tiny_win
  • daily_wednesday_real_one
  • daily_thursday_laugh
  • daily_friday_flirty
  • daily_saturday_side_quest
  • daily_sunday_slow_burn

Daily Fun-First Rule

Daily questions must be fun before they are useful.

If a daily prompt mostly helps the couple manage chores, bedtime, errands, dishes, bills, or logistics, rewrite it toward one of these:

  • a tiny date
  • a joke
  • a snack
  • a flirt
  • a mini adventure
  • a sweet surprise
  • a playful choice
  • a cute debate
  • a small shared moment

Do not approve a daily batch just because it is concrete.

Concrete can still be boring.

A daily batch should feel like something users would want to tap tonight.

Daily Production Loop

Do not write or rewrite 500 daily questions in one pass.

Use a bounded loop. The goal is quality control, not infinite polishing until everyone forgets why the app exists.

Per Weekday Loop

For each weekday theme:

  1. Write or rewrite 20 questions.
  2. Review the 20 questions out loud.
  3. Mark every weak question with a reason.
  4. Fix only the marked questions.
  5. Review the fixed questions again.
  6. Continue only when at least 18 of 20 pass.
  7. Continue only when at least 16 of 20 feel fun, playful, sweet, flirty, silly, or date-like.
  8. Expand that weekday theme in batches of 20 to 30.
  9. Repeat mark, fix, review after each batch.
  10. Move to the next weekday only after the current weekday passes.

Pass Standard

A daily question passes only if:

  • it sounds like something normal people would say
  • it can be answered in under 10 seconds
  • it feels like a couples game
  • it is fun before merely useful
  • it is concrete and tied to real life
  • every option answers the exact prompt
  • every option is a complete answer
  • the weekday theme is clear
  • the wording does not feel generated
  • the answer set is not household admin

Required Marking Reasons

When marking a daily question, use one or more of these reasons:

  • therapy_voice
  • wellness_voice
  • household_admin
  • not_fun
  • abstract_prompt
  • awkward_split_phrase
  • repeated_stem
  • option_mismatch
  • fragment_options
  • too_generic
  • weird_option
  • weak_weekday_fit
  • filler_question

Final Pack Gate

After all weekdays are drafted:

  1. Run schema and count validation.
  2. Run duplicate question and duplicate option-list checks.
  3. Check repeated openers.
  4. Check repeated option text.
  5. Read 10 random questions from each weekday.
  6. Mark anything weak.
  7. Fix marked questions.
  8. Run a second random sample from each weekday.
  9. Ship only if the second sample passes cleanly.

Do not skip the final sample gate.

A pack can be technically valid and still sound like a relationship app generated by a toaster with abandonment issues.

Rewrite Rules

When rewriting weak questions:

  • keep the original category purpose
  • remove therapy wording
  • remove abstract phrasing
  • use simpler language
  • make the prompt answerable
  • make options balanced
  • avoid fake healthy answers
  • avoid repeated stems
  • keep the emotional intensity appropriate

Final Deliverables

Each rewrite should provide:

  • updated JSON
  • validation report
  • marked fixes CSV or JSON
  • short review findings
  • apply instructions