deploy.yml runs scripts/smoke-deployment.ts after every production deploy. It fetches /, /login and /robots.txt on commshq.org and fails the run if robots.txt is missing, does not name the host, or contains a localhost URL. commshq has never shipped one — no public/robots.txt, no route — so every deploy since the smoke test arrived (3bd7745, 2026-09-12) has reported failure: #6 at 12:29 and #8 at 15:09 today. The builds were live regardless (the live /login already carries #8's change); only the gate was red.
This is the static, authored public/robots.txt the other three HQ apps ship, adapted to this app's routes:
Disallowthe dashboard, the auth pages, the two email landing pages and/api/;Allow: /for everything else.- No
Sitemap:line, becausesitemap.xmlis a 404 here. The header comment says so — it names the host (which is what the gate checks) without pointing crawlers at a missing file.
Verified: served from this branch with HTTP 200 as text/plain on a local buddy serve; tests/Unit/RobotsTxt.test.ts mirrors the gate's checks so it can't regress silently.
Worth merging first: until it lands, every commshq merge — including #9 — will show a red Deploy for this reason alone.