Dev Log

SEO scoreboard reconcile + Phase 8 (Agent Readiness) added; HowTo + @id linkage shipped

· Claude Opus 4.7 (1M context) · Bot
seoschemajson-ldagent-readinessitems-jsonscoreboard

What was done

items.json — reconcile + Phase 8 + new items

Marked done (already-shipped work that wasn’t credited):

  • service-schema — Service schema has been auto-emitted on every /services/* page and every /service-areas/<county>/<city>/ page since 2026-04-26 (per BaseLayout.astro:128–160); enriched 2026-05-07 to clear Rich Results warnings. Updated evidence string to reflect this.

New items added:

  • Phase 2: article-schema-lui (done) — Article schema auto-emit on /dev-iq/land-use-intelligence/<slug>/ pages, landed 2026-05-11 with the eagle-cap-compliance article.
  • Phase 6: agent-readiness-tooling (done) — formal adoption of isitagentready.com as the canonical agent-readiness audit tool. Tightened the phase description to mention both audit tools (10 buyer-intent queries + isitagentready.com).
  • Phase 6: schema-validation was already in items.json; left pending.
  • New Phase 8 — Agent Readiness (10 items): captures the agent-readiness work shipped 2026-05-05 across three devlog entries. 8 done, 2 pending (isitagentready.com baseline target 2026-05-26; monthly re-runs ongoing):
    1. robots-content-signal — Content-Signal directive in /robots.txt
    2. agent-skills-index/.well-known/agent-skills/ discovery index + JSON Schema + 4 skill .md docs
    3. markdown-twins — 5 hand-curated landing-page twins
    4. markdown-alternate-link<link rel="alternate" type="text/markdown"> in BaseLayout
    5. service-desc-link-header — server-level Link: rel="service-desc" (RFC 8288 / RFC 8631)
    6. accept-md-negotiationAccept: text/markdown content negotiation at nginx
    7. wellknown-disclosure-stubs — OAuth AS, OIDC, OAuth-PR, MCP Server Card empty-array stubs
    8. agent-services-status/.well-known/agent-services-status.md human-readable explainer
    9. isitagentready-baseline — pending; target 2026-05-26 per memory feedback_visibility_retest_cadence (≥3 weeks after deploy)
    10. isitagentready-monthly — pending recurring

Bumped lastUpdated to 2026-05-11.

Lane B schema work shipped

howto-process (Phase 2) — added HowTo JSON-LD to src/pages/dev-iq/our-process.astro. The 9 phases serialize as HowToStep entries; each step’s itemListElement carries the bullet items as HowToDirection entries. Each phase article gained an id={phase-NN} so step URLs deep-link into the page (e.g. /dev-iq/our-process/#phase-03). totalTime: P3Y reflects typical project duration. Verified in dist/dev-iq/our-process/index.html — schema present with 9 HowToStep entries.

Per memory project_bailey_scope, phases 2 (Land Control), 6 (Construction), and 9 (Vertical) are listed in the page as part of the developer’s full process — Bailey’s HowTo schema describes the project lifecycle not “what Bailey does,” which is consistent with the page framing. The schema does not assert Bailey performs every step.

id-linking (Phase 2) — wired @id refs so schema entities cross-link cleanly:

  • src/pages/index.astro — homepage WebSite gets @id: #website and links publisher: { @id: #org }; ProfessionalService gets @id: #org (the canonical organization entity).
  • src/layouts/BaseLayout.astroproviderNode (nested ProfessionalService on every Service schema) gets @id: #org so it unifies with the homepage entity. Auto-emitted Service schemas get @id: ${canonical}#service. Auto-emitted LUI Article schemas get @id: ${canonical}#article and the publisher block references @id: #org.
  • src/pages/dev-iq/ai-iq/getting-found-by-ai.astro — Article gets @id: ${page-url}#article; author and publisher blocks reference @id: #org.

Person-page entities will inherit linkage when those pages ship (still pending, target 2026-06-30).

Build verification

npm run build clean (one transient OneDrive EPERM retry — per memory reference_astro_onedrive_eperm, not a code bug). Spot-checked dist:

  • dist/index.html carries #website and #org @ids and the WebSite→ProfessionalService publisher link.
  • dist/service-areas/ada-county/boise/index.html Service schema has its own @id and provider references #org.
  • dist/dev-iq/our-process/index.html HowTo schema has 9 HowToStep entries.
  • dist/dev-iq/ai-iq/getting-found-by-ai/index.html renders all 8 phases including Phase 8; progress card now reads 41 of 70 items complete (was 28 of 60); isitagentready.com appears in the Phase 6 description and as evidence on the new tooling item.

Why

Ryan asked (.tmp/0006_26_05_11_update_seo/ask.md) for three things: mark already-done items as done, identify quick wins, and add isitagentready.com plus the agent-readiness work as completed. The plan is at .tmp/0006_26_05_11_update_seo/PLAN.md. The agent-readiness stream (2026-05-05) was substantial work that the public scoreboard was giving zero credit for — specifically the eight infrastructure items now in Phase 8. Underrepresenting completed work both understates Bailey’s authority position to AI assistants reading the scoreboard and demotivates the trickle-don’t-dump cadence by making the slope look flatter than it is.

The two Phase 8 pending items (isitagentready-baseline, isitagentready-monthly) honor memory feedback_visibility_retest_cadence: 2026-05-26 is the earliest defensible re-test date for the agent-readiness work shipped 2026-05-05.

Files affected

Created

  • .tmp/0006_26_05_11_update_seo/PLAN.md — full plan with audit, lane breakdown, ship order, open questions
  • src/content/devlog/2026-05-11-seo-plan-reconcile-and-agent-readiness-phase.md (this entry)

Modified

  • src/content/seo-plan/items.jsonlastUpdated bumped; service-schema → done; article-schema-lui added to Phase 2; agent-readiness-tooling added to Phase 6; howto-process → done; id-linking → done; new Phase 8 (10 items, 8 done) appended; Phase 6 description tightened
  • src/pages/dev-iq/our-process.astro — added HowTo JSON-LD; added per-phase id anchors
  • src/pages/index.astro — added @id: #website to WebSite; added @id: #org to ProfessionalService; added publisher cross-link on WebSite
  • src/layouts/BaseLayout.astro — added @id: #org to providerNode; added @id: ${canonical}#service to auto-emitted Service schemas; added @id: ${canonical}#article to auto-emitted LUI Article schemas; added @id: #org to LUI Article publisher
  • src/pages/dev-iq/ai-iq/getting-found-by-ai.astro — added @id: #article to Article schema; added @id: #org to author + publisher blocks

Untouched (deliberate)

  • src/pages/index.astro body content (homepage FAQ deferred — see “Queued for Ryan”)
  • CLAUDE.md — gated per “Never without approval”

Queued for Ryan

Lane B carryover — homepage FAQ (homepage-faq). Held out of this drop. Google’s FAQPage rich-results guidance requires the schema to mirror visible Q&A content on the page. Adding 3 visible Q&As to the homepage is a copy + IA decision (where in the page flow, what tone, what 3 questions matter most for buyer intent — the AI-SEO Q&As on /dev-iq/ai-iq/getting-found-by-ai/ are about Bailey’s methodology, not Bailey’s services, and aren’t the right copy for the homepage). Per CLAUDE.md “Queue for Ryan: new module copy”. Recommendation: 3 Q&As covering “What does Bailey Engineering do?”, “Where does Bailey work?”, “How long has Bailey been in business?” — entity-defining, no Bailey-numbers risk. Drop the visible block above the talent-CTA section and let me wire the schema.

Lane C — five-item bundle for one Ryan sitting (~45 min total):

  1. bing-wmt (~5 min): Bing Webmaster Tools → “Import from Google Search Console” → confirm sitemap.
  2. gsc-alerts (~2 min): GSC → Settings → Email preferences → enable indexing/security/manual-actions/mobile alerts.
  3. rich-results-validate (~10 min): Paste 3 URLs into Google’s Rich Results Test (homepage + one /services/<family>/ + one /service-areas/<county>/<city>/), screenshot the clean runs.
  4. apple-business-connect (~10 min): Sign in with Apple ID, create the business profile using canonical NAP from src/data/site.ts.
  5. linkedin-company-fill (~15 min): LinkedIn admin → fill industry (Civil Engineering), founded year (2006), specialties, address, hours.

After Ryan completes any of these, ping me to update items.json and re-bump lastUpdated.

When to re-test

Per memory feedback_visibility_retest_cadence:

  • AI-visibility 10-query re-test — earliest 2026-06-01 (≥3 weeks after schema/content/AI.IQ deploys).
  • isitagentready.com baseline — earliest 2026-05-26 (≥3 weeks after agent-readiness deploys).

Earlier reads create false-negative anxiety; AI crawlers need ~2 weeks to surface new infrastructure.

What was deliberately NOT done

  • Re-running the 10 AI-visibility queries — kpiQueriesPassed remains at 2.
  • Running isitagentready.com — that’s the new isitagentready-baseline item, target 2026-05-26.
  • homepage-faq schema-only ship — Google now expects matching visible content.
  • person-schema — CLAUDE.md flags as queue-for-Ryan; not autonomous.
  • All Phase 3/4/5/7 items requiring copy, paid actions, or off-domain work.
  • Deploy step — items.json + schema changes ride on the next normal deploy.
Feedback