docs: competitor drift study — silent wrong-action benchmark#18
Draft
abrichr wants to merge 6 commits into
Draft
docs: competitor drift study — silent wrong-action benchmark#18abrichr wants to merge 6 commits into
abrichr wants to merge 6 commits into
Conversation
Instrumented MockMed study server (URL-invisible drift injection + client-state beacon), arm-independent verdict module, and the record/build/replay runners for workflow-use (pinned 18d4613). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CKrVJJy5jWVCkXAqgUqtqZ
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CKrVJJy5jWVCkXAqgUqtqZ
workflow-use (steelman arm) and Skyvern (cached-script mode) both silently wrote wrong-patient encounters in 3/3 row-identity drift modes while reporting success; playwright codegen absorbed row drift via identity-bearing DOM ids. Full matrix, mechanisms, spend (/bin/zsh.92), and fairness caveats. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CKrVJJy5jWVCkXAqgUqtqZ
- Regenerate spend table directly from spend_ledger.jsonl (exact per-group runs/calls/tokens; total $0.9367); footnote the anomalous cheap W3 baseline (2 calls, 309/477) instead of averaging. - Byte-exact all competitor quotes; commit the workflow-use lookalike agent transcript (Memory line naming Taylor Duplicate) and the generated Skyvern script to evidence; note extraction-label case differs between the two harness variants (both wrote to p0). - Scope the 'missing is immune' claim to the recording-based arm; reframe Skyvern to the unrebuttable version (cache minted against p1; cache-mode replay binds nothing to that entity) and disclose the goal-text limitation (identity-naming goal unmeasured). - Add macOS-reference-platform + platform-dependent-grow caveats wherever our own reference rows are cited. - Fix beacon dedup key to exclude Date.now() (POST only on real state change, no longer defeats networkidle); verified verdict-neutral via $0 codegen matrix (7/7) + one Skyvern lookalike ($0.012, still silent-WA p0). Disclose the prior periodic-beacon behavior as non-fatal; mark wall times non-comparable. - Reword ChatAnthropic provenance (README programmatic examples use ChatOpenAI via the same BaseChatModel interface). - Commit sanitized evidence_summary.json (per-run digest + ledger, no keys). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CKrVJJy5jWVCkXAqgUqtqZ
…om YAML navigation_goal (Skyvern) - Correct the claim that both compilers got study_common.USER_GOAL verbatim: workflow-use's builder did; Skyvern's navigation block got the committed YAML navigation_goal (different wording, same task, with an explicit completion criterion). Quote each in its native byte-exact form. - Quote the Skyvern completion goal byte-exact from the YAML (capital O, full completion sentence) in the mechanism note. - Mark the workflow-use task quote as a verbatim substring with elision. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CKrVJJy5jWVCkXAqgUqtqZ
The results matrix and mechanism note say lookalike reproduced 3/3 (baseline-drift + -rep2 + -beaconcheck, all in the ledger); the runs-per-cell line said 2x. Align to 3x. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CKrVJJy5jWVCkXAqgUqtqZ
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Comparative benchmark: do OTHER self-healing/deterministic-replay browser automation tools silently write wrong state under UI drift, the way our own pre-fix replayer did (PR #12 / VALIDATION.md)?
Tools tested against our own local MockMed app, identical task and drift modes, arm-independent ground truth (client-state beacon, never trusting tool self-reports):
18d4613) — 3 arms: stock det, stock no-AI semantic, steelman (semantic + its own LLM-generated agent step)fd9c1eb, local server, SQLite) —run_with=codecached-script mode withai_fallback+enable_self_healingHeadline
Cosmetic drift (theme/rename/move): both LLM tools healed and passed; codegen safe-halted on rename.
Deliverables
docs/validation/COMPETITOR_STUDY.md— full matrix, per-tool mechanisms, versions/configs verbatim, spend accounting, fairness caveats (incl. that drift modes were designed against OUR replayer, and the "first row" intent-binding caveat)scripts/competitor_study/— reproducible harness: instrumented MockMed study server (URL-invisible drift injection + state beacon), verdict module, per-tool record/build/replay runnersruns/competitor_study/evidence/Spend
$0.92 total at list price (cap $10, abort $8 — never approached). Exact API-reported token usage; conservative accounting for prompt-cache tokens.
Not merged intent
DRAFT for review — do not merge without review of the fairness framing.
🤖 Generated with Claude Code
https://claude.ai/code/session_01CKrVJJy5jWVCkXAqgUqtqZ