☰
Windows 环境下把 skill.md 变成 Claude Code 写作 Skill 的完整路线:TaoToken 统一 Key 配置与 PowerShell 验证
2026/10/9 2:28:30 网站建设 项目流程

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.md,Claude 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_source=taotoken_aicg_blog_end ,注册和查看额度都在那边。API 地址是 https://taotoken.net/api ,注意这个不带任何查询参数。

需要提前准备三样东西,我把它叫「三件套」:Base URL、API Key、Model ID。这三样在后面的 settings 配置和 PowerShell 环境变量里都会用到,缺一个请求就会失败。

  • Base URL:https://taotoken.net/api
  • API 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放你的 Key,ANTHROPIC_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 frontmatter,name会成为/slash-command,description决定 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.txt:

Get-ChildItem ".\.claude\skills\chinese-tech-blog-writer"

如果输出里看到SKILL.md.txt,用Rename-Item改回来。这一步确认掉,后面才不会白忙。

4. PowerShell 验证请求与写作 Skill 跑通

配置写完,接下来验证。先确认 Claude Code 装好且能跑。Windows 原生安装用 PowerShell:

irm https://claude.ai/install.ps1 | iex

装完关掉当前窗口,重开 PowerShell,检查版本和诊断:

claude --version claude doctor

能正常输出就说明本体可用。注意 Windows 原生模式和 WSL 模式不要混用。原生模式在 PowerShell 里装和启动,项目路径是C:\Users\Jerry\Documents这类;WSL 模式在 Linux 子系统里装和启动,路径是/home/jerry/project。写作项目用原生模式更省事,文件在资源管理器里直接可见。

进入项目目录启动 Claude Code:

cd "$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 Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding_plan&utm_campaign=rewrite ;想先验证模型效果就去模型对话:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_content=model_chat&utm_campaign=rewrite ;接入细节查文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询