diff --git a/packages/extension/skills/deliberate/SKILL.md b/packages/extension/skills/deliberate/SKILL.md index 9b140618c..5cf1faa00 100644 --- a/packages/extension/skills/deliberate/SKILL.md +++ b/packages/extension/skills/deliberate/SKILL.md @@ -237,6 +237,18 @@ These came up repeatedly in one research campaign's critic rounds (the qpilc ope - **Put every verdict-moving choice in `acceptance`.** The review tool's design hash covers acceptance and budget only, so thresholds, grids, operator choices and the reading rule placed in prose invariants are unhashed. Paste constants under a weld tolerance at full precision with their file:row source, never rounded by hand. - **Make the outcome partition exhaustive and disjoint, and don't let a tie hand the label to one side.** If "X out-tracks Y" and "X ties Y" can both hold, the partition is broken. If the label rests on a precedence tie-break, report the robust ordering and the knife-edge seeds beside it. +### Further checks from the fluxonium-cz campaign (2026-11) + +Seven analysis-class specs in that campaign skipped the critic round (they were approved on the mechanical gate alone). The first wave's experimenters listed nine spec defects at run time (friction note F-fcz-14), and the later waves' "Skill friction" sections added more (observation notes D2a, D2b, H2c, B8, B9, B10, B11, G1, G1b, G2, H2d, A2). A critic-skipped spec is not a checked spec — run these yourself: + +- **Define every window, feature, space and estimator the keys use.** Seen undefined: an "operating window" (D2a); the anchor, features and covariance of a Mahalanobis distance (H2c); the space of "R² of $1-F=A(T^*-T)^2$" (square-root or log — B9); whether a truncated Rayleigh–Schrödinger sum counts as a "closed form" (A2); and a minimum-support statistic that three different casts defined three different ways, one of them dependent on the number of points (H2d). If a spec names a statistic, it names the formula, the denominator and the space. +- **A key must be able to fail.** Check its degrees of freedom and its denominator. A free-exponent fit on three points has no residual degrees of freedom, so the exponent key cannot falsify (B11). A residual normalised by a quantity that passes through zero on some of the lines is dominated by the near-zero denominator (G1b). A dispersive-only formula used as a bar failed a key "for spec reasons" (G1). Also forbid definitional keys: R² of a wing-dominated fit, or a depth limited by a floor you set. +- **Evaluate every bar at the nominal case before the run.** A bar of 0.98 on a statistic that was never computed at the nominal reference (H2d); a recalibration gate (recal < 0.9995) that sits above the ideal laboratory-frame fidelity of the reference pulse itself (0.99943 — G2), so it was not a real condition. +- **Make counts, names and paths agree with the disk and with each other.** "The six pulses" naming four (B8); "step A: zero eigensolves" beside an anti-gaming rule that requires a 4096-sample full recompute (H2c); an invariant saying "ALL of C2/C3" beside a table saying "C1–C3", and a "6-point set" against a CSV with three rows (D2b); truncation 25 where the stored artifacts used 30 (D2a); a test path that does not exist in the project (D2b); "stored rung data" that had never been produced on that contract (B11). The author checks every number, path and stored-artifact reference against the files before sealing. +- **Name the verifier line a convention must agree with.** A spec wrote the gauge as $e^{-i2\pi\int\delta}$; the repository's drive convention needs $e^{+i2\pi\int\delta}$, and the wrong sign moved the fidelity by −0.07 to −0.37 (B8). A spec that required the "min over spectator C and D" from a verifier that builds no spectator qubits could not be satisfied (G1). Cite the file and line of the convention, and confirm the verifier can produce the quantity. +- **Give every budget a unit and a legal value.** `max_solves: 8` did not say whether jobs or restarts were counted (192 restarts were run under a comparable budget — B9/B10), and `amico spec review` rejected `max_solves: 0` for a spec with no solves (it must be at least 1; observed in the campaign, re-check against your version). +- **A reproduction step states what bounds it besides the clock.** "Reproduce the stored value to 0.05 ns" beside a wall-clock guard made the result depend on box load (B11); give an iteration cap (see `research`, *Lines a launch-shaped experimenter brief carries*). When the spec pre-registers rules, seal them (`prereg-seal`) with the grid derived from the sealed prediction, not fixed earlier from a different estimate. + ## When to skip this Genuinely trivial and reversible work — a typo, a comment, a one-line config change with an