A private, friends-only online party game. Players answer questions, guess who wrote each answer, and vote on superlatives.
- Python 70.9%
- HTML 29.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
- New: spec-amendments/2026-09-11-playtest-updates.md — server-random superlatives, 60s result timer + Next Round bypass, click-timer +15s, per-answer guesser rows + round/total scoreboard with tie-aware medals, decoy wire-value fix, superlative list additions, Reader button rename - DECISIONS.md: decisions 74-77 (random superlative, result 60s, timer extension, result view guessers/scoreboard) - CURRENT.md: 2026-09-11 playtest session summary |
||
| data | ||
| spec-amendments | ||
| validation | ||
| .gitignore | ||
| app-about.html | ||
| blocklist.json | ||
| config.json | ||
| CONTEXTMAP.md | ||
| CURRENT.md | ||
| DECISIONS.md | ||
| game-design-spec.md | ||
| README.md | ||
| scrape.py | ||
| taxonomy.py | ||
Who Said That?
A private, friends-only online party game. Players answer questions, guess who wrote each answer, and vote on superlatives ("Classic Karl", "Grossest"...). Built on top of a daily AskReddit scrape for question + decoy content.
Repositories
Two repos split the project:
| Repo | Contents | Visibility |
|---|---|---|
mercury/WhoSaidThat (this) |
Spec, design decisions, content pipeline (scrape.py → data/deck.json), validation app |
private |
mercury/whosaidthat-app |
The game application — Go backend + React web client | public |
The app repo consumes data/deck.json (via scripts/sync-deck.sh there) and
implements game-design-spec.md. App development state lives in the app
repo's own four files.
How to work in this repository (read this first)
This project uses progressive context shaping. The four files at the root are the contract between you (the agent) and the human running the project:
| File | Purpose | You should |
|---|---|---|
CURRENT.md |
The live state of the project | Read first. Obey it. Update it after every consequential change. |
CONTEXTMAP.md |
Map of what exists and where | Consult it to find files. Help keep it accurate. |
DECISIONS.md |
Decision log with rationale | Add entries when a decision changes. Never use old decisions as current guidance. |
README.md |
This file — how the method works | Internalize it once. |
Rules of engagement
- CURRENT.md is authoritative. If it says X and your instincts say Y, reconcile with the human before proceeding. Do not silently override it.
- Update CURRENT.md when the state changes. After you finish a meaningful chunk of work, reflect the new reality: what is done, what is next, what decisions changed. Keep it short enough that a human will actually read it.
- Add to DECISIONS.md, don't rewrite history. When a decision changes, record the new decision AND the reason. Old decisions stay in the log as history — they just stop being current guidance.
- CONTEXTMAP.md is a map, not a payload. The agent does not need every file's contents in context. It needs to know where to look. If you create or move files, update the map.
- Stop conditions matter. CURRENT.md should say when a run should stop or return to the human. Respect those.
- Ask before irreversible actions (deleting data, publishing, spending). The human reviews hands-on.