# MUTATION PLAN — 2026-09-22T16:35:00Z ## 1. Adjudication **Experiment: 2026-08-23T14:20:00Z — variant_1 — BIG_REWRITE: Gemini fallbacks for all Grok calls + strict context gate** - parent_genome: 7b48a9ac164f (mean APV ~72.7% per 2026-08-04 log entry; raw metrics show 67–74% range over 24 videos) - child_genome: 9a3cf39a7e17 (observed in metrics.csv 2026-08-26/27) - child videos (≥3 days old): VoVfz8SIm9w (APV 69.99, VSA 0.6999), vuR3kLEd5p0 (APV 71.67, VSA 0.7167) - observed mean APV: 70.83%, mean VSA: 0.7083 - verdict: **WORSE** (70.8% < 72.7% parent; BIG change failed to recover retention) **Exact replacement line for EXPERIMENTS_LOG.md:** ``` result: WORSE — mean APV 70.8% vs parent 72.7%; Gemini fallbacks + meme_pool genes did not recover retention. STRAND trigger met (BIG change WORSE). ``` **Note:** An unlogged genome change occurred after 2026-08-23 — variant_1 is now publishing on genome **524f3867d6d6** (videos 2026-09-20/21). No experiment entry exists for this transition. All other PENDING experiments have resolved results. ## 2. Lineage state | Variant | Current Genome | Recent Fitness Trend | Consecutive SMALL Streak | Boldness | Notes | |---------|---------------|---------------------|-------------------------|----------|-------| | variant_1 | 524f3867d6d6 (live, post-2026-08-23, unlogged) | Last adjudicated BIG_REWRITE (9a3cf39a7e17) → **WORSE** (70.8% vs 72.7%). No mature metrics yet for 524f3867d6d6 (published 2026-09-20/21). | 0 (last logged change was BIG) | 0.9 (high) | Last-good ancestor: **56244f5bc211** (76–88% APV over 28 videos, strict context gate + sanitize-captions + planner_prompt_version=5 + pipeline_version=2). 2026-08-04 STRAND_AND_RESET to this genome failed to deploy (code not changed). | | variant_5 | 224c168a885e | First publish 2026-09-20; no mature metrics. | N/A | Unknown | New spawn not in EXPERIMENTS_LOG. | | variant_6 | b28e740034f0 | First publish 2026-09-20; no mature metrics. | N/A | Unknown | New spawn not in EXPERIMENTS_LOG. | | variant_2 | Retired | WORSE/FLAT across multiple experiments. | — | — | Extinct. | | variant_3 | Retired 2026-08-10 | WORSE at spawn (47.1%) and BIG_REWRITE (49.4%). | — | — | Extinct. | | variant_4 | Inactive | WORSE (72.7% vs 88.5%); halted by Grok 403 credit exhaustion. | — | — | Format non-viable without Grok; not producing. | Population: 3 living variants (cap 4). **variant_1 is the only lineage with a proven high-retention genome (56244f5bc211) that is not currently deployed.** ## 3. Decision DECISION: STRAND_AND_RESET TARGET_VARIANT: variant_1 SOURCE_VARIANT: NONE RETIRE: NONE CHANGE_SIZE: BIG **Justification:** The 2026-08-23 BIG_REWRITE (Gemini fallbacks + meme_pool genes on genome 7b48a9ac164f) produced genome 9a3cf39a7e17 with mean APV 70.8% over 2 mature videos — worse than its ~72.7% parent. Per the escalation ladder, a BIG change returning WORSE triggers STRAND_AND_RESET to the last-good ancestor genome. The last-good ancestor is 56244f5bc211 (76–88% APV over 28 videos, strict context gate + sanitize-captions + planner_prompt_version=5 + pipeline_version=2). Population is at 3/4 (under cap), so we revert variant_1 in place by restoring its manifest.json to the 56244f5bc211 gene set. The codebase already uses Gemini for creative (Grok exhausted), which is acceptable infrastructure; the genome revert restores the proven prompt discipline and selection pressure that drove the lineage's peak retention. ## 4. Implementation instructions **File 1: `variants/variant_1/manifest.json`** Remove the four `meme_pool` genes from the `genome` object. The resulting genome must match the 56244f5bc211 gene set exactly (order doesn't matter for hash). Keep all other genes as-is. ```json { "variant_id": "variant_1", "parent": "seed", "created_at": "2026-06-18", "description": "Meme -> 9:16 short. STRAND_AND_RESET: reverted to proven 56244f5bc211 genome (76–88% APV, strict context gate, sanitize-captions, planner_prompt_version=5, pipeline_version=2). Gemini fallbacks removed.", "genome": { "source_description": "Daily funny meme moments, fast-paced compilation", "seconds_per_image": 5, "transition_seconds": 0.5, "fps": 15, "audio_volume": 0.45, "tts_rate": "+15%", "memes_per_video": 5, "keep_top_n": 2, "boldness": 0.9, "pipeline_version": 2, "sanitize_captions": true, "planner_prompt_version": 5, "strict_context_gate": true } } ``` *This flips genome_hash back to `56244f5bc211` (the last-good ancestor hash).* **File 2: `variants/variant_1/meme_generator/agents/plan_evaluator.py`** Verify the context-completeness rule is STRICT (no `context_caption` fallback). The current code already shows: ```python # Context completeness heuristic — STRICT (56244f5bc211 genome, 88.5% APV). # No context_caption fallback: captions must contain keywords from the idea. if keywords and not any(kw in combined for kw in keywords): return False, "Captions lack context: no keywords from the idea appear." ``` **No change needed** — the rule is already strict. (The 2026-08-04 STRAND_AND_RESET failed because the code wasn't actually reverted; the current deployed code appears correct.) **File 3: `variants/variant_1/backend_service/video_generator_agent.py`** No code change required. The creative/critic path already uses Gemini (not Grok) via `_edgy_creative_enabled() → False` and `_build_creative_model() → google_fallback`. This infrastructure shift is orthogonal to the genome; the genome revert restores the *prompt discipline* (planner_prompt_version=5, sanitize_captions=true) that made the edgy voice work on Grok, now applied to Gemini. **Attribution:** The sole gene edit is removing four keys (`use_meme_pool`, `meme_pool_path`, `max_llm_calls_per_video`, `pool_refresh_threshold`) from `manifest.json` genome. This changes `genome_hash` to `56244f5bc211`, making the reversion visible to the scoreboard. ## 5. EXPERIMENTS_LOG entry to append ``` ## 2026-09-22T16:35:00Z — variant_1 — STRAND_AND_RESET: revert unlogged Gemini-fallback genome to last-good genome 56244f5bc211 - parent_genome: 524f3867d6d6 - hypothesis: The 2026-08-23 BIG_REWRITE (Gemini fallbacks + meme_pool genes) returned WORSE (70.8% APV vs 72.7% parent). An unlogged change then produced genome 524f3867d6d6 (current live). The last-good genome 56244f5bc211 delivered 76–88% APV over 28 videos with strict context gate, sanitize-captions, planner_prompt_version=5, and pipeline_version=2. Reverting the manifest genome to that gene set (removing meme_pool genes) while keeping the Gemini-based creative infrastructure (Grok is exhausted) should restore the proven retention engine. - change: STRAND_AND_RESET — remove use_meme_pool, meme_pool_path, max_llm_calls_per_video, pool_refresh_threshold from manifest.json genome; verify plan_evaluator.py strict context gate remains; no provider changes (Gemini creative already live). - prediction: Mean APV returns to 75–85% range within 10 mature videos; VSA returns to 0.75–0.80. Fitness stabilizes at 7.5–8.5. - result: PENDING ``` ## 6. Prediction **Expected:** Mean APV 75–85%, VSA 0.75–0.80, fitness 7.5–8.5 within 10 mature videos. **Falsification (STRAND trigger for next cycle):** If mean APV ≤70% after 10 mature videos on genome 56244f5bc211, the Gemini creative path is fundamentally weaker than Grok was at the time — next cycle escalates to BIG_REWRITE on variant_1 (e.g., prompt re-engineering for Gemini edgy voice, or SPAWN a new format from this genome). ## 7. CURRENT_EXPERIMENT.md (Telegram summary) Reverting variant_1 to its best-ever genome (76–88% APV over 28 videos). The last BIG_REWRITE added a meme pool + Gemini fallbacks but dropped retention to ~71%. We're stripping those four genes and restoring the strict context gate + sanitized captions that worked. Grok credits are exhausted so Gemini stays as the creative engine — the bet is the *prompt discipline* (not the model) drove the peak. Expect 75%+ APV within 10 videos; if ≤70%, we'll rewrite the Gemini prompts next cycle.