Skip to content

feat: rename the default harness to bash#2063

Merged
mikasenghaas merged 1 commit into
mainfrom
feat/rename-default-harness-to-bash
Jul 18, 2026
Merged

feat: rename the default harness to bash#2063
mikasenghaas merged 1 commit into
mainfrom
feat/rename-default-harness-to-bash

Conversation

@mikasenghaas

@mikasenghaas mikasenghaas commented Jul 18, 2026

Copy link
Copy Markdown
Member

Summary

  • Rename the built-in default harness to bash — the tool-enabled bash (+ edit/search) agent.
  • Move verifiers/v1/harnesses/default/verifiers/v1/harnesses/bash/ and rename DefaultHarness/DefaultHarnessConfigBashHarness/BashHarnessConfig.
  • Change the fallback harness id (used when no harness is specified) from default to bash: HarnessConfig.id, EnvConfig.harness, and loaders.default_harness_id.
  • Rename the default pytest marker to bash.
  • Update docs, skills, and example configs (configs/harbor.toml, configs/gsm8k.toml, docs/v1/*).

Breaking

The harness id default no longer exists — no alias is kept.

  • Configs: any harness = { id = "default", ... } (or [harness]\nid = "default") must change to id = "bash".
  • Fallback: configs that relied on the implicit fallback keep working — the fallback is now bash and resolves to the same harness.
  • Python API: import BashHarness / BashHarnessConfig from verifiers.v1.harnesses instead of DefaultHarness / DefaultHarnessConfig.
  • Tests: -m default-m bash.

Downstream prime-rl example configs reference id = "default" and need a companion update (examples/{glm5_pd_disag,intellect-3.1,minimax_m2.5_swe,qwen30b_swe}/rl.toml).

Verification

  • harness_class("bash") is BashHarness, default_harness_id("") == "bash", HarnessConfig().id == "bash", EnvConfig().harness.id == "bash", load_harness(HarnessConfig(id="bash"))BashHarness — all pass.
  • uv run pytest tests/v1 --collect-only -m bash collects the 8 bash-harness e2e cases; uv run pytest --markers lists @pytest.mark.bash (no default).

🤖 Generated with Claude Code


Note

Medium Risk
Breaking API and config change for any explicit harness.id = "default" or DefaultHarness imports; implicit defaults remain equivalent but downstream repos (e.g. prime-rl examples) need coordinated updates.

Overview
Breaking rename: the tool-enabled built-in harness id changes from default to bash. The implementation moves from verifiers/v1/harnesses/default/ to verifiers/v1/harnesses/bash/ with DefaultHarness / DefaultHarnessConfig renamed to BashHarness / BashHarnessConfig; public exports in verifiers.v1.harnesses follow suit.

Defaults and resolution: implicit harness selection now uses bash everywhere it previously used defaultHarnessConfig.id, EnvConfig.harness, and loaders.default_harness_id(). Configs that omit harness.id still get the same agent behavior under the new id.

Tooling and docs: example TOMLs (harbor, gsm8k), v1 docs/skills, init scaffold text, and the v1 e2e pytest marker switch from default to bash (-m bash). The default harness id is not kept as an alias; callers must use id = "bash" and import BashHarness types.

Reviewed by Cursor Bugbot for commit 320e4ed. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Rename the default harness to bash across configs, code, and docs

  • Renames DefaultHarness/DefaultHarnessConfig to BashHarness/BashHarnessConfig and moves the implementation from verifiers/v1/harnesses/default/ to verifiers/v1/harnesses/bash/.
  • Changes the default id in HarnessConfig and EnvConfig from "default" to "bash", and updates default_harness_id() in loaders.py to return "bash" when no taskset harness is found.
  • Updates all TOML configs, docs, skill references, CLI templates, and test fixtures to use the bash harness id and marker.
  • Behavioral Change: any code that resolves a harness by the string "default" will no longer match the built-in harness; callers must use "bash".

Macroscope summarized 320e4ed.

Rename the built-in `default` harness to `bash`, including the fallback
harness id used when none is specified.

- verifiers/v1/harnesses/default -> verifiers/v1/harnesses/bash
- DefaultHarness/DefaultHarnessConfig -> BashHarness/BashHarnessConfig
- HarnessConfig.id default and EnvConfig fallback -> "bash"
- loaders.default_harness_id fallback -> "bash"
- pytest marker `default` -> `bash`
- docs, skills, and example configs updated

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@macroscopeapp

macroscopeapp Bot commented Jul 18, 2026

Copy link
Copy Markdown

Approvability

Verdict: Approved

Mechanical rename from 'default' to 'bash' harness throughout the codebase. All changes are naming-only (class renames, string literals, docs, configs) with no behavioral impact.

You can customize Macroscope's approvability policy. Learn more.

@mikasenghaas
mikasenghaas merged commit ce5c2ee into main Jul 18, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants