From b34e3958f8648c1eef66e93f457cbee1b1d80198 Mon Sep 17 00:00:00 2001 From: nish3451 <257724087+nish3451@users.noreply.github.com> Date: Tue, 11 Aug 2026 22:41:16 +0530 Subject: [PATCH] fix(public): put a real Request-the-appraisal signup form in the /pricing closing callout MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The pricing page's closing band — "The appraisal costs you an email. The rest is a decision you can make later." — ended in a dead end: no intake form, no action, nothing to click, while every other served conversion surface (home, /audit) carried a real signup form. The band now embeds the same form.lead.two intake (website + email posting to /api/signups) with a "Request the appraisal" submit, matching the audit page's field shapes and persistent aria-labels, so the closing offer is actionable in place instead of bouncing the reader back to the nav. A static source guard in check-site.mjs pins the shape: the band must keep a form.lead posting to /api/signups, both intake inputs must carry a persistent programmatic aria-label, and the submit must read "Request the appraisal" — so the dead end cannot silently return. verify: npm run check and npm test (check, heading hierarchy, sitemap, worker, UI contracts) all green on this branch. Supersedes PR #68 (same fix, fresh branch from current origin/main so the governed review pipeline can land it). --- public/pricing.html | 5 +++++ scripts/check-site.mjs | 27 +++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/public/pricing.html b/public/pricing.html index 38f21d64..5e513b12 100644 --- a/public/pricing.html +++ b/public/pricing.html @@ -129,6 +129,11 @@
Six a month, done by hand. When this month's sixth is taken the intake closes until the next one opens.
+