Skip to content

demo: CUA to program on openIMIS claims, plus the scoreboard (arms 1-3) - #1303

Merged
abrichr merged 23 commits into
mainfrom
claude/launch-demo-cua-to-program-8fa902
Oct 19, 2026
Merged

abrichr merged 23 commits into
mainfrom
claude/launch-demo-cua-to-program-8fa902

Conversation

@abrichr

@abrichr abrichr commented Oct 18, 2026 •

Copy link
Copy Markdown
Member

A launch demo, built on real runs. Claude enters one openIMIS insurance claim, OpenAdapt compiles that run into a program, and the program enters the next claims with no model calls, reading each save back from the database. This PR also starts the scoreboard: one benchmark for the agent alone, its first run under OpenAdapt, and the compiled program.

Status: demo profile, not admitted for production. The standard run gate refuses these openIMIS forms today. The reasons are in demo/cua_to_program/results/launch-4/admission.json and the README.

Measured (openIMIS, run launch-4, synthetic data)

Agent (once) Compiled program
Model claude-opus-5-5, computer_toolset_20260801 none
Time 44.75 s median 14.38 s per saved claim (n=49)
Model calls / cost 8 / $0.1176 0 / $0
Read back from the database no (correct when read afterwards) 49 of 50 saved, 4/4 checks each, all first attempt
Claim 50 (Save button relabelled) — stopped before saving, 3 of 3 attempts, nothing written; batch paused, 51–100 wait for a person
  • Load: all times were taken on a shared host at load 59–620 on 12 cores, so they are labelled as such everywhere. Timed numbers will come from the scoreboard at load 12 or under.
  • Engine: the batch ran on main plus fix(flow): re-observe once before halting on an identity mismatch #1293 (local merge a8cca993, recorded in the results).
  • Correctness batch: 100 claims with no UI change, in progress (results/launch-4-c100/).
  • Spend: Claude API spend is tracked in packages/flow/benchmark/scoreboard/raw/spend.json ($3.17 when this was written) against the $30 cap.

Videos

Engine changes (packages/flow)

Strict improvements only; no gate or lease is relaxed here.

  • jit.WebApp.setup(page): unmeasured sign-in and blank-form setup, never recorded.
  • jit.WebApp.open(): matches feat(flow): compile_agent runs on Windows, macOS, Linux, RDP and Citrix apps #1283.
  • jit.WebApp.record_video_dir and capture_settle_timeout_s: tests in tests/test_jit_webapp_setup.py.
  • Effect mining: once parameters are confirmed, they join the record selector. Without this, the mined check matched every earlier record with the same constant fields and refuted every item after the first. Tests in tests/test_effect_mining.py.

Scoreboard (packages/flow/benchmark/scoreboard)

PROTOCOL.md, the row schema (outcome decided by read-back), tasks (MockMed in-process with injected faults and a rename at item 50; openIMIS; OpenEMR imported as its published set), the runner, importers, and the builder for scoreboard.json and SCOREBOARD.md. Arms 1–3 are running now, and the raw data is committed.

Follow-ups (separate PRs)

🤖 Generated with Claude Code

Review

An independent review found no fail-open regression in the engine. Fixed since then:

  • the generated scoreboard files are rebuilt from the committed raw data;
  • the README and PR claims now match the data;
  • the model is shown per arm;
  • openIMIS counts a claim saved under another claim number as wrong;
  • the UI state the app actually served is recorded per row;
  • the scoreboard has a "done correctly, all items" column;
  • protocol notes (Amendment 1);
  • the effect-mining comments, probe text and a negative test.

Left as follow-ups:

  • WebApp.open() doesn't check that setup leaves the page at url;
  • the OpenEMR importer infers "reported" from the chart count;
  • count_new_only for mined records.

abrichr and others added 9 commits October 18, 2026 13:18
…the way

Not for merge yet. JIT WebApp setup hook, confirmed-param record
selector, run-gate submit-binding identity, focusing-click lease for
new-record forms; demo pipeline (Claude CUA agent, openIMIS wiring,
record/admit/batch).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Real Claude computer-use runs recorded through the JIT wrapper, the
program compiled from them, the standard gate's refusal, a demo-profile
batch runner with a read-only SQL record check, summarize and render
scripts. Moves the gate and lease relaxations out to #1274 and #1275.
Adds WebApp.capture_settle_timeout_s with tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ption, pilots

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
packages/flow/benchmark/scoreboard: protocol, row schema (outcome by
read-back), task adapters (MockMed in-process with faults and a rename at
item 50; openIMIS moved here from the demo), the agent-alone executor,
runner, importers (openIMIS launch demo, OpenEMR referral published set),
builder for scoreboard.json and SCOREBOARD.md. Partial raw data from runs
in progress. Launch demo videos rendered from batch A.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Model per arm in meta and the table; openIMIS read-back counts a claim saved
under another claim number as wrong; the UI state the app actually served is
recorded per row; a done-correctly-of-all-items column; protocol notes on
scripted approvals, hand review of agent stops and the global UI change
(Amendment 1); effect-mining comments, probe text and a negative test for
the bound selector; README claims matched to the data. Scoreboard rebuilt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… arm, item watchdog

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
abrichr and others added 8 commits October 18, 2026 20:19
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Generated in a clean checkout of this commit, so untracked runtime files
(fixture state, fetched compose files, JIT caches) are not listed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, item processes, inventory helper

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…a-to-program-8fa902

# Conflicts:
#	packages/flow/openadapt_flow/jit/compile_agent.py
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…agent item retries, rebuilt tables

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…reports it

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…; demo pipeline --model

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
abrichr and others added 2 commits October 19, 2026 09:13
…gent, Amendment 2

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
abrichr and others added 2 commits October 19, 2026 09:50
…s (MockMed), Amendment 3

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant