Root rulebooks live at repo root, loaded at session start
Design Decisions
Architectural rules + design system + feed design for the mobile app. Gate system, verification levels, vote-state behavior, share system, VOTD overlay lifecycle, and the authoritative feed-order table. (Root file alongside CLAUDE.md.)
Key sections
- Centralized gate system
- Verification levels
- Voted-state card behavior
- VOTD overlay lifecycle
- Share system
- Feed order — final
UX_Design look, feel & words
Brand Voice & Editorial Standards
Canonical public-web voice (Rule #23) — third-person VOTD voice, loaded-term avoidance, headline discipline, the "voice"/"vote" framing, and where each rule applies. Vote-item copy voice is referenced out to policies/voice.md.
Contents
- Page-level structure framework (added 2026-05-01)
- Voice — complementary action verb (resolved 2026-05-03)
- On the word "vote" (research + decision, 2026-05-03)
- Rule #1 — Third-person VOTD voice. No "we" / "our" / "us".
- Rule #2 — Avoid loaded or politically-triggering terminology.
- Rule #3 — Action-as-subject in headings.
- Rule #4 — Drop hedging language and meta-commentary.
- Rule #5 — "User" → "person" or "voter" where it lands cleaner.
- Rule #6 — Forward-looking purpose statements over defensive ones.
- Vote-item copy voice (canonical: apps/curation-agent/policies/voice.md)
- Application — what surfaces this rule applies to
- How to apply this when writing or reviewing copy
Terminology & Voice Guide
Canonical word choices, naming conventions, app-side type/enum reference, and prompt copy strings across all surfaces. The authority on what to call things. (Database schema now lives in schema.md.)
Platform Insights
Feed module structure, statistical significance model, insight series taxonomy, data publishing rules by stage, and open strategic questions for investors and civic partners.
Contents
- Daily Feed — 3-Tier Module Structure (agreed March 2026)
- Module Header / Evidence / CTA Pattern (design principle, agreed March 2026)
- FM.T1.16 — Top by Topic (TopicTopVoteCard)
- What Makes VOTD's Data Unique
- Statistical Significance Model
- What to Publish at Each Stage
- The Three Insight Types (permanent framework)
- The Three Launch Insights (agreed March 2026)
- Insights Breaker — Content & Series Spec (agreed March 2026)
- Platform Insight Module — Feed Design Notes
- Open Questions — Return to These
- Prompts for Future Sessions
Source & Research Attachments
How source material attaches to a vote item — tiers (link, preview, file, carousel), data model, community research contributions, domain trust signals and blacklisting. (Absorbed the former add-research-rules stub.)
Watch Experience
watchOS design intentions, architecture, and hard-won learnings — layout lessons, brand rules, complication behavior, and the WidgetKit refresh constraints.
Store Listings
Canonical app-store listing copy — names, subtitles, descriptions, and keyword sets for App Store / Play Store.
infra / data
Database Schema (V2)
The V2 Postgres data model, rebuilt from live introspection — the publication-path spine (workshop_* → sourced_queue → master_votes_cal_v2 → votes), core-table columns, live enums, foreign keys, RLS posture, legacy/frozen tables, and the mobile verification/access model.
infra / trust
Identity Verification & Vote Integrity
Signup-time identity verification (the entry gate) merged with vote integrity (what happens after the gate) — the 3-step ladder, cost analysis, scaling tiers, and the cryptographic-commitment path to binding-election-grade guarantees.
Contents
- Purpose & scope
- Threat model
- Current state (closed testing, May 2026)
- The baseline 3-step verification (planned)
- Excluded populations (the cost of automated verification)
- Cost analysis — the honest version
- Validation scaling plan beyond baseline
- Manual triage (early-stage operating model)
- Brand & positioning implications
- Vote integrity — after the gate
- Open research items
- Cross-references
Signals
Trust and quality signal system for the admin — editorial signals on proposals, anomaly signals on users and voting patterns, user trust score model, and editorial workflow/assignment.
infra / admin
Admin Architecture
Canonical admin-app reference — the steady-state patterns established in the 2026-05-16 rebuild (react-query reads, optimistic mutations, realtime subscriptions, approve_draft RPC, v5 responsive layout) + the new-page checklist.
Admin Tool — page state reference
Older per-page wired/mock/stub reference, role model, environments, queue structure, editor actions. Consolidation into admin-architecture.md is parked until admin work settles (see backlog).
infra / curation sourcing → scoring → publish
V1 → V2 Cutover Audit
Current-state audit of the V2 pipeline — script inventory, what changed in the write-side cutover, and what's deprecated. The canonical "what's live now" curation reference.
V2 Publication Path Plan
The plan for the V2 publication path — how approved sourced_queue rows reach master_votes_cal_v2 and the app, plus the deferred follow-ons (tally trigger, mock_id→uuid, CDN caching).
Unified Daily Promoter
Canonical reference for promote-v2-unified.mjs — per-geo capacity, gap-filling, fast-track cascade, and 25/25/50 tier calibration. The nightly sourced_queue → master_votes_cal_v2 promotion.
Contents
- What the promoter does
- Architecture — two primitive modules + the runner
- Per-geo capacity model — the production rule
- Fast-Track — end-to-end flow
- Tier-mix calibration — 25/25/50
- What was deprecated + why
- Schema dependencies
- Failure modes the unification closes — historical context
- Future work
- Cross-references
SERP-Density Methodology
How search-result density feeds the engagement score — the SERP probe, locale handling, and scoring contribution.
Contents
- 1. What we're measuring
- 2. Pipeline architecture
- 3. The probe mechanism
- 4. The 0-50 scale
- 5. The tool: websearch20250305
- 6. Geo-targeting (currently federal-only; state/municipal pending)
- 7. Cost and pacing
- 8. Origin metadata (substrate for the learning loop)
- 9. Validation status
- 10. How to recalibrate
- 11. Known limitations
- 12. Source-of-truth pointers
Press-Supercharger Methodology
How press coverage feeds scoring — the press probe, outlet/recency weighting, and the press-as-floor mechanic.
County Activation Runbook
Step-by-step runbook for activating a new county — jurisdiction setup, source feeds, harvesters, and the go-live checklist.
Scheduler & Jurisdiction Model
Consolidation index for the scheduling + jurisdiction story — cadence, per-geo capacity, tier mix, and how it ties to the promoter and vote-URL work.
Contents
- 1. The product concept — a synchronized daily cadence
- 2. Two models exist in the docs — and they diverge
- 3. The data model (verified against live schema, 2026-05-31)
- 4. Supply-side targets (sourcing & placement) — distinct from display cadence
- 5. Address → jurisdiction-set resolution (the missing pre-launch primitive)
- 6. Built vs designed vs missing
- 7. Open decisions
- 8. Terminology (canonical going forward)
- 9. Source docs & status
- 10. Relationship to the URL work
- 11. Resolved model — one synchronized vote a day, with universal cover (2026-05-31)
Tier Rollout Plan
Tier-rollout principles — how Federal/State/Local tiers phase in and the coverage model. (Scoring mechanics within are historical; live scoring is in policies/scoring.md.)
Contents
- 1. Principles
- 2. Three-tier model
- 3. Operating model
- 4. Locked architectural decisions
- 5. Day-type calendar and picker mechanics
- 6. Scheduling and eligibility
- 7. Calibration and feedback loops
- 8. Schema additions
- 9. Implementation sequence
- 10. Open questions and deferred work
- 11. Source-of-truth pointers
- 12. Harvest URL contract — added 2026-05-09
infra / web
Web Rollout Plan
The web-app rollout — v1 mobile-anchored, v2 web-native verification. Phasing and what ships at each stage.
Vote-URL Architecture
Canonical, human-readable vote-URL scheme (jurisdiction-hierarchy slugs). Shipped 2026-05-31 — the structure behind votd.io/votes/<slug>.
Contents
- Why
- The four decisions (locked) + the international revision
- URL scheme
- Year management
- Jurisdiction collisions and the registry
- Address mapping (shared graph — design now, build later)
- Downstream — the day-type calendar (existing concept) and what this work feeds it
- Folders as aggregate pages
- Data-model changes
- Code touch-points
- Canonical-page ownership — resolved (2026-05-31): static owns it
- Phasing
Cloudflare Access Recipe
Setup runbook for the Cloudflare Zero Trust gate in front of admin.votd.io.
infra / build
Build Issues
Android/iOS build environment recipe + gotchas (Java 17, Node 22, typedRoutes flip, device authorization) and the open build bugs.
Contents
- Android Dev Environment Recipe — 2026-04-22 (Galaxy A53 5G UW, Android 15)
- Bug #5 — WatchConnectivity crashes Expo Go (KNOWN LIMITATION)
- Bug #4 — Missing/aliased theme token imports → SIGABRT on New Architecture (RESOLVED build 74)
- Pinned: SDK version mismatch in package-lock.json
- Other open build issues
- iOS Build Checklist — Local Xcode Builds
- Build number strategy — research notes (2026-03-24)
- Build 20 — 2026-03-24
- Build 21 — 2026-03-24 ✅ Distributed to TestFlight
- Build 22 — 2026-03-24
- Build 23 — 2026-03-24 ✅ Distributed to TestFlight
- Watch app — full implementation notes (2026-03-24)
Crash Log Guide
Retrieving and reading crash logs from a physical device — Xcode Console, pulling .ips files, common crashes + fixes, and the current watch-bridge state. (Absorbed the former crash skill.)
infra
Infrastructure & External Services
Canonical record of all domains, external accounts, Supabase projects, iOS bundle IDs, edge functions, Android build & Play distribution, and key infrastructure decisions.
Strategy · Comms narrative, pitch, evidence
Positioning & Category
Category strategy — what VOTD is, the "missing instrument" thesis, and how it's positioned relative to civic-tech.
Contents
- The decision, in one line
- Why not the existing labels
- Why not "datatainment" (the instinct, taken seriously, then rejected as the category)
- The two-layer model
- Naming — parked (2026-06-02)
- Comparables — the working frame (the "Hollywood" pitch)
- Monetization implication of the category choice
- Landmines (do not step on)
- Where each register is used
- Open items
- References
Competitive Landscape
Full competitive analysis — the consumer civic-app cohort AND the tiered gov-tech / polling / deliberation field. Why VOTD's exact cell has no incumbent.
Contents
- The cohort
- The broader field — gov-tech, polling, and deliberation (tiered)
- What's inhibited the cohort from breaking out
- Data-vendor landscape
- What VOTD does that the cohort doesn't
- The reframe — old apparatus vs new instrument
- How VOTD wins (three concrete moves)
- Two guardrails when using this framing
- Distilled internal FAQs
Participation Baselines
Turnout evidence base — the defensible baseline, turnout by cycle type, and real Sacramento data points. (Competitive cut now lives in competitive-landscape.)
Investor Pitch & Targets
Pitch language + investor target map.
One-Pager — Advisors & Team
Advisor/team one-pager copy.
One-Pager — Community
Community-facing one-pager copy.
Votes to Work
Post-vote amplification strategy — turning tallies into civic signal and engagement.
Strategy · GTM execution & launch
Go-to-Market Plan
Sacramento GTM + growth strategy.
Launch & Raise Plan
Launch / signal / raise sequencing + go-no-go thresholds.
Contents
- The bet, in one paragraph
- Why this matters — the impact thesis
- Why this shape
- What VOTD is — and why the usual metrics are the wrong ones
- What success actually looks like (the signal VOTD will read)
- The honest tension (do not skip)
- Timetable
- Triggers & milestones
- The go/no-go rule (pre-committed)
- Funding paths — mission capital as a bridge to the raise
- Open items to lock before launch
Launch Operating Plan
All-up launch execution plan — 4 tracks × 2-week sprints. Companion to the interactive launch tracker.
Strategy · Legal corporate / entity
Incorporation
Legal-entity decisions (Delaware PBC, Atlas/Clerky).
Contents
- The decisions
- Why Delaware C-corp (and why not LLC or sole prop)
- Why Delaware (the state), not California
- Why Public Benefit Corporation
- Why Stripe Atlas
- Atlas vs Clerky — side-by-side (added 2026-05-31)
- Year-one cost picture
- Action checklist
- Board, advisors, and the solo-founder question
- What this document does not cover
Working docs live, at docs/ root
Backlog
Live backlog — the § Active section is canonical. Parked items carry enough context to pick up cold.
Contents
- Active
- Off-chain cluster tasks (consolidated 2026-06-03)
- Pre-polish cluster-as-signal — group like-decisions BEFORE polish; surface the cluster as the engagement unit (drafted 2026-05-16)
- Phase 6: gate-before-insertion — sourcedqueue contains only ready rows (drafted 2026-05-12)
- Federal pool: close 66 → 250 gap (drafted 2026-05-11)
- Proposer research suggestions — auto-surface candidate supporting links from a curated source index (drafted 2026-05-08)
- votd.io as universal social engine — per-vote landing pages, OG poster generation, four-variant share system, deep linking, VOTD operator accounts (drafted 2026-05-02, after Build 199 ship)
- Sync android → main — admin SW conflict resolution (scheduled 2026-04-27, day after Build 191 ships)
- macOS 26 (Tahoe) + Xcode 26.4.1 Upgrade — EXECUTED 2026-04-28
- Public site — Astro migration + Supabase data feeds + admin CMS
- FAQ central-source pipeline — single canonical source feeding app + web + future surfaces
- FAQ admin editing — move source from markdown to Supabase + CRUD UI in apps/admin
Backlog Index
Structured, scored, prioritized front door to the backlog — readable index that links by code to each full write-up.
Contents
- Taxonomy — two masters, sub-tracks, brand colors
- Schema
- Priority rollup (full — VOTD Product)
- Build sequence — near-term critical path (founder-set 2026-06-03)
- Tasks (consolidated master set — in progress)
- Master 1 — VOTD Product
- Master 2 — GTM
- Clusters & tagalongs
- Completed / shipped (for review)
- Scoring status
QA Punchlist
Rolling QA checklist — new build sections prepended at the top, carry-forward items tracked across builds.
Contents
- Build 213 — 2026-05-30
- Build 212 — 2026-05-27
- Build 211 — 2026-05-25
- Build 210 — 2026-05-23
- Build 209 — 2026-05-23
- Build 207 — 2026-05-22
- Build 204 — 2026-05-22
- Build 201 — 2026-05-20
- Build 200 — 2026-05-20
- Persistent — re-validate every build until resolved
- Next-session priorities (tomorrow, 2026-05-01)
- Build 200 — pending QA (in progress, 2026-05-03)
FAQ (source)
Canonical FAQ source — generates PublicFAQ + InternalFAQ + in-app faqData. Stays at docs/ root because the FAQ build pipeline reads it.
Contents
README — docs index (markdown)
The in-repo markdown front door to the docs library (the markdown sibling of this page), organized by the same folder structure.
Design Comps rendered visual references
Color Style Guide
Living reference for all color tokens — brand palette, warm neutral ramp, topic category colors, semantic tokens, and the rogue hardcoded value tracker.
Comp Library
All design explorations in one file — Design System, Vote Card, Feed Screen, Splash, Topic Palette, Share Poster/Panel/Personas/All.
Invite Landing — iPhone Preview
Rendered preview of the TestFlight invite landing in an iPhone 15 frame. Mirrors the production HTML from the Supabase invite edge function.
Design System Proposal
Early visual spec for the component + layout system — card shells, typography scale, spacing, color usage, interaction patterns.
Skills .claude/skills/ — executable playbooks
Claude Skills
Reusable instruction sets Claude loads before working on specific areas. All live in
.claude/skills/ (consolidated June 2026).session-start
Session-start hard gate — branch, backlog audit, commenting queue, uncommitted check.
commit
Surfaces a ready-to-run commit/push block (Claude never runs git).
ship
Pre-archive checklist + TestFlight distribution sequence.
session-wrap
End-of-session: punchlist, backlog reconcile, undocumented-decision scan.
votd-feed
Mandatory before any feed-engine work. Loads 4 reference files.
commenting-queue
Process editor comments on sourced_queue rows — revise or reply per the write contract.
site-promote
The edit → rebuild → snapshot-check → promote loop for the public site.
brand-voice
Public-copy voice review — third-person + loaded-term sweeps.
scoring-tuning-log
Append a tuning-log entry before any scoring change.
topic-art-render
Correct workflow for regenerating topic-icon PNGs from SVG sources.
no-render
Hard rule: never generate image assets from code.
use-existing
Prefer reusing existing skills/components over rebuilding.
Archive historical / superseded — nothing lost
Archive
Docs moved to
archive/ in the June 2026 reorg, preserved in dated subfolders. Retired but recoverable.Subfolders
- curation-design-history/ — architecture trilogy, vote-sourcing-workflow, state-pipeline-plan, migration-log
- admin-rebuild/ — admin-perf-and-mobile, fragility rebuild handoff + plan
- qa-history/ — watch-revamp-transcript, milestone-builds, build-204-qa
- gate-audit/ — gate-audit-report, summary, index
- agent-mode/ — retired agent layer (CLAUDEAGENT, SYSTEM_PROMPT, memory, votd-agent-spec)
- build-history/ — ship-checklist (superseded by the ship skill)
- misc-one-offs/ — pre-upgrade-baseline, handoff notes
- Claude Archive/ — original v1.0 "Referendum" era