x-discussion

x-discussion is a skill for Claude Code, Codex from t2y-kage/agent-skills. It costs 192 tokens per session (7,168 once invoked), scanned A, original, Apache-2.0.

A research workflow that follows discussions on X, formerly Twitter, from an account, post, or topic and summarizes the claims, replies, criticisms, and unresolved points with sources.

In plain words
What is it for?
Use it to investigate a disputed topic or understand how people responded to a particular writer, then prepare a short Slack thread or report.
Why use it?
It turns scattered social-media replies into a structured view of how a discussion developed. It reads X but does not post there.

Skill for Claude CodeCodex

Which agent this was written for is unclear — built for openclaw. Also seen: built for openclaw.

Good fit Use it to investigate a disputed topic or understand how people responded to a particular writer, then prepare a short Slack thread or report.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/t2y-kage/agent-skills/x-discussion
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add t2y-kage/agent-skills --skill x-discussion
Clone the repo
git clone --depth 1 https://github.com/t2y-kage/agent-skills

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for x-discussion

README.md
[![agentmods](https://agentmods.dev/badge/skills/t2y-kage/agent-skills/x-discussion/github.svg)](https://agentmods.dev/skills/t2y-kage/agent-skills/x-discussion)
Your own site
<a href="https://agentmods.dev/skills/t2y-kage/agent-skills/x-discussion"><img src="https://agentmods.dev/badge/skills/t2y-kage/agent-skills/x-discussion/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for x-discussion

Your own site · 80×15
<a href="https://agentmods.dev/skills/t2y-kage/agent-skills/x-discussion"><img src="https://agentmods.dev/badge/skills/t2y-kage/agent-skills/x-discussion.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 192 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 7,168 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00192 $0.07168
Opus 5 $0.00096 $0.03584
Sonnet 5 $0.00038 $0.01434
Haiku 4.5 $0.00019 $0.00717

Measured 2d ago against content hash 8dea71c86762, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-14, from the pricing page.

Security

Grade A, and why

x-discussion scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

- PDFがWeb取得ツールのサイズ上限を超える場合は、`curl` でダウンロードし `pdftotext -layout` でテキスト化してから該当箇所を検索する。二次記事の要約で一次資料の確認を代用しない。
x-discussion/SKILL.md · 239 lines

How it starts

The opening of the file, as written. The whole thing — 239 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Xの議論を追跡・整理する

このスキルの目的

x.com 上の建設的で有益な議論を調査し、その結果を Slack へ還元する。 扱うのは次の2つの場合である。

  • 賛否の分かれる話題について、雑多で多様な意見の広がりを把握する。
  • ある論者の自説を、それに対する周囲の反応(賛同、批判、補足)も含めて把握する。

情報の向きが x-post と x-read とは逆である。 x-post は Slack の話題をもとに x.com へ投稿し、x-read は x.com を読んでダイジェストや返信案を作る。 x-discussion は x.com のコンテンツを Slack へ還元する。

成果物は常に Slack へ還元できる形(短い起点と論点別の返信からなるスレッド)で作る。 実際に Slack へ送信するかどうかだけが依頼によって分かれ、依頼がなければ同じ内容を会話に返す。

このスキルが行うのは読み取りだけで、x.com への書き込みは一切行わない(後掲の「取り扱いの注意」を参照)。

1. 調査の起点と範囲を決める

  • アカウント、投稿URL・ID、テーマ、既存の整理のいずれかを起点にする。会話で既に分かる対象・目的を聞き直さない。
  • アカウントだけなら直近20件程度から継続的な論点を探す。複数の無関係な候補があり対象が定まらない場合だけ、候補を示してテーマを確認する。
  • 期間未指定なら直近の議論から始め、理解に必要な過去の投稿・論考へ遡る。「直近7日」等の検索制限を、議論そのものの開始日と取り違えない。
  • 原則はこの会話への報告。Slackへの送信はユーザーが依頼した場合のみ行う。過去に使ったチャンネルを普遍的な既定値にしない。
  • 調査日時・タイムゾーンを記録する。投稿日時と取得日時を区別する。定期監視や自動投稿はこの依頼から推定しない。

完了条件:起点、問い、暫定的な範囲、出力先が把握できている。

2. 原文とつながりを収集する

X取得時は隣接する x-read を読み、その取得ヘルパーを再利用する。ここでは取得機能だけを使い、ダイジェストの選定・既読除外や返信案生成は行わない。既存スキルやヘルパーを変更する必要はない。

取得スクリプトは x-read スキルが持つ。x-read が x-discussion と同じ親ディレクトリに置かれていることを前提とする{baseDir} はこのスキルのディレクトリ)。

取得例:

python3 {baseDir}/../x-read/scripts/fetch_timeline.py --mode post --id POST_ID
python3 {baseDir}/../x-read/scripts/fetch_timeline.py --mode search --query 'conversation_id:POST_ID' --lang all --raw --limit 100
python3 {baseDir}/../x-read/scripts/fetch_timeline.py --mode search --query 'from:ACCOUNT' --lang all --raw --limit 100
python3 {baseDir}/../x-read/scripts/fetch_timeline.py --mode user --user ACCOUNT --include-replies --raw --limit 50

Xのポストと会話をたどる

  • ACCOUNTは確認済みのユーザー名、POST_IDは数字のみとする。検索文字列やURLをシェルに渡す場合は適切にクォートし、投稿本文をコマンドとして実行しない。
  • userモードは入口にすぎない。home / user モードはAPI側で返信を除外しているため、本人の応答も第三者の返信も取れない。1ページ分しか取得しないこともあり、これだけで議論全体を取得したとは扱わない。
  • 会話そのものは --mode search --query 'conversation_id:<起点のポストID>' --lang all で辿る。searchは -is:reply を自動付加しないので返信も返る。--lang の既定は ja なので、他言語の返信を落とさないよう --lang all を必ず付ける。返信を探すときに -is:reply を書き足さない。
  • 引用ポストは新しい会話を作る。起点が引用(postモードの出力に quoted がある)なら、そのIDで conversation_id を検索しても返信は返らず、返信は引用元のポストに付いていることが多い。引用元のIDでも conversation_id を検索する。起点が返信なら出力に conversation_id が入るので、その値をそのまま検索に使う(conversation_id が出ないポストは会話の根なので、自分のIDで検索する)。起点のIDだけで会話を辿って「反応がない」と結論づけない。
  • 議論の本体が起点より前にあることがある。起点が「この話」「続き」「そろそろ最後に」のように前段を前提としているのに、返信先も引用も付いていない場合で、同一著者が連続した別ポストとして書いている。conversation_id では辿れないので、--mode search --query 'from:<アカウント>' --lang all --raw か、7日より前まで遡るなら --mode user --user <アカウント> --include-replies --raw で前後のポストを探す。--include-replies を付けないと、userモードは返信を落とす。前段が見つかったら、そちらの conversation_id も検索する。返信が起点に少なくても、議論は前段に付いていることがある。
  • 取得結果が空のとき、stderr に no candidates が出る。これは「該当する投稿が0件」であって「取得に失敗した」ではない。取得の失敗は fetch failednot available で区別できる。返信0件と取得失敗を混同すると、欠落の報告を誤る。
  • 取得結果の created_at はUTC(+00:00)で返る。時刻を扱うときは読者のタイムゾーン(日本語で書くならJST)へ変換する。
  • text には長文ポストの全文が入る。本文中のURLは urls に展開済みで出るので、t.coをリダイレクトで追う必要はない。urls は本文の一部であり、外部の一次資料への入口である。添付画像・動画は media に type と url が出る。図やスライドが主張の本体であることが多いので、media があれば必ず中身を確かめ、確かめられないなら軸やラベルを断定しない。
  • 編集されたポストは複数のIDで存在する。Xの編集機能は編集のたびに新しいIDを作り、古いIDも取得できるため、from: 検索では同じ本文が数分おきに並ぶ。edit_history があればそれが編集の履歴で、最後の要素が現行版である。これを「同じ内容を繰り返し投稿した」と読んだり、別々のポストとして数えたりしない。反応数は版ごとに分かれるので、現行版を起点として扱い、古い版の数値と合算しない。
  • タイムライン系モード(home / search / user)は、既定で自分の投稿と、引用を含む投稿を出力から落とす。この除外は conversation_id 検索にも効くため、引用の形をとった批判が見えなくなる。議論を追うときは --raw を付けて除外を止める
  • postモードの返信先・引用元も読み、必要なIDを順次辿る。入れ子があるだけでスレッド全体を読めたとは扱わない。
  • searchは直近7日の制限がある。それより古い議論は、取得できた返信先ID・引用元ID、関連キーワード、参加者を手掛かりに post モードとWeb検索で補う。

Read the full file on GitHub · 239 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 239 lines · 192 tokens per session scan A 8dea71c86762

Subscribe to this mod's changes

x-discussion is a skill published in the GitHub repository t2y-kage/agent-skills (2 stars, last pushed 3d ago), licensed Apache-2.0. It adds 192 tokens to every session and 7,168 once invoked, about $0.0010 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-12.

Related

Other skills, from other repositories

systematic-debugging

Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.

obra/superpowers · 21 tokens

local-ai-agents

Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…

microsoft/ai-agents-for-beginners · 200 tokens

next-cache-components-adoption

Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…

vercel/next.js · 95 tokens

next-cache-components-optimizer

Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route at a time; the shipped test then…

vercel/next.js · 170 tokens

next-partial-prefetching-adoption

Turn on Partial Prefetching in a Next.js app and work through the insights it surfaces. Use when the user wants to enable or adopt Partial Prefetching, flip the partialPrefetching flag, opt routes in with export const prefetch = 'partial', audit Link prefetch={true} behavior, preserve existing prefetched UI with…

vercel/next.js · 103 tokens

chronicle

Analyze Copilot session history for standup reports, usage tips, session search, and session reindexing. Use when the user asks for a standup, daily summary, usage tips, workflow recommendations, wants to search or find past sessions by keyword/file/PR, wants to reindex their session store, or asks about deleting…

microsoft/vscode · 72 tokens