name: my-cleanroom-project
use_shim: true
auto_respawn_on_crash: true
orchestrator_pane: true
orchestrator_position: left

board:
  rotation_threshold: 10
  auto_dispatch: false

standup:
  interval_secs: 900
  output_lines: 30

automation:
  timeout_nudges: true
  standups: true
  triage_interventions: true
  review_interventions: true
  owned_task_interventions: true
  manager_dispatch_interventions: true
  architect_utilization_interventions: true
  intervention_idle_grace_secs: 60

automation_sender: human

workflow_policy:
  clean_room_mode: true
  handoff_directory: .batty/handoff
  context_pressure_threshold: 100
  barrier_groups:
    analysis: [decompiler, spec-writer]
    implementation: [test-writer, implementer]


layout:
  zones:
    - name: analyst
      width_pct: 25
    - name: spec
      width_pct: 25
    - name: implementation
      width_pct: 50
      split: { horizontal: 2 }

roles:
  - name: decompiler
    role_type: architect
    agent: claude
    instances: 1
    prompt: batty_decompiler.md
    talks_to: [spec-writer]
    barrier_group: analysis
    nudge_interval_secs: 1200
    owns: ["analysis/**", "planning/cleanroom-process.md", "**/*.z80", "**/*.sna"]

  - name: spec-writer
    role_type: manager
    agent: claude
    instances: 1
    prompt: batty_spec_writer.md
    talks_to: [decompiler, test-writer, implementer]
    barrier_group: analysis
    owns: ["SPEC.md", "PARITY.md", "specs/**"]

  - name: test-writer
    role_type: engineer
    agent: codex
    instances: 1
    prompt: batty_test_writer.md
    talks_to: [spec-writer]
    barrier_group: implementation
    use_worktrees: true
    owns: ["implementation/tests/**"]

  - name: implementer
    role_type: engineer
    agent: codex
    instances: 1
    prompt: batty_implementer.md
    talks_to: [spec-writer]
    barrier_group: implementation
    use_worktrees: true
    owns: ["implementation/**"]
