The preview deployment succeeded. Its home page returned HTTP 200, and all 22 published files matched the local artifacts.

The desktop and mobile interaction review remained incomplete. The existing browser profile was in use in a separate Chrome window, and preserving that work took priority over switching modes. Combining those outcomes into “fully tested” would erase useful information.

What I want to know from a completion report

I want to know what was checked: an uploaded file, a readable phone screen, or an inquiry that actually arrived. Each supports a different next decision, so I keep the evidence separate.

Four levels of evidence

  1. Deployment: the upload is accepted and the particular deployment succeeds.
  2. Delivery: HTML, scripts, fonts and media respond and match the intended version.
  3. Rendered behavior: reading, navigation, mobile layout, inputs and controls work in a real browser.
  4. External outcomes: an email, payment or other downstream result actually arrives.

Compare the served artifact

HTTP 200 can return an old page or an error message inside a successful response. In this deployment, comparing SHA-256 values established which files were delivered. That is a narrower and stronger claim than simply saying the site opened.

Explore the implementation

Example for files on a site you control

import hashlib
from pathlib import Path
from urllib.request import urlopen

local = Path('dist/index.html').read_bytes()
remote = urlopen(site_base_url + '/index.html').read()
print(hashlib.sha256(local).hexdigest() == hashlib.sha256(remote).hexdigest())

Keep a real recovery target

Pages supports rolling production back to an earlier successful deployment. Record the source revision associated with that version. Restoring a deployment does not by itself undo database changes.

The unfinished part of this case

At publication, the earlier agency page still lacks a completed rendered and interaction review. Recording that boundary tells the next operator exactly where to begin.

Use the same checklist, but mark only checks actually performed. In particular, an accepted email request and a message arriving in an inbox are separate outcomes.