Receber por email
← Voltar para o catálogo

auto-test-code

当用户明确要求"测试代码"、"运行代码审查"或"进行代码自检"时使用。通过多轮 A 轮批判性代码审查 + B 轮代码质量原则检查,系统化发现、记录、修复程序代码中的问题,并将计划/过程/结果统一沉淀到目标代码根目录的 `tmp/run_{timestamp}/tests/` 隔离工作区。⚠️ 不适用:用户只是想优化功能(应直接修改)、只是询问代码问题(应直接回答)、没有明确"测试代码"意图。

42estrelas
Atualizado há 4 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add huangwb8/skills

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/auto-test-code/svg)](https://www.skillteca.com.br/skills/auto-test-code)

Skills relacionadas

Ver todas de Desenvolvimento →

Alerta por categoria

Receba novas skills de Desenvolvimento toda segunda

1 email curto, só com as skills novas de Desenvolvimento. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

auto-test-code(批判性思维驱动的代码自审查技能)

与 bensz-collect-bugs 的协作约定

  • 因本 skill 设计缺陷导致的 bug,先用 bensz-collect-bugs 规范记录到 ~/.bensz-skills/bugs/,不要直接修改用户本地已安装的 skill 源码;若有 workaround,先记 bug,再继续完成任务。
  • 只有用户明确要求“report bensz skills bugs”等公开上报时,才用本地 gh 上传新增 bug 到 huangwb8/bensz-bugs;不要 pull / clone 整个仓库。

你要产出的东西

本 skill 的交付不是"口头建议",而是一组可追溯的文件:

(目录位置以 config.yaml:directories.tmp + config.yaml:directories.tests 为准;默认 tmp/run_{timestamp}/tests/;不再使用 reviews/)

  • tmp/run_YYYYMMDDHHMMSS/tests/vYYYYMMDDHHMM/:A 轮会话目录(计划/过程/结果都在这里)
  • REVIEW.md:A 轮批判性审查(问题清单 + 改进计划)
  • TEST_PLAN.md:测试计划(本轮验证哪些修复点)
  • TEST_RUN.md:测试过程(命令、关键输出摘录、关键决策)
  • TEST_REPORT.md:测试结果(结论 + 证据 + 遗留问题)
  • _artifacts/:中间产物(命令输出、日志、截图、对比结果等)
  • tmp/run_YYYYMMDDHHMMSS/tests/b-vYYYYMMDDHHMM/:B 轮会话目录(结构同上,REVIEW.md 为质量检查报告)

目录与命名规范

  • 测试会话 ID:vYYYYMMDDHHMM(分钟级时间戳)
  • 运行工作区:tmp/run_YYYYMMDDHHMMSS/(同一次技能执行的 A/B 轮必须复用同一个 run_id)
  • A 轮会话目录:tmp/run_YYYYMMDDHHMMSS/tests/vYYYYMMDDHHMM/
  • B 轮会话目录:tmp/run_YYYYMMDDHHMMSS/tests/b-vYYYYMMDDHHMM/
  • 兼容:verify_session.py 可识别旧目录名 tests/B轮-vYYYYMMDDHHMM/;新建统一使用 tmp/run_*/tests/b-vYYYYMMDDHHMM/
  • ⚠️ reviews/ 已废弃:不再创建、不再写入;如目标项目中存在旧的 reviews/,应将其视为历史遗留并在审查时排除。

工作流程

隔离工作区硬规则

  • 每次 skill 执行开始时,必须先在目标项目根目录创建当次专用工作区:tmp/run_YYYYMMDDHHMMSS/。
  • 所有由 skill 生成的计划、报告、日志、辅助脚本与中间产物,只能写入当前 tmp/run_*/ 工作区内。
  • 运行可能产生缓存或临时文件的命令时,优先将工作目录、TMPDIR、XDG_CACHE_HOME、PYTHONPYCACHEPREFIX 等重定向到当前 tmp/run_*/ 工作区。
  • 除了用户明确要求的源码修复外,不得把 skill 相关文件写到 tmp/run_*/ 之外的位置,以免污染源软件项目。

概览

用户输入(目标代码路径)
  ↓
[A轮 × N]:静态分析 → 动态推理 → 安全分类审查 → 计划 → 优化 → 轻量测试
  ↓
B轮:代码质量原则检查 → 针对性优化 → 轻量验证
  ↓
完成(文档齐全 + 问题闭环)

A 轮代码审查(可重复 N 次)

A.1 初始化会话(生成测试 ID + 目录)

目标:创建本轮的 tmp/run_*/tests/ 会话骨架(计划/过程/结果都在同一目录)。

推荐使用确定性脚本:

# 在目标代码根目录内执行(选择你实际的安装路径)
RUN_ID=run_YYYYMMDDHHMMSS
python3 ~/.codex/skills/auto-test-code/scripts/create_session.py --code-root . --run-id "$RUN_ID" --kind a --id vYYYYMMDDHHMM
# 或
RUN_ID=run_YYYYMMDDHHMMSS
python3 ~/.claude/skills/auto-test-code/scripts/create_session.py --code-root . --run-id "$RUN_ID" --kind a --id vYYYYMMDDHHMM

最低要求:

  • tmp/run_YYYYMMDDHHMMSS/tests/ 存在
  • tmp/run_YYYYMMDDHHMMSS/tests/vYYYYMMDDHHMM/REVIEW.md、TEST_PLAN.md、TEST_RUN.md、TEST_REPORT.md 存在

A.2 批判性分析与计划生成(写入 tmp/run_*/tests/ 会话目录)

目标:使用批判性思维发现代码中的系统性问题,写成可执行计划,按 P0/P1/P2 排序。

输出:tmp/run_YYYYMMDDHHMMSS/tests/vYYYYMMDDHHMM/REVIEW.md

⚠️ 批判性思维是核心要求:

  • 必须使用「刁钻角度」思考(详见 references/CRITICAL_THINKING_FOR_CODE.md)
  • 必须发现至少 3 个系统性问题(算法设计/边界条件/并发安全/内存安全/安全漏洞/设计质量)
  • 禁止列出"不痛不痒"的表面问题(如"缺少注释"等 P2 级别问题不应占多数)

质量要求(强制):

  • 每轮至少发现 10 个问题(P0 + P1 + P2 总和)
  • 鼓励达到 15-20 个问题
  • P0 + P1 占比必须 ≥ 60%
  • 系统性问题 ≥ 3 个(算法/边界/并发/内存/安全/架构/设计)

核心要求:

  • 独立评估原则(强制):
  • 每轮 A 轮必须基于目标代码的当前工作状态独立分析
  • 不查看历史 tmp/run_*/ 工作区中的审查文件
  • 每轮都是一次完整的、无偏见的系统性审查
  • 审查范围(强制):
  • 必须审查:核心源代码文件(以 config.yaml:a_round_check.independent_review.scan_patterns 为准)
  • 必须审查:配置文件、构建脚本、测试代码
  • 排除范围:tmp/ 等 skill 产物目录,以及 node_modules/、venv/、__pycache__/ 等依赖/缓存目录;目标项目的测试代码仍属于必须审查范围
  • 全维度覆盖(强制):每轮必须覆盖所有审查维度(以 config.yaml:a_round_check.dimensions 为准);不得以“本轮不聚焦”为由跳过任何维度
  • 深挖维度(可选):可在全覆盖基础上额外指定 1-2 个深挖维度,对该维度使用刁钻角度做更细致分析;多轮时建议轮换深挖点
  • 刁钻角度:在深挖维度上必须使用至少一个刁钻角度(空输入/超大输入/恶意输入/竞态条件/资源耗尽/权限绕过/供应链污染)
  • 优先级依据:P0/P1/P2 必须有明确的判定标准
  • P0: 崩溃风险、可利用安全漏洞、未授权访问、敏感信息泄露、数据损坏、死锁/活锁、内存泄漏
  • P1: 性能问题、边界条件缺陷、逻辑错误、资源泄漏、需要前置条件或组合利用的安全风险
  • P2: 代码风格、可读性、冗余代码
  • 可追溯性:每个问题必须包含位置、现象、影响、修复建议、验证方法

批判性思维框架(必读):

  • references/CRITICAL_THINKING_FOR_CODE.md ⚠️ 核心文档,必须使用
  • 框架 1: 静态分析视角(算法设计/数据结构/代码复杂度/设计质量)
  • 框架 2: 动态推理视角(边界条件/异常处理/资源管理)
  • 框架 3: 问题质量标准(黄金公式 + 质量检查清单)
  • 框架 4: 设计质量视角(架构/扩展性/API/状态/建模/耦合/模式)
  • 框架 5: 安全漏洞分类视角(CWE/OWASP/STRIDE/七大王国/CVSS)
  • references/A_ROUND_REVIEW_TEMPLATE.md ⚠️ 代码审查计划模板
  • references/CODE_SMELLS.md 代码异味识别指南
  • references/SECURITY_PATTERNS.md 安全漏洞模式库
  • references/SECURITY_TAXONOMY.md 安全漏洞分类审查体系(必须用于安全维度)
  • references/DESIGN_ANTI_PATTERNS.md 设计反模式识别指南

A.3 执行优化与轻量测试(写入 tmp/run_*/tests/)

目标:按计划逐项修复,并用轻量测试验证。

输出:

  • 过程:tmp/run_YYYYMMDDHHMMSS/tests/vYYYYMMDDHHMM/TEST_RUN.md
  • 结果:tmp/run_YYYYMMDDHHMMSS/tests/vYYYYMMDDHHMM/TEST_REPORT.md

轻量测试原则:

  • 只验证"核心路径"与"本轮变更点"
  • 每条结论必须有可复现证据(命令输出、日志、对比结果)
  • 中间产物放入 tmp/run_YYYYMMDDHHMMSS/tests/vYYYYMMDDHHMM/_artifacts/

可选增强:

python3 ~/.codex/skills/auto-test-code/scripts/verify_session.py --require-review tmp/run_YYYYMMDDHHMMSS/tests/vYYYYMMDDHHMM
# 或
python3 ~/.claude/skills/auto-test-code/scripts/verify_session.py --require-review tmp/run_YYYYMMDDHHMMSS/tests/vYYYYMMDDHHMM

说明:verify_session.py --strict 仅用于你已将会话文档中的模板占位符全部替换后的最终自检;新建骨架默认会失败(属于预期行为)。

A.4 是否进入下一轮

⚠️ 强制检查:

  • [ ] 本轮已提出至少 10 个问题(P0 + P1 + P2 总和)

进入下一轮 A 轮的条件:

  • [ ] 用户指定的轮次数未完成
  • [ ] 本轮问题(P0/P1/P2)已全部闭环

重要:A 轮结束后,必须进入 B 轮代码质量检查。

B 轮代码质量检查

⚠️ 强制执行:B 轮代码质量检查是自动测试流程的强制性环节。

B.1 产出质量检查报告(写入 tmp/run_*/tests/ 会话目录)

目标:对 A 轮后的最新代码做系统性质量检查。

输出:tmp/run_YYYYMMDDHHMMSS/tests/b-vYYYYMMDDHHMM/REVIEW.md

推荐使用确定性脚本创建 B 轮会话目录:

# 在目标代码根目录内执行(选择你实际的安装路径)
RUN_ID=run_YYYYMMDDHHMMSS
python3 ~/.codex/skills/auto-test-code/scripts/create_session.py --code-root . --run-id "$RUN_ID" --kind b --id vYYYYMMDDHHMM --a-test-id vYYYYMMDDHHMM
# 或
RUN_ID=run_YYYYMMDDHHMMSS
python3 ~/.claude/skills/auto-test-code/scripts/create_session.py --code-root . --run-id "$RUN_ID" --kind b --id vYYYYMMDDHHMM --a-test-id vYYYYMMDDHHMM

检查维度(以 config.yaml 的 b_round_check.dimensions 为准):

  • 算法复杂度分析
  • 边界条件覆盖
  • 异常处理完整性
  • 资源管理(内存/文件/连接)
  • 并发安全性
  • 安全漏洞分类审查(CWE/OWASP/STRIDE/七大王国/CVSS)
  • 代码可读性与可维护性
  • 测试覆盖充分性
  • 设计质量(可扩展性/架构/API/状态/建模/耦合/模式)

模板:templates/B_ROUND_CODE_QUALITY_TEMPLATE.md

B.2 B 轮优化与验证(写入 tmp/run_*/tests/)

⚠️ 强制修复要求:

  • B 轮发现的 所有 P0-P2 问题都必须处理
  • P0 问题必须修复
  • P1 问题必须修复(除非有合理理由)
  • 每个修复必须有验证证据

完成条件:

  • [ ] P0 问题修复率 = 100%
  • [ ] P1 问题修复率 ≥ 80%
  • [ ] 所有修复都有可复现证据

完成条件(验收)

  • [ ] 用户指定的 A 轮次数已完成
  • [ ] B 轮代码质量检查已完成
  • [ ] 每轮 A 轮平均问题数量 ≥ 10 个
  • [ ] 每轮 P0 + P1 占比 ≥ 60%
  • [ ] 每轮系统性问题 ≥ 3 个(算法/边界/并发/内存/安全/设计)
  • [ ] 关键问题(P0/P1)已闭环
  • [ ] tmp/run_*/tests/ 会话结构完整且可追溯(每轮都有 REVIEW/PLAN/RUN/REPORT + artifacts)

可复用资源

  • 配置:config.yaml
  • 模板:templates/
  • A 轮审查:templates/CODE_REVIEW_TEMPLATE.md
  • B 轮质量检查:templates/B_ROUND_CODE_QUALITY_TEMPLATE.md
  • 测试计划:templates/SESSION_TEST_PLAN_TEMPLATE.md
  • 测试过程:templates/SESSION_TEST_RUN_TEMPLATE.md
  • 测试报告:templates/SESSION_TEST_REPORT_TEMPLATE.md
  • 参考:references/
  • 批判性思维指南:references/CRITICAL_THINKING_FOR_CODE.md ⚠️
  • A 轮审查结构:references/A_ROUND_REVIEW_TEMPLATE.md ⚠️
  • 代码异味识别:references/CODE_SMELLS.md
  • 安全漏洞模式:references/SECURITY_PATTERNS.md
  • 安全漏洞分类审查体系:references/SECURITY_TAXONOMY.md ⚠️
  • 边界条件检查清单:references/BOUNDARY_CHECKLIST.md
  • 设计反模式识别:references/DESIGN_ANTI_PATTERNS.md
  • 辅助脚本:scripts/create_session.py
  • 辅助脚本:scripts/verify_session.py
Compartilhar X LinkedIn