Home / Product / Atlas and Studio

Three-Act Arc (Naming, Embodying, Becoming) - Studio Locked Template Spec

Updated Jun 26, 2026 · Affirmology_ThreeActArc_StudioSpec_v1.md

Summary. Spec for Claude Code. Goal: add one new locked, named structure template to the Studio so any chart can be rendered through the Naming, Embodying, Becoming arc. This is a meta-shape (a defined sequence applied over any system), not a chartless script. Content

Three-Act Arc (Naming, Embodying, Becoming) - Studio Locked Template Spec

Spec for Claude Code. Goal: add one new locked, named structure template to the Studio so any chart can be rendered through the Naming, Embodying, Becoming arc. This is a meta-shape (a defined sequence applied over any system), not a chartless script. Content always comes from the person's own chart and corpus; this only sets the shape, the timing, and the technique slots.

1. What this is and why it works (from the Wisdom Corpus)

Corpus entry, area reading_craft, confidence 0.8, source Affirmology_Neuroscience_AudioEfficacy_Research_v1.md.

One-liner: the naming-embodying-becoming arc maps the brain's natural pathway from self-relevance through quieting into future possibility.

Why it works (the mechanism, verbatim from the corpus): Cascio et al. (2016) showed future-oriented self-affirmation produced stronger activation than past reflection. Andrews-Hanna (2010, 2012) mapped the default-mode-network subsystems, showing the midline core engages for self-relevant information, then quiets when attention shifts to present-moment somatic anchors. A three-act arc mirrors that neurological pathway: engage self-relevance (Naming), quiet rumination via a somatic anchor (Embodying), then open toward future orientation (Becoming).

When to use: any transformation, breakthrough, or deep meditation audio of 8+ minutes. Not needed for short affirmation bursts. That is why this template targets 8 minutes, not the 4 to 7 of the daily suite.

The three acts and their locked timing:

Test of success (from the corpus how_to_apply): read it aloud and ask, does the emotional arc feel coherent, like one complete story.

Technique slots woven into the arc (all already in the corpus and the engine vocabulary)

2. How it plugs into the existing system (verified, no new plumbing)

The Studio already runs locked structures through a directive-driven flex path. No new architecture is needed. Confirmed in the code:

  1. Structures are defined in affirmology-studio/api/structures.py as frozen Structure dataclasses in the STRUCTURES list. Each carries a directive (the locked concept text), an overview (pre-compose briefing prose), target_minutes, pace, bed_profile, and a full AudioMetrics profile.
  2. On compose, affirmology-studio/api/main.py (around lines 431 to 458) looks up the structure, and when structure.directive is non-empty it appends it into concept, then calls manager.submit_script(person.birth, person.id, structure, concept, target_minutes=minutes).
  3. The generator affirmology-agent/src/affirmology/agents/script_generator.py sets use_flex = bool(concept or council_context). A non-empty concept switches it to SCRIPT_SYSTEM_PROMPT_FLEX (no fixed natal spine) and injects the directive as the STRUCTURE DIRECTIVE. So our directive IS the locked concept that shapes the script, while every absolute brand rule (first person, no em dashes, chart-only content, no Joe Dispenza) stays enforced by the system prompt.
  4. Word budget is derived automatically: ~140 to 150 words per minute, so target_minutes=8.0 yields roughly 1120 to 1200 words. No manual word count needed.

Category choice: put it in Subconscious & somatic, alongside confidence_abundance and founder_confidence. That category is in the internal registry and the Studio picker (grouped()), but NOT in the four-group consumer palette (foundational, daily, human-design, gene-keys). That is exactly right: this is an internal Studio locked template option, not a consumer-palette tile yet. Because the consumer palette excludes it, the existing palette tests stay green (they use subset checks and assert the 4 palette category ids only).

3. The exact change - add one Structure

Add the following entry to the STRUCTURES list in affirmology-studio/api/structures.py. Put it in the # ---- Subconscious & somatic ---- block, right after founder_confidence. Do not modify any existing structure. Do not touch origin_soul_song, before_bed, or the demo path.

    Structure(
        id="three_act_arc",
        category="Subconscious & somatic",
        name="Three-Act Arc (Naming, Embodying, Becoming)",
        description="A timed transformation arc that mirrors the brain's path: name the self, embody it in the body, become it.",
        target_minutes=8.0,
        pace="deep",
        bed_profile="theta_soft",
        metrics=AudioMetrics(
            format="audio", identity=8, transformation=9, energy="warm", pacing="slow",
            emotional_tone="cathartic", tools=(
                "heart-coherence breath", "embodied gratitude", "memory reconsolidation pairing",
            ),
            stage="transcend", time_of_day="anytime", theme="transformation", duration_min=8.0,
            voice="soul-song-female", bed="heavenly-circuit", repetition_role="journey",
            tier_visibility="premium",
        ),
        directive=(
            "Shape this as the Three-Act transformation arc, Naming then Embodying then Becoming, "
            "one continuous first-person flow with no spoken section headers and no announcing of "
            "the acts. The arc mirrors the brain's own path: engage self-relevance, quiet "
            "rumination through a somatic anchor, then open toward the future. "
            "ACT ONE, NAMING, about 60 to 90 seconds: open with the heart coherence breath, then "
            "name who this person is and what they carry, chart-grounded and specific, in "
            "present-tense recognition. Win recognition fast and validate before moving anything. "
            "ACT TWO, EMBODYING, about 2 to 3 minutes and the longest act: drop fully into the "
            "body. Somatic invitations, present-moment anchoring, sensory imagery, almost no future "
            "language. Inside this act do the reconsolidation pairing: gently let the old limiting "
            "belief be felt in the body in this person's own chart language, then guide a slow, "
            "sensory, first-person scene of the opposite being already true while the old feeling "
            "is still present, and return to that new felt truth two or three times across the act. "
            "Let the breath and the body carry it, not explanation. "
            "ACT THREE, BECOMING, about 90 to 120 seconds: open toward the future. Future-oriented "
            "becoming language, name the next step or the next choice that is theirs, already-framing "
            "in the carry-forward so the future is spoken as already true. Close on an open loop of "
            "becoming, never a call to action. "
            "Total length about 8 minutes. Move the tone from warm and settling, through deep and "
            "somatic, to quietly charged. The whole thing should read aloud as one coherent "
            "emotional story. Lead with whichever systems in this person's chart most carry their "
            "core identity and their live growth edge; do not recite placements as a checklist. "
            "Keep every brand rule: first person throughout, no em dashes, content only from this "
            "person's own chart and corpus."
        ),
        overview=(
            "WHAT IT DOES: Walks a single timed transformation arc in three acts. Act one names "
            "who you are, chart-grounded. Act two drops into the body and meets the old pattern, "
            "contradicting it with a felt experience of the opposite being already true. Act three "
            "opens toward who you are becoming and the next choice that is yours. "
            "SCOPE: Active identity change and breakthrough, not a light daily read. Built for the "
            "deeper, 8-minute transformation listen. "
            "PARAMETERS IT WORKS WITH: Three locked acts (about 60 to 90 seconds naming, 2 to 3 "
            "minutes embodying, 90 to 120 seconds becoming), heart coherence breath at the open, a "
            "felt-sense reconsolidation pairing in the middle, already-framing at the close, around "
            "eight minutes, deep pace, tone moving from warm to somatic to quietly charged. "
            "WHY IT IS USEFUL: The arc mirrors the brain's natural pathway, engaging self-relevance, "
            "quieting rumination through a somatic anchor, then opening to future possibility, which "
            "is why it lands as real change rather than a list of affirmations. Best run nightly "
            "across a stretch of nights to let the new self-model consolidate."
        ),
    ),

Notes on the field choices, so you can adjust with intent rather than guessing:

4. Verification (required before you say it works)

  1. From affirmology-studio/, run the studio tests: python -m pytest tests/test_starter_palette.py tests/test_c3_tones.py tests/test_c26_pacing.py -q. The starter-palette tests use subset and palette-id checks, so a new Subconscious & somatic structure should keep them green. If any count assertion fails, fix the assertion to include the new structure rather than removing the structure.
  2. Confirm the lookup works: python -c "from api import structures as S; s=S.get_structure('three_act_arc'); print(s.name, s.target_minutes, s.pace, bool(s.directive))". Expect Three-Act Arc (Naming, Embodying, Becoming) 8.0 deep True.
  3. Confirm it is in the internal picker but NOT the consumer palette: python -c "from api import structures as S; print('in grouped:', any(x['id']=='three_act_arc' for g in S.grouped() for x in g['structures'])); print('in palette:', 'three_act_arc' in {d['id'] for d in S.structures_public()})". The consumer palette excludes non-palette categories, so in grouped: True and in palette: False is the correct, intended result. If you instead want it surfaced to consumers, that is a separate decision for Jeff (it would mean adding a new palette category or moving it into an existing one); do not do that without asking.
  4. Do a dry compose against a known chart (jeff) through the Studio render path and read script.md aloud. Check: three acts present with no spoken headers, act two is clearly the longest and stays in the body, the old-belief-to-new-truth pairing appears 2 to 3 times, the close is an open loop and not a call to action, no em dashes anywhere, first person throughout, and every named placement is actually in this person's chart.
  5. Run the full agent chart suite if you touched anything under affirmology-agent/: from affirmology-agent/, python -m pytest -q. (You should not need to; this change is data-only in the studio.)

5. Do-not-touch list