Files
company_site/company_site/docs/agentic-browsing.md
T
westfarn 2fb5204614
Deploy Company Site / test (push) Successful in 9s
Deploy Company Site / deploy (push) Successful in 4s
Fix WebMCP schema validity on contact form (#13)
## Summary

Follow-up to PR #12 / Lighthouse agentic-browsing audit on `/contact` (score 0.88).

- Add `toolparamdescription` to all contact form fields for WebMCP schema validity
- Move reCAPTCHA outside the annotated `<form>` so `g-recaptcha-response` is excluded from the declarative tool schema
- Always render `toolname` / `tooldescription` on the contact form (not gated by `WEBMCP_ENABLED`)
- Override `django_recaptcha/widget_v3.html` to associate captcha with `form="contact-form"`
- Update docs with HTTPS Lighthouse commands

## Test plan

- [x] `python manage.py test public.tests` — 21 tests pass
- [ ] Deploy and re-run Lighthouse agentic-browsing on `https://aimloperations.com/contact`
- [ ] Confirm `webmcp-schema-validity` passes (expected overall score 1.0)

Reviewed-on: #13
2026-07-02 18:02:44 +00:00

2.6 KiB

Agentic Browsing Readiness

This site targets Google's experimental Agentic Browsing Lighthouse category (v13.3+), which checks whether AI agents can read, navigate, and act on public pages.

PageSpeed Insights does not yet expose this category. Run audits locally:

npx lighthouse@latest https://aimloperations.com \
  --only-categories=agentic-browsing \
  --chrome-flags="--enable-experimental-web-platform-features" \
  --output=html --output-path=agentic-browsing-report.html

Test at minimum:

  • / (homepage)
  • /contact (primary conversion page)

What we ship

Check Implementation
llms.txt GET /llms.txt — machine-readable site summary
robots.txt GET /robots.txt — crawl rules + sitemap reference
sitemap.xml GET /sitemap.xml — public marketing URLs
Accessibility tree Form labels, semantic nav controls, ARIA on dialogs
Layout stability Fixed cookie banner, reserved hero/marquee space, font fallbacks
WebMCP tools navigator.modelContext tools behind WEBMCP_ENABLED (see webmcp.md)

WebMCP (issue #9)

When WEBMCP_ENABLED=True:

  • Navigation tools (list_services, get_page_content, navigate_to_service, open_contact_with_subject) load on all public pages
  • Contact page registers submit_contact_inquiry via declarative form annotations (toolname, tooldescription, toolparamdescription); reCAPTCHA renders outside the annotated form
  • Default is disabled (WEBMCP_ENABLED=False) until deliberately enabled per environment

Full tool catalog, Chrome flag setup, and reCAPTCHA notes: docs/webmcp.md

Regression checklist

Before merging public-facing template or CSS changes:

  1. Contact form fields have associated <label> elements (not placeholder-only).
  2. Nav dropdowns use <button> triggers with aria-expanded / aria-haspopup.
  3. Cookie consent banner stays position: fixed (no document flow shift).
  4. GET /robots.txt, /sitemap.xml, /llms.txt return 200.
  5. With WEBMCP_ENABLED=True, public pages include webmcp-config and webmcp-tools.js; contact form always has toolname, tooldescription, and toolparamdescription on fields.
  6. Re-run Lighthouse agentic-browsing on homepage and contact page (Chrome experimental flag on).

References