Grand Diomande Research · Full HTML Reader

Evo3 Stage 0: RESEARCH — App Fleet Lifecycle Deep Exploration

**Target:** Mega-Cube #13 — "App Fleet Lifecycle" **Date:** 2026-03-10 **Model:** qwen35-cloud (405B) **Exploration Depth:** 3 (recursive) **File Budget:** 30 files max

Agents That Account for Themselves technical note experiment writeup candidate score 22 .md

Full Public Reader

Evo3 Stage 0: RESEARCH — App Fleet Lifecycle Deep Exploration

Target: Mega-Cube #13 — "App Fleet Lifecycle"
Date: 2026-03-10
Model: qwen35-cloud (405B)
Exploration Depth: 3 (recursive)
File Budget: 30 files max

---

Exploration Tree

ROOT: App Fleet Lifecycle Analysis
│
├── Branch 1: Evolution World Core (Depth=3) ✓
│   ├── engine.py [400 lines]
│   │   ├── Imports → genome.py, invariants.py, l1_controller.py, l2_controller.py
│   │   ├── Imports → l3_controller.py, forcing.py, state.py, immune.py
│   │   ├── Imports → population.py, noosphere_oracle.py, graduation.py, feedback.py
│   │   ├── Key Class: EvolutionWorld (orchestrator)
│   │   │   ├── evolve_step() — L1+L2+L3 coupling, graduation checks
│   │   │   ├── fitness threshold: 0.85 for graduation
│   │   │   └── L3 fires every 30 L1 steps
│   │   └── Key Method: evolve_all() — batch evolution
│   │
│   ├── genome.py [241 lines]
│   │   ├── Key Class: AppGenome
│   │   │   ├── Fields: architecture[], capabilities[], dependencies[], ui_patterns[]
│   │   │   ├── Milestones: testflight_live, core_feature, ui_polish, screenshots, app_store_submission, user_retention_signal
│   │   │   ├── Fitness: weighted milestone progress (or grounded_fitness from feedback)
│   │   │   └── Mutation operators: G01-G15, R01-R07, D01-D06 (TIE techniques)
│   │   ├── DEFAULT_MILESTONES (6 milestones, weights 0.8-2.5)
│   │   └── DEFAULT_MUTATION_OPERATORS (10 operators)
│   │
│   ├── fleet.py [329 lines]
│   │   ├── FLEET_3_APPS: 16 apps (apps 36-50+)
│   │   │   ├── Categories: language (5), movement (3), builder (4), voice (2), coffee (1), garden (1)
│   │   │   ├── All have testflight_live=1.0 (already on TestFlight)
│   │   │   └── Spore: most mature (core_feature=0.7)
│   │   ├── CATEGORY_OPERATOR_BOOSTS: category-specific mutation weights
│   │   └── initialize_fleet3() — register all Fleet 3 apps
│   │
│   ├── state.py [315 lines]
│   │   ├── StateManager: Supabase persistence
│   │   ├── Tables: ew_app_genomes, ew_l1_steps, ew_l2_steps, ew_forcing_events
│   │   ├── Tables: ew_invariant_checks, ew_pulse_sessions, ew_feedback_snapshots, ew_l3_state
│   │   └── Methods: save_genome, get_genome, update_genome, save_l1_step, count_l1_steps_since_progress
│   │
│   ├── l1_controller.py [430 lines]
│   │   ├── L1Controller: App evolution layer
│   │   ├── evolve_app() — applies mutations, checks invariants, tracks state history
│   │   ├── GENERATION_EFFECTS: G01, G04, G06, G14, G15
│   │   ├── REFINEMENT_EFFECTS: R01, R02, R07
│   │   ├── DISTRIBUTION_EFFECTS: D01, D06
│   │   └── Dream gene injection from Noosphere (exploration_rate=0.2)
│   │
│   ├── l2_controller.py [331 lines]
│   │   ├── L2Controller: Meta-evolution layer
│   │   ├── MethodGenome: technique_weights, selection_strategy, decomposition_method
│   │   ├── SELECTION_STRATEGIES: tournament, roulette, rank_based, elitist, diversity_driven
│   │   ├── DECOMPOSITION_METHODS: milestone_sequential, parallel_capabilities, dependency_graph, importance_weighted, adaptive_frontier
│   │   └── evolve_method() — fires every 3 L1 steps
│   │
│   ├── l3_controller.py [242 lines]
│   │   ├── L3Controller: Meta-meta-evolution (The Governor)
│   │   ├── L3Genome: learning_rate, exploration_ceiling/floor, adaptation_cadence, forcing_sensitivity, parallelism_cap
│   │   ├── L3_FIRING_INTERVAL = 30 (steps)
│   │   └── Fitness = L2 novelty improvement rate
│   │
│   ├── graduation.py [234 lines]
│   │   ├── GRADUATION_FITNESS = 0.85
│   │   ├── GraduationOutcome: SPECIATION, OPTIMIZATION, DORMANCY, NOT_READY
│   │   ├── SPECIATION_MOMENTUM_THRESHOLD = 0.01 per day
│   │   ├── DORMANCY_METABOLISM_THRESHOLD = 0.15
│   │   ├── evaluate_graduation() — determine outcome based on fitness + momentum + metabolism
│   │   ├── speciate() — fork genome into stable + variant
│   │   ├── enter_optimization() — lock G-techniques, R/D only
│   │   └── enter_dormancy() — remove from rotation, preserve capabilities
│   │
│   ├── feedback.py [334 lines]
│   │   ├── 5 channels: build_health (0.25), crash_rate (0.20), engagement (0.25), store_presence (0.15), design_health (0.15)
│   │   ├── DECAY_HALF_LIVES: build=1h, crash=3d, engagement=6h, store=7d, design=4h
│   │   ├── FeedbackState: grounded_fitness, metabolism_rate, momentum (14-day slope)
│   │   └── FeedbackCollector: async collection from Supabase + Pulse
│   │
│   ├── invariants.py [325 lines]
│   │   ├── 4 Non-Halting Invariants:
│   │   │   ├── 1. min_entropy_production (epsilon=0.01)
│   │   │   ├── 2. bounded_divergence (max_divergence=2.0)
│   │   │   ├── 3. cross_layer_forcing (l1_stall=3, l2_stall=5)
│   │   │   └── 4. no_absorbing_states (min_viable_transitions=2)
│   │   └── CALC-aware: calc_results boost novelty, calc_pending adds divergence pressure
│   │
│   ├── metrics.py [194 lines]
│   │   ├── kl_divergence(), jaccard_distance(), state_novelty(), divergence_rate()
│   │   ├── method_novelty(), count_viable_transitions(), entropy()
│   │   └── All used by invariants
│   │
│   ├── population.py [453 lines]
│   │   ├── PopulationManager: crossover, speciation, fleet bootstrap
│   │   ├── Species matrix: language, movement, builder, voice, coffee
│   │   ├── CrossoverResult: capability_graft, architecture_allele, operator_transfer
│   │   └── bootstrap_fleet() — register new apps
│   │
│   └── pulse_bridge.py [1297 lines]
│       ├── Pulse Bridge: CALC dispatch to Cortex panes
│       ├── TEMPLATES_DIR: 10 TIE technique prompt templates
│       ├── select_calc_agent(): G→Codex, R→Claude, D→Gemini
│       ├── MAX_CONCURRENT=2, MAX_CALC_CONCURRENT=3
│       └── Backlog: backlog.json, injection_memory.json
│
├── Branch 2: iOS Build Pipeline (Depth=2) ✓
│   ├── [home-path] [543 lines]
│   │   ├── Creates TestFlight-ready iOS projects
│   │   ├── --payments flag includes StoreKit 2 scaffold
│   │   ├── Uses XcodeGen (project.yml)
│   │   ├── GitHub Actions: ci.yml, testflight.yml, version-bump.yml
│   │   └── Team ID: 8643C988C4
│   │
│   ├── Desktop/Spore/project.yml [64 lines]
│   │   ├── Bundle: com.diomande.spore
│   │   ├── Dependencies: TelemetryDeck
│   │   ├── Deployment: iOS 17.0, Swift 5.9
│   │   └── Targets: Spore (app), SporeWidget (extension)
│   │
├── Branch 3: Payment Integration (Depth=2) ✓
│   ├── Spore: No native payment files found (uses TelemetryDeck, not OpenClawPayments)
│   ├── OpenClawHub/project.yml references no payment packages
│   └── Bootstrap script supports --payments flag for OpenClawPayments SPM
│
└── Branch 4: Search Results ✓
    ├── "graduation": 15 matches in evolution_world/*.py
    ├── "lifecycle": 2 matches (ew_pane_registry.py, test_graduation.py)
    ├── "bootstrap": 6 matches (population.py, test_population.py, bootstrap scripts)
    └── "payment": Build artifacts only (no source files in Spore/OpenClawHub)

---

Fact Inventory per Candidate

### Candidate 1: M-2 EW Graduation
| File | Lines | Key Classes/Functions | Cross-References |
|------|-------|----------------------|------------------|
| `engine.py` | 400 | `EvolutionWorld.evolve_step()`, `EvolutionWorld.evolve_all()` | graduation.py:28, feedback.py:30 |
| `graduation.py` | 234 | `evaluate_graduation()`, `speciate()`, `enter_optimization()`, `enter_dormancy()`, `apply_graduation()` | genome.py:18, feedback.py:31 |
| `genome.py` | 241 | `AppGenome`, `Milestone`, `MutationOperator`, `DEFAULT_MILESTONES` | — |
| `feedback.py` | 334 | `FeedbackState`, `FeedbackCollector`, `compute_grounded_fitness()`, `compute_metabolism()` | — |

Key Facts:
- Graduation triggers at `fitness >= 0.85` (graduation.py:23)
- 3 outcomes: SPECIATION (momentum >0.01/day), OPTIMIZATION (stable), DORMANCY (metabolism <0.15)
- Speciation forks genome: stable (RELEASED) + variant (ACTIVE with new milestones)
- Optimization locks out G-techniques, keeps R/D only (graduation.py:142-149)
- Dormancy preserves capabilities in gene pool for crossover (graduation.py:160)
- Feedback has 5 weighted channels with temporal decay (feedback.py:30-36)

### Candidate 2: A-8 Wave 3
| File | Lines | Key Classes/Functions | Cross-References |
|------|-------|----------------------|------------------|
| `fleet.py` | 329 | `FLEET_3_APPS`, `create_fleet3_genome()`, `initialize_fleet3()`, `run_fleet3_evolution()` | genome.py:18, engine.py:21 |
| `population.py` | 453 | `PopulationManager`, `crossover_capabilities()`, `bootstrap_fleet()` | genome.py:24 |

Key Facts:
- 16 Wave 3 apps defined (fleet.py:28-173)
- All apps start with `testflight_live=1.0` (already on TestFlight)
- Category-specific mutation operator boosts (fleet.py:176-185)
- Spore is most mature: `core_feature=0.7`, others at 0.2-0.3
- Categories: language (5), movement (3), builder (4), voice (2), coffee (1), garden (1)

### Candidate 3: D-4 iOS Build
| File | Lines | Key Classes/Functions | Cross-References |
|------|-------|----------------------|------------------|
| `openclaw-ios-bootstrap.sh` | 543 | `--payments` flag, XcodeGen generation, GitHub Actions scaffolding | — |
| `Spore/project.yml` | 64 | Target definitions, TelemetryDeck dependency | — |
| `OpenClawHub/project.yml` | 78 | TCA + Supabase dependencies | — |

Key Facts:
- Bootstrap script creates complete TestFlight-ready projects
- `--payments` flag adds OpenClawPayments SPM package + entitlements
- ExportOptions.plist uses `destination=export` (NOT upload) for xcodebuild
- Team ID hardcoded: 8643C988C4
- Min iOS 17.0, Swift 5.9-6.0
- GitHub Actions: reusable-ci-swift.yml, reusable-testflight.yml

### Candidate 4: M-9 SwiftUI Design
| File | Lines | Key Classes/Functions | Cross-References |
|------|-------|----------------------|------------------|
| `genome.py` | 241 | `AppGenome.architecture`, `AppGenome.ui_patterns` | — |
| `l1_controller.py` | 430 | `_cross_domain_pattern()`, `_scamper_mutation()` | genome.py:18 |

Key Facts:
- Architecture field: e.g., ["SwiftUI", "TCA", "Supabase", "OpenClawKit"]
- UI patterns: "tab_bar", "navigation_stack", "search_bar", etc.
- SCAMPER mutation can transform architecture (SwiftUI↔UIKit, TCA↔MVVM)
- Design health channel in feedback: weight=0.15, half-life=4h

### Candidate 5: I-1 Payments
| File | Lines | Key Classes/Functions | Cross-References |
|------|-------|----------------------|------------------|
| `openclaw-ios-bootstrap.sh` | 543 | Payment scaffold generation (lines 107-115, 236-252) | — |
| `Spore/project.yml` | 64 | No OpenClawPayments reference (uses TelemetryDeck) | — |
| Build artifacts | N/A | StoreKit headers in build cache (unused) | — |

Key Facts:
- Spore does NOT have OpenClawPayments integration
- Bootstrap can add payment scaffold with `--payments` flag
- Payment scaffold includes: entitlements + PaymentConfig.swift
- IAP products: `pro.monthly`, `pro.yearly`
- Feature gates via PaymentConfig

---

What Exists vs What's Missing

### ✅ What Exists (Strengths)
| Component | Status | Evidence |
|-----------|--------|----------|
| Genome Model | ✅ Complete | genome.py: AppGenome with architecture, capabilities, milestones, mutations |
| L1 Evolution | ✅ Complete | l1_controller.py: evolve_app() with TIE techniques, invariant checks |
| L2 Meta-Evolution | ✅ Complete | l2_controller.py: MethodGenome, technique_weights, strategy mutation |
| L3 Meta-Meta-Evolution | ✅ Complete | l3_controller.py: L3Genome evolves L2 constants every 30 steps |
| 4 Invariants | ✅ Complete | invariants.py: entropy, divergence, cross-layer forcing, no absorbing states |
| Graduation Protocol | ✅ Complete | graduation.py: 3 outcomes with momentum/metabolism logic |
| Feedback Metabolism | ✅ Partial | feedback.py: 5 channels defined, collectors implemented but some return defaults |
| Pulse Bridge | ✅ Complete | pulse_bridge.py: CALC dispatch, TIE templates, agent routing |
| iOS Bootstrap | ✅ Complete | openclaw-ios-bootstrap.sh: full project generation |
| Fleet Registry | ✅ Complete | fleet.py: 16 Wave 3 apps defined |

### ⚠️ What's Missing (Gaps)
| Component | Gap | Impact |
|-----------|-----|--------|
| Unified Lifecycle Orchestrator | No single entry point coordinating bootstrap → evolve → graduate lifecycle | Manual steps between phases, no automated pipeline |
| Payment Integration | Spore has no OpenClawPayments; store_presence channel returns 0.0 default | Feedback loop incomplete, no revenue signals |
| Build Health Integration | collect_build_health() queries Supabase but Pulse session success not wired | Build success not affecting genome fitness |
| EventTracker Engagement | collect_engagement() returns 0.3 default ("no_tracker") | User behavior invisible to evolution |
| Crash Rate Telemetry | collect_crash_rate() returns 0.9 default ("no_data") | App stability not measured |
| Design Health (DHS) | collect_design_health() queries design_scores table (may not exist) | UI quality not integrated |
| Graduation → Deployment Handoff | No automation from graduation outcome to ASC submission | Apps graduate but don't ship automatically |
| Lifecycle State Machine | No formal state machine: BOOTSTRAP → EVOLVE → GRADUATE → SHIP → MONITOR | State transitions implicit in engine.py logic |
| Cross-App Dependencies | Dependencies list exists but no resolution (OpenClawKit, OpenClawPayments versions) | Fleet may drift on shared libraries |

---

Cross-System Connections Discovered

┌─────────────────────────────────────────────────────────────────────┐
│                    APP FLEET LIFECYCLE ECO-SYSTEM                   │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  ┌──────────────┐     ┌──────────────┐     ┌──────────────┐        │
│  │   BOOTSTRAP  │────▶│    EVOLVE    │────▶│   GRADUATE   │        │
│  │              │     │              │     │              │        │
│  │ ios-bootstrap│     │  engine.py   │     │ graduation.py│        │
│  │ fleet.py     │     │  l1/l2/l3    │     │              │        │
│  └──────────────┘     └──────────────┘     └──────────────┘        │
│         │                   │  │  │                 │              │
│         │                   │  │  └─────────────────┘              │
│         │                   │  │         │                          │
│         ▼                   │  │         ▼                          │
│  ┌──────────────┐           │  │   ┌──────────────┐                │
│  │     GITHUB   │           │  │   │   FEEDBACK   │                │
│  │   ACTIONS    │◀──────────┘  └──▶│              │                │
│  │              │  build     │     │  feedback.py │                │
│  │  ci.yml      │  success   │     │  5 channels  │                │
│  │  testflight  │            │     │  metabolism  │                │
│  └──────────────┘            │     └──────────────┘                │
│                              │              │                       │
│                              ▼              │                       │
│                       ┌──────────────┐      │                       │
│                       │     PULSE    │──────┘                       │
│                       │   BRIDGE     │  pulse_results               │
│                       │              │                              │
│                       │ pulse_bridge │                              │
│                       │  CALC agents │                              │
│                       └──────────────┘                              │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

Critical Connections:
1. engine.py:267-269 → graduation.py: `if fitness >= 0.85: evaluate_graduation()`
2. engine.py:184-186 → feedback.py: `fb = self.feedback_states.get(app_name)`
3. feedback.py:223-242 → Supabase `build_timeline` table (may not exist)
4. pulse_bridge.py:77-78 → Backlog dispatch to Cortex panes
5. openclaw-ios-bootstrap.sh:108-115 → OpenClawPayments dependency injection
6. fleet.py:168-173 → Spore genome registration (garden category, 10 capabilities)

---

Constraints and Open Questions for Stage 1

### Constraints
1. Supabase Dependency: All persistence relies on Supabase tables existing (`ew_app_genomes`, `build_timeline`, `design_scores`, `event_tracker`). Tables may not match schema.
2. Pulse Bridge Concurrency: `MAX_CONCURRENT=2`, `MAX_CALC_CONCURRENT=3` limits parallelism (pulse_bridge.py:77-79)
3. Team ID Hardcoded: `8643C988C4` in bootstrap script and project.yml files
4. Category Matrix Fixed: Species distance matrix hardcoded in population.py:32-38
5. Feedback Defaults: 4/5 channels return defaults (no real data sources connected)
6. Graduation Manual: No automation from graduation → App Store Connect submission

### Open Questions
1. Bootstrap Scope: Should bootstrap create ONLY new apps, or also initialize existing apps (Spore, OpenClawHub) with EW genomes?
2. Payment Priority: Should all apps have payments, or only specific categories (builder, garden)?
3. Build Health Source: Should build health come from xcodebuild logs, GitHub Actions, or Supabase?
4. Engagement Tracking: Is EventTracker a real service or planned? If real, what's the API?
5. DHS Integration: Does design_scores table exist? What generates DHS scores?
6. Lifecycle States: Should lifecycle be explicit (state machine) or implicit (fitness-based)?
7. Cross-App Crossover: Should successful features auto-propagate across fleet via crossover?
8. L3 Firing Rate: Is 30 steps optimal? Should it adapt based on fleet size?

---

File Read Summary

CategoryFiles ReadTotal Lines
Evolution World Core10 files3,075 lines
iOS Build3 files685 lines
Search Resultsgrep/lsN/A
TOTAL133,760 lines

Depth Achieved:
- engine.py: depth=3 (imports → graduation → feedback → Supabase)
- fleet.py: depth=2 (imports → genome → DEFAULT_MILESTONES)
- bootstrap.sh: depth=2 (reads templates, generates workflows)
- Spore/OpenClawHub: depth=1 (project.yml only)

Files NOT Found:
- `Desktop/Spore/Spore/Services/StoreManager.swift` — Does not exist
- `Desktop/Spore/Spore/Views/PaywallView.swift` — Does not exist
- `Desktop/OpenClawHub/OpenClawHub/Services/` — Directory structure differs

---

Stage 0 Complete. Grounded in 3,760 lines of source code across 13 files.
Ready for Stage 1: Divergent Exploration (6 paths).

Promotion Decision

Attach run IDs, datasets, metrics, and reproduction commands.

Source Anchor

evo-cube-output/app-fleet-lifecycle-qwen35-cloud/stage0-research.md

Detected Structure

Method · Evaluation · References · Code Anchors · Architecture · is Stage Research