1实现原理 · 为什么它能做到
整个 skill 零自有代码:能力全部由 Playwright MCP 的浏览器工具 + SKILL.md 的流程指令构成,仓库里唯一的『运行时』是 .mcp/settings.json 声明的 MCP server。
{ "playwright": { "command": "npx", "args": [ "@playwright/mcp@latest" ] } }
主流程是写死的 8 步状态机:检查当日 tracking 文件 → 选 subreddit → 浏览新帖选帖 → 深读帖与已有评论 → 写评论 → 16 项个性化复审循环 → 发帖 → 判线索 + 记账。
1. Check today's date file in tracking/reddit/ folder → File name: YYYY-MM-DD.md (e.g., 2026-01-12.md) → If file doesn't exist, create new one referencing template.md
配额与节奏由文档硬编码:每个 subreddit 每日 3 条、同 subreddit 评论间隔至少 5-10 分钟,批量模式总配额 24 条(8×3),并规定了限流/掉登录的处置。
- Total 24 (8 subreddits × 3) - Subtract today's written comments - Remaining quota = 24 - Today's written comments
『像人写的』靠一份 16 项个性化清单 + 8 种句式模板 + 长度分布强制配额来逼近,而不是靠模型自由发挥。
### Length Distribution (Required) For daily activity (e.g., 24 comments): - **Short (1-2 sentences)**: Minimum 30% = 7-8 - **Medium (3-5 sentences)**: About 50% = 12 - **Long (6+ sentences)**: Maximum 20% = 4-5
内容真实性靠两条硬约束兜住:必须先深读原帖(禁止只看关键词判断),若评论涉及对方站点则必须真的用浏览器访问后再写反馈。
• Visit actual site with browser_navigate(provided link) • Check UI/UX with browser_snapshot() • Write feedback based ONLY on what you actually saw • Absolutely NO speculative feedback on things you didn't see
商业目的内建:Step 7 按 leads/reddit.md 的『Lead Selection Criteria』把发帖人判成高/中/低相关线索并计入线索表;resources/product.md 提供产品话术模板(价值主张、痛点、竞品对比、自然推广措辞)。
## Lead Selection Criteria ### High Relevance - Directly mentions your product category - Complains about problems your product solves
token 纪律写进 skill:调用 MCP 只传最少指令、直接按 URL 导航而不是点元素、且明令禁止截图(快照用无障碍树)。
**⚠️ No screenshots**: Do NOT use `browser_take_screenshot`. Always use only `browser_snapshot` for page verification (accessibility tree is sufficient and doesn't save files)
2核心能力
3外部依赖
| 类型 | 依赖 |
|---|---|
| package | @playwright/mcp |
| network | Reddit(列帖与导航) |
| network | Reddit(rising 列表) |
| network | 帖子内 OP 提供的外部站点(被要求真访问以给出实证反馈) |
| package | claude(npm,^0.1.1) |
4风险提醒 风险提醒:橙色 · 评估后使用
- 真实账号公开发帖 + 反检测设计 = 平台 ToS / 封号风险 — skill 复用本机浏览器登录态在真实社区发帖,并以内建手法规避平台与读者的 AI 检测(长度配额、句式打散、禁用 AI 措辞),同时允许自然软性推广产品。这属平台规则灰区;BATCH.md 自身也把 'Rate limit detected'、'Login session expired' 当常态故障处理,说明作者预期会被限流。
- indirect prompt injection:帖内容即指令来源 — 帖子正文与评论被原样读入上下文并直接驱动写作与判类(Step 3),恶意帖可植入指令影响 agent 输出;Step 3 还授权导航到帖内任意链接,把 URL 选择权交给不可信内容。
- 登录态与个人数据面 — 运行时依赖浏览器 Reddit 登录 cookie(由 MCP 复用),且把第三方用户名/帖子 URL 落到本地 leads/reddit.md;共享同一浏览器 profile 的其它会话也可能受影响,宿主应隔离运行环境。
- 内容真实性与声誉风险仍由使用者承担 — 资源里的 product.md/personalization 均为模板,若用户填假经历或夸大产品,skill 的『像本人写的』能力反而会放大误导;README 的 Responsible Use 只是软约束。
- 不可预期外发 — 评论内容(含产品链接与用户真实经历)会被公开外发到 Reddit,并可能被 skill 主动带去第三方站点访问,事后撤回成本高。
5第二遍独立确认
- [ok] 仓库零脚本、能力来自 Playwright MCP — git ls-tree -r 全量仅 .claude/skills/reddit-commenter/{SKILL.md,BATCH.md,resources/*.md}、README/SETUP/QUICK_REFERENCE/CONTRIBUTING/CHANGES/LICENSE、.mcp/settings.json、package.json(-lock)、leads/reddit.md、tracking/reddit/template.md、assets/og_image.png、.github 模板;无任何可执行脚本。
- [ok] MCP server 声明与 SKILL.md 工具名一致 — .mcp/settings.json 注册 playwright/@playwright/mcp@latest;SKILL.md 使用 browser_navigate/browser_snapshot/browser_click/browser_type/browser_wait_for,并显式禁用 browser_take_screenshot,SETUP.md 另确认 'This installs the Playwright MCP server.'。
- [ok] 每社区每日 3 条 + 5-10 分钟间隔 — SKILL.md Step 1 'Check subreddits under daily limit (3)'、'Check last comment time (minimum 5-10 minute intervals)';BATCH.md 配额公式 24=8×3 与 '[4] ... (wait 5-15 minutes)' 存在(两文件对等待区间的措辞略有差异:5-10 vs 5-15)。
- [ok] 16 项个性化清单与 8 种句式模板 — personalization_reddit.md 内 '## Personalization Checklist (16 Items)' 表逐项 1-16(含 #14 AI detection prevention、#16 Site verification),'## 8 Style Patterns' 1-8 节均存在;SKILL.md Step 5 要求逐项检查。
- [ok] 反 AI 检测 / 反重复结构 — 原文 '## Avoid Repetitive Structure (CRITICAL)'、'Repeating this structure makes it look AI-generated'、'## AI-Like Comment Prevention (CRITICAL)' 与长度分布配额均逐字存在。
- [ok] 『先看帖再写』与『真访问站点』两条真实性约束 — Step 3 全段(含 'Absolutely NO speculative feedback on things you didn't see')与 Cautions 第 6 条一致,无夸大。
- [ok] 无凭证/密钥硬编码 — 全仓关键词扫描仅 3 处无关命中(MCP token 优化、Login Required、CONTRIBUTING 的 credential 讨论);无 .env、无 API key 常量。
- [discrepancy] 登录态来源(凭证面)最终定性 — 第一遍曾想写『无凭证读取』,第二遍修正:skill 文件确实不读密钥,但 SETUP.md 要求账号已在本机浏览器登录、BATCH.md 专门处理 'Login session expired',说明运行时依赖浏览器登录态(cookie 级)。故按『凭证据实接触』定档 orange,并在 credential_reads 以『隐式复用浏览器登录态』如实记录,而非直报『无』。
6结论
31277b2a576dd188…e7fdda137e