Replace guessed genre matrices with sourced Core 3 field map

Salon/bakery packs are application notes only; attributes blocked until live pull.
This commit is contained in:
porbot
2026-09-15 17:59:39 +00:00
parent e53c11d907
commit 9f455bc9bf
5 changed files with 81 additions and 80 deletions
+4 -3
View File
@@ -12,10 +12,11 @@
**Core 3 coverage rule:** **GBP** is richest; Apple Business Connect mid; Bing Places thinnest. Pack actions: set on GBP; mirror on Apple/Bing where the field exists.
## Deep example packs (planning-rev2)
## Sourced Core 3 map + deep examples (planning-rev2)
- [Salon](./genre-packs/salon.md) — parent/child × Core 3 field matrix w/ example entries
- [Bakery](./genre-packs/bakery.md) — same shape
- [Core 3 sourced field map](./genre-packs/core3-field-map.md) — **SoT for fields** (no guessing)
- [Salon](./genre-packs/salon.md) — genre application notes (illustrative only)
- [Bakery](./genre-packs/bakery.md) — same
## Earlier planned packs (from main / prior docs)
+24 -39
View File
@@ -1,56 +1,41 @@
# Genre pack — Bakery (deep example)
**Status:** working shell — **not locked**
**Vertical:** local retail / food — products & known-for more than “book a slot”
**Assumes Layer A** (Discovery foundation) already ranked or clean.
**Vertical:** local retail / food
**Evidence honesty (2026-09-15):** first matrices were SME/local-SEO practice + invented example businesses, **not** a live Core 3 schema dump. After Desk’s source check: Layer A fields are real across Core 3; dine-in/takeout/delivery and rich amenities are **GBP-strong** (Apple Good to Know partial; Bing thinner). “Homemade muffins” is **not** a Core-3 checkbox — description/photos/products + known-for.
**Schema SoT:** [core3-field-map.md](./core3-field-map.md) (sourced). This file is **genre application notes + illustrative examples only** — not a guessed schema.
**Core 3 rule:** set on **GBP** first; mirror on Apple / Bing where the field exists.
**Confidence:** `sourced` = field family confirmed in official docs; `placeholder example` = illustrative cell value only.
**Assumes Layer A** from the sourced Core 3 map is ranked or clean first.
---
## Field matrix — parent / child × Core 3
## How bakery uses the sourced Core 3 map
Example business (placeholder): **Whidbey Muffin Co.**
| Parent | Child | GBP | Apple Business Connect | Bing Places | Confidence | Why it matters |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| Identity | Name | Whidbey Muffin Co. | Whidbey Muffin Co. | Whidbey Muffin Co. | sourced field; placeholder example | NAP — foundation for all discovery |
| Identity | Address | 88 Harbor Rd, Coupeville, WA 98239 | same | same | sourced field; placeholder example | Place match; wrong pin = wrong local answers |
| Identity | Phone | (360) 555-0199 | same | same | sourced field; placeholder example | Reachability + validation path |
| Identity | Website | https://whidbeymuffins.example | same | same | sourced field; placeholder example | Menu/order proof when platform commerce fields are thin |
| Category | Primary | Bakery | Bakery | Bakery | sourced field; placeholder example | Drives attribute/service shapes and assistant expectations |
| Category | Secondary | Coffee shop *(if true)* | Cafe / Coffee *(if true)* | Cafe *(if true)* | sourced field; placeholder example | Only if true — wrong secondary confuses “what is this place?” |
| Hours | Weekly | Tue–Sun 7–3; Mon closed | same | same | sourced field; placeholder example | Bakeries live/die on early/weekend hours accuracy |
| Hours | Special *(rec)* | Thanksgiving: closed | same | same | sourced field family; placeholder example | Stops “open now” lies on holidays |
| Description | Short bio | “Sourdough & homemade muffins on Whidbey.” | same idea ≤ limit | same | sourced field; placeholder example | Primary carrier for known-for when no product checkbox exists |
| Service options | Dine-in / takeout / delivery | Dine-in: Yes; Takeout: Yes; Delivery: No | partial amenity / Good to Know | partial | **GBP-strong**; Apple/Bing partial | Matches how people ask (“can I get takeout?”) |
| Links | Menu / order URL | https://…/menu | URL / website | URL / website | sourced where URL/Actions exist; placeholder example | Bridges recommend → buy without full marketplace integration |
| Attributes | Amenities *(rec)* | Outdoor seating; Wi‑Fi; Kid-friendly *(verify per GBP category)* | Outdoor / Wi‑Fi if Good to Know offers | limited | not all universal — verify | Real ask filters; never invent |
| Products / proof | Known-for *(rec)* | Photos: muffins, sourdough *(not a checkbox)* | product/storefront photos | if supported | capability sourced; “muffin attribute” **not** a Core-3 field | Proof for AI readiness “would recommend for muffins” |
| Sourced child | Bakery note | Core 3 parity |
| :--- | :--- | :--- |
| Name / Address / Phone / Website | Must match (illustrative: Whidbey Muffin Co.) | Full |
| Primary + additional categories | Bakery; Coffee shop / Cafe **only if true** | Full |
| Regular / special hours | Early open + weekend accuracy; holiday closed | Full |
| Description / profile | Primary home for known-for (“sourdough & muffins”) — **not** a fake checkbox | GBP `profile`; Bing `Description`; Apple place-card copy |
| Service area | Storefront vs delivery-only must match reality | GBP `serviceArea`; Bing `ServiceAreas` / `HideAddress`; Apple SAB confirm in UI |
| Services list | Usually **not** the salon-shaped `serviceItems` story — prefer description + menu/order links + photos | Don’t invent Apple/Bing service arrays |
| Links / Actions | Menu / order URLs when they sell online | GBP actions/attrs if listed; Apple Actions; Bing `MenuURL` / `OrderURL` / related *(category-dependent)* |
| Attributes | dine-in / takeout / wifi / outdoor / etc. — **only after live attribute lists** | GBP `attributes.list`; Apple Good to Know; Bing `Attributes[]` |
| Photos | Product proof for known-for | GBP / Apple / Bing photos |
---
## Must vs recommended (summary)
## Illustrative ranked punch list (3–7)
**Must (beyond Layer A):** category; known-for in description; hours; service options; menu/order URL if online sales.
**High-value recommended:** verified amenities; product photos; special hours when seasonal.
1. Align NAP + website on Core 3
2. Set Bakery (+ Cafe only if true)
3. Lock weekly + special hours
4. Known-for sentence in description everywhere it exists
5. Menu/order URL via Actions / URL fields + website
6. Product photos on GBP/Apple
---
## Example ranked punch list (3–7)
## Blocked until evidence pull
1. Set category Bakery (+ Coffee shop if true) on Core 3
2. Put “sourdough & muffins” in short description everywhere
3. Confirm weekend / early-open hours on Core 3
4. Set dine-in + takeout on GBP; mirror where Apple/Bing allow
5. Add menu or order URL on GBP + website
6. Add 5 product photos on GBP
---
## Out of scope / next evidence pass
Per-category GBP attributes for Bakery (US); Apple Good to Know food amenities; Bing depth. MCP/endpoints out of scope here.
Amenity/attribute checkbox rows (takeout, outdoor seating, …) until GBP `attributes.list` for bakery `gcid` (US) + Apple Good to Know enums.
@@ -0,0 +1,30 @@
# Core 3 — sourced field map (Discovery foundation)
**Status:** working — **sourced**, not guessed
**Rule:** never invent platform fields. Attributes for a genre = only after live `attributes.list` (GBP) / Good to Know enums (Apple) for that category + country.
**Sources cited by SEO & AEO Desk (2026-09-15):**
- GBP Location API + Attributes API
- Apple Business Connect “Add a location” + Good to Know (support docs)
- Bing Places API documentation
Example values in genre packs are **illustrative only** — they are not schema claims.
| Parent | Child (API / UI name) | GBP | Apple Business Connect | Bing Places | Why it matters |
| :--- | :--- | :--- | :--- | :--- | :--- |
| Identity | Name | `title` | Display name | `BusinessName` | NAP consistency — assistants + Maps match on this |
| Identity | Address | `storefrontAddress` | Address + map pin | `AddressLine*` / City / State / Zip / Country | Same |
| Identity | Phone | `phoneNumbers` | Phone | `PhoneNumber` | Same |
| Identity | Website | `websiteUri` | Website (or social URL allowed) | `MainWebSite` | Reachable + verification path |
| Category | Primary | `categories` (primary) | Primary category (exactly one) | `PrimaryCategory` | Routes discovery queries |
| Category | Additional | additional categories | up to 19 optional | `BusinessCategories` (up to 10) | Secondary intent |
| Hours | Regular | `regularHours` | Normal hours | `OperatingHours` / `Open24Hours` | “Are you open?” — high AI failure mode |
| Hours | Special / holiday | `specialHours` | Special hours | `HolidayHours` | Same for peak days |
| Description | Profile / description | `profile` | *(not in add-location core; place card copy elsewhere)* | `Description` (rich attrs / listing) | “What you do” in plain language |
| Service area | Mode / areas | `serviceArea` | *(storefront vs SAB — confirm in Apple UI)* | `ServiceAreas` + `HideAddress` | Stops wrong “visit us” vs mobile |
| Services | Service list | `serviceItems` | **not on Location core** — use categories / Good to Know / Actions | **no generic services array** — category-specific | Salon P1 on GBP; don’t claim Apple/Bing parity |
| Attributes | Amenities / access | **dynamic** via `attributes.list` | **Good to Know** (amenities list) | `Attributes[]` rich attrs (category-dependent) + hotel-only `Amenities` | Genre-gated; **must pull live list** — never hardcode full schema |
| Links | Appointment / menu / order | Place Actions + attrs like `url_menu` *(if listed)* | **Actions** | `url_appointment`, `MenuURL`, `OrderURL`, `url_order_ahead` *(category-dependent)* | Conversion paths |
| Media | Photos | *(Photos API / UI — not Location JSON)* | Photos | `Photos[]` | Proof for known-for |
**Hard rule:** do not add salon/bakery attribute *rows* until GBP `attributes.list` for that `gcid` (US) and Apple Good to Know enums are pulled.
+22 -38
View File
@@ -2,55 +2,39 @@
**Status:** working shell — **not locked**
**Vertical:** appointment-based beauty / hair
**Assumes Layer A** (Discovery foundation) already ranked or clean.
**Evidence honesty (2026-09-15):** first matrices were SME/local-SEO practice + invented example businesses, **not** a live Core 3 schema dump. After Desk’s source check: Layer A identity/hours/category/website fields are real across Core 3; services are **GBP-strong**; rich attributes are **GBP + Apple “Good to Know”**, Bing thinner. Category-specific checkboxes (e.g. women-led) stay **unverified universal** until per-category attribute lists are pulled.
**Schema SoT:** [core3-field-map.md](./core3-field-map.md) (sourced). This file is **genre application notes + illustrative examples only** — not a guessed schema.
**Core 3 rule:** set on **GBP** first; mirror on Apple Business Connect / Bing Places where the field exists.
**Confidence:** `sourced` = field family confirmed in official product/API docs; `placeholder example` = illustrative cell value only.
**Assumes Layer A** from the sourced Core 3 map is ranked or clean first.
---
## Field matrix — parent / child × Core 3
## How salon uses the sourced Core 3 map
Example business (placeholder): **Maria's Hair Studio**.
| Parent | Child | GBP | Apple Business Connect | Bing Places | Confidence | Why it matters |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| Identity | Name | Maria's Hair Studio | Maria's Hair Studio | Maria's Hair Studio | sourced field; placeholder example | NAP identity — mismatches break discovery on all Core 3 |
| Identity | Address | 12 Main St, Cameron Park, CA 95682 | same | same | sourced field; placeholder example | Same — address is primary match key with name/phone |
| Identity | Phone | (530) 555-0142 | same | same | sourced field; placeholder example | Reachability + NAP consistency; OTP/validation often uses it |
| Identity | Website | https://mariashair.example | same | same | sourced field; placeholder example | Proof + deep links; booking/menu often live here when platform fields are thin |
| Category | Primary | Hair salon | Hair Salon | Hair Salon | sourced field; placeholder example | Controls which attribute/services shapes apply; wrong category = wrong recommendations |
| Category | Secondary | Nail salon; Beauty salon | Nail Salon (if offered) | Beauty Salon (if offered) | sourced field (limits differ); placeholder example | Helps “knows what you do” without stuffing unrelated primaries |
| Hours | Weekly | Mon–Sat 9–6; Sun closed | same | same | sourced field; placeholder example | Assistants and Maps refuse bad open/closed answers — foundation trust |
| Description | Short bio | “Cameron Park salon — cuts, color, curly specialists.” | same idea ≤ platform limit | same | sourced field; placeholder example | Carries known-for when attributes/services are thin on Apple/Bing |
| Services | Service items | Haircut; Color; Balayage; Blowout | *(thin)* fold into description | *(thin)* fold into description | **GBP-strong** (`serviceItems`); Apple/Bing weaker | Turns “hair salon” into actionable offer list — big jump on “knows what you do” |
| Links | Booking URL | https://book.squareup.com/… | Appointment / website URL | Website / URL field | sourced where Actions/URL fields exist; placeholder example | Converts recommend → book; often GBP + website first |
| Attributes | Accessibility | Wheelchair accessible entrance: Yes | Good to Know / accessibility if offered | if field exists | sourced family; availability varies | High-intent filter; only set if true |
| Attributes | Amenities *(rec)* | Wi‑Fi; Women-led *(GBP category-specific — verify)* | Good to Know if offered | limited | **not verified universal** — confirm per category/country | Helps filters/asks; fake checkboxes hurt trust — prefer description if unsure |
| Media | Photos *(rec)* | 5–10 real work photos | storefront + interior | if supported | sourced capability; placeholder guidance | Proof for specialties (bridal, curly) when checkboxes don’t exist |
| Sourced child | Salon note | Core 3 parity |
| :--- | :--- | :--- |
| Name / Address / Phone / Website | Must match everywhere (illustrative: Maria's Hair Studio) | Full |
| Primary + additional categories | e.g. Hair salon + Nail salon / Beauty salon *(illustrative labels — use each platform’s category picker)* | Full |
| Regular / special hours | Same | Full |
| Description / profile | Carry specialties (“curly specialists”, bridal) here when Apple/Bing lack services | GBP `profile`; Bing `Description`; Apple place-card copy (not add-location core) |
| `serviceItems` (GBP) | **Salon P1** — Haircut, Color, Balayage, Blowout *(illustrative)* | **GBP only** — no Apple/Bing services array on Location core |
| Links / Actions | Booking URL (Square/Mindbody/etc.) | GBP Place Actions + website; Apple **Actions**; Bing appointment/URL fields if category allows |
| Attributes | **Do not hardcode** (women-led, wifi, wheelchair, …) until `attributes.list` for salon `gcid` + US | GBP dynamic; Apple Good to Know; Bing category-dependent |
| Photos | Real work photos *(illustrative guidance)* | GBP Photos UI/API; Apple Photos; Bing `Photos[]` |
---
## Must vs recommended (summary)
## Illustrative ranked punch list (3–7)
**Must (beyond Layer A):** primary + secondaries; services list (GBP); booking URL; accessibility where true.
**High-value recommended:** verified amenities; known-for in description/photos/services; real work photos.
1. Align NAP + website on Core 3
2. Set primary category Hair salon (+ real secondaries)
3. Add GBP `serviceItems` (top services)
4. Add booking Action / URL on GBP + Apple Actions + website
5. Put known-for specialties in description
6. Photos on GBP/Apple
---
## Example ranked punch list (3–7)
## Blocked until evidence pull
1. Fix primary category (Hair salon) on Core 3
2. Add booking link on GBP + website
3. List top 4 services on GBP
4. Add “curly specialists” to description (known-for)
5. Upload 5 real work photos on GBP
6. Mirror hours + booking URL on Apple Business Connect
---
## Out of scope / next evidence pass
Live pull of GBP `attributes.list` for Hair salon (US); Apple Good to Know enum; Bing amenity matrix. MCP/endpoints out of scope here.
Any amenity/attribute checkbox rows for salon. Next: GBP `attributes.list` for hair salon (US) + Apple Good to Know enums.
+1
View File
@@ -183,6 +183,7 @@ If something here conflicts with `CANONICAL_STRATEGY.md`, resolve on purpose in
| 2026-09-15 | Essence: Layer A/B/C surfacing; deep pack shells for salon + bakery under docs/product/genre-packs/ |
| 2026-09-15 | Salon + bakery packs: parent/child × Core 3 example field matrices checked in |
| 2026-09-15 | Pack matrices: added Why it matters + sourced vs placeholder honesty after Desk Core 3 source check |
| 2026-09-15 | Replaced guessed genre matrices with sourced Core 3 field map (core3-field-map.md); salon/bakery = application notes only |
---