ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

一次真实的智能体工程实践:用 Claude Code Skill 串起 /prd → /goal → /after-goal 全流程

一次真实的智能体工程实践:用 Claude Code Skill 串起 /prd → /goal → /after-goal 全流程 1. 从一次“它自己动了”的瞬间说起先说结论Claude Code 的 Skill 机制能把/prd、/goal、/after-goal三个自定义命令串成一条从需求拆解到代码合入的自动化流水线。这篇会给出 Skill 的目录结构、命令触发配置、settings.json骨架以及从需求到验收的完整跑通步骤你复制后可以直接验证。我试过在卡片实现完成后还没来得及手动敲/after-goalClaude Code 自己判断出“代码写完了下一步该提交合入”主动把提交、推送、打分、合入、更新卡片描述、关闭卡片全跑完了。没人叫它它自己判断下一步该干什么就干了。这件事让我意识到Skill 的价值不只是“帮你记住命令”而是让 AI 能识别何时应该触发某个流程。下面把整套东西拆开讲清楚包括目录怎么放、配置怎么写、命令怎么触发、跑起来会遇到什么坑。2. 为什么需要把研发流程固化成 Skill一个功能从需求到上线通常要过这几道关写 PRD → 拆卡片 → 写代码 → 提 CR → 合入 → 关卡片。每一步都要手动操作工具还分散在需求系统、代码平台、Review 工具里稍不注意就遗漏步骤比如忘了关卡片、忘了在卡片里补实现总结。效率低主要低在两处重复性操作多上下文切换成本高。更麻烦的是这些流程知识只活在人的脑子里新人接手要重新学一遍AI 也帮不上忙因为它不知道你的团队是怎么走的。把流程固化成 Skill本质是把“只活在你脑子里的流程知识”外化成 AI 可执行的步骤。一个好的 Skill 应该包含四样东西触发条件、执行步骤含具体命令和参数、错误处理方式、关键注意事项。写 Skill 的过程本身就是在梳理和沉淀团队流程。三个阶段的分工是这样的阶段命令主导方产出需求拆解/prd人类定方向AI 辅助结构化PRD 文档 任务卡片逐卡实现/goalAI 主导实现人类验收代码 测试 验证结果提交收尾/after-goalAI 全自动执行合入 卡片闭环3. TaoToken 前置把模型接入配好Skill 要跑起来前提是 Claude Code 能稳定调用模型。这里用 TaoToken 做接入层它提供兼容 Anthropic 的 API 端点配置方式很直接。官网地址https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentAPI 端点https://taotoken.net/api先在控制台创建一个 API Key然后配置到 Claude Code 的环境变量里。Claude Code 读取的是ANTHROPIC_BASE_URL和ANTHROPIC_API_KEY这两个变量export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_API_KEYsk-你的key如果你用的是 Claude Code 的配置文件方式可以在~/.claude/settings.json里写{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的key } }配好之后先验证一下能不能通别急着写 Skill。用一条最简单的请求测试curl https://taotoken.net/api/v1/messages \ -H x-api-key: sk-你的key \ -H anthropic-version: 2023-06-01 \ -H content-type: application/json \ -d { model: claude-sonnet-4-20250514, max_tokens: 64, messages: [{role: user, content: 回复 ok}] }返回里有正常的content字段就说明通了。如果报 401检查 Key 有没有多余空格报 404检查 base url 是不是写成了带/v1的完整路径这里只需要写到/api。注意环境变量和 settings.json 两种方式选一种就行同时配可能互相覆盖。建议用 settings.json换项目时不用重新 export。4. Skill 目录结构与命令触发配置Claude Code 的 Skill 放在项目根目录的.claude/skills/下每个 Skill 一个文件夹文件夹名就是命令名。三个命令对应三个目录项目根/ ├── .claude/ │ ├── settings.json │ └── skills/ │ ├── prd/ │ │ └── SKILL.md │ ├── goal/ │ │ └── SKILL.md │ └── after-goal/ │ └── SKILL.md ├── CLAUDE.md └── tasks/每个SKILL.md用 frontmatter 定义元信息正文写执行步骤。以/goal为例--- name: goal description: 根据卡片 ID 实现代码包含测试与验证。当用户输入 /goal 或提到实现卡片时触发。 --- # /goal 卡片实现流程 ## 触发条件 用户输入 /goal 卡片ID或说实现卡片 xxx。 ## 执行步骤 1. 拉取卡片描述与验收标准 2. 读 CLAUDE.md 和现有类型定义理解项目结构 3. 实现代码最小侵入 4. 写单元测试覆盖正常与边界场景 5. 跑 go vet / go build / go test全绿才算完成 ## 注意事项 - 严格按卡片依赖顺序实现 - 发现遗留 bug 立即修复不要留到后面/prd的 frontmatter 里 description 要写清楚“当用户描述一个新需求时触发”/after-goal写“当卡片实现完成、需要提交合入时触发”。description 写得越具体Claude Code 判断触发时机的准确率越高。settings.json的骨架除了环境变量还可以加权限白名单避免每次执行命令都弹确认{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的key }, permissions: { allow: [ Bash(git add:*), Bash(git commit:*), Bash(git push:*), Bash(go test:*), Bash(go build:*) ] } }注意权限白名单只放你信任的命令。像git push这种会改远端状态的建议先手动跑通一遍再放进白名单。5. 完整跑通从需求到验收5.1 第一阶段 /prd先把需求想清楚直接输入你的需求描述比如“给诊断平台增加案例记录与反馈闭环功能”。AI 会先问几个澄清问题。这里有个小经验不要去做选择题用自己的话直接描述AI 理解得更准确。跑完之后会得到两样东西一份结构化 PRD 存到tasks/prd-xxx.md以及拆解出的任务卡片每张包含任务描述、验收标准、依赖关系。卡片质量直接决定/goal的效果好的卡片满足四点任务明确可操作、有验收标准、有依赖关系、粒度足够小。5.2 第二阶段 /goalAI 拿到卡片自己干输入/goal 实现卡片 xx-46Claude Code 的执行链路是这样的第一步拉取卡片信息第二步读CLAUDE.md和现有类型定义理解项目结构第三步实现代码第四步写测试第五步跑go vet、go build、go test验证。整个过程不需要你介入AI 自己规划执行路径。跨包集成的卡片也一样能处理。关键改动包括导出原本未导出的函数、新增配置字段保持向后兼容、在 defer 块里处理写入逻辑、修复已有函数的边界 bug。/goal在这里体现出的能力是它不只是写代码而是真的在理解现有代码结构以最小侵入的方式做集成。5.3 第三阶段 /after-goal最后一公里代码写完还剩提交、推送、打分、合入、更新卡片、关闭卡片。这五步在SKILL.md里写成固定流程# Step 1 提交commit message 必须以卡片 ID 开头 git add 相关文件 git commit -m 卡片ID 功能描述... # Step 2 推送走 refs/for/ 路径输出里会有 CR 编号 git push origin HEAD:refs/for/master # Step 3 打分并合入 Code-cli api get_review_info -n CR编号 -o table Code-cli api set_review_score -r 仓库 -n CR编号 -s 2 Code-cli api submit_review -r 仓库 -n CR编号 # Step 4 更新卡片描述--detail 会覆盖整个字段先保留原内容再追加 CICD-cli card update --space 空间 --sequence 卡片号 \ --detail 原有描述 实现总结核心改动、测试覆盖、验证结果、Commit 链接 # Step 5 关闭卡片状态名必须先查 CICD-cli card next-statuses --space 空间 --sequence 卡片号 CICD-cli card update --space 空间 --sequence 卡片号 --status 已完成状态名一定要先查不同项目空间可能不一样有的是“已完成”有的是“Done”写死会失败。6. 本篇常见错排查Skill 不触发先检查目录名和 frontmatter 的name是否一致再看 description 有没有写清楚触发场景。description 太笼统比如只写“实现代码”会导致 AI 判断不准。命令执行报权限错误settings.json的 permissions 白名单没覆盖到或者命令带了管道、重定向导致匹配失败。把完整命令前缀加进 allow 列表。API 调用 401/404回到第 3 节的 curl 测试。401 多半是 Key 问题404 多半是 base url 写错确认只写到/api。commit 后代码平台没绑定卡片commit message 没以卡片 ID 开头。这个格式要求写进SKILL.md的注意事项里让 AI 每次都遵守。卡片描述被覆盖丢失--detail是覆盖不是追加。Skill 里要先读原描述拼接后再写回。依赖顺序错乱导致报错/goal严格按卡片依赖顺序执行别同时开多张有依赖关系的卡片。7. 把流程跑顺之后这套三阶段模式不只适用于某一个功能任何需要从需求到上线的开发任务都能复用。/prd人类主导方向/goalAI 主导实现、人类验收/after-goal全自动收尾。如果你想要更轻量、快速的全自动开发流程/prd → /goal → /after-goal是务实的选择。三条命令走完从需求拆解到代码合入的全流程。接入配置和 API Key 在控制台管理https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite想先验证模型对话效果可以直接在对话页试https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite长期做编码和 Agent 任务的话Coding Plan 更划算https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite接入文档在这里https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite最后留一个我踩过的坑Skill 写完后别急着全自动先手动把每个命令跑通一遍确认参数和状态名都对再交给 AI 自动触发。早期修正成本最低这条在 AI 辅助开发里尤其重要。
返回列表