SkillHub 测试与 CI 规范
为 SkillHub 后端、前端、冒烟测试和 CI 流水线提供强制的测试约定与质量门禁,确保代理编写的测试符合项目规范。
证据: SKILL.md 提供了详细的测试和 CI 指南,包括明确禁止某些命令,并强调使用 Makefile 目标以确保正确的构建顺序。提供了 staging 环境和检查清单,暗示对质量的重视。没有发现恶意或过度越权行为。发布者未经验证,但身份未知不作为降分依据。扣分: 技能没有明确要求用户确认或提供数据流透明度;权限模型未详细说明;回滚和恢复机制未提及。因此信任评分为 12。
证据: SKILL.md 提供了关于测试命令、工具和命名约定的详细说明,逻辑自洽,并提供了有用的失败反馈(如避免直接运行 mvnw 的理由)。仓库包含 CI 工作流文件,但未包含专门针对该技能关键路径的测试套件或验证执行。扣分: 由于是静态审查,无法验证关键路径的可操作性;错误处理和边界情况覆盖有限;测试文件和预期结果未在 SKILL.md 中直接提供,导致可靠性评分 8。
证据: 技能明确指出了适用场景(后端测试、前端测试、CI/CD、冒烟测试),并提供了具体的命令和路径。仓库支持中文(README_zh.md)并提供阿里云镜像,表明对中国用户环境的考虑。扣分: 环境的适配性(如海外服务依赖)未完全说明;边界和非适配范围未明确界定;触发条件基于关键词,可能误触发。因此适应性评分 8。
证据: SKILL.md 结构清晰,提供了安装/依赖说明(如依赖 Maven 模块)、命令示例、命名规范和检查清单。使用 Apache-2.0 许可证。仓库提供了版本控制和变更日志(通过 git 历史)。扣分: 未提供故障排除章节,隐含假设(如已安装 Docker、Maven 等)未明确说明;维护责任和更新路径未具体化。因此惯例评分 9。
证据: SKILL.md 提供了明确的目标和命令,能指导用户完成测试和 CI 任务。但未提供实际输出示例或验证结果,边际价值未量化。扣分: 核心任务完成是合理的,但输出完整性和直接可用性证据不足;且作为静态审查,无法验证实际有效,因此有效性评分 6。
证据: 仓库包含真实的 CI 工作流文件(如 claim-issue-reward.yml、deepwiki.yml),但未覆盖技能关键路径(即测试和 CI 自身)的可执行验证。SKILL.md 本身没有提供可复现的验证步骤或证据。扣分: 缺乏针对该技能的独立验证,且无第三方执行证据;静态审查限制下,评分上限为 5,此处为 4。
- 技能描述为内部测试和 CI 指南,但未包含实际测试用例或验证脚本,因此用户应自行验证命令的正确性。
- 发布者身份未经核实,建议在实践中审查技能来源的可靠性。
- 技能中提到的 CI 工作流和测试命令可能依赖于外部服务(如 GitHub Actions),在中国大陆访问可能受限,请确认网络环境。
这个 Skill 能做什么,适合哪些场景?
本技能定义了 SkillHub 的测试与持续集成(CI)规范,涵盖后端(JUnit 5 + Mockito + AssertJ + Spring Boot 测试切片)、前端(Vitest 单元测试、Playwright 端到端测试)以及冒烟测试脚本。代理在修改测试、CI/CD 工作流或添加冒烟/端到端测试时自动触发。技能强调使用 Makefile 目标(如 `make test-backend-app`)而不是直接运行 Maven 命令,并提供了预 PR 检查清单,包括 `make staging` 验证容器化部署。它还包括 CI 流水线中 GitHub Actions 工作流的详细表格,以及各类测试的命名约定。
该技能规定了测试文件的组织方式(例如后端测试位于 server/*/src/test/java/,前端 E2E 测试位于 web/e2e/),并指定所需工具(JUnit 5、Mockito、AssertJ、Spring Boot 测试切片、Vitest、Playwright)。它提供测试和构建命令(如 make test-backend-app、make test-frontend、make test-e2e-smoke-frontend),并警告不要直接运行 ./mvnw -pl skillhub-app clean test。它列出了冒烟测试脚本及其目的(基本 API、命名空间、治理、提升),并定义了 CI 工作流(如 pr-tests.yml、pr-e2e.yml)。此外,它还指定了测试命名约定(例如 {ControllerName}Test.java),并提供了预 PR 检查清单,包括 make generate-api 和 make staging。
- 当在 `server/` 中添加或修改后端测试时,代理应遵循本技能以确保测试位于正确的模块并遵守命名约定。
- 当修改前端测试或添加 Playwright E2E 测试时,代理应使用本技能中的 `make test-frontend` 和 `make test-e2e-frontend` 命令。
- 当添加新的冒烟测试或修改现有冒烟测试(例如 `scripts/smoke-test.sh`)时,代理应参考脚本和预期用途的表格。
- 当修改 GitHub Actions 工作流或 CI/CD 配置时,代理应遵循本技能来了解触发器、目的以及所有工作流的位置。
- 在提交 PR 之前,代理应使用预 PR 检查清单验证通过 `make test-backend-app`、`make typecheck-web` 和 `make staging`。
这个 Skill 有哪些优点和局限?
- 提供详细且明确的测试约定,包括命名约定和工具。
- 包含运行时验证的预 PR 检查清单。
- 提供冒烟测试脚本及其目的的清晰概述。
- 包括 CI 工作流的良构表格,便于快速参考。
- 高度特定于 SkillHub 项目;它定义了该仓库的约定,而非通用测试技能。
- 仅涵盖向后端/前端/CI 修改的场景;不提供一般测试策略或最佳实践。
- 依赖项目特定的 Makefile 目标;如果不调整,则无法直接在其他项目中复用。
- 未包含自身的测试套件或针对其他平台的验证证据。
如何安装这个 Skill?
该技能作为 SkillHub 仓库的一部分提供,位于 .agents/skills/testing-and-ci/SKILL.md。要安装它,请将此文件夹复制到代理的技能目录中,或确保代理能够访问该仓库。针对整个平台的官方安装指南并未包含在提供的文档中。
如何使用这个 Skill?
当需要代理遵循测试或 CI 约定时,可使用此技能。技能的触发条件包括添加或修改测试、更改 CI/CD 工作流、添加冒烟测试或端到端测试。例如,您可以提示:“为我刚才修改的后端模块编写单元测试,遵循 testing-and-ci 技能中的约定。”然后代理应阅读 SKILL.md 并应用规则,例如使用 make test-backend-app 运行测试。