Test strength
You will learn
How to measure a suite, not admire it: caught mutants, deleted tests, vacuous passes.
Coverage says what you ran; mutation says what your running is worth. A suite's strength is its kill count on faults you chose, its behavior when tests are deleted, its share of passes that executed an assert. The widget is the reference side of that measuring: all 6 reference bitstreams present and read -- 84.4 ms, best of 5 -- so a speed or strength number always stands on a reference somebody pinned. Measure the suite, or admit you are admiring it.
Try it
Measure one thing twice, two ways, in the refs widget's style; then say which of your own suite's numbers has no denominator.

The part table in far.t27 matches prjxray-db part.json, all 6 reference bitstreams are present, and bitwalk reads all 6 in 84.4 ms (best of 5).
specs/tools/trios/tri/x7-mutate.t27
// SPDX-License-Identifier: Apache-2.0
; specs/tools/trios/tri/x7-mutate.t27 -- tool gHashTag/BrowserOS:tri/x7-mutate, the `tri x7-mutate` command of the trios loop CLI
; Generated by apps/website/scripts/tools-from-trios-tri.mjs from gHashTag/BrowserOS:trios/bin/tri at 7366096248df; do not edit.
; The CLI the loop timers run (`tri drift` holds ~/.local/bin/tri to the tracked copy). It is another program than
; the Rust tri of gHashTag/t27 and the Zig tri of gHashTag/trinity, so the ID is repository-qualified.
; A card is data and carries no test block. ASCII only (L3). phi^2 + 1/phi^2 = 3 | TRINITY
module tool_trios_tri_x7_mutate;
pub const KIND : str = "tool";
pub const FAMILY : str = "tri-cli";
pub const ID : str = "gHashTag/BrowserOS:tri/x7-mutate";
pub const REPO : str = "gHashTag/BrowserOS";
pub const QUALIFIED_ID : str = "gHashTag/BrowserOS:tri/x7-mutate";
pub const SCHEMA : u32 = 2;
pub const COMMAND : str = "tri x7-mutate";
; The case arm of the dispatcher and the first line of it that does the work.
pub const VARIANT : str = "case arm `x7-mutate)`, line 1900";
pub const SOURCE : str = "trios/bin/tri";
pub const ENTRY : str = "trios/bin/tri";
pub const SOURCE_COMMIT : str = "7366096248dfb09893e9a7d1a0f1c56ced13d16e";
pub const ROUTED : bool = true;
pub const DISPATCH : str = "exec python3 \"$HOME/skills/xilinx7-bitstream-loop/scripts/x7.py\" mutate \"$@\"";
pub const DOCUMENTED : bool = true;
pub const HELP_LINE : str = "tri x7-mutate [SPEC] -- mutation catalogue: every defect must fail the spec tests AND the Vivado sweep";
pub const CATEGORY : str = "xilinx7 MVP loop (bitstream back half as .t27, skill xilinx7-bitstream-loop)";
pub const ABOUT : str = "mutation catalogue: every defect must fail the spec tests AND the Vivado sweep";
pub const ABOUT_SOURCE : str = "`tri help` (the heredoc under the help arm of trios/bin/tri)";
pub const ACTIONS : [0]str = [];
pub const ACTIONS_ABOUT : [0]str = [];
pub const ARGS : [1]str = ["[SPEC]"];
pub const AGENTS : [0]str = [];
pub const AGENTS_NOTE : str = "No source binds an agent letter to this command: the trios CLI is not named by docs/agents/AGENTS_ALPHABET.md or .claude/agents/*.md of gHashTag/t27.";
pub const WHEN_TO_USE : str = "mutation catalogue: every defect must fail the spec tests AND the Vivado sweep";
; public/term/tri-x7-mutate/meta.json lists 1 run(s) of `tri x7-mutate`; recorded with the live ~/.local/bin/tri,
; not a build of SOURCE_COMMIT. The site plays it at the end of this card.
pub const CAST : str = "term/tri-x7-mutate/session.cast";
pub const WITNESS : str = "source-parse";
pub const WITNESS_SOURCE : str = "gHashTag/BrowserOS:trios/bin/tri at 7366096248dfb09893e9a7d1a0f1c56ced13d16e, read as text (the help heredoc and the top-level case arms); the CLI was not run";
pub const ENABLED : bool = true;
All lessons
Module 1 · Why verify
Designs that compile and are wrong, the model that decides, and the plan written before the code.
Module 2 · Testbenches
Stimulus, checks and a verdict, written as one spec beside the design it judges.
Module 3 · Waveforms
A trace of every signal, read the way a hardware engineer reads it, and two runs compared.
Module 4 · Conformance vectors
Cases with the answer written beside them, kept where the compiler can reach them.
Module 5 · Cosimulation
Spec, simulator and board agreeing on the bench Artix-7 XC7A200T, and what to do when they do not.
Module 6 · Coverage
What the tests touched: lines, toggles, states, and what that number hides.
Module 7 · Formal
Assertions that hold every cycle, bounded search for a counterexample, and why a proof needs induction.
Module 8 · Mutation
Break the design on purpose and count what the tests catch.
Module 9 · Sign-off
One command, every receipt, a clean verdict you can show.