test-driver/research/hypotheses/H-001-semantic-action-stability.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

2.1 KiB

id title status created experiments concepts
H-001 Semantic Action Stability EXPERIMENTING 2026-08-22
E-001
C-semantic-action

H-001 — Semantic Action Stability

Claim

A semantic action survives implementation restructuring better than a recorded UI interaction sequence.

Falsification condition

Across the labelled mechanical mutations in the lab (T05), a recorded interaction sequence survives at least as many mutations as the semantic action does.

If mechanics-free identity buys no measurable durability, the central abstraction is decorative and SemanticAction should be reduced to a naming convention.

Measurement

Mechanical Recovery Rate for each of two arms over the same mutation set:

  • arm A — semantic action realized by an agentic driver;
  • arm B — a recorded selector-based sequence captured against the baseline.

Arm B is a genuine control and must be run, not assumed to fail.

Threats to validity

The comparison is unfair if arm B is built naively — a brittle straw man makes H-001 trivially true and worthless. Arm B uses the most robust selector strategy reasonably available (roles, labels, test ids where the lab provides them).

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

Twelve mechanical mutations, both arms, same semantic action:

Discovery (agentic) Recorded selectors (control)
test ids preserved (9) 9/9 9/9
test ids dropped (3) 2/3 0/3

Not falsified, but substantially narrowed. Where stable identifiers survive, the control arm matches the agentic arm exactly — the semantic action buys nothing. It earns its keep only where identifiers are absent or not carried forward.

Three mutations on the deciding side is directionally clear and statistically nothing. See research/findings/F-0005-... — the concept model overstates this and should be revised to match the evidence.

Scope caveat (F-0004): the driver tests structural durability only. Visual relayout is untested.

Status log

  • 2026-08-22 PROPOSED. No evidence.
  • 2026-08-22 EXPERIMENTING. Partial evidence from T07; awaiting E-001 in full.