docs(01-06): author anti-FOMO doctrine consolidating PROJECT/REQUIREMENTS/CLAUDE/PITFALLS constraints (PIPE-05, UX-13)

- Banned Mechanics table enumerates 17 banned patterns (gacha, lootboxes,
  narrative gating, daily login, streaks, limited-time, energy/stamina,
  rewarded ads, push notifications, loss-aversion copy, countdown timers,
  Season skipping, time-skip purchases, hint systems, mobile nag UX, etc.)
- Allowed Engagement section names the 4 affordances that respect presence
  rather than demand it (Memory Storm opt-in, while-you-were-away letter,
  tab-title bloom indicator, Season-transition save-export reminder)
- Review Checklist provides 3 questions for every UX/copy/monetization change
- Source Documents section cites PROJECT.md, REQUIREMENTS.md, CLAUDE.md,
  .planning/research/PITFALLS.md
- Per CONTEXT D-07: doctrine is enforced by review, NOT by lint rule on UX
  strings (the doc explicitly notes this and proposes no lint rule)
- Per CONTEXT D-09: lives in .planning/ alongside other internal design docs
This commit is contained in:
2026-05-08 23:29:01 -04:00
parent 1e99356b27
commit dddadbc1ac
+75
View File
@@ -0,0 +1,75 @@
# Anti-FOMO Doctrine
*Phase 1 deliverable per PIPE-05 + UX-13. Consolidated from PROJECT.md, REQUIREMENTS.md, CLAUDE.md, and .planning/research/PITFALLS.md #9.*
This document is referenced at every UX, monetization, and copy review going
forward. It enumerates mechanics this game does not use, with the reason for
each, so the answer to a "should we add X?" question is in writing rather
than relitigated.
Per CONTEXT D-07: this doctrine is enforced by **review**, not by lint rules
on UX strings. The reviewer (you, at every UX/monetization/copy decision)
consults this list and rejects or rewrites any change that violates it.
## Banned Mechanics
| Mechanic | Why Banned |
|----------|------------|
| Gacha mechanics | Directly contradicts the game's thematic argument that complex things cannot be reduced to simple transactions. (PROJECT.md, REQUIREMENTS.md Out of Scope, CLAUDE.md) |
| Lootboxes | Same reason as gacha — undermines the story's monetization-as-meaning argument. |
| Narrative gating behind purchase | The story IS the product; story content is never paid. |
| Random-drop monetization | All cosmetics must be deterministic catalog purchases. |
| Daily login bonuses | Presence is not a debt the game collects. |
| Login streaks | Skipping a day is allowed, even encouraged. |
| Limited-time / time-limited content | The game's premise is *what persists*. |
| Energy / stamina systems | Anti-cozy gating that interrupts contemplative play. |
| Rewarded ads | Anti-cozy; tonally incoherent with a contemplative grief-narrative. |
| Re-engagement push notifications | Memory Storm opt-in is the **only** allowed notification class. |
| Loss-aversion copy ("you'll lose your X") | Tonally incompatible with cozy/contemplative. |
| Visible countdown timers in core UI | The cello is the timer. The seasons are the timer. Not a digit. |
| "Don't miss out" / "limited time" / "only X hours left" copy | Bannable phrases at copy review. |
| Season *skipping* (vs. Season *acceleration*) | Players must never miss authored story beats; acceleration is allowed, skipping is forbidden. |
| Time-skip purchases that bypass real-time | Real-time IS the metaphor for memory; skip-time would violate mechanic-as-metaphor doctrine. |
| Hint system / objective tracker | Discovery-driven progression (A Dark Room rule); explicit objectives violate the tone. |
| Mobile-style nag UX | Cozy audience expects respect; nag patterns will tank reviews. |
## Allowed Engagement
The following engagement affordances are explicitly **allowed** because they respect
presence rather than demand it:
- **Memory Storm opt-in notifications** — the single allowed notification class.
Player must explicitly opt in. Never daily, never marketing, never streak-based.
- **"While you were away" letter on return** — written in Lura's voice, never a stat dump
(UX-02). Describes what bloomed, what the wind brought; never "fragments per hour."
- **Tab-title bloom indicator** when a fragment is ready (UX-09, Phase 8) — passive
surfacing, no notification.
- **Save-export reminder after Season transitions** — relationship-saving, not nag.
## Review Checklist
When reviewing any UX, copy, monetization, or feature change, ask three questions:
1. **Does this create urgency around presence rather than around content?** If yes → reject.
2. **Does this frame absence as loss?** If yes → rewrite or reject.
3. **Would removing this from the game make it less *cozy*?** If no → reconsider whether the change belongs.
Additional sanity checks for monetization specifically:
- Does this mechanic gate any story content? → reject (PROJECT.md hard constraint).
- Is this random-drop / gacha / lootbox shaped? → reject.
- Is this a "limited-time" anything? → reject.
## Source Documents
This doctrine consolidates constraints already locked in:
- **PROJECT.md** § "Out of Scope" — anti-features (gacha, lootboxes, narrative gating, Season skipping, generic flora, combat, multiplayer, voiced dialogue, named Keeper, generic cosmetics)
- **REQUIREMENTS.md** UX-13 + § "Out of Scope" table — 24 explicit exclusions
- **CLAUDE.md** § "Hard Thematic Constraints (Out of Scope by Design)" — 13 thematic exclusions, no FOMO push notifications, no daily login bonuses, no streaks, no limited-time, no energy/stamina
- **.planning/research/PITFALLS.md** § "Pitfall 9: FOMO/Nag Mechanics Violate Cozy Tone" — rationale + warning signs
---
*Authored: Phase 1 deliverable. Updates: append-only — entries can be added (new
banned patterns identified) but never removed without surfacing the change for review.*