docs(skills): correct four claims the testbeds disproved - #3256
Merged
vpetersson merged 3 commits intoAug 5, 2026
Conversation
- §4: a nominally-linuxfb board can still need force-display (Pi 3 A+ runs vc4-kms and has no /dev/fb0 headless); forced modes may not take at the requested resolution - §5: pkill -f matches its own ssh command line; /tmp is a quota'd tmpfs whose exhaustion breaks the harness, so no big fixtures there - §6: on the Rock Pi 4 celery exhausts swap, not the viewer — the original claim was measured with assets still enabled - cut-release: a draft release does not create the tag
- §3: build the overlay from the commit object, not the shared working tree, which gets switched under you mid-run; and note the pinned image may predate your branch base - §5: viewer idle RSS varies hugely between restarts, so A/B inside one lifetime; memory.peak is fd-local and a reset-then-read lies - §5: never tick a PR device box from intent, only with numbers
- bak-predeploy-<hash> was read both ways, so both conventions now exist on the fleet with opposite meanings - on the Pi 4 and Rock Pi 4, bak-predeploy-fbe83e9 pins latest-<board> while bak-predeploy-fbe83e9-qa2 really pins fbe83e9 - name new backups after their contents, and grep before any restore
|
vpetersson
approved these changes
Aug 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Issues Fixed
No associated issue. Corrections to the committed knowledge-base skills,
each one something the physical testbeds disproved during the 2026.08.0
release QA.
Description
Four claims in the runbooks were wrong or misleading. All four cost real
debugging time during the last QA round, so they are worth fixing at the
source rather than re-learning.
1.
testbed-qa§4 — "linuxfb boards don't need force-display" is notreliable. The Pi 3 A+ runs
QT_QPA_PLATFORM=linuxfbbut bootsdtoverlay=vc4-kms-v3d, so headless it has no/dev/fb0at all and theviewer waits forever. It needs the same treatment as the eglfs boards.
Decide from the display driver, not the Qt platform name. Also documented:
the forced mode is a request, not a guarantee — two boards came up at
1024x768 despite asking for 1920x1080, which silently invalidates any
capture geometry computed from the config.
2.
testbed-qa§4 — check for a pre-existing modifier and leave abackup. One board had carried a force-display cmdline for weeks with no
.bak-qa, which both made it unrepresentative of a headless device andleft later sessions nothing safe to restore. Its
cmdline.txt.origisnot a substitute — restoring it would change the console and drop
cgroup-memory flags.
3.
testbed-qa§5 — two traps.pkill -fmatches the pattern insideits own SSH command line and kills the session running it (the runbook
warned about this for
pgrepwatchers only). And/tmpis a ~948 MBtmpfs mounted
usrquotawith the quota shared across concurrentsessions: exhausting it breaks the harness's own output capture, not just
the write. Multi-megapixel fixtures belong under the user's home.
4.
testbed-qa§6 — the Rock Pi 4 claim was measured wrong. It saidthe board "could not settle the latest viewer even with an empty
playlist". The playlist was not empty — four assets were enabled,
including a webpage and a streaming asset, left over from an earlier run.
Re-measured properly: the viewer alone fits comfortably; celery is
what drives swap to zero, and it does so on both the release build and
the previous baseline, so it is this board's steady state rather than any
build's regression. Added the standing instruction to verify the playlist
is genuinely disabled before quoting an idle memory number.
5.
cut-releasestep 4 — a draft release does not create the tag.GitHub defers tag creation until publish, so the tag is absent and the
URL is an
untagged-<hash>placeholder until step 6. Worth statingplainly because it makes the draft step risk-free: a blocker found during
QA costs you nothing to unwind. Also recorded that the board matrix is 7
boards (a preflight loop inventing
pi1/pi4reports false gaps) andthat the 32-bit
pi3legitimately has no rpi-imager.json.Checklist
Documentation-only change to
.claude/skills/; no code paths touched, sothe test and device boxes do not apply. Every correction here is itself
derived from measurements on the Pi 2 / Pi 3 A+ / Pi 3-64 / Pi 4 / Rock
Pi 4 testbeds.