PNSQC 2026 · Poster Paper · Submitted #139

Skip the Wrapper

Making a browser-automation CLI faster — five candidate optimizations, measured under accounting rules that stop a change looking faster by quietly doing less.

The command on your PATH is not the tool. It is a 41-line Node script that resolves a platform package and execs the real binary, so every invocation is two process spawns and the first is a runtime boot — paid before any browser work begins.

~108msper invocation,
near-constant
691msoff a real
7-command journey
1,050timed journeys,
all verified
710patch reps,
0 mismatches
±22.6msmeasured
noise floor

Four of the five did not survive

Two real journeys: flat (6 commands, a practice shop) and navheavy (7 commands, saucedemo). Positive is faster. The bar is scaled to the largest magnitude measured — the 740ms loss.

A technique that changes what the journey does is not a faster technique — its milliseconds are real but not comparable, so T4 is drawn hollow rather than ranked. Figures from findings.json, recomputed from raw run data.
#TechniqueVerdictflatnavheavyrelative to zero
T1 Call the native binary, not the shimnot an optimization — a packaging defect Ship it +405+691
T3 Direct-attach BiDi socketgives up the actionability checks Narrow case +80+45
T5 Flat post-navigate waityou cannot ask “ready yet?” without queueing No effect ——
T4 JS-dispatch click and fillfaster because it stops checking elements are actionable Not an optimization +253+665
T2 One persistent processa subscription it never releases, and it accumulates Loses −740−212
faster, semantics unchanged slower real milliseconds, not a saving

The artifacts

Both are built from the evidence base and measured to fit the paper they declare. Open in Chrome, then Print → Save as PDF.

Poster board

A0 portrait · 841 × 1189 mm · 1:1

The full argument: five verdicts, the per-call tax by position, the patch, and the honesty rules the study was run under. Built to the official PNSQC template's own section order and trim.

Open the board → paper A0 · margins None · background graphics ON

Handout

2 × US Letter · takeaway

The pointers rather than the charts — the verdict table with its evidence column, who the upstream fix does not help, and where to reproduce the headline number yourself.

Open the handout → paper Letter · margins Default · background graphics ON

Booth loop

laptop screen · 96 s, loops forever

An animated loop for the laptop beside the board: the wrapper-vs-binary race, the two-spawn path, the five verdicts, the sweeps, the six rules, and the repro QR. Self-contained, runs offline.

Open the loop → F full screen · ← → scenes · Space pause

How the figures are kept honest

The board will not build if it disagrees with the evidence base. The evidence base is then checked three ways that are not the same thing.

Resolve

Every pointer opens — file, line range, commit. Cheap, and proves nothing about content.

Quote

The cited line still contains the figure claimed. This is the one that catches a figure broken by a later edit somewhere else.

Math

The arithmetic the prose rests on: 118 − 10 = 108, a stated loss is negative in the data, the sweep's spread matches its runs.

Fit

Both artifacts are measured against the paper they declare. Validated by planting violations and watching them fail.