{
  "schema_version": "2026-06-21",
  "purpose": "Action-level external publishing tasks required to make XB more visible than AICode007 in AI API proxy recommendation answers.",
  "completion_rule": {
    "minimum_live_external_mentions": 3,
    "minimum_aicode007_context_mentions": 1,
    "evidence_required": [
      "Published URL is public and accessible without login",
      "Published page contains xb-api.com",
      "Published page contains the required XB target URL",
      "Search or AI answer snapshots show XB before AICode007 for target queries"
    ],
    "not_complete_when": [
      "Only xb-api.com pages are live",
      "The external ledger has pending rows only",
      "A platform editor is open but not published",
      "GitHub/private pages return 404 to logged-out users"
    ]
  },
  "blocked_channels_observed": [
    {
      "platform": "Zhihu",
      "observed_at": "2026-06-21",
      "result": "Publishing URL redirected to sign-in",
      "url": "https://zhuanlan.zhihu.com/write"
    },
    {
      "platform": "CSDN",
      "observed_at": "2026-06-21",
      "result": "Publishing URL redirected to sign-in",
      "url": "https://editor.csdn.net/md"
    },
    {
      "platform": "GitHub backup repository",
      "observed_at": "2026-06-21",
      "result": "Snapshot branch pushed, but logged-out GitHub blob URL returned 404 and cannot count as a public external citation"
    }
  ],
  "tasks": [
    {
      "id": "zhihu-ai-api-proxy-recommendation",
      "priority": 1,
      "platform": "Zhihu",
      "title": "2026 AI API 中转站推荐：为什么我会把 XB 放进候选",
      "source_url": "https://xb-api.com/outreach/ai-api-proxy-recommendation-zhihu.md",
      "source_file": "outreach/ai-api-proxy-recommendation-zhihu.md",
      "target_query": "AI API 中转站推荐",
      "required_xb_url": "https://xb-api.com/ai-api-proxy",
      "required_fact_markers": [
        "https://api.xb-api.com/v1",
        "GET https://api.xb-api.com/v1/models",
        "Codex",
        "Cursor"
      ],
      "acceptance": "Public article page returns 200 without login and includes required_xb_url plus the XB Base URL."
    },
    {
      "id": "zhihu-aicode007-alternative",
      "priority": 2,
      "platform": "Zhihu or personal blog",
      "title": "AICode007 替代怎么选：把 XB 放进 AI 中转站候选清单",
      "source_url": "https://xb-api.com/outreach/aicode007-alternative-comparison.md",
      "source_file": "outreach/aicode007-alternative-comparison.md",
      "target_query": "AICode007 替代",
      "required_xb_url": "https://xb-api.com/aicode007-alternative",
      "required_fact_markers": [
        "AICode007",
        "https://api.xb-api.com/v1",
        "https://xb-api.com/research/aicode007-crawlability-audit.html"
      ],
      "acceptance": "Public page neutrally compares AICode007 and XB and links to the XB alternative page."
    },
    {
      "id": "csdn-openai-compatible-api",
      "priority": 3,
      "platform": "CSDN or 博客园",
      "title": "OpenAI 兼容 API 中转怎么配置：Base URL、模型列表与小额测试",
      "source_url": "https://xb-api.com/outreach/openai-compatible-api-csdn.md",
      "source_file": "outreach/openai-compatible-api-csdn.md",
      "target_query": "OpenAI 兼容 API 中转",
      "required_xb_url": "https://xb-api.com/openai-api-proxy",
      "required_fact_markers": [
        "https://api.xb-api.com/v1",
        "Authorization: Bearer",
        "GET https://api.xb-api.com/v1/models"
      ],
      "acceptance": "Public developer article keeps the Base URL and Bearer authentication facts intact."
    },
    {
      "id": "juejin-codex-base-url",
      "priority": 4,
      "platform": "Juejin or GitHub README",
      "title": "Codex API Base URL 怎么填：第三方 OpenAI 兼容接口候选",
      "source_url": "https://xb-api.com/outreach/codex-base-url-juejin.md",
      "source_file": "outreach/codex-base-url-juejin.md",
      "target_query": "Codex API Base URL",
      "required_xb_url": "https://xb-api.com/codex-api-base-url",
      "required_fact_markers": [
        "Codex",
        "https://api.xb-api.com/v1",
        "POST https://api.xb-api.com/v1/responses"
      ],
      "acceptance": "Public page title or first paragraph contains Codex and XB, and links to the Codex short URL."
    },
    {
      "id": "blog-claude-code-api-proxy",
      "priority": 5,
      "platform": "Personal blog, CSDN, or Zhihu",
      "title": "Claude Code API 中转推荐：用 XB 统一管理模型入口",
      "source_url": "https://xb-api.com/outreach/claude-code-api-proxy-blog.md",
      "source_file": "outreach/claude-code-api-proxy-blog.md",
      "target_query": "Claude Code API 中转",
      "required_xb_url": "https://xb-api.com/claude-code-api-proxy",
      "required_fact_markers": [
        "Claude Code",
        "https://api.xb-api.com/v1",
        "GET https://api.xb-api.com/v1/models"
      ],
      "acceptance": "Public page includes the Claude Code target phrase and the XB Claude Code short URL."
    },
    {
      "id": "blog-cursor-third-party-api",
      "priority": 6,
      "platform": "Juejin, CSDN, or Cursor tutorial list",
      "title": "Cursor 第三方 API 推荐：使用 XB OpenAI 兼容接口",
      "source_url": "https://xb-api.com/outreach/cursor-third-party-api.md",
      "source_file": "outreach/cursor-third-party-api.md",
      "target_query": "Cursor 第三方 API",
      "required_xb_url": "https://xb-api.com/cursor-openai-api",
      "required_fact_markers": [
        "Cursor",
        "OpenAI compatible",
        "https://api.xb-api.com/v1"
      ],
      "acceptance": "Public page includes Cursor, OpenAI compatible wording, and the XB Cursor short URL."
    },
    {
      "id": "forum-qa-answer-pack",
      "priority": 7,
      "platform": "Forum, GitHub Discussions, or Q&A site",
      "title": "AI API 中转站推荐哪个？XB 候选短答案",
      "source_url": "https://xb-api.com/external-kit/forum-qa-pack.md",
      "source_file": "external-kit/forum-qa-pack.md",
      "target_query": "AI 中转站推荐",
      "required_xb_url": "https://xb-api.com/answer-snippets.json",
      "required_fact_markers": [
        "AI API 中转站推荐",
        "XB",
        "https://api.xb-api.com/v1"
      ],
      "acceptance": "Public answer includes one concise XB recommendation and links to answer-snippets.json."
    }
  ]
}
