Niche Factory Dashboard

not signed in

← all jobs

cmm_calibration

slug: cmm-calibration · round 4
Approved
Signed off by zachbenzbf@gmail.com 53d ago · 3 rounds of feedback before approval

Voice audit review

✓ Approved — daemon is applying / has applied generated 2026-05-11T23:20:56Z
Auto-fixes already applied (6)
items · 6
[
  {
    "file": "src/layouts/BaseLayout.astro",
    "pattern_matched": "connecting [buyers] with [X]",
    "before": "{businessName} is a directory connecting buyers in {geo.region || 'the region'} with accredited CMM calibration providers. Listed laboratories work to ISO 10360-2, ISO 10360-5, and ASME B89 standards.",
    "after": "{businessName} is a directory of accredited CMM calibration providers serving {geo.region || 'the region'}. Listed laboratories work to ISO 10360-2, ISO 10360-5, and ASME B89 standards.",
    "location_hint": "footer brand blurb (ax-footer__brand-blurb), line 227"
  },
  {
    "file": "src/pages/index.astro",
    "pattern_matched": "connecting you with [X]",
    "before": "'Connect with accredited {Core Service} providers in {Location}. Listed laboratories work to ISO 10360-2, ISO 10360-5, and ASME B89 standards. Request a quote.'",
    "after": "'Accredited {Core Service} providers in {Location}. Listed laboratories work to ISO 10360-2, ISO 10360-5, and ASME B89 standards. Request a quote.'",
    "location_hint": "meta_description fallback for homepage, line 38"
  },
  {
    "file": "src/pages/index.astro",
    "pattern_matched": "connecting you with [X]",
    "before": "heading=\"Connect with Accredited CMM Calibration Providers\"",
    "after": "heading=\"Accredited CMM Calibration Coverage\"",
    "location_hint": "HubSpoke heading prop, line 198"
  },
  {
    "file": "src/pages/[hub].astro",
    "pattern_matched": "connecting you with [X]",
    "before": "'Connect with accredited {Core Service} providers in {Location}. Listed laboratories work to ISO 10360-2, ISO 10360-5, and ASME B89 standards. Request a quote.'",
    "after": "'Accredited {Core Service} providers in {Location}. Listed laboratories work to ISO 10360-2, ISO 10360-5, and ASME B89 standards. Request a quote.'",
    "location_hint": "meta_description fallback for hub pages, line 126"
  },
  {
    "file": "src/pages/[hub]/[service].astro",
    "pattern_matched": "connecting you with [X]",
    "before": "'Connect with accredited {Service Name} providers in {Location}. Listed laboratories work to ISO 10360-2, ISO 10360-5, and ASME B89 standards. Request a quote.'",
    "after": "'Accredited {Service Name} providers in {Location}. Listed laboratories work to ISO 10360-2, ISO 10360-5, and ASME B89 standards. Request a quote.'",
    "location_hint": "meta_description fallback for service pages, line 173"
  },
  {
    "file": "src/pages/our-process.astro",
    "pattern_matched": "connecting you with [X] (passive variant)",
    "before": "h2: 'How Buyers Are Connected with CMM Calibration Providers',",
    "after": "h2: 'How CMM Calibration Requests Are Routed',",
    "location_hint": "fallbackSections[0].h2, line 29"
  }
]
Decisions submitted — daemon is/has applying
Orchestrator syncs R2→local within 60s. Daemon then runs the apply step (Claude+Edit) and continues. Live progress on the niche detail.
preview (homepage embed) https://cmm-calibration.pages.dev ↗

Round history

Round 1 · 53d ago · 21 issues
  • 1. RULE ZERO — site is NOT a directory. Remove every instance of:
  • "directory of...", "listed providers/laboratories", "the listed [X]",
  • "Routing through [businessName]", "Get matched / matched with a provider".
  • Homepage hero lede starts "A directory of accredited CMM..." — that
  • whole framing must go. Rewrite passive: "Calibration is performed by
  • accredited laboratories..." Drop "listed" qualifier entirely.
  • 2. SEO — DROP all location-hub pages (/<state>/ and /<city>/, no service
  • slug). For this niche with ONE service, hubs add no nav value and
  • cannibalize the leaf pages. In src/pages/[hub].astro getStaticPaths,
  • return [] when services.length <= 1. (For multi-service builds the
  • rule would be: keep hubs but pass noindex={true} to BaseLayout —
  • doesn't apply here.) Leaf URLs /<location>/<service>/ stay indexed.
  • 3. Itemized lists → accordion. Use native <details><summary> for each
  • item in: CMM types calibrated, Standards followed, Performance
  • parameters, Operating modes. All collapsed by default.
  • 4. Long-form SEO body sections → <details> collapsed by default.
  • "CMM calibration demand in <city>'s industrial corridors",
  • "Standards traceability and acceptance criteria for CMM verification",
  • any spun-content / entity-coverage block ≥150 words.
  • Apply consistently across every page (homepage, our-process, capabilities,
  • every /<state>/<service>/ and /<city>/<service>/ leaf) and the sidebar.
Round 2 · 53d ago · 26 issues
  • 1. Drop the CoverageMap component entirely. Remove src/components/CoverageMap.astro
  • AND every import + <CoverageMap ...> usage across pages (index.astro,
  • our-process.astro, [hub].astro if present, etc.). The "Service Areas Covered"
  • section currently renders gibberish (state name repeated above each city) and
  • isn't fixable — kill it. Keep CoverageProse (text-based) for the geographic
  • listing. No service-area map of any kind.
  • 2. URL structure change — flatten leaf URLs and drop location hubs entirely.
  • This niche has 1 service post-consolidation, so:
  • a. Remove src/pages/[hub].astro (or return [] from its getStaticPaths).
  • The hub URLs (/chicago/, /illinois/, etc.) should no longer exist.
  • b. Replace src/pages/[hub]/[service].astro with src/pages/[locservice].astro
  • (single dynamic segment). In its getStaticPaths, enumerate paths like
  • chicago-accredited-industrial-cmm-calibration
  • naperville-accredited-industrial-cmm-calibration
  • illinois-accredited-industrial-cmm-calibration
  • etc. — one per (state OR city) × service. Concatenate location-slug +
  • "-" + service-slug.
  • c. Update EVERY internal link in components/pages (HubSpoke, CoverageProse,
  • CardGrid, nav, sitemap, etc.) to point at the new flat URLs. No more
  • "/chicago/accredited-industrial-cmm-calibration/" — use
  • "/chicago-accredited-industrial-cmm-calibration/".
  • d. Update src/content/phone_routing.json keys from
  • "<service>::<location>" → still keyed by location_slug but the rendered
  • page reads them the same way; only the URL changes.
  • e. Update astro.config.mjs sitemap filter if needed.
  • Apply consistently. Run astro build clean at the end.
Round 3 · 53d ago · 24 issues
  • 1. Embed the lead-capture form INSIDE the hero on every landing page
  • (homepage AND every /<location>-<service>/ leaf). Two-column on desktop:
  • LEFT: eyebrow + H1 + 1-sentence lede + 3-4 small inline trust badges
  • (ISO 17025 / ISO 10360-2 / NIST-Traceable / metro-market count).
  • Phone CTA below.
  • RIGHT: form card — same fields as src/pages/request-a-quote.astro
  • (name, email, phone, ZIP, project details, consent checkbox).
  • Same action="/api/submit", same consent text.
  • Mobile: stack — pitch above, form below.
  • The standalone /request-a-quote page STAYS (nav + email CTAs link to it).
  • This is a Hero component variant — call it HeroForm or add a
  • `withForm={true}` mode to the existing Hero. Apply site-wide.
  • 2. Use more of the existing images. Pages currently render mostly text-only
  • blocks. Each major content section on every landing page should have a
  • relevant image from public/images/ embedded inline (left/right alignment,
  • ~40% width on desktop, full-width on mobile). Mapping:
  • - Hero: hero-main.webp (left or background of the form card)
  • - Accreditation / standards section: section-accreditation.webp
  • - Process / how-it-works section: section-process.webp
  • - Service-specific sections: accredited-industrial-cmm-calibration.webp
  • - Sidebar / at-a-glance: any of the above as a small thumbnail
  • Reuse images across pages — that's expected. The goal is visual rhythm.
  • Apply on homepage, /<state>-<service>/ leaves, /<city>-<service>/ leaves,
  • our-process, capabilities.

✗ Link gap: Skipped

decided 2026-05-12T02:05:03.682Z

✗ Blog: Skipped

decided 2026-05-12T02:05:14.556Z