Home / Product / Atlas and Studio
Affirmology Studio - Build Brief v1 (for Claude Code)
Updated Jun 16, 2026 · Affirmology_StudioBuildBrief_v1.md
Summary. This is the authoritative brief for rebuilding the Studio front-end and wiring it to the real engine. Jeff has approved the design. Build THIS. Do not improvise a different shape.
Affirmology Studio - Build Brief v1 (for Claude Code)
This is the authoritative brief for rebuilding the Studio front-end and wiring it to the real engine. Jeff has approved the design. Build THIS. Do not improvise a different shape.
Source of truth for the UI
CLAUDE OUTPUTS/Affirmology/Affirmology_StudioUI_v3.html is the approved, clickable mockup. Open it and match it: the screens, the flow, the brand look (it already uses the locked Affirmology palette, Cormorant / Inter / JetBrains Mono, starfield + aura + grain). Reuse its CSS and structure directly where you can. The existing app in affirmology-studio/ (FastAPI api/ + web/) is a good backend skeleton; keep the two-phase pipeline, replace the front-end to match the mockup.
Hard rules (from CLAUDE.md, do not break)
- Everything is chart-driven. Content comes only from the person's own chart + corpus. Structures are defined, named templates that shape the audio; the model never invents the shape.
- The Demo stays locked and reliable. The Studio is the sandbox. Nothing here touches the demo.
- Style is shared, content is never shared between people.
- No em dashes anywhere. "Subconscious Operating System" frame. Sol = Soledad, never "Soul." Never name Joe Dispenza (say "heart coherence breath" / "embodied gratitude induction").
- Run
scripts/audio_qc.py on every render and reject dropouts. Reuse the proven clean baseline render settings.
People library (seed these four real charts; no re-typing, ever)
Pull/confirm against affirmology-agent/src/affirmology/verification/known_charts.py and the May 29 renders in affirmology-agent/out/.
- Jeff Parker Love - 1982-09-11, 16:19, Anderson SC - Virgo Sun, Cancer Moon, Capricorn Rising, Manifesting Generator, Life Path 3
- Sol Ballard (Soledad Gabriela Ballard) - 1986-01-23, 10:28, El Paso TX - Aquarius Sun, Cancer Moon, Aries Rising, Generator 2/4, Emotional authority, Life Path 3
- Colin Jacobs - 1976-04-17, 14:30, Boston MA - Aries Sun, Virgo Rising, Birthday 8
- Josh Parini - 1985-10-21, 06:00, San José, Costa Rica - Generator 2/4, Sacral
Screens to build (match the mockup)
- Login. Local build: log in as ANY of the four (Jeff keeps this for testing). Web build: real logins for Sol and Jeff only (Colin later). Equal billing, no "founder" label on Jeff. The logged-in person becomes the default subject for new audios.
- Home. Greeting; quick actions (New Sacred Audio, Relationship reading, Deep cosmic report); People Library row (select who you're composing for, defaults to you); team activity feed ("Sol made X, want to try a version?"); approved picks; category grid showing readiness (✓ working version / empty / in progress) so you can see the suite of audios that actually exist.
- Compose (the workbench). This is the heart. One big paste-anything input, NO character limit (accepts a whole Gemini dump). Conversational: the system reflects back, asks a question or two, drafts a script inline, and revises as the user types changes/feedback. Iterative until the user says "I want to hear this version," then and only then the gold Render to audio button spends voice credits (script-first cost discipline). Right rail: person, charts (+ add a chart for relationship), category, structure, length, status, version history, technique tags. When composing for someone else, show "they'll see and hear this too."
- Library (per category). Each category is its own page with a description. If it has no versions, show the empty state: "Nothing here yet, create the first one." If it has versions, list them across people with badges: ★ category pick, ✓ working version (a real listenable draft), draft only, requested · required. Each rendered version has a downloadable report.
- Version detail. Player, full script, "Why this build" report (rationale, what was used / not used, techniques, Verifier + Audio QC status), feedback thread (comfort vote + comments with replies), Share / request, Branch new version, Make this the pick.
Behaviors to wire
- Working-version flag. A version can be marked as a working/ready one so the suite view shows what's actually achievable.
- Share + hard request. Soft share lands on the recipient's Home feed. A request can carry a note, be marked "required," and notify the person by message; it stays flagged on their list until acted on.
- Reports for every audio (the Sacred Audio Report PDF + the team build report).
- Relationship / Synergy. Combine two or more charts into one reading or audio (reuse the Jeff+Josh synergy logic if present).
- Deep cosmic report. Pick any person, get the full four-system written deep-dive as a PDF, no audio.
- New category. User can create a category (name + one-line description); some categories (e.g. EFT) may hold several audios plus instructions.
- Categories are editable, first-class objects, not hardcoded. Each category is a record with an editable
name and description, and anyone can rename it or rewrite its description at any time (see "Edit category" on the Library page in the mockup). The description can also be auto-suggested/updated by the Studio from the recent drafts and chats happening inside that category. Store categories in the DB (id, name, description, created_by, updated_at), do not hardcode the list in structures.py. Structures (the locked audio templates) can belong to a category but the category label itself is user-owned and mutable.
Build order
- MVP (tonight/tomorrow, get it in front of Sol): screens 1-5 matching the mockup; four people seeded; conversational compose → script → render with the locked clean settings + audio_qc; per-category library with empty states + working-version badge; reports; deploy to the web behind logins for Sol and Jeff.
- Fast-follow: share/hard-request + notifications, relationship/multi-chart, deep cosmic report, new-category creation, leaderboard polish.
Deploy (web, so Sol can use it)
Per Affirmology_CloudStudio_BuildSpec_v1.md: API on Render (Dockerfile with FFmpeg + WeasyPrint), front-end on Cloudflare Pages, media to R2, gated logins for Sol and Jeff at studio.affirmology.ai. Keep the laptop demo path untouched.
Working style (so Jeff isn't babysitting)
Add a .claude/settings.json permissions allow-list so routine Edit / Write / Read and safe Bash (pytest, python, ls, grep, git status) do not prompt. Only stop for destructive or irreversible actions. Verify your own work with the SCRIPT PHASE ONLY by default: run pytest, generate a script, and confirm it loads in the browser. Do NOT call ElevenLabs or render audio to "verify", script-first cost discipline. Render a real audio only when Jeff explicitly approves that specific one. (One verification render already confirmed the full chain works clean with QC passing on 2026-06-15.)