One email each morning — yesterday's AI, sortedGet it in your inbox

METAL LAB

QuoteBench: How Matched Scores Can Hide Command-Path Failures

arXiv:2608.135472026-08-12

AI coding agents' benchmark scores can hide the fact that a working command breaks the moment it's re-parsed downstream

Bash commands generated by LLM coding agents are often serialized and re-parsed by intermediate layers (like ssh, container, or CI wrappers) before they actually run, and ordinary matched-score benchmarks can't tell whether a failure came from bad generation or from that downstream re-parsing. QuoteBench uses 56 tasks to separate the two by replaying the exact same generated reply through both a raw path and a path with one deliberately unescaped parser added, finding that this single added parser drops success by 55.4 to 73.2 percentage points, while simply telling the model about the boundary recovers 30.4 to 60.7 points in six of eight configurations. For GPT-5.6-sol, the ordinary matched score barely moves (-3.6 points), masking a -64.3-point loss from the boundary and a +60.7-point recovery from disclosure that cancel each other out.

What they did

  1. The problem: commands an LLM agent writes often get wrapped and re-interpreted by another layer before execution, such as ssh host "…", docker exec sh -c "…", or a CI step, and plain pass/fail scores can't reveal whether that re-parsing, not the model, caused the failure.
  2. Method: the authors built QuoteBench, 56 one-shot Bash tasks across 14 operation families drawn from real incident reports, and crossed the way a model is told to produce a command (generation contract) with the path that command travels before running (execution transport). They replayed the exact same stored reply once raw and once through one deliberately unescaped added parser, and also tested a 'disclosed-boundary' contract that tells the model in advance its reply will be dropped inside bash -c "…".
  3. Result: at the frontier, raw execution is already nearly saturated (91.1-100% success), but adding just one re-parsing step drops success by 55.4 to 73.2 points across eight tested configurations. Warning the model about that boundary in advance recovers 30.4 to 60.7 points in six configurations, while two configurations show no recovery or a slight drop.
  4. Key finding: a model's headline matched score can be misleading. GPT-5.6-sol shows almost no change (-3.6 points) under standard scoring, but that number hides a large -64.3-point loss from the boundary and a large +60.7-point recovery from disclosure that happen to cancel out. Changing the execution path alone was enough to flip the ranking of at least one model pair among 26 compared.
  5. Practical angle: correct escaping or using a temporary script both eliminate the problem entirely, but a survey of six real public agent systems found this quoting boundary is often handled downstream of the model's stated output contract, meaning the model alone can't always fix it.
Figure 1: Crossing generation contract with execution transport. Task, model configuration, and validator are fixed across cells. The reply is fixed within each transport replay pair. Cell labels are contract-then-transport. On the generation axis, R denotes the raw contract and N the disclosed-boundary contract. On the transport axis, R denotes raw execution and N the nested transport. The R​R and N​N cells are matched. The R​N cell measures fixed-reply damage, and N​N−R​N is the realized contract-conditioned contrast. Panel (b) works the decomposition for GPT-5.6-sol.
Figure 1: Crossing generation contract with execution transport. Task, model configuration, and validator are fixed across cells. The reply is fixed within each transport replay pair. Cell labels are contract-then-transport. On the generation axis, R denotes the raw contract and N the disclosed-boundary contract. On the transport axis, R denotes raw execution and N the nested transport. The R​R and N​N cells are matched. The R​N cell measures fixed-reply damage, and N​N−R​N is the realized contract-conditioned contrast. Panel (b) works the decomposition for GPT-5.6-sol.
Table 1: One worked QuoteBench task (write-file, tier 3). The ⟨⟨⋅⟩⟩ markers delimit the exact literal payload and are not part of it. The ↩ symbol marks a newline that the payload itself contains. The validator compares exact final bytes, so any command that reaches the target state passes. Appendix Table 7 maps the full family set to the covered mechanisms. The artifact contains all 56 instructions, fixtures, oracles, and validators.
InstructionCreate a file named out.txt whose content is exactly the text ⟨⟨back\slash and `date` here↩ ’single’ "double" $(pwd) 100%⟩⟩ followed by a single trailing newline.
Hazardsbackslash, backtick, command substitution, multiline, mixed quotes
Naive commandecho "back\slash and `date` here …" > out.txt; the backticks execute date, $(pwd) expands locally, and the payload’s inner double quote terminates the string early
Final-state gateexact bytes of out.txt, including one trailing newline, with no collateral files
One passing commanda single-quoted printf with an embedded-quote splice (the machine oracle). Any other correct encoding receives equal credit
Figure 2: Matched-nested success varies by operation family across the frozen configuration sweep. Each cell is the percentage of a family’s four tasks passed by one stored generation. Rows retain the 15 frozen configurations used for broad coverage; Qwen rows marked (thinking) enable the think toggle and unmarked Qwen rows are non-thinking, and Appendix Table 13 lists the queried effort settings and request parameters. Table 2 separately summarizes the best observed setting per base model. Columns follow the mechanism groups in Appendix Table 7. SSH-like tasks use the local two-shell simulation. Rows are ordered by matched-nested score in this frozen sweep, which differs from the best-observed order in Table 2.
Figure 2: Matched-nested success varies by operation family across the frozen configuration sweep. Each cell is the percentage of a family’s four tasks passed by one stored generation. Rows retain the 15 frozen configurations used for broad coverage; Qwen rows marked (thinking) enable the think toggle and unmarked Qwen rows are non-thinking, and Appendix Table 13 lists the queried effort settings and request parameters. Table 2 separately summarizes the best observed setting per base model. Columns follow the mechanism groups in Appendix Table 7. SSH-like tasks use the local two-shell simulation. Rows are ordered by matched-nested score in this frozen sweep, which differs from the best-observed order in Table 2.
Table 2: Best-observed QuoteBench scorecard. Each base model contributes the measured setting with the highest matched-nested All-56 score. Ties prefer default, then lower mean provider-reported output tokens. default means that the request omitted the effort field. The number and names of measured settings differ by provider and appear in Figure 4 and Appendix B. This table is descriptive: each cell is one stored trial-0 generation and the selection is a within-model maximum over rungs; Appendix E.1.6 reports draw-to-draw spread. The Qwen rows expose only a think toggle rather than an effort ladder, so their best-observed setting is taken from the same-window sweep; for Qwen3.5-27B, the only Qwen size with a ladder row in Table 12, the resulting one-task difference is serving-window drift. Fixed same-window configurations support the mechanism analysis in Table 4.
ModelBest observed settingControlHostileAll 56 (%)Hostile LOFO range (%)
GPT-5.5xhigh14/1442/42100.0[100.0, 100.0]
Opus-5xhigh14/1442/42100.0[100.0, 100.0]
Fable-5max14/1442/42100.0[100.0, 100.0]
GPT-5.6-solhigh14/1441/4298.2[97.4, 100.0]
Opus-4.8max12/1441/4294.6[97.4, 100.0]
Gemini-3.1-Prolow14/1437/4291.1[87.2, 89.7]
Sonnet-4.6high9/1427/4264.3[61.5, 69.2]
Gemini-3.5-Flashmedium10/1426/4264.3[59.0, 66.7]
Haiku-4.5medium8/1413/4237.5[28.2, 33.3]
Qwen3.5-27Bnon-think8/149/4230.4[15.4, 23.1]
Qwen3.5-4Bthink5/147/4221.4[10.3, 17.9]
Qwen3.5-9Bnon-think5/145/4217.9[5.1, 12.8]
Gemini-3.1-Flash-Litedefault6/142/4214.3[2.6, 5.1]
Figure 3: Where effort raises matched success, the nested-replay pass rate changes little. Each point uses 56 tasks, trial 0, and the GNU replay. The R​R value is raw success, R​N is the nested-replay pass rate of raw-conditioned replies, and N​N is matched nested success. The N​N−R​N gap is compensation. Appendix Table 14 reports every rung, including the byte-identical Gemini-3.1-Flash-Lite settings.
Figure 3: Where effort raises matched success, the nested-replay pass rate changes little. Each point uses 56 tasks, trial 0, and the GNU replay. The R​R value is raw success, R​N is the nested-replay pass rate of raw-conditioned replies, and N​N is matched nested success. The N​N−R​N gap is compensation. Appendix Table 14 reports every rung, including the byte-identical Gemini-3.1-Flash-Lite settings.
Table 3: Absolute GNU replay pass rates in the separate Study-B campaign, pooled over each model’s measured effort ladder and three trials per cell.
ModelAttemptsRaw (%)Native (%)Δ (pp)
Opus-4.884095.498.0+2.6
Opus-584098.297.4−0.8
Fable-584099.397.1−2.1
Gemini-3.1-Pro50498.895.0−3.8
GPT-5.6-sol67296.994.3−2.5
Gemini-3.5-Flash67295.785.7−10.0
Figure 4: Effort settings are provider-specific operating points. Each point shows trial-0 matched-nested success on the 56-task core against mean provider-reported output tokens per task, including reported hidden reasoning. Dashed segments follow the provider’s declared order. Backward or dominated segments show measured non-monotonicity. Panels group model families for legibility, and Qwen sizes contribute two-point think-toggle trajectories.
Figure 4: Effort settings are provider-specific operating points. Each point shows trial-0 matched-nested success on the 56-task core against mean provider-reported output tokens per task, including reported hidden reasoning. Dashed segments follow the provider’s declared order. Backward or dominated segments show measured non-monotonicity. Panels group model families for legibility, and Qwen sizes contribute two-point think-toggle trajectories.
Table 4: All four crossover cells for the eight same-window configurations. Cell notation follows Figure 1: generation contract precedes transport. Cells are pass rates (%). Effects are percentage points. Damage is R​N−R​R, compensation is N​N−R​N, and the matched gap is N​N−R​R. Appendix Table 14 reports the interaction at every measured rung, and Table 15 gives the sensitivity tests.
ModelR​RR​NN​RN​NDamageComp.Matched gap
GPT-5.6-sol94.630.455.491.1−64.3+60.7−3.6
GPT-5.5100.028.650.089.3−71.4+60.7−10.7
Opus-596.430.442.989.3−66.1+58.9−7.1
Gemini-3.1-Pro98.225.033.980.4−73.2+55.4−17.9
Gemini-3.5-Flash96.428.667.958.9−67.9+30.4−37.5
Opus-4.891.126.862.557.1−64.3+30.4−33.9
Qwen3.5-27B85.730.483.930.4−55.40.0−55.4
Gemini-3.1-Flash-Lite78.619.680.414.3−58.9−5.4−64.3
Figure 5: Native-minus-raw pass-rate change by provider effort rung, in percentage points on a zero-centered scale. Blank cells mark rungs the provider does not expose. Models follow descending GNU replay campaign effect. Labels are not comparable compute budgets across providers.
Figure 5: Native-minus-raw pass-rate change by provider effort rung, in percentage points on a zero-centered scale. Blank cells mark rungs the provider does not expose. Models follow descending GNU replay campaign effect. Labels are not comparable compute budgets across providers.
Table 5: Private-v2 crossover on 42 hostile payloads under the single-clause disclosed-boundary contract. The private set is hostile-only and not difficulty-matched to the public core, so absolute rates are interpreted within this set. Cells are pass rates. Effects are percentage points. Damage is R​N−R​R, compensation is N​N−R​N, interaction is (N​N−N​R)−(R​N−R​R), and the matched gap is N​N−R​R.
ModelR​RR​NN​RN​NDamageComp.InteractionMatched gap
GPT-5.6-sol92.919.050.097.6−73.8+78.6+121.4+4.8
Opus-4.892.916.759.542.9−76.2+26.2+59.5−50.0
Table 6: Private-v1 fixed raw replies under three transports on 42 tasks. This campaign predates the private-v2 crossover in Table 5. The two tables therefore use different generations. The first three columns report tasks passed out of 42. Script gain is the temporary-script rate minus the nested-wrapper rate, in percentage points.
ModelRawNested wrapperTemporary scriptScript gain (pp)
GPT-5.6-sol41/428/4241/42+78.6
Opus-4.840/427/4240/42+78.6
Qwen3.5-27B30/429/4230/42+50.0
Table 7: Mechanism groups used to construct the frozen core; the mapping documents coverage of the surveyed failure mechanisms. Benchmark analyses weight the 14 operation families equally.
Mechanism groupRepresentative failuresQuoteBench families
Literal quote and expansionApostrophes, double quotes, dollars, backticks, multiline payloadswrite-file, JSON writing, Git commit, environment passing, heredoc writing
Word splitting and path semanticsSpaces, globs, leading dashes, hostile filenames, argument boundariesargv passing, hostile filenames, find/glob, bulk rename
Embedded-language escapingRegex versus literal matching, sed replacement, AWK string processinggrep count, sed replace, field lookup, JSON writing
Second parser or remote-like expansionLocal expansion before a second shell, argument joining, heredoc transportSSH-like nested execution, SSH-like heredoc
Command-boundary representationCommand string, shell stdin, temporary file, argv, provider tool schemaraw/nested crossover, native-tool study, script bypass, typed pilot
Table 8: Command boundaries in six public agent systems, inspected at fixed commits. Contract is what the system asks the model to produce. A nested boundary arises on a separate axis from what the command targets. Observed boundary is what the harness then does with the reply. The classification concerns the parser boundary only. Sources: 20; 27; 13; 28; 22; 18.
SystemContractSource anchorObserved boundary
Codexnativecore/src/shell.rs:20--30, commit fa1d4c4command string becomes shell -c/-lc R
SWE-agentrawagents.py:936--967 and swe_env.py:197--222, commit 3ea751cagent action enters a persistent Bash session
LangChainnativeshell_tool.py:217--232,491--515, commit b3a6d9astructured command: string is written to shell stdin
Terminal-Benchrawtmux_session.py:26--33,75--173, commit d28711dcommand/key strings enter an interactive shell through tmux
OpenHandsnativeacp-command.ts:11--45,65--147, commit 850bd64human-readable command is tokenized to argv, and spawn has no shell
AutoGennative_docker_code_executor.py:327--363, commit 027ecf0generated code is written to a temporary file and invoked by argv
Table 9: Real-ssh grounding. Each stored raw reply is replayed through bash -c and through a real ssh localhost "R" remote command; ssh damage is the second minus the first. It matches the synthetic nested damage to the decimal for seven of eight configurations; the disclosed-reply cells are grounded in Appendix Table 21. Zero model calls.
ConfigurationRawsshssh damageNested damage
GPT-5.6-sol94.630.4−64.3−64.3
GPT-5.5100.028.6−71.4−71.4
Opus-596.430.4−66.1−66.1
Gemini-3.1-Pro98.226.8−71.4−73.2
Gemini-3.5-Flash96.428.6−67.9−67.9
Opus-4.891.126.8−64.3−64.3
Qwen3.5-27B85.730.4−55.4−55.4
Gemini-3.1-Flash-Lite78.619.6−58.9−58.9
Table 10: Campaign map. All replays are zero-call executions of stored replies in the pinned container.
CampaignGenerationsDesignFeeds
Study A same-window sweep8 configs × 56 × 2 contractsone randomized window, effort unsetTables 4, 15
Study A ladder sweep44 rungs, 11 configsper-provider windowsTables 2, 12
Study A rung crossover30 rungs, 7 configs, 26 crossover ptsreplay both transportsTable 14, Fig. 3
Public three-draw repeat8 configs × 56 × 2 × 2 drawssame design as the sweepAppendix E.1.6
Study B native tool8,736 generations, 17,472 replaysobservational, both userlandsTables 3, 17, 18
Private-v2 crossover2 models × 42 hostile payloadsone serving windowTable 5
Private-v1 replay3 models × 42 tasksearlier generations; script bypassTable 6
BSD-live legacy6 configurationsBSD-elicited, GNU-replayedTable 16
Real-ssh grounding8 configs × 56ssh localhost replayTable 9
Advice arm8 configs × 56 × 2same-window paired advice contrastTable 19
Grammar crossover8 configs × 56 × 2 disclosedreplay-only wrapper 2×2Table 20
Real-ssh full crossover6 configs × 56 × 2disclosed replies on real sshTable 21
JSON boundary6 configs × 56serializer replayTable 22
Table 11: Calibration of the unset-effort sweep arm against each configuration’s labelled ladder. Distance is unset success minus the lowest-rung success, in percentage points. The two measurements come from different serving windows, so small differences are descriptive only.
ModelUnset (%)Nearest rungDistance to lowest rung
GPT-5.6-sol91.1low0.0
GPT-5.589.3high−5.4
Opus-589.3medium+28.6
Gemini-3.1-Pro80.4none within the ladder−10.7
Gemini-3.5-Flash58.9low+1.8
Opus-4.857.1xhigh+17.9
Gemini-3.1-Flash-Lite14.3all four rungs tie0.0
Table 12: Matched-nested effort ladders under the disclosed-boundary contract. Within each row, success rates and mean provider-reported output tokens follow the setting order in the second column. Each point uses trial 0 over 56 tasks.
ModelSettings (in order)Success (%)Mean output tokens
GPT-5.6-sollow / medium / high / xhigh91.1 / 92.9 / 98.2 / 98.2362 / 565 / 773 / 1,073
GPT-5.5low / medium / high / xhigh94.6 / 92.9 / 91.1 / 100.0507 / 655 / 1,164 / 2,757
Opus-5low / medium / high / xhigh / max60.7 / 91.1 / 96.4 / 100.0 / 98.2796 / 1,336 / 1,458 / 2,421 / 3,499
Fable-5low / medium / high / xhigh / max71.4 / 75.0 / 96.4 / 92.9 / 100.0332 / 569 / 843 / 1,212 / 2,396
Opus-4.8low / medium / high / xhigh / max39.3 / 48.2 / 50.0 / 62.5 / 94.6835 / 1,291 / 1,706 / 3,481 / 6,960
Gemini-3.1-Prolow / medium / high91.1 / 91.1 / 91.15,267 / 5,753 / 6,308
Sonnet-4.6low / medium / high / xhigh23.2 / 28.6 / 64.3 / 62.528 / 1,411 / 4,337 / 4,539
Gemini-3.5-Flashminimal / low / medium / high57.1 / 58.9 / 64.3 / 62.53,851 / 3,108 / 3,081 / 3,389
Haiku-4.5low / medium / high / xhigh32.1 / 37.5 / 32.1 / 26.85,432 / 4,717 / 4,708 / 4,783
Qwen3.5-27Bnon-thinking / thinking28.6 / 28.620 / 7,489
Gemini-3.1-Flash-Liteminimal / low / medium / high14.3 / 14.3 / 14.3 / 14.320 / 20 / 20 / 20
Table 13: Study-A model identifiers and request parameters. The effort column lists exactly the settings queried; sweep arms omitted the effort field. Temperature is reported only where the interface accepts it.
Display nameModel identifierEffort settings queriedDecoding parameters
GPT-5.6-solgpt-5.6-sollow, medium, high, xhighmax output tokens 16,000, temperature not sent
GPT-5.5gpt-5.5low, medium, high, xhighmax output tokens 16,000, temperature not sent
Opus-5claude-opus-5low, medium, high, xhigh, maxprovider defaults, no sampling or length control sent
Opus-4.8claude-opus-4-8low, medium, high, xhigh, maxprovider defaults, no sampling or length control sent
Fable-5claude-fable-5low, medium, high, xhigh, maxprovider defaults, no sampling or length control sent
Sonnet-4.6claude-sonnet-4-6low, medium, high, xhighprovider defaults, no sampling or length control sent
Haiku-4.5claude-haiku-4-5low, medium, high, xhighprovider defaults, no sampling or length control sent
Gemini-3.1-Progemini-3.1-pro-previewlow, medium, hightemperature 0, max tokens 4,096 in the sweep, omitted in the ladder
Gemini-3.5-Flashgemini-3.5-flashminimal, low, medium, hightemperature 0, max tokens 4,096 in the sweep, omitted in the ladder
Gemini-3.1-Flash-Litegemini-3.1-flash-lite-previewminimal, low, medium, hightemperature 0, max tokens 4,096 in the sweep, omitted in the ladder
Qwen3.5-27BQwen/Qwen3.5-27Bnon-thinking, thinkingtemperature 0, max tokens 4,096 non-thinking, omitted thinking
Qwen3.5-9BQwen/Qwen3.5-9Bnon-thinking, thinkingtemperature 0, max tokens 4,096 non-thinking, omitted thinking
Qwen3.5-4BQwen/Qwen3.5-4Bnon-thinking, thinkingtemperature 0, max tokens 4,096 non-thinking, omitted thinking
Table 14: Crossover at every measured rung. Cells are percentages and effects are percentage points, defined as in Table 4. An asterisk marks the descriptive masked-fragility rule. Gemini-3.1-Flash-Lite returns byte-identical replies at all four settings and is retained only to document that the provider did not expose a usable ladder.
ConfigurationRungR​RR​NN​RN​NDamageCompensationMatched gap
GPT-5.6-sollow98.228.653.691.1−69.6+62.5−7.1
GPT-5.6-solmedium94.630.448.292.9−64.3+62.5−1.8∗
GPT-5.6-solhigh98.232.148.298.2−66.1+66.1+0.0∗
GPT-5.6-solxhigh98.230.451.898.2−67.9+67.9+0.0∗
Opus-5low98.228.657.160.7−69.6+32.1−37.5
Opus-5medium100.032.141.191.1−67.9+58.9−8.9
Opus-5high96.430.442.996.4−66.1+66.1+0.0∗
Opus-5xhigh98.232.142.9100.0−66.1+67.9+1.8∗
Opus-5max100.032.146.498.2−67.9+66.1−1.8∗
Gemini-3.1-Prolow100.025.032.191.1−75.0+66.1−8.9
Gemini-3.1-Promedium98.226.841.191.1−71.4+64.3−7.1
Gemini-3.1-Prohigh98.226.835.791.1−71.4+64.3−7.1
Fable-5low100.030.448.271.4−69.6+41.1−28.6
Fable-5medium100.030.448.275.0−69.6+44.6−25.0
Fable-5high98.232.142.996.4−66.1+64.3−1.8∗
Fable-5xhigh100.033.946.492.9−66.1+58.9−7.1
Fable-5max100.030.435.7100.0−69.6+69.6+0.0∗
Gemini-3.5-Flashminimal96.423.275.057.1−73.2+33.9−39.3
Gemini-3.5-Flashlow92.925.067.958.9−67.9+33.9−33.9
Gemini-3.5-Flashmedium96.423.276.864.3−73.2+41.1−32.1
Gemini-3.5-Flashhigh96.423.271.462.5−73.2+39.3−33.9
Opus-4.8low87.528.669.639.3−58.9+10.7−48.2
Opus-4.8medium92.928.667.948.2−64.3+19.6−44.6
Opus-4.8high96.433.964.350.0−62.5+16.1−46.4
Opus-4.8xhigh98.232.160.762.5−66.1+30.4−35.7
Opus-4.8max98.230.444.694.6−67.9+64.3−3.6∗
Gemini-3.1-Flash-Liteminimal78.619.680.414.3−58.9−5.4−64.3
Gemini-3.1-Flash-Litelow78.619.680.414.3−58.9−5.4−64.3
Gemini-3.1-Flash-Litemedium78.619.680.414.3−58.9−5.4−64.3
Gemini-3.1-Flash-Litehigh78.619.680.414.3−58.9−5.4−64.3
Table 15: Enumerated and Holm-adjusted two-sided family-sign p values for the two primary Study-A components under the single-clause disclosed-boundary contract. Effect sizes are percentage points.
Fixed-reply transportContract-conditioned compensation
ModelEffect [95% CI]Enum. pHolm pEffect [95% CI]Enum. pHolm p
GPT-5.6-sol−64.3 [−80.4,−46.4].000244.001465+60.7 [+46.4,+75.0].000244.001953
GPT-5.5−71.4 [−85.7,−55.4].000244.001465+60.7 [+44.6,+75.0].000244.001953
Opus-5−66.1 [−82.1,−50.0].000244.001465+58.9 [+41.1,+75.0].000488.002930
Gemini-3.1-Pro−73.2 [−87.5,−58.9].000122.000977+55.4 [+33.9,+73.2].001221.006104
Gemini-3.5-Flash−67.9 [−82.1,−51.8].000244.001465+30.4 [+12.5,+48.2].013672.041016
Opus-4.8−64.3 [−80.4,−46.4].000244.001465+30.4 [+14.3,+48.2].003906.015625
Qwen3.5-27B−55.4 [−69.6,−41.1].000244.0014650.0 [0.0,0.0]1.0000001.000000
Gemini-3.1-Flash-Lite−58.9 [−71.4,−48.2].000122.000977−5.4 [−10.7,0.0].250000.500000
Table 16: Cross-userland transfer in the earlier BSD-live campaign. Each cell reports pass rate on BSD live execution and GNU replay of the identical stored command. Arms retain their original campaign multiplicity: raw cells contain 56 records, while nested cells contain 56 or 168 depending on the configuration. We interpret only the within-arm BSD→GNU change. The final column summarizes the higher-transfer userland; it is not a counterfactual GNU-targeted generation result.
ModelRaw BSD→GNUNested BSD→GNUTransfers better to
Fable-5→91.1→87.5BSD
Qwen3.5-27B (non-thinking)→87.5→32.1GNU
Qwen3.5-27B (thinking)→82.1→50.0GNU
Gemini-3.1-Pro→100.0→96.4GNU
Gemini-3.5-Flash→96.4→67.9BSD
Opus-4.8→87.5→73.8BSD (raw); tie (nested)
Table 17: Exploratory native-minus-raw effects over each measured effort ladder, ordered by GNU replay effect.
BSD liveGNU replay
ModelΔLOFOPF/FPΔLOFOPF/FP
Opus-4.8+3.10[+2.18,+3.46]5/31+2.62[+1.67,+2.95]11/33
Opus-5−0.36[−0.51,0.00]12/9−0.83[−1.03,−0.51]16/9
Fable-5+0.95[0.00,+1.15]3/11−2.14[−2.44,−0.64]22/4
GPT-5.6-sol−1.19[−1.92,−0.48]25/17−2.53[−3.37,−0.64]26/9
Gemini-3.1-Pro+1.98[−0.64,+3.21]8/18−3.77[−4.91,−0.64]23/4
Gemini-3.5-Flash−4.02[−4.33,−3.04]37/10−9.97[−10.74,−6.89]77/10
Table 18: Study-B execution outcomes, aggregated across six models. Each row partitions 4,368 executions. Adherence denotes an invalid one-call tool invocation. Syntax includes parser and command-usage errors. Exit-0 wrong is a silent final-state failure.
UserlandContractPassAdherenceSyntaxNonzeroExit-0 wrong
BSDraw42300315948
BSDnative42362094162
GNUraw42520393641
GNUnative4146202212852
Table 19: Matched nested success (of 56) under the disclosed contract without and with escaping advice, paired within one serving window. Advice barely moves the top of the ladder, moves the middle of the ladder the most, and does not reach the bottom.
ConfigurationAdvice-freeWith adviceΔ (pp)
GPT-5.6-sol5449−8.9
GPT-5.54953+7.1
Opus-55254+3.6
Sonnet-4.63246+25.0
Haiku-4.52532+12.5
Opus-4.83034+7.1
Qwen3.5-27B1718+1.8
Gemini-3.1-Flash-Lite78+1.8
Table 20: Grammar crossover (tasks passed of 56). Rows are the disclosed grammar, columns the executed wrapper; the diagonal is matched, the anti-diagonal mismatched. The diagonal advantage separates the same top, middle, and bottom groups as the matched-nested scores.
Double disclosedSingle disclosedDiag−anti
Configurationon doubleon singleon singleon double(pp)
GPT-5.6-sol5475310+80.4
GPT-5.5498548+77.7
Opus-55284516+65.2
Sonnet-4.632112316+25.0
Opus-4.830112318+21.4
Haiku-4.525132011+18.8
Qwen3.5-27B17111117+0.0
Gemini-3.1-Flash-Lite719919−19.6
Table 21: Real-ssh full crossover (tasks passed of 56). Damage is R​N−R​R and compensation is N​N−R​N, both on the real ssh path. The final column repeats the synthetic nested compensation for comparison.
ConfigurationRRRNNRNNssh comp.Nested comp.
GPT-5.6-sol53173151+60.7+60.7
GPT-5.556162850+60.7+60.7
Opus-554172450+58.9+58.9
Opus-4.851153532+30.4+30.4
Qwen3.5-27B48174717+0.0+0.0
Gemini-3.1-Flash-Lite44114510−1.8−5.4
Table 22: JSON serializer boundary (tasks passed of 56). Correct-serializer damage is ≈0; naive-embedding damage is comparable to the shell nested transport. Unparseable counts replies whose naive JSON embedding fails to parse.
ConfigurationRawCorrectNaiveNaive damage
GPT-5.6-sol535321−57.1
GPT-5.5565619−66.1
Opus-5545422−57.1
Opus-4.8515118−58.9
Qwen3.5-27B484819−51.8
Gemini-3.1-Flash-Lite44448−64.3

Why it matters

In real deployments, agents routinely send commands over ssh, into containers, or through CI pipelines, which is exactly the re-parsing boundary this paper studies, so a leaderboard that ignores it can misrepresent how a model performs once actually deployed. Anyone evaluating or shipping a command-issuing coding agent should check which execution path and generation contract a reported score assumes, not just the score itself.

Terms in this paper

  • matched score · the standard reported success rate obtained by running a model's generated command directly, without decomposing where failures come from
  • generation contract · the instruction that tells a model how it is expected to format or express its command output
  • execution transport · the path a generated command travels before it reaches a real shell, e.g. run directly or re-wrapped inside another parser
  • nested transport · a test condition that adds one extra double-quoted parsing layer, mimicking how ssh, container, or CI wrappers re-parse a command
  • final-state validation · scoring based only on whether the resulting files, arguments, or repository state exactly match the expected outcome, regardless of how the command got there

Original abstract (English)

LLM coding agents issue Bash commands through interfaces that may serialize, wrap, and reparse model output. Matched execution scores alone cannot distinguish command-generation errors from failures introduced after generation. QuoteBench measures this boundary with exact final-state validation on 56 one-shot tasks from 14 incident-derived families, crossing the generation contract with the execution transport around one deliberately unescaped added parser. Escaping at the interpolation point reproduces each replayed reply's raw-path outcome, so any recovery under a disclosed boundary must come from the model changing its generation. Across eight same-window configurations, replaying the same reply through the added parser lowers success by 55.4 to 73.2 percentage points; disclosure recovers 30.4 to 60.7 points for six configurations, and zero or slightly negative for the other two. Raw generation is nearly saturated at the frontier; boundary adaptation is what still separates models. GPT-5.6-sol's matched gap of -3.6 points hides -64.3 points of damage and +60.7 points of compensation. The deployment configuration reorders models: one reversal among 26 comparable pairs is unambiguous and four more sit on single-task margins. Evaluations of command-issuing agents should report the model configuration, generation contract, execution path, operating point, and final-state validator rather than treat a matched score as an intrinsic model property.

Authors · Shangao Li

Read on arXiv

Latest papers

All papers →

Latest from METAL LAB

Figures: Shangao Li et al., arXiv:2608.13547, CC BY 4.0