ooda-loop 1.0.0

OODA Loop — autonomous coding orchestrator (Ollama/Grok review, codebuff/aider/ollama coding)
# OODA Loop Configuration
# ========================

# Target project to work on
project_dir: "/tmp/ooda-demo"

# --- Coding Agent (inner loop) ---
coding_agent:
  # Options: codebuff, aider, ollama, ollama-fim, custom
  backend: ollama
  model: qwen2.5-coder:14b         # complex tasks (14b)
  model_simple: qwen2.5-coder:7b   # simple tasks (7b, 2x faster)
  endpoint: http://localhost:11434
  # For codebuff: backend: codebuff
  # For aider:    backend: aider
  # For custom:   backend: custom
  #               command: "your-tool --prompt '{prompt}' --dir '{project_dir}'"

# --- Reviewer (outer loop) ---
# Options: "claude" (Anthropic), "api" (Grok/OpenRouter), "ollama" (fully local)
reviewer: ollama
reviewer_model: qwen2.5-coder:14b
reviewer_endpoint: http://localhost:11434

# For Claude (needs Anthropic API credits):
# reviewer: claude
# reviewer_model: claude-sonnet-4-20250514
# anthropic_api_key: "$ANTHROPIC_API_KEY"

# For Grok via xAI API:
# reviewer: api
# xai_api_key: "$XAI_API_KEY"
# review_api_base: "https://api.x.ai/v1"
# review_model: "grok-3-mini"

# For any model via OpenRouter:
# reviewer: api
# xai_api_key: "$OPENROUTER_API_KEY"
# review_api_base: "https://openrouter.ai/api/v1"
# review_model: "x-ai/grok-3-mini"

# --- Test gate ---
test_command: "/usr/bin/python3 -m pytest -x --tb=short -p no:anchorpy"
# test_command: "npm test"
# test_command: "pytest -x"
# test_command: "cargo test"

# --- Loop controls ---
max_attempts_per_task: 3   # retries per task before marking failed
max_cycles: 20             # total loop iterations before stopping
auto_push: false           # push to remote when all tasks done
dry_run: false             # log what would happen without executing