x-filter

Score and filter topics for X content creation using weighted criteria. Use when user wants to evaluate collected materials, filter topics by score, or mentions "filter topics", "score materials", "x-filter", "选题筛选". Applies 10-point scoring system with customizable weights.

214 stars

Best use case

x-filter is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Score and filter topics for X content creation using weighted criteria. Use when user wants to evaluate collected materials, filter topics by score, or mentions "filter topics", "score materials", "x-filter", "选题筛选". Applies 10-point scoring system with customizable weights.

Teams using x-filter should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/x-filter/SKILL.md --create-dirs "https://raw.githubusercontent.com/kangarooking/x-skills/main/x-filter/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/x-filter/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How x-filter Compares

Feature / Agentx-filterStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Score and filter topics for X content creation using weighted criteria. Use when user wants to evaluate collected materials, filter topics by score, or mentions "filter topics", "score materials", "x-filter", "选题筛选". Applies 10-point scoring system with customizable weights.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# X Filter

Score and filter collected materials for X content creation. Topics scoring ≥7 points enter the creation pool.

## Scoring System (满分10分)

| Criteria | Weight | Description |
|----------|--------|-------------|
| **热度/趋势** | 4分 | Current popularity and trend momentum |
| **争议性** | 2分 | Discussion potential and debate value |
| **高价值** | 3分 | Information density and actionable insights |
| **账号定位相关** | 1分 | Alignment with account positioning |

**Threshold**: ≥7分 enters creation pool

## Prerequisites

- Materials from x-collect (or manual input)
- User profile from x-create/references/user-profile.md (for relevance scoring)

## Optional State (Feedback Loop)

If available, use persisted state to improve filtering:

- State dir: `~/.claude/skills/x-create/state/`
- Negative samples: `rejected_topics.json` (SimilarityFilter)
- Events log: `events.jsonl` (optional analytics)

If state files don't exist, proceed normally.

## Workflow

### Input

Accept materials from:
1. **x-collect output** - Structured material report
2. **Manual list** - User-provided topics/URLs
3. **Raw text** - Unstructured content to evaluate

### Scoring Process

For each material/topic, score multiple dimensions and combine with weights.

**Weighted score (recommended):**

`FinalScore = Σ(w_i × s_i) - NegPenalty`

Where:
- `s_i` are per-dimension scores (0..max)
- `w_i` come from `references/user-profile.md` (fallback to defaults)
- `NegPenalty` is derived from similarity to rejected topics and other negative signals

**1. 热度/趋势 (Trending Score: 0-4)**
```
4分: 当前热门话题,大量讨论
3分: 近期热点,关注度上升
2分: 稳定话题,持续有人讨论
1分: 小众话题,关注度有限
0分: 过时话题,几乎无人讨论
```

**(Optional) 新鲜度 (Freshness)**
- If you can infer recency from sources, either:
  - fold it into Trending score, or
  - add a small bonus/penalty (e.g., +0.5 for <72h, -0.5 for >30d)

**2. 争议性 (Controversy Score: 0-2)**
```
2分: 明显争议,多方观点对立
1分: 存在不同看法,可引发讨论
0分: 共识性话题,难以引发讨论
```

**3. 高价值 (Value Score: 0-3)**
```
3分: 硬核干货,可直接指导行动
2分: 有价值信息,提供新视角
1分: 一般信息,了解即可
0分: 低价值,无实质内容
```

**4. 账号定位相关 (Relevance Score: 0-1)**
```
1分: 与账号定位高度相关
0分: 与账号定位关联较弱
```

Check user profile at: `~/.claude/skills/x-create/references/user-profile.md`
If not found, assume domains: [AI/科技, 创业, 个人成长]

**SimilarityFilter (Negative Samples):**

- If `~/.claude/skills/x-create/state/rejected_topics.json` exists, compare each candidate topic to rejected items.
- If max similarity ≥ 0.85: mark as likely duplicate/low-value → strong penalty or direct reject.
- If 0.75 ≤ similarity < 0.85: apply soft penalty (e.g., -2 points) and explain why.

(Implementation via script):
- `python ~/.claude/skills/x-create/scripts/x_state.py similarity --against rejected --text "{topic}" --topk 3`

### Output Format

```markdown
# 选题筛选报告

## 筛选时间
{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 {选题}` 开始创作
```

Append a machine-readable block for hooks/state ingestion:

```json
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":"..."}]
      }
    }
  ]
}
```

## Execution Steps

1. **Load materials** from x-collect or user input
2. **Read user profile** for relevance scoring and weights
3. **(Optional) SimilarityFilter** against rejected topics
4. **Score each material** on criteria and compute `FinalScore`
5. **Diversity adjustments (recommended)**:
   - Apply source/domain attenuation: `score *= 0.6^(N-1)` for repeated sources
   - Dedup per topic cluster: keep best-scoring item per cluster
6. **Categorize**: Tier A ≥7, Tier B 5-6, Tier C <5
7. **Output report** + `FILTER_JSON`
8. **(Optional) Persist feedback-loop state**:
   - Write Tier C items to rejected set:
     - `python ~/.claude/skills/x-create/scripts/x_state.py reject --topic-json '{"title":"...","reason":"...","stage":"filter"}'`
   - Append event:
     - `python ~/.claude/skills/x-create/scripts/x_state.py event --event filter.scored --payload-json '{"accepted":3,"maybe":2,"rejected":7}'`

## Example

Input from x-collect:
```
素材1: Claude 4.5 Opus发布
素材2: AI编程助手对比评测
素材3: OpenAI最新裁员新闻
```

Scoring:
```
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 × 待定
```

## Customization

Users can customize weights in user-profile.md:
```yaml
scoring:
  trending: 4      # 热度权重
  controversy: 2   # 争议性权重
  value: 3         # 高价值权重
  relevance: 1     # 相关性权重
  threshold: 7     # 入选阈值
```

## Integration

After filtering, suggest:
```
筛选完成!{n} 个选题入选创作池。

推荐优先创作:{top_topic}({score}分)

下一步:运行 /x-create {top_topic} 开始创作
```

Related Skills

x-publish

214
from kangarooking/x-skills

Publish tweets and threads to X (Twitter) draft using browser automation. Use when user wants to publish content to X, save to drafts, or mentions "publish to X", "post tweet", "x-publish", "发布推文". Supports short tweets and threads. NEVER auto-publish, always saves to draft.

x-create

214
from kangarooking/x-skills

Create viral X (Twitter) posts including short tweets, threads, and replies. Use when user wants to write X content, create posts, or mentions "create tweet", "write thread", "x-create", "写推文", "创作推文". Supports 5 post styles with customizable templates, plus a mandatory humanize pass to reduce AI-sounding phrasing. First-time users go through onboarding to set up profile.

x-collect

214
from kangarooking/x-skills

Collect and research materials for X (Twitter) content creation using multi-round web search strategy. Use when user wants to gather trending topics, research subjects for X posts, or mentions "collect materials", "research topic", "find content for X", "x-collect". Performs 4-round deep research mimicking human research workflow.

Creating snip Filters

100
from edouard-claude/snip

Enables an AI agent to expertly create declarative YAML filters for `snip`, a CLI proxy designed to reduce LLM token consumption by intelligently filtering shell output.

Workflow & Productivity

BitDex Filter Testing

7060
from civitai/civitai

Test that BitDex correctly handles all image search filter combinations used across the site.

MessageGuard: Outgoing Message Filter Skill

3891
from openclaw/skills

**Purpose**: MessageGuard filters outgoing text to prevent secret leaks and sensitive data exposure by using pattern-based detection and configurable actions (mask, block, or warn).

lipinski-rule-filter

3891
from openclaw/skills

Filter compound libraries based on Lipinski's Rule of Five for drug-likeness.

stock-filter-skills

3891
from openclaw/skills

股票多条件筛选、热门因子管理、Jiuyan 数据查询和抖音热点分析。提供 17 个 CLI 工具覆盖四大模块。

data-table-filters

1943
from openstatusHQ/data-table-filters

Install and extend data-table-filters — a React data table system with faceted filters (checkbox, input, slider, timerange), sorting, infinite scroll, virtualization, and BYOS state management. Delivered as 10 shadcn registry blocks installable via `npx shadcn@latest add`. Use when: (1) installing data-table-filters from the shadcn registry, (2) adding extension blocks (command palette, AI filters, cell renderers, sheet panel, store adapters, schema system, Drizzle helpers, query layer), (3) configuring store adapters (nuqs/zustand/memory), (4) generating table schemas from a data model, (5) wiring up server-side filtering with Drizzle ORM, (6) connecting the React Query fetch layer, (7) auto-inferring schemas from raw JSON data with DataTableAuto / inferSchemaFromJSON, (8) adding AI-powered natural language filtering, (9) troubleshooting integration issues. Triggers on mentions of "data-table-filters", "data-table-filters.com", filterable data tables with shadcn, DataTableAuto, auto-infer, AI filters, or any of the registry block names.

filtering-query-builder

1868
from jeremylongshore/claude-code-plugins-plus-skills

Filtering Query Builder - Auto-activating skill for API Development. Triggers on: filtering query builder, filtering query builder Part of the API Development skill category.

bio-variant-calling-filtering-best-practices

1802
from FreedomIntelligence/OpenClaw-Medical-Skills

Comprehensive variant filtering including GATK VQSR, hard filters, bcftools expressions, and quality metric interpretation for SNPs and indels. Use when filtering variants using GATK best practices.

bio-read-qc-quality-filtering

1802
from FreedomIntelligence/OpenClaw-Medical-Skills

Filter reads by quality scores, length, and N content using Trimmomatic and fastp. Apply sliding window trimming, remove low-quality bases from read ends, and discard reads below thresholds. Use when reads have poor quality tails or require minimum quality for downstream analysis.