当学生说"Common App 活动栏写不下"、"这段活动描述超字数了"、"帮我把这几条压到限制内"时使用。先按官方申请表核对当季字符限额,再逐条检查;一次把所有条目量完并直接给出压缩版,只在需要砍掉实质内容时才用选择题问该保哪部分。每改一版都用工具重新数一遍字符,绝不凭感觉说"这样应该够了"。只压缩,不代写空白。
日本語の概要は準備中です。原文の説明を表示しています。
当 AI 写完测试、要决定信不信这份测试时使用。查三类假信心:断言与实现是否同源复制、有没有边界与异常用例、失败信号够不够强;再规划 2–5 个突变抽样,能执行时再实跑,看把被测代码改坏之后测试会不会变红,没实跑就不声称测试抓得住错。测试全绿不等于代码对,也可能是测试根本抓不住错。
要决定整份 diff 能不能合并时走 ai-diff-review-protocol。
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Use this skill when an AI has already proposed or written tests and you need to decide whether those tests are actually protecting behavior, or just producing a reassuring green checkmark.
This skill audits test quality, not product correctness. Its job is to find weak assertions, implementation mirroring, missing boundary/error cases, and evidence that the suite would stay green even after a meaningful bug.
Use it for:
Do not use this skill to:
ai-diff-review-protocol for that; it sends the tests inside the diff back here.If the user actually wants new tests written, a test-authoring skill should do that first. Come back to this skill once there is a candidate suite to inspect.
Ask for the smallest set that makes an audit meaningful:
If these are missing, say exactly what is missing. Do not pretend to certify tests you cannot inspect.
Before reading assertions, write down:
Prefer contract language such as:
For each test or cluster of similar tests, classify the oracle:
Anything in the last two categories is high-risk when AI wrote it.
Check whether the suite includes, skips, or hand-waves:
If a category is absent, name the missing risk explicitly.
Treat these as red flags:
Pick 2–5 small mutations that a decent suite should catch.
Prefer mutations like:
> to >= or < to <= at a threshold;For each mutation, record:
If you cannot run mutations in the current environment, still provide the plan and label runtime evidence as missing.
Run the plan only when all of these hold: you can execute the tests, the user has agreed, and every file can be restored exactly. Then:
git status --porcelain prints nothing) or a separate worktree or copy of the project. Never mutate files that have uncommitted changes you cannot restore.git checkout -- <file>, git restore <file>, or copy the saved original back) and confirm the tree is clean before the next mutation.killed (a named test turned red), survived (the suite stayed green) or not run, with the command you used.If any condition fails, deliver the plan only.
Use one of:
Use this structure:
A compact table with:
For each mutation:
Tag statements when useful:
given;observed in test code;inferred from implementation summary;should be verified by execution;missing evidence.This skill includes a dependency-free helper script:
scripts/check_test_audit_manifest.pyIt validates whether a planned audit packet is structurally complete enough to review consistently:
Allowed values, with the Step 2 and Step 3 wording the script also accepts:
| Field | Canonical value | Also accepted |
|---|---|---|
oracle | independent | independent oracle |
oracle | derived | derived oracle |
oracle | mirrored | mirrored logic |
oracle | weak-signal | weak signal |
kind (test case) | happy-path | happy path |
kind (test case) | boundary | boundary cases |
kind (test case) | error-path | error / invalid input cases |
kind (test case) | side-effect | stateful or side-effect cases |
kind (test case) | state-transition | state transition |
kind (test case) | regression | regression hooks |
A mutation's kind is free text (for example remove-validation, boundary-flip).
Example manifest shape:
{
"target": "Validate AI-generated tests for create_user",
"implementationFiles": ["src/user_service.py"],
"testCases": [
{
"id": "accepts_valid_name",
"kind": "happy-path",
"oracle": "independent",
"summary": "Creates a user when name and email are valid"
},
{
"id": "rejects_blank_name",
"kind": "error-path",
"oracle": "independent",
"summary": "Raises ValueError for blank name"
}
],
"mutationSamples": [
{
"id": "skip_blank_name_validation",
"targetFile": "src/user_service.py",
"kind": "remove-validation",
"expectedFailingTests": ["rejects_blank_name"],
"why": "A real guard should be observable through the public API"
}
]
}
Run it with any Python 3 environment:
python3 scripts/check_test_audit_manifest.py path/to/test-audit-manifest.json
python3 scripts/check_test_audit_manifest.py --selftest
Exit codes: 0 means the manifest is valid (warnings may remain), 1 means it has problems (missing fields, unknown values, a mutation naming a test that is not in the packet), 2 means the file cannot be read as JSON or the arguments are wrong.
Prefer these questions when deciding whether AI-generated tests are trustworthy:
sorted(input) as its expected value, that is often mirrored logic, not a strong oracle.200 and “response is not null”, it does not prove the payload contract.The skill has done its job when the user can say:
| 版本 | 日期 | 变更 | 类型 |
|---|---|---|---|
| 0.1.1 | 2026-09-26 | description 与 suggest_hint 不再承诺"验证测试真会变红",改成"规划 2–5 个突变抽样,能执行时再实跑",Step 5 补上实跑的安全步骤(干净工作区或副本、先征得同意、逐个突变、逐个恢复);脚本接受正文用语(mirrored logic、weak signal 等)并在正文列出枚举,改用 argparse(--help 不再被当成文件名),传入目录、非 UTF-8、坏 JSON 时报错退出 2,不认识的键给警告,补 --selftest;示例命令改为 python3;与 ai-diff-review-protocol 互相点名 | patch |
| 0.1.0 | 2026-09-05 | 初始版本 | minor |
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
当学生说"Common App 活动栏写不下"、"这段活动描述超字数了"、"帮我把这几条压到限制内"时使用。先按官方申请表核对当季字符限额,再逐条检查;一次把所有条目量完并直接给出压缩版,只在需要砍掉实质内容时才用选择题问该保哪部分。每改一版都用工具重新数一遍字符,绝不凭感觉说"这样应该够了"。只压缩,不代写空白。
日本語の概要は準備中です。原文の説明を表示しています。
当学生说"我参加过一些活动但没整理过"、"帮我把经历录进去"、"我的活动档案是空的"时使用。让学生一口气把记得的活动说出来,直接把这段话拆成结构化的长期事项(角色、组织、起止时间、做了什么、结果、级别),说不清的字段留空标"待补"而不是编,再用一张选择题卡把级别判定与是否重复这类关键项一次问完,然后提案入库。只记录学生真正说出口的内容,级别按事实判定,绝不往高了写。
日本語の概要は準備中です。原文の説明を表示しています。
当学生问"招生官会怎么看我的档案"、"我的背景还差什么"、"帮我评估一下现在的申请竞争力"时使用。以顶尖大学招生官的视角通读学生的档案、长期活动与已写下的反思,不问任何前置问题直接产出一份指名道姓的坦诚点评:这份材料的亮点、招生官真实的解读方式、明显的短板与空白、以及接下来最值得做的一到两件事。只读不写,不修改学生的任何数据,也不代写任何申请材料。
日本語の概要は準備中です。原文の説明を表示しています。
当使用者说"帮我填词"、"按这个字数模板写歌词"、"用多Agent对抗式写词"、"这首副歌帮我想几句"时使用,前提是字数骨架和这首歌写什么都已经有了;只有主题、还没定写什么时先用 lyric-concept-builder。拿一份字数骨架和意象系统,派三个 sonnet 子代理按不同路子并行独立起草(场景派 / 口语派 / 意象派),再派一个红队子代理逐句挑毛病,主 Agent 按句裁决拼稿,最后统一辙口与意象。收敛判据卡死:字数用 lyric-doctor 的脚本对模板数、每段同辙、hook 不含陈词、主歌二对主歌一有推进。不抄现有歌词,不替使用者决定这首歌要说什么。
日本語の概要は準備中です。原文の説明を表示しています。
当想知道一段 AI 回答"哪些能直接用、哪些必须先验证、哪些只能当建议"时使用。按声明类型分四级——低风险草稿材料、观点与策略建议、可查证的事实声明、会改变状态的可执行指令——每级配一句默认处置动作;再按影响半径排序,给出最小的下一步检查。可执行类一律标"不能直接执行;先做代码审阅/沙箱测试/回滚准备",其中破坏性或提权的命令排在最前。教的是一套可复用的复查习惯,不是替使用者把所有内容都核实一遍:本 skill 只分级、排序、定处置,要逐条核实走 ai-output-fact-checker,整段代码要做入库体检走 ai-code-onboarding-checklist。
日本語の概要は準備中です。原文の説明を表示しています。
当拿到一段 AI 生成的代码,还没决定要不要信、要不要跑、要不要往上继续加东西时使用。先做一遍客观体检:行数与嵌套深度、有没有测试、有没有硬编码密钥或遗留 TODO、依赖是不是真实存在、有没有危险调用(eval/exec、shell=True、递归删除、反序列化、提权、外发网络,按正文给的 grep 模式逐类查);再给风险评级和下一步动作。老实写明它查不了算法正确性——体检通过不等于代码是对的。回答里文字、事实和代码混在一起时先用 ai-answer-triage 分级;只审相对已有代码的一份改动用 ai-diff-review-protocol。
日本語の概要は準備中です。原文の説明を表示しています。