2026-06-30 23:33:48 -05:00
# QUESTION_REWRITE_PLAN.md
2026-06-25 11:37:10 -05:00
2026-06-30 23:33:48 -05:00
## Purpose
2026-06-25 11:37:10 -05:00
2026-06-30 23:33:48 -05:00
This plan defines how to rewrite Closer question packs without producing valid but dead content.
2026-06-25 11:37:10 -05:00
2026-06-30 23:33:48 -05:00
The goal is not just clean JSON.
2026-06-25 11:37:10 -05:00
2026-06-30 23:33:48 -05:00
The goal is questions real couples want to answer.
2026-06-25 11:37:10 -05:00
2026-06-30 23:33:48 -05:00
## Standard Pack Workflow
2026-06-25 11:37:10 -05:00
2026-06-30 23:33:48 -05:00
For normal 250 question category packs:
2026-06-25 11:40:56 -05:00
2026-06-30 23:33:48 -05:00
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.
2026-06-25 11:37:10 -05:00
2026-06-30 23:33:48 -05:00
## Standard 250 Question Mix
2026-06-25 11:37:10 -05:00
2026-06-25 11:40:56 -05:00
| Type | Count |
2026-06-25 18:48:37 -05:00
|---|---:|
2026-06-25 11:40:56 -05:00
| multi_choice | 140 |
| single_choice | 50 |
| scale | 35 |
| this_or_that | 15 |
| written | 10 |
2026-06-25 11:37:10 -05:00
2026-06-30 23:33:48 -05:00
Free and premium split:
2026-06-25 11:37:10 -05:00
2026-06-25 18:48:37 -05:00
* 75 free
* 175 premium
2026-06-25 11:37:10 -05:00
2026-06-30 21:24:56 -05:00
## 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
2026-06-30 23:33:48 -05:00
Special packs still must pass tone, duplicate, option, schema, and sample review.
2026-06-30 21:24:56 -05:00
2026-06-30 23:45:47 -05:00
## Research Pass Before Writing Daily Questions
Before writing or rewriting a daily pack, review current examples from relationship question apps, conversation-card games, date-night prompt lists, and relationship research summaries.
Do not copy questions.
Extract patterns only:
* what makes the question playful
* what makes the answer quick
* what categories repeat across good examples
* where prompts become too deep, clinical, or boring
* how flirty prompts stay consent-based and low pressure
* how games use choice, surprise, humor, and story
Turn that research into a short style note before generating questions.
The style note must include:
* approved question mechanics
* banned stale mechanics
* approved option types
* banned option types
* sample good prompts
* sample bad prompts
Do not scale the pack until the style note is written.
2026-06-30 21:24:56 -05:00
## Daily Single Choice Weekday Pack
Pack id:
```text
daily_single_choice_weekly_v1
```
2026-06-30 23:33:48 -05:00
Current compatibility file name:
2026-06-30 21:24:56 -05:00
```text
daily_fun_multiple_choice_v3.json
```
2026-06-30 23:33:48 -05:00
Recommended future file name:
2026-06-30 21:24:56 -05:00
```text
daily_single_choice_weekly_v1.json
```
Expected counts:
2026-06-30 23:33:48 -05:00
* 500 total questions
* 75 free questions
* 425 premium questions
* 500 single_choice questions
2026-06-30 21:24:56 -05:00
Rules:
* every question must be single_choice
* every question must have 4 to 6 options
2026-06-30 23:33:48 -05:00
* 4 options preferred
* every question must have a weekday tag
2026-06-30 21:24:56 -05:00
* every option must answer the prompt
* no therapy worksheet tone
* no wellness survey tone
2026-06-30 23:33:48 -05:00
* no household admin tone
* no chore-heavy answer sets
* no repeated exact option lists
2026-06-30 21:24:56 -05:00
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
2026-06-30 23:33:48 -05:00
## 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:
2026-06-30 21:24:56 -05:00
2026-06-30 23:33:48 -05:00
* 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
2026-06-30 21:24:56 -05:00
2026-06-30 23:33:48 -05:00
Do not approve a daily batch just because it is concrete.
2026-06-30 21:24:56 -05:00
2026-06-30 23:33:48 -05:00
Concrete can still be boring.
2026-06-30 21:24:56 -05:00
2026-06-30 23:33:48 -05:00
A daily batch should feel like something users would want to tap tonight.
2026-06-30 21:24:56 -05:00
2026-06-30 23:33:48 -05:00
## Daily Production Loop
2026-06-30 21:24:56 -05:00
2026-06-30 23:33:48 -05:00
Do not write or rewrite 500 daily questions in one pass.
2026-06-25 11:37:10 -05:00
2026-06-30 23:33:48 -05:00
Use a bounded loop. The goal is quality control, not infinite polishing until everyone forgets why the app exists.
2026-06-25 11:37:10 -05:00
2026-06-30 23:48:18 -05:00
### Patch Mode Required
Daily updates must default to patch mode.
Patch mode means:
1. Review the full pack.
2. Mark only failing question IDs.
3. Fix only the marked IDs.
4. Preserve passing questions exactly.
5. Preserve metadata unless metadata is the failure.
6. Review the patched questions again.
7. Repeat only for IDs that still fail.
Do not rewrite all 500 because some questions failed.
Do not rewrite a whole weekday unless the mass rewrite exception applies.
### Mass Rewrite Exception
A mass rewrite is allowed only when more than 60 percent of a weekday or pack fails for the same root cause.
The review report must include:
* failure percentage
* shared root cause
* why patching individual IDs is worse
* fields that will be preserved
* sample-gate results after the rewrite
Without this report, mass rewriting is not allowed.
### Fix Scope
Every marked question must include one fix scope:
* `prompt_only`
* `options_only`
* `prompt_and_options`
* `metadata_only`
* `delete_or_replace`
Normal tone fixes should usually be `prompt_only` , `options_only` , or `prompt_and_options` .
Do not change access, depth, tags, or IDs unless the fix scope says metadata is involved.
2026-06-30 23:33:48 -05:00
### Per Weekday Loop
2026-06-25 11:37:10 -05:00
2026-06-30 23:33:48 -05:00
For each weekday theme:
2026-06-25 11:40:56 -05:00
2026-06-30 23:33:48 -05:00
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.
2026-06-25 11:40:56 -05:00
2026-06-30 23:33:48 -05:00
### 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
2026-06-30 23:48:18 -05:00
* too_random
* mechanic_overuse
* patch_scope_violation
2026-06-30 23:33:48 -05:00
### 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.
2026-06-30 23:48:18 -05:00
9. Fix only marked sample items.
10. Run another sample if anything changed.
11. Ship only if the second sample passes cleanly and remaining hard flags are 0.
2026-06-30 23:33:48 -05:00
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.
2026-06-30 21:24:56 -05:00
2026-06-25 11:40:56 -05:00
## Rewrite Rules
2026-06-25 11:37:10 -05:00
2026-06-30 23:33:48 -05:00
When rewriting weak questions:
2026-06-30 21:24:56 -05:00
2026-06-30 23:33:48 -05:00
* 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
2026-06-25 18:48:37 -05:00
2026-06-30 23:33:48 -05:00
## Final Deliverables
2026-06-25 18:48:37 -05:00
2026-06-30 23:33:48 -05:00
Each rewrite should provide:
2026-06-25 18:48:37 -05:00
2026-06-30 23:33:48 -05:00
* updated JSON
* validation report
* marked fixes CSV or JSON
2026-06-30 23:48:18 -05:00
* patched fixes CSV or JSON
* remaining flags CSV or JSON
2026-06-30 23:33:48 -05:00
* short review findings
* apply instructions