fix_links.py sweeper,
wired into both pull scripts so re-pulls stay clean); the 21 stale footers and the
/#contact anchor were retargeted; the double nav on the funnel pages is gone;
forgot-password now works end-to-end on this site (/forgot + /reset pages live,
API answering); the address-card "What is it worth?" link, relo-concierge.js, the
cost-seg PDF, and a local copy of the listing page (/ng_re_listing.html) all serve 200.
Leftover-bad-link re-grep across the webroot: zero hits outside the planning pages.
Not done (cosmetic): old neumangroupre.com URLs inside JSON-LD on 6 pages.
| Job | Result |
|---|---|
1. JS API-call audit — every tool stays on prestigen.letaibuildit.com | PASS — 0 off-site API calls found, static + live |
| 2. Prove "copied not moved" — originals still live on remined | PASS — 18/18 sampled routes still registered (remined is login-gated site-wide, so we saw 302→login, not 404) |
| 3. Click-crawl — every link goes somewhere, no dead pages | DEFECT — 0 page-level 404s, but 34 pages carry internal links to paths that don't exist |
prestigen.letaibuildit.com/api/... — zero calls
to remined/neuman/analysis hosts, checked both by reading every fetch() in every .js/.html file and
by watching the network tab live./dealfinder.html,
/lowball.html, /rent_check.html) instead of the real prestigen filenames. This is the
exact bug your own WORKLOG.md RULE 3 already named ("A bare /dealfinder.html resolves
against prestigen and 404s") — it's still live on 34 pages, not just the one it was written about./ng_dealfinder.html,
/ng_lowball.html, /ng_appraisal_order.html, /ng_value-explainer.html,
/ng_rent_check.html, all pulled local by pull_tools_local.py and confirmed working) —
those just need the link target fixed. The rest have no local copy at all yet, so per RULE 3 they need a full
https://remined.letaibuildit.com/... origin, not a bare path./blog/, /faq,
/boca-raton-property-management) and a "Talk to us" link pointing at /#contact, an
anchor that doesn't exist anywhere on the site (the real one is #talk).ng_home-worth.html renders two separate navigation bars stacked on top of each other — the
new prestigen nav, and the old remined nav underneath it, both live at once. Sitewide "Forgot password"
(_auth.js) also 404s everywhere.WORKLOG.md RULE 1: every .html in web/ is generated — a hand-edit
survives until the next python3 build_*.py run, then gets silently wiped. All fixes below belong in the
generator scripts (pull_tools_local.py / whichever build_*.py emits each ng_ page), not as
direct edits to the HTML files.Checked every fetch() in every .js and .html file on the server (no absolute hosts anywhere, no API_BASE-style host prefixes), then actually used the tools in a real browser and read the network tab.
/ng_listings.html/api/addr-suggest?q=... → 200, /api/addr-card?key=... → 200. Both on prestigen.letaibuildit.com. 0 console errors./ng_listings.html/api/listings, /api/listings/db, /api/listings/counts, /api/listings/cities, /api/geo/coverage, /api/data-freshness — all 200, all on prestigen.letaibuildit.com./ng_points-of-interest.html/api/geo/pois?cat=worship&bbox=... → 200, on-domain. 0 console errors./ng_home-worth.html/ng_listings.html → addr-card/home-worth?address=.../home-worth → 404. The real page is /ng_home-worth.html, which is 200._auth.js_auth.js lines 209 and 240, loaded on every page that has the login modal./forgot?email=..., which 404s (also confirmed the same dead link on login.html, pointing off-site instead to https://neumangroupre.com/forgot.html).connect.facebook.net/.../fbevents.js and posts PageView/VisitorIntent/SubscribedButtonClick events to facebook.com/tr with pixel id 1568377504745301.remined.letaibuildit.com requires login on every route, including the homepage (302 → /login). No credentials were given, and none were guessed. Instead of logging in, checked whether each route is still registered on the server — a 302-to-login means the route still exists; a 404 would mean it was deleted. (Per WORKLOG RULE 2b, a bare 200 wouldn't be proof either way on this site — noting for the record that this check used the raw status code, not a signed-out render, so it proves "not deleted," not "renders correctly for a stranger.")
| Prestige copy | remined original | Result |
|---|---|---|
ng_listings.html | listings.html | EXISTS 302→login |
ng_appraisal.html | appraisal.html | EXISTS 302→login |
ng_appraisal_order.html | appraisal_order.html | EXISTS 302→login |
ng_points-of-interest.html | points-of-interest.html | EXISTS 302→login |
ng_home-worth.html | home-worth.html | EXISTS 302→login |
ng_dealfinder.html | dealfinder.html | EXISTS 302→login |
ng_zoning-map.html | zoning-map.html | EXISTS 302→login |
ng_rent_check.html | rent_check.html | EXISTS 302→login |
ng_moneymakers.html | moneymakers.html | EXISTS 302→login |
ng_broker_cave.html | broker_cave.html | EXISTS 302→login |
ng_upside_map.html | upside_map.html | EXISTS 302→login |
ng_migration_map.html | migration_map.html | EXISTS 302→login |
ng_tax-walk.html | tax-walk.html | EXISTS 302→login |
ng_cost-segregation.html | cost-segregation.html | EXISTS 302→login |
ng_find.html | find.html | EXISTS 302→login |
ng_area.html | area.html | EXISTS 302→login |
ng_value-explainer.html | value-explainer.html | EXISTS 302→login |
ng_lowball.html | lowball.html | EXISTS 302→login |
18/18 sampled — none missing, none deleted. This backs up the "Prestige preview" banner's claim that "the live site is untouched," and also confirms these particular ng_ pages really are copies of live remined tools (matches the pull_tools_local.py header comment found in each file: "Pulled into the Prestige webroot ... Original tool lives on REmined and is untouched.").
/listings /buy /sell /invest /taxes /manage /agents /relocate /research /about /how-we-get-paid /privacy /terms) all 200. A nonsense URL returns a real 404 (not a silent 200).https://remined.letaibuildit.com/... origin if it hasn't./dealfinder.html 404 → real page is /ng_dealfinder.html (200, confirmed pulled-local + has 11 local fetch() calls) — linked from ng_appraisal.html/lowball.html 404 → real page is /ng_lowball.html (200) — linked from ng_commercial_deals.html, ng_dealfinder.html/appraisal_order.html 404 → real page is /ng_appraisal_order.html (200) — linked from ng_appraisal.html/value-explainer.html 404 → real page is /ng_value-explainer.html (200) — linked from ng_premium.html/rent_check.html?address=... 404 → real page is /ng_rent_check.html (200) — built at runtime by ng_moneymakers.html/commercial.html?q=... 404 → real page is /invest/commercial.html (200) — built at runtime by ng_commercial_deals.html, ng_area.html/relocation/for-employers, /relocation/concierge, /relocation/corporate-housing 404 → folder is actually /relocate/ not /relocation/ (/relocate/for-employers.html is 200) — linked from ng_relocation.html, ng_relocation-for-employers.html/dialer.html, /re_listing.html?key=... — built at runtime by ng_moneymakers.html, ng_zoning_deals.html, ng_dealfinder.html/hub.html, /maps.html — linked from ng_appraisal.html, ng_deal-map.html, ng_zoning-map.html/resources, /resources.html, /sellers, /for-buyers, /for-investors, /how-it-works, /property-management — scattered across ng_mortgage.html, ng_your-path.html, ng_the-flip.html, ng_best-value.html, ng_prices.html, ng_find.html, ng_tax-walk.html, ng_boca-raton-luxury-homes.html/relocation/relo-concierge.js — a whole script file is missing on ng_relocation.html, so whatever it powered doesn't run at all/data/cost-segregation-audit-risk.pdf — missing download referenced on ng_cost-segregation-audit-risk.htmlng_best-value.html, ng_boca-raton-luxury-homes.html, ng_closings.html, ng_coral-gables-luxury-homes.html, ng_cost-segregation-audit-risk.html, ng_cost-segregation.html, ng_find.html, ng_fort-lauderdale-waterfront-homes.html, ng_listings.html, ng_mortgage.html, ng_my-homes.html, ng_palm-beach-luxury-real-estate.html, ng_prices.html, ng_tax-plan.html, ng_tax-snapshot.html, ng_tax-target.html, ng_tax-walk.html, ng_the-flip.html, ng_why-florida.html, ng_your-path.html, and the door page manage.html./blog/, /boca-raton-property-management, /faq, /sell-your-south-florida-home — all 404. "Talk to us" points to /#contact, which has no matching id="contact" anywhere on the site (the real anchor is id="talk" on the homepage)./ng_home-worth.htmlassets/dual-nav-home-worth.png (saved to the walkthrough folder, not this server)ng_listings.html: no horizontal scroll, nav and CTAs reachable, 0 console errors on either.danN.html and dann.html are byte-identical and not linked from anywhere else in the crawl — both are generated by build_appraisal_partner.py per WORKLOG (intentional, a partner's separate notes copy), so this is by design, not a bug — flagging only the case-only filename risk if this ever lands on a case-insensitive filesystem.ng_boca-raton-luxury-homes.html, ng_coral-gables-luxury-homes.html, ng_fort-lauderdale-waterfront-homes.html, ng_market-pulse.html, ng_moving-to-miami.html, ng_palm-beach-luxury-real-estate.html — og:url / mainEntityOfPage in the ld+json still say https://neumangroupre.com/... instead of the prestigen URL. Not a functional break (pages carry noindex,nofollow per RULE 5, so no crawler will act on it), but flagging as another "copied, metadata not updated" spot for whenever this goes live for real.ng_*.html pages for the dual-nav-bar bug — only confirmed on ng_home-worth.html; likely present on other pages sharing the same old template but not individually screenshotted./ng_*.html path; make the rest full https://remined.letaibuildit.com/... URLs per RULE 3. Do not hand-edit the HTML — it will get wiped on next build (RULE 1)./forgot in _auth.js (2 lines) and the off-site forgot-password link on login.html./#contact → #talk anchor.ng_home-worth.html (and audit sibling pages using the same template)./home-worth → /ng_home-worth.html).neumangroupre.com URLs in JSON-LD on the 6 pages listed above.