Closer/seed/questions/QUESTION_QUALITY_CHECKLIST.md

294 lines
6.0 KiB
Markdown

# Closer Question Quality Checklist v6
**See also:** [QUESTION_CONTENT_GUIDE.md](QUESTION_CONTENT_GUIDE.md) | [QUESTION_SCHEMA.md](QUESTION_SCHEMA.md) | [QUESTION_REWRITE_PLAN.md](QUESTION_REWRITE_PLAN.md)
## Purpose
This checklist prevents technically valid but boring questions from reaching the app.
Passing JSON validation is not enough.
Every question must also feel human, useful, fun, and worth answering.
## Automatic Rejects
Reject any question that contains or strongly resembles:
* Describe...
* Reflect on...
* Discuss...
* Evaluate...
* In what ways...
* How satisfied are you...
* What boundary around...
* Explore your feelings...
* Identify the ways...
* Rate the effectiveness...
* Communication style
* Emotional processing
* Conflict framework
* Relationship dynamic
These are therapy worksheet patterns.
## Daily Pack Hard Checks
For the daily single choice weekday pack, confirm before content review:
* 500 total questions
* 75 free questions
* 425 premium questions
* every question is single_choice
* every question has a weekday tag
* every question has 4 to 6 options
* 4 options preferred
* no duplicate IDs
* no duplicate question text
* no duplicate exact option lists
## Daily Fun Gate
For daily questions, reject anything that is merely useful but not fun.
A daily question must feel like one of these:
* a game moment
* a tiny date choice
* a sweet choice
* a flirt
* a silly prompt
* a playful debate
* a low-pressure couple moment
Reject daily questions with answer sets built around:
* clean counters
* dishes
* laundry
* bills
* appointments
* errands
* bedtime planning
* household maintenance
* saved blankets
* clinical reassurance phrasing
These can exist in the real relationship. They should not dominate the daily fun pack.
Bad:
```text
Before phones win, what would make the night nicer?
```
Bad options:
* A clean counter
* A quick shoulder rub
* A simple bedtime plan
* The good blanket saved
Better:
```text
Before phones win, what should we do for fun?
```
Better options:
* Pick a ridiculous snack
* Watch one guilty-pleasure clip
* Trade dramatic compliments
* Choose tomorrow's tiny date
## Research-Informed Daily Fun Checks
A daily question must feel playable, not merely pleasant.
Pass only if the question uses at least one of these:
* a tiny mission
* a funny choice
* a playful debate
* a flirty pick
* a cute mini date
* a snack or treat choice
* a memory prompt
* a silly award
* a low-pressure dare
* a small surprise
Reject if the question mainly feels like:
* relationship maintenance
* emotional homework
* household management
* responsible adult planning
* generic wellness advice
* a cute phrase with no actual game inside it
Ask this out loud:
```text
Would two tired people still want to tap this for fun tonight?
```
If not, mark it as `not_fun` or `filler_question` and rewrite it.
## Research-Informed Option Checks
Options must feel like choices in a game.
Reject options that are:
* vague, like "something sweet"
* clinical, like "more reassurance"
* logistical, like "a bedtime plan"
* chore-coded, like "a clean counter"
* oddly phrased, like "the good blanket saved"
* too similar to each other
* too different in effort or intimacy
At least 3 out of 4 options should be visibly fun, sweet, flirty, silly, or date-like. If only 1 or 2 options feel fun, rewrite the whole answer set.
## Daily Pack Rejects
Reject daily prompts that feel like:
* therapy homework
* self-help content
* HR wellness surveys
* communication worksheets
* abstract emotional processing
* generic AI relationship advice
* household admin
* bedtime logistics
* chore planning
Reject daily questions using these words or phrases:
* reset
* process
* mental load
* emotional load
* autopilot
* pressure
* soft landing
* relationship dynamic
* name the mood
* emotional processing
* communication style
* conflict framework
## Daily Option Checks
Every daily option must:
* answer the exact prompt
* be a complete answer
* sound natural
* be similar in weight to the other options
* be fun, sweet, playful, flirty, silly, date-like, or warmly specific
Reject options that are:
* fragments
* too abstract
* weirdly specific
* chore-heavy
* clinical
* not connected to the prompt
* much better or worse than the other options
Bad fragment:
```text
When I need reassurance
```
Better:
```text
Tell me one thing you liked about today
```
Bad weird option:
```text
The good blanket saved
```
Better:
```text
Save me the best couch spot
```
## Repetition Checks
Reject or rewrite if:
* too many questions start the same way
* the same option text appears too often
* the same situation repeats with different nouns
* the same answer pattern repeats
* the weekday starts to feel like wallpaper
The pack can pass duplicate checks and still fail repetition review.
## Daily Sample Gate
Before approving the full daily pack:
1. Read 10 random questions from each weekday.
2. Mark anything therapy-coded, boring, weird, logistical, or not fun.
3. Fix the marked items.
4. Run a second random sample from each weekday.
5. Ship only when the second sample passes cleanly.
The sample must include no chore-heavy answer sets and no weird domestic options.
## General Question Checks
Every question must pass:
* Would a real couple answer this willingly?
* Is it easy to understand on the first read?
* Does it create a conversation, laugh, flirt, memory, plan, or useful preference?
* Are the answer options balanced?
* Is the wording natural out loud?
* Would this feel premium in the app?
## Marking Reasons
Use these reasons when marking weak questions:
* 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
* duplicate_text
* duplicate_options
* schema_issue
## Final Verdict Labels
Use one of these labels when reviewing a pack:
* production_ready
* staging_only
* needs_rewrite
* reject
Do not call a pack production ready just because the JSON validates.