Verification & snapshots
flowchart LR Code["source change"] --> Fast["focused tests"] Fast --> Harness["affected fixtures"] Harness --> Look["inspect PNGs"] Look --> Bless["golden:update<br/>intentional only"] Bless --> Verify["pnpm verify"] Verify --> CI["quality job + 11 family shards"]
What pnpm verify runs
Section titled “What pnpm verify runs”- Prettier formatting check.
- ast-grep structural rules: determinism, family purity, no barrels, and braced control flow.
- strict TypeScript project references.
- production build of this developer-docs app.
- unit, property, contract, renderer, metric, performance, and golden tests.
- every fixture through rendering and metric gates.
Three snapshot layers
Section titled “Three snapshot layers”| Digest | Detects |
|---|---|
| Geometry / NGD | Contract or coordinate changes, including invisible fields |
| SVG | Renderer serialization and semantic skin changes |
| PNG | Actual pixels users see |
CI shards the expensive fixture and image checks by all eleven families. The quality job performs formatting, linting, types, docs, and core tests once.
Intentional changes
Section titled “Intentional changes”pnpm harness run 'sequence/*'open out/index.htmlpnpm golden:updatepnpm verifySnapshot updates are the final record of a reviewed result, never the mechanism for making a red test disappear.