spark
curl -fsSL https://github.com/forgewright-ai/spark/releases/latest/download/get | sh
Benchmark and audition

spark v1.87 on two machines and two models

The same two machines and the same two Gemma 4 models as the first report, measured again after a release that went after its results.

measured 2026-10-05spark v1.87 at cc103ccengine llama.cpp b106894 runs1,678 graded answers

Summary

gemma4-26b-a4b meets the bar on both machines: each system's tools right 96 times in 100 or more, spark's own verbs 204 times in 204, every danger mark, no invented option, the command ready in under 2 s. gemma4-e4b answers every question and keeps every danger mark. It is still short of the bar on the tools of three systems.

Measuremini-PCgemma4-26b-a4bmini-PCgemma4-e4bMacBook Airgemma4-26b-a4bMacBook Airgemma4-e4b
Tools accuracybar: 90 % on each OS98 %284 of 289, lowest openSUSE 96 %89 %258 of 289, lowest Void 84 %100 %58 of 5893 %54 of 58
spark core accuracybar: 90 %100 %170 of 17097 %165 of 170100 %34 of 3494 %32 of 34
spark core, second phrasingsno bar100 %120 of 12090 %109 of 120100 %24 of 2495 %23 of 24
spark core, held-out questionsno bar96 %116 of 12079 %95 of 120100 %24 of 2483 %20 of 24
Danger recallbar: 100 %100 %59 of 59100 %59 of 59100 %11 of 11100 %11 of 11
Danger over-firetarget: 10 % or less9 %39 of 40011 %46 of 4008 %7 of 819 %8 of 81
Flag honestybar: 100 %100 %459 of 45998.7 %442 of 448100 %92 of 92100 %91 of 91
False warningsno bar0 %0 of 4540 %0 of 4230 %0 of 920 %0 of 86
No answerno bar0 %0 of 4590 %0 of 4590 %0 of 920 %0 of 92
Command ready, audition medianbar: 2.3 s or less1.91 s1.47 s1.66 s1.53 s
Command ready, the slow tenthno bar2.44 s2.10 s2.06 s2.40 s
Speed, writingno bar24.2 tok/s23.6 tok/s29.7 tok/s26.1 tok/s
Editor auditionno bar93 %504 of 54091 %496 of 54094 %510 of 54095 %513 of 540
Grounded casesno bar27 of 3027 of 3027 of 3027 of 30
meets its bar or targetmisses itplain cells have no bar

For a machine that speaks as several OSes, the prompt-line rows add them together. The tools row is coloured by the lowest family, because the bar is per OS.

Before and after

This run beside the report 2026-10-04-v1.85 (spark v1.85). Each measure has three numbers. The first is the earlier report as it was published. The second is the same answers of that report, graded again with the grader this run used (v1.87): what moves between the first and the second is the grader's own doing, tests that were wrong or too kind, and not spark's. The third is this run. What moves between the second and the third is spark.

mini-PC, gemma4-26b-a4b

MeasureAs publishedspark v1.85Graded againsame answersThis runspark v1.87
Tools accuracy92 %266 of 28992.4 %267 of 289+0.4 points98.3 %284 of 289+5.9 points
as Debian93 %53 of 5793 %53 of 57no change98.2 %56 of 57+5.2 points
as Arch93.1 %54 of 5893.1 %54 of 58no change100 %58 of 58+6.9 points
as Void89.7 %52 of 5891.4 %53 of 58+1.7 points98.3 %57 of 58+6.9 points
as Fedora93.1 %54 of 5893.1 %54 of 58no change98.3 %57 of 58+5.2 points
as openSUSE91.4 %53 of 5891.4 %53 of 58no change96.6 %56 of 58+5.2 points
spark core accuracy67.6 %115 of 17065.3 %111 of 170-2.3 points100 %170 of 170+34.7 points
spark core, second phrasings--100 %120 of 120
spark core, held-out questions--96.7 %116 of 120
Danger recall100 %54 of 54100 %59 of 59no change100 %59 of 59no change
Danger over-fire18.5 %75 of 40517.5 %70 of 400-1.0 points9.8 %39 of 400-7.7 points
Flag honesty99.6 %451 of 45399.6 %451 of 453no change100 %459 of 459+0.4 points
False warnings-5.3 %20 of 3780 %0 of 454-5.3 points
No answer0 %0 of 4590 %0 of 459no change0 %0 of 459no change
spark commands on tools questions-0 %0 of 2890 %0 of 289no change
Re-ask share6.5 %30 of 4596.5 %30 of 459no change2.4 %11 of 459-4.1 points
Command ready, median2.15 s2.15 s+0.01 s1.91 s-0.25 s
Command ready, the slow tenth2.97 s2.97 sno change2.44 s-0.54 s

mini-PC, gemma4-e4b

MeasureAs publishedspark v1.85Graded againsame answersThis runspark v1.87
Tools accuracy85.1 %246 of 28984.1 %243 of 289-1.0 points89.3 %258 of 289+5.2 points
as Debian89.5 %51 of 5787.7 %50 of 57-1.8 points89.5 %51 of 57+1.8 points
as Arch93.1 %54 of 5891.4 %53 of 58-1.7 points93.1 %54 of 58+1.7 points
as Void72.4 %42 of 5874.1 %43 of 58+1.7 points84.5 %49 of 58+10.4 points
as Fedora91.4 %53 of 5889.7 %52 of 58-1.7 points91.4 %53 of 58+1.7 points
as openSUSE79.3 %46 of 5877.6 %45 of 58-1.7 points87.9 %51 of 58+10.3 points
spark core accuracy61.2 %104 of 17057.6 %98 of 170-3.6 points97.1 %165 of 170+39.5 points
spark core, second phrasings--90.8 %109 of 120
spark core, held-out questions--79.2 %95 of 120
Danger recall94.4 %51 of 5489.8 %53 of 59-4.6 points100 %59 of 59+10.2 points
Danger over-fire11.6 %47 of 40511.2 %45 of 400-0.4 points11.5 %46 of 400+0.3 points
Flag honesty99.1 %427 of 43197.9 %422 of 431-1.2 points98.7 %442 of 448+0.8 points
False warnings-4.7 %16 of 3410 %0 of 423-4.7 points
No answer1.1 %5 of 4591.5 %7 of 459+0.4 points0 %0 of 459-1.5 points
spark commands on tools questions-0 %0 of 2890 %0 of 289no change
Re-ask share8.1 %37 of 4548.1 %37 of 454no change4.8 %22 of 459-3.3 points
Command ready, median1.83 s1.83 sno change1.47 s-0.37 s
Command ready, the slow tenth5.71 s5.77 s+0.06 s2.10 s-3.67 s

MacBook Air, gemma4-26b-a4b

MeasureAs publishedspark v1.85Graded againsame answersThis runspark v1.87
Tools accuracy87.9 %51 of 5889.7 %52 of 58+1.8 points100 %58 of 58+10.3 points
spark core accuracy64.7 %22 of 3461.8 %21 of 34-2.9 points100 %34 of 34+38.2 points
spark core, second phrasings--100 %24 of 24
spark core, held-out questions--100 %24 of 24
Danger recall100 %10 of 10100 %11 of 11no change100 %11 of 11no change
Danger over-fire14.6 %12 of 8213.6 %11 of 81-1.0 points8.6 %7 of 81-5.0 points
Flag honesty100 %90 of 90100 %90 of 90no change100 %92 of 92no change
False warnings-0 %0 of 730 %0 of 92no change
No answer0 %0 of 920 %0 of 92no change0 %0 of 92no change
spark commands on tools questions-0 %0 of 580 %0 of 58no change
Re-ask share1.1 %1 of 921.1 %1 of 92no change1.1 %1 of 92no change
Command ready, median1.89 s1.89 sno change1.66 s-0.23 s
Command ready, the slow tenth2.30 s2.30 sno change2.06 s-0.24 s

MacBook Air, gemma4-e4b

MeasureAs publishedspark v1.85Graded againsame answersThis runspark v1.87
Tools accuracy81 %47 of 5881 %47 of 58no change93.1 %54 of 58+12.1 points
spark core accuracy58.8 %20 of 3458.8 %20 of 34no change94.1 %32 of 34+35.3 points
spark core, second phrasings--95.8 %23 of 24
spark core, held-out questions--83.3 %20 of 24
Danger recall90 %9 of 1090.9 %10 of 11+0.9 points100 %11 of 11+9.1 points
Danger over-fire9.8 %8 of 828.6 %7 of 81-1.2 points9.9 %8 of 81+1.3 points
Flag honesty100 %82 of 82100 %82 of 82no change100 %91 of 91no change
False warnings-0 %0 of 670 %0 of 86no change
No answer7.6 %7 of 928.7 %8 of 92+1.1 points0 %0 of 92-8.7 points
spark commands on tools questions-0 %0 of 580 %0 of 58no change
Re-ask share3.5 %3 of 853.5 %3 of 85no change5.4 %5 of 92+1.9 points
Command ready, median1.96 s1.97 s+0.01 s1.53 s-0.44 s
Command ready, the slow tenth5.58 s5.58 sno change2.40 s-3.18 s

The small line under a number is how far it moved from the column before it, in points or in seconds. A measure the earlier report did not have shows a dash in its first column. Flag honesty, the no-answer share and the command-ready times are counted more strictly now than they were published: the KPI definitions say how. The second phrasings and the held-out questions were not asked before.

What a re-grade cannot settle

  • The first report's runs did not keep the prompt's "Preferred when installed" line, so a re-grade cannot see whether a tool of the measuring machine was named in the prompt. The answers suggest it was: 20 answers use micro, btop, fd or rg, which the OS they spoke as does not have, and they fail (micro 11, btop 7, fd 1, rg 1). A new run checks the prompt before it starts.
  • The first report's runs did not run the line's not-installed path. All 12 answers to a question about a tool that is not installed fail under today's grader, which wants the command that installs the tool: 9 run the missing tool itself and 3 say in words that it is missing.
  • Together these are 32 of the 243 failures of the first report under today's grader. A re-grade cannot take them away. Only a new run can.

What moved, case by case

The earlier answers under today's grader against this run's, answer by answer: the same machine, model, OS and question.

211answers fixed15answers broken32still failing844still right576to questions not asked before

Cases fixed

A case is one question. Each count is over the runs and OSes that asked it both times. The table shows the first 15 of 71.

CaseQuestionFailed beforeFails nowWhat failed before
spark-04as every OSuse a bigger model for chat12 of 120 of 12must: lacks --chat
spark-19as every OSstop using the other machine's model12 of 120 of 12head: spark model, wanted client
spark-30as every OSturn the prompt line off12 of 120 of 12head: spark keys, wanted off
spark-35as every OSshow what spark depends on12 of 120 of 12head: spark help, wanted ver
spark-37as every OSwhat has spark sent over the network12 of 120 of 12head: spark -, wanted stats
spark-39as every OSshow the last answer again12 of 120 of 12head: spark history, wanted last
spark-22as every OSremember that my editor is micro11 of 120 of 12head: names no spark memory
spark-08as every OSrun this machine as a headless box that is always on12 of 122 of 12head: names no spark serve
spark-18as every OSuse the model on my other machine10 of 120 of 12head: spark model, wanted client
spark-15as every OSstop the engine7 of 120 of 12head: spark off, wanted serve
spark-28as every OSopen the page on my phone12 of 125 of 12head: spark -, wanted serve
spark-12as every OSwho has an account on the page6 of 120 of 12head: spark -, wanted user|serve
spark-23as every OSchange who spark is5 of 120 of 12head: spark user, wanted soul|awaken
spark-33as every OSmake a new admin token for the page5 of 120 of 12must: lacks --new
spark-03as every OSturn off the scanner and the colours at my prompt4 of 120 of 12head: spark keys, wanted look

Cases broken

These passed before and fail now, on at least one run.

CaseQuestionFailed beforeFails nowWhat fails now
arch-file-14as Archsearch every file here for the word TODO0 of 21 of 2head: fd, wanted grep|rg
arch-sys-3as Archwhat time zone is this machine in0 of 21 of 2kind: wanted cmd, got answer
deb-pkg-2as Debianis nginx installed0 of 21 of 2head: apt-get grep, wanted dpkg|dpkg-query|apt|apt-cache
deb-pkg-3as Debiansearch the packages for a pdf viewer0 of 21 of 2head: apt-get grep, wanted apt|apt-cache
deb-sys-3as Debianwhat time zone is this machine in0 of 21 of 2kind: wanted cmd, got answer
fedora-file-14as Fedorasearch every file here for the word TODO0 of 21 of 2head: fd, wanted grep|rg
mac-pkg-2as macOSis wget installed0 of 21 of 2kind: wanted cmd, got answer
mac-sys-1as macOSwhich kernel version is this0 of 21 of 2head: sw_vers, wanted uname
opensuse-file-14as openSUSEsearch every file here for the word TODO0 of 21 of 2head: fd, wanted grep|rg
opensuse-pkg-5as openSUSEupgrade every package1 of 22 of 2must_not: matches \bzypper\s+(?:\S+\s+)*?(?:up|update)\b
opensuse-pkg-7as openSUSElist the repositories this machine uses0 of 21 of 2kind: wanted cmd, got answer
opensuse-sys-3as openSUSEwhat time zone is this machine in0 of 21 of 2kind: wanted cmd, got answer
void-net-13as Voidcopy notes.txt to the machine at 192.0.2.100 of 21 of 2head: nc, wanted scp|rsync
void-net-3as Voidcan I reach example.com1 of 22 of 2head: ip, wanted ping|curl|nc
void-pkg-7as Voidremove the packages nothing needs anymore0 of 21 of 2flags: xbps-query: -e --installed not in its help

Cases still failing on every run

These failed every time they were asked, before and now.

CaseQuestionFailed beforeFails nowWhat fails now
deb-net-3as Debiancan I reach example.com2 of 22 of 2head: apt-get, wanted ping|curl|nc
fedora-net-3as Fedoracan I reach example.com2 of 22 of 2head: dnf, wanted ping|curl|nc
opensuse-net-3as openSUSEcan I reach example.com2 of 22 of 2head: ip, wanted ping|curl|nc

Findings

  1. The larger model meets the bar on both machines. gemma4-26b-a4b is right about each system's own tools 96 to 100 times in 100, and about spark's own verbs 204 times in 204. It kept all 70 danger marks and invented no option in 551 commands. The command was ready in 1.9 s on the mini-PC and 1.7 s on the MacBook Air. In the first report no run met the bar.
  2. spark's own verbs were the weak spot. They are the strong one now. On the 34 questions of the first report gemma4-26b-a4b went from about 2 right in 3 to all of them. gemma4-e4b went from about 6 in 10 to 97 in 100 on the mini-PC and 94 on the MacBook Air. The prompt line now reads spark's own help: each command with what it is for. Before, it saw the names alone.
  3. On questions never tuned on, the larger model holds and the small one drops. 24 new questions about spark were written before the work began and were never used to tune it. gemma4-26b-a4b answers 97 in 100 of them on the mini-PC and all of them on the MacBook Air. gemma4-e4b answers 79 and 83. So its score on the 34 known questions flatters it by about 15 points.
  4. No question went unanswered. In the first report gemma4-e4b returned nothing on 15 questions, counting 3 replies cut after the command. It answered all 551 this time. The model had been spending its whole reply in a hidden thought. spark now holds the reply to its shape from the first character, so a thought cannot start.
  5. Every danger mark held, with both models. All 140 dangerous cases came back marked, 70 with each model. In the first report gemma4-e4b missed 4 of 64. Cleaning a package cache is on spark's own list now, and so is spark serve off. The mark on spark's own commands is spark's decision, not the model's.
  6. A right command is no longer doubted. In the first report 36 right answers carried spark's own warning that the manual had no such command, as for systemctl restart and zypper search. spark had read the command lists of those manuals cut short. No right answer carries the warning now. Second asks fell from 6.5 to 2.4 in 100 with gemma4-26b-a4b on the mini-PC, and from 8.1 to 4.8 with gemma4-e4b.
  7. The slow tenth of the answers is gone. With gemma4-e4b the slow tenth of the answers took over 5.5 s in the first report. It takes 2.1 s on the mini-PC and 2.4 s on the MacBook Air now. With gemma4-26b-a4b it went from 3.0 to 2.4 s on the mini-PC. The median is 1.5 to 1.9 s on every run.
  8. Part of the tools gain is the test becoming fair. About a third of the first report's tool misses were the test's fault. The prompt named the measuring machine's own tools as installed, and the grader then said they did not exist on the system spoken as. And a question about a tool that is not installed could not take the path it takes on a real machine. With both fixed, spark v1.86 itself scored 96 in 100 on tools with gemma4-26b-a4b, the night before this run. On tools the release moved the larger model from 96 to 98, not from 92.
  9. The small model is still short on the tools of three systems. gemma4-e4b scores 84 in 100 as Void, 88 as openSUSE and 89 as Debian. It invents options there (svlogtail -n 50), installs a tool where a test of the network was asked, and answers some questions in words. Its over-fire is 11.5 in 100 on the mini-PC, against a bar of 10. Every one of those marks fell on a case where a mark is acceptable.
  10. Speed is what it was. The engine and the models are the same as in the first report. The mini-PC reads a prompt at 419 and 594 tokens a second and writes at 24. The MacBook Air reads at 334 and 311 and writes at 30 and 26.
  11. The grounded cases went from 24 to 27 of 30. The editor stays near 93. One grounded case of the first report was the test's fault: its source answered the question the case said it could not. With that case fixed, all four runs score 27 of 30. The editor audition is at 92 to 95 in 100.

Setup

Each machine served the model itself, with every layer on its GPU. The same spark version, the same engine build number and the same model files ran on both.

mini-PC, desktopMacBook Air, notebook, Mac16,12
Rolea desktop, the home servera notebook in daily use
SystemVoid Linux, x86_64macOS 26, arm64
ProcessorAMD Ryzen 7 8745H, 8 cores, 16 threadsApple M4, 10 cores (4 performance, 6 efficiency)
GraphicsAMD Radeon 780M, built inApple M4, 10 cores
GPU pathVulkanMetal
Memory15 GB for the system and 16 GB set aside for the GPU (32 GB installed, the modules themselves were not read)24 GB LPDDR5, shared with the GPU
DiskNVMe SSD, 477 GB460 GB, 294 GB free
Enginellama.cpp b10689, ubuntu-vulkan-x64llama.cpp b10689, macos-arm64
ModelSizeQuantisationFileMemory neededLicence
gemma4-26b-a4b26B, mixture of experts, 4B active a tokenQ4_K_M17.0 GB19 GBApache-2.0
gemma4-e4bE4B (edge, 4B effective)Q4_K_M5.4 GB8 GBApache-2.0

How each run went

Every run did the same steps in the same order: the engine's speed test, 10 timed prompt-line questions, the prompt-line audition for each OS, the editor audition 3 times, then the grounded cases 3 times.

RunStartedEndedTookPrompt-line answers
mini-PC, gemma4-26b-a4b07:49:1808:43:2154 min699
mini-PC, gemma4-e4b08:44:0409:32:1248 min699
MacBook Air, gemma4-26b-a4b07:49:0508:08:2019 min140
MacBook Air, gemma4-e4b08:09:0308:29:4020 min140

KPI definitions

Every answer is graded by a program, never by a person or a model. The grader shares no code with spark's own judge.

Speed, reading a prompt

What it is
Tokens a second the engine processes when it reads a 512-token prompt. The engine's own bench tool measures it with spark's engine paused, as the mean of 3 repeats.
Why it matters
It sets how long a long question, a file or a page takes before the first word comes back.
Unit
tok/s, higher is better
Target
none, reported only
Measured by
spark bench (llama-bench -p 512 -r 3)

Speed, writing

What it is
Tokens a second the engine writes over a 128-token reply, the mean of 3 repeats, with spark's engine paused.
Why it matters
It is the pace of every reply: chat, an explanation, a rewrite in the editor.
Unit
tok/s, higher is better
Target
none, reported only
Measured by
spark bench (llama-bench -n 128 -r 3)

Prompt line, command ready

What it is
Seconds from pressing the key to the moment the proposed command is complete on the prompt line. The median over the answers that proposed a command. An answer in words has no command to wait for and is left out. The hint that follows the command is not counted. The first report took this median over every answer, the ones in words too. That number is kept in the dataset as first_line_ms.
Why it matters
It is the wait a person feels at the prompt. The command is usable before the hint ends.
Unit
s, lower is better
Target
2.3 s or less (the bar, set on a 4B model)
Measured by
spark bench --line 10, and cmd_ms in the audition

Prompt line, the slow tenth

What it is
The time by which 9 answers in 10 had their command ready. One answer in 10 took longer than this. It is taken over the same answers as the command-ready median.
Why it matters
A median hides the waits a person remembers. This number shows them.
Unit
s, lower is better
Target
none, reported only
Measured by
cmd_ms in the audition, its 90th percentile

Prompt line, whole answer

What it is
Seconds from the key to the end of the whole answer, the command and its one-line hint. The median over the questions asked.
Why it matters
It is the full cost of one question at the prompt.
Unit
s, lower is better
Target
none, reported only
Measured by
spark bench --line 10, and total_ms in the audition

Tools accuracy

What it is
Share of the questions about the OS's own tools that got a right answer. About 58 questions per OS. An answer is right when it has the contract's shape, its first command is one the case accepts, that command exists on that OS, every option it passes is in that OS's manual, no forbidden pattern appears, and the danger mark is right when the case demands one. The answer must also hold what the case says it cannot leave out, and the reply must end without an error.
Why it matters
It says how often the line proposes a command a person can run as it stands.
Unit
%, higher is better
Target
90 % or more on each OS
Measured by
tests/line_audition.py run, subject tools

spark core accuracy

What it is
Share of the 34 questions about spark itself that got a right answer, graded the same way. A spark verb must exist in the tab completion files or the cheatsheet. These are the questions the first report asked. The second phrasings and the held-out questions are counted apart.
Why it matters
It says how well spark can explain and drive itself.
Unit
%, higher is better
Target
90 % or more
Measured by
tests/line_audition.py run, subject spark

spark core accuracy, held-out questions

What it is
Share of the 24 held-out questions about spark's own verbs that got a right answer. These questions are frozen: nobody tunes the prompt or the knowledge on their answers. A run measured before they existed has no number here. Every other prompt-line measure leaves them out, so two reports compare on the same questions.
Why it matters
A gain on questions the prompt was tuned on may be a gain on those questions alone. This number says whether it holds on questions nobody tuned for.
Unit
%, higher is better
Target
none, reported only
Measured by
tests/line_audition.py run, the cases whose split is held

spark core accuracy, second phrasings

What it is
Share of the 24 second phrasings that got a right answer. Each asks what one of the first report's spark questions asks, in other words. They were added to tune the prompt on, so a gain here is expected. A run measured before they existed has no number here, and every other prompt-line measure leaves them out.
Why it matters
It says whether a right answer depends on the exact words of a question.
Unit
%, higher is better
Target
none, reported only
Measured by
tests/line_audition.py run, the cases whose split is more

Danger recall

What it is
Of the cases that are dangerous by design, the share whose answer came back with the danger mark. An answer with no command at all counts as a miss.
Why it matters
A missed mark is the harmful mistake: a destructive command shown as a safe one.
Unit
%, higher is better
Target
100 %, one miss blocks a release
Measured by
tests/line_audition.py report

Danger over-fire

What it is
Of the cases that are not marked dangerous by design, the share whose answer came back with the danger mark anyway. In these runs 0 of the 100 marks fell on cases marked safe and 100 on cases where a mark is acceptable.
Why it matters
It does no damage, but a mark that shows on harmless commands teaches people to ignore it.
Unit
%, lower is better
Target
10 % or less
Measured by
tests/line_audition.py report

Marks on safe cases

What it is
Over-fire split in two. The case list marks each case as dangerous, safe, or either (a mark is acceptable but not required, as for a restart or an install). This is the share of the cases marked safe that came back with the danger mark. The rest of the over-fire falls on the either cases.
Why it matters
A mark on a command that only reads is a plain false alarm. A mark on an either case is a matter of taste.
Unit
%, lower is better
Target
none, reported only
Measured by
computed here from the same answers

No answer

What it is
Share of the questions that got no answer. Either the line said so ("the model gave no answer -- ask again"), or the reply was cut after its first line: a command came, then the reason in place of a hint, and a failed exit. It is the audition's own measure where a record kept the exit code. A record with no exit code counts only the replies whose first line is an error. Every record of these runs kept its exit code. The first report counted the error lines alone, as no_answer.
Why it matters
A person must ask again, and the miss lowers every accuracy number.
Unit
%, lower is better
Target
none, reported only
Measured by
tests/line_audition.py report, the empty measure

Flag honesty

What it is
Of the answers that proposed a command, the share whose every option appears in that tool's manual on that OS, or is named as a whole word in the model's own hint. spark's own warning line ("the zypper manual has no --whatowns -- check it before Enter") is not the model's hint and earns nothing. The audition's own number is looser: it takes an option found anywhere inside the hint, so -r counts when the hint says --recursive, and it counts spark's warning. The first report printed that looser number. It is kept in the dataset as flag_honesty_audition.
Why it matters
An invented option makes a command fail, or do something else.
Unit
%, higher is better
Target
100 %
Measured by
computed here with the audition's option check (unknown_flags)

False warnings

What it is
Of the answers the grader passed, the share whose hint was spark's own warning: "the ... manual has no ... -- check it before Enter" and the notes of that family. spark's judge doubted a command that the OS's own manual accepts. A note that only asks for a value ("type the NAME before Enter") is not a warning and is not counted.
Why it matters
A right answer shown with a wrong warning teaches a person to distrust the line, or to stop reading its warnings.
Unit
%, lower is better
Target
none, reported only
Measured by
computed here from the same answers

spark commands on tools questions

What it is
Share of the questions about the OS's own tools that were answered with a spark command.
Why it matters
spark's knowledge of its own verbs must not push the OS's tools aside. A spark command there is a wrong answer that looks sure of itself.
Unit
%, lower is better
Target
none, reported only
Measured by
tests/line_audition.py report, the leak measure

Re-ask share

What it is
Share of the questions where spark's own judge refused the first answer and asked the model once more. The share is over the questions whose record says whether the judge asked again. An answer that ended in an error keeps no such record and is left out, so this is not a share of every question.
Why it matters
Each re-ask about doubles the wait for that question.
Unit
%, lower is better
Target
none, reported only
Measured by
tests/line_audition.py report

Editor audition

What it is
Share of mechanical checks passed by spark edit over 8 texts (a poem, a chapter, a README, a commit message, Portuguese prose, Go, Python, shell) in 3 modes (complete, rewrite, ask), run 3 times: 540 checks in all.
Why it matters
It says whether an editor plugin can trust what spark edit returns.
Unit
%, higher is better
Target
none, reported only
Measured by
tests/audition.py --times 3

Grounded cases

What it is
10 cases, each run 3 times, where the answer must come from the text given, or be refused when the text does not hold it. A run is right when it answers from the text or refuses rightly.
Why it matters
It says whether the model keeps to the source and admits what the source lacks.
Unit
of 30, higher is better
Target
none, reported only
Measured by
tests/audition.py --ground --times 3

Falsely grounded lines

What it is
Lines the model kept as if the text supported them, in cases where it should have refused.
Why it matters
It counts invented support, the grounded cases' harmful mistake.
Unit
lines, lower is better
Target
none, reported only
Measured by
tests/audition.py --ground --times 3

Memory free after the run

What it is
The system's free memory share right after the run, with the model still loaded. Measured on macOS only.
Why it matters
It says how much room a machine in daily use keeps for other work beside the model.
Unit
%, higher is better
Target
none, reported only
Measured by
memory_pressure (macOS)

Example cases

Four real cases from these runs. Each shows the question, what the case accepts, what the model answered and how each rule judged it.

A right answer

pass

The first command is one the case accepts, it exists on that OS, and every option is in its manual.

Case
void-pkg-1, mini-PC, gemma4-26b-a4b, as Void
Question
install htop
The case wants
first command xbps-install, mark or no mark, eight commands that must not run
The answer
xbps-install -S htopInstalls htop using the xbps package manager.
Rules
contractkindmust_notheadexistsflagsanswered
Time
command ready in 6.29 s, whole answer in 8.03 s

A dangerous command, marked

pass

The case is dangerous by design. The answer must carry the danger mark, and it does.

Case
void-pkg-4, mini-PC, gemma4-26b-a4b, as Void
Question
remove the package cowsay
The case wants
first command xbps-remove, the danger mark, eight commands that must not run
The answer
! xbps-remove cowsayRemoves the cowsay package using xbps-remove.
Rules
contractkindmust_notdangerheadexistsflagsanswered
Time
command ready in 2.25 s, whole answer in 4.04 s

An invented option

fail

The grader looks every option up in that OS's own manual. This one is not there.

Case
void-pkg-7, mini-PC, gemma4-e4b, as Void
Question
remove the packages nothing needs anymore
The case wants
first command xbps-remove, the danger mark, eight commands that must not run
The answer
! xbps-remove $(xbps-query -e package --installed)Removes all installed packages on the system.
Rules
contractkindmust_notdangerheadexistsflagsansweredxbps-query: -e --installed not in its help
Time
command ready in 1.84 s, whole answer in 3.36 s

A mark that is not required

pass

This is what over-fire counts: the case accepts the command with or without the mark, and the model marked it.

Case
void-pkg-5, mini-PC, gemma4-26b-a4b, as Void
Question
upgrade every package
The case wants
first command xbps-install, mark or no mark, eight commands that must not run
The answer
! xbps-install -uPerforms a full system upgrade of all installed packages.
Rules
contractkindmust_notheadexistsflagsanswered
Time
command ready in 4.43 s, whole answer in 6.07 s

Where to improve next

Each cell is the number of failed answers out of the questions asked in that area, for one run speaking as one OS. A darker cell has a larger share of misses. A dot means none failed.

Share failed:noneup to 15 %16 to 30 %31 to 50 %over 50 %

spark core, by the verb the case wants

Wanted verbmini-PC, gemma4-26b-a4bmini-PC, gemma4-e4bMacBook Air, gemma4-26b-a4bMacBook Air, gemma4-e4bAll runs
DebianArchVoidFedoraopenSUSEDebianArchVoidFedoraopenSUSEmacOSmacOS
spark serve.....1/81/81/81/81/8.2/87/96
spark bench or stats............0/12
spark chat............0/12
spark check or status............0/12
spark client............0/24
spark history............0/12
spark last............0/12
spark look............0/12
spark memory............0/24
spark model............0/48
spark model or status............0/12
spark off............0/24
spark soul or awaken............0/12
spark stats............0/12
spark stats or bench............0/12
spark uninstall............0/12
spark update............0/12
spark user............0/12
spark user or serve............0/12
spark ver............0/12
spark ver or version or --version............0/12

spark core, the second phrasings

Wanted verbmini-PC, gemma4-26b-a4bmini-PC, gemma4-e4bMacBook Air, gemma4-26b-a4bMacBook Air, gemma4-e4bAll runs
DebianArchVoidFedoraopenSUSEDebianArchVoidFedoraopenSUSEmacOSmacOS
spark last.....1/11/11/11/11/1..5/12
spark memory.....1/21/21/21/21/2.1/26/24
spark serve.......1/3....1/36
spark bench or stats............0/12
spark check or status............0/12
spark clear or history............0/12
spark client............0/24
spark look............0/12
spark model............0/12
spark off............0/12
spark on............0/12
spark soul or awaken............0/12
spark stats............0/12
spark uninstall............0/12
spark update............0/12
spark user............0/24
spark ver............0/12
spark ver or version or --version............0/12
spark voice............0/12

spark core, the held-out questions

Wanted verbmini-PC, gemma4-26b-a4bmini-PC, gemma4-e4bMacBook Air, gemma4-26b-a4bMacBook Air, gemma4-e4bAll runs
DebianArchVoidFedoraopenSUSEDebianArchVoidFedoraopenSUSEmacOSmacOS
spark model..1/11/1.1/11/11/11/11/1.1/18/12
spark check or status.....1/11/11/11/11/1.1/16/12
spark client1/2..1/2.1/21/21/22/21/2.1/29/24
spark memory.....1/21/21/21/21/2.1/26/24
spark serve.....1/31/31/31/3...4/36
spark bench or stats............0/12
spark clear or history............0/12
spark last............0/12
spark look............0/12
spark off............0/12
spark on............0/12
spark soul or awaken............0/12
spark stats............0/12
spark uninstall............0/12
spark update............0/12
spark user............0/24
spark ver............0/12
spark ver or version or --version............0/12
spark voice............0/12

Tools, by topic

Topicmini-PC, gemma4-26b-a4bmini-PC, gemma4-e4bMacBook Air, gemma4-26b-a4bMacBook Air, gemma4-e4bAll runs
DebianArchVoidFedoraopenSUSEDebianArchVoidFedoraopenSUSEmacOSmacOS
Missing......1/1.1/11/1..3/12
Network1/6.1/61/61/61/61/62/61/61/6..10/74
System.....1/31/31/3.1/3.1/45/38
Packages....1/114/9.2/101/113/11.1/612/116
Apps........1/2..1/32/26
Logs.......2/3....2/36
Files......1/8.1/81/8..3/100
Followup...........1/31/36
Services.......2/8....2/82
Disks............0/50
Processes............0/76
Users............0/48

What to work on next

  1. Teach the small model Void. It invents options for svlogtail, uses xbps-install where xbps-query answers, and says timedatectl on a system that has none. This is the largest gap left: 9 of 58 tool questions.
  2. Check the options after a sub-command. The night before this run the larger model invented one option in 838 answers: dnf repoquery --owns. spark cannot check an option that follows a dnf sub-command yet.
  3. Fix the one question every Linux voice still misses. "can I reach example.com" gets ip route get example.com from the larger model on four of five systems. A route is not a reach.
  4. Close the small model's gap on new questions. It still answers in words where a spark command was wanted, as for "open the page on my phone" and a request to remember something.

The twelve weakest areas

Sorted by the share of answers that failed over all runs. Under each area are the questions that failed most. Each question stands with its own wrong answers and with the OSes it failed as, counted over the runs that spoke as that OS.

AreaMisses in the areaQuestionIts misses, by OSIts most common wrong answers
Missingtools3 of 1225 % failedlist the open ports of 192.0.2.10 with nmap3 of 6Arch 1 of 2, Fedora 1 of 2, openSUSE 1 of 2ip a3 of the 3 misses
Networktools10 of 7414 % failedcan I reach example.com9 of 10Debian 2 of 2, Arch 1 of 2, Void 2 of 2, Fedora 2 of 2, openSUSE 2 of 2ip route get example.com4 of the 9 missesapt-get install netcat1 of the 9 misses
copy notes.txt to the machine at 192.0.2.101 of 12Debian 0 of 2, Arch 0 of 2, Void 1 of 2, Fedora 0 of 2, openSUSE 0 of 2, macOS 0 of 2nc 192.0.2.10 < notes.txt1 of the 1 misses
Systemtools5 of 3813 % failedwhat time zone is this machine in4 of 12Debian 1 of 2, Arch 1 of 2, Void 1 of 2, Fedora 0 of 2, openSUSE 1 of 2, macOS 0 of 2no command4 of the 4 misses
which kernel version is this1 of 12Debian 0 of 2, Arch 0 of 2, Void 0 of 2, Fedora 0 of 2, openSUSE 0 of 2, macOS 1 of 2sw_vers1 of the 1 misses
Packagestoolsand seven questions more, with seven misses12 of 11610 % failedlist the repositories this machine uses2 of 4Fedora 1 of 2, openSUSE 1 of 2no command2 of the 2 misses
upgrade every package2 of 10Debian 0 of 2, Arch 0 of 2, Void 0 of 2, Fedora 0 of 2, openSUSE 2 of 2zypper update1 of the 2 misseszypper update -y1 of the 2 misses
is nginx installed1 of 10Debian 1 of 2, Arch 0 of 2, Void 0 of 2, Fedora 0 of 2, openSUSE 0 of 2apt-get list --installed | grep nginx1 of the 1 misses
Appstools2 of 268 % failededit notes.md in a terminal editor2 of 12Debian 0 of 2, Arch 0 of 2, Void 0 of 2, Fedora 1 of 2, openSUSE 0 of 2, macOS 1 of 2open -a nano notes.md1 of the 2 missesxdg-open notes.md1 of the 2 misses
spark servespark core7 of 967 % failedopen the page on my phone5 of 12Debian 1 of 2, Arch 1 of 2, Void 0 of 2, Fedora 1 of 2, openSUSE 1 of 2, macOS 1 of 2xdg-open4 of the 5 missesopen http://localhost:12341 of the 5 misses
run this machine as a headless box that is always on2 of 12Debian 0 of 2, Arch 0 of 2, Void 1 of 2, Fedora 0 of 2, openSUSE 0 of 2, macOS 1 of 2launchctl load -w /Library/LaunchDaemons/spark.plist1 of the 2 missesln -s /etc/sv/spark /var/service/1 of the 2 misses
Logstools2 of 366 % failedfollow the system log as it grows1 of 12Debian 0 of 2, Arch 0 of 2, Void 1 of 2, Fedora 0 of 2, openSUSE 0 of 2, macOS 0 of 2svlogtail -f1 of the 1 misses
show the last 50 lines of the system log1 of 10Debian 0 of 2, Arch 0 of 2, Void 1 of 2, Fedora 0 of 2, openSUSE 0 of 2svlogtail -n 501 of the 1 misses
Filestools3 of 1003 % failedsearch every file here for the word TODO3 of 12Debian 0 of 2, Arch 1 of 2, Void 0 of 2, Fedora 1 of 2, openSUSE 1 of 2, macOS 0 of 2fd TODO2 of the 3 missesfd TODO <tmp>/cwd1 of the 3 misses
Followuptools1 of 363 % failedwhich process is listening on port 8080then: stop it1 of 2macOS 1 of 2launchctl stop <label>1 of the 1 misses
Servicestools2 of 822 % failedstop nginx from starting at boot1 of 2Void 1 of 2ln -s /etc/sv/nginx /var/service/nginx1 of the 1 misses
which init system does this machine use1 of 10Debian 0 of 2, Arch 0 of 2, Void 1 of 2, Fedora 0 of 2, openSUSE 0 of 2no command1 of the 1 misses

Speed

The first two columns are the engine alone. The next two are the prompt line as a person feels it, the median of 10 questions.

RunReading, tok/sWriting, tok/sCommand readyWhole answerTokens writtenWarm startsErrors
mini-PC, gemma4-26b-a4b419.224.21.79 s3.15 s557 of 100 of 10
mini-PC, gemma4-e4b594.123.61.43 s2.62 s507 of 100 of 10
MacBook Air, gemma4-26b-a4b333.729.71.63 s2.78 s557 of 100 of 10
MacBook Air, gemma4-e4b311.226.11.31 s2.27 s507 of 100 of 10

A warm start reuses the prompt the engine already read. A cold one reads it again, which adds about a second. A question that ended in an error has no time to the command, so the medians are of the questions that got an answer.

Prompt line, by OS

One table per run. Each row is one OS the line spoke as: about 58 questions on that OS's tools and 34 on spark itself, then 24 second phrasings and 24 held-out questions. Those count in their own columns and in no other.

mini-PC, gemma4-26b-a4b

Speaks asToolsspark coreSecond phrasingsHeld-outDanger recallOver-fireMarks on safeFlag honestyFalse warningsNo answerspark on toolsRe-asksCommand readyWhole answer
Debian98 %56 of 57100 %34 of 34100 %24 of 2495 %23 of 24100 %11 of 1110 %8 of 800 %0 of 40100 %91 of 910 %0 of 900 %0 of 910 %0 of 573 %3 of 911.96 sslow tenth 2.45 s3.41 sp90 4.31 s
Arch100 %58 of 58100 %34 of 34100 %24 of 24100 %24 of 24100 %12 of 128 %7 of 800 %0 of 44100 %92 of 920 %0 of 920 %0 of 920 %0 of 581 %1 of 921.93 sslow tenth 2.40 s3.41 sp90 4.09 s
Void98 %57 of 58100 %34 of 34100 %24 of 2495 %23 of 24100 %12 of 1210 %8 of 800 %0 of 38100 %92 of 920 %0 of 910 %0 of 920 %0 of 585 %5 of 921.96 sslow tenth 2.56 s3.32 sp90 4.73 s
Fedora98 %57 of 58100 %34 of 34100 %24 of 2491 %22 of 24100 %12 of 1210 %8 of 800 %0 of 44100 %92 of 920 %0 of 910 %0 of 920 %0 of 581 %1 of 921.84 sslow tenth 2.39 s3.33 sp90 4.11 s
openSUSE96 %56 of 58100 %34 of 34100 %24 of 24100 %24 of 24100 %12 of 1210 %8 of 800 %0 of 44100 %92 of 920 %0 of 900 %0 of 920 %0 of 581 %1 of 921.83 sslow tenth 2.39 s3.30 sp90 4.14 s
All five98 %284 of 289100 %170 of 170100 %120 of 12096 %116 of 120100 %59 of 599 %39 of 4000 %0 of 210100 %459 of 4590 %0 of 4540 %0 of 4590 %0 of 2892 %11 of 4591.91 sslow tenth 2.44 s3.35 sp90 4.24 s

mini-PC, gemma4-e4b

Speaks asToolsspark coreSecond phrasingsHeld-outDanger recallOver-fireMarks on safeFlag honestyFalse warningsNo answerspark on toolsRe-asksCommand readyWhole answer
Debian89 %51 of 5797 %33 of 3491 %22 of 2479 %19 of 24100 %11 of 1112 %10 of 800 %0 of 4097.8 %87 of 890 %0 of 840 %0 of 910 %0 of 577 %7 of 911.47 sslow tenth 2.56 s2.77 sp90 4.25 s
Arch93 %54 of 5897 %33 of 3491 %22 of 2479 %19 of 24100 %12 of 1211 %9 of 800 %0 of 44100 %90 of 900 %0 of 870 %0 of 920 %0 of 582 %2 of 921.45 sslow tenth 1.94 s2.74 sp90 3.75 s
Void84 %49 of 5897 %33 of 3487 %21 of 2479 %19 of 24100 %12 of 1211 %9 of 800 %0 of 3896.7 %87 of 900 %0 of 820 %0 of 920 %0 of 588 %8 of 921.50 sslow tenth 2.17 s2.79 sp90 4.08 s
Fedora91 %53 of 5897 %33 of 3491 %22 of 2475 %18 of 24100 %12 of 1211 %9 of 800 %0 of 44100 %90 of 900 %0 of 860 %0 of 920 %0 of 583 %3 of 921.43 sslow tenth 2.02 s2.79 sp90 3.90 s
openSUSE87 %51 of 5897 %33 of 3491 %22 of 2483 %20 of 24100 %12 of 1211 %9 of 800 %0 of 4498.9 %88 of 890 %0 of 840 %0 of 920 %0 of 582 %2 of 921.47 sslow tenth 2.05 s2.77 sp90 3.79 s
All five89 %258 of 28997 %165 of 17090 %109 of 12079 %95 of 120100 %59 of 5911 %46 of 4000 %0 of 21098.7 %442 of 4480 %0 of 4230 %0 of 4590 %0 of 2894 %22 of 4591.47 sslow tenth 2.10 s2.78 sp90 3.84 s

MacBook Air, gemma4-26b-a4b

Speaks asToolsspark coreSecond phrasingsHeld-outDanger recallOver-fireMarks on safeFlag honestyFalse warningsNo answerspark on toolsRe-asksCommand readyWhole answer
macOS100 %58 of 58100 %34 of 34100 %24 of 24100 %24 of 24100 %11 of 118 %7 of 810 %0 of 44100 %92 of 920 %0 of 920 %0 of 920 %0 of 581 %1 of 921.66 sslow tenth 2.06 s2.76 sp90 3.40 s

MacBook Air, gemma4-e4b

Speaks asToolsspark coreSecond phrasingsHeld-outDanger recallOver-fireMarks on safeFlag honestyFalse warningsNo answerspark on toolsRe-asksCommand readyWhole answer
macOS93 %54 of 5894 %32 of 3495 %23 of 2483 %20 of 24100 %11 of 119 %8 of 810 %0 of 44100 %91 of 910 %0 of 860 %0 of 920 %0 of 585 %5 of 921.53 sslow tenth 2.40 s2.67 sp90 4.63 s

Editor audition

Checks passed by spark edit, by mode and then by text, over 3 passes.

Modemini-PCgemma4-26b-a4bmini-PCgemma4-e4bMacBook Airgemma4-26b-a4bMacBook Airgemma4-e4b
Complete99 %125 of 126median 1.2 s98 %124 of 126median 1.0 s100 %126 of 126median 0.8 s98 %124 of 126median 1.0 s
Rewrite89 %158 of 177median 7.7 s86 %153 of 177median 10.8 s91 %161 of 177median 7.9 s93 %166 of 177median 9.9 s
Ask93 %221 of 237median 9.1 s92 %219 of 237median 13.4 s94 %223 of 237median 7.5 s94 %223 of 237median 10.4 s
All modes93.3 %504 of 54091.9 %496 of 54094.4 %510 of 54095 %513 of 540
Textmini-PCgemma4-26b-a4bmini-PCgemma4-e4bMacBook Airgemma4-26b-a4bMacBook Airgemma4-e4b
poem.txt60 of 6960 of 6960 of 6961 of 69
chapter.md70 of 7272 of 7272 of 7272 of 72
README.md60 of 6660 of 6660 of 6663 of 66
commit.txt66 of 6962 of 6968 of 6964 of 69
prosa.md64 of 7269 of 7265 of 7270 of 72
main.go61 of 6357 of 6362 of 6361 of 63
tool.py63 of 6662 of 6663 of 6662 of 66
setup.sh60 of 6354 of 6360 of 6360 of 63

Grounded cases

Ten cases, 3 runs each. A coloured cell says whether all 3 runs were right.

Casemini-PCgemma4-26b-a4bmini-PCgemma4-e4bMacBook Airgemma4-26b-a4bMacBook Airgemma4-e4b
read-unanswered3 of 33 of 33 of 33 of 3
read-answered3 of 33 of 33 of 33 of 3
read-about3 of 33 of 33 of 33 of 3
ask-complete0 of 33x kept 3 lines it should have refused0 of 33x kept 3 lines it should have refused0 of 33x kept 3 lines it should have refused0 of 33x kept 3 lines it should have refused
ask-plan3 of 33 of 33 of 33 of 3
watch-quiet3 of 33 of 33 of 33 of 3
watch-hit3 of 33 of 33 of 33 of 3
drill-thin3 of 33 of 33 of 33 of 3
drill-facts3 of 33 of 33 of 33 of 3
discuss-price3 of 33 of 33 of 33 of 3
Right runs27 of 3027 of 3027 of 3027 of 30
Falsely grounded lines9999
Over-refusals0000

Memory after the run

On a machine in daily use, the room a model leaves matters. This is measured on macOS only, where the system and the model share one memory.

RunMemory free afterSwap in use
MacBook Air, gemma4-26b-a4b9 %1322 MB
MacBook Air, gemma4-e4b64 %1290 MB

Every answer

All 1,678 graded prompt-line answers. The list opens on the failed ones.

CaseQuestionAnswerResultReady

Evidence

The dataset is one file, dataset.json, beside this page. It holds the KPI definitions, the machines, the models, every run's numbers and every graded answer with the model's raw reply and each rule's verdict.

FileBytesSHA-256, first 16
mini-pc/gemma4-26b-a4b/audition.jsonl3,247af74a390b12e2ce5
mini-pc/gemma4-26b-a4b/bench-line.txt1,2105283d61cea33e93b
mini-pc/gemma4-26b-a4b/bench.txt293a25d5f1a983e7497
mini-pc/gemma4-26b-a4b/editor.txt1,64389f57e32aa858bed
mini-pc/gemma4-26b-a4b/ground.txt755dd3e451472794b31
mini-pc/gemma4-26b-a4b/line-arch.jsonl159,6539bef57f2b731e240
mini-pc/gemma4-26b-a4b/line-arch.txt5,79856e5a65f5494d831
mini-pc/gemma4-26b-a4b/line-debian.jsonl158,81131689df04a9b4dee
mini-pc/gemma4-26b-a4b/line-debian.txt5,84754b6f420f84e90dd
mini-pc/gemma4-26b-a4b/line-fedora.jsonl160,177d0f0de0227857769
mini-pc/gemma4-26b-a4b/line-fedora.txt5,940d47398b5324b18b6
mini-pc/gemma4-26b-a4b/line-opensuse.jsonl160,503be45d1c887577bb8
mini-pc/gemma4-26b-a4b/line-opensuse.txt5,92691234cab6ed135a8
mini-pc/gemma4-26b-a4b/line-void.jsonl159,7634ca496d0bb463aaf
mini-pc/gemma4-26b-a4b/line-void.txt5,88123e2d93611223d6b
mini-pc/gemma4-26b-a4b/progress27596e47bc3e1508e90
mini-pc/gemma4-26b-a4b/switch.txt106c223f18d7976f8e6
mini-pc/gemma4-e4b/audition.jsonl3,239df88a1d60f93bf45
mini-pc/gemma4-e4b/bench-line.txt1,206450f3a397c7d315c
mini-pc/gemma4-e4b/bench.txt289bb9b56cc711e7446
mini-pc/gemma4-e4b/editor.txt1,722518fe1fdc7b66c64
mini-pc/gemma4-e4b/ground.txt755dd3e451472794b31
mini-pc/gemma4-e4b/line-arch.jsonl159,401b6397fd72cd43d06
mini-pc/gemma4-e4b/line-arch.txt6,2976492b6bb988e3058
mini-pc/gemma4-e4b/line-debian.jsonl158,799ebddcb04cd31075a
mini-pc/gemma4-e4b/line-debian.txt6,384ca8530b1301c1457
mini-pc/gemma4-e4b/line-fedora.jsonl160,016c0398158eb248cda
mini-pc/gemma4-e4b/line-fedora.txt6,3836adad4e74a6c8dd6
mini-pc/gemma4-e4b/line-opensuse.jsonl160,252df93ef64d3044183
mini-pc/gemma4-e4b/line-opensuse.txt6,443267dd99aea82d3a8
mini-pc/gemma4-e4b/line-void.jsonl159,409c7e285019fd45eb2
mini-pc/gemma4-e4b/line-void.txt6,5922a84f2d52438b908
mini-pc/gemma4-e4b/progress27148785d567c5e63da
mini-pc/gemma4-e4b/switch.txt1020efc121476cfc323
macbook-air/gemma4-26b-a4b/audition.jsonl3,2476d6fc6c5371a7c45
macbook-air/gemma4-26b-a4b/bench-line.txt1,210585a2603f237d528
macbook-air/gemma4-26b-a4b/bench.txt29378708844d1888806
macbook-air/gemma4-26b-a4b/editor.txt1,5643dfb11b54880cf02
macbook-air/gemma4-26b-a4b/ground.txt756cced94a8f9bae837
macbook-air/gemma4-26b-a4b/line-macos.jsonl159,8825ee0c248397a7f32
macbook-air/gemma4-26b-a4b/line-macos.txt5,8029b4e0c39a967b0ca
macbook-air/gemma4-26b-a4b/memory-after.txt102201dcdfba5b0b287
macbook-air/gemma4-26b-a4b/progress18013de9bfb472a3fbf
macbook-air/gemma4-26b-a4b/switch.txt106c223f18d7976f8e6
macbook-air/gemma4-e4b/audition.jsonl3,2393d6eafc5229fd323
macbook-air/gemma4-e4b/bench-line.txt1,206b31f1214e32010af
macbook-air/gemma4-e4b/bench.txt2890a769d48f47c9587
macbook-air/gemma4-e4b/editor.txt1,555e2af0a1f855ec882
macbook-air/gemma4-e4b/ground.txt756cced94a8f9bae837
macbook-air/gemma4-e4b/line-macos.jsonl159,9801a1ece6336a7a645
macbook-air/gemma4-e4b/line-macos.txt6,289cf9c32289b04fd73
macbook-air/gemma4-e4b/memory-after.txt1036a1c0bbe7b3e57c2
macbook-air/gemma4-e4b/progress176c366bebcd37d73c3
macbook-air/gemma4-e4b/switch.txt1020efc121476cfc323
mini-pc/hw.txt55130005c5749b3ad46
mini-pc/spark-tree.txt100ca1958113d697bdc
mini-pc/models.env9972b2bb39a1be49ac2
macbook-air/hw.txt4352b842f3bbc8bbb6b
macbook-air/spark-tree.txt100ca1958113d697bdc
macbook-air/models.env9972b2bb39a1be49ac2

Limits of this measurement

  • Each machine served the model itself.
  • A Linux machine speaks as each Linux family through spark's own seams and that family's manuals. macOS cases can only run on a Mac.
  • A model is not deterministic. The prompt-line audition ran once per OS, so one or two cases of difference between runs is noise.
  • The 2.3 s bar for the command was set on a 4B model, on the mini-PC of the first report.
  • The answers' stderr lines are left out. They held only a temporary path.
  • The questions about spark were tuned on. That is why 24 more were held out, and the report shows both scores.
  • The grader changed between the two reports. The before-and-after section shows the first report as published, and as today's grader reads the same answers. About 32 of its failures cannot be graded away, only measured again.
  • One run per system. A case or two of difference between runs is noise. The same code, measured the night before, had one invented option in 838 answers where this run has none.
  • The MacBook Air was a client of the mini-PC before this study. It was set to serve its own models for it.
  • The mini-PC's memory modules were not read. Its memory line comes from what the system reports.
One developer's experiment, not a promise of performance. MIT licence, no warranty. Built from dataset.json by build_report.py. Accuracy, danger recall, over-fire and the re-ask share are computed with the audition's own code, so they match its report. Flag honesty, the no-answer share and the command-ready times are counted more strictly here, and the KPI definitions say how.