Proposal
Remove the stale src/harness/ stub agent-runner. It was the original sketch of
the skill-invocation harness but was never implemented, and it has been
superseded by the modular src/folds/ work + the agent runner we're about to
build (Step 3).
Why it's dead weight
Remove
src/harness/__init__.py
src/harness/run_skill1.py
src/harness/run_skill2.py
src/harness/run_pipeline.py
src/harness/oracle.py
src/harness/exemplar_selection.py # (review: exemplar logic may be worth salvaging)
Dependents to handle in the same change
These import src.harness and are themselves NotImplementedError stubs of the
old design — remove them too, or rewrite against the new runner once it exists:
experiments/phase_a_crossval.py (from src.harness.run_pipeline/run_skill1/run_skill2/oracle import …)
experiments/phase_b_prospective.py (from src.harness.run_pipeline import …)
Explicitly NOT in scope (keep)
src/schemas/ — not orphaned; src/metrics/skill1_metrics.py (CuratorBundle)
and src/metrics/skill2_structural.py (TargetSchema) use it.
src/metrics/ — the scoring side (Step 4). May need updating for the modular
world later, but that's a separate review, not part of this removal.
Acceptance criteria
Proposal
Remove the stale
src/harness/stub agent-runner. It was the original sketch ofthe skill-invocation harness but was never implemented, and it has been
superseded by the modular
src/folds/work + the agent runner we're about tobuild (Step 3).
Why it's dead weight
run_skill1.py,run_skill2.py,run_pipeline.py,oracle.py(and the
__init__) areNotImplementedErrorplaceholders — nothing invokesan LLM (
grep -r 'anthropic|openai|claude|codex' src/→ nothing).and the
CuratorBundleflow, before PR Refactor expert harmonizer from monolith to modular package #8 (modularharmonize_sm/+expert_harmonizer) and PR build_env + mapping filter for leave-one-cluster-out run environments #6/Fix: port build_env to modular expert_harmonizer (restores main broken by #8) #10 (build_env).src/harness/__init__.pyeagerly imports allrunners, one of which has a PEP-604 (
X | None) annotation that crashes atimport on Python 3.9 — this is why
build_envwas deliberately decoupled intosrc/folds/rather than living undersrc/harness/..runs/<cfg>/environments and the modular harmonizer, not these stubs.
Remove
Dependents to handle in the same change
These import
src.harnessand are themselvesNotImplementedErrorstubs of theold design — remove them too, or rewrite against the new runner once it exists:
experiments/phase_a_crossval.py(from src.harness.run_pipeline/run_skill1/run_skill2/oracle import …)experiments/phase_b_prospective.py(from src.harness.run_pipeline import …)Explicitly NOT in scope (keep)
src/schemas/— not orphaned;src/metrics/skill1_metrics.py(CuratorBundle)and
src/metrics/skill2_structural.py(TargetSchema) use it.src/metrics/— the scoring side (Step 4). May need updating for the modularworld later, but that's a separate review, not part of this removal.
Acceptance criteria
src/harness/removed.src.harnessanywhere (experiments removed or rewired).src/folds/andsrc/metrics/unaffected; full test suite still green.exemplar_selectionlogic is worth keeping, relocate it (e.g. into thenew runner) rather than dropping it silently.