30 prose internal links live across 19 pages (DB-verified 30/30, 19/19 fully live), 0 context-QA flags, 0 reverts, 0 errors, 0 broken-href fixes; +1 redirected-post guardrail shipped. Production cache purged.
underinsured-motorist 5, distracted-driving 4, uninsured-motorist 4, drunk-driving 2, premises-liability 2, tbi-cases 2, car-accident 2, spinal-cord 2; rideshare-accident 1, truck-accident 1, personal-injury 1, dog-bite 1, hit-and-run 1, amazon-delivery-accidents 1, plus richmond tbi 1.
pid 8291 (louisville-car-accident-lawyers) keeps a valid WP permalink but 301-redirects to /what-to-do-after-car-accident-kentucky/, so its content is never served publicly. Its 2 inserts are DB-confirmed but non-served — this was audit.py's single failure (audit fetches the rendered permalink). Fix: added 8291 to SKIP_POST_IDS + a structural permalink_is_redirect() preflight in scan.py/run.py that skips any candidate whose own link returns 301/302/307/308. Unit-verified (True for 8291, False for /locations/lexington/). The 2 existing inserts left in place (harmless valid prose). 18/19 of today's targets serve 200. Note: /practice-areas/personal-injury/ serves 200 with rel=canonical → /practice-areas/ (canonical ≠ redirect; page IS served, insert fine).