{
  "schema_version": "2026-06-05",
  "purpose": "Post-deploy search operations runbook for Google, Bing, AI discovery, IndexNow and CTR learning loops.",
  "policy": {
    "requires_explicit_deploy_approval": true,
    "no_live_submission_from_localhost": true,
    "no_ranking_guarantees": true,
    "no_blackhat": true,
    "no_paid_link_schemes": true,
    "no_keyword_stuffing": true,
    "research_use_only": true
  },
  "properties": {
    "production_origin": "https://togopeptide.com",
    "sitemap_index": "https://togopeptide.com/sitemap-index.xml",
    "ai_sitemap": "https://togopeptide.com/sitemap-ai.xml",
    "llms_txt": "https://togopeptide.com/llms.txt",
    "site_facts": "https://togopeptide.com/site-facts.json",
    "search_intent_map": "https://togopeptide.com/search-intent-map.json",
    "topical_query_clusters": "https://togopeptide.com/topical-query-clusters.json",
    "content_expansion_briefs": "https://togopeptide.com/content-expansion-briefs.json",
    "ai_citation_pack": "https://togopeptide.com/ai-citation-pack.json",
    "answer_engine_source_map": "https://togopeptide.com/answer-engine-source-map.json",
    "serp_feature_opportunity_map": "https://togopeptide.com/serp-feature-opportunity-map.json",
    "entity_evidence_graph": "https://togopeptide.com/entity-evidence-graph.json",
    "entity_resolution_map": "https://togopeptide.com/entity-resolution-map.json",
    "internal_link_equity_map": "https://togopeptide.com/internal-link-equity-map.json",
    "seo_growth_backlog": "https://togopeptide.com/seo-growth-backlog.json",
    "search_performance_feedback_loop": "https://togopeptide.com/search-performance-feedback-loop.json",
    "content_refresh_governance": "https://togopeptide.com/content-refresh-governance.json",
    "index_coverage_triage": "https://togopeptide.com/index-coverage-triage.json",
    "crawl_priority_map": "https://togopeptide.com/crawl-priority-map.json",
    "organic_conversion_map": "https://togopeptide.com/organic-conversion-map.json",
    "geo_answer_qa_matrix": "https://togopeptide.com/geo-answer-qa-matrix.json",
    "competitive_claim_map": "https://togopeptide.com/competitive-claim-map.json",
    "search_submit_evidence_checklist": "https://togopeptide.com/search-submit-evidence-checklist.json"
  },
  "tasks": [
    {
      "id": "local-launch-gate",
      "phase": "pre_deploy",
      "status": "local_ready",
      "objective": "Verify the local launch state before any production action.",
      "verification_commands": ["npm run qa:launch"],
      "required_evidence": ["100 local gates green", "0 fail", "0 warn"],
      "manual_url": null,
      "next_action": "Do not deploy until the user explicitly approves."
    },
    {
      "id": "deploy-approval-hold",
      "phase": "pre_deploy",
      "status": "local_ready",
      "objective": "Keep deploy, submit and live indexing actions blocked until explicit approval.",
      "verification_commands": ["npm run qa:submit-ready"],
      "required_evidence": ["dry-run guarded submit tooling", "production URL set validated", "search-submit-evidence-checklist.json ready"],
      "manual_url": null,
      "next_action": "Ask for approval before Netlify deploy, sitemap submit or IndexNow confirm."
    },
    {
      "id": "live-robots-sitemap-check",
      "phase": "post_deploy_day_0",
      "status": "manual_after_approved_deploy",
      "objective": "Confirm production robots and sitemap index are reachable after deploy.",
      "verification_commands": ["manual:https://togopeptide.com/robots.txt", "manual:https://togopeptide.com/sitemap-index.xml"],
      "required_evidence": ["robots.txt returns 200", "sitemap-index.xml returns 200", "sitemap-ai.xml listed", "search submit checklist started"],
      "manual_url": "https://togopeptide.com/sitemap-index.xml",
      "next_action": "If a live asset is missing, hold search submission and redeploy the corrected build."
    },
    {
      "id": "google-search-console-submit",
      "phase": "post_deploy_day_0",
      "status": "manual_after_approved_deploy",
      "objective": "Submit the production sitemap index in Google Search Console.",
      "verification_commands": ["manual:https://search.google.com/search-console"],
      "required_evidence": ["property verified", "sitemap-index.xml submitted", "sitemap status accepted or pending", "search submit checklist evidence captured"],
      "manual_url": "https://search.google.com/search-console",
      "next_action": "Record first crawl or coverage errors for the next optimization pass."
    },
    {
      "id": "bing-webmaster-submit",
      "phase": "post_deploy_day_0",
      "status": "manual_after_approved_deploy",
      "objective": "Submit the production sitemap index in Bing Webmaster Tools.",
      "verification_commands": ["manual:https://www.bing.com/webmasters"],
      "required_evidence": ["site verified", "sitemap-index.xml submitted", "Bing crawl status accepted or pending", "search submit checklist evidence captured"],
      "manual_url": "https://www.bing.com/webmasters",
      "next_action": "Use Bing errors to improve crawlability before scaling content."
    },
    {
      "id": "guarded-indexnow-submit",
      "phase": "post_deploy_day_0",
      "status": "manual_after_approved_deploy",
      "objective": "Run IndexNow only against the approved production domain after deploy.",
      "verification_commands": ["python3 tools/indexnow-submit.py --all-sitemaps --dry-run"],
      "required_evidence": ["dry-run payload reviewed", "production deploy visible", "confirm flag used only after approval", "search submit checklist evidence captured"],
      "manual_url": null,
      "next_action": "For live submit, use --confirm-deployed https://togopeptide.com only after approval."
    },
    {
      "id": "money-page-url-inspection",
      "phase": "post_deploy_day_0",
      "status": "manual_after_approved_deploy",
      "objective": "Inspect and request indexing for the highest-value public pages.",
      "verification_commands": ["manual:https://search.google.com/search-console"],
      "required_evidence": ["homepage inspected", "shop inspected", "compound route inspected", "category route inspected", "fresh-batch inspected"],
      "manual_url": "https://search.google.com/search-console",
      "next_action": "Prioritize fixes for canonical, crawl or indexing warnings."
    },
    {
      "id": "ai-discovery-live-check",
      "phase": "post_deploy_day_0",
      "status": "manual_after_approved_deploy",
      "objective": "Confirm AI-readable sources are publicly reachable after deploy.",
      "verification_commands": ["manual:https://togopeptide.com/llms.txt", "manual:https://togopeptide.com/site-facts.json", "manual:https://togopeptide.com/search-intent-map.json", "manual:https://togopeptide.com/answer-engine-source-map.json", "manual:https://togopeptide.com/serp-feature-opportunity-map.json", "manual:https://togopeptide.com/entity-evidence-graph.json", "manual:https://togopeptide.com/entity-resolution-map.json", "manual:https://togopeptide.com/internal-link-equity-map.json", "manual:https://togopeptide.com/search-performance-feedback-loop.json", "manual:https://togopeptide.com/content-refresh-governance.json", "manual:https://togopeptide.com/crawl-priority-map.json", "manual:https://togopeptide.com/organic-conversion-map.json", "manual:https://togopeptide.com/geo-answer-qa-matrix.json", "manual:https://togopeptide.com/competitive-claim-map.json"],
      "required_evidence": ["llms.txt live", "site-facts.json live", "search-intent-map.json live", "topical-query-clusters.json live", "content-expansion-briefs.json live", "ai-citation-pack.json live", "answer-engine-source-map.json live", "serp-feature-opportunity-map.json live", "entity-evidence-graph.json live", "entity-resolution-map.json live", "internal-link-equity-map.json live", "seo-growth-backlog.json live", "search-performance-feedback-loop.json live", "content-refresh-governance.json live", "index-coverage-triage.json live", "crawl-priority-map.json live", "organic-conversion-map.json live", "geo-answer-qa-matrix.json live", "competitive-claim-map.json live"],
      "manual_url": "https://togopeptide.com/llms.txt",
      "next_action": "If a source is blocked, correct redirects/headers before search submission."
    },
    {
      "id": "coverage-error-triage",
      "phase": "post_deploy_day_3_to_7",
      "status": "recurring_after_data",
      "objective": "Review early Search Console and Bing crawl/indexing errors.",
      "verification_commands": ["npm run qa:index-coverage", "manual:https://search.google.com/search-console", "manual:https://www.bing.com/webmasters"],
      "required_evidence": ["index-coverage-triage.json issue selected", "coverage errors exported or screenshot", "blocked URLs classified", "fixes added to backlog"],
      "manual_url": "https://search.google.com/search-console",
      "next_action": "Fix indexing blockers before publishing more content."
    },
    {
      "id": "query-ctr-opportunity-loop",
      "phase": "weekly_after_data",
      "status": "recurring_after_data",
      "objective": "Improve pages with impressions but weak CTR using safe title, snippet and internal-link changes.",
      "verification_commands": ["npm run qa:search-feedback", "npm run qa:serp", "npm run qa:intent"],
      "required_evidence": ["search-performance-feedback-loop.json target selected", "queries exported", "target page selected", "snippet change tested by qa:serp"],
      "manual_url": "https://search.google.com/search-console",
      "next_action": "Update one small cluster at a time and keep claims research-safe."
    },
    {
      "id": "content-refresh-cadence",
      "phase": "monthly_after_data",
      "status": "recurring_after_data",
      "objective": "Refresh high-value research and quality pages only when content materially changes.",
      "verification_commands": ["npm run qa:content-refresh", "npm run qa:freshness", "npm run qa:article-evidence"],
      "required_evidence": ["content-refresh-governance.json asset selected", "changed pages documented", "article dates aligned", "sitemap lastmod regenerated"],
      "manual_url": null,
      "next_action": "Avoid fake freshness; update evidence, references and internal links when the page actually changes."
    },
    {
      "id": "geo-answer-qa-review",
      "phase": "weekly_after_data",
      "status": "recurring_after_data",
      "objective": "Review answer-engine summaries against the GEO answer QA matrix and source-map contract.",
      "verification_commands": ["npm run qa:geo-answer", "npm run qa:answer-sources", "npm run qa:ai-context"],
      "required_evidence": ["geo-answer-qa-matrix.json case selected", "preferred citation checked", "unsafe answer pattern rejected", "source-map drift fixed"],
      "manual_url": null,
      "next_action": "Update preferred sources or page copy only when live answer behavior shows a real gap."
    },
    {
      "id": "competitive-claim-proof-review",
      "phase": "weekly_after_data",
      "status": "recurring_after_data",
      "objective": "Review live snippets and AI summaries against the competitive claim proof map.",
      "verification_commands": ["npm run qa:claim-map", "npm run qa:serp", "npm run qa:geo-answer"],
      "required_evidence": ["competitive-claim-map.json claim selected", "preferred evidence URL checked", "overclaim rejected", "claim copy aligned with source page"],
      "manual_url": null,
      "next_action": "Only strengthen claims when the evidence URL already supports the phrasing."
    },
    {
      "id": "entity-resolution-review",
      "phase": "weekly_after_data",
      "status": "recurring_after_data",
      "objective": "Review live brand/entity summaries against the entity resolution and sameAs map.",
      "verification_commands": ["npm run qa:entity-resolution", "npm run qa:entity", "npm run qa:schema"],
      "required_evidence": ["entity-resolution-map.json record selected", "schema anchor checked", "sameAs consistency checked", "conflict guard applied"],
      "manual_url": null,
      "next_action": "Update schema, site-facts or visible proof pages only when live identity summaries drift."
    },
    {
      "id": "growth-backlog-review",
      "phase": "monthly_after_data",
      "status": "recurring_after_data",
      "objective": "Review SEO/GEO growth tracks against actual crawl, query, CTR and conversion evidence.",
      "verification_commands": ["npm run qa:growth", "npm run qa:launch"],
      "required_evidence": ["completed tracks marked", "new opportunities added", "search-performance-feedback-loop.json reviewed", "content-refresh-governance.json reviewed", "unsafe tactics rejected"],
      "manual_url": null,
      "next_action": "Keep the growth backlog evidence-based and aligned with research-use policy."
    }
  ]
}
