feat: rename the default harness to bash#2063
Merged
Merged
Conversation
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>
ApprovabilityVerdict: 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. |
xeophon
approved these changes
Jul 18, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
defaultharness tobash— the tool-enabledbash(+edit/search) agent.verifiers/v1/harnesses/default/→verifiers/v1/harnesses/bash/and renameDefaultHarness/DefaultHarnessConfig→BashHarness/BashHarnessConfig.defaulttobash:HarnessConfig.id,EnvConfig.harness, andloaders.default_harness_id.defaultpytest marker tobash.configs/harbor.toml,configs/gsm8k.toml,docs/v1/*).Breaking
The harness id
defaultno longer exists — no alias is kept.harness = { id = "default", ... }(or[harness]\nid = "default") must change toid = "bash".bashand resolves to the same harness.BashHarness/BashHarnessConfigfromverifiers.v1.harnessesinstead ofDefaultHarness/DefaultHarnessConfig.-m default→-m bash.Downstream
prime-rlexample configs referenceid = "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 bashcollects the 8 bash-harness e2e cases;uv run pytest --markerslists@pytest.mark.bash(nodefault).🤖 Generated with Claude Code
Note
Medium Risk
Breaking API and config change for any explicit
harness.id = "default"orDefaultHarnessimports; 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
defaulttobash. The implementation moves fromverifiers/v1/harnesses/default/toverifiers/v1/harnesses/bash/withDefaultHarness/DefaultHarnessConfigrenamed toBashHarness/BashHarnessConfig; public exports inverifiers.v1.harnessesfollow suit.Defaults and resolution: implicit harness selection now uses
basheverywhere it previously useddefault—HarnessConfig.id,EnvConfig.harness, andloaders.default_harness_id(). Configs that omitharness.idstill get the same agent behavior under the new id.Tooling and docs: example TOMLs (
harbor,gsm8k), v1 docs/skills,initscaffold text, and the v1 e2e pytest marker switch fromdefaulttobash(-m bash). Thedefaultharness id is not kept as an alias; callers must useid = "bash"and importBashHarnesstypes.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
bashacross configs, code, and docsDefaultHarness/DefaultHarnessConfigtoBashHarness/BashHarnessConfigand moves the implementation fromverifiers/v1/harnesses/default/toverifiers/v1/harnesses/bash/.idinHarnessConfigandEnvConfigfrom"default"to"bash", and updatesdefault_harness_id()inloaders.pyto return"bash"when no taskset harness is found.bashharness id and marker."default"will no longer match the built-in harness; callers must use"bash".Macroscope summarized 320e4ed.