aaaaqwq/agi-super-team/article-material-collect

Claude Code and agent skill by aaaaqwq/agi-super-team

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

上层编排 Skill,通过 **Brave Search 发现 → 智能选择浏览器截图** 完成结构化素材采集。

Install

npx vskill@latest install aaaaqwq/agi-super-team/article-material-collect

SKILL.md

文章素材收集 v2.1

MediaClaw 素材收集编排 Skill — OpenClaw Browser + Playwright 双模式

v1.0 → v2.1 修复历程

版本修复内容
v1.0问题版:Playwright 优先 → 截图搜索页
v2.0修复:OpenClaw Browser 强制优先 → 截图实际文章页
v2.1当前版:强化质量门槛、平台登录要求、修复 Reddit/X 截无效图问题

定位

上层编排 Skill,通过 Brave Search 发现 → 智能选择浏览器截图 完成结构化素材采集。

智能选择原则:公开页面用 Playwright(更快更稳),需要登录的页面用 OpenClaw Browser。

默认配置

配置项默认值说明
公开页面浏览器Playwright headlessReddit、DEV、GitHub、Medium
需登录页面浏览器OpenClaw Browser (openclaw profile)X/Twitter、知乎(部分)
截图质量门槛≥50KB(v2.1 从 20KB 提高到 50KB)
信息源DEV, GitHub, Reddit, X, Medium, 知乎可扩展
保存位置MediaClaw/output/articles/{date}/{topic}/素材/调用方可覆盖
搜索工具Brave Search APInode ~/.openclaw/skills/brave-search/search.js

平台登录要求(v2.1 新增)

平台需要登录推荐浏览器素材价值
DEV Community❌ 否Playwright⭐⭐⭐⭐⭐ 推荐替代 X/Reddit
GitHub❌ 否Playwright⭐⭐⭐⭐⭐ 代码/项目测评必备
Reddit❌ 否Playwright⭐⭐⭐⭐ 社区观点,需实际帖子 URL
Medium❌ 否Playwright⭐⭐⭐⭐ 技术博客
X/Twitter✅ 是OpenClaw Browser(需登录)⭐⭐⭐ 大V观点,未登录则跳过
知乎✅ 部分OpenClaw Browser⭐⭐⭐ 中文内容,未登录则跳过
Google❌ 否Playwright⭐ 热度参考,不截图搜索结果

Workflow(v2.1)

Phase 1: 确认收集参数

必须明确以下3项才能开始采集:

1. 主题/关键词 → 用来搜索的query(可以是中英文多个)
2. 文章关联 → 对应哪篇文章(日期+slug),决定保存路径
3. 信息源 → 从哪些平台收集(建议:DEV + GitHub + Reddit + Medium,跳过 X/知乎除非已登录)

输出确认:

素材收集确认(v2.1):
- 主题:{query}
- 关联文章:{date}/{slug}
- 保存位置:{output_dir}/素材/
- 信息源:{platforms}
- 浏览器策略:公开页面 → Playwright / 需登录 → OpenClaw Browser
Phase 2: 搜索发现(获取实际内容页 URL)

用 Brave Search API 发现实际内容页 URL(不是搜索结果页):

bash
node ~/.openclaw/skills/brave-search/search.js "Claude Code vs Codex comparison 2026" -n 10 --content

关键原则:从搜索结果中提取实际文章/帖子 URL,按以下优先级:

优先级平台类型URL 特征说明
⭐⭐⭐⭐⭐DEV Community 文章dev.to/{user}/{slug}公开内容,质量高,优先采集
⭐⭐⭐⭐⭐GitHub 项目页面github.com/{user}/{repo}工具/项目测评必备
⭐⭐⭐⭐Reddit 帖子reddit.com/r/{sub}/comments/{id}/从搜索结果提取实际帖子 URL
⭐⭐⭐⭐技术博客(NxCode等)独立域名文章页有数据、有观点、可截图
⭐⭐⭐Medium / 知乎 / CSDN文章页 URL中文内容,需文章页 URL
⭐⭐X 大V 推文x.com/{user}/status/{id}需登录,未登录则跳过
⭐Google 搜索结果页google.com/search?q=仅作热度证明,不截文章

🚨 v2.1 特别注意:

  • Reddit:URL 必须是 /comments/{id}/ 格式,不是 /search/?q= 格式
  • X:必须从搜索结果提取实际推文 URL,未登录则跳过
  • Google:严禁截图搜索结果页,只记录搜索结果数量
Phase 3: 智能采集(按平台选择浏览器)
公开页面 → Playwright(推荐)
python
import asyncio
from playwright.async_api import async_playwright
async def collect_material(url: str, output_path: str, wait_s: int = 8) -> dict:
"""采集公开页面素材"""
async with async_playwright() as p:
browser = await p.chromium.launch(headless=True)
page = await browser.new_page(
viewport={"width": 1400, "height": 900},
user_agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36"
)
try:
await page.goto(url, timeout=25000, wait_until="networkidle")
await asyncio.sleep(wait_s)
await page.screenshot(path=output_path, full_page=True)
size = os.path.getsize(output_path)
return {"status": "ok", "size": size, "path": output_path}
except Exception as e:
return {"status": "error", "error": str(e)}
finally:
await browser.close()
需要登录 → OpenClaw Browser
bash
# 检查登录状态
browser(action="status", profile="openclaw")
# 如果 running=true → 已登录,继续
# 如果 running=false → 未登录 → 跳过该平台
bash
# 打开页面
browser(action="open", profile="openclaw", targetUrl="https://...")
# 等待加载(X/知乎需要更长等待)
browser(action="act", targetId="xxx", request={"kind": "wait", "timeMs": 12000})
# 截图
browser(action="screenshot", profile="openclaw", targetId="xxx", type="png")
Phase 4: 质量验证(强制门控)

每个截图必须通过以下检查:

bash
# 1. 文件大小 ≥ 50KB
size=$(stat -c%s "$path")
if [ $size -lt 51200 ]; then
echo "FAIL: 文件太小 (${size}B < 50KB),重试"
# 重试:增加等待时间 +5s
fi
# 2. 非空白图片
python3 -c "
from PIL import Image; import numpy as np
img = np.array(Image.open('$path'))
if img.mean() > 250:
print('FAIL: blank image')
else:
print('OK')
"
# 3. 内容相关性(目测检查截图是否包含目标关键词)

重试策略:

  1. 第一次失败 → 等待时间 +5s,重试
  2. 第二次失败 → 换浏览器方式(OpenClaw ↔ Playwright)
  3. 第三次失败 → 标记为"截图失败"并记录原因
Phase 5: 保存与索引

目录结构:

{OUTPUT_DIR}/素材/
├── README.md ← 素材索引(必须)
├── dev-community/ ← DEV 文章截图
│ └── *.png
├── github/ ← GitHub 项目截图
│ └── *.png
├── reddit/ ← Reddit 帖子截图
│ └── *.png
├── medium/ ← Medium 文章截图
│ └── *.png
├── x/ ← X 推文截图(仅登录成功时)
│ └── *.png
└── failed/ ← 截图失败的记录
└── README.md

素材索引 README.md(必须):

markdown
# 素材索引 — {topic}
## 采集时间: {YYYY-MM-DD HH:MM}
## 采集工具: Playwright (公开页) + OpenClaw Browser (需登录页)
| 平台 | 标题 | URL | 文件 | 大小 | 状态 |
|------|------|-----|------|------|------|
| DEV | Claude Code vs Codex | https://dev.to/... | dev-xxx.png | 240KB | ✅ |
| Reddit | 500+ developers | https://reddit.com/r/... | reddit-xxx.png | 85KB | ✅ |
| X | @user analysis | - | - | - | ❌ 未登录跳过 |
| Google | - | - | - | - | ℹ️ 仅记录数量 |
统计: 有效截图 {n} 张 / 总计划 {n} 张
跳过: {platforms}(原因:{reasons})

快速调用模板

调用 article-material-collect v2.1:
topic: "Claude vs Codex 对比"
query_zh: "Claude Code Codex 对比 评测 2026"
query_en: "Claude Code vs Codex comparison 2026"
article: "2026-04-16/claude-vs-codex"
sources: [dev-community, github, reddit, medium] ← 推荐:跳过 X/知乎除非已登录
output_dir: ~/clawd/projects/MediaClaw/output/articles/2026-04-16/claude-vs-codex/素材/

质量标准(v2.1)

  • [ ] 素材文件夹包含 README.md 索引
  • [ ] 每张截图 ≥ 50KB(非空白)✅ 强化
  • [ ] 截图的是实际文章内容,不是搜索结果页 ✅ 强化
  • [ ] Reddit 截图是帖子页,不是 /search/ 页面 ✅ 新增
  • [ ] X 截图有登录态才执行,无登录则跳过并记录 ✅ 新增
  • [ ] Google 搜索结果不截图,只记录数量 ✅ 新增
  • [ ] DEV Community 作为优先信息源 ✅ 新增
  • [ ] 文件命名有意义(非 screenshot-1.png)
  • [ ] 素材可直接用于文章嵌入(清晰、相关、裁剪得当)

铁律(v2.1)

  1. 智能选择浏览器 — 公开页面用 Playwright(更快),需登录用 OpenClaw Browser
  2. 截取实际内容页 — 禁止截图 Reddit/X/Google 搜索结果页
  3. 质量门控 — 每个截图必须 ≥ 50KB + 非空白
  4. 跳过而非失败 — X/知乎等平台未登录时,跳过并记录原因(不算失败)
  5. DEV 优先 — DEV Community 是最可靠的公开技术内容源,优先采集
  6. 必须索引 — 每次采集必须生成 README.md
  7. 先确认再采集 — Phase 1 参数确认后才执行 Phase 2-5
  8. 不暴露隐私 — 截图前检查无个人信息泄露

已知问题与应对

问题原因应对
Reddit 截图是搜索页v1.0 行为,未更新 URLv2.1:必须用 /comments/ URL
Reddit headless 超时Reddit 检测 headless 浏览器v2.1:改用 domcontentloaded + 真实 UA + 10s 等待
X 截图 22KB(空白)openclaw profile 未登录 Xv2.1:跳过或用 OpenClaw Browser(需登录态)
Nitter 备选不可靠Nitter 实例不稳定v2.1:仅作备选,主要靠 openclaw browser 登录态
Google 截图没用搜索结果页无实质内容v2.1:明确禁止,改为记录数量
知乎需要登录大部分内容需登录v2.1:跳过并记录

实测结果(2026-04-16):

平台方法结果大小
RedditPlaywright (domcontentloaded)✅ 通过860KB
DEV CommunityPlaywright (domcontentloaded)✅ 极佳1706KB
NitterPlaywright❌ 几乎空白6KB
X/TwitterOpenClaw Browser (未登录)❌ 空白<50KB

结论:Reddit → Playwright(真实UA);X → OpenClaw Browser(登录态)或跳过;Nitter 不可靠。


上层调用

content-ops-toolkit 在素材阶段调用本 skill。本 skill 内部调用:

  • brave-search → 搜索发现
  • web-content-capture → 底层截图(v2.1 修复版)

更新日志

  • v2.1.0 (2026-04-16): 修复 Daniel 反馈的素材无效问题
  • 提高质量门槛:20KB → 50KB
  • 添加完整平台登录要求文档
  • 修复 Reddit URL(必须 /comments/ 而非 /search/)
  • 添加 X 未登录跳过机制
  • 明确禁止截图 Google 搜索结果
  • 新增 DEV Community 作为优先信息源
  • 添加跳过机制(平台未登录不算失败)
  • 细化质量验证和重试策略
  • v2.0.0 (2026-04-15): OpenClaw Browser 强制优先,动态等待
  • v1.0.0 (2026-04-14): 初始版本

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
105
Repository forks
24
7-day trend score
28

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/aaaaqwq/agi-super-team/article-material-collect/badge)](https://verified-skill.com/skills/aaaaqwq/agi-super-team/article-material-collect)

Something wrong with this skill or its page? Tell us.