§ 04.27 — Pixy Puala · Release assurance · QA tooling · 2026

UpdateProof

PHP · PLAYWRIGHT · SARIF

Plugin and theme maintainers need evidence that an update is compatible before it ships, not a support ticket afterwards. UpdateProof turns a declared test plan into a deterministic, immutable matrix and records what was tested, where, and what changed.

Maintainer
Pixy Puala
Vertical
Release assurance · QA tooling
Year
2026
Role
Open source
Stack
PHP 8.1+
Status
● Private repo
§ 04.27.B

Problem

What was broken

Compatibility testing is usually manual, undocumented and unrepeatable — someone clicks through one site, on one PHP version, once. There is no artefact afterwards, so the next release starts from zero and regressions are found by customers.

§ 04.27.C

Constraints

Boundaries · published
01 Engagement Open source · authored and maintained
02 Stack PHP 8.1+ · TypeScript · Playwright
03 Scope Plan → matrix → run → report
04 Audience Plugin maintainers · agencies · hosting QA
§ 04.27.D

Decisions

Three · defended
Decision · 01

The plan is the contract

A YAML/JSON plan is parsed, schema-validated and resolved into an immutable matrix before anything runs. If the plan is wrong, it fails at parse time rather than halfway through a browser run.

Decision · 02

Exit codes are a public enum

A deterministic 0–8 exit-code contract with defined retry semantics means CI can branch on the result instead of grepping log text.

Decision · 03

SARIF, so results land where reviewers already look

Alongside JSON, JUnit and Markdown, SARIF 2.1.0 output puts findings into GitHub code scanning rather than a build log nobody opens.

§ 04.27.E

Build

Stack · tooling · what it runs on

Stack

  • PHP 8.1+ · Composer
  • YAML/JSON plan parser · JSON Schema validation
  • Deterministic immutable matrix resolver
  • Reporters · JSON · JUnit · Markdown · SARIF 2.1.0
  • Playwright (TypeScript) browser runner
  • WP-CLI command · GitHub Actions

Tooling

  • ✓ kept Composer · Playwright · GitHub Actions
§ 04.27.F

Results · Measured

Countable facts · from the repository
Unit tests
42 passing
parser · resolver · reporters · CLI
Exit-code contract
9 states
0–8 · retry semantics
Live journey
WC 10.9.4 verified
WP 7.0.2 · real order

The Playwright runner is proven end-to-end in CI against a bundled fixture, and runner/tests/fixture-site.spec.ts drives a full journey — plugin activation, WooCommerce admin, add-to-cart, a real checkout order, orders and webhooks screens — against WordPress 7.0.2 with WooCommerce 10.9.4, recorded in docs/RUNTIME-VERIFICATION.md.

§ 04.27.G

Tradeoffs

What was not fixed

Single-cell browser journeys run for real; orchestrating many WordPress/WooCommerce/PHP cells simultaneously is the documented boundary and is not built. The repository is not yet public, so no source link is published here — the runtime evidence above is what the claim rests on.

Want this shape in your stack? Start with a teardown of yours.

Audit Sprint terms → Start a project