{"description":"Structured reusable page-pattern contracts with sections, schema, SEO/AEO, traceability, QA gates, anti-patterns, stress tests, and completion criteria.","objective":"Give a future agent enough structure to start from the main URL and understand how to inspect, plan, build, validate, and improve a serious website without needing prior chat context.","patterns":[{"id":"homepage-entity-summary","title":"Homepage entity summary","routeExamples":["/"],"purpose":"Orient agents, crawlers, and users to the entity, offer, audience, proof, and next routes.","requiredSections":["Entity and positioning H1","Primary offer or purpose","Who/where fit","Proof summary","Internal links to core routes","Machine-readable discovery links when agent-facing"],"requiredSchema":["Organization","WebSite","LocalBusiness or domain-specific entity","FAQPage when visible FAQs exist"],"seoRequirements":["Canonical root URL","Unique title and description","One H1","Open Graph parity","Index,follow robots"],"aeoRequirements":["Direct answer to what this site/entity is","Stable entity names","Links to manifest/LLM endpoints when agent-facing","Concise facts before deeper detail"],"traceabilityRequirements":["Identity, offer, service area, proof, and claims must map to allowed source facts"],"qaGates":["npm run qa:all","Schema endpoint review","Source traceability review"],"antiPatterns":["Hero copy with no concrete entity or offer","Unsupported superiority claims","Homepage-only facts missing from manifest or LLM summary"],"stressTests":["Ask an agent to explain the site purpose from the homepage only","Remove the manifest link and confirm agent-readiness QA catches the gap","Try adding an unproved claim and confirm traceability blocks it"],"completionCriteria":["Entity and purpose are clear","Core routes are linked","Schema matches visible facts","Agent endpoints reflect homepage claims","qa:all passes"]},{"id":"service-offer-page","title":"Service or offer page","routeExamples":["/services/"],"purpose":"Explain a service, package, productized offer, or implementation path with scope, process, proof, and next step.","requiredSections":["Problem","Offer scope","Inputs required","Process","Deliverables","Proof","FAQ or objections","Next step"],"requiredSchema":["Service","BreadcrumbList","FAQPage when visible FAQs exist"],"seoRequirements":["Service-specific title and description","Canonical service URL","Internal links to proof, contact, and related resources","No duplicate H1 intent across services"],"aeoRequirements":["Direct answers for what is included, who it is for, where/when it applies, and how to start","Caveats near scope limitations"],"traceabilityRequirements":["Service scope, deliverables, proof, and pricing/guarantee claims require source evidence"],"qaGates":["npm run qa:all","Claim/source audit","Internal-link review"],"antiPatterns":["Vague capability list","Process without deliverables","Proof claims without evidence","Schema facts not visible on page"],"stressTests":["Ask an agent to list the service inputs and outputs","Try to add an unsupported guarantee and confirm it is blocked","Remove proof links and confirm completion criteria fails"],"completionCriteria":["Scope and deliverables are explicit","Proof and next step are linked","Schema is visible-fact-only","qa:all passes"]},{"id":"proof-evidence-page","title":"Proof evidence page","routeExamples":["/proof/"],"purpose":"Make claims inspectable through case studies, testimonials, metrics, screenshots, crawl reports, reviews, or other permissioned artifacts.","requiredSections":["Claim being supported","Evidence artifact","Source/permission note","Before or baseline","Work/change","Result","Limitations or caveats"],"requiredSchema":["Review when eligible","CreativeWork","Article or BreadcrumbList when appropriate"],"seoRequirements":["Outcome language only when approved","Canonical proof URL","Links back to related service/product pages"],"aeoRequirements":["Keep caveats near metrics","Explain context and date ranges","Do not summarize private proof into public LLM endpoints"],"traceabilityRequirements":["Every testimonial, metric, logo, screenshot, and result requires permission and source evidence"],"qaGates":["npm run qa:all","Permission/privacy review","Claim/source audit"],"antiPatterns":["Anonymous proof without permission context","Metrics without date range","Review schema on non-eligible testimonials","Private proof leaking into LLM summaries"],"stressTests":["Ask an agent to find evidence for a claim","Remove permission notes and confirm readiness fails","Attempt to publish private proof in llms-full.txt and confirm it is blocked"],"completionCriteria":["Every proof item has source and permission status","Claims stay caveated","Schema eligibility is clear","qa:all passes"]},{"id":"answer-ready-resource-page","title":"Answer-ready resource page","routeExamples":["/resources/"],"purpose":"Answer a concrete question or explain an entity/topic in a way search engines and answer systems can reuse safely.","requiredSections":["Direct answer","Definition or context","Detailed explanation","Comparison or decision criteria when relevant","Caveats","Related entity links","FAQ"],"requiredSchema":["Article","FAQPage","DefinedTerm when defining an entity","BreadcrumbList"],"seoRequirements":["Search-intent-aligned title","Stable URL","Internal links to definitions/proof/services","Description summarizes the answer without overclaiming"],"aeoRequirements":["Direct answer before nuance","Caveats near recommendations","Entity links and definitions are stable","LLM summary uses canonical answer"],"traceabilityRequirements":["Definitions, recommendations, and comparisons must cite approved sources or internal proof"],"qaGates":["npm run qa:all","Internal-link review","Schema review","Source/reference review"],"antiPatterns":["Long intro before answer","Uncaveated recommendations","Glossary terms without stable URLs","FAQ schema for questions not visible on page"],"stressTests":["Ask an agent to answer the target question from the page","Remove a definition link and confirm review catches it","Try to publish uncaveated advice and confirm traceability flags it"],"completionCriteria":["Question is answered directly","Entities are linked","Caveats are visible","Schema matches content","qa:all passes"]},{"id":"contact-conversion-page","title":"Contact conversion page","routeExamples":["/contact/"],"purpose":"Give users, crawlers, and agents a clear next step with contact facts, qualification notes, service fit, and accessible interaction paths.","requiredSections":["Contact options","Expected next step","Service/fit qualifier","Location or service area when relevant","Privacy or form expectation","Fallback path"],"requiredSchema":["ContactPage","Organization or LocalBusiness"],"seoRequirements":["Contact-specific title and description","Canonical contact URL","Indexable when it contains useful business facts","No missing H1"],"aeoRequirements":["Directly state how to contact, what information to provide, and who the contact path is for"],"traceabilityRequirements":["Email, phone, address, service area, response-time, and availability claims require source-backed configuration"],"qaGates":["npm run qa:all","Keyboard/contact path check","Mobile contact check"],"antiPatterns":["Form-only contact with no fallback","Unverified response-time promises","Contact route missing H1","Phone/email hidden from crawlers"],"stressTests":["Ask an agent to find the fastest contact path","Remove fallback contact info and confirm completion criteria fails","Try adding unverified response-time claim and confirm it is blocked"],"completionCriteria":["Contact options are visible and accessible","Fit/qualification is clear","Contact facts come from source config","qa:all passes"]},{"id":"schema-backed-detail-page","title":"Schema-backed detail page","routeExamples":["/services/schema.json","/proof/schema.json","/resources/schema.json","/contact/schema.json"],"purpose":"Expose page facts through structured data that matches visible content and source-backed claims.","requiredSections":["Visible fact inventory","Schema type selection","Stable entity IDs where needed","Breadcrumb or relationship context","Source-backed claim references"],"requiredSchema":["Organization","WebSite","Service","Article","FAQPage","BreadcrumbList","LocalBusiness as appropriate"],"seoRequirements":["Schema endpoint appears in schemamap when reusable","Schema does not contradict canonical page metadata","Schema route returns valid JSON"],"aeoRequirements":["Machine facts match visible page facts","No private or blocked claims appear in schema","Entity IDs stay stable across pages"],"traceabilityRequirements":["Every schema fact must be visible on page, in site config, or allowed by source traceability"],"qaGates":["npm run qa:all","Schema endpoint review","Source traceability review"],"antiPatterns":["Schema-only claims","Private facts in JSON-LD","Changing entity IDs without migration reason","FAQ schema for hidden questions"],"stressTests":["Ask an agent to compare schema facts to visible page facts","Try adding a blocked claim to schema and confirm it is rejected","Remove schema endpoint from schemamap and confirm QA catches it"],"completionCriteria":["Schema endpoint returns valid JSON","Schema matches visible/source-backed facts","Entity IDs are stable","qa:all passes"]}]}