# Leonard Execution Card — GBP Snapshot Ingest **Goal:** Map a filled GBP Snapshot Intake into client docs with minimal reasoning. **Governing docs:** - `docs/agents/agent-charter-v1.md` - `docs/agents/audit-playbook-v1.md` - `docs/templates/gbp-snapshot-intake.md` --- ## Input required A completed `gbp-snapshot-intake.md` for the client. If any required metadata is missing (client name, snapshot date, source), stop and report `BLOCKED: incomplete intake`. --- ## Step 1 — Update Data Inventory GBP row only Open: `docs/clients//data-inventory-v1.md` Update **only** the Google Business Profile (GBP) section using these mappings: | Intake field | Inventory field | |--------------|-----------------| | Source | Access Status / Notes | | Snapshot date | Snapshot Date | | Business name shown | Notes | | Address shown | Notes | | Phone shown | Notes | | Website shown | Notes | | Star rating | Notes | | Review count | Notes | | Claimed / Own this business | Notes | | Hours listed + hours text | Notes | | Booking button present | Notes | | Photos / posts / Q&A | Notes | | Second related listing | Notes / Gaps | Rules: - Write factual values only - Blank intake field → `Not observed` - Verification Tier: - Owner dashboard / owner-confirmed → Tier 1 - Human Maps eye or Places API → Tier 2 - Do not rewrite other sources unless the intake explicitly names them --- ## Step 2 — Threat Trigger Rules (boolean only) Apply **only** these rules. No new creative threats. | Rule ID | Condition | Action | |---------|-----------|--------| | R1 | Booking button present = No | Ensure a threat exists for missing public booking on GBP/website surfaces. If missing, add a Tier 2 Major threat with evidence from intake. If exists, update Data Recency + Evidence Snippet only. | | R2 | Claimed / Own this business = No or Unknown AND rating/reviews thin or Not observed | Ensure a threat exists for weak/unclear GBP completeness. Update evidence/recency only if exists. | | R3 | Second related listing nearby = Yes | Ensure a Minor Tier 2 threat exists for related/duplicate listing risk. Update evidence only. | | R4 | Star rating and review count both observed | Do **not** create a new threat from rating alone. Only update inventory. | | R5 | Any field Not observed | Do not invent a threat from absence of observation alone unless R1–R3 fire. | If no rule fires, leave Threat Register unchanged except optional recency note on existing GBP-related threats. --- ## Step 3 — Output format Return: 1. Updated GBP inventory section (or full inventory if required by tooling) 2. Threat Register changes only if a rule fired 3. `Changes Made` list (bullet facts only) 4. `Rules Fired:` list (R1/R2/R3/none) Forbidden: - Severity upgrades beyond template defaults without human request - Solution language - Competitor claims - New threats outside R1–R3 --- ## Pass criteria - Every written value traces to the intake - No extra narrative analysis - Tier labels correct - Only trigger rules created/updated threats **If uncertain:** leave field as `Not observed` and do not fire a rule.