Pilot readiness
Short version of /reports/migration-acceptance-report.md in the repository. Read that file for full detail and citations, including §0 covering an independent review's findings and this pass's fixes.
Route inventory (19 routes)
19 of these match the live public inventory exactly (12 pages + 7 posts). /pilot-readiness/ and the 404 page are the only 2 that don't exist live.
| Route | Content source |
|---|---|
| / | home — website-brain-firecrawl-2026-06-18 |
| /about-us/ | about-us — website-brain-firecrawl-2026-06-18 |
| /contact-us/ | contact-us — website-brain-firecrawl-2026-06-18 |
| /vacuum-excavation/ | vacuum-excavation — website-brain-firecrawl-2026-06-18 |
| /non-destructive-digging/ | non-destructive-digging — website-brain-firecrawl-2026-06-18 |
| /ground-penetrating-radar-gpr/ | ground-penetrating-radar-gpr — website-brain-firecrawl-2026-06-18 |
| /liquid-waste-removal/ | liquid-waste-removal — website-brain-firecrawl-2026-06-18 |
| /service-locator/ | service-locator — website-brain-firecrawl-2026-06-18 |
| /privacy-policy/ | privacy-policy — website-brain-firecrawl-2026-06-18 |
| /terms-and-conditions/ | terms-and-conditions — website-brain-firecrawl-2026-06-18 |
| /blog/ | blog index — website-brain-firecrawl-2026-06-18 |
| /thank-you/ | thank-you (GAP — no content recovered, inert preview notice) — route-inventory-only |
| /blog/vacuum-excavation-cost-drivers-newcastle/ | post — live-source-check-2026-09-09 |
| /blog/vac-truck-site-preparation-checklist-newcastle/ | post — wp-rest-backup-2026-08-19 |
| /blog/vacuum-excavation-civil-projects-newcastle/ | post — wp-rest-backup-2026-08-19 |
| /blog/dewatering-with-vac-trucks-newcastle/ | post — website-brain-firecrawl-2026-06-18 |
| /blog/hydro-excavation-for-plumbers-newcastle/ | post — website-brain-firecrawl-2026-06-18 |
| /blog/vac-truck-hire-for-small-jobs-newcastle/ | post — website-brain-firecrawl-2026-06-18 |
| /blog/vac-truck-stormwater-infrastructure-maintenance-newcastle/ | post — website-brain-firecrawl-2026-06-18 |
Known gaps
- Photography and logo: fully resolved, zero placeholders remain. All 26 catalogued images plus 2 more (fetched later by the lead) plus the real logo are all real files in
public/images/— none of this pilot's images are placeholders. /thank-you/— the one remaining content gap. Route exists in the WordPress inventory (page ID 798, confirmed still present as of 9 September) but its Bricks-builder body was empty in every capture, including the freshest one. Preserved as a route with an honest gap notice — worded so viewing it never implies a real enquiry was received, since the mock form never redirects there.- A 7th blog post, published 25 August, was added from the fresh 9 September pull: What Affects the Cost of Vacuum Excavation? Not present in the August 19 export used for the other two REST-sourced posts.
- Structured data (JSON-LD). Two REST posts included JSON-LD blocks; stripped rather than reinjected. Noted, not solved.
- 11 of 12 live pages not re-verified against fresh rendered HTML today (18 of the 19 total public routes, though the 7 posts within that 18 are better-evidenced — see report §4). The fresh pull's full-page fetch succeeded only for the homepage; every other page route returned HTTP 403 (not retried further, per the no-unbounded-crawl instruction). Page text still comes from the June Firecrawl capture — cross-checked where possible, not a today-verified word-for-word diff.
Fixed this pass, after an independent review
A fresh-context review found real defects a 6-route screenshot sample missed, and the brand colours were separately rejected as generic rather than real. Full detail in report §0; summary: real navy/blue/yellow brand and real logo replacing an invented green theme; a genuine CSS-specificity bug that left the Services dropdown permanently open and overlapping content on every page, plus a hover/click JS conflict found during this pass's own re-testing; an accessible mobile menu toggle added (there wasn't one); the homepage rebuilt from a flat stacked-image layout into a real hero and grid composition with the same content, not reworded; 6 garbled broken-image defects fixed on 2 pages, plus 2 more of the same defect class found in posts the review didn't sample; the 4 broken homepage blog links now fixed to their real targets; the last 2 placeholder images replaced with the real recovered files; a wrong Victorian phone number on Liquid Waste Removal corrected; a passive outbound request to gravatar.com (4 blog posts) removed; the preview server's host binding fixed from 0.0.0.0 to 127.0.0.1; and per-page provenance jargon removed from normal page flow.
Forms and lead routing — explicitly not done
Every page that had a live quote form now shows an inert local mock (see src/components/QuoteFormMock.astro): same fields, same button copy, submits nothing, no fetch, no iframe, no third-party script, no redirect to /thank-you/. The real form is a GoHighLevel/LeadConnector embed shared with the Sydney/Newcastle/Wollongong GHL location (KvsdVAtNdUbeRCzpatSw) — reconnecting it, and re-verifying partner email delivery, is deliberately out of scope for a private, unpublished preview and needs its own authorised step before any cutover.
What was verified
npm run buildcompletes and emits static HTML for all 21 routes (20 pages + 404).- Every page carries
<meta name="robots" content="noindex, nofollow">and a visible preview banner;public/robots.txtdisallows all; the running container also setsX-Robots-Tag. - Phone number, address and service-area text match the captures verbatim, including the freshest one — with one factual correction, see report §0 item 8.
- Zero outbound request hosts across all 19 public routes × 2 viewports, including a real form-fill-and-submit attempt (Playwright network capture,
reports/full-check-report.json). - Zero horizontal overflow, zero console errors, zero garbled/data-URI text across all 19 routes × 2 viewports.
- Full internal-link and internal-image scan of the built site: zero broken links, zero missing images, zero placeholders.
- The Services button opens and closes the menu by click, touch, Enter or Space. Its visible state follows
aria-expanded; Escape closes it and returns focus to the control. - Desktop and mobile Playwright screenshots for all 19 public routes, viewport and full-page (76 images,
reports/screenshots/).
What was not verified
- No authenticated/full-Chrome interaction, cross-browser check, or performance audit.
- No live email/partner-delivery path was tested — intentionally, since no live form is connected.
- No fresh Search Console baseline.