1. Windows 下 skill.md 落地 Claude Code 写作 Skill 的真实卡点很多人第一次在 Windows 上折腾 Claude Code 的 Skill都会以为难点在 SKILL.md 的语法结果真正卡住的是路径、文件名大小写、PowerShell 变量和 endpoint 配置。我自己在 Windows 上把一份网络下载的 skill.md 变成可复用的中文技术博客写作 Skill前后踩了三四次坑最后发现核心链路其实就四件事认目录、审计文件、写 frontmatter、把请求通道统一到 TaoToken。先说清楚这套东西是什么。Claude Code 是 Anthropic 官方的命令行编程助手它支持一种叫 Skill 的扩展机制你在特定目录放一个 SKILL.mdClaude Code 就能在相关任务里自动加载它也可以用/skill-name手动调用。Skill 的正文只在被使用时才进入上下文这点和一直挂在会话里的 CLAUDE.md 完全不同。所以它特别适合承载「写作流程」这种又长又细、但不需要每轮都占上下文的规则。适合谁适合在 Windows 上写中文技术博客、公众号专栏、内部知识库的人。你手里可能已经有一份从网上找到的 skill.md里面堆了写作规范、禁用词、示例文章、术语表。你想把它变成 Claude Code 能长期调用的写作 Skill还想让所有模型请求走同一个 Key 通道避免在多个平台之间来回切。这篇就按这条完整路线走一遍每一步都给可复制的 PowerShell 命令和配置文件。Windows 环境和 Linux 最大的差异是路径。Linux 里的~对应到 Windows 大致是当前用户目录以用户名 Jerry 为例就是C:\Users\Jerry。但在 PowerShell 里不要写死用户名用$env:USERPROFILE更稳它会自动指向当前登录用户的主目录。后面所有路径都围绕这个变量展开换台机器、换个用户名都不用改脚本。还有一个高频坑Windows 资源管理器默认隐藏文件扩展名。你以为文件叫SKILL.md实际可能是SKILL.md.txt。Claude Code 只认前者后者会被当成普通文本忽略。所以第一步不是写代码而是打开资源管理器的「文件扩展名」显示把这件事确认掉。2. TaoToken 统一 Key 通道的前置准备在把 Skill 跑通之前先把请求通道定下来。Claude Code 默认会连 Anthropic 官方端点但在国内网络环境下直连经常不稳定而且如果你同时用多个模型或工具Key 管理会很乱。我的做法是把 endpoint 统一改到 TaoToken用一套 Key 覆盖 Claude Code 的请求。TaoToken 在这里扮演的角色是统一入口你拿到一个 API Key把 Claude Code 的 Base URL 指向https://taotoken.net/api模型 ID 按需填写就能让 Skill 触发的写作请求走同一条通道。官网在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 注册和查看额度都在那边。API 地址是 https://taotoken.net/api 注意这个不带任何查询参数。需要提前准备三样东西我把它叫「三件套」Base URL、API Key、Model ID。这三样在后面的 settings 配置和 PowerShell 环境变量里都会用到缺一个请求就会失败。Base URLhttps://taotoken.net/apiAPI Key在控制台的 API Keys 页面创建形如sk-开头的一串字符Model ID按你实际要用的模型填写写作场景一般选长上下文、中文表达稳的模型创建 Key 的入口在 https://taotoken.net/api-keys 登录后新建一个复制出来先存到安全的地方。注意 Key 只显示一次关掉页面就看不到了丢了只能重建。这里要强调一个安全习惯不要把 Key 硬编码进 SKILL.md 或任何会提交到 Git 的文件。SKILL.md 是给 Claude 读的流程说明不是放密钥的地方。Key 应该放在环境变量或本地 settings 文件里并且把 settings 文件加进.gitignore。为什么要在写作 Skill 之前先配通道因为 Skill 本身不负责网络它只是流程说明。真正发请求的是 Claude Code 本体。如果通道没配好你调用/chinese-tech-blog-writer时会看到连接错误然后误以为是 Skill 写错了白白排查半天。先把通道打通再验证 Skill顺序不能反。配好之后建议先做一次最小验证在 PowerShell 里确认环境变量生效再启动 Claude Code 发一句最简单的请求。这一步过了后面 Skill 的调试才有意义。下一节给完整的可复制配置。3. 可复制的 settings 与 PowerShell 环境变量配置这一节是整篇的核心所有片段都可以直接复制。先处理 Claude Code 的 settings 文件。Windows 上个人级配置放在$env:USERPROFILE\.claude\settings.json项目级放在项目根目录的.claude\settings.json。写作项目我建议用项目级方便跟仓库一起管理。先创建目录并写入 settings.json# 创建项目目录 New-Item -ItemType Directory -Force $env:USERPROFILE\Documents\writing-project cd $env:USERPROFILE\Documents\writing-project # 创建 .claude 目录 New-Item -ItemType Directory -Force .\.claude # 写入 settings.json { env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: sk-你的Key粘贴在这里, ANTHROPIC_MODEL: 你的ModelID } } | Out-File -FilePath .\.claude\settings.json -Encoding utf8这段 JSON 里的三个字段就是前面说的三件套。ANTHROPIC_BASE_URL指向 TaoToken 的 API 地址ANTHROPIC_AUTH_TOKEN放你的 KeyANTHROPIC_MODEL填模型 ID。注意 JSON 里不能有注释粘贴 Key 时别带多余空格。如果你不想把 Key 写进文件可以用环境变量。PowerShell 当前会话临时生效$env:ANTHROPIC_BASE_URL https://taotoken.net/api $env:ANTHROPIC_AUTH_TOKEN sk-你的Key粘贴在这里 $env:ANTHROPIC_MODEL 你的ModelID想永久生效就写进用户环境变量[Environment]::SetEnvironmentVariable(ANTHROPIC_BASE_URL, https://taotoken.net/api, User) [Environment]::SetEnvironmentVariable(ANTHROPIC_AUTH_TOKEN, sk-你的Key粘贴在这里, User) [Environment]::SetEnvironmentVariable(ANTHROPIC_MODEL, 你的ModelID, User)写完之后要重开 PowerShell 窗口才生效这点很多人会忘。验证是否写进去[Environment]::GetEnvironmentVariable(ANTHROPIC_BASE_URL, User) [Environment]::GetEnvironmentVariable(ANTHROPIC_MODEL, User)接下来创建 Skill 目录结构。个人级和项目级二选一写作项目我推荐项目级# 项目级 Skill 目录 New-Item -ItemType Directory -Force .\.claude\skills\chinese-tech-blog-writer New-Item -ItemType Directory -Force .\.claude\skills\chinese-tech-blog-writer\templates New-Item -ItemType Directory -Force .\.claude\skills\chinese-tech-blog-writer\examples New-Item -ItemType Directory -Force .\.claude\skills\chinese-tech-blog-writer\scripts # 素材和草稿目录 New-Item -ItemType Directory -Force .\sources New-Item -ItemType Directory -Force .\drafts然后写 SKILL.md。顶部必须有 YAML frontmattername会成为/slash-commanddescription决定 Claude 什么时候自动加载它--- name: chinese-tech-blog-writer description: Use this skill when transforming English technical articles, product documentation, engineering notes, or source material into polished Chinese technical blog posts. Focus on Chinese reading flow, preservation of source code, Markdown output, terminology consistency, and final self-review. --- # Chinese Technical Blog Writer Use this workflow when writing or rewriting Chinese technical blog posts from supplied source material. Read the source material completely before drafting. Extract the main technical argument, important constraints, examples, and source code. Preserve source code exactly unless the task explicitly asks for adaptation. Write in natural Chinese with smooth transitions. Run a final style check before returning the article.把这段写进文件 --- name: chinese-tech-blog-writer description: Use this skill when transforming English technical articles, product documentation, engineering notes, or source material into polished Chinese technical blog posts. Focus on Chinese reading flow, preservation of source code, Markdown output, terminology consistency, and final self-review. --- # Chinese Technical Blog Writer Use this workflow when writing or rewriting Chinese technical blog posts from supplied source material. Read the source material completely before drafting. Extract the main technical argument, important constraints, examples, and source code. Preserve source code exactly unless the task explicitly asks for adaptation. Write in natural Chinese with smooth transitions. Run a final style check before returning the article. | Out-File -FilePath .\.claude\skills\chinese-tech-blog-writer\SKILL.md -Encoding utf8写完检查文件名必须是SKILL.md不是skill.md也不是SKILL.md.txtGet-ChildItem .\.claude\skills\chinese-tech-blog-writer如果输出里看到SKILL.md.txt用Rename-Item改回来。这一步确认掉后面才不会白忙。4. PowerShell 验证请求与写作 Skill 跑通配置写完接下来验证。先确认 Claude Code 装好且能跑。Windows 原生安装用 PowerShellirm https://claude.ai/install.ps1 | iex装完关掉当前窗口重开 PowerShell检查版本和诊断claude --version claude doctor能正常输出就说明本体可用。注意 Windows 原生模式和 WSL 模式不要混用。原生模式在 PowerShell 里装和启动项目路径是C:\Users\Jerry\Documents这类WSL 模式在 Linux 子系统里装和启动路径是/home/jerry/project。写作项目用原生模式更省事文件在资源管理器里直接可见。进入项目目录启动 Claude Codecd $env:USERPROFILE\Documents\writing-project claude进去之后先问一句确认 Skill 被识别What skills are available?如果列表里出现chinese-tech-blog-writer说明目录和文件名都对。接着手动调用一次/chinese-tech-blog-writer再放一份真实素材测试。把英文技术文档保存到sources\article.md然后发请求/chinese-tech-blog-writer .\sources\article.md 请把这份英文技术文档改写成中文技术博客输出到 .\drafts\article-v1.md。 保留原文所有代码块按照项目里的 style-guide.md 和 terminology.md 执行。跑通之后drafts\article-v1.md里应该出现一篇结构完整的中文技术博客代码块原样保留。如果这一步成功说明通道、Skill、目录三件事都对了。再补一个自动触发的测试验证 description 写得够不够具体请把 .\tests\long-english-doc.md 改写成一篇适合发布在中文技术社区的技术博客 要求保留原文所有代码块输出到 .\drafts\long-english-doc-blog.md。如果手动调用有效但自动触发不明显问题几乎都在 description。把关键用例前置比如English technical articles、Chinese technical blog posts、preservation of source code这些词往前放因为描述文本会被截断到一定长度。验证通道是否真的走了 TaoToken可以在 PowerShell 里单独发一次请求确认环境变量Write-Host Base URL: $env:ANTHROPIC_BASE_URL Write-Host Model: $env:ANTHROPIC_MODEL输出应该是https://taotoken.net/api和你填的模型 ID。如果 Base URL 是空的说明环境变量没生效回上一节重配。5. 常见报错排查401、local proxy failed、reading choices、OAuth这一节按真实报错来对。写作 Skill 跑不通九成是下面这几类。401 Unauthorized。最常见的原因是 Key 没配、配错或过期。先确认环境变量[Environment]::GetEnvironmentVariable(ANTHROPIC_AUTH_TOKEN, User)如果输出为空说明没写进去重配。如果输出有值但还是 401去 https://taotoken.net/api-keys 检查 Key 是否被删或额度是否用完。还有一种情况是 Key 粘贴时带了首尾空格或换行用Trim()清一下$key $env:ANTHROPIC_AUTH_TOKEN.Trim()local proxy failed。这个报错通常出现在你本地配了代理但代理没起来或者 Base URL 写成了本地地址。检查ANTHROPIC_BASE_URL是不是https://taotoken.net/api别写成http://localhost:xxxx。如果你之前配过其他工具的代理设置确认没有残留冲突。reading choices 相关报错。这类通常是响应格式不符合预期常见于 Model ID 填错。确认ANTHROPIC_MODEL是你实际有权限的模型 ID别照抄别人的。模型 ID 写错时服务端可能返回一个结构不同的响应客户端解析choices字段就报错。OAuth 相关报错。如果你之前用 OAuth 登录过 Claude Code本地可能残留了旧的凭据文件和现在的 Key 通道冲突。检查$env:USERPROFILE\.claude下有没有旧的凭据缓存必要时清掉再重试。注意不要删掉settings.json和skills目录。Skill 不触发。先确认文件名是SKILL.md再确认目录层级是.claude\skills\chinese-tech-blog-writer\SKILL.md。用Get-ChildItem -Recurse看一眼完整结构Get-ChildItem -Recurse .\.claude\skills如果结构对但还不触发改 description把使用场景写具体。代码块被改动。这是写作 Skill 的高频问题。在 SKILL.md 里明确写「Preserve source code exactly unless the task explicitly asks for adaptation」并在请求里重复一次「原文所有代码块必须原样保留」。规则写在 Skill 里强调放在请求里两层保险。PowerShell 命令报「 不是有效语句分隔符」。说明你在 PowerShell 里跑了 CMD 语法。PowerShell 用;或分行CMD 才用。反过来如果报irm 无法识别说明你在 CMD 里跑了 PowerShell 命令。先确认当前是哪个 shell。路径有空格报错。项目路径带空格时用单引号包起来cd C:\Users\Jerry\Documents\My Writing Project排障时记住一个顺序先确认通道环境变量 Key再确认 Skill文件名 目录最后确认请求description 提示词。按这个顺序走基本不会绕远路。6. 把写作 Skill 用成长期生产线到这里一份网络下载的 skill.md 已经变成 Windows 上可长期调用的写作 Skill。最后说几个让它真正好用的习惯。第一把 SKILL.md 拆开。主流程放 SKILL.md风格规则放style-guide.md术语表放terminology.md模板放templates\好坏样稿放examples\检查脚本放scripts\。SKILL.md 只保留「读素材、抽要点、保代码、写中文、做检查」这条主线。Claude 已经懂很多通用写作知识Skill 要补的是你的个人偏好和团队规范不是把通用知识再抄一遍。第二用四个回合固定流程。第一回合只读素材不写正文输出source-map.md第二回合生成outline.md第三回合写drafts\article-v1.md第四回合审稿修订输出article-v2.md。这样每一步都有中间文件资源管理器里能看VS Code 里能对比Git 里能追溯。第三把 CLAUDE.md 和 SKILL.md 分开。CLAUDE.md 放项目背景比如「这个仓库存中文技术博客草稿默认读者是国内 SAP 开发者默认输出 Markdown」。SKILL.md 放写作流程。项目背景不用每次重复写作流程也不会一直占上下文。第四项目级 Skill 进 Git。.claude\skills\提交到版本控制团队拉下来就是同一套流程。每次发现输出不稳就改对应文件术语不稳改terminology.md口吻僵硬改style-guide.md代码被改改 SKILL.md 的保留规则。别把所有修正都堆进临时提示词临时提示词只解决一次Skill 才解决长期重复。最后把四个固定位置记住个人级 Skill 在$env:USERPROFILE\.claude\skills\chinese-tech-blog-writer\SKILL.md项目级 Skill 在.\.claude\skills\chinese-tech-blog-writer\SKILL.md素材在.\sources\article.md草稿在.\drafts\article-v1.md。通道统一到 TaoToken 之后每次写技术博客只需要把素材放进 sources启动 Claude Code调用/chinese-tech-blog-writer剩下的交给流程。需要长期跑编码和 Agent 任务的话可以看 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite 想先验证模型效果就去模型对话https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite 接入细节查文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。