diff --git a/harnesses/composites/code-airouter-deepseekv4flash-tdd-repo/v1/harness.yaml b/harnesses/composites/code-airouter-deepseekv4flash-tdd-repo/v1/harness.yaml new file mode 100644 index 0000000..9932308 --- /dev/null +++ b/harnesses/composites/code-airouter-deepseekv4flash-tdd-repo/v1/harness.yaml @@ -0,0 +1,19 @@ +kind: composite +name: code-airouter-deepseekv4flash-tdd-repo +version: 1 +description: "Airouter DeepSeek V4 Flash code agent with TDD enforcement — tests locked read-only, must pass before finish" + +# Inherits airouter context's label gate — only the airouter dispatcher +# advertises this composite (see dispatcher/poller._collect_supported_harnesses). +requires_labels: [airouter] + +layers: + - context: deepseek-code-methodology/v1 + - context: best-practices/v1 + - context: airouter/v1 + - context: gitea-ssh/v1 + - context: agent-repo/v1 + - context: tdd-protect/v1 + - context: tdd-gate/v1 + - capability: python-dev/v1 + - capability: tdd-file-lock/v1 diff --git a/task-templates/airouter-code-tdd-deepseekv4flash-max.yaml b/task-templates/airouter-code-tdd-deepseekv4flash-max.yaml new file mode 100644 index 0000000..6dbf15b --- /dev/null +++ b/task-templates/airouter-code-tdd-deepseekv4flash-max.yaml @@ -0,0 +1,31 @@ +name: airouter-code-tdd-deepseekv4flash-max +description: "Airouter DeepSeek V4 Flash code agent (reasoning_effort=max) with TDD enforcement — agentic runner, tests read-only, must pass before finish" +harness: code-airouter-deepseekv4flash-tdd-repo/v1 +model: DeepSeek-V4-Flash +runtime_cli: agentic +extra_body: + reasoning_effort: max +requires_tags: [agentic-runner, coding-agent, git-access, project-repo, best-practices, tdd-gate] +required_params: [repo_url, agent_repo_url] +labels: [airouter] +defaults: + timeout: 3600 + max_turns: 100 +pre_actions: + - type: clone + repo: "{{ repo_url }}" + branch: main + depth: 1 +blocked_combinations: + - field: on_success + contains_type: commit_pr + message: "Use agent_repo instead of commit_pr — avoids F77 SSH alias URL bug" +warnings: + - "Airouter agents have no web search — all context must be in the repo or prompt" + - "Hard cap: 3 concurrent airouter tasks (DISPATCHER_MAX_TASKS=3 on airouter dispatcher)" + - "Test files are locked read-only at the OS level — agent cannot modify them" + - "Task will be marked failed if the test suite is not green on completion" + - "Use narrow, single-file or single-requirement tasks for best results" + - "allowed_failing_tests support requires M19 (pre-test hook) to be deployed" + - "reasoning_effort=max is forwarded via extra_body (TT-38, agent-runtimes commit pending) — requires airouter/DeepSeek to honor OpenAI-compatible extra_body passthrough; unverified against airouter.ch's specific proxy behavior as of 2026-07-03" + - "New model (released 2026-07): no track record in this codebase yet — treat as experimental until a few tasks land cleanly"