Skip to main content

The quality bar

Every change to a tenant's configuration — template, schema, blueprint, payment, or CSS — must meet this checklist before it merges. It is written so a QA engineer or implementer can run it top to bottom; most items are verified mechanically by the test harness, and the rest take minutes to check by hand.

Release checklist

Automated suite

  • Full suite green, including the action matrix. Every dataset of every document type renders and passes its selector assertions at both viewports, and every action variant (--actions) passes its display_overrides expectations.
  • Helper parity gate green (--parity). Every Handlebars helper used by any template exists in all production render registries.

Pricing and trade safety

  • No-price documents contain zero currency symbols anywhere. Render the no-price action and grep the output for currency symbols (£, $, ) and ISO codes. Amounts hide in surprising places — travel-protection copy, payment terms, inclusions text — which is why the rule is "grep the rendered output", not "check the pricing section".
  • Guest documents carry no commission vocabulary. Commission fields exist only in the commission document family; the data layer enforces this, but verify after schema or data-transformation changes.

Layout and output media

  • Mobile (390px) renders with no horizontal overflow. The mobile viewport render must not scroll sideways; wide tables must be wrapped in a scroll container rather than stretching the page.
  • Print/PDF output is flat ink-on-white. Print emulation flattens dark bands and gradients to white with dark text, and hides interactive controls (action dock, accordion toggles, payment buttons). Check the generated PDF, not just the screen render.

Imagery

  • Every image URL verified reachable — each URL returns HTTP 200 (for example with curl -I). A broken image in a guest document is a guest-visible defect.
  • Every image is subject-appropriate for its destination or service — verified by a human, not just by status code.

Accessibility floor

  • WCAG AA contrast on all money-bearing text. Prices, totals, balances, and due dates must meet AA contrast against their background.
  • Wide tables are scrollable on small screens rather than clipped or overflowing.
  • Footer phone numbers use tel: links, so a guest on a phone can tap to call.

Document viewer behavior

  • Expiry banner verified. After a document's expiry date, the viewer shows the configured expiry message with the correct contact action.

When to run it

  • Every merge request — the automated items, plus any manual item your change touches. A copy-only change does not need the image audit; a template or CSS change needs the layout and print items.
  • Before promoting to production — the full list, against the staging render of your real org's data, as part of shipping a fork.
  • After structural changes — new sections, new document types, or layout reworks also warrant the deeper regression checks described in Running the test harness.

A change that fails any item does not merge. Each item protects a guest-visible quality guarantee; treat a red item as a defect to fix, not a warning to acknowledge.