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

spark v1.85 on two machines and two models

How fast spark answers, and how often it is right, measured on a mini-PC and on a MacBook Air with gemma4-26b-a4b and gemma4-e4b.

measured 2026-10-04spark v1.85 at 20ea8e0engine llama.cpp b106894 runs1,102 graded answers

Summary

No run meets the bar. gemma4-26b-a4b is the better model on both machines: it never missed a danger mark, and it is right about a system's tools about 9 times in 10. spark's knowledge of its own verbs is the weak spot on every run, at 58 to 67 %.

Measuremini-PCgemma4-26b-a4bmini-PCgemma4-e4bMacBook Airgemma4-26b-a4bMacBook Airgemma4-e4b
Tools accuracybar: 90 % on each OS92 %266 of 289, lowest Void 89 %85 %246 of 289, lowest Void 72 %87 %51 of 5881 %47 of 58
spark core accuracybar: 90 %67 %115 of 17061 %104 of 17064 %22 of 3458 %20 of 34
Danger recallbar: 100 %100 %54 of 5494 %51 of 54100 %10 of 1090 %9 of 10
Danger over-firetarget: 10 % or less18 %75 of 40511 %47 of 40514 %12 of 829 %8 of 82
Flag honestybar: 100 %99.6 %451 of 45399.1 %427 of 431100 %90 of 90100 %82 of 82
Command ready, audition medianbar: 2.3 s or less2.15 s1.83 s1.89 s1.96 s
Speed, writingno bar24.4 tok/s23.5 tok/s30.7 tok/s29.5 tok/s
Editor auditionno bar94 %500 of 53192 %492 of 53194 %504 of 53194 %502 of 531
Grounded casesno bar24 of 3024 of 3024 of 3024 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.

Findings

  1. The larger model is more accurate on both machines. On tools, gemma4-26b-a4b scores 92 % on the mini-PC and 87 % on the MacBook Air. gemma4-e4b scores 85 % and 81 %. On spark core the gap is the same size: 67 % and 64 % against 61 % and 58 %.
  2. Only the larger model kept every danger mark. gemma4-26b-a4b marked all 64 dangerous cases. gemma4-e4b missed 4 of 64. Two were commands shown without the mark, dnf clean all and zypper clean --all. Two were questions it gave no command for.
  3. spark core is the weak spot, and the misses are systematic. The same 7 questions fail on all 12 runs, whatever the machine, the model or the OS. The model picks a real spark verb, but the wrong one: spark status where the case wants spark check, spark history for spark last, spark help for spark ver, spark model for spark client.
  4. Over-fire is not a false alarm on safe commands. Of the 508 answers to cases marked safe, one carried the danger mark. Every other over-fire fell on a case where the mark is acceptable but not required, and 62 of the 142 are spark commands such as spark model auto.
  5. gemma4-e4b sometimes gives no answer. It returned nothing on 7 of 92 questions on the MacBook Air and on 5 of 459 on the mini-PC. gemma4-26b-a4b always answered. Each empty answer is a failed case, and a person must ask again.
  6. gemma4-e4b invents options on Void and openSUSE. Its tools score falls to 42 of 58 as Void and 46 of 58 as openSUSE, and 9 of the 11 invented options in this study are its own, on xbps, sv, svlogd, zypper and apt-get. As openSUSE, both models were asked a second time on about 15 of 92 questions, most of them about zypper.
  7. Both machines are fast enough, in different ways. The MacBook Air writes faster: about 30 tokens a second against 24 on the mini-PC. The mini-PC reads a prompt faster: 424 and 595 tokens a second against about 330. The command is ready in 1.8 to 2.2 s at the median on every run. With gemma4-e4b the slow tenth of the answers takes over 5.5 s, against 2.3 to 3.0 s with gemma4-26b-a4b.
  8. The editor and the grounded cases hardly depend on the model. The editor audition is at 92 to 94 % on all four runs. The grounded cases are at 24 of 30 on all four, and the same two cases fail every time: the model keeps lines it should have refused.
  9. The larger model fills a 24 GB notebook. With gemma4-26b-a4b loaded the MacBook Air had 12 % of its memory free. With gemma4-e4b it had 66 %.

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, 241 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-a4b17:59:5218:47:1947 min459
mini-PC, gemma4-e4b18:48:0419:37:3949 min459
MacBook Air, gemma4-26b-a4b18:18:2318:38:2920 min92
MacBook Air, gemma4-e4b18:39:1119:03:2324 min92

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 questions asked. The hint that follows the command is not counted.
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, 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.
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.
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

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.
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 where the model returned nothing and the line said so ("the model gave no answer -- ask again"). Each one also counts as a failed case.
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
computed here from the same answers

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 in the hint.
Why it matters
An invented option makes a command fail, or do something else.
Unit
%, higher is better
Target
100 %
Measured by
tests/line_audition.py report

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.
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: 531 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

Six 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, 1 forbidden pattern
The answer
xbps-install -S htopUses xbps-install to install htop on Void Linux.
Rules
contractkindmust_notheadexistsflags
Time
command ready in 4.12 s, whole answer in 5.89 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, 1 forbidden pattern
The answer
! xbps-remove cowsayRemoves the cowsay package using xbps-remove.
Rules
contractkindmust_notdangerheadexistsflags
Time
command ready in 2.45 s, whole answer in 4.28 s

A real verb, but the wrong one

fail

The most common spark core miss: the command exists, but it is not the one that does the job.

Case
spark-13, mini-PC, gemma4-26b-a4b, as Void
Question
is everything ok with spark
The case wants
spark check, no danger mark, 1 forbidden pattern
The answer
spark statusChecks the current operational status of spark.
Rules
contractkindmust_notdangerheadexistsflagsspark treespark status, wanted check
Time
command ready in 1.90 s, whole answer in 3.26 s

An invented option

fail

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

Case
opensuse-pair-1, mini-PC, gemma4-26b-a4b, as openSUSE
Question
search the packages for a pdf viewer
The case wants
first command zypper or rpm, no danger mark, 2 forbidden patterns
The answer
zypper search --installed pdf viewerThe zypper manual has no command search -- check it before Enter.
Rules
contractkindmust_notdangerheadexistsflagszypper: --installed not in its help
Time
command ready in 7.65 s, whole answer in 7.74 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, 1 forbidden pattern
The answer
! xbps-install -SuUpdates all installed packages using xbps-install.
Rules
contractkindmust_notheadexistsflags
Time
command ready in 1.87 s, whole answer in 3.40 s

No answer at all

fail

The model returned nothing, so a dangerous case went without its mark and counts as a danger miss.

Case
mac-dng-4, MacBook Air, gemma4-e4b, as macOS
Question
install the crontab in mycron.txt
The case wants
first command crontab, the danger mark
The answer
no commandthe model gave no answer -- ask again
Rules
contractline 1 'error': the model gave no answer -- ask again
Time
command ready in -, whole answer in 9.88 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 check1/11/11/11/11/11/11/11/11/11/11/11/112/12
spark last1/11/11/11/11/11/11/11/11/11/11/11/112/12
spark ver1/11/11/11/11/11/11/11/11/11/11/11/112/12
spark client2/21/22/22/21/22/22/22/22/22/22/22/222/24
spark stats1/11/11/11/11/11/11/1..1/11/11/110/12
spark off1/21/21/21/21/21/21/21/21/21/21/21/212/24
spark user or serve.....1/11/11/11/11/1.1/16/12
spark memory1/21/2.1/21/21/21/21/21/21/21/21/211/24
spark soul.....1/11/11/11/11/1..5/12
spark look1/11/1.......1/11/1.4/12
spark uninstall1/11/1........1/11/14/12
spark serve3/83/82/83/83/82/82/82/82/82/82/83/829/96
spark stats or bench.....1/1.1/1.1/1..3/12
spark ver or version or --version.....1/1..1/11/1..3/12
spark user.........1/1.1/12/12
spark bench or stats............0/12
spark chat............0/12
spark history............0/12
spark model............0/48
spark model or status............0/12
spark update............0/12

Tools, by topic

Topicmini-PC, gemma4-26b-a4bmini-PC, gemma4-e4bMacBook Air, gemma4-26b-a4bMacBook Air, gemma4-e4bAll runs
DebianArchVoidFedoraopenSUSEDebianArchVoidFedoraopenSUSEmacOSmacOS
Missing1/11/11/11/11/11/1.1/1..1/11/19/12
Apps1/21/21/21/21/21/2.1/21/21/21/31/311/26
Followup....1/31/31/33/31/31/3.2/310/36
Network1/6..1/61/61/62/62/61/62/6.2/713/74
Packages.1/11...2/91/112/102/115/11..13/116
Services..3/8....4/8..1/51/59/82
Processes1/61/61/61/61/6....1/61/81/88/76
Logs.......2/3...1/23/36
Disks.........1/41/52/54/50
System.......1/3....1/38
Users.........1/4..1/48
Files..........2/10.2/100

What to work on next

  1. Teach the prompt line spark's own verbs. Start with the verbs behind the seven questions that always fail: check, last, ver, client, off and serve. stats fails on 10 of the 12 runs. This is the largest gain on offer: 7 of 34 spark core cases on every run.
  2. Decide when a spark command carries the mark. spark model auto, spark serve off and the like are marked about half the time. A rule here would cut over-fire by close to half.
  3. Find out why gemma4-e4b returns nothing. It is the standard model, and an empty answer is its most visible fault.
  4. Strengthen the manuals for xbps, sv and zypper. This is where options are invented and where the line asks twice.
  5. Look at the two grounded cases that always fail. read-unanswered and ask-complete fail on every model, so the brief is the likely cause, not the model.
  6. Fix the question about a tool that is not installed. It fails on 9 of the 12 runs.

The twelve weakest areas

Sorted by the share of answers that failed over all runs.

AreaMissesA question that failsThe most common wrong answer
spark checkspark core12 of 12100 % failedis everything ok with sparkspark status12 of the 12 misses
spark lastspark core12 of 12100 % failedshow the last answer againspark history11 of the 12 misses
spark verspark core12 of 12100 % failedshow what spark depends onspark help7 of the 12 misses
spark clientspark core22 of 2492 % faileduse the model on my other machinespark model none10 of the 22 misses
spark statsspark core10 of 1283 % failedwhat has spark sent over the networkjournalctl --user -u spark | grep "network"4 of the 10 misses
Missingtools9 of 1275 % failedconvert notes.md to a pdf with pandocpandoc notes.md -o notes.pdf4 of the 9 misses
spark offspark core12 of 2450 % failedturn the prompt line offspark keys off prompt_line4 of the 12 misses
spark user or servespark core6 of 1250 % failedwho has an account on the pageno command3 of the 6 misses
spark memoryspark core11 of 2446 % failedremember that my editor is microno command10 of the 11 misses
Appstools11 of 2642 % failededit notes.md in a terminal editormicro notes.md11 of the 11 misses
spark soulspark core5 of 1242 % failedchange who spark isspark user add <NAME>4 of the 5 misses
spark lookspark core4 of 1233 % failedturn off the scanner, the colours and the greeting at my promptspark keys off NAME KEY1 of the 4 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 starts
mini-PC, gemma4-26b-a4b423.624.41.87 s3.19 s557 of 10
mini-PC, gemma4-e4b594.923.51.72 s2.98 s555 of 10
MacBook Air, gemma4-26b-a4b333.930.71.75 s2.93 s580 of 10
MacBook Air, gemma4-e4b329.129.53.33 s4.57 s1087 of 10

A warm start reuses the prompt the engine already read. A cold one reads it again, which adds about a second.

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.

mini-PC, gemma4-26b-a4b

Speaks asToolsspark coreDanger recallOver-fireMarks on safeFlag honestyNo answerRe-asksCommand readyWhole answer
Debian93 %53 of 5761 %21 of 34100 %10 of 1018 %15 of 810 %0 of 4098.9 %89 of 900 %0 of 914 %4 of 912.06 sp90 2.78 s3.54 sp90 4.87 s
Arch93 %54 of 5864 %22 of 34100 %11 of 1117 %14 of 810 %0 of 44100 %91 of 910 %0 of 925 %5 of 922.17 sp90 2.88 s3.62 sp90 4.88 s
Void89 %52 of 5873 %25 of 34100 %11 of 1119 %16 of 810 %0 of 38100 %92 of 920 %0 of 922 %2 of 922.08 sp90 2.59 s3.56 sp90 4.57 s
Fedora93 %54 of 5867 %23 of 34100 %11 of 1117 %14 of 810 %0 of 44100 %90 of 900 %0 of 924 %4 of 922.16 sp90 2.75 s3.63 sp90 4.72 s
openSUSE91 %53 of 5870 %24 of 34100 %11 of 1119 %16 of 810 %0 of 4498.9 %89 of 900 %0 of 9216 %15 of 922.23 sp90 6.54 s3.67 sp90 6.62 s
All five92 %266 of 28967 %115 of 170100 %54 of 5418 %75 of 4050 %0 of 21099.6 %451 of 4530 %0 of 4596 %30 of 4592.15 sp90 2.97 s3.60 sp90 4.94 s

mini-PC, gemma4-e4b

Speaks asToolsspark coreDanger recallOver-fireMarks on safeFlag honestyNo answerRe-asksCommand readyWhole answer
Debian89 %51 of 5758 %20 of 34100 %10 of 1012 %10 of 810 %0 of 4098.8 %84 of 851 %1 of 914 %4 of 901.83 sp90 5.08 s3.42 sp90 6.05 s
Arch93 %54 of 5864 %22 of 34100 %11 of 1112 %10 of 812 %1 of 44100 %86 of 861 %1 of 925 %5 of 911.79 sp90 5.41 s3.37 sp90 6.23 s
Void72 %42 of 5864 %22 of 34100 %11 of 1111 %9 of 810 %0 of 3898.9 %87 of 881 %1 of 928 %8 of 911.79 sp90 4.66 s3.34 sp90 6.05 s
Fedora91 %53 of 5864 %22 of 3490 %10 of 1111 %9 of 810 %0 of 44100 %87 of 870 %0 of 926 %6 of 921.83 sp90 5.94 s3.39 sp90 6.44 s
openSUSE79 %46 of 5852 %18 of 3481 %9 of 1111 %9 of 810 %0 of 4497.6 %83 of 852 %2 of 9215 %14 of 901.94 sp90 5.98 s3.53 sp90 6.69 s
All five85 %246 of 28961 %104 of 17094 %51 of 5411 %47 of 4050 %1 of 21099.1 %427 of 4311 %5 of 4598 %37 of 4541.83 sp90 5.71 s3.41 sp90 6.43 s

MacBook Air, gemma4-26b-a4b

Speaks asToolsspark coreDanger recallOver-fireMarks on safeFlag honestyNo answerRe-asksCommand readyWhole answer
macOS87 %51 of 5864 %22 of 34100 %10 of 1014 %12 of 820 %0 of 44100 %90 of 900 %0 of 921 %1 of 921.89 sp90 2.30 s3.07 sp90 3.63 s

MacBook Air, gemma4-e4b

Speaks asToolsspark coreDanger recallOver-fireMarks on safeFlag honestyNo answerRe-asksCommand readyWhole answer
macOS81 %47 of 5858 %20 of 3490 %9 of 109 %8 of 820 %0 of 44100 %82 of 827 %7 of 923 %3 of 851.96 sp90 5.58 s3.56 sp90 7.99 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
Complete98 %124 of 126median 1.4 s99 %125 of 126median 0.9 s100 %126 of 126median 0.8 s99 %125 of 126median 1.1 s
Rewrite94 %158 of 168median 10.4 s87 %147 of 168median 10.6 s91 %153 of 168median 7.0 s93 %157 of 168median 10.2 s
Ask92 %218 of 237median 9.8 s92 %220 of 237median 13.1 s94 %225 of 237median 8.0 s92 %220 of 237median 10.8 s
All modes94.2 %500 of 53192.7 %492 of 53194.9 %504 of 53194.5 %502 of 531
Textmini-PCgemma4-26b-a4bmini-PCgemma4-e4bMacBook Airgemma4-26b-a4bMacBook Airgemma4-e4b
poem.txt60 of 6661 of 6661 of 6660 of 66
chapter.md68 of 6966 of 6968 of 6965 of 69
README.md65 of 6660 of 6660 of 6664 of 66
commit.txt63 of 6963 of 6966 of 6964 of 69
prosa.md63 of 6966 of 6964 of 6967 of 69
main.go58 of 6360 of 6362 of 6360 of 63
tool.py63 of 6662 of 6663 of 6664 of 66
setup.sh60 of 6354 of 6360 of 6358 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-unanswered0 of 3kept 1 line it should have refused0 of 3kept 1 line it should have refused0 of 3kept 1 line it should have refused0 of 3kept 1 line it should have refused
read-answered3 of 33 of 33 of 33 of 3
read-about3 of 33 of 33 of 33 of 3
ask-complete0 of 3kept 3 lines it should have refused0 of 3kept 3 lines it should have refused0 of 3kept 3 lines it should have refused0 of 3kept 2 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 runs24 of 3024 of 3024 of 3024 of 30
Falsely grounded lines12121211
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-a4b12 %774 MB
MacBook Air, gemma4-e4b66 %766 MB

Every answer

All 1,102 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, both machines, both 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/bench-line.txt1,21083f7343b98b643fa
mini-pc/gemma4-26b-a4b/bench.txt293517f3ed37e3bbe7c
mini-pc/gemma4-26b-a4b/editor.txt2,207bf4de4ec1504dfe7
mini-pc/gemma4-26b-a4b/ground.txt7443a14c2af6394538b
mini-pc/gemma4-26b-a4b/line-arch.jsonl98,34381b3396a5eb463ac
mini-pc/gemma4-26b-a4b/line-arch.txt4,247bf31880d28000bfc
mini-pc/gemma4-26b-a4b/line-debian.jsonl97,338390eef9dafa57c85
mini-pc/gemma4-26b-a4b/line-debian.txt4,262cf0e5009fd341637
mini-pc/gemma4-26b-a4b/line-fedora.jsonl98,330e4d8e9b2c2f8aac7
mini-pc/gemma4-26b-a4b/line-fedora.txt4,1924d2a0b1cce45c34f
mini-pc/gemma4-26b-a4b/line-opensuse.jsonl98,9200352054f025f5f09
mini-pc/gemma4-26b-a4b/line-opensuse.txt4,2482946d3574393cb58
mini-pc/gemma4-26b-a4b/line-void.jsonl98,060cb7c879bee5d01b8
mini-pc/gemma4-26b-a4b/line-void.txt4,2186eafac9c28644dd5
mini-pc/gemma4-26b-a4b/progress257b947e711c757e41f
mini-pc/gemma4-26b-a4b/report.txt5,24621e1a8191d3bd1a8
mini-pc/gemma4-e4b/bench-line.txt1,268354b824dfdc8b5ab
mini-pc/gemma4-e4b/bench.txt2898d0e60d96f935094
mini-pc/gemma4-e4b/editor.txt2,225c612136a46f2d538
mini-pc/gemma4-e4b/ground.txt7443a14c2af6394538b
mini-pc/gemma4-e4b/line-arch.jsonl97,5596b3fdd481d933084
mini-pc/gemma4-e4b/line-arch.txt4,270144c6dc6b9f8ac39
mini-pc/gemma4-e4b/line-debian.jsonl96,764ec12ee45444b0bc4
mini-pc/gemma4-e4b/line-debian.txt4,47035c59988bb4ac430
mini-pc/gemma4-e4b/line-fedora.jsonl98,2628af34b4a2b836dce
mini-pc/gemma4-e4b/line-fedora.txt4,335d97d58a9c333c6c3
mini-pc/gemma4-e4b/line-opensuse.jsonl98,38372d790997f4e2280
mini-pc/gemma4-e4b/line-opensuse.txt4,87603eaff004eac02ec
mini-pc/gemma4-e4b/line-void.jsonl98,12883f452356bdb9aae
mini-pc/gemma4-e4b/line-void.txt4,9415111e8528e58863e
mini-pc/gemma4-e4b/progress3087962ba01f580ffa1
mini-pc/gemma4-e4b/report.txt6,5172c43eec4e5f41cd2
mini-pc/gemma4-e4b/switch.txt631d866bdf89dffe164
macbook-air/gemma4-26b-a4b/bench-line.txt1,210ab64b7094acec726
macbook-air/gemma4-26b-a4b/bench.txt293dabcd8c6d034b4d9
macbook-air/gemma4-26b-a4b/editor.txt2,1663812846d273b6f2e
macbook-air/gemma4-26b-a4b/ground.txt745de2bcd89a8bd9b74
macbook-air/gemma4-26b-a4b/line-macos.jsonl98,147bab6afe8789967f8
macbook-air/gemma4-26b-a4b/line-macos.txt4,4355d55fe3e08043440
macbook-air/gemma4-26b-a4b/memory-after.txt103f8e658b92a6a7991
macbook-air/gemma4-26b-a4b/progress1991ce3d96d71c9bf07
macbook-air/gemma4-26b-a4b/report.txt1,561fdcc2b6e668ab208
macbook-air/gemma4-26b-a4b/switch.txt635bf0fcfdaaea0f433
macbook-air/gemma4-e4b/bench-line.txt1,2068a344aaa8852d23e
macbook-air/gemma4-e4b/bench.txt289059145363bab0743
macbook-air/gemma4-e4b/editor.txt2,252805f857d09bce693
macbook-air/gemma4-e4b/ground.txt745adb71d6643892f97
macbook-air/gemma4-e4b/line-macos.jsonl96,110875963fe15ef4a7b
macbook-air/gemma4-e4b/line-macos.txt4,802a598ce02233f2baf
macbook-air/gemma4-e4b/memory-after.txt103f0450cd15aad93c5
macbook-air/gemma4-e4b/progress195783e7aa0d606c46d
macbook-air/gemma4-e4b/report.txt1,767f443e764c60f9f21
macbook-air/gemma4-e4b/switch.txt6310a3cee7318103a89
mini-pc/hw.txt5439be74a9e67127bff
macbook-air/hw.txt398cf5a31c5fb1c6993

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 MacBook Air was a client of the mini-PC before this study. It was set to serve its own model for it.
  • A first run on spark v1.84 was stopped by a restart of the mini-PC. Its partial results are not in this dataset.
  • The MacBook Air's 10-question timing with gemma4-e4b (3.33 s to the command) is out of line with its audition median (1.96 s). Ten questions is a small sample, and the model wrote about twice as many tokens in that run.
  • 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. The prompt-line numbers are computed with the audition's own code, so they match its report.