x-filter について
X 向けコンテンツのテーマを採点・選別するスキルです。収集結果、手入力リスト、未加工テキストを評価し、重み付き基準と任意の却下履歴を使って制作候補を作ります。
主な機能
- 01重み付きテーマ採点
- 02トレンド・議論性・価値・関連性の評価
- 03任意の重複テーマ検出
- 04ソースとテーマの多様性調整
- 05段階別の選別レポート
- 06機械可読な FILTER_JSON 出力
活用シーン
- 01x-collect の結果からテーマを選ぶ
- 02手入力テーマのリストを順位付けする
- 03未加工テキストから制作候補を選ぶ
- 04却下履歴を使って重複を減らす
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ kangarooking/ x-skills --skill x-filterインストール後、Claude Code で/x-filterを入力して読み込まれたか確認します。
詳細
X Filter
X のコンテンツ作成に向けて、収集した素材を評価して絞り込みます。7 点以上のトピックが作成候補に入ります。
スコアリングシステム(満点 10 点)
| 基準 | 配点 | 説明 |
|---|---|---|
| 注目度/トレンド | 4 点 | 現在の人気度とトレンドの勢い |
| 議論性 | 2 点 | 議論の可能性と討論の価値 |
| 価値の高さ | 3 点 | 情報密度と実践的な知見 |
| アカウントの位置付けとの関連性 | 1 点 | アカウントの位置付けとの整合性 |
基準点:7 点以上で作成候補に入ります
前提条件
- x-collect からの素材(または手動入力)
- 関連性のスコアリングに使用する、x-create/references/user-profile.md のユーザープロフィール
任意の状態(フィードバックループ)
利用可能な場合は、保存された状態を使ってフィルタリングの精度を高めます。
- 状態ディレクトリ:
~/.claude/skills/x-create/state/ - ネガティブサンプル:
rejected_topics.json(SimilarityFilter) - イベントログ:
events.jsonl(任意の分析用)
状態ファイルが存在しない場合は、通常どおり進めます。
ワークフロー
入力
次のものから素材を受け取ります。
- x-collect の出力 - 構造化された素材レポート
- 手動リスト - ユーザーが提供するトピック/URL
- 生テキスト - 評価対象の非構造化コンテンツ
スコアリングプロセス
素材/トピックごとに複数の評価軸を採点し、重み付けして合算します。
重み付けスコア(推奨):
FinalScore = Σ(w_i × s_i) - NegPenalty
ここで:
s_iは各評価軸のスコア(0..最大値)ですw_iはreferences/user-profile.mdの値を使用します(見つからない場合はデフォルト値を使用)NegPenaltyは、却下されたトピックとの類似度やその他のネガティブなシグナルに基づきます
1. 注目度/トレンド(トレンドスコア:0~4)
4分: 当前热门话题,大量讨论
3分: 近期热点,关注度上升
2分: 稳定话题,持续有人讨论
1分: 小众话题,关注度有限
0分: 过时话题,几乎无人讨论
(任意)鮮度
- 情報源から新しさを推定できる場合は、次のいずれかの方法を取ります。
- トレンドスコアに織り込む
- 小さな加点/減点を追加する(例:72 時間未満なら +0.5、30 日超なら -0.5)
2. 議論性(議論性スコア:0~2)
2分: 明显争议,多方观点对立
1分: 存在不同看法,可引发讨论
0分: 共识性话题,难以引发讨论
3. 価値の高さ(価値スコア:0~3)
3分: 硬核干货,可直接指导行动
2分: 有价值信息,提供新视角
1分: 一般信息,了解即可
0分: 低价值,无实质内容
4. アカウントの位置付けとの関連性(関連性スコア:0~1)
1分: 与账号定位高度相关
0分: 与账号定位关联较弱
ユーザープロフィールの確認先:~/.claude/skills/x-create/references/user-profile.md
見つからない場合は、対象分野を [AI/テクノロジー, 起業, 自己成長] と想定します
SimilarityFilter(ネガティブサンプル):
~/.claude/skills/x-create/state/rejected_topics.jsonが存在する場合は、各候補トピックを却下済みの項目と比較します。- 類似度の最大値が 0.85 以上の場合:重複または価値が低い可能性が高いと判定し、大きく減点するか、直接却下します。
- 0.75 ≤ 類似度 < 0.85 の場合:軽い減点(例:-2 点)を適用し、その理由を説明します。
(スクリプトによる実装):
python ~/.claude/skills/x-create/scripts/x_state.py similarity --against rejected --text "{topic}" --topk 3
出力形式
# 选题筛选报告
## 筛选时间
{timestamp}
## 用户定位
- 领域: {domains}
- 人设: {persona_style}
## 筛选结果
### Tier A:入选创作池 (≥7分)
#### 1. {Topic Title} - **{final_score}分**
| 热度 | 争议性 | 高价值 | 相关性 | 负向惩罚 |
|------|--------|--------|--------|----------|
| {trending}/4 | {controversy}/2 | {value}/3 | {relevance}/1 | -{neg_penalty} |
- **推荐类型**: [短推文/Thread/评论回复]
- **推荐风格**: [高价值干货/犀利观点/热点评论/故事洞察/技术解析]
- **创作角度**: 建议的切入点
- **核心观点**: 可提炼的关键论点
- **相似度命中(可选)**: {max_similarity} - matched: {matched_ids}
#### 2. ...
### Tier B:待定 (5-6分)
- {Topic} - {final_score}分 - {原因}
### Tier C:淘汰 (<5分)
- {Topic} - {final_score}分 - {原因}
## 创作建议
入选 {n} 个选题,建议优先级:
1. {最高分选题} - 理由
2. {次高分选题} - 理由
下一步:运行 `/x-create {选题}` 开始创作
フック/状態の取り込み用に、機械可読ブロックを追加します。
FILTER_JSON
{
"schema_version": "x_skills.filter.v1",
"timestamp": "{timestamp}",
"profile": {
"domains": ["..."],
"persona_style": "..."
},
"items": [
{
"topic": "...",
"scores": {
"trending": 0,
"controversy": 0,
"value": 0,
"relevance": 0,
"neg_penalty": 0
},
"final_score": 0,
"tier": "A|B|C",
"reasons": ["..."],
"similarity": {
"max": 0.0,
"matched": [{"id":"rej_xxx","score":0.0,"title":"..."}]
}
}
]
}
実行手順
- x-collect またはユーザー入力から素材を読み込みます
- 関連性のスコアリングと重み付けのためにユーザープロフィールを読み込みます
- (任意)SimilarityFilter で却下済みトピックと照合します
- 各素材を採点し、
FinalScoreを計算します - 多様性の調整(推奨):
- 情報源/ドメインによる減衰を適用します:同じ情報源が繰り返される場合は
score *= 0.6^(N-1) - トピッククラスターごとに重複を除去し、クラスター内で最もスコアの高い項目を残します
- 情報源/ドメインによる減衰を適用します:同じ情報源が繰り返される場合は
- 分類:Tier A は 7 以上、Tier B は 5~6、Tier C は 5 未満
- レポートと
FILTER_JSONを出力します - (任意)フィードバックループの状態を保存します:
- Tier C の項目を却下リストに書き込みます:
python ~/.claude/skills/x-create/scripts/x_state.py reject --topic-json '{"title":"...","reason":"...","stage":"filter"}'
- イベントを追記します:
python ~/.claude/skills/x-create/scripts/x_state.py event --event filter.scored --payload-json '{"accepted":3,"maybe":2,"rejected":7}'
- Tier C の項目を却下リストに書き込みます:
例
x-collect からの入力:
素材1: Claude 4.5 Opus发布
素材2: AI编程助手对比评测
素材3: OpenAI最新裁员新闻
スコアリング:
Claude 4.5 Opus发布:
- 热度: 4/4 (刚发布,热门话题)
- 争议性: 1/2 (性能vs价格讨论)
- 高价值: 3/3 (新能力详解)
- 相关性: 1/1 (AI/科技相关)
- 总分: 9/10 ✓ 入选
AI编程助手对比评测:
- 热度: 2/4 (持续话题)
- 争议性: 2/2 (Cursor vs Copilot争论)
- 高价值: 3/3 (实用对比)
- 相关性: 1/1 (科技相关)
- 总分: 8/10 ✓ 入选
OpenAI最新裁员新闻:
- 热度: 3/4 (近期热点)
- 争议性: 1/2 (有讨论)
- 高价值: 1/3 (信息价值有限)
- 相关性: 0/1 (非核心领域)
- 总分: 5/10 × 待定
カスタマイズ
ユーザーは user-profile.md で重みをカスタマイズできます。
scoring:
trending: 4 # 热度权重
controversy: 2 # 争议性权重
value: 3 # 高价值权重
relevance: 1 # 相关性权重
threshold: 7 # 入选阈值
連携
フィルタリング後に、次の内容を提案します。
筛选完成!{n} 个选题入选创作池。
推荐优先创作:{top_topic}({score}分)
下一步:运行 /x-create {top_topic} 开始创作
コメント
Markdown 対応