{
  "generatedAt": "2026-06-24T09:14:39.495Z",
  "project": "LLMs.txt Kit",
  "domain": "llmstxtkit.com",
  "campaign": "first-distribution",
  "status": "distribution_launch_queue_ready_to_execute",
  "summary": {
    "queueItems": 18,
    "finalDomainLive": true,
    "readyWhenFinalDomainLive": 0,
    "readyToPostNow": 18,
    "validatedEvidence": 0,
    "invalidEvidence": 0,
    "observedCampaignEvents": 1
  },
  "guardrails": [
    "Only post when the discussion is directly relevant.",
    "Answer the user's question first; link only when the tool or guide helps.",
    "Disclose affiliation when posting owned content.",
    "Do not ask for votes, fake searches, fake clicks, or reposts.",
    "Do not post Google search URLs as an SEO trick; always link directly to the useful asset.",
    "Use UTM-tagged links so real visits can be attributed in access logs.",
    "Do not post while using the temporary preview URL as the public launch URL.",
    "Do not claim a special deal unless there is a real, user-facing offer.",
    "Do not ask people to search Google for the brand or keyword.",
    "Do not ask for votes, clicks, backlinks, reposts, or artificial engagement.",
    "Skip the placement when the answer would not be genuinely useful without the link.",
    "This queue is a posting workflow, not proof by itself.",
    "Only imported public evidence or observed UTM traffic can satisfy the real distribution gate."
  ],
  "items": [
    {
      "id": "reddit-llms-txt-question",
      "day": 1,
      "status": "ready_to_post",
      "community": "Reddit SEO or webmaster thread",
      "queryAnswered": "How should I create llms.txt?",
      "angle": "Explain llms.txt as a curated map, not a ranking hack.",
      "searchPrompts": [
        "reddit llms.txt generator",
        "site:reddit.com/r/SEO llms.txt",
        "site:reddit.com/r/webdev llms.txt"
      ],
      "trackedUrl": "https://llmstxtkit.com/?utm_source=reddit&utm_medium=community-answer&utm_campaign=first-distribution&utm_content=reddit-llms-txt-question",
      "draft": "I would treat llms.txt as a curated public map, not as an SEO shortcut.\n\nThe useful version is usually small:\n- one plain-language site summary\n- canonical public pages only\n- notes about what the page should not be used to infer\n- no private URLs, hidden claims, or keyword stuffing\n\nI made a free generator here if you want a starting point: https://llmstxtkit.com/?utm_source=reddit&utm_medium=community-answer&utm_campaign=first-distribution&utm_content=reddit-llms-txt-question",
      "observedEvents": 0,
      "evidenceRecord": null,
      "prePostChecklist": [
        "The thread or page is directly relevant to the queryAnswered field.",
        "The reply answers the question before linking.",
        "Affiliation is disclosed when posting owned content.",
        "The link points directly to the useful asset, not a Google search URL.",
        "No one is asked for votes, clicks, backlinks, fake searches, or artificial engagement.",
        "The final domain is live; do not use the temporary preview URL for public launch distribution."
      ],
      "successEvidence": [
        "Public post/comment/README URL is saved.",
        "utm_content appears in campaign attribution or a valid manual evidence record is imported.",
        "Any meaningful replies, saves, referrals, Search Console impressions, or funnel events are recorded."
      ],
      "commands": {
        "recordPostedEvidence": "npm run distribution:evidence -- --placement-id 'reddit-llms-txt-question' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'posted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordAcceptedEvidence": "npm run distribution:evidence -- --placement-id 'reddit-llms-txt-question' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'accepted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordSkippedEvidence": "npm run distribution:evidence -- --placement-id 'reddit-llms-txt-question' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'skipped' --note 'Affiliation disclosed; answer-first placement.'",
        "recordRemovedEvidence": "npm run distribution:evidence -- --placement-id 'reddit-llms-txt-question' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'removed' --note 'Affiliation disclosed; answer-first placement.'"
      }
    },
    {
      "id": "reddit-ai-robots-checker",
      "day": 2,
      "status": "ready_to_post",
      "community": "Reddit SEO, webdev, or webmaster thread",
      "queryAnswered": "Is my robots.txt blocking AI/search crawlers?",
      "angle": "Help someone check whether robots.txt blocks search or AI crawlers.",
      "searchPrompts": [
        "reddit robots.txt AI crawler checker",
        "site:reddit.com/r/SEO GPTBot robots.txt",
        "site:reddit.com/r/webdev OAI-SearchBot robots.txt"
      ],
      "trackedUrl": "https://llmstxtkit.com/tools/ai-crawler-robots-txt-checker.html?utm_source=reddit&utm_medium=community-answer&utm_campaign=first-distribution&utm_content=reddit-ai-robots-checker",
      "draft": "Before rewriting robots.txt, I would first test the current file against the crawler tokens you care about.\n\nCommon mistakes:\n- blocking User-agent: * and accidentally blocking normal search crawling\n- mixing GPTBot and OAI-SearchBot as if they are the same use case\n- assuming robots.txt hides private pages\n- forgetting to keep sitemap.xml reachable\n\nI made a paste-in checker for Googlebot, OAI-SearchBot, GPTBot, Google-Extended, Applebot, PerplexityBot, and CCBot here: https://llmstxtkit.com/tools/ai-crawler-robots-txt-checker.html?utm_source=reddit&utm_medium=community-answer&utm_campaign=first-distribution&utm_content=reddit-ai-robots-checker",
      "observedEvents": 0,
      "evidenceRecord": null,
      "prePostChecklist": [
        "The thread or page is directly relevant to the queryAnswered field.",
        "The reply answers the question before linking.",
        "Affiliation is disclosed when posting owned content.",
        "The link points directly to the useful asset, not a Google search URL.",
        "No one is asked for votes, clicks, backlinks, fake searches, or artificial engagement.",
        "The final domain is live; do not use the temporary preview URL for public launch distribution."
      ],
      "successEvidence": [
        "Public post/comment/README URL is saved.",
        "utm_content appears in campaign attribution or a valid manual evidence record is imported.",
        "Any meaningful replies, saves, referrals, Search Console impressions, or funnel events are recorded."
      ],
      "commands": {
        "recordPostedEvidence": "npm run distribution:evidence -- --placement-id 'reddit-ai-robots-checker' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'posted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordAcceptedEvidence": "npm run distribution:evidence -- --placement-id 'reddit-ai-robots-checker' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'accepted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordSkippedEvidence": "npm run distribution:evidence -- --placement-id 'reddit-ai-robots-checker' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'skipped' --note 'Affiliation disclosed; answer-first placement.'",
        "recordRemovedEvidence": "npm run distribution:evidence -- --placement-id 'reddit-ai-robots-checker' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'removed' --note 'Affiliation disclosed; answer-first placement.'"
      }
    },
    {
      "id": "reddit-ai-robots-generator",
      "day": 3,
      "status": "ready_to_post",
      "community": "Reddit SEO or webmaster thread",
      "queryAnswered": "How do I allow search but block AI training?",
      "angle": "Separate search crawling from AI training crawler policy.",
      "searchPrompts": [
        "reddit block AI training but allow Googlebot",
        "site:reddit.com/r/SEO Google-Extended GPTBot robots.txt"
      ],
      "trackedUrl": "https://llmstxtkit.com/tools/ai-robots-txt-generator.html?utm_source=reddit&utm_medium=community-answer&utm_campaign=first-distribution&utm_content=reddit-ai-robots-generator",
      "draft": "I would avoid one broad \"block AI\" rule unless you really want to block every use case.\n\nA safer split is:\n- keep Googlebot open if Google Search visibility matters\n- keep OAI-SearchBot open if ChatGPT search visibility matters\n- decide separately on GPTBot, Google-Extended, Applebot-Extended, PerplexityBot, and CCBot\n- keep private content behind auth, not just robots.txt\n\nI made a free generator with those presets here: https://llmstxtkit.com/tools/ai-robots-txt-generator.html?utm_source=reddit&utm_medium=community-answer&utm_campaign=first-distribution&utm_content=reddit-ai-robots-generator",
      "observedEvents": 0,
      "evidenceRecord": null,
      "prePostChecklist": [
        "The thread or page is directly relevant to the queryAnswered field.",
        "The reply answers the question before linking.",
        "Affiliation is disclosed when posting owned content.",
        "The link points directly to the useful asset, not a Google search URL.",
        "No one is asked for votes, clicks, backlinks, fake searches, or artificial engagement.",
        "The final domain is live; do not use the temporary preview URL for public launch distribution."
      ],
      "successEvidence": [
        "Public post/comment/README URL is saved.",
        "utm_content appears in campaign attribution or a valid manual evidence record is imported.",
        "Any meaningful replies, saves, referrals, Search Console impressions, or funnel events are recorded."
      ],
      "commands": {
        "recordPostedEvidence": "npm run distribution:evidence -- --placement-id 'reddit-ai-robots-generator' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'posted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordAcceptedEvidence": "npm run distribution:evidence -- --placement-id 'reddit-ai-robots-generator' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'accepted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordSkippedEvidence": "npm run distribution:evidence -- --placement-id 'reddit-ai-robots-generator' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'skipped' --note 'Affiliation disclosed; answer-first placement.'",
        "recordRemovedEvidence": "npm run distribution:evidence -- --placement-id 'reddit-ai-robots-generator' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'removed' --note 'Affiliation disclosed; answer-first placement.'"
      }
    },
    {
      "id": "reddit-sitemap-to-llms",
      "day": 4,
      "status": "ready_to_post",
      "community": "Reddit SEO, webdev, or webmaster thread",
      "queryAnswered": "Can I convert sitemap.xml into llms.txt?",
      "angle": "Turn a sitemap into a small curated llms.txt draft.",
      "searchPrompts": [
        "reddit sitemap to llms.txt",
        "site:reddit.com/r/webdev sitemap llms.txt"
      ],
      "trackedUrl": "https://llmstxtkit.com/tools/sitemap-to-llms-txt.html?utm_source=reddit&utm_medium=community-answer&utm_campaign=first-distribution&utm_content=reddit-sitemap-to-llms",
      "draft": "A sitemap is a decent starting point, but I would not dump every URL into llms.txt.\n\nThe cleaner workflow is:\n- import sitemap.xml\n- keep homepage, top guides, product/service pages, docs, and policy pages\n- remove thin tags, archives, filtered pages, and private-looking URLs\n- add one short summary so the file is useful to humans too\n\nI made a sitemap-to-llms.txt draft tool here: https://llmstxtkit.com/tools/sitemap-to-llms-txt.html?utm_source=reddit&utm_medium=community-answer&utm_campaign=first-distribution&utm_content=reddit-sitemap-to-llms",
      "observedEvents": 0,
      "evidenceRecord": null,
      "prePostChecklist": [
        "The thread or page is directly relevant to the queryAnswered field.",
        "The reply answers the question before linking.",
        "Affiliation is disclosed when posting owned content.",
        "The link points directly to the useful asset, not a Google search URL.",
        "No one is asked for votes, clicks, backlinks, fake searches, or artificial engagement.",
        "The final domain is live; do not use the temporary preview URL for public launch distribution."
      ],
      "successEvidence": [
        "Public post/comment/README URL is saved.",
        "utm_content appears in campaign attribution or a valid manual evidence record is imported.",
        "Any meaningful replies, saves, referrals, Search Console impressions, or funnel events are recorded."
      ],
      "commands": {
        "recordPostedEvidence": "npm run distribution:evidence -- --placement-id 'reddit-sitemap-to-llms' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'posted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordAcceptedEvidence": "npm run distribution:evidence -- --placement-id 'reddit-sitemap-to-llms' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'accepted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordSkippedEvidence": "npm run distribution:evidence -- --placement-id 'reddit-sitemap-to-llms' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'skipped' --note 'Affiliation disclosed; answer-first placement.'",
        "recordRemovedEvidence": "npm run distribution:evidence -- --placement-id 'reddit-sitemap-to-llms' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'removed' --note 'Affiliation disclosed; answer-first placement.'"
      }
    },
    {
      "id": "hackernews-showhn",
      "day": 5,
      "status": "ready_to_post",
      "community": "Hacker News",
      "queryAnswered": "Technical discussion around AI crawler policy data",
      "angle": "Launch as a small crawler-policy benchmark, not generic AI SEO.",
      "searchPrompts": [
        "Hacker News AI crawler robots.txt",
        "Hacker News llms.txt"
      ],
      "trackedUrl": "https://llmstxtkit.com/data/ai-crawler-policy-benchmark.html?utm_source=hackernews&utm_medium=launch-post&utm_campaign=first-distribution&utm_content=hackernews-showhn",
      "draft": "Show HN: I built a small benchmark and toolkit for AI crawler visibility.\n\nIt compares common crawler tokens and policy choices across Googlebot, Google-Extended, OAI-SearchBot, GPTBot, Applebot, PerplexityBot, and CCBot. The practical goal is to help site owners avoid mixing up search visibility, AI input, and AI training policy.\n\nThe benchmark and CSV are here: https://llmstxtkit.com/data/ai-crawler-policy-benchmark.html?utm_source=hackernews&utm_medium=launch-post&utm_campaign=first-distribution&utm_content=hackernews-showhn\n\nFeedback welcome, especially if you have examples of crawler tokens or robots.txt edge cases I should add.",
      "observedEvents": 0,
      "evidenceRecord": null,
      "prePostChecklist": [
        "The thread or page is directly relevant to the queryAnswered field.",
        "The reply answers the question before linking.",
        "Affiliation is disclosed when posting owned content.",
        "The link points directly to the useful asset, not a Google search URL.",
        "No one is asked for votes, clicks, backlinks, fake searches, or artificial engagement.",
        "The final domain is live; do not use the temporary preview URL for public launch distribution."
      ],
      "successEvidence": [
        "Public post/comment/README URL is saved.",
        "utm_content appears in campaign attribution or a valid manual evidence record is imported.",
        "Any meaningful replies, saves, referrals, Search Console impressions, or funnel events are recorded."
      ],
      "commands": {
        "recordPostedEvidence": "npm run distribution:evidence -- --placement-id 'hackernews-showhn' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'posted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordAcceptedEvidence": "npm run distribution:evidence -- --placement-id 'hackernews-showhn' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'accepted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordSkippedEvidence": "npm run distribution:evidence -- --placement-id 'hackernews-showhn' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'skipped' --note 'Affiliation disclosed; answer-first placement.'",
        "recordRemovedEvidence": "npm run distribution:evidence -- --placement-id 'hackernews-showhn' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'removed' --note 'Affiliation disclosed; answer-first placement.'"
      }
    },
    {
      "id": "ai-tools-directory",
      "day": null,
      "status": "ready_to_post",
      "community": "Curated AI tools or SEO tools directory",
      "queryAnswered": "Free tool listing for AI crawler visibility and llms.txt utilities",
      "angle": "Submit the tools hub to relevant curated AI, SEO, and webmaster directories.",
      "searchPrompts": [
        "AI tools directory submit",
        "SEO tools directory submit",
        "webmaster tools directory"
      ],
      "trackedUrl": "https://llmstxtkit.com/tools/?utm_source=directory&utm_medium=listing&utm_campaign=first-distribution&utm_content=ai-tools-directory",
      "draft": "Name: LLMs.txt Kit\nURL: https://llmstxtkit.com/tools/?utm_source=directory&utm_medium=listing&utm_campaign=first-distribution&utm_content=ai-tools-directory\nCategory: AI SEO tools / webmaster tools\nShort description: Free browser tools for llms.txt, AI crawler robots.txt rules, crawler log proof, and AI search visibility checks.\n\nLong description: LLMs.txt Kit helps site owners create and validate llms.txt files, generate AI crawler robots.txt policies, check GPTBot/OAI-SearchBot/Googlebot access, analyze crawler log samples, and prepare safe launch proof without fake clicks or link spam.\n\nPricing: Free\nBest for: founders, SEOs, developers, publishers, and small teams reviewing AI crawler visibility.",
      "observedEvents": 0,
      "evidenceRecord": null,
      "prePostChecklist": [
        "The thread or page is directly relevant to the queryAnswered field.",
        "The reply answers the question before linking.",
        "Affiliation is disclosed when posting owned content.",
        "The link points directly to the useful asset, not a Google search URL.",
        "No one is asked for votes, clicks, backlinks, fake searches, or artificial engagement.",
        "The final domain is live; do not use the temporary preview URL for public launch distribution."
      ],
      "successEvidence": [
        "Public post/comment/README URL is saved.",
        "utm_content appears in campaign attribution or a valid manual evidence record is imported.",
        "Any meaningful replies, saves, referrals, Search Console impressions, or funnel events are recorded."
      ],
      "commands": {
        "recordPostedEvidence": "npm run distribution:evidence -- --placement-id 'ai-tools-directory' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'posted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordAcceptedEvidence": "npm run distribution:evidence -- --placement-id 'ai-tools-directory' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'accepted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordSkippedEvidence": "npm run distribution:evidence -- --placement-id 'ai-tools-directory' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'skipped' --note 'Affiliation disclosed; answer-first placement.'",
        "recordRemovedEvidence": "npm run distribution:evidence -- --placement-id 'ai-tools-directory' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'removed' --note 'Affiliation disclosed; answer-first placement.'"
      }
    },
    {
      "id": "seo-newsletter-tip",
      "day": null,
      "status": "ready_to_post",
      "community": "SEO newsletter, webmaster roundup, or curator email",
      "queryAnswered": "Short useful tip about free AI crawler and llms.txt tools",
      "angle": "Pitch a concise tool tip to relevant SEO newsletters or webmaster roundups.",
      "searchPrompts": [
        "technical SEO newsletter submit tool",
        "webmaster newsletter tool tip",
        "SEO roundup submit"
      ],
      "trackedUrl": "https://llmstxtkit.com/resources/tool-directory-submission-kit.html?utm_source=newsletter&utm_medium=tool-tip&utm_campaign=first-distribution&utm_content=seo-newsletter-tip",
      "draft": "Tool tip: LLMs.txt Kit is a free set of browser tools for AI crawler visibility.\n\nUseful if you need to:\n- generate an llms.txt file\n- validate an llms.txt draft\n- check whether robots.txt blocks OAI-SearchBot, GPTBot, Googlebot, Google-Extended, Applebot, PerplexityBot, or CCBot\n- analyze crawler log samples\n- convert sitemap URLs into a curated llms.txt draft\n\nTool and submission copy:\nhttps://llmstxtkit.com/resources/tool-directory-submission-kit.html?utm_source=newsletter&utm_medium=tool-tip&utm_campaign=first-distribution&utm_content=seo-newsletter-tip",
      "observedEvents": 0,
      "evidenceRecord": null,
      "prePostChecklist": [
        "The thread or page is directly relevant to the queryAnswered field.",
        "The reply answers the question before linking.",
        "Affiliation is disclosed when posting owned content.",
        "The link points directly to the useful asset, not a Google search URL.",
        "No one is asked for votes, clicks, backlinks, fake searches, or artificial engagement.",
        "The final domain is live; do not use the temporary preview URL for public launch distribution."
      ],
      "successEvidence": [
        "Public post/comment/README URL is saved.",
        "utm_content appears in campaign attribution or a valid manual evidence record is imported.",
        "Any meaningful replies, saves, referrals, Search Console impressions, or funnel events are recorded."
      ],
      "commands": {
        "recordPostedEvidence": "npm run distribution:evidence -- --placement-id 'seo-newsletter-tip' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'posted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordAcceptedEvidence": "npm run distribution:evidence -- --placement-id 'seo-newsletter-tip' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'accepted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordSkippedEvidence": "npm run distribution:evidence -- --placement-id 'seo-newsletter-tip' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'skipped' --note 'Affiliation disclosed; answer-first placement.'",
        "recordRemovedEvidence": "npm run distribution:evidence -- --placement-id 'seo-newsletter-tip' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'removed' --note 'Affiliation disclosed; answer-first placement.'"
      }
    },
    {
      "id": "github-readme",
      "day": 5,
      "status": "ready_to_post",
      "community": "GitHub README or gist",
      "queryAnswered": "Reusable AI crawler policy and llms.txt snippets",
      "angle": "Offer copyable README snippets for maintainers.",
      "searchPrompts": [
        "github llms.txt readme",
        "github robots.txt AI crawler policy"
      ],
      "trackedUrl": "https://llmstxtkit.com/resources/github-readme-snippets.html?utm_source=github&utm_medium=readme&utm_campaign=first-distribution&utm_content=github-readme",
      "draft": "If you maintain public docs, I would add a short crawler visibility note instead of a vague \"AI SEO\" claim.\n\nUseful README links:\n- robots.txt\n- sitemap.xml\n- llms.txt, if you maintain one\n- a short note separating search crawling from AI-training crawler policy\n\nCopy-ready README snippets are here: https://llmstxtkit.com/resources/github-readme-snippets.html?utm_source=github&utm_medium=readme&utm_campaign=first-distribution&utm_content=github-readme",
      "observedEvents": 0,
      "evidenceRecord": null,
      "prePostChecklist": [
        "The thread or page is directly relevant to the queryAnswered field.",
        "The reply answers the question before linking.",
        "Affiliation is disclosed when posting owned content.",
        "The link points directly to the useful asset, not a Google search URL.",
        "No one is asked for votes, clicks, backlinks, fake searches, or artificial engagement.",
        "The final domain is live; do not use the temporary preview URL for public launch distribution."
      ],
      "successEvidence": [
        "Public post/comment/README URL is saved.",
        "utm_content appears in campaign attribution or a valid manual evidence record is imported.",
        "Any meaningful replies, saves, referrals, Search Console impressions, or funnel events are recorded."
      ],
      "commands": {
        "recordPostedEvidence": "npm run distribution:evidence -- --placement-id 'github-readme' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'posted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordAcceptedEvidence": "npm run distribution:evidence -- --placement-id 'github-readme' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'accepted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordSkippedEvidence": "npm run distribution:evidence -- --placement-id 'github-readme' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'skipped' --note 'Affiliation disclosed; answer-first placement.'",
        "recordRemovedEvidence": "npm run distribution:evidence -- --placement-id 'github-readme' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'removed' --note 'Affiliation disclosed; answer-first placement.'"
      }
    },
    {
      "id": "github-issue-checklist",
      "day": 5,
      "status": "ready_to_post",
      "community": "GitHub issue discussion",
      "queryAnswered": "What should be checked before changing robots.txt or llms.txt?",
      "angle": "Turn crawler policy changes into an issue checklist.",
      "searchPrompts": [
        "github issue robots.txt GPTBot",
        "github issue llms.txt sitemap"
      ],
      "trackedUrl": "https://llmstxtkit.com/resources/github-readme-snippets.html?utm_source=github&utm_medium=issue&utm_campaign=first-distribution&utm_content=github-issue-checklist",
      "draft": "Before changing robots.txt or llms.txt, I would open a small checklist issue so the team agrees on intent.\n\nI would ask:\n- should Googlebot stay allowed?\n- should OAI-SearchBot stay allowed for ChatGPT search visibility?\n- should GPTBot / Google-Extended / CCBot be allowed, limited, or blocked?\n- does sitemap.xml still list canonical public pages?\n- are private pages protected by auth rather than robots.txt?\n\nI put a copyable checklist here: https://llmstxtkit.com/resources/github-readme-snippets.html?utm_source=github&utm_medium=issue&utm_campaign=first-distribution&utm_content=github-issue-checklist",
      "observedEvents": 0,
      "evidenceRecord": null,
      "prePostChecklist": [
        "The thread or page is directly relevant to the queryAnswered field.",
        "The reply answers the question before linking.",
        "Affiliation is disclosed when posting owned content.",
        "The link points directly to the useful asset, not a Google search URL.",
        "No one is asked for votes, clicks, backlinks, fake searches, or artificial engagement.",
        "The final domain is live; do not use the temporary preview URL for public launch distribution."
      ],
      "successEvidence": [
        "Public post/comment/README URL is saved.",
        "utm_content appears in campaign attribution or a valid manual evidence record is imported.",
        "Any meaningful replies, saves, referrals, Search Console impressions, or funnel events are recorded."
      ],
      "commands": {
        "recordPostedEvidence": "npm run distribution:evidence -- --placement-id 'github-issue-checklist' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'posted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordAcceptedEvidence": "npm run distribution:evidence -- --placement-id 'github-issue-checklist' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'accepted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordSkippedEvidence": "npm run distribution:evidence -- --placement-id 'github-issue-checklist' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'skipped' --note 'Affiliation disclosed; answer-first placement.'",
        "recordRemovedEvidence": "npm run distribution:evidence -- --placement-id 'github-issue-checklist' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'removed' --note 'Affiliation disclosed; answer-first placement.'"
      }
    },
    {
      "id": "github-pr-note",
      "day": 5,
      "status": "ready_to_post",
      "community": "GitHub pull request discussion",
      "queryAnswered": "How should a PR explain AI crawler policy changes?",
      "angle": "Give reviewers a clear crawler-policy PR note.",
      "searchPrompts": [
        "github PR robots.txt AI crawler",
        "github pull request llms.txt"
      ],
      "trackedUrl": "https://llmstxtkit.com/resources/github-readme-snippets.html?utm_source=github&utm_medium=pull-request&utm_campaign=first-distribution&utm_content=github-pr-note",
      "draft": "For a PR that touches robots.txt, sitemap.xml, or llms.txt, I would include reviewer context like:\n\n\"This keeps search crawling open while making AI-training crawler policy explicit. It does not hide private content; private content still needs auth.\"\n\nThat avoids reviewers guessing whether the PR is about SEO, AI training, privacy, or crawl budget.\n\nI put copyable PR note templates here: https://llmstxtkit.com/resources/github-readme-snippets.html?utm_source=github&utm_medium=pull-request&utm_campaign=first-distribution&utm_content=github-pr-note",
      "observedEvents": 0,
      "evidenceRecord": null,
      "prePostChecklist": [
        "The thread or page is directly relevant to the queryAnswered field.",
        "The reply answers the question before linking.",
        "Affiliation is disclosed when posting owned content.",
        "The link points directly to the useful asset, not a Google search URL.",
        "No one is asked for votes, clicks, backlinks, fake searches, or artificial engagement.",
        "The final domain is live; do not use the temporary preview URL for public launch distribution."
      ],
      "successEvidence": [
        "Public post/comment/README URL is saved.",
        "utm_content appears in campaign attribution or a valid manual evidence record is imported.",
        "Any meaningful replies, saves, referrals, Search Console impressions, or funnel events are recorded."
      ],
      "commands": {
        "recordPostedEvidence": "npm run distribution:evidence -- --placement-id 'github-pr-note' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'posted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordAcceptedEvidence": "npm run distribution:evidence -- --placement-id 'github-pr-note' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'accepted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordSkippedEvidence": "npm run distribution:evidence -- --placement-id 'github-pr-note' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'skipped' --note 'Affiliation disclosed; answer-first placement.'",
        "recordRemovedEvidence": "npm run distribution:evidence -- --placement-id 'github-pr-note' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'removed' --note 'Affiliation disclosed; answer-first placement.'"
      }
    },
    {
      "id": "wordpress-support",
      "day": 6,
      "status": "ready_to_post",
      "community": "WordPress support/community",
      "queryAnswered": "How should WordPress sites structure llms.txt?",
      "angle": "Help WordPress owners avoid archive/tag noise in llms.txt.",
      "searchPrompts": [
        "WordPress support llms.txt",
        "WordPress AI search visibility llms.txt"
      ],
      "trackedUrl": "https://llmstxtkit.com/guides/llms-txt-for-wordpress.html?utm_source=wordpress&utm_medium=support-reply&utm_campaign=first-distribution&utm_content=wordpress-support",
      "draft": "For WordPress, I would avoid making llms.txt another archive page.\n\nThe useful version usually includes:\n- homepage\n- cornerstone guides\n- author/about/editorial policy\n- services or product pages\n- contact page\n\nI would usually skip old tag pages, thin category archives, internal search URLs, and duplicate pagination.\n\nWordPress-specific template: https://llmstxtkit.com/guides/llms-txt-for-wordpress.html?utm_source=wordpress&utm_medium=support-reply&utm_campaign=first-distribution&utm_content=wordpress-support",
      "observedEvents": 0,
      "evidenceRecord": null,
      "prePostChecklist": [
        "The thread or page is directly relevant to the queryAnswered field.",
        "The reply answers the question before linking.",
        "Affiliation is disclosed when posting owned content.",
        "The link points directly to the useful asset, not a Google search URL.",
        "No one is asked for votes, clicks, backlinks, fake searches, or artificial engagement.",
        "The final domain is live; do not use the temporary preview URL for public launch distribution."
      ],
      "successEvidence": [
        "Public post/comment/README URL is saved.",
        "utm_content appears in campaign attribution or a valid manual evidence record is imported.",
        "Any meaningful replies, saves, referrals, Search Console impressions, or funnel events are recorded."
      ],
      "commands": {
        "recordPostedEvidence": "npm run distribution:evidence -- --placement-id 'wordpress-support' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'posted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordAcceptedEvidence": "npm run distribution:evidence -- --placement-id 'wordpress-support' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'accepted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordSkippedEvidence": "npm run distribution:evidence -- --placement-id 'wordpress-support' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'skipped' --note 'Affiliation disclosed; answer-first placement.'",
        "recordRemovedEvidence": "npm run distribution:evidence -- --placement-id 'wordpress-support' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'removed' --note 'Affiliation disclosed; answer-first placement.'"
      }
    },
    {
      "id": "shopify-community",
      "day": 6,
      "status": "ready_to_post",
      "community": "Shopify community",
      "queryAnswered": "How should a Shopify store make an AI-readable map?",
      "angle": "Help Shopify stores summarize important pages instead of every product.",
      "searchPrompts": [
        "Shopify community llms.txt",
        "Shopify AI search visibility"
      ],
      "trackedUrl": "https://llmstxtkit.com/guides/llms-txt-for-shopify.html?utm_source=shopify&utm_medium=community-answer&utm_campaign=first-distribution&utm_content=shopify-community",
      "draft": "For a Shopify store, I would not list every product in llms.txt.\n\nBetter candidates:\n- homepage\n- top collection\n- flagship product\n- sizing or buying guide\n- shipping and return policies\n- contact or store story\n\nThat gives crawlers and AI tools a cleaner map than a giant catalog dump.\n\nShopify template: https://llmstxtkit.com/guides/llms-txt-for-shopify.html?utm_source=shopify&utm_medium=community-answer&utm_campaign=first-distribution&utm_content=shopify-community",
      "observedEvents": 0,
      "evidenceRecord": null,
      "prePostChecklist": [
        "The thread or page is directly relevant to the queryAnswered field.",
        "The reply answers the question before linking.",
        "Affiliation is disclosed when posting owned content.",
        "The link points directly to the useful asset, not a Google search URL.",
        "No one is asked for votes, clicks, backlinks, fake searches, or artificial engagement.",
        "The final domain is live; do not use the temporary preview URL for public launch distribution."
      ],
      "successEvidence": [
        "Public post/comment/README URL is saved.",
        "utm_content appears in campaign attribution or a valid manual evidence record is imported.",
        "Any meaningful replies, saves, referrals, Search Console impressions, or funnel events are recorded."
      ],
      "commands": {
        "recordPostedEvidence": "npm run distribution:evidence -- --placement-id 'shopify-community' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'posted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordAcceptedEvidence": "npm run distribution:evidence -- --placement-id 'shopify-community' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'accepted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordSkippedEvidence": "npm run distribution:evidence -- --placement-id 'shopify-community' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'skipped' --note 'Affiliation disclosed; answer-first placement.'",
        "recordRemovedEvidence": "npm run distribution:evidence -- --placement-id 'shopify-community' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'removed' --note 'Affiliation disclosed; answer-first placement.'"
      }
    },
    {
      "id": "webflow-forum",
      "day": 8,
      "status": "ready_to_post",
      "community": "Webflow community",
      "queryAnswered": "How can a Webflow site publish llms.txt cleanly?",
      "angle": "Explain a simple static llms.txt workflow for Webflow.",
      "searchPrompts": [
        "Webflow forum llms.txt",
        "Webflow AI crawler robots.txt"
      ],
      "trackedUrl": "https://llmstxtkit.com/guides/llms-txt-for-webflow.html?utm_source=webflow&utm_medium=community-answer&utm_campaign=first-distribution&utm_content=webflow-forum",
      "draft": "For Webflow, I would keep llms.txt boring and static.\n\nUse it as a curated public page map:\n- homepage\n- product/service pages\n- top evergreen guides\n- about/contact\n- policy pages that clarify the business\n\nAvoid filtered CMS lists, duplicate category pages, and drafts.\n\nWebflow guide: https://llmstxtkit.com/guides/llms-txt-for-webflow.html?utm_source=webflow&utm_medium=community-answer&utm_campaign=first-distribution&utm_content=webflow-forum",
      "observedEvents": 0,
      "evidenceRecord": null,
      "prePostChecklist": [
        "The thread or page is directly relevant to the queryAnswered field.",
        "The reply answers the question before linking.",
        "Affiliation is disclosed when posting owned content.",
        "The link points directly to the useful asset, not a Google search URL.",
        "No one is asked for votes, clicks, backlinks, fake searches, or artificial engagement.",
        "The final domain is live; do not use the temporary preview URL for public launch distribution."
      ],
      "successEvidence": [
        "Public post/comment/README URL is saved.",
        "utm_content appears in campaign attribution or a valid manual evidence record is imported.",
        "Any meaningful replies, saves, referrals, Search Console impressions, or funnel events are recorded."
      ],
      "commands": {
        "recordPostedEvidence": "npm run distribution:evidence -- --placement-id 'webflow-forum' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'posted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordAcceptedEvidence": "npm run distribution:evidence -- --placement-id 'webflow-forum' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'accepted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordSkippedEvidence": "npm run distribution:evidence -- --placement-id 'webflow-forum' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'skipped' --note 'Affiliation disclosed; answer-first placement.'",
        "recordRemovedEvidence": "npm run distribution:evidence -- --placement-id 'webflow-forum' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'removed' --note 'Affiliation disclosed; answer-first placement.'"
      }
    },
    {
      "id": "wix-community",
      "day": 8,
      "status": "ready_to_post",
      "community": "Wix community",
      "queryAnswered": "How can a Wix site publish an AI-readable page map?",
      "angle": "Give Wix owners a maintainable AI-readable page map.",
      "searchPrompts": [
        "Wix community llms.txt",
        "Wix AI search visibility"
      ],
      "trackedUrl": "https://llmstxtkit.com/guides/llms-txt-for-wix.html?utm_source=wix&utm_medium=community-answer&utm_campaign=first-distribution&utm_content=wix-community",
      "draft": "For Wix, I would keep the AI-readable map small.\n\nInclude pages a human would also consider important:\n- homepage\n- main service pages\n- FAQ or guide pages\n- about/contact\n- booking or pricing if public\n\nDo not turn it into a huge keyword list.\n\nWix guide: https://llmstxtkit.com/guides/llms-txt-for-wix.html?utm_source=wix&utm_medium=community-answer&utm_campaign=first-distribution&utm_content=wix-community",
      "observedEvents": 0,
      "evidenceRecord": null,
      "prePostChecklist": [
        "The thread or page is directly relevant to the queryAnswered field.",
        "The reply answers the question before linking.",
        "Affiliation is disclosed when posting owned content.",
        "The link points directly to the useful asset, not a Google search URL.",
        "No one is asked for votes, clicks, backlinks, fake searches, or artificial engagement.",
        "The final domain is live; do not use the temporary preview URL for public launch distribution."
      ],
      "successEvidence": [
        "Public post/comment/README URL is saved.",
        "utm_content appears in campaign attribution or a valid manual evidence record is imported.",
        "Any meaningful replies, saves, referrals, Search Console impressions, or funnel events are recorded."
      ],
      "commands": {
        "recordPostedEvidence": "npm run distribution:evidence -- --placement-id 'wix-community' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'posted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordAcceptedEvidence": "npm run distribution:evidence -- --placement-id 'wix-community' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'accepted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordSkippedEvidence": "npm run distribution:evidence -- --placement-id 'wix-community' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'skipped' --note 'Affiliation disclosed; answer-first placement.'",
        "recordRemovedEvidence": "npm run distribution:evidence -- --placement-id 'wix-community' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'removed' --note 'Affiliation disclosed; answer-first placement.'"
      }
    },
    {
      "id": "saas-docs-community",
      "day": 9,
      "status": "ready_to_post",
      "community": "Developer documentation community",
      "queryAnswered": "How can SaaS docs be easier for AI tools to interpret?",
      "angle": "Help SaaS docs become easier to interpret without making doorway pages.",
      "searchPrompts": [
        "SaaS docs llms.txt",
        "developer docs AI search visibility"
      ],
      "trackedUrl": "https://llmstxtkit.com/guides/llms-txt-for-saas-docs.html?utm_source=devdocs&utm_medium=community-answer&utm_campaign=first-distribution&utm_content=saas-docs-community",
      "draft": "For SaaS docs, I would optimize for clarity rather than volume.\n\nGood llms.txt entries:\n- quickstart\n- core concepts\n- API reference entry point\n- auth and rate-limit docs\n- changelog\n- support/escalation page\n\nAvoid generating hundreds of near-identical pages just to catch long-tail AI/search queries.\n\nSaaS docs guide: https://llmstxtkit.com/guides/llms-txt-for-saas-docs.html?utm_source=devdocs&utm_medium=community-answer&utm_campaign=first-distribution&utm_content=saas-docs-community",
      "observedEvents": 0,
      "evidenceRecord": null,
      "prePostChecklist": [
        "The thread or page is directly relevant to the queryAnswered field.",
        "The reply answers the question before linking.",
        "Affiliation is disclosed when posting owned content.",
        "The link points directly to the useful asset, not a Google search URL.",
        "No one is asked for votes, clicks, backlinks, fake searches, or artificial engagement.",
        "The final domain is live; do not use the temporary preview URL for public launch distribution."
      ],
      "successEvidence": [
        "Public post/comment/README URL is saved.",
        "utm_content appears in campaign attribution or a valid manual evidence record is imported.",
        "Any meaningful replies, saves, referrals, Search Console impressions, or funnel events are recorded."
      ],
      "commands": {
        "recordPostedEvidence": "npm run distribution:evidence -- --placement-id 'saas-docs-community' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'posted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordAcceptedEvidence": "npm run distribution:evidence -- --placement-id 'saas-docs-community' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'accepted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordSkippedEvidence": "npm run distribution:evidence -- --placement-id 'saas-docs-community' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'skipped' --note 'Affiliation disclosed; answer-first placement.'",
        "recordRemovedEvidence": "npm run distribution:evidence -- --placement-id 'saas-docs-community' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'removed' --note 'Affiliation disclosed; answer-first placement.'"
      }
    },
    {
      "id": "devto-log-analyzer",
      "day": 10,
      "status": "ready_to_post",
      "community": "DEV Community or developer blog comments",
      "queryAnswered": "How can I tell whether AI crawlers are hitting my logs?",
      "angle": "Teach people to inspect actual crawler hits in logs.",
      "searchPrompts": [
        "DEV AI crawler logs",
        "GPTBot access logs OAI-SearchBot"
      ],
      "trackedUrl": "https://llmstxtkit.com/tools/ai-crawler-log-analyzer.html?utm_source=devto&utm_medium=tutorial-comment&utm_campaign=first-distribution&utm_content=devto-log-analyzer",
      "draft": "If you want to know whether AI crawlers are actually visiting, check access logs, not just robots.txt.\n\nI would look for:\n- Googlebot\n- OAI-SearchBot\n- GPTBot\n- Applebot\n- PerplexityBot\n- CCBot\n- requests to /robots.txt, /sitemap.xml, and /llms.txt\n\nI made a paste-in log analyzer here: https://llmstxtkit.com/tools/ai-crawler-log-analyzer.html?utm_source=devto&utm_medium=tutorial-comment&utm_campaign=first-distribution&utm_content=devto-log-analyzer",
      "observedEvents": 0,
      "evidenceRecord": null,
      "prePostChecklist": [
        "The thread or page is directly relevant to the queryAnswered field.",
        "The reply answers the question before linking.",
        "Affiliation is disclosed when posting owned content.",
        "The link points directly to the useful asset, not a Google search URL.",
        "No one is asked for votes, clicks, backlinks, fake searches, or artificial engagement.",
        "The final domain is live; do not use the temporary preview URL for public launch distribution."
      ],
      "successEvidence": [
        "Public post/comment/README URL is saved.",
        "utm_content appears in campaign attribution or a valid manual evidence record is imported.",
        "Any meaningful replies, saves, referrals, Search Console impressions, or funnel events are recorded."
      ],
      "commands": {
        "recordPostedEvidence": "npm run distribution:evidence -- --placement-id 'devto-log-analyzer' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'posted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordAcceptedEvidence": "npm run distribution:evidence -- --placement-id 'devto-log-analyzer' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'accepted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordSkippedEvidence": "npm run distribution:evidence -- --placement-id 'devto-log-analyzer' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'skipped' --note 'Affiliation disclosed; answer-first placement.'",
        "recordRemovedEvidence": "npm run distribution:evidence -- --placement-id 'devto-log-analyzer' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'removed' --note 'Affiliation disclosed; answer-first placement.'"
      }
    },
    {
      "id": "indiehackers-seo",
      "day": 11,
      "status": "ready_to_post",
      "community": "Indie Hackers or founder community",
      "queryAnswered": "What practical AI search visibility steps can a small site take?",
      "angle": "Give founders a low-cost AI search visibility checklist.",
      "searchPrompts": [
        "Indie Hackers AI search visibility",
        "Indie Hackers free SEO tool launch"
      ],
      "trackedUrl": "https://llmstxtkit.com/guides/chatgpt-search-visibility.html?utm_source=indiehackers&utm_medium=community-answer&utm_campaign=first-distribution&utm_content=indiehackers-seo",
      "draft": "For a small site, I would not start with clever SEO tricks.\n\nI would do the boring compounding pieces:\n- make the main tool useful immediately\n- publish sitemap.xml and clean canonical URLs\n- write one or two source-backed guides\n- add llms.txt only as a curated public map\n- separate search crawling from AI-training policy in robots.txt\n- share useful answers in communities only when relevant\n\nI wrote the practical checklist here: https://llmstxtkit.com/guides/chatgpt-search-visibility.html?utm_source=indiehackers&utm_medium=community-answer&utm_campaign=first-distribution&utm_content=indiehackers-seo",
      "observedEvents": 0,
      "evidenceRecord": null,
      "prePostChecklist": [
        "The thread or page is directly relevant to the queryAnswered field.",
        "The reply answers the question before linking.",
        "Affiliation is disclosed when posting owned content.",
        "The link points directly to the useful asset, not a Google search URL.",
        "No one is asked for votes, clicks, backlinks, fake searches, or artificial engagement.",
        "The final domain is live; do not use the temporary preview URL for public launch distribution."
      ],
      "successEvidence": [
        "Public post/comment/README URL is saved.",
        "utm_content appears in campaign attribution or a valid manual evidence record is imported.",
        "Any meaningful replies, saves, referrals, Search Console impressions, or funnel events are recorded."
      ],
      "commands": {
        "recordPostedEvidence": "npm run distribution:evidence -- --placement-id 'indiehackers-seo' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'posted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordAcceptedEvidence": "npm run distribution:evidence -- --placement-id 'indiehackers-seo' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'accepted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordSkippedEvidence": "npm run distribution:evidence -- --placement-id 'indiehackers-seo' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'skipped' --note 'Affiliation disclosed; answer-first placement.'",
        "recordRemovedEvidence": "npm run distribution:evidence -- --placement-id 'indiehackers-seo' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'removed' --note 'Affiliation disclosed; answer-first placement.'"
      }
    },
    {
      "id": "newsletter-changelog",
      "day": 12,
      "status": "ready_to_post",
      "community": "Owned newsletter/update",
      "queryAnswered": "What changed in AI crawler rules?",
      "angle": "Owned update about crawler-policy changes.",
      "searchPrompts": [
        "AI crawler policy changelog",
        "GPTBot OAI-SearchBot Google-Extended update"
      ],
      "trackedUrl": "https://llmstxtkit.com/updates/ai-crawler-policy-changelog.html?utm_source=newsletter&utm_medium=owned-update&utm_campaign=first-distribution&utm_content=newsletter-changelog",
      "draft": "Quick crawler-policy update:\n\nAI/search crawler rules keep changing, so I would avoid copying old robots.txt snippets without checking what each token does.\n\nThe recurring checks:\n- Googlebot vs Google-Extended\n- OAI-SearchBot vs GPTBot\n- Applebot vs Applebot-Extended\n- PerplexityBot and CCBot behavior\n- sitemap.xml and llms.txt still reachable\n\nI keep a source-backed changelog here: https://llmstxtkit.com/updates/ai-crawler-policy-changelog.html?utm_source=newsletter&utm_medium=owned-update&utm_campaign=first-distribution&utm_content=newsletter-changelog",
      "observedEvents": 0,
      "evidenceRecord": null,
      "prePostChecklist": [
        "The thread or page is directly relevant to the queryAnswered field.",
        "The reply answers the question before linking.",
        "Affiliation is disclosed when posting owned content.",
        "The link points directly to the useful asset, not a Google search URL.",
        "No one is asked for votes, clicks, backlinks, fake searches, or artificial engagement.",
        "The final domain is live; do not use the temporary preview URL for public launch distribution."
      ],
      "successEvidence": [
        "Public post/comment/README URL is saved.",
        "utm_content appears in campaign attribution or a valid manual evidence record is imported.",
        "Any meaningful replies, saves, referrals, Search Console impressions, or funnel events are recorded."
      ],
      "commands": {
        "recordPostedEvidence": "npm run distribution:evidence -- --placement-id 'newsletter-changelog' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'posted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordAcceptedEvidence": "npm run distribution:evidence -- --placement-id 'newsletter-changelog' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'accepted' --note 'Affiliation disclosed; answer-first placement.'",
        "recordSkippedEvidence": "npm run distribution:evidence -- --placement-id 'newsletter-changelog' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'skipped' --note 'Affiliation disclosed; answer-first placement.'",
        "recordRemovedEvidence": "npm run distribution:evidence -- --placement-id 'newsletter-changelog' --url PUBLIC_POST_URL --posted-at YYYY-MM-DD --status 'removed' --note 'Affiliation disclosed; answer-first placement.'"
      }
    }
  ],
  "commands": {
    "refreshDistributionExecution": "npm run distribution:execution",
    "refreshDistributionEvidence": "npm run distribution:evidence",
    "refreshDistributionQueue": "npm run distribution:queue",
    "refreshAttribution": "npm run campaign:attribution",
    "refreshTrafficMeasurement": "npm run traffic:measurement",
    "refreshGoalAudit": "npm run goal:audit"
  }
}
