Experience, Expertise, Authoritativeness, and Trust are how both Google's quality systems and AI answer engines decide whether to rely on a page. Trust is foundational and now applies beyond YMYL. Schema details: references/schema-tier1.md.
Inputs
Work from the PageSnapshot named in your dispatch envelope: read parsed from <run_dir>/pages/<slug>.json (jsonld[], anchors[], text_sample); Grep pages/<slug>.html for verbatim evidence; site artifacts live in <run_dir>/site/{robots.json,sitemaps.json,discovery.json}. Deterministic findings already emitted by audit.mjs are listed in <run_dir>/findings.deterministic.json — do not re-emit those ids; add model-judged findings only. If invoked directly with a URL/path and no snapshot exists, first run node "${CLAUDE_PLUGIN_ROOT}/scripts/snapshot.mjs" <target> --out "${CLAUDE_PLUGIN_DATA}/runs" and use the printed snapshot path.
Audits
Working from the PageSnapshot (parsed_rendered when render.used is not none, else parsed):
- Author identity & credentials: is there a visible byline? A
Personschema withname,jobTitle,knowsAbout, andsameAs[](LinkedIn/Wikidata)? Does the byline link to an author/bio page? Are credentials/experience stated, not just a name? - Organization trust: discoverable About and Contact pages; an
Organizationblock withname,url,logo,contactPoint,sameAs[]; visible editorial/privacy/returns policies appropriate to the vertical. - Experience & expertise markers: first-hand signals (original photos, "we tested", dates, methodology) and topical depth — not just generic prose.
- Transparency: sourcing/citations for claims, author disclosures (affiliate, sponsored, AI-assisted), last-reviewed dates. Defer the
sameAsidentity-graph detail to M6/seo-entity-linking.
Fixes
- AUTO (
fixable: auto): injectPerson(author) andOrganizationtrust JSON-LD built only from confirmed inputs — name, jobTitle, contactPoint, policy URLs the user supplies. The block is a diff forfix. - PROPOSED (
fixable: proposed): draft a byline link or asameAsset for per-item accept. - ADVISORY (
fixable: advisory): writing real author bios, About/contact pages, or editorial policies — the tool never authors these. Never fabricate names, credentials, dates, or identity links — ask the user or leave a clearly-markedTODOplaceholder.
Verification
- Offline:
node "${CLAUDE_PLUGIN_ROOT}/scripts/validate-jsonld.mjs" --snapshot <pages/<slug>.json>(or--url <u>) plusdom_assertfor visible byline/links/policy pages. - When confirming an identity link or a live About/contact page requires a fetch that is unavailable, status is
needs_api— never a falsepass.
Findings
Emit findings per schema/finding.schema.json; axis both. Severity policy: 5 is reserved for catastrophic, eligibility-killing facts at site/template scope; 4 major · 3 moderate · 2 minor · 1 cosmetic · 0 informational — and only an established severity-5 fail in an active category can cap a score (references/scoring-model.md). Examples:
M16.author.missing_person_schema— an editorial page with a byline but noPersonschema (fail, severity 3,fixable: auto, confidenceestablished— the markup requirement is documented; the ranking effect is not, and belongs inrationaleasdirectional).M16.author.no_bio_page— the byline does not link to an author/bio page (warn, severity 3,fixable: proposed, confidencedirectional).M16.org.no_contact_page— no discoverable About/Contact and nocontactPoint(warn, severity 3,fixable: advisory, confidencedirectional).M16.transparency.no_disclosure— affiliate, sponsored, or AI-assisted content with no visible disclosure (warn, severity 3,fixable: advisory, confidencedirectional). Each finding:evidence.observedquotes what is on the page;verification.reproduceis the runnable command above;expected_impactis banded + confidence-tagged (no naked %).
Honesty
- E-E-A-T is not a score Google exposes, and Google's own framing is "people-first content". Its guidance asks who, how, and why: is there a real author with real experience, was the content made for readers rather than for engines. Everything this module measures is a visible proxy for that judgment, so every finding here is
directional— adding aPersonblock or an author bio is not a ranking lever, and must never be presented as one. - Trust is the foundational element and now applies well beyond YMYL, but a page does not become trustworthy by acquiring markup. Report missing signals as "a reader (or an AI system) cannot tell who stands behind this", not as points lost.
- A fabricated author, an invented credential, or fake review markup is worse than nothing — it is a trust risk in Search and in AI answers alike. The tool only emits trust signals the user can substantiate, and leaves a clearly-marked
TODOwhere it cannot.