Home / Ops / More in this area
Updated Jul 18, 2026 · Affirmology_LostChat_Recovery_NamePronunciationQC_v1.md
Recovered from a Cowork/DATA chat lost to a desktop update. Source transcript on disk:
~/.claude/projects/-Users-jeffreyparker-CLAUDE-AFFIRMOLOGY/66d1fae1-6d73-4e02-885a-123887e66f6e.jsonl
(dated 7/12, ~2876 messages, opened "i'm back" during a Mercury-retrograde day of wifi/router drops). This file reconstructs it so a NEW chat can resume with zero context loss. Everything below was VERIFIED against the transcript and against files on disk.
This was a long marathon DATA/backend session (the engine + affirmology-studio cloud side), running in parallel with a separate CODE/apps chat that was slowly rendering 33 "Mirror" readings all day (~25 min each). Jeff's laptop wifi kept dropping. Coordination between chats ran through _CHAT_SYNC.md. The session switched the model to Fable partway through (at Jeff's request, around the name-pronunciation build). It ended cleanly with Jeff saying "ok awesome. closeing this and restarting" and the assistant confirming everything was committed/deployed/documented and reboot-safe.
Four big threads ran in this chat, roughly in order: 1. Self-heal + demo-reserve spend cap (early). 2. The QC Audit and Plan (structural-drift quality control) - the "scared AF about quality" thread. 3. Naming session (audio/star names). 4. The 7/12 identity handoff: voice-note transcription, name pronunciation system, intake/identity fields, time-invariance filter, sung-name deduction, name review queue, and the chant runner. 5. Wheel art wiring + star-scrubbing the 12 zodiac figures (end).
All referenced docs exist on disk in the AFFIRMOLOGY root (verified): Affirmology_QC_Audit_and_Plan_v1.md, Affirmology_NamePronunciation_Spec_v1.md, Affirmology_IntakeForm_and_Identity_Spec_v1.md, Affirmology_AudioNaming_Registry_v1.md, Affirmology_AppExperience_MasterPlan_v1.md, Affirmology_FirstReading_Structure_v1.md. UI ref: CLAUDE OUTPUTS/Affirmology/Affirmology_NamePronunciation_UI_v1.html. Wheel art: CLAUDE OUTPUTS/Affirmology/WheelConcepts/.
The assistant's final message declared everything reboot-safe. Concrete standing state:
b99efbd (later health=ok): the full 2026-07-12 identity handoff (items A-E), plus the chant runner (v2 "build-and-converge" template). The cloud does not care about a laptop reboot.5f762fc and earlier). They ride the next internal TestFlight build whenever Jeff says "build it." Latest referenced internal build was build 31; wheel figures hot-swap on next open (no rebuild).fd46119). Running LOG-ONLY, blocks nothing, beat-markers OFF until Jeff signs off. (Note: Jeff DID approve the Mirror blueprint later in the session - see below - but enforce was not confirmed flipped on.)c98818f). Push was "held" for the mirror render window; may have shipped later in the session.wheel/figures/original/. Alignment wired to Affirmology_WheelAlignment_FINAL_v1.json._CHAT_SYNC.md.Nothing was left mid-edit or exposed. The only true OPEN decision at close was take-4-vs-take-2 for the chant (see Open/Next).
Affirmology_QC_Audit_and_Plan_v1.md)audio_qc.py (dropouts/loudness), chart_guard.py (chart-contamination guard, caught the Josh-on-Jeff's-record bug), and script_qc.py (mechanical: strips em dashes, enforces fixed close, bans HD gate numbers, flags length). The gap: nothing judges whether writing is GOOD, and nothing catches STRUCTURAL DRIFT. A structure's "shape" is stored as free-text prose (structures.py:62-63 directive/overview); the only shape-enforcement in the whole codebase was enforce_origin_close. So a render could skip a beat, reorder, drop the threaded symbol, or leave the open loop open and pass every gate. verify_send.py existed but nothing called it.word_band in pacing.py), wired into compose()'s existing gate-and-revise loop (Apollo runs gates; failures feed back to Orpheus) as an additive structure_id param (default "" = no-op, so the byte-locked demo is untouched). 16/16 tests pass. Commit fd46119.Affirmology_FirstReading_Structure_v1.md (Rule 12: "The listener is the hero, always"; Rule 3: never five competing metaphors; master symbol drawn from the person's own metaphor bank).c98818f.SELF_HEAL_MAX_SPEND_USD (default $1.00/pass) that stops BEFORE a build would exceed it, not just after a credit error. Tested: $1.00 cap builds 5 leaves 1; $0.50 builds 2.name_called (verbatim, never cleaned), name_birth, and tri-state birth_time_known (the "Randy fix": a ticked "I don't know" is now distinguishable from a real noon birth and from legacy rows). Round-trip tested. This UNBLOCKS the site intake form deploy.api/identity.py): base = the chosen name ALWAYS (never the birth name); body/surname added only when provably safe; divergent cases are absolute. All 7 spec examples pass verbatim. Adds name_sung column. Runs inside _capture_profile.identity.py endpoints (/api/name-review/...).Affirmology_NamePronunciation_Spec_v1.md): engine matcher does WHOLE-TOKEN substitution only (never rewrites inside a name; "Ajnabee" survives; Scunthorpe rule holds); person override beats the lexicon; a person named after a lexicon word is protected. 10/10 tests. Hooked at the SINGLE choke point every voice path funnels through (ElevenLabs, Fish, both paced renderers all say it right) while any script a HUMAN reads keeps true spelling. Lexicon seeded with 17 terms (Affirmology hand-fix now permanent), founder-gated admin CRUD. Verified voiced: "rob, welcome to af-er-MOL-uh-jee. Your AHZH-nah hums, rob HART-line."Affirmology_NamePronunciation_UI_v1.html)All 5 surfaces committed (typecheck clean), entry = Explore -> Profile -> "Your name, said right.": 1. Chant confirm screen with a small "Not how I say it" link (proactive catch). 2. "Did we get it right?" [Yes, that's me] / [Not quite]. 3. Three fix paths, easiest first: (a) variant picker with real TTS previews, (b) say-it-yourself recording (the recording is KEPT), (c) respelling box with IPA behind an "advanced" toggle. NO bare IPA box anywhere. 4. Confirm + lock with a "hear it sung" preview (sung != spoken) and an OFFERED (never forced) Origin re-render. 5. Admin lexicon table (term / pronunciation / sung form / category, add + edit). Fire rules: confirming a pronunciation change AUTO-QUEUES the chant re-render; Origin remake is offered not forced.
POST /api/chant/run {person: <email>})POST https://api.elevenlabs.io/v1/music, music_length_ms: 30000), the proven 7/11 Gregorian prompt - a-cappella male monastery choir, melismatic, cathedral reverb, ABSOLUTELY NO instruments (model-added instruments bury the name; mix OUR bed under at ~0.18 in ffmpeg afterward if a bed is wanted). Sings the CHOSEN name (name_sung, never birth) with syllable hyphens + ellipses, e.g. "Jeff... Par-ker... Love.... I am Jeff Parker Love."chants/<person>.mp3 (app welcome reads this); chant_url now on every profile read.Affirmology_AudioNaming_Registry_v1.mdorigin_soul_song entry gift.First constellation = at least 4 stars: Morning, Movement, Meditation (a category giving an EFT audio + a visualization + a new reading), Sleep. On entry the user is prompted for a weekly CONTEXT (selection box + optional type-or-voicenote) that shapes that week's audios and reading. Specialty pieces to start: a Chiron healing journey, a long hero's-journey audio. Other pieces greyed out / rolled out on discovery. The weekly-context prompt is the real engine unlock (chart + fresh current context, not chart-static) and slots into the Understanding's "context store."
POST /api/app/transcribe (app auth pattern), multipart audio (m4a/caf/webm, cap ~3min/~10MB), transcribe via ElevenLabs Speech-to-Text (scribe_v1) using the existing key, return {"text":...}. TRANSCRIPT ONLY is a hard rule: raw audio never stored, temp file deleted in a finally block, log only person/duration/char-count. Backend was Jeff's/DATA lane; the composer mic button (RN, next to send) was the CODE/apps lane. Early mic-button attempts failed ("Transcription failed") until a NEW full-access ELEVENLABS_API_KEY was put in .env (does TTS + Music + STT), after which transcription worked. There is NO OpenAI key with credits (checked) - Scribe fallback to OpenAI Whisper is not available.
Affirmology_Olga_Rectification_v1.md)Resolved range ~9:20pm-9:55pm (Feb 25, 1966, Dubievka, Ukraine); working pin 9:35pm (21:35), the midpoint. Any time in that 35-min window gives the same chart. Q1 (Moon 8th->7th ~9:20, answer B = after 9:20) and Q2 (Mars+Mercury 6th->5th ~9:55, answer A = before 9:55) clamp the window; Q3 (MC Cancer->Leo ~10:30, answer A) confirms.
Wired SkyWheel to Affirmology_WheelAlignment_FINAL_v1.json (in WheelConcepts): render only included:true stars at normalized anchors with the 0..1 fill component; figure transforms (rotateDeg/flipX as negative scale/scale/dx/dy) in a 400x640 space scaled to the wedge; lines from linksEffective with brightness following fill; omitted stars stay in data (flip to enable later, no art/geometry change); figure opacity token = 1.0. Parity proven against the tuner's own render math (Product/WheelPreview/alignment_parity_check.png). Aries chain in day order: 41 Ari = First Light -> Hamal = The Forge -> Sheratan = The Stillness -> Mesarthim = The Night Tide. The painted figures existed ONLY on Higgsfield's ephemeral CDN and were RESCUED to R2 wheel/figures/. All 12 had baked-in tuning stars/numbers; removed via Higgsfield EDIT (not repaint, to preserve pixel-exact alignment); live on R2, originals in wheel/figures/original/, review sheet Product/WheelPreview/all_figures_clean_12up.png.
POST /api/chant/run {person: solballard@gmail.com}) so both founders' chants can be reviewed before any member hears one. Not yet done at close.wrangler deploy.Docs (AFFIRMOLOGY root, all verified present):
- Affirmology_QC_Audit_and_Plan_v1.md - the audit + drift-gate plan + build status.
- Affirmology_NamePronunciation_Spec_v1.md - pronunciation spec.
- Affirmology_IntakeForm_and_Identity_Spec_v1.md - identity/intake spec.
- Affirmology_AudioNaming_Registry_v1.md - locked names, two-register philosophy, unplaced palette, retired names.
- Affirmology_AppExperience_MasterPlan_v1.md - Explore tab / Wheel master plan (build read sections 1,2,4,5,15.4,15.8b,16.8).
- Affirmology_FirstReading_Structure_v1.md - the Mirror structure + 12 rules (source for the blueprint).
- Affirmology_Olga_Rectification_v1.md - Olga birth-time range.
- CLAUDE OUTPUTS/Affirmology/Affirmology_NamePronunciation_UI_v1.html - the pronunciation UI/UX reference the RN screens matched.
- CLAUDE OUTPUTS/Affirmology/WheelConcepts/ - the 12 zodiac + Sun wheel art and Affirmology_WheelAlignment_FINAL_v1.json.
- Coordination: _CHAT_SYNC.md (minute-to-minute), _SHARED_CONTEXT.md (durable shared brain). The naming registry + two-register system were posted to both, addressed to the Cowork app-experience chat to fold into the master plan.
Code (in affirmology-studio cloud repo unless noted; commits are from this 7/12 session):
- api/identity.py - sung-name deduction (C) + name review queue (D).
- pacing.py - word_band single source of truth for bed-aware length; existing pacing_gate/negation_gate.
- structures.py (~lines 62-63) - free-text directive/overview (the drift risk the blueprint replaces).
- compose() - gate-and-revise loop (Apollo/Orpheus); conformance gate slots in via additive structure_id.
- The conformance engine module + Mirror/Origin blueprints + pytest (16/16), commit fd46119.
- Self-heal orchestrator + SELF_HEAL_MAX_SPEND_USD cap, commit c98818f.
- Existing gates in src/affirmology/: audio_qc.py, chart_guard.py, script_qc.py; orphaned verify_send.py.
- App (affirmology-app / Maya): pronunciation screens + SkyWheel, commit 5f762fc and earlier.
- Cloud deploy commit b99efbd (later health=ok).
Endpoints:
- POST /api/app/transcribe (voice notes, transcript-only).
- POST /api/chant/run {person:<email>}; chant queue is self-draining cloud-side.
- /api/name-review/verdict and related (review queue).
- Studio base (headless): https://affirmology-studio-api.onrender.com, Bearer STUDIO_AUTH_TOKEN / CLOUD_STUDIO_AUTH_TOKEN. Hermes: POST /api/hermes. Health: GET /api/health.
Secrets / keys - THEY EXIST, values NOT printed here:
- A NEW full-access ELEVENLABS_API_KEY in affirmology-studio/.env (does TTS + Music/chant + Speech-to-Text). Old key is superseded.
- STUDIO_AUTH_TOKEN / CLOUD_STUDIO_AUTH_TOKEN, EXPO_TOKEN (permanently stored per memory), Resend key.
- No OpenAI key with credits exists (checked in-session).
- Anthropic has no live balance API; billing/top-up: https://console.anthropic.com/settings/billing
Media URLs (public): canonical chant https://media.affirmology.ai/chants/<person>.mp3; takes at .../chants/<person>/takeN.mp3.
This recovery is built ONLY from this one DATA/backend transcript. It cannot see the PARALLEL CODE/apps chat that rendered the 33 mirrors and built the RN app screens, nor the Cowork app-experience chat that owns the master plan and email/text copy - their side of these handoffs lived in _CHAT_SYNC.md and _SHARED_CONTEXT.md, which a new chat MUST read for the current cross-chat truth. It also predates later sessions: the 7/12 launch timeline here is superseded by the current gated-beta / Aug 11 market-launch plan in memory, and any commits marked "push held" or "awaiting build" may have shipped afterward. Verify live state via GET /api/health, the current _CHAT_SYNC.md date block, and Affirmology_PROJECT_STATE.md before acting on anything dated.