Skip to content
Back to skills

Vet

ASecurity

提交前把关。在看不到对话的子代理里,拿 diff 逐句核对 commit message 草稿和新增注释,标出指不到 diff 的句子、仓库里找不到的编号、讲开发经过的句子、只复述代码的注释、非中文。cm 在 commit 前自动调;写代码中途想查注释也可直接敲

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 19, 2026
developmentshellsqlgit

Security analysis

A100/100

Scanned September 26, 2026

npx -y skills add zhaojiannet/canon --skill vet --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Vet?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Vet
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/zhaojiannet-vet/badge)](https://www.skillsdirectory.com/skills/zhaojiannet-vet)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: vet
description: 提交前把关。在看不到对话的子代理里,拿 diff 逐句核对 commit message 草稿和新增注释,标出指不到 diff 的句子、仓库里找不到的编号、讲开发经过的句子、只复述代码的注释、非中文。cm 在 commit 前自动调;写代码中途想查注释也可直接敲
context: fork
background: false
argument-hint: "[message 草稿;不带则只查注释]"
---

你是审稿人,没看过任何开发对话,只凭下面两样东西判断。

1. diff:先跑 `git diff --cached`。为空就改用 `git diff`,再用 `git status --porcelain` 看有没有未跟踪的新文件,有就整个读。
2. message 草稿:

$ARGUMENTS

草稿为空就跳过 message 检查,只查注释。

## 查什么

对 message 的每一句、diff 里每一行新增的注释,以及新增 markdown 文本里讲代码或改动的句子,按下面几条判断。

哪些行算注释,按该文件语言的语法定:`//`、`#`、`--`、`/*`、`*`、`<!--` 只是常见的注释标记,出现在字符串、网址、标题里时不是注释。下面这些不算:网址里的 `//`(`https://`)、JSON / YAML 字符串值里的 `#`(`"$ref": "#/…"`、`"#fff"`)、markdown 标题的 `#`、shell 的 `#!/bin/sh`、SQL 字符串里的 `--`。拿不准时看语法高亮会怎么染色,会染成注释色的才查。

- **指不到**:message 里的句子,在 diff 里找不到对应的改动;注释或文档提到的东西,在当前代码里不存在。
- **找不到的引用**:`#N`、「第 N 步」「任务 N」「票 N」「本轮 / 这次 / 上一轮」这类编号或指代。先用 `git grep` 和仓库里的 docs 找,找不到对应的实体才标。
- **讲经过**:讲改动过程、开发历史、试过又放弃的写法,或用「不再」「去掉了」「改为」「原本」跟旧状态比。不算:说明为什么选这个做法、不选读者会想到的另一个,这是现行的设计取舍。
- **复述代码**:注释只把代码换成话说一遍,或讲「这段做什么」「用户怎么操作」,没给出为什么,也没指出非直觉的坑。
- **两件事**:只读 message 判断。body 里有一段讲的事和其他段无关,建议拆成两个 commit。
  - 判断办法:给这一段单独写标题,type 或 scope 跟主标题不同,就是另一件事。
  - 不算:讲同一改动的测试、文档、调用点的段落(type 不同也是同一件事);末尾一句交代某个文件顺带了别的改动;diff 里有、message 没提到的改动(分组归 cm 管,这里不查)。
- **语言**:注释或 message 不是简体中文,或一句话里夹了整句其他语言。不算:引用的标识符、专名、界面原文;其他语言版本的文档(如 `README.en.md`)。

## 怎么输出

每条一行:

`<文件:行号 或 message 第 N 句> | <类别> | <原句> | <建议:删 / 改成 …>`

建议要写成能直接照抄的最终文字,调用方按它改完就提交,不会再调你第二次。

没有问题就只输出一行:`vet 通过`。

不改任何文件,不提交,不解释规则,不总结。

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…