Configuration Reference All Tiers

Complete reference for .paircoder/config.yaml

Quick Templates

Minimal (Solo Developer)

yaml
version: "2.8"

project:
  name: "my-project"

workflow:
  main_branch: "main"

metrics:
  enabled: true

hooks:
  enabled: false

Full Autonomy (BPS Preset)

yaml
version: "2.8"

project:
  name: "my-project"
  description: "Full autonomous workflow"
  coverage_target: 80

workflow:
  main_branch: "main"

models:
  navigator: claude-opus-4-5
  driver: claude-sonnet-4-5
  reviewer: claude-sonnet-4-5

routing:
  by_complexity:
trivial:   { max_score: 20,  model: claude-haiku-4-5 }
simple:    { max_score: 40,  model: claude-haiku-4-5 }
moderate:  { max_score: 60,  model: claude-sonnet-4-5 }
complex:   { max_score: 80,  model: claude-opus-4-5 }
epic:      { max_score: 100, model: claude-opus-4-5 }

hooks:
  enabled: true
  on_task_start: [check_token_budget, start_timer, sync_trello, update_state]
  on_task_complete: [stop_timer, record_metrics, sync_trello, update_state]

trello:
  board_id: "your-board-id"

enforcement:
  strict_ac_verification: true
  require_budget_check: true

containment:
  enabled: true
  mode: strict

Schema Reference

Project Section

yaml
project:
  name: "my-project"           # Required: Project name
  description: "Description"   # Optional: Brief description
  primary_goal: "Main goal"    # Optional: Primary objective
  coverage_target: 80          # Optional: Test coverage target %

Routing Section

yaml
routing:
  by_complexity:
trivial:   { max_score: 20,  model: claude-haiku-4-5 }
simple:    { max_score: 40,  model: claude-haiku-4-5 }
moderate:  { max_score: 60,  model: claude-sonnet-4-5 }
complex:   { max_score: 80,  model: claude-opus-4-5 }
epic:      { max_score: 100, model: claude-opus-4-5 }
  overrides:
security: claude-opus-4-5
architecture: claude-opus-4-5

Hooks Section

yaml
hooks:
  enabled: true
  on_task_start:
- check_token_budget
- start_timer
- sync_trello
- update_state
  on_task_complete:
- stop_timer
- record_metrics
- sync_trello
- update_state
- check_unblocked

Available Hooks

HookDescription
check_token_budgetWarn if task exceeds budget threshold
start_timerStart time tracking for task
stop_timerStop timer, calculate duration
record_metricsRecord token usage
sync_trelloUpdate Trello card status
update_stateRefresh state.md
check_unblockedFind tasks unblocked by completion

Enforcement Section

yaml
enforcement:
  state_machine: false           # Formal state transitions
  strict_ac_verification: true   # Require AC checked before done
  require_budget_check: true     # Check budget before starting
  block_no_hooks: true           # Block --no-hooks in strict mode

Containment Section

yaml
containment:
  enabled: true
  mode: strict                    # strict | permissive
  auto_checkpoint: true

  blocked_files:
- .env
- credentials.json

  readonly_directories:
- .claude/agents
- .claude/skills
  readonly_files:
- CLAUDE.md
- .paircoder/config.yaml

  allow_network:
- api.anthropic.com
- api.trello.com
- github.com

Architecture Section

yaml
architecture:
  thresholds:
file_lines_error: 400
file_lines_warning: 200
function_lines: 50
functions_per_file: 15
imports_per_file: 20

Validation

bash
# Validate config file
bpsai-pair validate

# Show current config
bpsai-pair config show