dogwood health health.dogwood.house · what we're watching

What's working, what's next.

Editorial + operational health surface for dogwood.house — service-business shape (CF Worker API + KV/R2/D1 backend, plus static site). Per user_reports_umbrella_until_concurrent_sites, building this unparks the two-sites-concurrent milestone.

Today's read

2026-05-18 · project-wrangler · dogwood voice canon pending

dogwood is small + clean: 20 static HTML pages across the repo (index + beta + legal + staff sub-sites). Search Console shows just 4 not-indexed (3 redirects + 1 404 — all intentional / fixable). The operational backend (CF Worker API · KV + R2 + D1) carries the dog-checkin flow; that's where the meaningful health-watching lives once instrumented. Next: build the daily-hygiene tripwires (port from dare's stack) + worker-side observability cards.

What's in the repo

20 HTML page(s) across 4 sub-site(s)

Local walk of ~/Code/dogwood-house — every static page that's deploy-bound to dogwood.house or its sub-domains. Operational API surface (worker.js · id.dogwood.house) is separate and gets its own health card once instrumented.

sub-sitepagessample
beta/8board.html, bookings.html, contact.html
legal/8board.html, bookings.html, contact.html
staff/3analytics.html, index.html, universe.html
(root)/1index.html

GSC indexing snapshot

2026-05-18 · manual · 4 not-indexed

Search Console's "Why pages aren't indexed" — dogwood's surface is small enough that the not-indexed list is operational drift rather than quality signal. 3 redirects + 1 404 = all addressable in a single sweep.

reasonpagessource
Page with redirect3website
Not found (404)1website

Worker observability

pending · instrumentation needed

Daily check-in volume · OTP request rate · auth success rate · photo upload reliability · API error budget. Lives in worker.js via CF Analytics Engine writes. Service-business-specific cards — the operational signals that matter for "is the boarding service running smoothly." None of dare's tripwires touch this layer.

Daily-hygiene tripwires

pending · port from dare's stack

Port: 404 audit · sitemap validate · JSON-LD presence · SEO title · content breadth · body-image coverage · canonical header. 6 of 8 lift cleanly; JSON-LD adapts to dogwood's Service / LocalBusiness schema (different from dare's Article). Per project_dogwood_agent_stack_built_2026-05-15, the agent stack already encodes the right schemas — the audit just reads them.

Editorial pipeline (5 content rings)

pending · service-business editorial

Per project_dogwood_service_strategy, dogwood's editorial sits on five rings: place (the country home), mechanics (boarding ops, capability declarations), member-dog journal (the trust-builder), trust/craft (verified reviews + LocalBusiness JSON-LD), service-area pages (NYC / Brooklyn / Greenwich / Hamptons pick-up coverage). Each ring gets its own coverage card here when content begins shipping.

Voice register

pending · canon curation

dogwood's voice canon is parked (per feedback_brand_voice_seven_dimensions). Working hypothesis: British-Brooklyn warmth + ease · hospitable member-club intimacy · welcoming insider-feel. Until the seven-row table is curated, drafts default to neutral PM register.