# equinoxbusinesslaw — notes/crawl/

> Raw measurement artifacts of the **live** site (equinoxbusinesslaw.com), kept as the evidence
> behind `notes/site-audit-2026-07.md`. Machine-generated, large, and **not loaded by agents by
> default** — cite the specific file and the fact you took from it. The audit is the digest; this
> is what the digest is checked against.

## Rules

- **Point-in-time, so always dated.** Name files `<what>-<YYYY-MM-DD>.<ext>`, e.g.
  `live-crawl-2026-09-03.json`. AISV keeps publishing to the live site, so every count in a crawl
  is true only on its date; the post count is re-measured at export and again before cutover
  (`agents.md`). Never overwrite an older crawl — add a new dated file.
- **Read-only provenance.** The live site is never touched (`agents.md`); crawls, exports, REST
  reads and HTML fetches are the only permitted contact.
- **Findings go to the audit, not here.** When a crawl produces a fact worth acting on, write the
  fact into `notes/site-audit-2026-07.md` with its date and cite the crawl file. This folder is
  never edited by hand.
- **Figures.** A crawl carries the client's own site content, which is fine. The project's pricing
  rule still holds for everything we author: never copy a figure out of a crawl into a project
  doc. Same position as `notes/source/`.
- **Credentials and access-bearing links.** If a crawl captured a session cookie, token, admin
  URL with a key, or any sharing link, delete that file and re-crawl unauthenticated
  (`notes/inbox/README.md` applies the same rule to originals).

## What is here

| File | What it is | Taken |
|---|---|---|
| `context_crawler_equinoxbusinesslaw.com_2026-09-03T11-53-54.json` | Context Crawler (`ai_optimized_1.0`) link-following crawl of the live site: 98 URLs, 64,065 words, per-page title, description, extracted content, headings, internal links and word count. **Partial** — 71 of 513 posts, and several live pages were never reached. Digested in `notes/site-audit-2026-07.md` 2.7. | 2026-09-03T11:53Z |

## Known quirks of the 2026-09-03 Context Crawler capture

Recorded so a later session does not repeat the mistake of trusting them:

- **`summary.pages_with_description: 0` is wrong.** Every page has a populated Yoast meta
  description; it is the *second* of two `<meta name="description">` tags and the crawler reads
  the first (empty) one. The real finding is duplicate conflicting tags — audit 2.7.
- **`summary.pages_with_schema: 0` is wrong.** Yoast's JSON-LD graph is on every page (audit 2.2,
  2.6). The crawler does not parse `ld+json`.
- **Heading counts over-count.** It reports 259 `H1`s across 96 pages; raw source shows two per
  page (three on `/contact/`). Use raw source for heading facts.
- **`total_pages: 98` is a crawl size, not a site size.** The site has 32 sitemap pages and 513
  published posts (`.memory/live-site-numbers.md`). Never quote 98 as a page count.
- **One record is an error stub:** `/about-us/team` carries `{"error": "Extraction timeout"}` and
  no title. The URL itself is a genuine **404** (verified) linked from the assessment page.
