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 |
||
|---|---|---|
| .. | ||
| F-0001-milestone-sequence-drift.md | ||
| F-0002-scenario-coverage-gap.md | ||
| F-0003-isolation-needs-canaries.md | ||
| F-0004-stdlib-driver-instead-of-playwright.md | ||
| F-0005-semantic-actions-earn-their-keep-narrowly.md | ||
| README.md | ||
Framework Findings
Findings about test-driver itself, kept strictly separate from findings about
any system under test. Classes are defined in
docs/TestDriverImprovementLoop.md § 9:
PRODUCT_DEFECT · TEST_DEFECT · MECHANICAL_ADAPTATION · SEMANTIC_CHANGE ·
CONCEPT_DRIFT · FRAMEWORK_LIMITATION · EVIDENCE_FAILURE ·
UNNECESSARY_COMPLEXITY
File naming: F-NNNN-<slug>.md. Identifiers are stable and never reused.
Each finding carries frontmatter (id, class, status, dates, originating
workplan/task) and, when resolved, states which of the three §5 resolution paths
was taken. A finding that leaves an open question records it under "Residual" and
names the task that will answer it — residuals are not parked in prose.
The wider research control plane (hypotheses/, experiments/, concepts/,
decisions/) is built in TD-WP-0002-T03.