{
  "schema_version": "2026-06-05",
  "purpose": "Machine-readable SEO, GEO and search-growth implementation contract for TogoPeptide launch readiness.",
  "policy": {
    "no_ranking_guarantees": true,
    "no_blackhat": true,
    "no_keyword_stuffing": true,
    "no_paid_link_schemes": true,
    "no_medical_claims": true,
    "research_use_only": true
  },
  "tracks": [
    {
      "id": "crawl-index-contract",
      "status": "implemented",
      "impact": "critical",
      "category": "technical_seo",
      "objective": "Keep robots, sitemap index and public crawl surfaces aligned before any launch.",
      "implemented_artifacts": ["robots.txt", "sitemap-index.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"],
      "evidence_signals": ["6 submit-ready sitemap files", "20 priority crawl targets", "14 critical canonical/sitemap bindings", "production-host URL validation", "money-page robots directive checks"],
      "next_action": "Run qa:crawl-priority after sitemap, canonical, schema or priority-page changes; submit sitemap URLs only after approved deploy."
    },
    {
      "id": "indexnow-submit-guard",
      "status": "implemented",
      "impact": "high",
      "category": "technical_seo",
      "objective": "Prepare Bing and IndexNow discovery without allowing accidental live submission.",
      "implemented_artifacts": ["tools/indexnow-submit.py", "7dd1706cb265ef2c42a4609a9613844f.txt", "tools/predeploy.py"],
      "verification_commands": ["npm run qa:submit-ready", "npm run qa:launch"],
      "evidence_signals": ["dry-run default", "production host guard", "deploy confirmation flag required"],
      "next_action": "Run live IndexNow submit only after deploy approval."
    },
    {
      "id": "ai-discovery-llms",
      "status": "implemented",
      "impact": "critical",
      "category": "geo_ai_search",
      "objective": "Expose clean AI-readable source files for answer engines and retrieval tools.",
      "implemented_artifacts": ["llms.txt", "llms-full.txt", "ai-citation-pack.json", "answer-engine-source-map.json", "serp-feature-opportunity-map.json", "entity-evidence-graph.json", "internal-link-equity-map.json", "products/*.md", "categories/*.md", "tools/build-llms.py"],
      "verification_commands": ["npm run qa:seo", "npm run qa:ai-context", "npm run qa:ai-citations", "npm run qa:answer-sources", "npm run qa:serp-features", "npm run qa:entity-graph", "npm run qa:link-equity", "npm run qa:launch"],
      "evidence_signals": ["48 product markdown twins", "7 category markdown twins", "21 AI citation answers ready", "20 answer-engine sources mapped", "20 SERP feature opportunities mapped", "21 entity graph nodes mapped", "20 internal link opportunities mapped", "research-use disclaimer in AI source files"],
      "next_action": "Refresh llms files after catalog or content changes."
    },
    {
      "id": "machine-readable-site-facts",
      "status": "implemented",
      "impact": "critical",
      "category": "entity_authority",
      "objective": "Provide one compact entity, policy, catalog and discovery source for answer engines.",
      "implemented_artifacts": ["site-facts.json", "tools/ai-context-audit.py"],
      "verification_commands": ["npm run qa:ai-context", "npm run qa:launch"],
      "evidence_signals": ["KvK identity present", "catalog counts aligned", "research-use policy booleans enforced"],
      "next_action": "Update this file when legal entity, catalog count, language set or discovery URLs change."
    },
    {
      "id": "search-intent-map",
      "status": "implemented",
      "impact": "critical",
      "category": "content_strategy",
      "objective": "Map priority pages to search intent, proof links, schema and safe AI-answer framing.",
      "implemented_artifacts": ["search-intent-map.json", "tools/search-intent-map-audit.py"],
      "verification_commands": ["npm run qa:intent", "npm run qa:launch"],
      "evidence_signals": ["13 priority pages mapped", "required proof links checked", "ranking-guarantee wording blocked"],
      "next_action": "Add new commercial pages before they are launched."
    },
    {
      "id": "international-seo-hreflang",
      "status": "implemented",
      "impact": "high",
      "category": "international_seo",
      "objective": "Protect language alternates, OG locale alternates and multilingual source consistency.",
      "implemented_artifacts": ["tools/international-seo-audit.py", "assets/js/schema-builder.js", "site-facts.json"],
      "verification_commands": ["npm run qa:intl-seo", "npm run qa:launch"],
      "evidence_signals": ["11 storefront languages", "Portuguese locale handled as pt_PT", "x-default coverage"],
      "next_action": "Use the audit before adding a new language."
    },
    {
      "id": "entity-trust-graph",
      "status": "implemented",
      "impact": "high",
      "category": "entity_authority",
      "objective": "Keep Organization, WebSite, trust pages and legal identity coherent across the site.",
      "implemented_artifacts": ["tools/entity-trust-audit.py", "tools/entity-evidence-graph-audit.py", "entity-evidence-graph.json", "assets/js/schema-builder.js", "about.html", "imprint.html"],
      "verification_commands": ["npm run qa:entity", "npm run qa:entity-graph", "npm run qa:launch"],
      "evidence_signals": ["Organization identity checked", "SearchAction checked", "trust URL surface aligned", "21 entity graph nodes mapped"],
      "next_action": "Add sameAs profiles only when official profiles are live."
    },
    {
      "id": "product-rich-results-contract",
      "status": "implemented",
      "impact": "high",
      "category": "schema_rich_results",
      "objective": "Guard PDP structured data for product variants, offers, shipping and return policy.",
      "implemented_artifacts": ["tools/rich-results-audit.py", "assets/js/schema-builder.js", "compound.html"],
      "verification_commands": ["npm run qa:schema", "npm run qa:launch"],
      "evidence_signals": ["ProductGroup verified", "hasVariant verified", "OfferShippingDetails and MerchantReturnPolicy verified"],
      "next_action": "Avoid review or rating schema until real review data exists."
    },
    {
      "id": "structured-data-coverage-map",
      "status": "implemented",
      "impact": "critical",
      "category": "schema_rich_results",
      "objective": "Map every high-value schema surface to route scope, source files, injectors, proof maps, validation commands and no-fake-review safety boundaries.",
      "implemented_artifacts": ["structured-data-coverage-map.json", "tools/structured-data-coverage-audit.py", "assets/js/schema-builder.js", "tools/rich-results-audit.py", "site-facts.json", "llms.txt", "sitemap-ai.xml"],
      "verification_commands": ["npm run qa:structured-data", "npm run qa:schema", "npm run qa:seo", "npm run qa:launch"],
      "evidence_signals": ["16 schema coverage rows", "10 critical rows", "20+ schema types covered", "injector/source-file evidence required", "sitewide fake review schema blocked"],
      "next_action": "After approved deploy, compare Search Console enhancement reports and Rich Results Test output against this map before adding new schema types."
    },
    {
      "id": "dynamic-pdp-canonical-social",
      "status": "implemented",
      "impact": "high",
      "category": "technical_seo",
      "objective": "Ensure dynamic PDP and category URLs create production canonicals and social URLs.",
      "implemented_artifacts": ["tools/dynamic-seo-contract-audit.py", "assets/js/compound.js", "assets/js/category.js", "compound.html", "category.html"],
      "verification_commands": ["npm run qa:dynamic-seo", "npm run qa:launch"],
      "evidence_signals": ["production origin enforced", "window.location.origin blocked", "PDP and category browser assertions"],
      "next_action": "Extend assertions when a new dynamic route is added."
    },
    {
      "id": "image-search-sitemap",
      "status": "implemented",
      "impact": "medium",
      "category": "image_search",
      "objective": "Give Google image discovery stable product image URLs, titles and captions.",
      "implemented_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"],
      "evidence_signals": ["image sitemap generated", "Open Graph image checks", "catalog image slug coverage"],
      "next_action": "Regenerate image sitemap after adding or replacing product photos."
    },
    {
      "id": "product-discovery-readiness",
      "status": "implemented",
      "impact": "critical",
      "category": "schema_rich_results",
      "objective": "Keep product catalog, PDP URLs, markdown twins, product images, image sitemap, variant price/stock and fresh-batch status aligned for organic product discovery and AI catalog answers.",
      "implemented_artifacts": ["product-discovery-readiness-map.json", "tools/product-discovery-readiness-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:image", "npm run qa:schema", "npm run qa:launch"],
      "evidence_signals": ["48 active products audited", "12 priority product rows", "ProductGroup/Offer schema binding", "image format coverage", "fresh-batch stock signals guarded"],
      "next_action": "After approved deploy, compare product impressions, image search visibility and on-site search demand before changing PDP copy or variants."
    },
    {
      "id": "product-feed-discovery",
      "status": "implemented",
      "impact": "critical",
      "category": "geo_ai_search",
      "objective": "Expose a deterministic AI/search product feed with every product, variant, price, stock status, PDP URL, markdown twin, Merchant/free-listing readiness and research-use policy.",
      "implemented_artifacts": ["product-feed.json", "merchant-organic-readiness-map.json", "tools/build-product-feed.py", "tools/product-feed-audit.py", "tools/merchant-organic-readiness-audit.py", "site-facts.json", "llms.txt", "llms-full.txt", "sitemap-ai.xml"],
      "verification_commands": ["npm run qa:product-feed", "npm run qa:merchant-readiness", "npm run qa:product-discovery", "npm run qa:ai-context", "npm run qa:launch"],
      "evidence_signals": ["48 products exported", "99 variants exported", "prices derived from catalog source of truth", "availability labels guarded", "Merchant/free-listing readiness blocked behind manual review", "AI discovery wired"],
      "next_action": "Regenerate product-feed.json after catalog, price, stock or image changes, then run npm run qa:product-feed and npm run qa:merchant-readiness."
    },
    {
      "id": "query-cannibalization-guard",
      "status": "implemented",
      "impact": "critical",
      "category": "internal_linking",
      "objective": "Keep primary targets, support pages and forbidden overlap explicit for the highest-value commercial, policy, tool and education intents.",
      "implemented_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", "sitemap-ai.xml"],
      "verification_commands": ["npm run qa:cannibalization", "npm run qa:intent", "npm run qa:link-equity", "npm run qa:launch"],
      "evidence_signals": ["16 intent clusters mapped", "10 critical primary URLs", "source and citation IDs bound", "support pages separated from non-primary pages", "AI discovery wired"],
      "next_action": "After approved deploy, use Search Console query/page pairs to adjust support links without creating duplicate target pages."
    },
    {
      "id": "priority-page-experience",
      "status": "implemented",
      "impact": "critical",
      "category": "content_strategy",
      "objective": "Keep the highest-value public pages aligned on intent, proof signals, CTA routing, schema contracts and research-use boundaries.",
      "implemented_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:intent", "npm run qa:launch"],
      "evidence_signals": ["13 priority pages mapped", "8 critical page experiences", "proof signals checked against HTML", "CTA routes checked", "schema contracts bound"],
      "next_action": "After approved deploy, compare query/page performance and update page experience contracts before changing copy."
    },
    {
      "id": "serp-snippet-contract",
      "status": "implemented",
      "impact": "high",
      "category": "serp_ctr",
      "objective": "Protect titles, descriptions, OG/Twitter snippets and robots preview directives on priority pages.",
      "implemented_artifacts": ["tools/serp-snippet-audit.py", "index.html", "shop.html", "fresh-batch.html"],
      "verification_commands": ["npm run qa:serp", "npm run qa:launch"],
      "evidence_signals": ["priority pages checked", "max-image-preview directive checked", "social descriptions checked"],
      "next_action": "Tune copy from Search Console CTR data after launch."
    },
    {
      "id": "freshness-rss-lastmod",
      "status": "implemented",
      "impact": "medium",
      "category": "freshness",
      "objective": "Keep sitemap lastmod, article modified dates and RSS timestamps honest.",
      "implemented_artifacts": ["tools/freshness-integrity-audit.py", "blog/feed.xml", "sitemap-content.xml"],
      "verification_commands": ["npm run qa:freshness", "npm run qa:launch"],
      "evidence_signals": ["RSS lastBuildDate checked", "article modified time checked", "AI sitemap freshness checked"],
      "next_action": "Update modified dates only when page content changes."
    },
    {
      "id": "article-evidence-citations",
      "status": "implemented",
      "impact": "high",
      "category": "content_evidence",
      "objective": "Make knowledge content more credible with Article schema, references and crawlable article hubs.",
      "implemented_artifacts": ["tools/article-evidence-audit.py", "blog/*.html", "blog/feed.xml"],
      "verification_commands": ["npm run qa:article-evidence", "npm run qa:launch"],
      "evidence_signals": ["Article JSON-LD checked", "published and modified dates checked", "reference blocks checked"],
      "next_action": "Add references to new research articles before publication."
    },
    {
      "id": "content-commerce-bridge",
      "status": "implemented",
      "impact": "high",
      "category": "internal_linking",
      "objective": "Connect informational content, trust pages and commercial catalog paths without doorway-page behavior.",
      "implemented_artifacts": ["tools/content-commerce-bridge-audit.py", "tools/answer-engine-source-map-audit.py", "tools/serp-feature-opportunity-audit.py", "tools/internal-link-equity-audit.py", "answer-engine-source-map.json", "serp-feature-opportunity-map.json", "internal-link-equity-map.json", "research-hub.html", "blog/index.html"],
      "verification_commands": ["npm run qa:content-bridge", "npm run qa:answer-sources", "npm run qa:serp-features", "npm run qa:link-equity", "npm run qa:launch"],
      "evidence_signals": ["catalog-count consistency", "article hub coverage", "trust bridge links", "20 answer-engine sources checked", "20 SERP feature opportunities checked", "20 link opportunities checked"],
      "next_action": "Use related-article maps for future pages instead of random internal links."
    },
    {
      "id": "topical-authority-hubs",
      "status": "implemented",
      "impact": "high",
      "category": "content_strategy",
      "objective": "Maintain topic clusters around research, quality, COA, storage, reconstitution and product discovery.",
      "implemented_artifacts": ["tools/topical-authority-audit.py", "topical-query-clusters.json", "content-expansion-briefs.json", "answer-engine-source-map.json", "entity-evidence-graph.json", "internal-link-equity-map.json", "research-hub.html", "quality.html", "coa.html"],
      "verification_commands": ["npm run qa:authority", "npm run qa:clusters", "npm run qa:briefs", "npm run qa:answer-sources", "npm run qa:entity-graph", "npm run qa:link-equity", "npm run qa:launch"],
      "evidence_signals": ["pillar pages checked", "18 topical/query clusters mapped", "20 content expansion briefs ready", "20 answer-engine sources mapped", "21 entity graph nodes mapped", "20 internal link opportunities mapped", "internal trust links checked", "catalog count consistency"],
      "next_action": "Prioritize new content by revenue intent and evidence quality."
    },
    {
      "id": "core-web-vitals-static",
      "status": "implemented",
      "impact": "high",
      "category": "performance",
      "objective": "Protect static performance basics that influence crawlability, UX and conversion.",
      "implemented_artifacts": ["tools/core-web-vitals-audit.py", "assets/css/togo-mobile-polish.css", "assets/js"],
      "verification_commands": ["npm run qa:perf", "npm run qa:launch"],
      "evidence_signals": ["CLS-sensitive assets checked", "preload and decoding hygiene checked", "mobile QA script available"],
      "next_action": "Run Lighthouse locally before approved deploy when time permits."
    },
    {
      "id": "safe-tooling-supply-chain",
      "status": "implemented",
      "impact": "critical",
      "category": "trust_safety",
      "objective": "Block known risky audit plugins and vulnerable helper packages from becoming launch blockers.",
      "implemented_artifacts": ["tools/package-supply-chain-audit.py", "package.json", "package-lock.json"],
      "verification_commands": ["npm run qa:supply-chain", "npm run qa:launch"],
      "evidence_signals": ["banned packages checked", "audit-only tooling isolated", "launch gate blocks risky packages"],
      "next_action": "Prefer maintained packages and remove temporary tooling after launch."
    },
    {
      "id": "search-console-bing-submit",
      "status": "ready_for_manual_after_deploy",
      "impact": "critical",
      "category": "search_operations",
      "objective": "Submit production discovery assets to Google Search Console and Bing Webmaster Tools after approved deploy.",
      "implemented_artifacts": ["sitemap-index.xml", "sitemap-ai.xml", "tools/search-engine-readiness-audit.py", "search-operations-runbook.json", "search-submit-evidence-checklist.json"],
      "verification_commands": ["npm run qa:submit-ready", "npm run qa:search-ops", "npm run qa:launch"],
      "evidence_signals": ["sitemap index ready", "AI sitemap ready", "IndexNow key present", "post-deploy submit runbook ready", "search submit evidence checklist ready"],
      "next_action": "After approved deploy, submit sitemap-index.xml in GSC and Bing, then run guarded IndexNow."
    },
    {
      "id": "index-coverage-triage",
      "status": "implemented",
      "impact": "critical",
      "category": "search_operations",
      "objective": "Classify and resolve post-deploy crawl, canonical, robots, rich-result, image and AI discovery index coverage issues.",
      "implemented_artifacts": ["index-coverage-triage.json", "tools/index-coverage-triage-audit.py", "search-operations-runbook.json", "sitemap-index.xml", "sitemap-ai.xml"],
      "verification_commands": ["npm run qa:index-coverage", "npm run qa:submit-ready", "npm run qa:search-ops", "npm run qa:launch"],
      "evidence_signals": ["12 issue types mapped", "13 priority URL targets mapped", "4 evidence sources guarded", "coverage-error-triage runbook wired"],
      "next_action": "After approved deploy, classify any GSC/Bing coverage issue with index-coverage-triage.json before changing production."
    },
    {
      "id": "serp-ctr-learning-loop",
      "status": "implemented",
      "impact": "medium",
      "category": "search_operations",
      "objective": "Use Search Console query, impression and CTR data to improve titles, snippets and internal links.",
      "implemented_artifacts": ["search-performance-feedback-loop.json", "tools/search-performance-feedback-audit.py", "tools/serp-snippet-audit.py", "tools/serp-feature-opportunity-audit.py", "search-intent-map.json", "serp-feature-opportunity-map.json", "search-operations-runbook.json"],
      "verification_commands": ["npm run qa:search-feedback", "npm run qa:serp", "npm run qa:serp-features", "npm run qa:search-ops", "npm run qa:launch"],
      "evidence_signals": ["13 priority targets mapped", "5 decision rules ready", "4 aggregate data sources guarded", "snippet contract in place", "intent map in place", "20 SERP feature opportunities mapped"],
      "next_action": "After approved deploy and Search Console data, optimize one target cluster at a time from the feedback-loop contract."
    },
    {
      "id": "serp-experiment-map",
      "status": "implemented",
      "impact": "critical",
      "category": "serp_ctr",
      "objective": "Govern title, meta-description and answer-snippet experiments for priority pages with measurement, rollback and safe-claim boundaries.",
      "implemented_artifacts": ["serp-experiment-map.json", "tools/serp-experiment-map-audit.py", "search-performance-feedback-loop.json", "search-intent-map.json", "query-cannibalization-map.json", "site-facts.json", "llms.txt", "sitemap-ai.xml"],
      "verification_commands": ["npm run qa:serp-experiments", "npm run qa:search-feedback", "npm run qa:intent", "npm run qa:launch"],
      "evidence_signals": ["18 SERP experiments ready", "10 critical experiments guarded", "8+ page types covered", "measurement and rollback required", "unsafe claim wording blocked"],
      "next_action": "After approved deploy and 28+ days of Search Console data, test one critical page at a time and revert if query quality or safety declines."
    },
    {
      "id": "geo-answer-qa-matrix",
      "status": "implemented",
      "impact": "critical",
      "category": "geo_ai_search",
      "objective": "Test AI-answer prompts against preferred sources, citation URLs, required entities and safe answer boundaries.",
      "implemented_artifacts": ["geo-answer-qa-matrix.json", "tools/geo-answer-qa-audit.py", "answer-engine-source-map.json", "ai-citation-pack.json", "site-facts.json", "sitemap-ai.xml"],
      "verification_commands": ["npm run qa:geo-answer", "npm run qa:answer-sources", "npm run qa:ai-context", "npm run qa:launch"],
      "evidence_signals": ["20 answer cases ready", "8+ critical prompts guarded", "6+ compound prompts guarded", "preferred citations aligned with answer source map", "unsafe answer patterns blocked"],
      "next_action": "After approved deploy, compare live answer-engine summaries with this matrix and update source pages only when evidence shows a real gap."
    },
    {
      "id": "answer-snippet-bank",
      "status": "implemented",
      "impact": "critical",
      "category": "geo_ai_search",
      "objective": "Expose concise, source-bound answer snippets for high-value brand, catalog, product, policy, quality, tool, category and logistics intents without unsafe claims.",
      "implemented_artifacts": ["answer-snippet-bank.json", "tools/answer-snippet-bank-audit.py", "answer-engine-source-map.json", "ai-citation-pack.json", "site-facts.json", "llms.txt", "sitemap-ai.xml"],
      "verification_commands": ["npm run qa:answer-snippets", "npm run qa:geo-answer", "npm run qa:ai-context", "npm run qa:launch"],
      "evidence_signals": ["20 safe snippets ready", "10+ critical snippets", "8+ intent types covered", "preferred source and citation IDs required", "measurement sources attached"],
      "next_action": "After approved deploy, compare live AI-answer summaries and SERP snippets with the bank, then update only the source-bound snippet that evidence shows is weak."
    },
    {
      "id": "faq-answer-feed",
      "status": "implemented",
      "impact": "critical",
      "category": "geo_ai_search",
      "objective": "Expose source-bound FAQ answers for long-tail search, FAQ schema planning, answer-engine summaries and safe research-use boundaries.",
      "implemented_artifacts": ["faq-answer-feed.json", "tools/faq-answer-feed-audit.py", "answer-snippet-bank.json", "ai-citation-pack.json", "site-facts.json", "llms.txt", "sitemap-ai.xml"],
      "verification_commands": ["npm run qa:faq-feed", "npm run qa:answer-snippets", "npm run qa:ai-context", "npm run qa:launch"],
      "evidence_signals": ["24 FAQ answers ready", "12+ critical questions", "9+ intent types covered", "snippet and citation IDs required", "source pages and safe boundaries checked"],
      "next_action": "After approved deploy, compare FAQ rich-result visibility, long-tail query impressions and answer-engine summaries before expanding questions."
    },
    {
      "id": "competitive-claim-proof-map",
      "status": "implemented",
      "impact": "critical",
      "category": "geo_ai_search",
      "objective": "Tie commercial and trust differentiators to proof URLs, allowed phrasing and explicit overclaim boundaries for snippets and AI answers.",
      "implemented_artifacts": ["competitive-claim-map.json", "tools/competitive-claim-map-audit.py", "site-facts.json", "llms.txt", "sitemap-ai.xml"],
      "verification_commands": ["npm run qa:claim-map", "npm run qa:seo", "npm run qa:ai-context", "npm run qa:launch"],
      "evidence_signals": ["16 proof-backed claims mapped", "8+ critical differentiators guarded", "12+ unique evidence URLs", "allowed/disallowed phrasing required", "research-use boundaries enforced"],
      "next_action": "After approved deploy, compare live snippets and AI summaries against this proof map before changing claim copy."
    },
    {
      "id": "entity-resolution-sameas-map",
      "status": "implemented",
      "impact": "critical",
      "category": "entity_authority",
      "objective": "Reconcile brand, legal operator, schema anchors, contact points, social profiles, policies, language signals and catalog identity for knowledge-graph and answer-engine consistency.",
      "implemented_artifacts": ["entity-resolution-map.json", "tools/entity-resolution-map-audit.py", "site-facts.json", "assets/js/schema-builder.js", "sitemap-ai.xml"],
      "verification_commands": ["npm run qa:entity-resolution", "npm run qa:entity", "npm run qa:schema", "npm run qa:launch"],
      "evidence_signals": ["12 entity resolution records", "7+ critical records", "18+ local evidence URLs", "sameAs consistency checked", "conflict guards enforced"],
      "next_action": "After approved deploy, compare live knowledge-panel and AI identity summaries against this map before changing schema or sameAs URLs."
    },
    {
      "id": "seo-geo-quality-scorecard",
      "status": "implemented",
      "impact": "critical",
      "category": "geo_ai_search",
      "objective": "Maintain a single 20-control launch-quality scorecard across technical SEO, GEO, schema, entity, evidence, internal links, freshness, performance, operations and research-use safety.",
      "implemented_artifacts": ["seo-geo-quality-scorecard.json", "tools/seo-geo-quality-scorecard-audit.py", "site-facts.json", "llms.txt", "sitemap-ai.xml"],
      "verification_commands": ["npm run qa:quality-scorecard", "npm run qa:seo", "npm run qa:ai-context", "npm run qa:launch"],
      "evidence_signals": ["20 scorecard controls", "10+ critical controls", "launch quality score 100", "ranking-promise wording blocked", "discovery wired"],
      "next_action": "After approved deploy, compare real Search Console, Bing and answer-engine output against the scorecard before changing priority pages."
    },
    {
      "id": "search-market-coverage-matrix",
      "status": "implemented",
      "impact": "critical",
      "category": "international_seo",
      "objective": "Map priority markets, languages, query themes, source pages, proof assets, AI citations and post-deploy measurement sources before expanding SEO/GEO content.",
      "implemented_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:ai-context", "npm run qa:launch"],
      "evidence_signals": ["18 market rows", "11 storefront locales covered", "8+ critical market rows", "answer-source and citation bindings checked", "post-deploy measurement sources mapped"],
      "next_action": "After approved deploy, compare GSC/Bing query coverage per market before creating or changing localized pages."
    },
    {
      "id": "monthly-content-refresh-loop",
      "status": "implemented",
      "impact": "medium",
      "category": "freshness",
      "objective": "Keep research and quality content current without fake lastmod churn.",
      "implemented_artifacts": ["content-refresh-governance.json", "tools/content-refresh-governance-audit.py", "tools/freshness-integrity-audit.py", "blog/feed.xml", "sitemap-content.xml", "search-operations-runbook.json"],
      "verification_commands": ["npm run qa:content-refresh", "npm run qa:freshness", "npm run qa:search-ops", "npm run qa:launch"],
      "evidence_signals": ["20 monitored refresh assets mapped", "5 refresh rules ready", "4 evidence inputs wired", "RSS and article dates guarded", "fake lastmod churn blocked"],
      "next_action": "Review content monthly from the governance file, update only materially changed pages, then rebuild sitemaps."
    }
  ]
}
