#!/usr/bin/env python3
"""Validate heroku-to-aws migration-report.html (thin stakeholder report).
Required sections: decision-summary, exec-costs, cost-optimization, next-steps.
Conditional: what-if-scenarios when scenarios/index.json has ≥2 entries.
Footer must contain "draft for review".
Also enforces the report's own decision-UX and a11y contract (ported subset of
the gcp-to-aws report validator, #223 — gated to what the Heroku one-pager
actually emits):
- decision-summary must NOT contain any badge-verdict-* pill (the skeleton mandates
a typography-first `verdict-headline`; color-only verdict carriers are banned).
- when estimation-infra.json declares recommendation.outcome, decision-summary
must contain a `verdict-headline` element.
- must declare a lang attribute; any
must declare scope=col|row;
any must carry aria-label + .
Deliberately NOT enforced (would false-fail the intentionally-thin Heroku
report, whose skeleton puts