Daily autonomous internal-link routine for aguiarinjurylawyers.com: add pillar links, wire in content orphans, remove/repoint broken links. Link-only edits to live post_content (pre-authorized). No styling/design changes.
31 internal links added live, 1 removed, 0 errors: 29 prose pillar links across 19 pages (context-QA 29/29 prose, DB 29/29, public-render 19/19) PLUS 2 contextual inbound links wiring in 2 NEW content orphans (whiplash-lexington, common-mistakes-after-a-car-accident; both DB-verified <p> prose, public-render verified); 1 link reverted (ATV-crash inserted into an FAQ-accordion <summary> toggle on pid 10260, caught by context_qa2, surgically unwrapped); 822 already-linked pillar mentions skipped; targeted broken-href probe clean (0 edits); cache purged twice (flex-89251176, flex-89251864). Matcher hardened so FAQ <summary> toggles are rejected pre-write going forward.
MAX_INSERTS=30 cap hit (limiter, not exhaustion). 822 already-linked skips (up from 802 on 06-14 — saturation still climbing). 561 candidates, 56/56 pillars live, 0 broken_fixes.
By pillar (post-revert): tbi-cases 5, distracted-driving 4, spinal-cord 3, underinsured-motorist 3, semi-truck-accident 2, uninsured-motorist 2, premises-liability 2, car-accident 2, dog-bite 1, locations/lexington 1, rollover-accident 1, truck-accident 1, hit-and-run 1, drunk-driving 1.
Pages (pid +live inserts): 72429 18-wheeler-accident-lawyer +2, 72523 lexington-car-accident-attorney +2, 68527 spinal-cord-injury +2, 63399 kentucky +2, 30918 car-accidents +1, 54 our-results +2, 6901 pedestrian-lawyers +2, 22087 faqs-personal-injury +1, 7349 liability-in-kentucky-car-accidents +1, 6936 lexington-wrongful-death +1, 6885 kentucky-accident-lawyer +2, 9627 causes +2, 6931 lexington-truck-accident +2, 8301 construction-zones +1, 8846 treatment-gaps +1, 9644 traffic-lights +1, 7275 sideswipes +1, 9765 long-term-damages +2, 10255 lexington-injury-resources +1. (10260 atv-accidents +1 written → reverted → +0.)
orphan_report.py (read-only) re-crawled 564 pages: 35 zero-inbound, 95 one-inbound. Yesterday's 3 wires (rotator-cuff-tear, coup-contrecoup, femur-fracture) dropped off the zero-inbound list. Wired 2 NEW genuine content orphans:
No-match (correctly skipped, carryover): autonomous-truck-crash, garbage-trucks, moped-accident — no clean prose mention exists; candidates to drop from daily retry.
Cannibalization guard (dropped): elizabethtown, richmond, rollover — their anchor phrases are already PILLAR variants.
<summary class="sa-faq-question"> (FAQ accordion toggle — link conflicts with toggle). Surgically unwrapped via authenticated REST; verified absent post-edit; no collateral (only insert on that page).find_unlinked_match now calls enclosing_summary_is_widget() and rejects any <summary> whose attrs contain faq/question/accordion/toggle/collapse/disclosure/kt-/wp-block. Unit-tested (FAQ summary → no match; bare summary + paragraph → still match). Closes the gap pre-write.run.py → 30 inserts, 0 errors, 822 skipped. context_qa2 → 29 prose / 1 widget (reverted). reaudit_db → live_in_db=29, fully_live=19/20 (1 PARTIAL = reverted 10260). Cache purge flex-89251176. audit.py → 19/20 public (1 = reverted page, link correctly absent). broken_href_targeted → 4 candidates, 0 edits. orphan_report → 564 pages / 35 zero / 95 one inbound. orphan_wirein → 2 wired, 3 no-match, 0 errors, both <p>. Cache purge flex-89251864. Public verify → both orphan links serve (200, anchor present).
Full-corpus broken_href_scan.py + broken_link_repair.py last ran 06-13 (~weekly cadence). Only 2 days elapsed and targeted probe was clean today, so full scan correctly deferred. Next due ~06-20.