# QRMaster Broken Link + CTA Checker ## Goal Catch broken internal links and broken conversion CTAs on `main`, especially after direct edits without a pull request. ## What It Checks - Static internal `href` values in source files. - Static `router.push("/...")` destinations. - Internal links against known Next.js app routes and files in `public/`. - CTA-like links such as "Get started", "Create QR", "Start free", "Generate QR", "Pricing", and "Upgrade". - Pages that appear to have no obvious CTA link. ## Command ```bash npm run check:links ``` The command prints a JSON report. It exits with a non-zero status if broken internal links or broken CTA links are found. ## Known Limits - Dynamic CMS/blog slugs are allowed by prefix and not fully validated. - Runtime-only links built from variables are skipped. - External links are not checked by this local script. - This is a fast safety check, not a full crawl of the deployed website. ## Codex Automation Prompt ```text Run the QRMaster Broken Link + CTA Checker. Use: - docs/automations/qrmaster-broken-link-cta-checker.md - scripts/check-links-and-ctas.js Run npm run check:links. Review the JSON report and summarize: 1. broken internal links 2. broken CTA links 3. important pages without obvious CTAs 4. concrete fixes with file paths If the script fails, inspect the listed files and propose the smallest safe fix. Do not modify production configuration automatically. ``` ## Success Criteria - No broken internal links. - No broken CTA links. - Important marketing, tool, and pricing pages have a clear CTA.