This commit is contained in:
null 2026-06-21 19:57:23 -05:00
parent b302fe4aad
commit 69bcd39645
1 changed files with 359 additions and 205 deletions

View File

@ -4,7 +4,7 @@
This guide defines how Closer question packs should be written, reviewed, and validated. This guide defines how Closer question packs should be written, reviewed, and validated.
Closer is a private couples app. The questions should help two people feel closer through honest, warm, simple conversation. The app should not sound robotic, clinical, cheesy, judgmental, overly sexual, or like therapy homework. Closer is a private couples app. The questions should help two people feel closer through honest, warm, simple conversation. The app should not sound robotic, clinical, cheesy, judgmental, or like therapy homework.
Use this guide before writing or rewriting any question JSON file. Use this guide before writing or rewriting any question JSON file.
@ -14,30 +14,30 @@ Use this guide before writing or rewriting any question JSON file.
Closer should sound: Closer should sound:
- Warm - warm
- Private - private
- Plainspoken - plainspoken
- Emotionally honest - emotionally honest
- Lightly playful when appropriate - lightly playful when appropriate
- Easy to answer - easy to answer
- Respectful of both partners - respectful of both partners
- Safe and non-pressuring - safe and non-pressuring
Closer should not sound: Closer should not sound:
- Robotic - robotic
- Overly formal - overly formal
- Fake-deep - fake-deep
- Preachy - preachy
- Judgmental - judgmental
- Clinical - clinical
- Like a therapist worksheet - like a therapist worksheet
- Like a corporate wellness app - like a corporate wellness app
- Sexually pushy - sexually pushy
- Repetitive - repetitive
- Awkwardly generated - awkwardly generated
## Voice Rule ## Voice rule
A good Closer question should sound like something a real person could comfortably ask their partner. A good Closer question should sound like something a real person could comfortably ask their partner.
@ -65,12 +65,14 @@ What is one money habit we could agree on that would make things feel calmer bet
Every question should pass this test: Every question should pass this test:
- Would a real couple actually answer this? ```bat
- Is it clear in one read? ECHO Would a real couple actually answer this?
- Does it sound natural out loud? ECHO Is it clear in one read?
- Does it invite honesty without blaming either partner? ECHO Does it sound natural out loud?
- Does it fit the pack topic? ECHO Does it invite honesty without blaming either partner?
- Does it avoid sounding like AI-generated filler? ECHO Does it fit the pack topic?
ECHO Does it avoid sounding like AI generated filler?
```
If the answer is no, rewrite it. If the answer is no, rewrite it.
@ -103,38 +105,30 @@ This makes me feel accused.
--- ---
# 4. Pack Purpose # 4. Category Purpose
Every pack needs a clear job. Every pack needs a clear purpose.
Before writing a pack, define: Before writing a pack, define:
- Pack name ```bat
- Pack purpose SET PACK_NAME=
- How the user should feel while answering SET PACK_PURPOSE=
- What kind of connection the pack should create SET USER_FEELING=
- What free users should get from the pack SET RELATIONSHIP_OUTCOME=
- What premium users should get from the pack SET FREE_VALUE=
SET PREMIUM_VALUE=
```
Example: Example:
```md ```bat
Pack name: Date Night SET PACK_NAME=Date Night
SET PACK_PURPOSE=Help couples plan, enjoy, and remember time together.
Pack purpose: SET USER_FEELING=Playful, wanted, relaxed, connected.
Help couples plan, enjoy, and remember time together. SET RELATIONSHIP_OUTCOME=More intentional time together without pressure.
SET FREE_VALUE=Easy, fun, low-pressure date questions.
User feeling: SET PREMIUM_VALUE=Deeper romance, planning preferences, rut-breaking, and memory-making prompts.
Playful, wanted, relaxed, connected.
Relationship outcome:
More intentional time together without pressure.
Free value:
Easy, fun, low-pressure date questions.
Premium value:
Deeper romance, planning preferences, rut-breaking, and memory-making prompts.
``` ```
--- ---
@ -179,12 +173,14 @@ What kind of attention from me makes you feel closest?
What do you miss about the way we used to spend time together? What do you miss about the way we used to spend time together?
``` ```
## Depth Rules ## Depth rules
- Light questions should not feel shallow or useless. ```bat
- Medium questions should not feel like a confrontation. ECHO Light questions should not feel shallow or useless.
- Deep questions should not feel like a trap. ECHO Medium questions should not feel like a confrontation.
- Sensitive questions should never pressure a partner to disclose, forgive, explain, or perform. ECHO Deep questions should not feel like a trap.
ECHO Sensitive questions should never pressure a partner to disclose, forgive, explain, or perform.
```
--- ---
@ -194,9 +190,9 @@ Each question type should have a purpose.
## written ## written
Use written questions for stories, memories, reflection, emotional honesty, and open-ended answers. Use for stories, memories, reflection, emotional honesty, and open-ended answers.
Good examples: Good written examples:
```text ```text
What is one small thing I do that makes you feel cared for? What is one small thing I do that makes you feel cared for?
@ -220,9 +216,9 @@ What is one thing we could do this week that would make us feel more like a team
## single_choice ## single_choice
Use single-choice questions for preferences and simple decisions. Use for preferences and simple decisions.
Good example: Good single-choice example:
```json ```json
{ {
@ -240,19 +236,20 @@ Good example:
Rules: Rules:
- Options should be short. ```bat
- Options should not overlap too much. ECHO Options should be short.
- Options should sound like real choices. ECHO Options should not overlap too much.
- Avoid more than 6 options unless truly needed. ECHO Options should sound like real choices.
- Option IDs should be clean, neutral, and stable. ECHO Avoid more than 6 options unless truly needed.
```
--- ---
## multi_choice ## multi_choice
Use multi-choice questions when more than one answer can be true. Use when more than one answer can be true.
Good example: Good multi-choice example:
```json ```json
{ {
@ -271,18 +268,19 @@ Good example:
Rules: Rules:
- Multi-choice prompts should say or imply that multiple answers are okay. ```bat
- Options should not shame either partner. ECHO Multi-choice prompts should say or imply that multiple answers are okay.
- Include practical and emotional options when possible. ECHO Options should not shame either partner.
- Avoid options that are almost the same thing. ECHO Include practical and emotional options when possible.
```
--- ---
## scale ## scale
Use scale questions for comfort level, closeness, energy, readiness, satisfaction, or frequency. Use for comfort level, closeness, energy, readiness, satisfaction, or frequency.
Good example: Good scale example:
```json ```json
{ {
@ -299,10 +297,11 @@ Good example:
Rules: Rules:
- Scale labels should be gentle and neutral. ```bat
- Do not make the low end sound bad or shameful. ECHO Scale labels should be gentle and neutral.
- Scale questions should measure one thing only. ECHO Do not make the low end sound bad or shameful.
- Avoid loaded or accusatory wording. ECHO Scale questions should measure one thing only.
```
Bad: Bad:
@ -320,9 +319,9 @@ How much would some intentional time together help us right now?
## this_or_that ## this_or_that
Use this-or-that questions for fast, playful, low-pressure choices. Use for fast, playful, low-pressure choices.
Good examples: Good this-or-that examples:
```text ```text
Planned date or spontaneous date? Planned date or spontaneous date?
@ -333,10 +332,11 @@ Sunset walk or late-night drive?
Rules: Rules:
- This-or-that prompts should be quick. ```bat
- Avoid choices that imply one partner is wrong. ECHO This-or-that prompts should be quick.
- Use this type most often in fun, date, intimacy, home, and lifestyle packs. ECHO Avoid choices that imply one partner is wrong.
- Do not overuse it in serious conflict or trust packs. ECHO Best used in fun, date, intimacy, home, and lifestyle packs.
```
--- ---
@ -346,23 +346,25 @@ Free questions should prove the app is worth using.
Premium questions should feel deeper, more specific, more personalized, more playful, or more valuable. Premium questions should feel deeper, more specific, more personalized, more playful, or more valuable.
## Free Questions Should Be ## Free questions should be:
- Easy to answer ```bat
- Warm and useful ECHO Easy to answer.
- Good enough to create trust ECHO Warm and useful.
- Low-pressure ECHO Good enough to create trust.
- Representative of the pack ECHO Low-pressure.
- Strong enough that the app feels valuable before payment ECHO Representative of the pack.
```
## Premium Questions Should Be ## Premium questions should be:
- More specific ```bat
- More thoughtful ECHO More specific.
- More emotionally useful ECHO More thoughtful.
- More creative ECHO More emotionally useful.
- More likely to start a meaningful conversation ECHO More creative.
- Worth paying for ECHO More likely to start a meaningful conversation.
```
Premium must not be only “more of the same.” Premium must not be only “more of the same.”
@ -382,9 +384,9 @@ Premium: What kind of date would make you feel pursued, not just scheduled?
--- ---
# 8. Phrases to Avoid # 8. Banned or Overused Phrases
Avoid these unless there is a very good reason: Avoid these unless there is a very good reason.
```text ```text
What boundary around... What boundary around...
@ -405,7 +407,7 @@ navigate conflict
honor your needs honor your needs
``` ```
These phrases are not always wrong, but they quickly make the app sound generic, clinical, or AI-written. These phrases are not always wrong, but they quickly make the app sound generic or clinical.
Use natural language instead. Use natural language instead.
@ -437,9 +439,9 @@ What is one small thing that makes you want to be closer to me?
# 9. Tone Rules by Pack Type # 9. Tone Rules by Pack Type
## Fun Packs ## Fun packs
Fun packs should feel light, playful, and easy. Should feel light, playful, and easy.
Use: Use:
@ -457,9 +459,9 @@ How can we optimize shared leisure experiences?
--- ---
## Date Night Packs ## Date Night packs
Date Night packs should feel romantic, playful, practical, and low-pressure. Should feel romantic, playful, practical, and low-pressure.
Use: Use:
@ -477,9 +479,9 @@ What date structure would best support our connection goals?
--- ---
## Boundaries Packs ## Boundaries packs
Boundaries packs should feel respectful, calm, and non-accusing. Should feel respectful, calm, and non-accusing.
Use: Use:
@ -497,9 +499,9 @@ What boundary around boundaries would support emotional safety?
--- ---
## Conflict Packs ## Conflict packs
Conflict packs should feel safe, repair-focused, and not blaming. Should feel safe, repair-focused, and not blaming.
Use: Use:
@ -517,9 +519,9 @@ What do I always do wrong during conflict?
--- ---
## Trust Packs ## Trust packs
Trust packs should feel careful, honest, and non-punishing. Should feel careful, honest, and non-punishing.
Use: Use:
@ -537,9 +539,9 @@ What have I done to make you unable to trust me?
--- ---
## Sex, Desire, and Physical Intimacy Packs ## Sex, desire, and physical intimacy packs
Sex, desire, and physical intimacy packs should feel adult, consent-based, respectful, optional, and never pushy. Should feel adult, consent-based, respectful, optional, and never pushy.
Use: Use:
@ -559,13 +561,15 @@ Why do you not want me more?
Sensitive packs should include: Sensitive packs should include:
- Consent-first wording ```bat
- No pressure ECHO Consent-first wording.
- No shame ECHO No pressure.
- No assumptions about gender roles ECHO No shame.
- No assumptions about sex drive ECHO No assumptions about gender roles.
- No coercive language ECHO No assumptions about sex drive.
- No questions that pressure disclosure of trauma ECHO No coercive language.
ECHO No questions that pressure disclosure of trauma.
```
--- ---
@ -575,17 +579,18 @@ Closer is not therapy, counseling, crisis support, or medical advice.
Questions must not: Questions must not:
- Encourage staying in unsafe relationships ```bat
- Pressure forgiveness ECHO Encourage staying in unsafe relationships.
- Minimize abuse ECHO Pressure forgiveness.
- Encourage sexual pressure ECHO Minimize abuse.
- Ask users to disclose trauma before they are ready ECHO Encourage sexual pressure.
- Diagnose a partner ECHO Ask users to disclose trauma before they are ready.
- Tell a partner what they owe ECHO Diagnose a partner.
- Encourage monitoring, control, or isolation ECHO Tell a partner what they owe.
- Frame controlling behavior as love or boundaries ECHO Encourage monitoring, control, or isolation.
```
## Abuse-Sensitive Rule ## Abuse-sensitive rule
Avoid questions that frame controlling behavior as a normal boundary. Avoid questions that frame controlling behavior as a normal boundary.
@ -601,7 +606,7 @@ Better:
What helps you feel secure in our relationship while still respecting each other's independence? What helps you feel secure in our relationship while still respecting each other's independence?
``` ```
## Consent Rule ## Consent rule
Bad: Bad:
@ -619,13 +624,13 @@ What kind of affection feels good to you when you are open to closeness?
# 11. Wording Rules # 11. Wording Rules
## Keep Questions Short ## Keep questions short
Aim for 8 to 22 words when possible. Aim for 8 to 22 words when possible.
Longer questions are okay only when the topic needs softness or context. Long questions are okay only when the topic needs softness or context.
## Ask One Thing at a Time ## Ask one thing at a time
Bad: Bad:
@ -639,7 +644,7 @@ Better:
What family boundary would make our relationship feel more protected? What family boundary would make our relationship feel more protected?
``` ```
## Avoid Stacked Emotional Words ## Avoid stacked emotional words
Bad: Bad:
@ -653,7 +658,7 @@ Better:
What helps you feel respected by me? What helps you feel respected by me?
``` ```
## Avoid Vague “More” Questions ## Avoid vague “more” questions
Bad: Bad:
@ -667,7 +672,7 @@ Better:
What is one thing we could do tonight to feel closer? What is one thing we could do tonight to feel closer?
``` ```
## Avoid Blame ## Avoid blame
Bad: Bad:
@ -685,26 +690,28 @@ What tends to make date night harder for you to enjoy?
# 12. JSON Quality Rules # 12. JSON Quality Rules
Every JSON file should pass these checks: Every JSON file should pass these checks.
- Valid JSON ```bat
- Category ID matches file purpose ECHO [ ] Valid JSON.
- Category title sounds user-facing ECHO [ ] Category id matches file purpose.
- Category access matches actual free/premium strategy ECHO [ ] Category title sounds user-facing.
- Metadata counts match actual question counts ECHO [ ] Category access matches actual free/premium strategy.
- All question IDs are unique ECHO [ ] Metadata counts match actual question counts.
- All question texts are unique ECHO [ ] All question IDs are unique.
- No near-duplicate blocks ECHO [ ] All question texts are unique.
- Type counts match metadata ECHO [ ] No near-duplicate blocks.
- Free/premium counts match metadata ECHO [ ] Type counts match metadata.
- Depth values are valid ECHO [ ] Free/premium counts match metadata.
- Access values are valid ECHO [ ] Depth values are valid.
- Options have unique IDs inside each question ECHO [ ] Access values are valid.
- Option IDs are neutral and clean ECHO [ ] Options have unique IDs inside each question.
- Scale labels are present when needed ECHO [ ] Option IDs are neutral and clean.
- No malformed keys like `m a x _ l e n g t h` ECHO [ ] Scale labels are present when needed.
- No placeholder text ECHO [ ] No malformed keys like m a x _ l e n g t h.
- No accidental old gendered IDs unless intentionally used ECHO [ ] No placeholder text.
ECHO [ ] No accidental old gendered IDs unless intentionally used.
```
Recommended access values: Recommended access values:
@ -745,20 +752,20 @@ this_or_that
For a 250-question pack: For a 250-question pack:
```text ```bat
Total questions: 250 SET TOTAL_QUESTIONS=250
Free questions: 75 SET FREE_QUESTIONS=75
Premium questions: 175 SET PREMIUM_QUESTIONS=175
Written: 150 SET WRITTEN=150
Single choice: 40 SET SINGLE_CHOICE=40
Multi choice: 20 SET MULTI_CHOICE=20
Scale: 25 SET SCALE=25
This-or-that: 15 SET THIS_OR_THAT=15
``` ```
This structure is acceptable if the current app expects those counts. This structure is acceptable if the current app expects those counts.
Quality matters more than exact counts. If a pack cannot support 250 good questions without filler, reduce the pack or split it. But quality matters more than exact counts. If a pack cannot support 250 good questions without filler, reduce the pack or split it.
--- ---
@ -768,16 +775,18 @@ Do not write all 250 questions in one creative pass.
Use this process: Use this process:
1. Define the pack purpose. ```bat
2. Define subtopics. ECHO Step 1: Define pack purpose.
3. Write 40 to 50 high-quality questions. ECHO Step 2: Define subtopics.
4. Review tone and repetition. ECHO Step 3: Write 40-50 high-quality questions.
5. Write the next batch. ECHO Step 4: Review tone and repetition.
6. Add choice, scale, and this-or-that questions. ECHO Step 5: Write the next batch.
7. Assign free/premium. ECHO Step 6: Add choice, scale, and this-or-that questions.
8. Assign depth. ECHO Step 7: Assign free/premium.
9. Validate JSON. ECHO Step 8: Assign depth.
10. Read the full file like a user. ECHO Step 9: Validate JSON.
ECHO Step 10: Read the full file like a user.
```
--- ---
@ -785,7 +794,7 @@ Use this process:
Each pack should have subtopics to prevent repetition. Each pack should have subtopics to prevent repetition.
## Example: Date Night Example for Date Night:
```text ```text
easy dates easy dates
@ -801,13 +810,13 @@ seasonal dates
surprises surprises
feeling wanted feeling wanted
getting out of a rut getting out of a rut
busy-life dates after-kids / busy life
date-night stress date-night stress
memories memories
future date dreams future date dreams
``` ```
## Example: Boundaries Example for Boundaries:
```text ```text
alone time alone time
@ -824,7 +833,7 @@ conflict
tone of voice tone of voice
physical affection physical affection
private conversations private conversations
parenting or family roles parenting/family roles
emotional bandwidth emotional bandwidth
plans and scheduling plans and scheduling
personal belongings personal belongings
@ -864,12 +873,14 @@ Before finalizing, read 25 random questions out loud.
Reject questions that: Reject questions that:
- Sound stiff ```bat
- Sound embarrassing for the wrong reason ECHO Sound stiff.
- Sound like a therapy script ECHO Sound embarrassing for the wrong reason.
- Sound too much like another question ECHO Sound like a therapy script.
- Take too long to understand ECHO Sound too much like another question.
- Would make a normal couple roll their eyes ECHO Take too long to understand.
ECHO Would make a normal couple roll their eyes.
```
--- ---
@ -877,28 +888,31 @@ Reject questions that:
When Claude rewrites a pack: When Claude rewrites a pack:
1. Read this guide first. ```bat
2. Read the existing JSON file. ECHO Read the existing JSON first.
3. Preserve the required schema unless told otherwise. ECHO Preserve required schema unless told otherwise.
4. Preserve required counts unless told otherwise. ECHO Preserve required counts unless told otherwise.
5. Improve wording, variety, and product feel. ECHO Improve wording, variety, and product feel.
6. Do not create repetitive template blocks. ECHO Do not create repetitive template blocks.
7. Do not use weird phrasing. ECHO Do not use weird phrasing.
8. Do not overuse therapy language. ECHO Do not overuse therapy language.
9. Do not make sensitive prompts coercive. ECHO Do not make sensitive prompts coercive.
10. Validate the final JSON. ECHO Validate the final JSON.
11. Report count totals. ECHO Report count totals.
12. Report any schema changes. ECHO Report any schema changes.
```
Claude should not say a file is done unless: Claude should not say a file is done unless:
- The JSON parses. ```bat
- The counts match. ECHO The JSON parses.
- IDs are unique. ECHO The counts match.
- Question texts are unique. ECHO IDs are unique.
- Free/premium counts match. ECHO Question texts are unique.
- Type counts match. ECHO Free/premium counts match.
- The tone guide was followed. ECHO Type counts match.
ECHO The tone guide was followed.
```
--- ---
@ -977,8 +991,148 @@ Private.
Clear. Clear.
Useful. Useful.
Specific. Specific.
Enjoyable.
Respectful. Respectful.
Worth paying for. Worth paying for.
``` ```
If a question does not help a couple feel closer, understand each other, laugh together, plan something, repair something, or feel safer with each other, it probably does not belong in Closer. If a question does not help a couple feel closer, understand each other, laugh together, plan something, repair something, or feel safer with each other, it probably does not belong in Closer.
---
# 4. Fun-First Rule
Most Closer questions should feel enjoyable to answer.
That does not mean every question has to be silly, flirty, or light. Some packs cover serious topics like boundaries, trust, money, conflict, sex, and repair. But even serious packs should not feel like homework, interrogation, therapy intake forms, or emotional labor.
The user should usually feel one or more of these after answering:
```text
Interested
Amused
Comforted
Wanted
Understood
Curious
Relieved
Closer
```
A Closer question should avoid making users feel:
```text
Accused
Tested
Pressured
Drained
Embarrassed in a bad way
Like they are doing therapy homework
Like they are about to start a fight
```
## Fun-First Balance by Pack Type
Use this as the default balance unless the pack has a special reason to be different.
| Pack type | Light / playful / easy | Meaningful / practical | Deeper |
|---|---:|---:|---:|
| Fun, Date Night, Home Life | 6070% | 2030% | 10% |
| Boundaries, Trust, Conflict | 3040% | 4050% | 1020% |
| Sex, Desire, Physical Intimacy | 4050% | 3040% | 1020% |
| Money, Future, Values | 3545% | 4050% | 1015% |
## Fun Does Not Mean Shallow
A fun question can still reveal something real.
Weak:
```text
What is your favorite color?
```
Better:
```text
What color would you pick for a room that felt like us?
```
Weak:
```text
What food do you like?
```
Better:
```text
What meal would instantly make a night together feel better?
```
Weak:
```text
What date sounds fun?
```
Better:
```text
What is a low-effort date that would still make you excited to see me?
```
## Serious Does Not Mean Heavy
Even serious topics should be written in a way that feels safe and answerable.
Too heavy:
```text
What unresolved emotional wound affects our relationship dynamic?
```
Better:
```text
What is one thing we could handle more gently with each other?
```
Too confrontational:
```text
What do I do that makes you not trust me?
```
Better:
```text
What small action helps you feel more secure with me?
```
Too clinical:
```text
What communication structure would support healthier conflict resolution?
```
Better:
```text
When we disagree, what helps us slow down before it turns into a fight?
```
## Fun-First Review Questions
Before finalizing a pack, ask:
- Would this pack feel enjoyable to open after a long day?
- Are there enough easy questions to keep users from feeling drained?
- Would a couple want to compare answers?
- Does the pack include curiosity, play, warmth, or sweetness?
- Are the deeper questions spaced out enough?
- Does the pack still feel like Closer, not therapy homework?
If a pack feels too heavy, add more light, playful, practical, or curiosity-based questions.