Files
veripath/docs/agents/leonard-gbp-execution-card.md

4.0 KiB
Raw Permalink Blame History

Leonard Execution Card — GBP Snapshot Ingest v1.2

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 (v1.2+)

Input required

A completed gbp-snapshot-intake (or form output) for the client.

If required metadata missing (client name, snapshot datetime, source, observation surface), stop and report BLOCKED: incomplete intake.


Step 1 — Update Data Inventory GBP row only

Open: docs/clients/<client>/data-inventory-v1.md

Map intake → GBP section. Rules:

  • Factual values only
  • Blank → NOT_OBSERVED
  • Confirmed absent after looking → NOT_PRESENT
  • PLACE_ID: if MAPS_URL present and PLACE_ID empty → compute from URL (/g/..., 0x...:0x...); never leave blank when derivable
  • Secondary !5s / related feature IDs → note as related-listing lead (not conclusion)
  • PRIMARY_CATEGORY: must be single canonical value; multi-token free text → write INVALID_CAPTURE + raw string; do not invent primary
  • CLAIMED_STATUS inference (allowed, named signals only):
    • If claim prompt NOT_PRESENT/No and review responses Yes → may write Likely Claimed — inferred + list signals
    • Do not write Tier 1 Claimed without owner/dashboard source
  • Verification Tier: owner dashboard → 1; human Maps / API → 2
  • Snapshot datetime from intake (require TZ when open-now is set)
  • Do not rewrite non-GBP sources unless intake names them

Step 2 — Threat Trigger Rules (boolean only)

Apply only these rules. No creative threats.

Rule ID Version Condition Action
R1 1.2 BOOKING_BUTTON_PRESENT_ON_GBP = No and action-button row completeness OK (messaging observed or explicitly NOT_OBSERVED as incomplete) Ensure threat for missing public booking on GBP. Prefer title form: missing GBP booking button. If siblings null, emit reduced confidence note in evidence. Update evidence/recency if exists; else create. verification_tier: 2; severity: major (provisional).
R2 1.2 (Claimed = No OR Unknown) AND (reviews thin OR NOT_OBSERVED) Ensure threat for thin/unclear GBP completeness. Prefer enumerated deficits in evidence (posts, services, photos, Q&A, categories). If status is Likely Claimed — inferred, still allow thin-review threat but do not claim “unclaimed.”
R3 1.2 SECOND_LISTING_NEARBY = Yes or secondary feature ID lead present Ensure minor tier-2 related/duplicate listing risk threat; evidence must say lead vs verified.
R4 1.2 Star rating + review count both observed Do not create threat from rating alone.
R5 1.2 Field NOT_OBSERVED alone Do not invent threat from absence of observation unless R1R3/R6 fire.
R6 1.2 Services listed present and category/services breadth mismatch observable (e.g. services narrow vs multi category tokens / spin+PT vs strength only) Ensure threat for services vs category discovery mismatch.

Rules log requirement (output): for each fired rule include: rule ID, version, input fields read, values read, output emitted (threat ID or update).


Step 3 — Output format

Return only:

  1. Updated GBP inventory section
  2. Threat Register changes (if any rule fired)
  3. Changes Made list — bullet facts; include object IDs (e.g. T-012) when creating/updating threats
  4. Rules Fired list — structured per log requirement above

Forbidden:

  • Severity upgrades beyond template defaults without human request
  • Solution language
  • Competitor claims
  • New threats outside R1R6
  • Phone masking / partial redaction of intake values

Pass criteria

  • Every written value traces to intake or deterministic URL parse
  • No extra narrative analysis
  • Tier labels correct; severity separate from verification_tier
  • Only trigger rules created/updated threats
  • PLACE_ID computed when URL present

If uncertain: leave field as NOT_OBSERVED and do not fire a rule.