{
  "schema_version": "2026-06-05",
  "purpose": "Machine-readable launch-quality scorecard for SEO, GEO, entity authority, search operations and research-use safety.",
  "policy": {
    "no_ranking_guarantees": true,
    "no_spam_tactics": true,
    "no_keyword_stuffing": true,
    "no_paid_link_schemes": true,
    "no_medical_claims": true,
    "research_use_only": true,
    "manual_live_actions_require_approval": true
  },
  "summary": {
    "launch_quality_score": 100,
    "score_meaning": "All local launch controls are implemented and verified. This is a quality/readiness score, not a search-engine ranking promise.",
    "controls_total": 25,
    "critical_controls": 15,
    "manual_live_actions_after_deploy": 6
  },
  "controls": [
    {
      "id": "crawl-index-governance",
      "category": "technical_seo",
      "impact": "critical",
      "status": "implemented",
      "score": 100,
      "objective": "Keep robots, sitemap index, canonical URLs and submit-ready URL surfaces aligned.",
      "evidence_artifacts": ["robots.txt", "sitemap-index.xml", "sitemap.xml", "sitemap-products.xml", "sitemap-categories.xml", "crawl-priority-map.json", "tools/search-engine-readiness-audit.py", "tools/crawl-priority-audit.py"],
      "verification_commands": ["npm run qa:submit-ready", "npm run qa:crawl-priority", "npm run qa:launch"],
      "quality_gates": ["Robots advertises submit-ready sitemaps", "Sitemap URLs use production host", "Priority crawl targets have canonical/sitemap/schema/source bindings", "IndexNow dry-run is guarded"]
    },
    {
      "id": "ai-discovery-surface",
      "category": "geo_ai_search",
      "impact": "critical",
      "status": "implemented",
      "score": 100,
      "objective": "Expose clean AI-readable discovery through llms files, markdown twins and AI sitemap.",
      "evidence_artifacts": ["llms.txt", "llms-full.txt", "sitemap-ai.xml", "tools/build-llms.py", "tools/build-sitemaps.py"],
      "verification_commands": ["npm run qa:seo", "npm run qa:ai-context", "npm run qa:launch"],
      "quality_gates": ["All active PDP markdown twins are discoverable", "All category markdown twins are discoverable", "AI sitemap has exact expected URL set"]
    },
    {
      "id": "entity-knowledge-graph",
      "category": "entity_authority",
      "impact": "critical",
      "status": "implemented",
      "score": 100,
      "objective": "Make brand, operator, catalog, policies and proof assets coherent for search and answer engines.",
      "evidence_artifacts": ["site-facts.json", "entity-evidence-graph.json", "tools/entity-trust-audit.py", "tools/entity-evidence-graph-audit.py"],
      "verification_commands": ["npm run qa:entity", "npm run qa:entity-graph", "npm run qa:launch"],
      "quality_gates": ["Legal entity matches site facts", "Trust URLs resolve locally", "Entity graph relationships are audited"]
    },
    {
      "id": "sameas-resolution",
      "category": "entity_authority",
      "impact": "critical",
      "status": "implemented",
      "score": 100,
      "objective": "Resolve brand, legal operator, schema anchors, contacts and profile references without identity drift.",
      "evidence_artifacts": ["entity-resolution-map.json", "tools/entity-resolution-map-audit.py", "assets/js/schema-builder.js"],
      "verification_commands": ["npm run qa:entity-resolution", "npm run qa:schema", "npm run qa:launch"],
      "quality_gates": ["Conflict guards exist", "sameAs URLs are explicitly controlled", "Schema anchors bind to local proof"]
    },
    {
      "id": "structured-data-rich-results",
      "category": "schema_rich_results",
      "impact": "critical",
      "status": "implemented",
      "score": 100,
      "objective": "Guard Product, ProductGroup, Offer, FAQ, Breadcrumb, WebSite and Organization schema contracts.",
      "evidence_artifacts": ["structured-data-coverage-map.json", "tools/structured-data-coverage-audit.py", "assets/js/schema-builder.js", "compound.html", "category.html", "tools/rich-results-audit.py"],
      "verification_commands": ["npm run qa:structured-data", "npm run qa:schema", "npm run qa:launch"],
      "quality_gates": ["Structured-data coverage map is audited", "ProductGroup variants are audited", "Shipping and return policy schema is audited", "WebSite SearchAction is audited"]
    },
    {
      "id": "product-markdown-twins",
      "category": "geo_ai_search",
      "impact": "high",
      "status": "implemented",
      "score": 100,
      "objective": "Give each active product a clean markdown twin with research-use boundaries, variants and citation context.",
      "evidence_artifacts": ["products/*.md", "assets/data/catalog_products.json", "tools/build-llms.py"],
      "verification_commands": ["npm run qa:seo", "npm run qa:launch"],
      "quality_gates": ["48 product twins exist", "Each twin links its live PDP", "Research-use disclaimer is present"]
    },
    {
      "id": "product-discovery-readiness",
      "category": "schema_rich_results",
      "impact": "critical",
      "status": "implemented",
      "score": 100,
      "objective": "Keep catalog, PDP URLs, markdown twins, Merchant/free-listing readiness, image sitemap, product images, variant pricing, stock/fresh-batch signals and Product schema aligned for organic product discovery.",
      "evidence_artifacts": ["product-discovery-readiness-map.json", "merchant-organic-readiness-map.json", "priority-product-visibility-map.json", "tools/product-discovery-readiness-audit.py", "tools/merchant-organic-readiness-audit.py", "tools/priority-product-visibility-audit.py", "assets/data/catalog_products.json", "assets/data/product-images.json", "sitemap-products.xml", "sitemap-images.xml"],
      "verification_commands": ["npm run qa:product-discovery", "npm run qa:merchant-readiness", "npm run qa:priority-products", "npm run qa:image", "npm run qa:schema", "npm run qa:launch"],
      "quality_gates": ["48 catalog products are audited", "99 variants derive commerce-search fields", "manual Merchant/free-listing review is required", "12 priority products are mapped", "High-value PDP visibility is mapped", "Image formats and markdown twins are checked"]
    },
    {
      "id": "query-cannibalization-guard",
      "category": "internal_linking",
      "impact": "critical",
      "status": "implemented",
      "score": 100,
      "objective": "Keep one primary URL per high-value query intent so PDPs, category hubs, tools and policy pages reinforce instead of competing.",
      "evidence_artifacts": ["query-cannibalization-map.json", "tools/query-cannibalization-audit.py", "search-intent-map.json", "internal-link-equity-map.json", "answer-engine-source-map.json", "ai-citation-pack.json"],
      "verification_commands": ["npm run qa:cannibalization", "npm run qa:intent", "npm run qa:launch"],
      "quality_gates": ["16 intent clusters have one primary target", "Source and citation IDs are bound", "Supporting pages cannot replace primary URLs"]
    },
    {
      "id": "priority-page-experience",
      "category": "content_strategy",
      "impact": "critical",
      "status": "implemented",
      "score": 100,
      "objective": "Guard the highest-value public pages for visible intent, proof signals, CTA routing, schema contracts, internal links and research-use safety.",
      "evidence_artifacts": ["priority-page-experience-map.json", "tools/priority-page-experience-audit.py", "search-intent-map.json", "query-cannibalization-map.json", "answer-engine-source-map.json", "sitemap-ai.xml"],
      "verification_commands": ["npm run qa:page-experience", "npm run qa:serp", "npm run qa:launch"],
      "quality_gates": ["13 priority pages audited", "8 critical pages guarded", "Proof and CTA routes checked"]
    },
    {
      "id": "category-intent-hubs",
      "category": "content_strategy",
      "impact": "high",
      "status": "implemented",
      "score": 100,
      "objective": "Keep commercial category hubs aligned with product counts, query intent and safe research framing.",
      "evidence_artifacts": ["categories/*.md", "search-intent-map.json", "tools/search-intent-map-audit.py"],
      "verification_commands": ["npm run qa:intent", "npm run qa:seo", "npm run qa:launch"],
      "quality_gates": ["7 category twins exist", "Priority pages are intent-mapped", "Proof links are checked"]
    },
    {
      "id": "answer-engine-citations",
      "category": "geo_ai_search",
      "impact": "critical",
      "status": "implemented",
      "score": 100,
      "objective": "Prepare safe canonical answers and preferred citation URLs for answer engines.",
      "evidence_artifacts": ["ai-citation-pack.json", "tools/ai-citation-pack-audit.py"],
      "verification_commands": ["npm run qa:ai-citations", "npm run qa:launch"],
      "quality_gates": ["Canonical answers are audited", "Preferred citations resolve", "Unsafe medical answer patterns are blocked"]
    },
    {
      "id": "answer-source-preference",
      "category": "geo_ai_search",
      "impact": "critical",
      "status": "implemented",
      "score": 100,
      "objective": "Map answer-engine questions to preferred source pages, proof assets and safe boundaries.",
      "evidence_artifacts": ["answer-engine-source-map.json", "geo-answer-qa-matrix.json", "tools/answer-engine-source-map-audit.py", "tools/geo-answer-qa-audit.py"],
      "verification_commands": ["npm run qa:answer-sources", "npm run qa:geo-answer", "npm run qa:launch"],
      "quality_gates": ["20 answer sources are mapped", "20 answer QA cases are mapped", "Citation and source bindings are audited"]
    },
    {
      "id": "competitive-claim-proof",
      "category": "content_evidence",
      "impact": "critical",
      "status": "implemented",
      "score": 100,
      "objective": "Tie differentiator claims to allowed phrasing, proof URLs and explicit overclaim boundaries.",
      "evidence_artifacts": ["competitive-claim-map.json", "tools/competitive-claim-map-audit.py"],
      "verification_commands": ["npm run qa:claim-map", "npm run qa:launch"],
      "quality_gates": ["Proof requirements are present", "Allowed phrasing is controlled", "Disallowed overclaims are blocked"]
    },
    {
      "id": "topical-authority-clusters",
      "category": "content_strategy",
      "impact": "high",
      "status": "implemented",
      "score": 100,
      "objective": "Build topic depth around research use, quality, COA, storage, reconstitution and product discovery.",
      "evidence_artifacts": ["topical-query-clusters.json", "content-expansion-briefs.json", "tools/topical-query-clusters-audit.py", "tools/content-expansion-briefs-audit.py"],
      "verification_commands": ["npm run qa:clusters", "npm run qa:briefs", "npm run qa:launch"],
      "quality_gates": ["18 topical clusters are mapped", "20 content briefs are ready", "Acceptance checks are audited"]
    },
    {
      "id": "internal-link-equity",
      "category": "internal_linking",
      "impact": "high",
      "status": "implemented",
      "score": 100,
      "objective": "Route authority between commercial, evidence, education and trust pages without doorway behavior.",
      "evidence_artifacts": ["internal-link-equity-map.json", "tools/internal-link-equity-audit.py", "tools/content-commerce-bridge-audit.py"],
      "verification_commands": ["npm run qa:link-equity", "npm run qa:content-bridge", "npm run qa:launch"],
      "quality_gates": ["20 link opportunities are mapped", "Local routes resolve", "Content-commerce bridge links are audited"]
    },
    {
      "id": "serp-feature-targeting",
      "category": "serp_ctr",
      "impact": "high",
      "status": "implemented",
      "score": 100,
      "objective": "Target high-value SERP and AI features through schema, snippets, proof assets and measurement plans.",
      "evidence_artifacts": ["serp-feature-opportunity-map.json", "tools/serp-feature-opportunity-audit.py", "tools/serp-snippet-audit.py"],
      "verification_commands": ["npm run qa:serp-features", "npm run qa:serp", "npm run qa:launch"],
      "quality_gates": ["20 SERP opportunities are mapped", "Snippet contracts are checked", "Measurement plans are present"]
    },
    {
      "id": "serp-experiment-governance",
      "category": "serp_ctr",
      "impact": "critical",
      "status": "implemented",
      "score": 100,
      "objective": "Control SERP title, meta-description and snippet experiments with source-bound evidence, measurement windows and rollback actions.",
      "evidence_artifacts": ["serp-experiment-map.json", "tools/serp-experiment-map-audit.py", "search-performance-feedback-loop.json", "query-cannibalization-map.json"],
      "verification_commands": ["npm run qa:serp-experiments", "npm run qa:search-feedback", "npm run qa:launch"],
      "quality_gates": ["18 experiments are mapped", "Critical pages require measurement", "Rollback and safe-claim guards are required"]
    },
    {
      "id": "image-search-readiness",
      "category": "image_search",
      "impact": "medium",
      "status": "implemented",
      "score": 100,
      "objective": "Give product images stable URLs, sitemap entries, alt context and social image consistency.",
      "evidence_artifacts": ["sitemap-images.xml", "assets/data/product-images.json", "tools/image-search-readiness-audit.py"],
      "verification_commands": ["npm run qa:image", "npm run qa:launch"],
      "quality_gates": ["Image sitemap is audited", "Product image slug coverage is checked", "Open Graph image coverage is checked"]
    },
    {
      "id": "international-hreflang",
      "category": "international_seo",
      "impact": "high",
      "status": "implemented",
      "score": 100,
      "objective": "Protect 11-language storefront signals, hreflang, x-default and OG locale alternates.",
      "evidence_artifacts": ["assets/data/i18n.json", "tools/international-seo-audit.py", "tools/i18n-hreflang-audit.py"],
      "verification_commands": ["npm run qa:intl-seo", "npm run qa:launch"],
      "quality_gates": ["Priority pages cover 11 locales", "x-default is audited", "OG locale alternates are audited"]
    },
    {
      "id": "search-market-coverage",
      "category": "international_seo",
      "impact": "critical",
      "status": "implemented",
      "score": 100,
      "objective": "Map priority EU markets, languages, query themes and source pages to proof assets, AI citations and aggregate post-deploy measurement.",
      "evidence_artifacts": ["search-market-coverage-matrix.json", "tools/search-market-coverage-audit.py", "site-facts.json", "llms.txt", "sitemap-ai.xml"],
      "verification_commands": ["npm run qa:market-coverage", "npm run qa:intl-seo", "npm run qa:launch"],
      "quality_gates": ["18 market rows are audited", "11 storefront locales are covered", "Answer-source and citation bindings are checked"]
    },
    {
      "id": "freshness-governance",
      "category": "freshness",
      "impact": "high",
      "status": "implemented",
      "score": 100,
      "objective": "Keep pages current without fake lastmod churn or freshness theater.",
      "evidence_artifacts": ["content-refresh-governance.json", "blog/feed.xml", "sitemap-content.xml", "tools/freshness-integrity-audit.py"],
      "verification_commands": ["npm run qa:freshness", "npm run qa:content-refresh", "npm run qa:launch"],
      "quality_gates": ["Material-change rules are present", "RSS dates are audited", "Sitemap lastmod integrity is checked"]
    },
    {
      "id": "index-coverage-triage",
      "category": "search_operations",
      "impact": "critical",
      "status": "implemented",
      "score": 100,
      "objective": "Classify crawl, canonical, robots, rich-result and AI discovery issues after deploy.",
      "evidence_artifacts": ["index-coverage-triage.json", "search-operations-runbook.json", "tools/index-coverage-triage-audit.py"],
      "verification_commands": ["npm run qa:index-coverage", "npm run qa:search-ops", "npm run qa:launch"],
      "quality_gates": ["12 issue types are mapped", "Manual live actions require approval", "No live API credentials are stored"]
    },
    {
      "id": "search-performance-learning",
      "category": "search_operations",
      "impact": "high",
      "status": "implemented",
      "score": 100,
      "objective": "Use aggregate Search Console, Bing, analytics and on-site search data to improve content after launch.",
      "evidence_artifacts": ["search-performance-feedback-loop.json", "tools/search-performance-feedback-audit.py"],
      "verification_commands": ["npm run qa:search-feedback", "npm run qa:launch"],
      "quality_gates": ["Aggregate-only data policy is enforced", "Decision rules are present", "Intent and SERP maps are bound"]
    },
    {
      "id": "core-web-vitals-static",
      "category": "performance",
      "impact": "high",
      "status": "implemented",
      "score": 100,
      "objective": "Protect crawlable, fast, stable pages through static Core Web Vitals gates.",
      "evidence_artifacts": ["tools/core-web-vitals-audit.py", "assets/css", "assets/js"],
      "verification_commands": ["npm run qa:perf", "npm run qa:launch"],
      "quality_gates": ["Blocking scripts are checked", "Image dimensions and decoding are checked", "Transfer budgets are checked"]
    },
    {
      "id": "ymyl-research-safety",
      "category": "trust_safety",
      "impact": "critical",
      "status": "implemented",
      "score": 100,
      "objective": "Block medical, dosing, therapeutic and personal outcome claims across launch copy.",
      "evidence_artifacts": ["tools/audit-ymyl.py", "tools/research-frame-copy-audit.py", "research-use.html", "site-facts.json"],
      "verification_commands": ["npm run qa:research-frame", "python3 tools/audit-ymyl.py --fail-on-high", "npm run qa:launch"],
      "quality_gates": ["No high-risk YMYL language is detected", "Research-use policy is machine-readable", "No dosing guidance is allowed", "Fresh-batch copy cannot drift into pre-reconstitution wording"]
    }
  ]
}
