Corrected Aldo Muro spelling; added Rob Matousek to team roster
Fixed the Murro→Muro surname misspelling (with a redirect from the old bio URL) and added Rob Matousek as Project Engineer, EIT, per the 0017 ask.
Every change to this website is documented here — who made it, when, and why. Human or bot, the work is visible.
Fixed the Murro→Muro surname misspelling (with a redirect from the old bio URL) and added Rob Matousek as Project Engineer, EIT, per the 0017 ask.
Built and shipped the Kindi Moosman land-use-planner addition (from the 2026-07-08 branch) to production, verified live pages and cross-links return 200 with content.
Added new hire Kindi Moosman to the team roster with headshot, and built a Land Use Intelligence welcome article — local build only, pending Shane/Kelli approval before deploy.
Replaced James Mazzagotte III's bio with Ryan's supplied copy verbatim (three paragraphs) and deployed to production.
Removed Zack Reese from the team roster and all live schema/links, and added a Bailey-tone Landscape Architect (PLA) job posting to /careers/ adapted from the source posting at kmengineering.bamboohr.com/careers/25.
Added Storyrock — a 321-home South Meridian community where Bailey is engineer of record — as the featured lead project and a full research article in Land Use Intelligence, built via subagent-driven development and gated on Ryan's fact sign-off before deploy.
Applied two reviewer-flagged fixes to the Storyrock Land Use Intelligence article: removed over-claimed ZIG byline credit, and expanded two thin body sections to bring the article to its labeled read time.
Published a Dev.IQ Land Use Intelligence article on the June 16, 2026 Meridian City Council remand of the Syringa Crossing mixed-use project, framing the remand as a fixable four-item punch list rather than a denial.
Reordered Beema to sit beside Ryan Benson, retitled her Lead Engineer (PE) to match LinkedIn, added her bio closer, and wrote a researched Land Use Intelligence article on what her ASCE Region 8 governorship means for developers.
Added two new team members — Beema Dahal (PE) with headshot and a website-tone bio, and Fardin Walizay (Engineering Technician, placeholder bio) — to the About roster.
Built a self-contained SVG 'ASCE Region 8 Governor' graphic for the Beema feature (article hero + index card), fixed the Article-schema author to match the byline, and added the article to llms.txt and the search fallback.
Deployed the full day's work to baileyengineers.com (new team members, verified licensure pillar, Beema's Region 8 feature + OG), and moved Beema to the right of Jonah on the About page.
Added verified Idaho license numbers for the firm's PEs to the bio pages and Person JSON-LD as a new authority pillar — and corrected Zack Reese from PE to Engineer Intern (EI) after roster verification.
Reviewed the site-quality backlog before release, fixed low-risk technical warnings, restored a missing client memo hub route, and separated release blockers from strategic content work.
Reformatted the feasibility studies service page into the same article-style FAQ layout used by Dev.IQ pages.
Added a dedicated parcel analysis service page and wired it into civil engineering, services, and search navigation.
Aligned service-page process wording with the current 10-phase process so Bailey is framed as engineer of record, observer, coordinator, and record-drawing support, not as contractor, builder, or vertical-development party.
Reformatted the parcel analysis service page in the Dev.IQ article style with Kelli Black as author and added a FAQ article comparing parcel analysis with feasibility studies.
Fixed the unstyled process scope note Ryan flagged, added a reusable static site-quality audit, and browser-tested the service/FAQ catalog routes for continuity.
Added a shared service/FAQ catalog, expanded the FAQ hub to include every Services page link, added sort controls, and updated service cards, search, sitemap-adjacent markdown, and AI-readable indexes.
Site-wide refactor from a 9-phase to a 10-phase land development process: split the bloated 'Entitlements' phase into Planning/Entitlements (Phase 3) and Preliminary Plat (Phase 4), renamed CDS, renumbered downstream phases, and propagated the change across 60+ files including the Zod schema source of truth.
Drafted a plan to split the bloated Phase 3 (Entitlements) and fix the CDS/CDs abbreviation collision, plus a textbook-grounded fact-check of Shane and Kelli's meeting notes.
Swapped the AI.IQ index cards from gradient placeholders to real heros (found_by_ai.png, stay_current_with_ai_person.png) and added 8 land-developer-targeted backlog items to items.json under Phase 3 + Phase 4.
Eight items.json evidence URLs swapped from descriptive sentences to live verifiable URLs (sitemap, GSC, Bing WMT, Rich Results Test, Schema.org Validator, /about/). City-pillars split into 6 per-city items (Meridian/Boise/Nampa done, Eagle in_progress, Caldwell/Star pending). Codex foundation work captured in learn-keystone-wat. staying-current-with-ai restructured to mirror rs4-nampa's article-header pattern with byline portrait + moonshots.botgui.de CTA card. Eagle cap teaser placeholder trimmed to fit on one line.
Added a new Phase 6 (Measurement) item recording the GA4 ↔ Search Console integration, marked done as of 2026-05-13.
Replaced projects3.png with services4.png as the hero on /dev-iq/land-use-intelligence/ per Ryan's request.
Fixed the moonshots.botgui.de CTA card on /dev-iq/ai-iq/staying-current-with-ai/ — body paragraph and disclosure text were rendering as charcoal on charcoal because .article p was tying on specificity with .moonshots-cta p and winning on source order.
Ryan Benson's profile bio in team.ts updated to clarify his dual founder + Head of Intelligence Engineering roles, weaving in the embedded-deployment philosophy ('you build better tools when you're on the hook for using them every day') that shapes both his ownership of ZIG/Project Tracker and Bailey's usage of those platforms.
Replaced the jump-creek.webp placeholder on the RS4-Nampa article card with a Nampa-specific aerial, closing the TODO that was on the index since launch.
Removed the 'Disclosure: I built moonshots.botgui.de…' paragraph from the CTA card on /dev-iq/ai-iq/staying-current-with-ai/ and cleaned up the orphaned .disclosure CSS rule.
9 items in items.json had descriptive prose stuffed into the evidence field; the scoreboard template was wrapping those in <a href> and producing 404 clicks. Split into evidence (URL only) + note (prose), migrated all 9 items, and added the working isitagentready.com permalink to both isitagentready items.
Two batches of roadmap closeouts in one day: (1) Bing WMT, Person JSON-LD on 7 about pages, homepage FAQ + FAQPage schema, lastTestRun field on scoreboard; (2) Apple Business Connect + Bing Places done, isitagentready.com baseline at 83 / Level 5 (max without MCP), review-push moved to in-progress (2.0→3.5★), scope trimmed (nap-yelp, bbb-accreditation, angi-listing, boisedev, podcast-circuit, reddit-presence removed).
Closed out the CLAUDE.md URL references from the AI.IQ section move (two lines, not one), and added Article 2 prose, .tmp/seo URL sweep, and the ai-workflow contact-topic decision to BACKLOG.md.
Added Bing msvalidate.01 meta tag to BaseLayout so site verification ships on every page; built and deployed to production.
Promoted the standalone 'How we're getting found by AI' page into the first article of a new /dev-iq/ai-iq/ section. Old /dev-iq/seo-plan/ URL 301s to the new path. Added a stub for a second article (staying-current-with-ai) that Ryan will fill in next.
Shipped Article 1 of a planned 4-article Eagle land-use-intelligence series. Extended BaseLayout to auto-emit Article JSON-LD on /dev-iq/land-use-intelligence/<slug>/ URLs, drafted Eagle's cap-compliance pattern article generalized from the Nephi Lane internal evaluation, added reciprocal cross-link from the Boise service-area commissioner cluster, and updated the LUI section index and curated /search/ sitemap.
Copied the working directory from prototype.baileyengineers.com\ to baileyengineers.com\ as the new canonical location. Old dir preserved as backup. Claude auto-memory carried over to the new project key.
Follow-up to today's earlier SEO scoreboard reconcile. Marked 3 of 5 lane-C quick wins done (gsc-alerts, rich-results-validate, linkedin-company-fill — Ryan completed). Refreshed /llms.txt with the AI.IQ section, eagle-cap-compliance article, and agent-readiness endpoints (the prior version still pointed at the dead /dev-iq/seo-plan/ URL). Added @id refs to all 6 homepage employee Person entries so future Person pages inherit linkage. Backlogged bing-wmt for Ryan; reassigned apple-business-connect to Shane with a hand-off doc.
Updated /dev-iq/ai-iq/getting-found-by-ai/ to reflect work shipped 2026-05-05 (agent readiness) and 2026-05-07/11 (rich-results enrichment, LUI Article schema). Added Phase 8 — Agent Readiness with 10 items (8 done, 2 pending isitagentready.com runs). Marked service-schema as done. Shipped HowTo schema on /dev-iq/our-process/ and wired @id references across homepage WebSite + ProfessionalService, BaseLayout's providerNode + auto-emitted Service + Article schemas, and the AI.IQ scoreboard Article. Scoreboard now reads 41 of 70 items complete (was 28 of 60). homepage-faq deferred to Ryan.
Replaced the stub at /dev-iq/ai-iq/staying-current-with-ai/ with the full article body — 9 sections, ~1,200 words, structured per PLAN.md §6 using ask.md as Ryan's draft spine. Voice preserved; no opinions invented.
Added telephone, priceRange, address, image, and logo to the nested ProfessionalService provider node that BaseLayout auto-emits on /services/* and /service-areas/<county>/<city>/ pages, fixing the four Google Rich Results Test 'missing optional field' warnings.
Verified the baileyengineers.com domain in Google Search Console, submitted sitemap-index.xml, and refreshed Google Business Profile categories, services, and product entries to align with the SEO/AI visibility plan.
Removes Darrell Shaver from the team roster per Ryan's request. Deletes the entry from src/data/team.ts (the single source of truth that feeds both /about/ and /about/[slug]/), rebuilds, deploys, and removes the stale /var/www/baileyengineers.com/about/darrell-shaver/ directory from production. /about/darrell-shaver/ now returns 404.
Adds Accept-header content negotiation so requests with Accept: text/markdown receive the markdown twin (with Content-Type: text/markdown; charset=utf-8) while browsers continue to receive HTML. Implemented at nginx via two http-context map blocks + a server-level Vary: Accept + an internal rewrite in location /. Covers the 5 hand-curated twin paths (/, /about/, /services/, /service-areas/, /contact/); other paths fall through to HTML truthfully.
Implements the conservative slice of .tmp/0003_26_05_05_agents/ask-revised.md — Content-Signal in robots.txt aligned with the AI-visibility strategy, four /.well-known/agent-skills/ documents plus index.json (with a self-described JSON Schema), markdown twins for five major landing pages with a rel=alternate link in BaseLayout, and a unified nginx diff prepared but NOT applied (awaiting Ryan approval). Defers api-catalog, OAuth/OIDC metadata, MCP card, and WebMCP — none of those have a real backing service.
Publishes minimal-valid metadata stubs at the spec-mandated /.well-known/ paths for OAuth 2.0 AS, OpenID Connect, OAuth Protected Resource, and MCP Server Card — each with empty *_supported arrays and an explicit $comment / description disclosing that Bailey does not operate the corresponding service. Adds a single human-readable agent-services-status.md that all four stubs link to. Nginx config gets one new regex location block to serve the three no-extension paths as application/json. WebMCP intentionally not stubbed (no file format; would require client-side JS, which violates the project's no-JS posture).
Executes the seven-item backlog at .tmp/0002_26_05_04_backlog/plan.md — adds Zack Reese's portrait, hides the filled bookkeeper role, removes the surveyor-stat card, removes the label legend, ships a Teaser/TeaserBlock redaction system across the four intelligence pages (Boise, Meridian, Nampa, RS4 Nampa article), wires a new city-intelligence contact-form topic, and documents Cloudflare AI Crawl Control monitoring with a do-not-enable flag for Managed robots.txt.
Re-platformed the codeclau.de eagle-cody-memo Phase 1 findings + 3 sub-pages (Whitehurst, Watermark, FLUM consistency) into Bailey design tokens at /clients/eagle-cody-memo/. HTTP Basic Auth on /clients/* via .htaccess; noindex on every page; excluded from sitemap and Pagefind. Hero PNGs converted to responsive webp (1.5-2.5 MB sources -> 14-47 KB at smallest variant).
Added david.png to team assets and wired into portraitImages on /about/ and /about/{slug}/. Replaced Zack Reese's bio with a longer three-paragraph version covering education (Iowa State BSE), water resources background, Treasure Valley work, and personal.
Added jonah.png to team assets and wired it into the portraitImages map on /about/ and /about/{slug}/ so Jonah's bio + grid card now render his real headshot instead of falling back to JD initials.
Apache now serves Astro's /404.html on unknown URLs (was rendering server default). 404 page gained a Site Map button. /dev-iq/faqs/ filter pills now actually filter. /about/ swapped to bailey2.png; /services/ reverted to services2.png.
Published a bundled cost FAQ covering all five service families, extended the FAQ collection schema to support FAQPage JSON-LD, and added Article + (conditional) FAQPage schema emission across every Dev.IQ FAQ article.
Bundled the audit § 6 title rewrites with the SSOT duplicate cleanup. All 11 Dev.IQ FAQ titles now lead with the question users actually ask, and the schema/body drift the validator flagged is structurally impossible going forward.
Added a canonical Frequently-asked-questions <dl> block to FaqArticle.astro that renders from data.faq — the same source the FAQPage JSON-LD already uses. One edit to frontmatter now updates both the visible HTML and the structured data. Closes the schema-validator gap on all 11 faq-bearing FAQ articles.
Lifted the existing 'Common questions' sections in 10 collection FAQ articles into frontmatter faq[] arrays, advancing all of them to rich-result eligibility. Closes faqpage-articles → done.
Re-encoded the user's updated dirt2doors.mp4 (38 MB raw -> 5.3 MB H.264 720p, no audio). Swapped /dev-iq/faqs/ hero from projects3.png to a dedicated faqs.png. Confirmed /about/ and /services/ heroes already match the requested values.
Published the llms.txt template at site root and corrected Phase 1 Foundation completion dates in items.json — the schema was coded earlier but only went live on 2026-04-26 when the new website launched.
Renamed the shared hero video to /videos/dirt2doors.mp4, added it as the /dev-iq/our-process/ hero, and inserted a process-callout strip between the /services/ hero and the services-stack so viewers of the dirt-to-doors video have an obvious path to the 9-phase explainer.
Added 4 search-engine submission items to Phase 1 (GSC verify+sitemap, Bing import, Rich Results validation, GSC alerts) and inserted a new Phase 5 -- Local business presence -- with 8 NAP-listing items (Google Business Profile, Apple Business Connect, Bing Places, LinkedIn fill-in, BBB, Angi, ACEC ID, Idaho SPE). Existing phases renumbered.
Installed the 1-year SEO/AI-visibility handoff: CLAUDE.md guidance, items.json source-of-truth, public /dev-iq/seo-plan/ progress page, and FAQPage schema on the FAQ hub as the first P0 win.
Cleared all warnings from the post-deploy schema validation pass: rendered visible Q&As to mirror FAQPage schema on the FAQ hub and SEO Plan, added image to every Article schema, and added the missing name to the homepage WebSite schema.
Replaced /services/ hero image with a self-hosted muted-autoplay video that plays through 3 times then settles on its last frame. Re-encoded 36 MB source -> 5.4 MB H.264 720p, audio stripped. PageHero extended with optional video variant; image still drives the LCP poster.
Built three full job description pages mirroring the Professional Engineer template. Removed corresponding stubs from the dynamic fallback. All career-page comp values normalized to 'Competitive + bonus' (no specific salary figures).
Standardized all 5 career sub-pages: Apply buttons use blue outline, Schedule-call buttons hover to blue outline, every page closes with a shared Your Growth Path section, and PE page comp dropped from specific salary range to 'Competitive + bonus'. Bookkeeper / Office Manager page built from scratch (source HTML was a redirect).
Deleted the staging Disallow-all robots.txt and renamed robots.production.txt -> robots.txt. Single source of truth now ships to production by default.
Extended PageHero with optional image (mirrors homepage hero side-by-side layout). Wired 7 hero PNGs to 25 pages via Astro's responsive image pipeline (webp, 400/600/800 widths, eager + fetchpriority high). Updated phone format on contact card to (208) 938-0013 to match canonical NAP.
Switched BaseLayout to scope Pagefind indexing via data-pagefind-body on non-log pages only — log entries no longer surface in search, and header/footer noise is excluded site-wide as a bonus.
Added a 5th contact-form variant for site feedback. Listed in the topic dropdown and reachable via /contact/?topic=feedback. Posts to careers@ via Web3Forms; collects name, email, phone, doing-well, and improve.
Floating Feedback button no longer hides on phones — collapses to an icon-only circle. Added a 2px precision-blue outline so the button is visible against the dark footer at the bottom of every page.
Replaced single og-default.png with three OG variants — 1200x630 landscape, 1200x1200 square, 600x315 small — emitted as repeated og:image tags so every social platform picks the right size for its card.
GA4 wired into BaseLayout with hostname guard (production-only). Auto-tracked CTA clicks, outbound links, contact submits. Floating Feedback button site-wide. Privacy page rewritten to disclose GA4.
Swapped the homepage hero from a fixed 800x533 source to Astro responsive widths={[400,600,800]} with sizes hint - browser now fetches a 20KB variant instead of an 88KB oversized source.
Bumped --color-precision-blue from #488CBA (3.69:1 on white, fails WCAG AA) to #366E94 (~5.4:1, passes AA). Moved Pagefind CSS from eager <link> in Header to dynamic load on search-open.
Stripped user-facing 'prototype' references from About, RS4 Nampa article, StubBlock component, and Careers fallback; deleted home-test scratch page.
Swapped Unicode box-drawing characters and em-dashes in robots.production.txt for plain ASCII (---/-) so the file renders cleanly on any server config or text editor.
Added a filter to @astrojs/sitemap so dev log entries and the home-test scratch page are excluded from sitemap-0.xml — preventing Google from indexing internal changelog and unfinished test routes.
Bulk-swept all remaining text-on-light precision-blue usages to the AA-compliant precision-blue-text token across services, dev-iq, projects, county hubs, service-area cities, and mixed components — preserving brand-spec precision-blue for borders and dark-bg text.
Earlier global precision-blue darkening fixed text-on-light contrast but broke 6+ text-on-dark elements (footer, dark CTA eyebrows). Reverted to brand spec; added precision-blue-text variant for light-bg use only; added section-dark eyebrow override; darkened slate; per-badge fixes.
Wired real headshots for Shane Leavitt, Kelli Black, and Ryan Benson on /about/ team grid and individual bio pages. Updated Kelli and Ryan's LinkedIn URLs to their canonical profiles. Other team members continue to render the initials placeholder until photos arrive.
Removed David Bailey from the Leadership list (he remains on staff per the founding-story prose). Replaced the 8-row partners table with the full 99-entry landproDATA network, with the first 8 visible by default and the rest behind a native <details> expand.
Five-in-one: unified careers roles (Competitive + bonus / Get in touch →), removed 4 fake testimonials, fixed .btn-primary invisible-on-hover bug (now soft-white + black text), completed /search/ sitemap, and added CLAUDE.md convention for future page additions.
Added timeZone: 'UTC' to the date formatter on the /log/ index and detail pages so rendered dates match the frontmatter instead of being shifted by the build machine's local timezone offset.
Per Ryan: combined the two Baron Properties rows (24 + 10 events) into one entry at 34 events, removed John Laude / Kevin Amar / Individual Well(s) entirely, and dropped the Individual type from the union since it no longer has any users.
Split the pillar page network's Planning bucket into Planning, Engineering (3 firms), and Architecture (3 firms incl. landscape) so co-consultant disciplines read distinctly on the partner table.
Two cutover-prep changes: pointed the /accessibility/ contact line at a new accessibility@ alias, and shipped public/.htaccess with 301 redirects for all 26 legacy production URLs so SEO link equity survives the launch.
Mirrored the 8-card 'The work, in numbers' section from /about/bailey/ onto the bottom of /projects/, and converted the standalone coverage paragraph into a dark-CTA block above the footer linking to /service-areas/.
Rewrote Ryan's bio to lead with platform ownership (ZIG, Project Tracker, AEC intelligence-layer suite, Bailey as anchor tenant). Expanded Kelli's bio with the systems she builds. Swapped Ryan's headshot to ryan-black.png.
Production-readiness pass: real WestBilt image on hero+card, default site-wide OG image (1200x630), title+meta-description budget enforcement, BreadcrumbList on all pages, Service schema on all service+city pages.
Replaced placeholder TODO blocks on 11 stub city pages with production-ready city-specific intros, verified P&Z contacts, comp plan citations, and engineering considerations. Blaine (4), Owyhee (3 incl. Murphy variant), Elmore (2), Boise County (2).
Updated Shane Leavitt's title from 'CEO' to 'Chief Executive Officer' and Kelli Black's from 'COO' to 'Chief Operating Officer' in src/data/team.ts to match their LinkedIn profile titles and the existing wording on the /about/bailey/ leadership list.
Added two substantial backlog items under Content depth: a pillar page visual redesign (timeline + service area visual) and a city-by-city YouTube channel integration sourced from the 2026-04-22 service-areas-youtube report.
Refined the City page content audit backlog item with per-county breakdown and Murphy special-case framing, and split out city-resources.ts wiring into its own infrastructure item that the original entry quietly assumed was already done.
Added a per-city Meeting Archives section to all 25 service-area city pages, linking visitors to the most official available source for watching or reading City Council meetings. Uniform card treatment across video, audio, and minutes-only tiers.
Added the missing .btn-on-dark-secondary CSS rule so 'See our work' on /about/bailey/ and 'Join IQ.Meet' on the homepage now have visible edges. Added verify-build.sh Check 18 to catch undefined btn-* variants.
Replaced six project aerials with refreshed versions, converting PNG → WebP @ q80 and updating every import across 5 consumer files. Source directory dropped from ~25.5 MB to ~955 KB; all six pass the 400 KB source-side hard ceiling.
Scrubbed two competitor-comparison sentences from /services/civil-engineering/, removed two filler sentences from /projects/, and added an inline gloss for 'dais' on the Meridian service-area page.
Dropped phase 6 (Construction) from every project and tightened the Zod schema to reject it — Bailey is the engineer of record, not the GC, so phase 6 should never be marked delivered.
Added a 2px white ring around the primary Start a project button in the /home-test/ hero so it stays visible against the dark image backdrop.
Added /home-test/ — a home-page variant whose hero mirrors the Swainson's Hawk Arbor project hero pattern (full-bleed background image + dark gradient + overlaid content) using the Idaho hero image.
Tightened the projects collection Zod schema so phase 2 (Parcel Analysis / Diligence) and phase 9 (Vertical Development / Sale) are rejected at build time — Bailey never performs either.
Removed phase 9 (Vertical Development / Sale) from jump-creek.md — Bailey does not perform vertical construction and that phase should never have been marked delivered.
Added 'Read our story' CTA on /about/ team page pointing to pillar page. Moved company LinkedIn from /about/ hero to /about/bailey/. Fixed outdated '14 cities' copy on about page.
Redesigned homepage 'Where we work' with 6 county cards + 'Read our story' CTA. LUI cards now use Bailey aerials with ZIG footer credit. Fixed nested-anchor HTML bug and title suffix duplication.
Corrected a persistent miscount of cities across the 6-county service area — actual count is 25 (6+8+3+2+4+2), not 24.
Live-validated all 115 URLs in city-resources.ts. 101 healthy, 12 broken (404), 2 dead (500/DNS). Applied HTTPS upgrades, resolved redirect chains, flagged broken entries with status fields.
Added /about/bailey/ — the authoritative firm page showcasing Bailey's 20-year history, verified landproDATA-sourced stats, and agency relationships. Homepage CTA section added pointing to this page.
Removed all user-facing mentions of landproDATA (a paid vendor). Simplified Blaine County language on the pillar page. Added verify-build check for landproDATA leakage.
Added src/scripts/verify-build.sh for repeatable, token-efficient structural verification of the build before deploy. 14 checks covering schema, HTML validity, copy consistency, SEO, and content accuracy.
Curated 115 city and county resource URLs from landproDATA.com/resources/ into src/data/city-resources.ts. Scoped to Bailey's 6 counties and 24 cities.
Added ProfessionalService schema with founder, employee, geo, credential fields. Created bailey-stats.ts data file. Homepage stats strip and schema description now pull from data file for quarterly auto-refresh.
Moved 9 existing city pages from flat service-areas/city.astro to nested service-areas/county/city/index.astro structure, extracted 5 small Canyon County cities into individual pages, and updated all imports and breadcrumbs.
Created index.astro hub pages for all 6 counties with city grids, intro text, and CTA bands.
Seven-task build: Pagefind search, project imagery pipeline, CD audit, service area expansion (6 counties / 24 cities), 14 team bios, process image optimization, and community event cleanup.
Imported and placed the CountyStatsBlock component on all 6 county hub pages, between PageHero and the city grid section.
Standardized Treasure Valley geographic references across 20 service pages — meta descriptions now read 'Southern Idaho's Treasure Valley' and CTA headlines use 'Southern Idaho', while body text geographic references remain unchanged.
Created 10 placeholder city pages for Owyhee, Elmore, Blaine, and Boise counties plus the other-cities-and-counties catch-all page.
Added a devlog content collection, listing page at /log/, and CLAUDE.md rules requiring all bots and humans to log their work.
Replaced placeholder projects with 6 real Bailey Engineering projects as an Astro content collection, added dynamic detail pages with process phase badges, intelligence callouts, testimonials, JSON-LD structured data, and Dirt to Doors video component.
Planned the migration of 6 real projects from baileyengineers.com, Dirt to Doors video creation workflow using real satellite imagery, and a full positioning gap analysis with 8 items to address.