Repository navigation
A conformance release. Everything here was found by writing a harness that re-runs the workspace CLI standard against a real binary, instead of trusting a document that said phosphor was the exemplar.
The typo that opened the scope
phosphor nonsuchverb did not fail. It fell through to the [FILE] path and raised the scope window — an agent's typo stealing focus on your screen. Headless it died inside winit and exited 0, so a script could not tell anything had gone wrong.
$ phosphor nonsuchverb # before: a window appears, or exit 0 with a winit error
$ phosphor nonsuchverb # now
phosphor: unknown command 'nonsuchverb'
usage: …
fix: run `phosphor --help`, or `phosphor schema` for the machine map
$ echo $?
3phosphor track.wav is untouched: the test is whether the argument is an existing file, not a guess about its shape.
The schema stopped hiding two verbs
bench and render are real, advertised in --help, and were absent from phosphor schema entirely. An agent could call them but could not pre-plan the parse. Both now appear in schema.verbs with flags and exit codes, and their output shapes are published in schema.outputs — captured from actual runs, not read off the code.
Note bench exits 0 when it ran, not when the gates passed. Read all_gates_pass; the schema now says so.
kit usage errors are parseable
phosphor kit, kit validate with no file, and kit <unknown> printed usage to stderr and left stdout empty — correct exit 3, nothing for a piped agent to read. They carry the error envelope with a fix now.
Removed, honestly
Nothing. One behavior changed on purpose: an unknown bare word is now an error instead of a file to open.
The harness
scripts/conformance.sh — 13 clauses of AGENT-CLI-STANDARD as numbered checks against a real binary, ledger on a TTY and one envelope in a pipe. C5b (the typo) is mutation-proven: delete the fix and the suite drops to 11/13, naming [exit-4], [does-not-say-unknown-command], [shows-no-usage]. It runs with a private XDG_RUNTIME_DIR and never starts a GUI, so it cannot touch a scope you have open.
Install
# Debian / Ubuntu / Mint
sudo apt install ./phosphor_4.7.4_amd64.deb
# Fedora / RHEL
sudo dnf install ./phosphor-4.7.4-1.x86_64.rpmVerify: phosphor --version → phosphor 4.7.4 (v4).
SHA256SUMS covers every asset; sha256sum -c SHA256SUMS checks them all at once.
Receipts
conformance 13/13 · cargo clippy --workspace --all-targets -- -D warnings silent · 81 unit tests green, one new (the schema must name every verb --help advertises, itself mutation-proven) · BUGLOG #22 records the fix, its receipt, and that timing_noise_workloads is load-sensitive rather than a regression detector.
Built with Claude on Ben's machine. GPLv3.