Files
Open_Ultra_SAST/.kiro/specs/harnessx-removal/brief.md
T

2.2 KiB

Brief: remove HarnessX after the plane proves value

Status: brief only, gated. Not started until ai-service-plane Requirement 6 records a met gate.

Inventory (read-only, 2026-09-29)

  • Code: src/openultrasast/harness_ext.py (97 lines) and hunter_harness.py (197) exist only for HarnessX; guarded branches in cli.py (372-512), fusion.py (LLM panels, ~100 lines), verify_judge.py (judge path, ~90), stage_processors.py (host_under_harnessx, ~40), config.py (HarnessxConfig). About 575 of 30,243 lines (1.9%). Every path falls back deterministically when the extra is absent and records a degradation (harnessx_extra_unavailable; fallbacks run_hunter_pool, structural_verifier, deterministic_panels). evolve, regress, benchmark, gate and quick mode do not depend on it.
  • Comment-only mentions (re-verified 2026-09-30): gate.py:174, improve/evolve.py:9, slot_contract.py:7-13.
  • Packaging: pyproject.toml extra harnessx pinned to a git commit; mypy override; uv.lock entry.
  • Tests: 14 files touch it; dedicated test_harness_ext.py, test_hunter_harness.py, test_cli_hx_dispatch.py, test_verify_judge.py; tests/conftest.py fixture assert_cold_of_harnessx.
  • Docs: README sections "Configuring the HarnessX agentic plane" and "The HarnessX self-improving cycle"; docs/examples.md section 6; docs/threat-model.md egress and spend caps.
  • Specs: harnessx-self-improving-rulesets (approved, 43/43 done, Requirement 1 is direct adoption); learning-harness (30/33); three-stage-scan framed as its follow-up; openrouter-sast-harness (no spec.json); mentions in four more; steering overview.md:175.

Shape of the removal

  1. Replace the three guarded paths with plane tasks (hunter pool -> verify; judge -> judge; panels -> judge/agree) so their fallbacks become the only path, then delete the two modules, the config block, the extra, the override and the fixture.
  2. Retire the four specs' HarnessX requirements with a dated note, not a rewrite; update README and docs.
  3. Gate: the plane increment met (recall and cost), and the replaced features measured no worse on the development pins before deletion.