{
  "@context": "https://schema.org",
  "@type": "DataCatalog",
  "@id": "https://x-harness.jp/research/catalog.json#catalog",
  "name": "X Harness技術研究カタログ",
  "url": "https://x-harness.jp/research/",
  "publisher": {
    "@type": "Organization",
    "name": "AIエージェント株式会社",
    "url": "https://aiagent-inc.com/"
  },
  "generatedAt": "2026-08-19T11:17:46.981Z",
  "dataset": [
    {
      "@type": "Dataset",
      "identifier": "x:api-usage-cost-ledger",
      "name": "X API使用量を台帳化する――endpoint・機能・account別コスト観測",
      "description": "X Harnessのusage route、DB module、migrationからAPI利用量の観測単位と欠測を整理します。",
      "url": "https://x-harness.jp/articles/api-usage-cost-ledger/",
      "datePublished": "2026-08-19",
      "dateModified": "2026-08-19",
      "evidenceType": "公開コードに基づく一次資料分析",
      "disclosure": "本稿はX Harnessの開発元が、公開リポジトリの固定コミットを一次資料として分析した技術研究ノートです。第三者による独立評価ではありません。",
      "isBasedOn": [
        {
          "label": "x-harness-oss: apps/worker/src/routes/usage.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/apps/worker/src/routes/usage.ts"
        },
        {
          "label": "x-harness-oss: packages/db/src/usage.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/packages/db/src/usage.ts"
        },
        {
          "label": "x-harness-oss: packages/db/migrations/009-api-usage-logs.sql",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/packages/db/migrations/009-api-usage-logs.sql"
        },
        {
          "label": "x-harness-oss: packages/mcp/src/tools/usage.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/packages/mcp/src/tools/usage.ts"
        },
        {
          "label": "X Harness 取得時刻付きGit分析",
          "url": "https://x-harness.jp/git/"
        }
      ]
    },
    {
      "@type": "Dataset",
      "identifier": "x:scheduled-post-idempotency",
      "name": "予約投稿の冪等性――同一時刻・再試行・quote postを検証する",
      "description": "X Harnessの投稿route、scheduler service、test、quote migrationから重複投稿防止を読みます。",
      "url": "https://x-harness.jp/articles/scheduled-post-idempotency/",
      "datePublished": "2026-08-19",
      "dateModified": "2026-08-19",
      "evidenceType": "公開コードに基づく一次資料分析",
      "disclosure": "本稿はX Harnessの開発元が、公開リポジトリの固定コミットを一次資料として分析した技術研究ノートです。第三者による独立評価ではありません。",
      "isBasedOn": [
        {
          "label": "x-harness-oss: apps/worker/src/routes/posts.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/apps/worker/src/routes/posts.ts"
        },
        {
          "label": "x-harness-oss: apps/worker/src/services/post-scheduler.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/apps/worker/src/services/post-scheduler.ts"
        },
        {
          "label": "x-harness-oss: apps/worker/src/services/__tests__/post-scheduler.test.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/apps/worker/src/services/__tests__/post-scheduler.test.ts"
        },
        {
          "label": "x-harness-oss: apps/worker/src/routes/__tests__/posts-schedule.test.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/apps/worker/src/routes/__tests__/posts-schedule.test.ts"
        },
        {
          "label": "x-harness-oss: packages/db/migrations/014-scheduled-posts-quote.sql",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/packages/db/migrations/014-scheduled-posts-quote.sql"
        },
        {
          "label": "X Harness 取得時刻付きGit分析",
          "url": "https://x-harness.jp/git/"
        }
      ]
    },
    {
      "@type": "Dataset",
      "identifier": "x:polling-reply-cache",
      "name": "X reply pollingの重複処理を減らす――cursor・cache・再取得範囲",
      "description": "Webhookだけに依存できないreply検知を、polling schedulerとreply trigger cacheから検証します。",
      "url": "https://x-harness.jp/articles/polling-reply-cache/",
      "datePublished": "2026-08-19",
      "dateModified": "2026-08-19",
      "evidenceType": "公開コードに基づく一次資料分析",
      "disclosure": "本稿はX Harnessの開発元が、公開リポジトリの固定コミットを一次資料として分析した技術研究ノートです。第三者による独立評価ではありません。",
      "isBasedOn": [
        {
          "label": "x-harness-oss: apps/worker/src/services/polling-scheduler.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/apps/worker/src/services/polling-scheduler.ts"
        },
        {
          "label": "x-harness-oss: apps/worker/src/services/reply-trigger-cache.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/apps/worker/src/services/reply-trigger-cache.ts"
        },
        {
          "label": "x-harness-oss: apps/worker/src/services/__tests__/reply-trigger-cache.test.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/apps/worker/src/services/__tests__/reply-trigger-cache.test.ts"
        },
        {
          "label": "x-harness-oss: packages/db/migrations/004-polling-columns.sql",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/packages/db/migrations/004-polling-columns.sql"
        },
        {
          "label": "x-harness-oss: packages/db/migrations/010-replier-cache.sql",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/packages/db/migrations/010-replier-cache.sql"
        },
        {
          "label": "X Harness 取得時刻付きGit分析",
          "url": "https://x-harness.jp/git/"
        }
      ]
    },
    {
      "@type": "Dataset",
      "identifier": "x:engagement-gate-verification",
      "name": "X engagement gateのverify境界――reply・like・repost・follow条件",
      "description": "X上の複数engagement条件を、観測可能性、cache、verify API、action実行に分解します。",
      "url": "https://x-harness.jp/articles/engagement-gate-verification/",
      "datePublished": "2026-08-19",
      "dateModified": "2026-08-19",
      "evidenceType": "公開コードに基づく一次資料分析",
      "disclosure": "本稿はX Harnessの開発元が、公開リポジトリの固定コミットを一次資料として分析した技術研究ノートです。第三者による独立評価ではありません。",
      "isBasedOn": [
        {
          "label": "x-harness-oss: apps/worker/src/routes/engagement-gates.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/apps/worker/src/routes/engagement-gates.ts"
        },
        {
          "label": "x-harness-oss: apps/worker/src/services/engagement-gate.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/apps/worker/src/services/engagement-gate.ts"
        },
        {
          "label": "x-harness-oss: apps/worker/src/routes/verify.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/apps/worker/src/routes/verify.ts"
        },
        {
          "label": "x-harness-oss: apps/worker/src/routes/__tests__/verify.test.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/apps/worker/src/routes/__tests__/verify.test.ts"
        },
        {
          "label": "x-harness-oss: packages/db/src/engagement-gates.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/packages/db/src/engagement-gates.ts"
        },
        {
          "label": "X Harness 取得時刻付きGit分析",
          "url": "https://x-harness.jp/git/"
        }
      ]
    },
    {
      "@type": "Dataset",
      "identifier": "x:follower-snapshot-cache",
      "name": "フォロワー状態をsnapshotで読む――現在値・変化・cacheの違い",
      "description": "X Harnessのfollower sync、snapshot、ID cacheからフォロー状態の観測時点を明確にします。",
      "url": "https://x-harness.jp/articles/follower-snapshot-cache/",
      "datePublished": "2026-08-19",
      "dateModified": "2026-08-19",
      "evidenceType": "公開コードに基づく一次資料分析",
      "disclosure": "本稿はX Harnessの開発元が、公開リポジトリの固定コミットを一次資料として分析した技術研究ノートです。第三者による独立評価ではありません。",
      "isBasedOn": [
        {
          "label": "x-harness-oss: apps/worker/src/services/follower-sync.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/apps/worker/src/services/follower-sync.ts"
        },
        {
          "label": "x-harness-oss: packages/db/src/followers.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/packages/db/src/followers.ts"
        },
        {
          "label": "x-harness-oss: packages/db/src/follower-snapshots.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/packages/db/src/follower-snapshots.ts"
        },
        {
          "label": "x-harness-oss: packages/db/migrations/011-follower-id-cache.sql",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/packages/db/migrations/011-follower-id-cache.sql"
        },
        {
          "label": "X Harness 取得時刻付きGit分析",
          "url": "https://x-harness.jp/git/"
        }
      ]
    },
    {
      "@type": "Dataset",
      "identifier": "x:staff-role-publishing-authority",
      "name": "X投稿権限をstaff roleで分ける――閲覧・下書き・承認・公開",
      "description": "owner/admin/editor/viewerの権限を、投稿ライフサイクルとAPI keyに対応させて検証します。",
      "url": "https://x-harness.jp/articles/staff-role-publishing-authority/",
      "datePublished": "2026-08-19",
      "dateModified": "2026-08-19",
      "evidenceType": "公開コードに基づく一次資料分析",
      "disclosure": "本稿はX Harnessの開発元が、公開リポジトリの固定コミットを一次資料として分析した技術研究ノートです。第三者による独立評価ではありません。",
      "isBasedOn": [
        {
          "label": "x-harness-oss: apps/worker/src/routes/staff.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/apps/worker/src/routes/staff.ts"
        },
        {
          "label": "x-harness-oss: packages/db/src/staff.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/packages/db/src/staff.ts"
        },
        {
          "label": "x-harness-oss: packages/db/migrations/008-staff-members.sql",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/packages/db/migrations/008-staff-members.sql"
        },
        {
          "label": "x-harness-oss: apps/worker/src/middleware/auth.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/apps/worker/src/middleware/auth.ts"
        },
        {
          "label": "X Harness 取得時刻付きGit分析",
          "url": "https://x-harness.jp/git/"
        }
      ]
    },
    {
      "@type": "Dataset",
      "identifier": "x:growth-source-article-pipeline",
      "name": "情報源からX Articleまで――source候補・draft・承認・公開の来歴",
      "description": "X Harnessのgrowth機能を、source収集、候補選択、記事draft、X投稿draft、公開へ分解します。",
      "url": "https://x-harness.jp/articles/growth-source-article-pipeline/",
      "datePublished": "2026-08-19",
      "dateModified": "2026-08-19",
      "evidenceType": "公開コードに基づく一次資料分析",
      "disclosure": "本稿はX Harnessの開発元が、公開リポジトリの固定コミットを一次資料として分析した技術研究ノートです。第三者による独立評価ではありません。",
      "isBasedOn": [
        {
          "label": "x-harness-oss: apps/worker/src/routes/growth-sources.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/apps/worker/src/routes/growth-sources.ts"
        },
        {
          "label": "x-harness-oss: apps/worker/src/routes/growth-articles.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/apps/worker/src/routes/growth-articles.ts"
        },
        {
          "label": "x-harness-oss: packages/db/migrations/015-growth-drafts.sql",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/packages/db/migrations/015-growth-drafts.sql"
        },
        {
          "label": "x-harness-oss: packages/db/migrations/016-source-candidates.sql",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/packages/db/migrations/016-source-candidates.sql"
        },
        {
          "label": "x-harness-oss: packages/db/migrations/017-growth-articles.sql",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/packages/db/migrations/017-growth-articles.sql"
        },
        {
          "label": "X Harness 取得時刻付きGit分析",
          "url": "https://x-harness.jp/git/"
        }
      ]
    },
    {
      "@type": "Dataset",
      "identifier": "x:xaa-event-verification",
      "name": "X広告・外部イベントのverify API――eventを成果へ変換する境界",
      "description": "XAA event保存とverify routeを読み、外部イベント受信、重複、帰属、検証結果を分けます。",
      "url": "https://x-harness.jp/articles/xaa-event-verification/",
      "datePublished": "2026-08-19",
      "dateModified": "2026-08-19",
      "evidenceType": "公開コードに基づく一次資料分析",
      "disclosure": "本稿はX Harnessの開発元が、公開リポジトリの固定コミットを一次資料として分析した技術研究ノートです。第三者による独立評価ではありません。",
      "isBasedOn": [
        {
          "label": "x-harness-oss: apps/worker/src/routes/xaa.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/apps/worker/src/routes/xaa.ts"
        },
        {
          "label": "x-harness-oss: apps/worker/src/routes/verify.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/apps/worker/src/routes/verify.ts"
        },
        {
          "label": "x-harness-oss: packages/db/src/xaa-events.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/packages/db/src/xaa-events.ts"
        },
        {
          "label": "x-harness-oss: packages/db/migrations/013-xaa-events.sql",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/packages/db/migrations/013-xaa-events.sql"
        },
        {
          "label": "X Harness 取得時刻付きGit分析",
          "url": "https://x-harness.jp/git/"
        }
      ]
    },
    {
      "@type": "Dataset",
      "identifier": "x:oauth-account-secret-boundary",
      "name": "X account OAuth境界――OAuth 1.0a secret・複数account・失効",
      "description": "X Harnessのaccount route、schema、setupからOAuth資格情報の保存・選択・失効を整理します。",
      "url": "https://x-harness.jp/articles/oauth-account-secret-boundary/",
      "datePublished": "2026-08-19",
      "dateModified": "2026-08-19",
      "evidenceType": "公開コードに基づく一次資料分析",
      "disclosure": "本稿はX Harnessの開発元が、公開リポジトリの固定コミットを一次資料として分析した技術研究ノートです。第三者による独立評価ではありません。",
      "isBasedOn": [
        {
          "label": "x-harness-oss: apps/worker/src/routes/x-accounts.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/apps/worker/src/routes/x-accounts.ts"
        },
        {
          "label": "x-harness-oss: packages/db/src/x-accounts.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/packages/db/src/x-accounts.ts"
        },
        {
          "label": "x-harness-oss: packages/db/migrations/001-oauth1a-columns.sql",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/packages/db/migrations/001-oauth1a-columns.sql"
        },
        {
          "label": "x-harness-oss: apps/worker/src/routes/setup.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/apps/worker/src/routes/setup.ts"
        },
        {
          "label": "X Harness 取得時刻付きGit分析",
          "url": "https://x-harness.jp/git/"
        }
      ]
    },
    {
      "@type": "Dataset",
      "identifier": "x:mcp-scrape-api-boundary",
      "name": "X APIとCookie収集を混同しない――MCP scrape toolの実行境界",
      "description": "X HarnessのMCP scraper実装から、公式API投稿とローカルCookie収集の安全・規約・データ境界を明示します。",
      "url": "https://x-harness.jp/articles/mcp-scrape-api-boundary/",
      "datePublished": "2026-08-19",
      "dateModified": "2026-08-19",
      "evidenceType": "公開コードに基づく一次資料分析",
      "disclosure": "本稿はX Harnessの開発元が、公開リポジトリの固定コミットを一次資料として分析した技術研究ノートです。第三者による独立評価ではありません。",
      "isBasedOn": [
        {
          "label": "x-harness-oss: packages/mcp/src/scraper.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/packages/mcp/src/scraper.ts"
        },
        {
          "label": "x-harness-oss: packages/mcp/src/tools/scrape.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/packages/mcp/src/tools/scrape.ts"
        },
        {
          "label": "x-harness-oss: packages/mcp/src/__tests__/scraper.test.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/packages/mcp/src/__tests__/scraper.test.ts"
        },
        {
          "label": "x-harness-oss: packages/create-x-harness/src/steps/scraper-setup.ts",
          "url": "https://github.com/Shudesu/x-harness-oss/blob/aad85e9568a95d92b70546c677b8bdee2d8b6e87/packages/create-x-harness/src/steps/scraper-setup.ts"
        },
        {
          "label": "X Harness 取得時刻付きGit分析",
          "url": "https://x-harness.jp/git/"
        }
      ]
    }
  ]
}
