mirror of
https://github.com/norandom/OpenUltraSAST.git
synced 2026-10-19 04:59:28 +00:00
Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01EmM1j46qgKMh3zqD1QMwEo
31 lines
2.2 KiB
Markdown
31 lines
2.2 KiB
Markdown
# 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.
|