test-driver/research/hypotheses/H-002-mechanical-adaptation.md
tegwick 44faf3de8e T07: agentic realization over a stdlib browser surface
Two decisions taken with the operator: stdlib HTML driver instead of
Playwright (F-0004), and a deterministic discovery runtime instead of a live
model. Both sit behind interfaces so the alternatives drop in later.

- html.py: stdlib DOM parse and query
- agentic.py: DiscoveryRuntime (agentic arm, ignores data-td by construction)
  and RecordedSelectorRuntime (control arm, uses the strongest identifier the
  page offers)
- browser.py: per-actor sessions over real HTTP, constructed per call so no
  actor inherits another's connection state
- cost/nondeterminism metrics recorded from the first run

F-0005 (CONCEPT_DRIFT): the H-001 result is a narrowing. Where test ids are
preserved, discovery 9/9 and recorded selectors 9/9 - the semantic action buys
nothing. Where they are dropped, discovery 2/3 and recorded 0/3. The concept
model presents semantic actions as generally superior; the evidence says
conditionally superior.

M21 and M22 added mid-task: the deciding side of the axis was N=1. M22 (field
names renamed) defeats the heuristic and is the first concrete evidence that a
live model would add capability, not just cost.

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

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 1629012@bnt-lap001
Assistant-Session: 78d4fb13-8a1e-474b-87a3-9b9261c49a39
2026-08-22 23:50:29 +02:00

1.9 KiB

id title status created experiments concepts
H-002 Mechanical Adaptation EXPERIMENTING 2026-08-22
E-001
C-adaptation

H-002 — Mechanical Adaptation

Claim

An agentic driver can recover from a mechanical implementation change without modifying the semantics of the protected use case.

Falsification condition

Either:

  • the driver fails to recover from a majority of labelled MECHANICAL mutations (recovery is not achievable in practice); or
  • recovery is achieved only in runs where claims or invariants were altered (recovery is achievable but not semantics-preserving).

The second branch matters more than the first. A high recovery rate purchased by weakening assertions falsifies this hypothesis just as decisively as no recovery at all.

Measurement

  • Mechanical Recovery Rate over MECHANICAL-labelled mutations.
  • Claim/invariant diff per run — expected to be empty by construction (docs/TestDriverClassificationDesign.md D-02). Any non-empty diff is both a falsification signal and a framework defect, since no write path should exist.

Result so far (TD-WP-0002-T07)

Discovery recovered from 11 of 12 mechanical mutations with no claim or invariant diff in any run, as D-02 requires structurally. The single failure (M22, field names renamed) failed loudly — a RealizationFailed recorded in evidence, not a silent pass. That distinction is the one that matters: the framework reported that it could not act, rather than reporting that nothing was wrong.

Full classification of recovery vs defect is T08.

Status log

  • 2026-08-22 PROPOSED.
  • 2026-08-22 EXPERIMENTING. Recovery demonstrated; classification pending T08. Design decision D-02 makes the second falsification branch structurally unreachable; the measurement is retained anyway, as an assertion that the architecture is what we believe it is.