新手小白也能写出好用Skill,保姆级教程和Skill分享

一、Skill 是什么?

Skill 文件就是一份给 AI 的说明书,告诉它:

"遇到这类任务,你必须按我规定的方式来做。"

没有 Skill,AI 每次生成的代码风格、覆盖的用例、用的选择器都可能不一样。 有了 Skill,AI 就像一个被你调教好的测试同事,每次输出都符合团队规范。

二、Skill 文件放在哪里?

文件夹是封面,.SKILL.md 是说明书:

swift 复制代码
项目文件夹
   └── xx.SKILL.md   ← 这就是说明书

文件名随便起,后缀必须是 .SKILL.md。 说明书可以有多本,一个功能模块一个文件,互不干扰。

三、Skill 文件的结构

一个 Skill 文件分两部分:

复制代码
(头部信息:描述这个 Skill 是干什么的)


(正文:告诉 AI 具体怎么做)

四、头部信息逐行解释

yaml 复制代码
name: Login Testing 

Skill 的名字,随便起,让人一眼看懂就行。

yaml 复制代码
description: Step-by-step login test cases covering happy path, error handling, and edge cases

一句话描述这个 Skill 能干什么。AI 会用这个来判断要不要激活它,写清楚一点。

yaml 复制代码
version: 1.0.0

版本号,第一次写就填 1.0.0

yaml 复制代码
author: your-team

作者,填你的名字或团队名。

yaml 复制代码
testingTypes: [functional, e2e]

测试类型。常见值:functional(功能测试)、e2e(端到端)、visual(视觉)、api(接口)。

yaml 复制代码
frameworks: [playwright, selenium, cypress]

支持的框架,填你们团队在用的就行。

yaml 复制代码
languages: [typescript, javascript, python]

支持的语言,AI 会根据你的项目自动选择。

yaml 复制代码
domains: [web]

适用场景,web 表示网页测试,还有 mobileapi 等。

yaml 复制代码
agents: [claude-code, cursor, github-copilot, windsurf, cline]

支持哪些 AI 工具。这是个意图声明,告诉别人这份说明书兼容哪些工具,不代表放进去就自动生效。

五、正文怎么写?

正文就是用自然语言告诉 AI 必须怎么做。写得越具体,AI 越听话。

5.1 先告诉 AI 它的角色

markdown 复制代码
You are a senior QA engineer. When the user asks you to write, review,
or improve login test cases, follow these instructions precisely.

翻译:你是资深 QA 工程师,用户让你写登录测试时,严格按下面的规则来。

给 AI 一个明确的角色,输出会更专业、更聚焦。

5.2 告诉 AI 必须做什么

markdown 复制代码
## What You Must Always Do

1. Cover the happy path first.
2. Cover error cases --- wrong password, wrong username, empty fields.
3. Use descriptive test names.
4. Each test must be independent.

翻译:先写正常流程,再写异常流程,测试名要能看懂在测什么,每个用例必须独立。

5.3 给 AI 一个固定的用例结构

markdown 复制代码
Every login test must follow this structure:

GIVEN  [the user is on the login page]
WHEN   [the user performs an action]
THEN   [the expected result happens]

经典的 Given-When-Then 格式,测试同学都熟悉。告诉 AI 用这个格式,生成的用例逻辑更清晰。

5.4 列出必须覆盖的用例

markdown 复制代码
## Required Test Cases

Always generate at least these 6 test cases:

1. Valid credentials → redirect to dashboard
2. Wrong password → show error message
3. Wrong username → show error message
4. Empty username → show inline validation
5. Empty password → show inline validation
6. Both fields empty → show both validation messages

明确告诉 AI 最少要写哪几条,不然它可能只写 2-3 条就交差了。

5.5 给一个完整的代码示例

这是 Skill 文件里最有价值的部分。给 AI 看一个标准答案,它之后生成的代码就会对齐这个风格。

markdown 复制代码
## Example Output (Playwright + TypeScript)

When the user asks for Playwright tests, generate code in this exact format:

​```typescript
import { test, expect } from '@playwright/test';

const STANDARD_USER = 'standard_user';
const VALID_PASS = 'secret_sauce';

test.describe('Login Page', () => {

  test.beforeEach(async ({ page }) => {
    await page.goto('https://www.saucedemo.com');
  });

  test('TC01 - standard_user 正常登录应跳转到商品列表页', async ({ page }) => {
    await page.getByPlaceholder('Username').fill(STANDARD_USER);
    await page.getByPlaceholder('Password').fill(VALID_PASS);
    await page.getByRole('button', { name: 'Login' }).click();
    await expect(page).toHaveURL(/\/inventory\.html/);
  });

});
​```

注意:测试名带编号 TC01 方便追踪,beforeEach 统一处理打开登录页,不在每个用例里重复写。

5.6 告诉 AI 绝对不能做什么

markdown 复制代码
## What You Must Never Do

- Never use waitForTimeout or sleep.
- Never write a test that depends on another test.
- Never ignore the error message text.

禁止清单很重要。AI 有时候会走捷径,比如用 sleep(3000) 等待页面加载,明确禁止它就不会这么干了。

六、怎么用这个 Skill?

本质就一句话:把说明书的路径告诉 AI,它就能按规范干活。

@ 手动指定文件路径:

@.claude/skills/login-testing.SKILL.md 帮我写 SauceDemo 登录页的测试用例,用 Playwright + TypeScript

AI 读到文件内容,照着里面的规范干活,效果完全一样。

还可以继续追问:

你说 AI 会做
"再加上 problem_user 的测试" 补充图片异常的断言
"帮我加上 Page Object Model" 把代码重构成 POM 结构
"改成 Python + pytest 版本" 换语言重新生成
"这个用例的断言对吗?" 帮你 review 代码

实际效果 这里我用的是Claude Code演示

接下来是漫长等待,安装依赖的过程(中间遇到问题,都会由大模型帮你解决),最后如下:

直接复用

七、在不同 AI 工具里怎么让 Skill 自动生效?

.claude/skills/ 是 Kiro 专属路径,其他工具有自己约定的规则文件位置。 把 Skill 正文内容复制到对应文件里,工具启动时就会自动加载。

工具 把正文内容放到这个文件
Kiro .claude/skills/*.SKILL.md
Claude Code CLAUDE.md
Cursor .cursorrules.cursor/rules/*.mdc
Windsurf .windsurfrules
Cline .clinerules.clinerules/*.md

Skill 正文内容是通用的,换工具只需要换个文件名,内容复制过去就行。

八、写 Skill 的几个原则

原则 说人话
角色明确 告诉 AI 它是谁
规则具体 越细越好,别指望 AI 猜你的意思
给示例 一个好例子胜过一百句描述
写禁止清单 把你不想看到的东西明确列出来
用英文写正文 大模型对英文指令理解更准确、更稳定

九、常见问题

Q:Skill 文件不生效怎么办? A:检查后缀是否完整,必须是 .SKILL.md,不是 .md

Q:可以有多个 Skill 文件吗? A:可以,每个功能模块一个,比如 login-testing.SKILL.mdapi-testing.SKILL.md

Q:Skill 里的代码示例要和项目完全一致吗? A:不需要,AI 会根据示例风格来生成,细节它会自己适配。

Q:正文必须用英文吗? A:强烈建议。大模型对英文指令的理解比中文更稳定,出错概率更低。

相关推荐
西陵6 小时前
Agent 为什么会陷入 Doom Loop?OpenClaw 的破解之道
前端·人工智能·ai编程
向量引擎7 小时前
告别多源向量API适配噩梦:一套通用中转层的设计与实践
人工智能·gpt·aigc·agi·api调用
十正7 小时前
Claude code源码精读之上下文压缩
ai·aigc·agent·claude code
向量引擎7 小时前
向量引擎API中转站深度测评:如何实现低成本、高并发的向量检索
人工智能·gpt·aigc·api·ai编程
SpiderPex8 小时前
Vibe Coding 开发流程心得:从入门到规范化的踩坑记录
vscode·编辑器·ai编程·开发流程·vibe coding
Rain5099 小时前
mini-cc 的 MCP 协议:给 AI 装个 USB-C 接口
c语言·开发语言·前端·人工智能·架构·node.js·ai编程
沉默王二10 小时前
腾讯面试官问CLAUDE.md维护,我只说了两个词,他当场愣住了!!
agent·ai编程·claude
向量引擎10 小时前
当搜索开始替人整理答案:我重新理解了向量检索和 API 中间层
人工智能·gpt·aigc·ai编程·ai写作·key·agi
xzzd_jokelin11 小时前
公司AI开发痛点解析:多人+AI辅助 协同开发?
人工智能·机器学习·ai·ai编程·cloud·codex
weelinking11 小时前
【产品】11_实现后端接口——数据在背后如何流动
java·人工智能·python·sql·oracle·json·ai编程