DEC-0009: Orchestration Change — Cursor Takes the Lead

Date: 2026-03-22 Decision by: Human Status: Active Supersedes: Partial supersession of DEC-0001 (three-agent system roles unchanged, orchestration layer changed)

Context

Perplexity Computer was serving as the top-level orchestrator, intended to delegate execution to Cursor (local code/automation) and Claude Code (editorial/scripts). In practice, Perplexity:

  1. Ran media generation (TTS, video assembly, image processing) in ephemeral cloud virtual machines instead of delegating locally
  2. Provisioned API keys inside sandboxes that were destroyed — keys, assets, and hours of work lost
  3. Committed metadata for 109 images when only 10 existed on disk
  4. Attempted video assembly twice in the cloud; both failed
  5. Hit rate limits from sandbox IP addresses on Wikimedia downloads
  6. Created merge conflicts with duplicate YAML keys in 42+ KB entries
  7. Spent hundreds of dollars in API costs with nothing durable to show

Decision

Cursor is now the orchestration agent. The three-agent system (DEC-0001) remains, but with revised orchestration:

  • Cursor drives task sequencing, pipeline execution, local media generation, site development, and quality control
  • Claude Code handles editorial voice passes, script drafting, and KB content enrichment — delegated by Cursor or human
  • Perplexity handles external research, fact-checking, and bulk KB population — delegated by human only, with explicit scope boundaries

Rules

  1. No media generation in cloud workspaces. All audio, image, and video generation runs locally via Cursor or Adobe CC.
  2. No API key provisioning in ephemeral environments. All keys live in .env.local or Vercel env vars.
  3. No metadata without assets. Never commit IMG/audio/video metadata unless the actual file exists on disk or Blob.
  4. Perplexity's scope is research and text. It writes markdown, YAML, and nothing else. No scripts, no API calls, no media.
  5. Manifest is the coordination layer. episodes/{id}/manifest.yaml is the single source of truth for production state.

Consequences

  • Production pipeline v2 (docs/production-pipeline.md) governs all episode production
  • Voice config updated to Gemini 2.5 Pro TTS (Schedar), the voice actually selected for S1E1
  • docs/ reorganized into clean structure with archived ephemeral files
  • Gemini TTS generation script written (scripts/voice-generate-gemini.mjs)
0:00
0:00