Context
Fourth agent-journey run (Claude Code · Sonnet 4.6, intent: "I have an issue. Find how to get support or contact worldmonitor.app."): 37 steps / 164s / 851k tokens ($0.68), reliability 76%, link-following 41%, and 47% of the answer came from prior-knowledge guessing. The agent had to reverse-engineer the support model from backend API docs and guessed enterprise@ as the contact — while the real [email protected] sat unnoticed in the /pro JSON-LD ContactPoint and the OpenAPI info.contact.email. Sibling issues: #4850 (signup), #4854 (pricing), #4856 (status endpoint).
Verified gaps (2026-07-05)
- Misleading 200s on every support path.
/contact, /support, /help, and even /contact.md / /support.md all return 200 text/html — the dashboard SPA shell (the vercel.json catch-all rewrite swallows them; none are in the exclusion list). For an agent this is worse than a 404: the journey fetched /contact, got 200, and could extract nothing.
llms.txt has zero support/contact references (only false hits like "RTL support"). The status page (status.worldmonitor.app) is linked solely from the docs navbar (docs.json:458).
- No consolidated support surface. Docs say "contact support" in ~4 places (auth, rate-limits, mcp-quickstart, architecture) without ever saying how. Real channels that exist but are scattered:
[email protected] (JSON-LD on /pro, OpenAPI info.contact), [email protected] (30 repo refs), Discord (discord.gg/re63kWKxaz in sameAs), GitHub issues (public repo), in-app form POST /api/leads/v1/submit-contact (documented in api-platform.mdx:165 — but Turnstile-gated per usage-rate-limits.mdx:60, so unusable by agents; fine as an anti-spam choice, should just be labeled as human-only).
- No SLA / response-time statements anywhere (accurate finding;
pricing.md only says Enterprise gets "dedicated support"). If intentional, state it — "best-effort, no SLA on Free/Pro" is itself an answer an agent can cite.
Fixes
- Root
support.md (sibling of pricing.md) + docs/support.mdx: channel table (support@ for general, enterprise@ for sales/enterprise, Discord, GitHub issues, in-app form with Turnstile/human-only note, status page + email subscribe), per-tier expectations, and the canonical flows docs currently hand-wave ("contact support" for key rotation, limit increases → link the actual channel).
llms.txt: add a "Support & contact" bullet next to the existing "Keys, plans & limits" line (line ~31) pointing at support.md.
vercel.json: add contact and support to the SPA catch-all exclusion; 301 /contact, /support, /help → the support page. This also fixes the .md-guess misleading-200 (/support.md currently serves dashboard HTML).
- Existing machine-readable signals to link, not rebuild: JSON-LD ContactPoint on
/pro, OpenAPI info.contact.email.
Dup pre-flight: gh-axi search issues "support page contact" / "support.md" → 0 results.
Context
Fourth agent-journey run (Claude Code · Sonnet 4.6, intent: "I have an issue. Find how to get support or contact worldmonitor.app."): 37 steps / 164s / 851k tokens ($0.68), reliability 76%, link-following 41%, and 47% of the answer came from prior-knowledge guessing. The agent had to reverse-engineer the support model from backend API docs and guessed
enterprise@as the contact — while the real[email protected]sat unnoticed in the/proJSON-LD ContactPoint and the OpenAPIinfo.contact.email. Sibling issues: #4850 (signup), #4854 (pricing), #4856 (status endpoint).Verified gaps (2026-07-05)
/contact,/support,/help, and even/contact.md//support.mdall return200 text/html— the dashboard SPA shell (the vercel.json catch-all rewrite swallows them; none are in the exclusion list). For an agent this is worse than a 404: the journey fetched/contact, got 200, and could extract nothing.llms.txthas zero support/contact references (only false hits like "RTL support"). The status page (status.worldmonitor.app) is linked solely from the docs navbar (docs.json:458).[email protected](JSON-LD on/pro, OpenAPI info.contact),[email protected](30 repo refs), Discord (discord.gg/re63kWKxazin sameAs), GitHub issues (public repo), in-app formPOST /api/leads/v1/submit-contact(documented in api-platform.mdx:165 — but Turnstile-gated per usage-rate-limits.mdx:60, so unusable by agents; fine as an anti-spam choice, should just be labeled as human-only).pricing.mdonly says Enterprise gets "dedicated support"). If intentional, state it — "best-effort, no SLA on Free/Pro" is itself an answer an agent can cite.Fixes
support.md(sibling ofpricing.md) +docs/support.mdx: channel table (support@ for general, enterprise@ for sales/enterprise, Discord, GitHub issues, in-app form with Turnstile/human-only note, status page + email subscribe), per-tier expectations, and the canonical flows docs currently hand-wave ("contact support" for key rotation, limit increases → link the actual channel).llms.txt: add a "Support & contact" bullet next to the existing "Keys, plans & limits" line (line ~31) pointing atsupport.md.vercel.json: addcontactandsupportto the SPA catch-all exclusion; 301/contact,/support,/help→ the support page. This also fixes the.md-guess misleading-200 (/support.mdcurrently serves dashboard HTML)./pro, OpenAPIinfo.contact.email.Dup pre-flight:
gh-axi search issues"support page contact" / "support.md" → 0 results.