{
  "name": "Warconomy QA checklist",
  "asOf": "2026-06-05",
  "note": "A human QA reference. Most items are guarded by automated checks (operator:check / verify:prod); the rest are quick manual eyeballs. No data or values here.",
  "page": "https://warconomy.com/operator/qa",
  "checklistCount": 9,
  "itemCount": 41,
  "checklists": [
    {
      "id": "mobile",
      "title": "Mobile smoke",
      "how": "Narrow viewport (≈360px) or npm run verify:prod for the CSS marker.",
      "items": [
        "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."
      ]
    },
    {
      "id": "desktop",
      "title": "Desktop smoke",
      "how": "Manual eyeball at a normal width.",
      "items": [
        "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."
      ]
    },
    {
      "id": "accessibility",
      "title": "Accessibility",
      "how": "Keyboard + screen-reader spot check; metadata-audit/operator:check guard structure.",
      "items": [
        "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."
      ]
    },
    {
      "id": "visual-screenshots",
      "title": "Visual / screenshot QA",
      "how": "npm run qa:visual (no browser: status + landmarks + CSS markers + overflow heuristic); pixel screenshots are manual.",
      "items": [
        "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."
      ]
    },
    {
      "id": "dashboard-visual",
      "title": "Dashboard visual",
      "how": "Manual eyeball of dashboards + topic pages.",
      "items": [
        "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."
      ]
    },
    {
      "id": "operator-workflow",
      "title": "Operator workflow",
      "how": "npm run operator:morning then operator:check.",
      "items": [
        "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."
      ]
    },
    {
      "id": "indexing-launch",
      "title": "Indexing launch (manual)",
      "how": "/methodology/indexing + /operator/indexing-readiness/data.json (ready:true).",
      "items": [
        "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."
      ]
    },
    {
      "id": "deployment",
      "title": "Deployment verification",
      "how": "npm run verify:prod after a push.",
      "items": [
        "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)."
      ]
    },
    {
      "id": "promotion",
      "title": "Source-packet promotion",
      "how": "validateTypedPacket + promotionPlan dry-run before any data edit.",
      "items": [
        "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": {
    "report": "https://warconomy.com/operator/report",
    "productionHealth": "https://warconomy.com/operator/production-health",
    "indexing": "https://warconomy.com/methodology/indexing"
  },
  "routeMatrix": {
    "name": "Warconomy route QA matrix",
    "asOf": "2026-06-05",
    "note": "Per-route product QA status across mobile, desktop, accessibility, visual consistency, content hierarchy, source/caveat visibility, internal linking, and indexing. Hand-reviewed and public-safe — no secrets, logs, or values.",
    "page": "https://warconomy.com/operator/qa",
    "routesAudited": 41,
    "dimensions": [
      "mobile",
      "desktop",
      "a11y",
      "visual",
      "hierarchy",
      "sourceCaveat",
      "internalLink",
      "indexing"
    ],
    "statusCounts": {
      "pass": 316,
      "minor": 0,
      "todo": 0,
      "n/a": 12
    },
    "screenshotRequiredCount": 9,
    "overflowRiskHigh": 0,
    "densityRiskHigh": 0,
    "visualQaCommand": "npm run qa:visual",
    "todoCount": 0,
    "openImprovements": [],
    "rows": [
      {
        "route": "/",
        "group": "Discovery",
        "audience": "reader",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "pass",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": true,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Hero, start-here cards, common questions, FAQ, dashboards, recently-maintained, AI/search callout, use-the-data.",
        "nextImprovement": null
      },
      {
        "route": "/how-to-use",
        "group": "Discovery",
        "audience": "reader",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "pass",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Audience-segmented start guide.",
        "nextImprovement": null
      },
      {
        "route": "/explore",
        "group": "Discovery",
        "audience": "reader",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "pass",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": true,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Human route directory grouped by intent; links to machine catalog.",
        "nextImprovement": null
      },
      {
        "route": "/questions",
        "group": "Discovery",
        "audience": "reader",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "pass",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": true,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Grouped Q&A mapped to canonical pages; FAQPage JSON-LD.",
        "nextImprovement": null
      },
      {
        "route": "/topics",
        "group": "Discovery",
        "audience": "reader",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "n/a",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Filterable index of every canonical economic-impact page.",
        "nextImprovement": null
      },
      {
        "route": "/updates",
        "group": "Discovery",
        "audience": "reader",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "pass",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Site/product updates + latest dataset releases; maintenance-date caveat.",
        "nextImprovement": null
      },
      {
        "route": "/glossary",
        "group": "Discovery",
        "audience": "reader",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "n/a",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Plain-English term definitions; searchable/filterable.",
        "nextImprovement": null
      },
      {
        "route": "/citations",
        "group": "Trust",
        "audience": "researcher / journalist",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "pass",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "How to cite + BibTeX/RIS; original-source-first language.",
        "nextImprovement": null
      },
      {
        "route": "/conflicts/russia-ukraine/economic-impact",
        "group": "Conflict",
        "audience": "reader",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "pass",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": true,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Answer block, channels, indicators, facts, sources, FAQ, citation; not-causal caveats.",
        "nextImprovement": null
      },
      {
        "route": "/conflicts/dashboard",
        "group": "Conflict",
        "audience": "reader",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "pass",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Cross-conflict roll-up with review status.",
        "nextImprovement": null
      },
      {
        "route": "/chokepoints/dashboard",
        "group": "Chokepoint",
        "audience": "reader",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "pass",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": true,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Dashboard cards, how-to-read, what-live-monitoring-would-require; 'not a live tracker' caveat present.",
        "nextImprovement": null
      },
      {
        "route": "/chokepoints/strait-of-hormuz/economic-impact",
        "group": "Chokepoint",
        "audience": "reader",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "pass",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": true,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Schematic + indicators; explicitly not a live ship tracker.",
        "nextImprovement": null
      },
      {
        "route": "/chokepoints/red-sea-shipping/economic-impact",
        "group": "Chokepoint",
        "audience": "reader",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "pass",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Dated transit-disruption snapshots; associative-not-causal.",
        "nextImprovement": null
      },
      {
        "route": "/sanctions/russia-energy-trade/economic-impact",
        "group": "Sanctions",
        "audience": "reader",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "pass",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Price-cap/revenue indicators; not legal/compliance advice.",
        "nextImprovement": null
      },
      {
        "route": "/sanctions/shadow-fleet-shipping-insurance/economic-impact",
        "group": "Sanctions",
        "audience": "reader",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "pass",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Listed-vessel counts; enforcement-indicator caveat.",
        "nextImprovement": null
      },
      {
        "route": "/sanctions/frozen-russian-assets-ukraine-financing/economic-impact",
        "group": "Sanctions",
        "audience": "reader",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "pass",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Immobilized-assets indicators.",
        "nextImprovement": null
      },
      {
        "route": "/sanctions/dashboard",
        "group": "Sanctions",
        "audience": "reader",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "pass",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Cross-sanctions roll-up.",
        "nextImprovement": null
      },
      {
        "route": "/defense",
        "group": "Defense",
        "audience": "reader",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "pass",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "SIPRI totals + NATO 2% count; annual, source-linked.",
        "nextImprovement": null
      },
      {
        "route": "/defense/comparison",
        "group": "Defense",
        "audience": "researcher / journalist",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "pass",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Top spenders compared; same-basis caveat.",
        "nextImprovement": null
      },
      {
        "route": "/commodities/food-prices/economic-impact",
        "group": "Commodity",
        "audience": "reader",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "pass",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "FAO Food Price Index with stated basis.",
        "nextImprovement": null
      },
      {
        "route": "/commodities/oil-benchmarks/economic-impact",
        "group": "Commodity",
        "audience": "reader",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "pass",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Brent and related, source-reported.",
        "nextImprovement": null
      },
      {
        "route": "/commodities/dashboard",
        "group": "Commodity",
        "audience": "reader",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "pass",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Food + energy series together.",
        "nextImprovement": null
      },
      {
        "route": "/datasets/conflict-economic-impact",
        "group": "Data",
        "audience": "researcher / journalist",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "pass",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Dataset landing: JSON/CSV/JSONL + citation graph; no runtime API.",
        "nextImprovement": null
      },
      {
        "route": "/sources",
        "group": "Trust",
        "audience": "researcher / journalist",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "pass",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Source registry with publisher + access date.",
        "nextImprovement": null
      },
      {
        "route": "/source-health",
        "group": "Trust",
        "audience": "maintainer",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "pass",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Per-source access/freshness status.",
        "nextImprovement": null
      },
      {
        "route": "/source-quality",
        "group": "Trust",
        "audience": "researcher / journalist",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "pass",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Citation-readiness scorecard.",
        "nextImprovement": null
      },
      {
        "route": "/methodology",
        "group": "Methodology",
        "audience": "researcher / journalist",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "pass",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "How the citation engine works; data modes, confidence, freshness.",
        "nextImprovement": null
      },
      {
        "route": "/methodology/indexing",
        "group": "Methodology",
        "audience": "maintainer",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "pass",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Indexing readiness checks + manual GSC/Bing checklist.",
        "nextImprovement": null
      },
      {
        "route": "/methodology/live-data",
        "group": "Methodology",
        "audience": "reader",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "pass",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Why static; what a live layer would require. 'not live market data' caveat.",
        "nextImprovement": null
      },
      {
        "route": "/methodology/maritime-data",
        "group": "Methodology",
        "audience": "reader",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "pass",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Maritime evaluation framework; 'not a live AIS tracker'.",
        "nextImprovement": null
      },
      {
        "route": "/data-needs",
        "group": "Data",
        "audience": "maintainer",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "pass",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Source-gated backlog with coverage status.",
        "nextImprovement": null
      },
      {
        "route": "/operator",
        "group": "Operator",
        "audience": "maintainer",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "n/a",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": true,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Cockpit: workload, top pick, lanes (now with collapsible per-item detail so the next action is above the fold on mobile), future investigations, checks, links.",
        "nextImprovement": null
      },
      {
        "route": "/operator/report",
        "group": "Operator",
        "audience": "maintainer",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "n/a",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": true,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Morning report: production, indexing, source-watch, staleness, best next tasks.",
        "nextImprovement": null
      },
      {
        "route": "/operator/qa",
        "group": "Operator",
        "audience": "maintainer",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "n/a",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": true,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "QA checklists + this route matrix.",
        "nextImprovement": null
      },
      {
        "route": "/operator/source-watch",
        "group": "Operator",
        "audience": "maintainer",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "n/a",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Detect-only watch; never auto-promotes.",
        "nextImprovement": null
      },
      {
        "route": "/operator/staleness",
        "group": "Operator",
        "audience": "maintainer",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "n/a",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Read-only triage of oldest values + due source pages.",
        "nextImprovement": null
      },
      {
        "route": "/operator/backlog",
        "group": "Operator",
        "audience": "maintainer",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "n/a",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "A-E classified backlog grounded in repo state.",
        "nextImprovement": null
      },
      {
        "route": "/operator/automation",
        "group": "Operator",
        "audience": "maintainer",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "n/a",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Safe automation opportunities + guardrails.",
        "nextImprovement": null
      },
      {
        "route": "/operator/source-packets",
        "group": "Operator",
        "audience": "maintainer",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "n/a",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Fill-in templates + evaluation packets; no values stored.",
        "nextImprovement": null
      },
      {
        "route": "/operator/production-health",
        "group": "Operator",
        "audience": "maintainer",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "n/a",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "404 classification, deployment status, crawler hygiene.",
        "nextImprovement": null
      },
      {
        "route": "/operator/launch",
        "group": "Operator",
        "audience": "maintainer",
        "mobile": "pass",
        "desktop": "pass",
        "a11y": "pass",
        "visual": "pass",
        "hierarchy": "pass",
        "sourceCaveat": "n/a",
        "internalLink": "pass",
        "indexing": "pass",
        "screenshotRequired": false,
        "overflowRisk": "low",
        "densityRisk": "low",
        "notes": "Launch/messaging kit: descriptions, audience pitches, channel drafts; messaging only, no claims, no values.",
        "nextImprovement": null
      }
    ]
  }
}