project: name: pastebin root: . task_file: .nightshift/tasks.md artifact_dir: .nightshift safety: require_clean_worktree: false scoped_paths: - src - tests - templates - pyproject.toml - README.md allowed_commands: - python -m pytest -q tests/test_{task_id_compact}.py forbidden_commands: - rm -rf - git push - curl | bash experiment: label: pastebin-model-fallback prompt_variant: tdd-qwen-omnicoder-deepseek-v2 agents: planner: backend: ollama model: qwen2.5-coder:14b temperature: 0.2 system_prompt: .nightshift/agents/planner.md implementer_qwen: backend: ollama model: qwen2.5-coder:14b temperature: 0.1 system_prompt: .nightshift/agents/implementer.md test_writer: backend: ollama model: qwen2.5-coder:14b temperature: 0.1 system_prompt: .nightshift/agents/test-writer.md implementer_omnicoder: backend: ollama model: carstenuhlig/omnicoder-9b temperature: 0.1 system_prompt: .nightshift/agents/implementer.md implementer_deepseek: backend: ollama model: deepseek-coder-v2:16b temperature: 0.1 system_prompt: .nightshift/agents/implementer.md debugger: backend: ollama model: qwen2.5-coder:14b role: debugger temperature: 0.1 system_prompt: .nightshift/agents/debugger.md reviewer: backend: ollama model: qwen2.5-coder:14b temperature: 0.1 system_prompt: .nightshift/agents/reviewer.md pipeline: max_task_retries: 6 stop_on_repeated_failure_signature_after: 6 continue_on_task_failure: false stages: - id: plan type: agent agent: planner output: plan.md - id: semantic_context type: semantic_context output: semantic-context.md - id: context type: repo_context output: context-pack.md - id: implement type: file_writer agent_pool: - implementer_qwen - implementer_omnicoder - implementer_deepseek output: proposed.patch - id: normalize type: patch_normalizer output: normalized.patch - id: validate_patch type: patch_validator output: patch-validation.md max_files: 12 max_lines: 900 max_delete_ratio: 0.70 allowed_paths: - src - templates - README.md on_fail: implement - id: apply_patch type: patch_apply mode: apply output: patch-apply-output.txt on_fail: implement - id: test type: command commands: - python -m pytest -q tests/test_{task_id_compact}.py output: test-output.txt shell: true timeout_seconds: 25 on_fail: implement - id: review type: agent_review agent: reviewer output: review.md on_fail: implement - id: summarize type: summarize output: final-notes.md