{
  "seed": 20260921,
  "method": "random.Random(seed).random() < 0.5 \u2192 first-listed member keeps schema",
  "pairs": [
    {
      "pair": "P1",
      "site": "o3bn",
      "keep": "https://over30blackandnerdy.com/post-backpacker-rap-blerd-culture.html",
      "remove": "https://over30blackandnerdy.com/post-afrofuturism-started-with-us.html",
      "note": "Lineage essays"
    },
    {
      "pair": "P2",
      "site": "o3bn",
      "keep": "https://over30blackandnerdy.com/post-berserk-masculine-grief.html",
      "remove": "https://over30blackandnerdy.com/post-black-anime-creators.html",
      "note": "Forced pair \u2014 essay vs. directory"
    },
    {
      "pair": "P3",
      "site": "sable",
      "keep": "https://sablesearch.com/blog/citation-concentration-ai-search/",
      "remove": "https://sablesearch.com/blog/how-to-measure-geo-citation-rate/",
      "note": "Data / measurement"
    },
    {
      "pair": "P4",
      "site": "sable",
      "keep": "https://sablesearch.com/blog/schema-markup-geo-ai-citation/",
      "remove": "https://sablesearch.com/blog/why-ai-doesnt-cite-your-content/",
      "note": "Tactical how-to"
    },
    {
      "pair": "P5",
      "site": "sable",
      "keep": "https://sablesearch.com/blog/how-ai-search-engines-decide-which-brands-to-cite/",
      "remove": "https://sablesearch.com/blog/localized-geo-international-ai-citation/",
      "note": "Forced pair \u2014 length mismatch"
    },
    {
      "pair": "P6",
      "site": "jcs",
      "keep": "https://jasoncsummers.com/blog/agentic-commerce-analytics-blind-spot/",
      "remove": "https://jasoncsummers.com/blog/ranking-first-no-longer-means-getting-cited/",
      "note": "Data-led essays"
    },
    {
      "pair": "P7",
      "site": "jcs",
      "keep": "https://jasoncsummers.com/blog/claude-code-for-enterprise-seo/",
      "remove": "https://jasoncsummers.com/blog/your-brand-isnt-in-ai-search-3-hour-fix/",
      "note": "Practical guides"
    }
  ]
}