Operator

QA checklist

A human QA reference for Warconomy: mobile, desktop, accessibility, dashboard-visual, operator-workflow, indexing-launch, deployment, and source-packet promotion checklists. Most items map to an automated check; the rest are quick manual eyeballs.

9 checklists (41 items) covering mobile, desktop, accessibility, dashboard visuals, the operator workflow, indexing launch, deployment verification, and source-packet promotion. Most items are guarded by an automated check — npm run operator:check or npm run verify:prod — and the rest are quick manual eyeballs. This page holds no data and no values; it removes ambiguity about what 'done' means before a deploy or a promotion.

  • Mobile + desktop smoke, accessibility, and dashboard-visual checks.
  • Operator-workflow, indexing-launch, deployment, and promotion checks.
  • Most items map to operator:check / verify:prod; the rest are quick eyeballs.
  • Machine-readable at /operator/qa/data.json.

Route QA matrix

41 important routes reviewed across mobile, desktop, accessibility, visual consistency, content hierarchy, source/caveat visibility, internal linking, and indexing. No open blockers.

Discovery 7

RouteAudienceMobileDesktopA11yVisualSource/caveatNext improvement
/readerpasspasspasspasspass
/how-to-usereaderpasspasspasspasspass
/explorereaderpasspasspasspasspass
/questionsreaderpasspasspasspasspass
/topicsreaderpasspasspasspass
/updatesreaderpasspasspasspasspass
/glossaryreaderpasspasspasspass

Trust 4

RouteAudienceMobileDesktopA11yVisualSource/caveatNext improvement
/citationsresearcher / journalistpasspasspasspasspass
/sourcesresearcher / journalistpasspasspasspasspass
/source-healthmaintainerpasspasspasspasspass
/source-qualityresearcher / journalistpasspasspasspasspass

Conflict 2

RouteAudienceMobileDesktopA11yVisualSource/caveatNext improvement
/conflicts/russia-ukraine/economic-impactreaderpasspasspasspasspass
/conflicts/dashboardreaderpasspasspasspasspass

Chokepoint 3

RouteAudienceMobileDesktopA11yVisualSource/caveatNext improvement
/chokepoints/dashboardreaderpasspasspasspasspass
/chokepoints/strait-of-hormuz/economic-impactreaderpasspasspasspasspass
/chokepoints/red-sea-shipping/economic-impactreaderpasspasspasspasspass

Sanctions 4

RouteAudienceMobileDesktopA11yVisualSource/caveatNext improvement
/sanctions/russia-energy-trade/economic-impactreaderpasspasspasspasspass
/sanctions/shadow-fleet-shipping-insurance/economic-impactreaderpasspasspasspasspass
/sanctions/frozen-russian-assets-ukraine-financing/economic-impactreaderpasspasspasspasspass
/sanctions/dashboardreaderpasspasspasspasspass

Defense 2

RouteAudienceMobileDesktopA11yVisualSource/caveatNext improvement
/defensereaderpasspasspasspasspass
/defense/comparisonresearcher / journalistpasspasspasspasspass

Commodity 3

RouteAudienceMobileDesktopA11yVisualSource/caveatNext improvement
/commodities/food-prices/economic-impactreaderpasspasspasspasspass
/commodities/oil-benchmarks/economic-impactreaderpasspasspasspasspass
/commodities/dashboardreaderpasspasspasspasspass

Data 2

RouteAudienceMobileDesktopA11yVisualSource/caveatNext improvement
/datasets/conflict-economic-impactresearcher / journalistpasspasspasspasspass
/data-needsmaintainerpasspasspasspasspass

Methodology 4

RouteAudienceMobileDesktopA11yVisualSource/caveatNext improvement
/methodologyresearcher / journalistpasspasspasspasspass
/methodology/indexingmaintainerpasspasspasspasspass
/methodology/live-datareaderpasspasspasspasspass
/methodology/maritime-datareaderpasspasspasspasspass

Operator 10

RouteAudienceMobileDesktopA11yVisualSource/caveatNext improvement
/operatormaintainerpasspasspasspass
/operator/reportmaintainerpasspasspasspass
/operator/qamaintainerpasspasspasspass
/operator/source-watchmaintainerpasspasspasspass
/operator/stalenessmaintainerpasspasspasspass
/operator/backlogmaintainerpasspasspasspass
/operator/automationmaintainerpasspasspasspass
/operator/source-packetsmaintainerpasspasspasspass
/operator/production-healthmaintainerpasspasspasspass
/operator/launchmaintainerpasspasspasspass

Mobile smoke

How: Narrow viewport (≈360px) or npm run verify:prod for the CSS marker.

  • No document-level horizontal scroll on any page (html overflow-x: clip).
  • Top nav scrolls inside its own container; the page does not shift.
  • Card grids collapse to a single readable column on small screens.
  • Tables sit inside a .table-wrap scroll container, not overflowing the page.
  • Code/paste blocks wrap (.code-block) and long URLs break instead of overflowing.
  • SVG diagrams/schematics fit the viewport width.

Desktop smoke

How: Manual eyeball at a normal width.

  • Hero and first screen read clearly; primary actions are obvious.
  • Dashboard cards align; spacing/borders are consistent.
  • Long pages have logical section order and headings.
  • Footer groups render and links resolve.

Accessibility

How: Keyboard + screen-reader spot check; metadata-audit/operator:check guard structure.

  • Skip-to-content link works (Tab from the top of any page).
  • Visible focus ring on links/buttons (:focus-visible).
  • SVG visuals have role="img" + an accessible name, or a text equivalent nearby.
  • Charts/schematics have a text summary; timelines are semantic lists.
  • Status/caveat badges convey meaning by text, not color alone.
  • Heading order is logical; link text is descriptive.

Visual / screenshot QA

How: npm run qa:visual (no browser: status + landmarks + CSS markers + overflow heuristic); pixel screenshots are manual.

  • Run npm run qa:visual against production (or a local next start via WARCONOMY_BASE).
  • For routes flagged screenshotRequired in the QA matrix, capture manual screenshots at ~390px, ~768px, and ~1280px.
  • Confirm no horizontal scroll, readable card stacking, and contained tables/SVGs at 390px.
  • Pixel screenshots need a browser engine (e.g. Playwright) — intentionally not a dependency; capture by hand or with an installed tool.

Dashboard visual

How: Manual eyeball of dashboards + topic pages.

  • Every visible figure shows source / asOf / reviewed / caveat where available.
  • No visual implies live/real-time data unless it is explicitly caveated.
  • Chokepoint dashboard reads as a dashboard but states 'not a live tracker'.
  • Sample rows are labeled sample, never presented as measured.

Operator workflow

How: npm run operator:morning then operator:check.

  • Morning report loads and names the best next data pull + autonomous task.
  • Each source-watch item links to its source-packet template.
  • Staleness triage lists the oldest-reviewed values first.
  • No operator surface implies auto-promotion of values.

Indexing launch (manual)

How: /methodology/indexing + /operator/indexing-readiness/data.json (ready:true).

  • Create a Google Search Console domain property for warconomy.com.
  • Verify via DNS TXT; submit https://warconomy.com/sitemap.xml.
  • Inspect the homepage, then request indexing for the priority pages.
  • Add Bing Webmaster Tools (import from GSC). Indexing is never guaranteed.

Deployment verification

How: npm run verify:prod after a push.

  • Auto-rollout: push to main, then a new route serves within ~10 min (no manual rollout).
  • If production stays stale, fall back to apphosting:rollouts:create --git-branch main --force.
  • verify:prod is ALL GOOD; /monitors/ukraine is 308; mobile CSS marker present.
  • Old /changes/{old-version} is a clean 404; /wp-admin probes stay 404.
  • Analytics: the GA4 tag is in the served homepage HTML; after visiting the site, the Google Analytics Realtime report shows the visit (non-Realtime reports can lag ~24-48h for a new property).

Source-packet promotion

How: validateTypedPacket + promotionPlan dry-run before any data edit.

  • Packet has official URL, value, unit, period/asOf, where-found, caveat, confidence.
  • PDF packet has page+table; XLSX packet has sheet+cell; chart value has an exact label.
  • No hard-fails and no unresolved needs-confirmation before promoting.
  • Run promotionPlan() to preview changes; promotion is a separate explicit step.

Related

Morning report · Production health · Operator workbench · Indexing checklist · Automated QA report · /operator/qa/data.json