1. 为什么我要自己造一个 Claude Skills 来写 X先说清楚这套东西是什么、能做什么、适合谁。Claude Skills 是 Anthropic 在 Claude Code 里推出的一种「技能包」机制本质是把一段可复用的上下文工程封装成目录让 Claude 在需要时按需加载。它不是一个独立 App而是挂在 Claude Code 里的能力扩展。适合的人群很明确已经在用 Claude Code 做日常开发或内容工作、想让 AI 稳定执行某类重复任务、又不想每次都手写一大段 Prompt 的人。我自己的痛点很具体。X 账号更新频率跟不上一天憋不出两条素材收集、选题判断、文案打磨、发布动作全是散的。之前试过用纯 Prompt 让模型一次干完结果每次格式都不一样选题质量忽高忽低最要命的是它不知道「今天该写什么」因为它没有稳定的信息收集环节。后来我把整条链路拆成四个独立 Skill收集、筛选、创作、发布每个 Skill 只干一件事用 skill-creator 生成骨架再用 Playwright MCP 把最后一步落到 X 草稿箱。这样做的核心收益是链路可复现每一步都能单独调试出问题知道该改哪个文件。这里有个关键判断我想提前说写 Claude Skills 尽量用 Claude 模型本身。我去年用国产模型试过生成 Skill出来的 SKILL.md 总是缺字段、少示例frontmatter 格式也经常错。换成 Claude Opus 之后基本一次成型。原因不复杂Skill 的规范是 Anthropic 定的自家模型对这套格式的「肌肉记忆」最强。所以下面所有操作默认你已经在 Claude Code 里切到了 Claude 模型接入方式我在第 2 节讲。整篇文章的路线是先解决模型接入TaoToken 统一 Key再讲 skill-creator 怎么用然后给出完整的目录结构和 SKILL.md 配置接着是 Playwright MCP 的连接参数最后给一份本地验证清单。你照着做能跑通「自动写推文并存入草稿箱」这条链路。2. TaoToken 统一 Key 接入 Claude Code 的前置配置这一节解决「国内环境怎么让 Claude Code 用上 Claude 模型」。我用的是 TaoToken 的统一 Key 方案一个 Key 打通多家模型配置只改一个文件不用来回换端点。官网地址是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 端点是 https://taotoken.net/api 注意 API 地址不带 UTM 参数配置里填干净的就行。先说清楚为什么需要这一步。Claude Code 默认走 Anthropic 官方端点国内直连不稳定而且你得有官方账号。TaoToken 做的是统一接入层把请求转发到对应模型你只需要在 settings.json 里改两个环境变量。这不是什么灰色中转它就是个正常的 API 聚合服务支持 OpenAI 和 Anthropic 两种格式Claude Code 用的是后者。具体操作分三步。第一步去控制台拿 Key。打开 https://taotoken.net/console 登录后在 API Keys 页面创建一个新 Key复制出来。这个 Key 就是你的 ANTHROPIC_AUTH_TOKEN。第二步找到 Claude Code 的配置文件。macOS 和 Linux 在~/.claude/settings.jsonWindows 在C:\Users\你的用户名\.claude\settings.json。如果文件不存在就新建一个。第三步写入下面的配置。{ env: { ANTHROPIC_AUTH_TOKEN: 你的TaoToken_API_Key, ANTHROPIC_BASE_URL: https://taotoken.net/api }, permissions: { deny: [ Read(./.env), Read(./.env.*), Read(./secrets/**) ] } }这里有几个坑我要提醒。第一ANTHROPIC_BASE_URL后面不要加/v1或者斜杠就填https://taotoken.net/api多写反而会 404。第二配置里不要写模型名字Claude Code 不写 model 字段时默认请求 Claude 系列模型你写了反而可能覆盖成别的。第三permissions 那段是防止 Claude 读到你的密钥文件建议保留。第四JSON 不能有注释不能有多余逗号改完用python -m json.tool ~/.claude/settings.json校验一下格式。改完之后重启 Claude Code输入/status看当前模型和端点。如果显示的是你配置的端点说明接入成功。这一步是整个链路的地基地基不稳后面全白搭。我实测下来TaoToken 的响应速度和直连差别不大Opus 模型也能正常调用这对后面用 skill-creator 生成 Skill 很关键因为生成质量直接取决于模型能力。如果你还想在网页端验证模型是否可用可以打开 https://taotoken.net/models 用模型对话功能发一条测试消息确认 Key 有额度、模型能返回。这一步能提前排除 Key 无效或余额不足的问题省得在 Claude Code 里排查半天。3. 用 skill-creator 生成 x-skills 的完整目录与 SKILL.md 配置这一节是核心给出可复制的目录结构和配置文件。先说 skill-creator 怎么来。它是 Anthropic 官方仓库里的一个 Skill地址是 https://github.com/anthropics/skills 把整个仓库克隆下来找到skill-creator目录复制到~/.claude/skills/下面。Windows 路径是C:\Users\你的用户名\.claude\skills\。放好之后重启 Claude Code输入/skills能看到 skill-creator 就说明识别成功了。然后建项目仓库。我在 GitHub 建了个公共仓库叫 x-skills克隆到本地git clone https://github.com/你的用户名/x-skills.git cd x-skills以这个目录为根目录启动 Claude Code切到 Plan Mode先对齐需求再动手。我的 Prompt 是这样的我想创造一个能帮我自动收集素材、筛选选题、创作爆款 X 推文、最后保存到 X 草稿箱的 Claude Skills。请使用 Anthropic 官方的 skill-creator 来生成。先跟我沟通需求对齐后再执行。Claude 会反问几个问题比如信息源范围、选题评分维度、推文风格、发布方式。对齐之后切回自动执行模式大概十分钟就能生成完整结构。最终目录长这样x-skills/ ├── x-collect/ │ └── SKILL.md ├── x-filter/ │ └── SKILL.md ├── x-create/ │ └── SKILL.md ├── x-publish/ │ └── SKILL.md └── README.md每个 SKILL.md 的 frontmatter 必须包含 name 和 descriptiondescription 要写清楚「这个 Skill 干什么、什么时候该用」因为 Claude 是靠 description 来决定加载哪个 Skill 的。下面给出 x-create 的 SKILL.md 示例这是最核心的一个--- name: x-create description: 根据筛选后的选题创作 X 推文。当用户需要写推文、生成 X 内容、创作社交媒体文案时使用。输入是选题和素材输出是符合 X 风格的推文草稿。 --- # X 推文创作 ## 任务 根据输入的选题和素材创作一条 280 字符以内的 X 推文。 ## 创作规则 1. 开头用钩子制造好奇或冲突 2. 中间给具体信息不要空泛 3. 结尾留互动或观点 4. 不用 emoji 堆砌最多一个 5. 中文推文控制在 140 字以内 ## 输出格式 直接输出推文正文不要加标题、不要加解释。x-collect 的 description 写成「查找最近一周 AI 领域热点信息当需要收集素材时使用」x-filter 写成「对候选选题打分排序当需要从多个选题中选一个时使用」x-publish 写成「将推文保存到 X 草稿箱当需要发布或暂存内容时使用」。这四个 Skill 的 description 要互不重叠否则 Claude 会加载错。生成完之后把这四个目录复制到~/.claude/skills/下面重启 Claude Code。这时候你在任意项目里输入「用 x-skills 帮我写条推文」Claude 就会自动串联这四个 Skill。我踩过的坑是一开始把四个 Skill 塞进一个 SKILL.md结果 Claude 执行时上下文太长经常漏步骤。拆成四个独立 Skill 之后每个只加载自己需要的部分稳定多了。这就是「渐进式披露」的实际价值不是概念是实打实解决上下文膨胀。4. Playwright MCP 连接参数与自动发布验证这一节解决最后一步怎么把生成的推文自动存进 X 草稿箱。我用的是 Playwright MCP这是目前最稳的浏览器自动化方案。为什么不直接调 X API因为 API 自动发布有封号风险模拟人工操作更安全。整个流程最后一步我保留了人工介入Skill 只负责把内容弄到草稿箱最终发布我自己点。先装 Playwright MCP。在 Claude Code 里执行claude mcp add playwright -- npx -y playwright/mcplatest这条命令会把 Playwright MCP 注册到 Claude Code。装完之后输入/mcp能看到 playwright 就说明连上了。如果你想手动配置编辑~/.claude.json或者项目根目录的.mcp.json加入{ mcpServers: { playwright: { command: npx, args: [-y, playwright/mcplatest] } } }这里有个关键点Playwright MCP 需要浏览器环境。第一次运行它会提示你安装 Chromium执行npx playwright install chromium就行。装完之后x-publish 这个 Skill 里要写清楚操作步骤比如「打开 x.com/compose/post等待编辑器加载输入推文内容点击保存草稿按钮」。这些步骤写在 SKILL.md 的指令部分Claude 会通过 Playwright MCP 逐步执行。验证链路是否跑通用这个 Prompt最近 Claude Skills 很火我想写一篇关于 Claude Skills 的 X 推文。请用 x-skills 完成先用 x-collect 找最近一周 AI 领域热点再用 x-filter 筛选打分最高的选题用 x-create 创作推文最后用 x-publish 保存到 X 草稿箱。执行过程中你会看到 Claude 依次调用四个 SkillPlaywright 会打开浏览器窗口自动登录你的 X 账号首次需要手动登录一次之后 cookie 会保留然后填入内容、点保存。整个过程大概一到两分钟。我实测下来一次就跑通了效果比预期好。这里必须写全三件套因为 Playwright MCP 本身不涉及模型调用但整个链路依赖 Claude Code 的模型能力所以配置要完整Base URL 填https://taotoken.net/apiKey 填你的 TaoToken API KeyModel ID 不写默认 Claude。这三样在 settings.json 里已经配好了MCP 只是复用这个配置。如果你用的是 Cline 或者 CC Switch 这类工具配置逻辑一样Base URL 和 Key 填对就行。验证成功的标志是X 草稿箱里出现了一条新推文内容和你预期的一致。如果没出现先看 Playwright 有没有报错再看 x-publish 的 SKILL.md 里选择器写得对不对X 的页面结构偶尔会变选择器要跟着更新。5. 常见报错排查401、local proxy failed、reading choices、OAuth这一节把我踩过的坑和真实报错列出来你对照着排查。401 Unauthorized。这个最常见九成是 Key 问题。先检查 settings.json 里的ANTHROPIC_AUTH_TOKEN有没有多余空格再确认 Key 没过期、有余额。如果还报 401去 https://taotoken.net/api-keys 重新生成一个 Key 换上。注意别把 Key 提交到 Git 仓库permissions 里的 deny 规则就是防这个的。local proxy failed / connection refused。这个通常是ANTHROPIC_BASE_URL写错了。检查是不是多写了/v1或者结尾斜杠。正确写法就是https://taotoken.net/api。另外确认你的网络能访问这个域名公司内网可能有防火墙拦截换个网络试试。reading choices of undefined。这个报错一般出现在用 OpenAI 格式调用但返回结构不对的时候。Claude Code 用的是 Anthropic 格式如果你在别的工具里看到这个错检查是不是把端点配成了 OpenAI 兼容路径。TaoToken 同时支持两种格式但路径不同Claude Code 必须用 Anthropic 格式的端点。OAuth error / authentication failed。这个多出现在 Playwright 操作 X 的时候。X 的登录态过期了需要重新手动登录一次。Playwright MCP 默认会把浏览器数据存在本地如果 cookie 失效就重新跑一次登录流程。另外 X 有时会触发人机验证这种情况只能手动过一下过了之后 cookie 能管一段时间。Skill 没被加载。输入/skills看不到你的 Skill检查目录结构对不对。必须是~/.claude/skills/x-create/SKILL.md这种形式SKILL.md 直接在 Skill 目录下不能多套一层。frontmatter 的 name 字段要和目录名一致description 不能为空。Playwright 找不到元素。X 页面改版会导致选择器失效。打开 x-publish 的 SKILL.md把里面的选择器更新一下。建议用data-testid属性定位比 class 名稳定。如果实在找不到让 Claude 用 Playwright 的 snapshot 功能先看页面结构再改选择器。排查顺序建议是先确认模型接入401 类再确认 MCP 连接proxy 类最后确认 Skill 逻辑元素找不到类。一层一层往下查别跳步。6. 把这条链路用起来从草稿箱到稳定产出配置跑通只是开始真正有价值的是让它稳定产出。我现在每天的工作流是早上让 x-collect 跑一遍收集最近 24 小时的 AI 热点x-filter 打分选出 top3我人工挑一个x-create 生成推文x-publish 存草稿我审核后手动发。整个流程从原来的两小时压缩到二十分钟而且选题质量比我拍脑袋想的高。关于适用场景我的判断是Claude Skills 适合创造性任务比如写推文、生成文案、做内容策划。它不适合高稳定性、高响应速度的场景比如实时客服、交易系统。因为 Skill 靠 Agent 主导每次执行都有思考时间结果也会有差异。如果你要的是「每次输出完全一致」那应该用工作流加 Agent 节点的方案把确定性部分用代码固定下来只把创造性部分交给模型。这套 x-skills 我已经开源了仓库地址是 https://github.com/kangarooking/x-skills 你可以直接克隆下来改。后续我会根据反馈迭代比如加入多账号矩阵支持、增加图片生成环节。如果你在配置过程中卡住了优先看第 5 节的报错对照大部分问题都能定位。最后给一个实用技巧Skill 的 description 写得越具体Claude 加载越准。不要写「用于内容创作」这种模糊描述要写「根据选题创作 280 字符以内的 X 推文输入是选题和素材输出是推文正文」。这样 Claude 在决定用哪个 Skill 时不会犹豫。另外每次改完 SKILL.md 记得重启 Claude Code不然改动不生效。这条链路我跑了两个月稳定性没问题你可以放心用。