2026-06-30 21:24:56 -05:00
|
|
|
# Closer Question Rewrite Plan v3
|
2026-06-25 11:37:10 -05:00
|
|
|
|
2026-06-30 21:24:56 -05:00
|
|
|
**See also:** [QUESTION_CONTENT_GUIDE.md](QUESTION_CONTENT_GUIDE.md) | [QUESTION_SCHEMA.md](QUESTION_SCHEMA.md) | [QUESTION_QUALITY_CHECKLIST.md](QUESTION_QUALITY_CHECKLIST.md)
|
2026-06-25 11:37:10 -05:00
|
|
|
|
2026-06-25 18:48:37 -05:00
|
|
|
## Product Goal
|
2026-06-25 11:37:10 -05:00
|
|
|
|
2026-06-25 18:48:37 -05:00
|
|
|
Closer is a relationship app, not a survey.
|
2026-06-25 11:37:10 -05:00
|
|
|
|
2026-06-25 18:48:37 -05:00
|
|
|
The experience should feel like a couples game that naturally creates conversations, laughter, memories, flirting, and meaningful moments.
|
2026-06-25 11:37:10 -05:00
|
|
|
|
2026-06-25 18:48:37 -05:00
|
|
|
If a question feels like homework, rewrite it.
|
2026-06-25 11:37:10 -05:00
|
|
|
|
2026-06-25 18:48:37 -05:00
|
|
|
## Repo Schema
|
2026-06-25 11:40:56 -05:00
|
|
|
|
2026-06-25 18:48:37 -05:00
|
|
|
Use these type names exactly:
|
2026-06-25 11:37:10 -05:00
|
|
|
|
2026-06-25 18:48:37 -05:00
|
|
|
* written
|
|
|
|
|
* single_choice
|
|
|
|
|
* multi_choice
|
|
|
|
|
* scale
|
|
|
|
|
* this_or_that
|
2026-06-25 11:37:10 -05:00
|
|
|
|
2026-06-25 18:48:37 -05:00
|
|
|
Do not rename them unless the app code is updated first.
|
2026-06-25 11:40:56 -05:00
|
|
|
|
2026-06-30 21:24:56 -05:00
|
|
|
## Standard Question Mix per 250
|
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-25 18:48:37 -05:00
|
|
|
76 percent of questions must be choice based.
|
2026-06-25 11:40:56 -05:00
|
|
|
|
2026-06-25 18:48:37 -05:00
|
|
|
Written questions should stay rare.
|
2026-06-25 11:40:56 -05:00
|
|
|
|
2026-06-25 18:48:37 -05:00
|
|
|
## Free and Premium Split
|
2026-06-25 11:37:10 -05:00
|
|
|
|
2026-06-30 21:24:56 -05:00
|
|
|
Per standard 250 question pack:
|
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-25 18:48:37 -05:00
|
|
|
Suggested free split:
|
2026-06-25 11:37:10 -05:00
|
|
|
|
2026-06-25 18:48:37 -05:00
|
|
|
* multi_choice: 42
|
|
|
|
|
* single_choice: 15
|
|
|
|
|
* scale: 11
|
|
|
|
|
* this_or_that: 5
|
|
|
|
|
* written: 2
|
2026-06-25 11:37:10 -05:00
|
|
|
|
2026-06-25 18:48:37 -05:00
|
|
|
Suggested premium split:
|
2026-06-25 11:37:10 -05:00
|
|
|
|
2026-06-25 18:48:37 -05:00
|
|
|
* multi_choice: 98
|
|
|
|
|
* single_choice: 35
|
|
|
|
|
* scale: 24
|
|
|
|
|
* this_or_that: 10
|
|
|
|
|
* written: 8
|
2026-06-25 11:37:10 -05:00
|
|
|
|
2026-06-25 18:48:37 -05:00
|
|
|
Free should feel useful, fun, and complete.
|
2026-06-25 11:40:56 -05:00
|
|
|
|
2026-06-25 18:48:37 -05:00
|
|
|
Premium should feel deeper, richer, and more varied.
|
2026-06-25 11:40:56 -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
|
|
|
|
|
|
|
|
|
|
Special packs still must pass tone, duplicate, option, and schema review.
|
|
|
|
|
|
|
|
|
|
## Daily Single Choice Weekday Pack
|
|
|
|
|
|
|
|
|
|
Pack id:
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
daily_single_choice_weekly_v1
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Current compatibility file, if the app still expects it:
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
daily_fun_multiple_choice_v3.json
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Recommended file name after code cleanup:
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
daily_single_choice_weekly_v1.json
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Expected counts:
|
|
|
|
|
|
|
|
|
|
* total questions: 500
|
|
|
|
|
* free questions: 75
|
|
|
|
|
* premium questions: 425
|
|
|
|
|
* type count: 500 single_choice
|
|
|
|
|
|
|
|
|
|
These counts are a special daily pack exception. Do not use the standard 250 question mix for this file.
|
|
|
|
|
|
|
|
|
|
Rules:
|
|
|
|
|
|
|
|
|
|
* every question must be single_choice
|
|
|
|
|
* every question must have 4 to 6 options
|
|
|
|
|
* every question must have exactly one weekday tag
|
|
|
|
|
* every option must answer the prompt
|
|
|
|
|
* no therapy worksheet tone
|
|
|
|
|
* no wellness survey tone
|
|
|
|
|
* no repeated 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
|
|
|
|
|
|
|
|
|
|
Weekday lineup:
|
|
|
|
|
|
|
|
|
|
| Day | Theme | Purpose |
|
|
|
|
|
|---|---|---|
|
|
|
|
|
| Monday | Mood Check Monday | Pick what kind of day the relationship needs |
|
|
|
|
|
| Tuesday | Tiny Win Tuesday | Pick one small thing to do together |
|
|
|
|
|
| Wednesday | Real One Wednesday | Pick the most honest answer |
|
|
|
|
|
| Thursday | Laugh It Off Thursday | Pick something silly or low pressure |
|
|
|
|
|
| Friday | Flirty Friday | Pick something playful, sweet, or date like |
|
|
|
|
|
| Saturday | Side Quest Saturday | Pick a tiny adventure or date idea |
|
|
|
|
|
| Sunday | Slow Burn Sunday | Pick a warm intimacy or closeness answer |
|
|
|
|
|
|
|
|
|
|
## Daily Pack Writing Workflow
|
|
|
|
|
|
|
|
|
|
Do not write 500 daily questions in one pass.
|
|
|
|
|
|
|
|
|
|
Use this process:
|
|
|
|
|
|
|
|
|
|
1. Write 20 to 30 sample questions for one weekday.
|
|
|
|
|
2. Review tone before scaling.
|
|
|
|
|
3. Remove therapy coded words.
|
|
|
|
|
4. Confirm every option answers the prompt.
|
|
|
|
|
5. Check opening variety.
|
|
|
|
|
6. Check exact option list reuse.
|
|
|
|
|
7. Only then write the next batch.
|
|
|
|
|
8. After all weekdays are drafted, read 30 random questions aloud.
|
|
|
|
|
9. Reject the pack if it sounds repetitive, clinical, generic, or AI written.
|
|
|
|
|
|
2026-06-25 18:48:37 -05:00
|
|
|
## Emotional Mix
|
2026-06-25 11:37:10 -05:00
|
|
|
|
2026-06-30 21:24:56 -05:00
|
|
|
Every standard category should roughly include:
|
2026-06-25 11:37:10 -05:00
|
|
|
|
2026-06-25 18:48:37 -05:00
|
|
|
* 35 percent playful
|
|
|
|
|
* 25 percent everyday relationship
|
|
|
|
|
* 20 percent meaningful conversation
|
|
|
|
|
* 10 percent future dreams and planning
|
|
|
|
|
* 10 percent deeper vulnerability
|
2026-06-25 11:37:10 -05:00
|
|
|
|
2026-06-25 18:48:37 -05:00
|
|
|
Never group heavy questions together.
|
2026-06-25 11:40:56 -05:00
|
|
|
|
2026-06-25 18:48:37 -05:00
|
|
|
Every category must include lighter moments.
|
2026-06-25 11:40:56 -05:00
|
|
|
|
2026-06-30 21:24:56 -05:00
|
|
|
Daily packs should lean more playful, practical, and low pressure than standard category packs.
|
|
|
|
|
|
2026-06-25 11:40:56 -05:00
|
|
|
## Rewrite Rules
|
2026-06-25 11:37:10 -05:00
|
|
|
|
|
|
|
|
For every category:
|
|
|
|
|
|
2026-06-30 21:24:56 -05:00
|
|
|
* rewrite every question from scratch
|
|
|
|
|
* keep category ids unless renaming is planned with app code
|
|
|
|
|
* use conversational language
|
|
|
|
|
* avoid therapy wording
|
|
|
|
|
* avoid survey wording
|
|
|
|
|
* avoid repetitive templates
|
|
|
|
|
* use 4 to 6 options for choice questions
|
|
|
|
|
* keep written questions rare
|
|
|
|
|
* add fun to every category
|
|
|
|
|
* make every category feel different
|
|
|
|
|
* reject questions that feel generated
|
2026-06-25 11:37:10 -05:00
|
|
|
|
2026-06-25 11:40:56 -05:00
|
|
|
## Rewrite Order
|
2026-06-25 11:37:10 -05:00
|
|
|
|
|
|
|
|
1. fun
|
|
|
|
|
2. date_night
|
|
|
|
|
3. quality_time
|
|
|
|
|
4. communication
|
|
|
|
|
5. gratitude
|
|
|
|
|
6. future
|
|
|
|
|
7. home_life
|
|
|
|
|
8. values
|
|
|
|
|
9. stress
|
|
|
|
|
10. money
|
|
|
|
|
11. boundaries
|
|
|
|
|
12. conflict
|
|
|
|
|
13. conflict_repair
|
|
|
|
|
14. trust
|
|
|
|
|
15. rebuilding_trust
|
|
|
|
|
16. difficult_conversations
|
|
|
|
|
17. emotional_intimacy
|
|
|
|
|
18. physical_intimacy
|
|
|
|
|
19. couple_intimacy
|
|
|
|
|
20. sex_and_desire
|
|
|
|
|
21. sexual_preferences
|
2026-06-30 21:24:56 -05:00
|
|
|
22. daily_single_choice_weekly_v1
|
2026-06-25 11:37:10 -05:00
|
|
|
|
2026-06-25 18:48:37 -05:00
|
|
|
## Serious Category Rule
|
|
|
|
|
|
|
|
|
|
Serious categories still need warmth, humor, and relief.
|
|
|
|
|
|
|
|
|
|
Do not make conflict, trust, boundaries, or intimacy feel like couples counseling homework.
|
|
|
|
|
|
|
|
|
|
Use soft, safe, specific wording.
|
|
|
|
|
|
2026-06-30 21:24:56 -05:00
|
|
|
## Validation Rules for Standard Packs
|
2026-06-25 11:37:10 -05:00
|
|
|
|
2026-06-30 21:24:56 -05:00
|
|
|
Every standard rewritten pack must pass:
|
2026-06-25 11:37:10 -05:00
|
|
|
|
2026-06-25 18:48:37 -05:00
|
|
|
* valid JSON
|
|
|
|
|
* exactly 250 questions
|
|
|
|
|
* exactly 75 free
|
|
|
|
|
* exactly 175 premium
|
|
|
|
|
* exactly 140 multi_choice
|
|
|
|
|
* exactly 50 single_choice
|
|
|
|
|
* exactly 35 scale
|
|
|
|
|
* exactly 15 this_or_that
|
|
|
|
|
* exactly 10 written
|
|
|
|
|
* at least 76 percent choice based
|
|
|
|
|
* valid depth values only: light, medium, deep
|
|
|
|
|
* no numeric depth values
|
|
|
|
|
* no malformed keys
|
|
|
|
|
* no duplicate ids
|
|
|
|
|
* no duplicate question text
|
|
|
|
|
* every choice question has options
|
|
|
|
|
* every scale question has scale configuration
|
|
|
|
|
* every written question has answer configuration
|
|
|
|
|
* no placeholder text
|
|
|
|
|
* no therapy worksheet tone
|
|
|
|
|
* no obvious AI repetition
|
|
|
|
|
|
2026-06-30 21:24:56 -05:00
|
|
|
## Validation Rules for Special Daily Packs
|
|
|
|
|
|
|
|
|
|
Every daily single choice weekday pack must pass:
|
|
|
|
|
|
|
|
|
|
* valid JSON
|
|
|
|
|
* metadata counts match actual counts
|
|
|
|
|
* exactly 500 questions unless a new documented app decision changes the count
|
|
|
|
|
* exactly 75 free questions
|
|
|
|
|
* exactly 425 premium questions
|
|
|
|
|
* every question is single_choice
|
|
|
|
|
* every choice question has 4 to 6 options
|
|
|
|
|
* every question has exactly one weekday tag
|
|
|
|
|
* no duplicate ids
|
|
|
|
|
* no duplicate question text
|
|
|
|
|
* no exact repeated option lists
|
|
|
|
|
* no placeholder text
|
|
|
|
|
* no therapy worksheet tone
|
|
|
|
|
* no wellness survey tone
|
|
|
|
|
* no obvious AI repetition
|
|
|
|
|
|
2026-06-25 18:48:37 -05:00
|
|
|
## Final Rule
|
|
|
|
|
|
|
|
|
|
The schema only proves the file can load.
|
|
|
|
|
|
|
|
|
|
It does not prove the questions are good.
|
|
|
|
|
|
|
|
|
|
Quality review is mandatory before commit.
|