diff --git a/agents/seo-analyzer.md b/agents/seo-analyzer.md index 21246ad..f7f03b8 100644 --- a/agents/seo-analyzer.md +++ b/agents/seo-analyzer.md @@ -481,12 +481,25 @@ web_search: "" "" site:google.com/maps Or use provided URL. Extract: - Name, address, phone, hours, rating, review count, categories, photos - Compare NAP with: + - The CANONICAL NAP from the dispatch context (user-confirmed) — the + only source of truth when present - LocalBusiness JSON-LD on site - HTML visible content - Other citations below **NAP inconsistencies = critical finding.** +**NAP mismatch direction rule (LRN-032).** NEVER infer the correct value +from source majority: on-site sources (JSON-LD, footer, settings DB, +legal pages) usually descend from ONE seed and can all carry the same +wrong value — the single diverging source may be the only one a human +actually corrected. Direction of fix: +- Diverging from a CONFIRMED canonical field → fix the diverging source. +- Canonical field UNCONFIRMED or absent → report the divergence WITHOUT + a directional fix; escalate as a user question ("which value is + correct?") in the envelope (§11 user action). No bundle item may + rewrite a NAP value that no confirmed canonical backs. + ### Social media verification For each provided URL: diff --git a/skills/seo/SKILL.md b/skills/seo/SKILL.md index 2cdea78..34e22b0 100644 --- a/skills/seo/SKILL.md +++ b/skills/seo/SKILL.md @@ -159,6 +159,29 @@ GSC PROPERTY: | none Skip questions already answered in `$ARGUMENTS`. +### NAP canonique (both depths — local-business projects) + +If the project shows local-business signals (LocalBusiness JSON-LD, GMB, +phone/address in content), collect and get the user to CONFIRM the +canonical NAP — name, street address, postal code + city, phone, email, +opening hours. A previous audit's values or the code's values are NOT a +substitute for user confirmation (duplicated-seed trap — see LRN-032 +zenquality: 3 on-site sources shared one wrong seeded phone; the single +diverging source was the only correct one). + +Record in the shared context block: +``` +CANONICAL NAP: |
| | | +``` +Fields the user cannot confirm → mark `UNCONFIRMED`. + +This user-confirmed NAP is the single source of truth for BOTH agents: +- A source diverging from a CONFIRMED field = finding with KNOWN + direction (fix the diverging source). +- A divergence on an UNCONFIRMED field = finding WITHOUT direction — + escalate as a user question ("which value is correct?"), NEVER pick + a side from source majority. + ### Plugin check (FULL only) For FULL depth, verify `WebFetch` and `WebSearch` are available. @@ -248,9 +271,17 @@ BUSINESS CONTEXT: Known citations: ... Known competitors: ... Time budget: ... + Canonical NAP: | none GSC account: