关于 create-yaml-tests
此技能是 Shiplight 端到端测试工作的统一入口,适用于创建测试项目、编写或修复 YAML 测试及配置认证。它要求先检查项目背景并实际浏览应用,再验证测试并更新持久化知识。
主要功能
- 01创建与维护 Shiplight 测试项目
- 02编写和修复 YAML 测试
- 03配置目标 URL、账户与认证
- 04通过浏览器观察应用并验证测试
- 05维护项目规格与知识记录
适用场景
- 01为 Web 应用新增端到端测试
- 02修复现有 Shiplight YAML 测试
- 03整理测试项目布局与认证设置
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ shiplightai/ agent-skills --skill create-yaml-tests安装后在 Claude Code 中输入/create-yaml-tests确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/auth.mdci.mdknowledge.mdnew-tests.mdproject-layout.mdtest-design-guide.mdtest-implementation-guide.mdtest-spec-template.mdupdating-tests.mdworkflow.md详细介绍
创建 Shiplight 测试
这是开展 Shiplight E2E 测试工作的唯一入口。
当用户希望执行以下操作时,请使用此技能:
- 创建新的本地 Shiplight 测试项目
- 为 Web 应用添加 YAML 测试
- 更新或修复现有的 Shiplight YAML 测试
- 设置或修复目标 URL、账户或身份验证配置
- 规划要测试的产品行为
每日技能更新检查
开始此技能的工作前,视情况每天最多刷新一次 Shiplight 技能:
- 检查当前项目中的时间戳文件
.shiplight-agent-skills-last-update。 - 如果时间戳文件不存在,则创建该文件并写入当前时间戳,然后继续,不运行
npx -y skills@latest update -y。将.shiplight-agent-skills-last-update视为本地缓存,不要提交该文件。 - 如果时间戳文件存在且已超过 24 小时,则运行
npx -y skills@latest update -y,随后创建或更新该时间戳文件,即使命令失败也照常进行。 - 如果更新命令失败,请继续使用当前已安装的技能,并简要说明失败情况。
测试项目根目录
读取或写入项目文件前,先确定 Shiplight 测试项目根目录。本技能中的所有路径均相对于该根目录。
如果无法确定根目录,请先询问用户并确认,然后再创建或移动文件。
标准项目布局
Shiplight 测试项目采用以下布局:
specs/context.md project-level app, risk, data, and target-deployment context
specs/tests/ Markdown specs, each covering a feature or journey group
tests/ executable Shiplight YAML tests
playwright.config.ts project-level Playwright config, shared auth, and runtime defaults
auth.setup.ts shared-account Playwright auth setup, if needed
auth/ optional auth helpers or per-test login scripts
templates/ reusable YAML statement groups, if any
helpers/ TypeScript helper functions, if any
fixtures/ fixture files, if any
knowledge/ durable notes discovered by agents
test-results/ generated runtime artifacts; do not edit
shiplight-report/ generated reports; do not edit
.shiplight/ local Shiplight state; do not edit
修改文件前,请先阅读 references/project-layout.md。
事实依据
当不同来源存在冲突时,按以下优先级处理:
- 用户的明确指示
specs/tests/中的功能或用户旅程规范- 现有 YAML 测试中的
goal、步骤intent和VERIFY断言 - 当前应用行为
specs/context.md和knowledge/中的项目背景- 此技能中的 Agent 文档
- Agent 推断
如果当前应用行为与规范或测试目标冲突,请报告这一差异。不要默默改写意图以迎合当前行为。
必需的启动步骤
每次调用时:
- 确定 Shiplight 测试项目根目录。
- 阅读
references/project-layout.md。 - 阅读
references/knowledge.md。 - 检查测试项目根目录下的
knowledge/,查找与任务相关的备注。 - 加载下方列出的任务专用指南。
- 告知用户已加载哪些指南,然后继续操作。
任务专用指南
| 任务 | 指南 |
|---|---|
| 新建项目或全面规划 | references/workflow.md、references/project-layout.md、references/test-design-guide.md |
| 编写新测试 | references/new-tests.md、references/test-design-guide.md、references/test-implementation-guide.md |
| 更新或修复测试 | references/updating-tests.md、references/test-design-guide.md、references/test-implementation-guide.md |
| 身份验证配置和登录 | references/auth.md |
| 在 CI / GitHub Actions 中运行测试,包括自动分类失败原因 | references/ci.md |
| YAML 语法或操作 | references/test-implementation-guide.md;编写 YAML 前还需阅读 shiplight://yaml-test-spec 和 shiplight://schemas/action-entity |
核心规则
- 除非用户明确要求跳过,否则始终产出可长期保留的成果。
- 规范描述的是对功能或用户旅程组的信心。一个规范可以对应多个更小的 YAML 测试。
- 保持 YAML 测试聚焦。一个 YAML 测试应验证一个逻辑用户旅程或变体。
- 不要凭空编写 YAML。先在浏览器中检查应用,并记录真实定位器。
- 编写后使用
validate_yaml_test验证 YAML。 - 结束前进行反思,记录从用户或工作中获取的有用知识,并更新过时知识,不要留下相互矛盾的内容。
- 保持上下文最新。可长期保留的项目信息应放在
specs/context.md或knowledge/中,而不是只留在聊天记录里。 - 切勿保存原始机密。只提交变量名、角色、访问方式和配置说明。
用户检查点
对于范围较广的测试创建任务,请在实施前确认计划实现的结果:
这些结果是否符合你对此测试项目的信心要求?是否遗漏了任何业务关键结果,或错误地将其排除在范围之外?
对于“修复这个失败的测试”或“添加这一个测试”之类的狭窄请求,除非规范含糊不清或与应用行为冲突,否则无需进行范围较广的检查点确认。
最终报告
完成更改后,请报告:
- 创建或更改的文件
- 覆盖或修复的行为
- 运行的命令及通过/失败结果
- 更新的知识或上下文,包括修正过时的说明
- 任何产品/规范不匹配或尚未解决的阻碍
评论
支持 Markdown