This commit is contained in:
null 2026-06-21 19:47:57 -05:00
parent 5663daad89
commit 66bbbed7b7
1 changed files with 205 additions and 219 deletions

View File

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