# Sleipnir per-project config for ratatoskr. # # Copy to .sleipnir/config.yaml (gitignored) and adjust per-checkout. # User-global config lives at ~/.config/sleipnir/config.yaml. # # Schema verified against: # src/sleipnir/cli.py:505-528 (issue_tracker instantiation) # src/sleipnir/orchestrator.py:367-368 (stages.plan + stages.verifier) # src/sleipnir/jobs.py:9 (VALID_PHASES) # tests/conftest.py:10-32 (gold-standard config shape) stages: plan: provider: claude_code_oneshot model: claude-sonnet-4-6 verifier: provider: openai_compat model: glm-5.1 implement: provider: claude_code_oneshot model: claude-sonnet-4-6 review: provider: claude_code_oneshot model: claude-opus-4-7 providers: openai_compat: base_url: https://api.z.ai/api/coding/paas/v4 api_key_env: Z_AI_API_KEY timeout_seconds: 3000 claude_code_oneshot: timeout_seconds: 900 # Plug in the issue tracker once ratatoskr is registered with Gitea: # ratatoskr_issues: # repo: /home/lkraven/development/ratatoskr # sandbox_provider: docker # issue_tracker: ratatoskr_issues agent_runtime: claude_code passthrough_env: - Z_AI_API_KEY - GITEA_TOKEN - ANTHROPIC_API_KEY - TASK_BOARD_URL concurrency: 1 max_rounds: 3 dispatch: dependency_aware: true # INV-029: hold dependents at intake # when their `dependencies:` frontmatter # block points at issues that are open / # closed-but-not-on-main / orphaned-without-merge.