关于 piv-validate
piv-validate 是一项可定制的技能模板,用于运行项目检查并给出单一 PASS/FAIL 结论。团队需将占位命令替换为自己的测试、类型检查和 lint 或格式检查命令。
主要功能
- 01按顺序运行各项检查
- 02单项失败后继续执行
- 03报告每项检查及总体结论
- 04列出失败命令和相关输出
- 05考虑工作目录与平台差异
适用场景
- 01提交代码前检查项目
- 02汇总多个代码部分的检查结果
- 03定位测试、类型和 lint 问题
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ coleam00/ skills --skill piv-validate安装后在 Claude Code 中输入/piv-validate确认已加载。
详细介绍
验证
运行此项目的所有检查,并报告一个 PASS/FAIL 结论。
⚠️ 先把它改成适合你项目的版本
此技能是一个模板。下面的命令列表只是占位内容——请替换为你的项目实际使用的命令。 这正是自定义检查器的意义:它是唯一不能通用的技能,因为它封装了你的技术栈所用的 CLI。
在
package.json脚本、pyproject.toml、Makefile、justfile、docker-compose.yml、CI 工作流或 README 中找到实际使用的命令,然后删除下面这些命令并粘贴你自己的命令。有两点需要特别注意,因为它们通常会导致检查器悄悄给出错误结果:
- 工作目录。 许多工具只会从当前目录查找配置。如果配置位于
backend/pyproject.toml,命令应为cd backend && uv run pytest,而不是在仓库根目录运行uv run pytest。- 跨平台。 如果团队中有人使用 Windows,请避免仅适用于 POSIX 的惯用写法——
lsof、python3以及先在后台运行、再用kill终止,是最常见的问题。
按顺序运行检查。即使检查失败也要继续,以确保报告涵盖所有检查,并捕获任何失败命令的输出。
1. 测试
# REPLACE: your test command, run from the right directory
<your test command>
**预期:**所有测试均通过。
2. 类型检查
# REPLACE: e.g. mypy, tsc --noEmit, go vet
<your type-check command>
**预期:**没有类型错误。
3. Lint / 格式检查
# REPLACE: e.g. ruff check, biome check, eslint
<your lint command>
**预期:**检查通过。
4. 按项目表面重复检查
全栈项目通常不止一套检查。请为每个项目表面添加一个章节,例如后端测试、后端类型检查、后端 Lint、前端测试、前端类型检查、前端 Lint,这样一条命令就能覆盖整个仓库。
5. 可选——实时冒烟测试
仅当更改涉及路由、中间件或启动流程时才运行;如果测试套件已在进程内测试应用,则跳过。
# REPLACE: start your app, hit one endpoint, confirm the status code, stop it
<your run command>
与其在此技能中通过后台运行并终止进程来启动服务,不如在另一个 shell 中启动服务——后台运行并终止进程的惯用写法并不具备可移植性。
6. 汇总报告
为每项检查标注 ✅ 或 ❌,然后给出总体结论:
- 每项检查占一行
- Overall: PASS 或 FAIL
对于每个 ❌,请附上失败的命令和相关输出。不要在此处修复任何问题——此技能只负责报告;修复问题是单独的步骤。
备注
- 保持此技能快速。它会在每次提交前运行;如果某个步骤变慢,这说明应该优化该步骤,而不是将其从检查器中移除。
- 无法失败的检查器毫无价值。配置好命令后,故意制造一个问题,并确认此技能会报告 ❌。