本文首发于公众号:移动开发那些事 Claude Skill 开发实战指南:客户端开发工程师版
现阶段利用好AI不仅仅能大幅提高我们的效率,减小很多重复的工作,而掌握Claude Skill开发能力,能为Claude定制贴合客户端开发场景的专属工作流(如界面设计稿转端侧代码、客户端性能分析、工程化配置生成等),大幅提升AI辅助开发的效率和适配性。这份指南基于官方完整开发文档整理,聚焦可落地的开发步骤、技术规范和实战要点 ,帮你快速从0到1构建可用的Claude Skill,同时适配Claude.ai、Claude Code及API多端使用场景。
1 先搞懂:Claude Skill 是什么&核心价值
1.1 核心定义
Skill是一个标准化文件夹 ,包含指导Claude处理特定任务的指令、可选的可执行脚本、参考文档和资源模板,本质是给Claude植入专属领域的"工作方法论",一次配置即可重复使用。
1.2 客户端开发的适配价值
无需在每次对话中重复说明客户端开发的规范(如iOS/Android代码规范、Flutter组件设计原则)、工作流(如UI稿转代码的步骤、埋点验收流程),让Claude精准贴合团队开发习惯,实现客户端专属任务的自动化/标准化处理,比如:
- 从Figma设计稿生成符合团队规范的
iOS/Android原生代码; - 自动化分析客户端性能日志并生成优化建议;
- 按团队模板生成客户端工程化配置文件(如
Podfile、build.gradle); - 协调多工具完成客户端提测前的检查(代码lint、单元测试、包体积检测)。
1.3. 核心设计原则(开发前必守)
开发的Skill需遵循3个核心原则,确保兼容性和使用效率:
- 渐进式披露 :分3层加载内容,减少令牌消耗------
YAML头信息(常驻系统提示,判断是否触发)→SKILL.md主体(触发后加载,完整指令)→关联文件(按需加载,详细参考/脚本); - 可组合性 :你的
Skill能和其他Skill共存,不假设独占Claude能力; - 可移植性 :一次开发,无缝运行在
Claude.ai、Claude Code、API,仅需保证环境满足依赖要求。
2 开发前置:明确技术要求&文件夹结构
2.1 必备技术基础
无需复杂开发能力,客户端工程师的基础即可胜任:
- 熟悉
Markdown语法(编写核心指令); - 基础
YAML语法(配置头信息,核心触发逻辑); - 简单的脚本能力(可选,
Python/Bash均可,用于客户端相关的自动化校验/处理); - 了解
Claude基础使用,若需结合工具,可简单了解MCP(Claude的工具连接层,如对接Figma、Git、性能分析工具)。
2.2. 标准化文件夹结构(严格遵循)
Skill文件夹命名必须为kebab-case (如figma-to-ios-code),禁止空格、下划线、大写,内部结构如下(仅SKILL.md为必选):
bash
your-skill-name/ # kebab-case命名
├── SKILL.md # 必选,核心指令文件(Markdown+YAML头)
├── scripts/ # 可选,可执行脚本(如Python写的代码规范校验、日志分析脚本)
├── references/ # 可选,参考文档(如客户端开发规范、MCP工具调用指南)
└── assets/ # 可选,资源模板(如代码模板、文档模板、图标等)
2.3. 核心文件禁忌
SKILL.md必须大小写完全一致 ,禁止skill.md、SKILL.MD等变体;- 技能文件夹内禁止包含README.md ,所有文档统一放在
SKILL.md或references/; - 若在GitHub托管,仅仓库根目录可放README.md(供开发者查看)。
3、核心开发步骤:从规划到编写,步步落地
3.1 步骤1:规划Use Case,明确技能目标
开发前先锁定2-3个具体的客户端开发场景用例,避免技能功能模糊,这是开发的核心前提。
3.1.1 用例定义模板(客户端场景示例)
markdown
Use Case: Figma设计稿转iOS原生代码
Trigger: 用户说"把这个Figma稿转iOS代码""生成符合团队规范的UIKit代码"或上传.fig文件
Steps:
1. 解析用户上传的Figma设计稿(若对接Figma MCP则自动拉取);
2. 按团队iOS开发规范(如命名、布局方式、控件使用)生成UIKit代码;
3. 生成代码注释和布局约束说明;
4. 校验代码是否符合lint规则(调用scripts/ios-lint-check.py);
Result: 可直接复制的iOS原生代码+校验报告
3.1.2 客户端常见Skill用例分类
结合官方3类核心用例,适配客户端开发场景:
- 文档&资产生成:设计稿转端侧代码、生成工程配置文件、创建客户端开发文档;
- 工作流自动化:客户端提测前的全流程检查、性能日志分析流程、多端代码同步;
- MCP能力增强:对接Figma/Git/性能工具的MCP,植入客户端专属的工具使用方法论。
3.2 步骤2:定义成功标准,明确验收维度
提前设定技能的合格标准,分为量化指标 和质化指标,便于后续测试和迭代:
3.2.1 量化指标(可直接验证)
- 触发准确率:90%以上的相关客户端查询能自动加载技能;
- 工具调用效率:完成任务的工具/脚本调用次数比手动操作减少50%以上;
- 无失败调用:对接MCP/脚本时,单次工作流内无API/脚本执行失败。
3.2.2 质化指标(体验验证)
- 无需额外提示:用户仅说明需求,Claude即可按步骤完成,无需补充客户端开发细节;
- 结果无修正:生成的代码/文档/分析结果符合团队规范,无需用户手动调整;
- 结果一致性:多次执行同一需求,输出结果的结构和质量保持统一。
3.3 步骤3:编写SKILL.md,核心开发环节
SKILL.md是Skill的核心,由YAML头信息 和Markdown主体指令 两部分组成,前者决定技能何时触发 ,后者决定技能如何执行。
3.3.1 部分1:YAML头信息(触发逻辑核心,严格遵循规范)
是Claude判断是否加载技能的依据,name和description为必选 ,其余为可选,写在SKILL.md最顶部,用---包裹。
3.3.2. 必选字段规范
- name:必须为kebab-case,与技能文件夹名完全一致,禁止包含"claude/anthropic"(保留词);
- description :核心触发配置,必须同时包含「技能做什么」和「触发条件」,字符数<1024,无XML标签(<>),需包含用户实际会说的关键词(如客户端场景的"Figma转iOS代码""Flutter组件生成""包体积分析")。
3.3.3. 可选字段
license:开源协议(如MIT、Apache-2.0),开源技能时使用;compatibility:环境要求(如"Claude Code、iOS 17+、Python 3.9+");metadata:自定义元信息(如作者、版本、关联MCP服务,author: 客户端团队 | version: 1.0.0 | mcp-server: figma)。
3.3.4. 客户端场景示例(正确写法)
yaml
---
name: figma-to-ios-code
description: 解析Figma设计稿并生成符合iOS团队规范的UIKit代码,包含布局约束和代码注释。使用当用户上传.fig文件、说"Figma转iOS代码""生成UIKit代码"或"设计稿转端侧代码"时。
metadata:
author: iOS开发团队
version: 1.0.0
mcp-server: figma
compatibility: Claude Code, Python 3.9+
---
3.3.5. 典型错误避坑
- 描述太模糊:
description: 帮助做iOS开发(无具体功能+无触发条件); - 名称不规范:
name: FigmaToiOSCode(大写)、name: figma_to_ios_code(下划线); - 缺少触发关键词:
description: 解析Figma设计稿生成iOS代码(未说明用户何时会用)。
3.3.6 部分2:Markdown主体指令(执行逻辑核心,可落地)
写在YAML头信息之后,是Claude执行任务的详细指导,客户端开发场景建议按固定模板编写 ,确保指令清晰、可执行,核心原则:具体、可操作,避免模糊表述。
3.3.7 主体编写模板(客户端场景适配)
markdown
# 技能名称(如Figma转iOS代码技能)
## 核心指令
### Step 1: [第一步核心操作,如解析Figma设计稿]
清晰说明操作步骤,若调用脚本/MCP需写明命令,例:
调用MCP工具:`figma/fetch_design`,参数:design_id(从用户上传文件中提取)
调用脚本:`python scripts/parse_figma.py --design-id {design_id}`
预期输出:包含控件、尺寸、颜色的设计稿解析结果
### Step 2: [第二步核心操作,如生成iOS代码]
按团队iOS开发规范生成UIKit代码,遵循以下规则:
- 类名命名:XXView/XXVC,前缀与项目保持一致;
- 布局方式:使用SnapKit,禁止纯代码Frame;
- 颜色:使用项目统一的颜色常量,禁止硬编码RGB。
### Step 3: [第三步核心操作,如代码校验]
执行代码规范校验:`bash scripts/ios-lint.sh --code {generated_code}`
若校验失败,自动修正以下问题:
- 未遵循PEP8(Python)/SwiftLint(Swift)规范;
- 无用导入语句;
- 未添加注释的公共方法。
## 场景示例
### 示例1:基础设计稿转码
用户说:"把这个Figma登录页转成iOS UIKit代码"
操作步骤:
1. 提取Figma登录页的控件(输入框、按钮、logo);
2. 生成LoginView.swift,使用SnapKit布局;
3. 执行SwiftLint校验并修正;
输出结果:LoginView.swift代码文件+布局说明。
## 问题排查(客户端场景常见)
### 错误1:Figma MCP连接失败
原因:MCP服务器未连接/API密钥过期;
解决方案:
1. 检查Claude设置>扩展>Figma是否显示"已连接";
2. 验证Figma API密钥是否有效,且拥有设计稿读取权限。
### 错误2:生成的代码不符合团队规范
原因:指令中未明确规范/代码模板缺失;
解决方案:
1. 补充references/ios-code-standard.md中的规范细节;
2. 在assets/中添加团队代码模板,生成时直接引用。
3.3.8 主体编写最佳实践(客户端开发重点)
- 指令具体可操作:禁止"验证代码规范"这类模糊表述,需写明具体脚本/命令;
- 嵌入客户端专属知识:直接把团队的代码规范、工具使用方法写进指令,无需Claude额外推理;
- 包含错误处理:针对客户端开发的常见问题(如MCP对接Figma失败、代码lint报错、包体积分析工具调用异常)写清排查步骤;
- 渐进式披露 :核心指令写在主体,详细的规范/参考文档放在references/,并在主体中明确链接(如
参考references/ios-code-standard.md中的命名规范); - 引用资源清晰 :若使用代码模板、图标等资源,明确指向assets/中的文件(如
使用assets/ios-base-template.swift作为代码基础)。
3.4 步骤4:添加可选资源(脚本/参考/模板)
根据客户端开发场景的需求,补充scripts/、references/、assets/中的内容,让Skill能力更完整:
- scripts/:编写客户端相关的自动化脚本,如SwiftLint校验脚本、Flutter代码格式化脚本、性能日志分析Python脚本,脚本需保证可执行,且在主体指令中写明调用方式;
- references/:存放团队开发规范(如iOS/Swift/Flutter规范)、MCP工具调用指南(如Figma MCP的参数说明)、客户端开发最佳实践;
- assets/:存放可复用的模板,如iOS代码基础模板、客户端提测文档模板、包体积分析报告模板。
4、测试与迭代:确保技能可用,贴合实际场景
Skill开发完成后,需通过多轮测试验证效果,并根据问题迭代优化,客户端开发场景建议从「单一核心任务」开始测试,再扩展场景,避免一次性测试过多导致问题难以定位。
4.1. 三类核心测试(按优先级执行)
4.1.1 测试1:触发测试(最基础,确保技能能被正确唤起)
目标 :仅在客户端相关的目标查询中触发,无关查询不触发。 测试方法:运行10-20条测试查询,统计触发率,示例(以Figma转iOS代码技能为例):
- 应触发:"把这个Figma稿转iOS UIKit代码""生成符合团队规范的设计稿转码""上传.fig文件,帮我写iOS代码";
- 不触发:"今天天气怎么样""帮我写Python爬虫""生成Android代码"(非目标端侧)。
4.1.2 测试2:功能测试(核心,确保技能能正确完成任务)
目标 :验证技能输出结果符合客户端开发要求,工具/脚本调用无失败。 测试方法:按预设的Use Case执行任务,检查结果,示例:
测试用例:上传Figma登录页设计稿,要求生成iOS UIKit代码 验收标准:
- 成功解析设计稿,生成LoginView.swift代码;
- 代码遵循团队命名规范,使用SnapKit布局;
- 执行SwiftLint校验无报错;
- 无MCP/脚本调用失败。
4.1.3 测试3:性能对比(进阶,验证技能的价值)
目标 :对比「使用Skill」和「不使用Skill」完成同一客户端任务的效率,验证技能的提升效果。 对比维度:
- 操作步骤:使用Skill后是否减少手动步骤;
- 时间消耗:完成任务的耗时是否降低;
- 令牌消耗:Claude的令牌使用是否更高效;
- 人工修正:输出结果是否无需/减少人工修正。
4.2. 常见问题排查&迭代方案
测试中遇到的问题多为触发异常「执行异常」,以下是客户端开发场景的高频问题及解决方法:
| 常见问题 | 症状 | 核心解决方案 |
|---|---|---|
| 触发不足 | 技能从不自动加载,用户需手动唤起 | 优化description:补充更多客户端相关触发关键词,明确功能边界 |
| 触发过度 | 技能在无关查询中加载(如转iOS技能在Android查询中触发) | 1. 添加负向触发(如"仅用于iOS,不用于Android/Flutter");2. 让描述更具体(如"Figma转iOS UIKit代码,非SwiftUI") |
| 不遵循指令 | 技能加载,但生成的代码不符合团队规范 | 1. 简化指令,用编号/加粗突出核心规范;2. 把关键校验写成脚本,替代语言指令(代码更确定);3. 在指令顶部添加「CRITICAL」关键提示 |
| MCP/脚本调用失败 | 技能加载,但对接Figma/Git/脚本时执行失败 | 1. 验证MCP服务器是否连接、API密钥是否有效;2. 检查脚本路径/调用命令是否正确;3. 单独测试MCP/脚本,确认非技能本身问题 |
| 响应慢/结果差 | 技能执行耗时久,输出结果质量下降 | 1. 精简SKILL.md内容,把详细文档移到references/;2. 关闭无关的Skill,避免同时启用过多;3. 控制SKILL.md字数在5000字以内 |
4.3. 高效迭代工具:skill-creator
Claude内置了skill-creator技能,可大幅提升迭代效率,直接在Claude中输入指令即可使用:
- 生成技能:
使用skill-creator帮我构建一个Figma转iOS代码的Skill,自动生成标准化的SKILL.md和文件夹结构; - 审核技能:
审核这个客户端Skill,提出优化建议,自动检测描述模糊、触发缺失、结构问题; - 迭代优化:
根据这个测试中的问题(如生成的代码未用SnapKit),优化Figma转iOS代码的Skill。
5、分发与共享:团队/全平台复用
开发完成的Skill可在个人、团队甚至全平台分发,客户端团队可通过组织级分发实现技能统一管理,让所有团队成员使用相同的客户端专属Skill,保证AI辅助开发的一致性。
5.1. 个人/团队分发(最常用,客户端团队优先)
5.1.1 个人使用
- 将Skill文件夹压缩为ZIP包;
- 打开Claude.ai > 设置 > 能力 > Skills > 上传ZIP包;
- 或直接将Skill文件夹放入Claude Code的skills目录。
5.1.2 团队组织级分发
- 由团队管理员在Claude后台将Skill部署到整个工作区;
- 实现技能自动更新、集中管理,所有团队成员无需单独配置;
- 确保团队内所有人使用的Skill版本一致,贴合统一的开发规范。
5.2. 公开分发(开源/生态共享)
若开发的客户端Skill具有通用性(如通用的Figma转端侧代码、性能日志分析),可通过GitHub公开分发:
- 创建公共GitHub仓库,Skill文件夹按标准存放,仓库根目录添加README.md(供开发者查看,包含安装、使用、适配说明);
- 在README中明确客户端适配场景(如支持iOS/Android/Flutter)、环境要求、使用示例;
- 链接到相关MCP文档(若有),说明Skill与MCP的配合方式。
5.3. API端集成(客户端工程化/自动化场景)
若需将Skill集成到客户端开发的自动化流程/自定义工具中,可通过Claude API实现,核心能力:
- 通过
/v1/skills接口管理技能(列出、新增、删除); - 在Messages API请求中通过
container.skills参数指定使用的Skill; - 结合Claude Agent SDK构建客户端开发专属的自定义AI代理; 适用场景:客户端工程化流水线、自动化提测工具、团队专属AI开发助手。
6、客户端开发专属Skill实战模式
结合官方总结的5类实战模式,适配客户端开发场景,直接复用即可快速构建高价值Skill:
6.1. 顺序工作流编排(适配:提测前全流程检查)
按固定顺序执行多步客户端任务,如「代码lint→单元测试→包体积检测→埋点验收」,明确步骤依赖和校验标准,失败时提供回滚方案。
6.2. 多MCP协调(适配:设计→开发→提交全流程)
协调多个客户端相关的MCP工具,如「Figma MCP(拉取设计稿)→Git MCP(创建分支)→Lint MCP(代码校验)→Slack MCP(提测通知)」,实现跨工具的自动化工作流。
6.3. 迭代优化(适配:代码生成/文档编写)
生成客户端代码/文档后,通过脚本迭代校验优化,如「生成Flutter组件→执行flutter analyze→修正问题→重新生成→直到校验通过」,确保输出质量。
6.4. 上下文感知工具选择(适配:客户端文件存储/处理)
根据文件类型/场景自动选择工具,如「大体积IPA/APK包→云存储MCP」「代码文件→Git MCP」「设计稿→Figma MCP」「临时日志→本地存储」,提升工具使用效率。
6.5. 领域专属智能(适配:性能分析/合规检查)
植入客户端领域的专业知识,如「性能日志分析→按iOS/Android性能指标(启动时间、帧率、内存)给出优化建议」「海外客户端开发→嵌入GDPR/APP Store合规规则,自动检查代码合规性」。
7、开发速查清单(提效必备,开发/上传前核对)
为避免遗漏关键规范,开发完成后按以下清单核对,确保Skill符合标准:
7.1开发中核对
- 技能文件夹为kebab-case命名,无空格/大写/下划线;
- 存在SKILL.md文件,大小写完全一致;
- YAML头信息有
---分隔符,name与文件夹名一致且为kebab-case; - description包含「做什么」和「触发条件」,无XML标签;
- 指令具体可操作,包含客户端开发的专属规范和错误处理;
- 参考文档/脚本/模板在对应目录,且在主体中明确链接。
7.2 上传前核对
- 触发测试通过:相关查询能触发,无关查询不触发;
- 功能测试通过:核心客户端任务能正确完成,无MCP/脚本调用失败;
- 已压缩为ZIP包(仅上传时需要)。
7.3 上传后核对
- 在真实客户端开发对话中测试,结果符合预期;
- 监控触发情况,无过度/不足触发;
- 收集团队成员反馈,迭代优化指令和触发逻辑。
8、官方资源:开发/问题排查必备
- 官方文档:Claude Skills最佳实践指南、Skills API参考、MCP文档;
- 示例仓库:GitHub anthropics/skills(包含官方开发的各类Skill,可直接克隆修改为客户端版本);
- 工具支持:skill-creator(内置技能,生成/审核Skill);
- 问题排查:Claude Developers Discord社区(技术问题)、GitHub anthropics/skills/issues(Bug提交)。
9 总结
Claude Skill开发的核心并非复杂的技术,而是把客户端开发的"专属方法论"标准化为Claude能理解的指令。作为客户端开发工程师,只需遵循「标准化文件夹结构+精准YAML触发+具体可操作的Markdown指令」,即可快速构建贴合团队需求的Skill,让Claude成为专属的AI开发助手。
建议从一个核心客户端任务(如Figma转代码、性能日志分析)开始,用skill-creator工具快速生成初稿,通过多轮测试迭代优化,再逐步扩展功能和场景,最终实现客户端开发流程的自动化、标准化提升。
注:这篇文章主要参考官方的实践文档:《The Complete Guide to Building Skills for Claude》并结合客户端开发的一些实际情况整理