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)

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/.

Screens to build (match the mockup)

  1. 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.
  2. 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.
  3. 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."
  4. 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.
  5. 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

Build order

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.)