Home / Product / Atlas and Studio
Updated Jun 23, 2026 · Affirmology_StudioChangeList_v1.md
The live Studio is Claude Code's earlier build (compose by person + structure, script then audio, library, result). The approved mockup CLAUDE OUTPUTS/Affirmology/Affirmology_StudioUI_v3.html and the council design added a lot on top. This is the gap, prioritized. Confirm each against the live app, some may already be partly in.
BUILD ORDER + EXACT FILES + ACCEPTANCE for everything below (Studio first, then Atlas v1) is in Affirmology_ClaudeCode_BuildBrief_2026-06-18_v1.md. That is today's Claude Code work order.
READING TRUNCATION / CLIPPING (HIGH PRIORITY, new from Jeff 2026-06-20). Hermes/oracle readings cut off MID-SENTENCE around ~8000 characters. Cause: max_tokens is 2000 in the hermes() loop and the forced-final-synthesis call in affirmology-studio/api/main.py. Deep readings (the wealth syntheses, the numerology Pinnacle teaching, the Concordia joint) all exceed that and get sheared. FIX: raise max_tokens on the final synthesis call to ~4096-8192 (and consider a guard that continues if a reply ends mid-sentence, or chunk-and-stitch for very long readings). Most visible quality bug right now. Full detail in CLAUDE OUTPUTS/Affirmology/Affirmology_HermesLoop_Bug_v1.md (THIRD ISSUE).
NUMEROLOGY NAME ACCURACY (correctness bug, high priority). Sol's recent audio used WRONG numerology because it derived name-based numbers from a partial/assumed name. Rule: Life Path (from birth DATE) is fine and always available. Name-based numerology (Expression/Destiny, Soul Urge, Personality, etc.) may be used ONLY when we have a clearly confirmed FULL legal name on record. Never assume or infer a full name from "Jeff" / "Sol". The Studio (and the free-audio intake later) must explicitly prompt: "For numerology, what is your full birth name?" (state exactly what's needed: full name as on birth certificate, or first+last). If it is not confirmed, name-based numerology is OMITTED entirely, even if it seems useful for the audio. Engine: gate name-numerology behind a name_confirmed flag in numerology.py + the chart payload; generator and reports must not reference name-derived numbers when the flag is false.
Structure OVERVIEW / scope panel (Sol got confused in testing). Every preplanned audio/structure needs a strong, visible overview: what this audio is meant to DO, its scope, the parameters it already works with, and why it is useful, shown BEFORE composing. Then make clear the per-version shaping is just guidelines the user can bend. Source the overview text from structures.py (add overview, scope, parameters, why_useful fields per structure) and render it at the top of compose.
Length must go WAY longer than 3/6/9. Some audios are 45+ minutes (long journeys, full readings). Make length a wide, flexible choice (free range up to ~45-60 min), not a 3-tier toggle. Agent suggests from structure + intent; user overrides. Mind ElevenLabs render time and music-bed coverage at long lengths.
Music-bed SELECTOR (mechanism now, beds later). Add a bed selector to compose. v1 wires only what we have: None (dry voice) and Heavenly Circuit. Define the pace/use-case CATEGORIES now so beds drop in later without rework: Stillness/Delta (before-sleep, very slow), Journey/Theta (transformational, regression, womb-return), Movement (walk/gym, faster). Stop auto-using Heavenly for everything; it is one option. Future overlays (binaural beats, sacred tones, EFT-tap pacing) layer on top later. Jeff is adding more beds soon. NOTE: also fix music coverage so the chosen bed spans the FULL length (loop/extend + fade tail), already flagged below.
PERSEPHONE, the transformation GATE (NEW enforced council role). An ENFORCED Apollo gate, not an advisor: ensures every audio carries a real shadow-to-gift arc, concrete how-to-act guidance, and in deeper programs genuine breakthrough on what limits the person. DISTINCT FROM CHIRON (Chiron = neuroscience/meditation techniques; Persephone = the transformational arc, sized to audio type with nuance/context, light on a daily audio, full descent-and-return on a deep one). Honors Sol's domain. Prompt written: CLAUDE OUTPUTS/Affirmology/Affirmology_Persephone_GatePrompt_v1.md. Prompts-first; wire into council.py + Apollo's gate loop.
Conversation history + keep-working-after-render. Already started (P0.2 iterative composer), reinforce: keep ALL notes and the full version history; make it a true ongoing conversation; let someone keep changing or marking versions they like even AFTER an audio is created. Nothing is ever a dead end.
Demo-candidate labeling. The "natal chart" structure IS our demo. Label it "(demo)" in the UI. We must be able to create additional demo CANDIDATES; when one is ready to replace the locked demo, Jeff says so and it becomes the new locked demo. Until then the live demo stays locked and untouched.
Openings AND endings: research-backed, not just Jeff's invention. Build a researched library of opening/closing techniques (e.g. regression journeys "back to the womb" tied to the Venus sequence early-age work, and other tried meditation devices), so Orpheus has real craft to draw on, not only what Jeff improvises. Extends Affirmology_AudioOpenings_Framework_v1.md.
Slower pace / more pauses from ElevenLabs. Many audios move too fast. Find how to make ElevenLabs go slower and take more/longer pauses (SSML/breaks, inline pause tags, slower speed within the QC-safe range, sentence spacing) so recognitions land. Pairs with the cadence item below and the council arc/cadence pass. (Note: the locked demo's speed-1.0 setting stays as is; this is a Studio capability.)
Relationship / synergy IN THE APP. The Jeff+Colin, Jeff+Sol, Jeff+Colin+Sol work should be doable inside the app. Wire relationship.py into the Studio composer as a relationship/synergy path (multi-person), not just an engine call. (Also tracked at Priority 3.)
Internal report transparency (these are NOT client reports). Our reports must clearly show what information was obtained/used, and what was left out and why. These behind-the-scenes reports exist so WE can see what's happening and tweak/fix/improve; keep them distinct from eventual client-facing reports.
CRITICAL chart-integrity bug: a render's report crosses two charts. Header/blueprint/section-labels use the placeholder chart (name "render," born 2000-01-01: Capricorn Sun, Scorpio Moon, Aries Rising, Gene Key 38, Life Path 4, Emotional, 1/4, Split) while the script prose uses Jeff's real data (Gate 47, Virgo Sun, Cancer Moon, Capricorn Rising). Cause: the render used the placeholder identity (no people library wired, so selecting a person did not pass real birth data), and the report blueprint vs the script come from different chart sources. Fix: wire the four real charts so selecting a person passes real birth data; report + script from ONE chart computation; never fall back to a placeholder (fail loudly if birth data missing); purge the leftover "render" job. Verify with a Jeff render: header, blueprint, script, and "how built" all show his real chart, no contradictions. Oracle: Virgo Sun, Cancer Moon, Capricorn Rising; MG, Sacral, 2/5, Single; Life's Work Gate 47; Life Path 22; born 1982-09-11 16:19 Anderson SC.
The script step is one-way and LOSES the user's notes. After a script generates, the concept/notes input disappears and the only options are make-audio / send. There is no way back to edit notes and regenerate. Fix: keep the notes editable after generation, show the script alongside (not replacing) them, add a Regenerate/Revise action that re-runs the script with edited notes as a new version (v1, v2...), and keep Render audio as a separate explicit step. Persist concept + script per job so nothing is lost on navigation. This is the iterative composer from the mockup, minimum viable version.
Jeff rendered his own audio through the live Studio and the North Star showed up: "it sounds like my story, we are definitely getting there." Voice clear, good balance with the music. Two concrete fixes: - Music coverage: the audio ran 7:32 but Heavenly Circuit ran out before the end. The music bed must cover the FULL audio length (loop or extend with a fade tail), since lengths vary. Richer music options coming later; this is the interim fix. - Placement-recitation ending (bug): the canonical spine in script_generator.py forces a body-integration block near the end that names Sun/Moon/Rising/Authority ("This is my [Sign] X") plus a "This is my design" seal, on EVERY script. It got inherited by the Pearl/Gene Keys render and reads like a placement checklist. Fix: make the body-integration/seal close STRUCTURE-AWARE (structures can omit or reshape it); keep the locked demo's ending as is. Aligns with the no-placement-checklist craft rule; the council loop's arc/cadence review should pick the close from context. - Endings, crafted like openings: the same storyteller (Orpheus) builds a context-rich ENDING the way it builds the opening, resolving the opening, leaving one felt truth, fitted to the purpose, never a placement checklist. Openings and closings are bookends by the same hand. See the endings section in Affirmology_AudioOpenings_Framework_v1.md. - Cadence / landing: some recognitions are "quickly stated" and need room to land, a beat to breathe and a brief unfolding instead of being rattled past. This is exactly the Orpheus + arc/cadence pass in the council loop (Priority 1). The live engine is not wired to it yet, which is why it shows.
Affirmology_AudioOpenings_Framework_v1.md.Affirmology_BeforeBed_AudioStructure_v1.md.Affirmology_StudioGuide_v1.html, drop into web/ as guide.html) in the Studio nav; keep its changelog current on every change.2026-06-16: P0.2 iterative composer DONE (editable notes panel + Regenerate-as-new-version + working-brief persistence; render stays separate). web/index.html + web/app.js; node --check passes; backend already versions per compose. P0 complete. Browser click-through to verify on the Mac.
NEW BED added 2026-06-20: Quartz Pulse Tone (affirmology-agent/music/Quartz Pulse Tone.mp3, ~8.6 min, Jeff's sleep bed). Wire into the music-bed SELECTOR under category Stillness/Delta (before-sleep). Beds should be MP3 (the pipeline re-encodes to mp3 anyway; no need for the WAV master in-app).
REWRITE the before_bed structure directive (delta craft fix, new from Jeff 2026-06-20). The current before_bed directive in structures.py says "lead gently with the Moon and the shadow-to-gift movement of the spheres... touch Chiron and Lilith" and is silent on person, which produced chart JARGON ("my Cancer Moon," "Lilith") and all-"you" voice. For a delta/pre-sleep audio that is wrong: the analytical mind must stay offline. New directive: (1) NO astrology/HD/Gene-Keys/numerology terms in the spoken audio ever; the chart drives THEMES only, translated to plain felt language; (2) write the CORE in FIRST PERSON "I" (the listener's own subconscious), present tense; a brief soft guided induction may use "you" to settle, then hand to "I"; (3) NO shadow-to-gift movement here (keep that for Gene-Keys/journey structures); (4) include a Neville-style SATS visualization, a short first-person scene of the wish already fulfilled, felt as real, fall asleep inside it; (5) keep the rest-reassurance ("nothing to fix tonight"). Verified live: an override brief produces exactly this (0 jargon hits, first-person dominant). Bake it into the structure so every bedtime audio inherits it.
ADD a MORNING / WAKE structure (new from Jeff 2026-06-20). A "just woke, still in bed" hypnopompic audio: meet the listener drowsy and slow, then gently ASCEND (mirror of before_bed's descent). First person "I", present, no jargon. Set the day's assumption before the mind floods with to-dos (Neville "the morning"): I wake already held, today moves toward me, I am provided for. Short forward visualization + gratitude in advance. Gentle rise at the end (breath deepens, light comes in, "I rise into this day already abundant"), landing awake and primed, not jolted. ~5-6 min. Brighter bed (Heavenly Circuit). DISTINCT from a journaling / sit-up motivational audio (that one is eyes-open and active). Add id="morning_rising" to structures.py with pace="rise", bed_profile bright. (Tested live via the confidence_abundance structure + a morning override brief.)