feat(seo): NAP guardrails + audit-end deliverables
- STEP 0 collects user-confirmed CANONICAL NAP (LRN-032 zenquality: duplicated-seed trap — source majority is not truth) - Both dispatch prompts carry the canonical NAP + no-majority rule; seo-analyzer spec forbids directional NAP fix without confirmation - STEP 2 now emits .claude/audits/HUMAN-ACTIONS.md (checklist from §11) and NAP-KIT.md (local business) in BOTH modes — audit-only runs leave the user immediately actionable; /client-handover §4 consumes NAP-KIT
This commit is contained in:
@@ -481,12 +481,25 @@ web_search: "<business-name>" "<city>" site:google.com/maps
|
|||||||
Or use provided URL. Extract:
|
Or use provided URL. Extract:
|
||||||
- Name, address, phone, hours, rating, review count, categories, photos
|
- Name, address, phone, hours, rating, review count, categories, photos
|
||||||
- Compare NAP with:
|
- Compare NAP with:
|
||||||
|
- The CANONICAL NAP from the dispatch context (user-confirmed) — the
|
||||||
|
only source of truth when present
|
||||||
- LocalBusiness JSON-LD on site
|
- LocalBusiness JSON-LD on site
|
||||||
- HTML visible content
|
- HTML visible content
|
||||||
- Other citations below
|
- Other citations below
|
||||||
|
|
||||||
**NAP inconsistencies = critical finding.**
|
**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
|
### Social media verification
|
||||||
|
|
||||||
For each provided URL:
|
For each provided URL:
|
||||||
|
|||||||
+60
-2
@@ -159,6 +159,29 @@ GSC PROPERTY: <property> | none
|
|||||||
|
|
||||||
Skip questions already answered in `$ARGUMENTS`.
|
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: <name> | <address> | <phone> | <email> | <hours>
|
||||||
|
```
|
||||||
|
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)
|
### Plugin check (FULL only)
|
||||||
|
|
||||||
For FULL depth, verify `WebFetch` and `WebSearch` are available.
|
For FULL depth, verify `WebFetch` and `WebSearch` are available.
|
||||||
@@ -248,9 +271,17 @@ BUSINESS CONTEXT:
|
|||||||
Known citations: ...
|
Known citations: ...
|
||||||
Known competitors: ...
|
Known competitors: ...
|
||||||
Time budget: ...
|
Time budget: ...
|
||||||
|
Canonical NAP: <from STEP 0, with UNCONFIRMED markers> | none
|
||||||
GSC account: <label> | none (FULL only)
|
GSC account: <label> | none (FULL only)
|
||||||
GSC property: <property> | none (FULL only)
|
GSC property: <property> | none (FULL only)
|
||||||
|
|
||||||
|
NAP RULE (LRN-032): the Canonical NAP above (user-confirmed) is the only
|
||||||
|
source of truth. NEVER infer a correct NAP value from source majority —
|
||||||
|
on-site sources usually share one seed and can all be wrong. Divergence
|
||||||
|
from a CONFIRMED field → finding with known direction. Divergence on an
|
||||||
|
UNCONFIRMED field (or no canonical provided) → finding WITHOUT
|
||||||
|
directional fix, escalated as a user question in your envelope.
|
||||||
|
|
||||||
You are the classical-SEO half of a parallel SEO+GEO audit. Do NOT
|
You are the classical-SEO half of a parallel SEO+GEO audit. Do NOT
|
||||||
audit GEO/AI signals (llms.txt, AI crawlers, QAPage/Speakable schemas,
|
audit GEO/AI signals (llms.txt, AI crawlers, QAPage/Speakable schemas,
|
||||||
entity SEO, content shape for AI, AI visibility) — the geo-analyzer
|
entity SEO, content shape for AI, AI visibility) — the geo-analyzer
|
||||||
@@ -294,7 +325,11 @@ Dispatched from /seo. Context:
|
|||||||
|
|
||||||
AUDIT DEPTH: <LOCAL|FULL>
|
AUDIT DEPTH: <LOCAL|FULL>
|
||||||
BUSINESS CONTEXT:
|
BUSINESS CONTEXT:
|
||||||
(same block as above)
|
(same block as above, including Canonical NAP)
|
||||||
|
|
||||||
|
NAP RULE (LRN-032): same as seo-analyzer — the user-confirmed Canonical
|
||||||
|
NAP is the only truth for JSON-LD NAP content you own; never resolve a
|
||||||
|
divergence by source majority.
|
||||||
|
|
||||||
You are the GEO/AI half of a parallel SEO+GEO audit. Do NOT audit
|
You are the GEO/AI half of a parallel SEO+GEO audit. Do NOT audit
|
||||||
classical SEO signals (meta tags, Core Web Vitals, hreflang, image
|
classical SEO signals (meta tags, Core Web Vitals, hreflang, image
|
||||||
@@ -523,6 +558,27 @@ block, the dispatcher:
|
|||||||
3. Tags it visibly in §0 if it's a legal/compliance blocker.
|
3. Tags it visibly in §0 if it's a legal/compliance blocker.
|
||||||
4. Keeps these notes visible on re-run — they don't silently vanish.
|
4. Keeps these notes visible on re-run — they don't silently vanish.
|
||||||
|
|
||||||
|
### Post-merge deliverables (ALWAYS — both modes, right after SEO.md)
|
||||||
|
|
||||||
|
These are AUDIT outputs, not fix outputs: generate them even in
|
||||||
|
conservative mode, so an audit-only run leaves the user immediately
|
||||||
|
actionable on visibility work.
|
||||||
|
|
||||||
|
1. **`.claude/audits/HUMAN-ACTIONS.md`** — regenerate from the merged
|
||||||
|
§11 on EVERY run (overwrite; SEO.md keeps the history). Format: one
|
||||||
|
`- [ ]` checkbox per action, grouped by §8/§9/§10 horizon, each with
|
||||||
|
its "Automatisation possible avec:" line and effort estimate. Header
|
||||||
|
links back to SEO.md + audit version/date. This is the working
|
||||||
|
checklist; §11 stays the authoritative reference.
|
||||||
|
2. **`.claude/audits/NAP-KIT.md`** — local-business projects only.
|
||||||
|
Generate/refresh from the CANONICAL NAP (STEP 0) + business context:
|
||||||
|
exact NAP table (display + machine formats), categories, 3
|
||||||
|
description lengths (short ~150 / medium ~350 / long ~600 chars, FR +
|
||||||
|
EN if bilingual), public pricing, URLs to reference, and the
|
||||||
|
directory checklist from §11 citations actions. Mark UNCONFIRMED
|
||||||
|
fields visibly. Rule at top: copy-paste only, never retype.
|
||||||
|
`/client-handover` §4 (NAP table) consumes this file when present.
|
||||||
|
|
||||||
## STEP 3 — Console summary
|
## STEP 3 — Console summary
|
||||||
|
|
||||||
```
|
```
|
||||||
@@ -536,7 +592,9 @@ NOTE GEO (IA) : XX.X / 20
|
|||||||
NOTE GLOBALE (pondérée) : XX.X / 20
|
NOTE GLOBALE (pondérée) : XX.X / 20
|
||||||
|
|
||||||
CHANGEMENTS APPLIQUES (N) : voir SEO.md §15
|
CHANGEMENTS APPLIQUES (N) : voir SEO.md §15
|
||||||
ACTIONS UTILISATEUR (N) : voir SEO.md §11 (avec automatisation)
|
ACTIONS UTILISATEUR (N) : .claude/audits/HUMAN-ACTIONS.md (checklist)
|
||||||
|
+ SEO.md §11 (référence, avec automatisation)
|
||||||
|
NAP KIT : .claude/audits/NAP-KIT.md (si local business)
|
||||||
CONFORMITÉ LÉGALE : OK | <N> blockers → §0
|
CONFORMITÉ LÉGALE : OK | <N> blockers → §0
|
||||||
ALERTES MAJEURES : <short list>
|
ALERTES MAJEURES : <short list>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user