eo-test — 独立测试(按需闸门)
SkillDev toolsOn-demand independent testing perspective: when risk signals are hit or the user calls for it, performs test audits, gap-filling, and re-verification on an implemented change, producing a brief test.md. Modifying business code is strictly forbidden. Triggers: find a fresh pair of eyes to run tests /
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the eo-test — 独立测试(按需闸门) skill
What this skill tells your AI
The instructions your AI receives, as published by simpleeve/eo-skills in eo-test/SKILL.md and read by ahel’s review.
本 skill 是可选闸门,不是流程节点。默认主路里 eo-implement 自验足够;只有 ../eo-shared/granularity.md §5 风险信号命中(且用户未豁免)或用户显式点名时才调用。价值 = 独立视角:不是把 implement 跑过的再跑一遍,而是审计真实性 + 补 AC 没想到的输入。
职能边界
- 绝对禁令:禁止修改任何非测试相关的业务源码。发现 bug 只记录并建议修复,不自行改源码
- 审计 + 补缺,不重写:先盘点既有测试并审计真实性(断言是否真实覆盖对应 AC、有无被弱化/删除、有无过拟合/硬编码特判),只为缺口编写
- 简版报告:结论 + 未决清单 + 失败定位,写入
eo-doc/changes/<change-id>/test.md;同一 change 再次调用时覆盖重写(历史由 git 兜),速报恒在对话里给
前置条件
- 必须能找到
.eo-project.json。同目录存在.eo-project.local.json时顶层字段覆盖合并(local 优先)。找不到 → 报错退出,提示运行/eo-project-init eo-doc/changes/<change-id>/change.md已存在,相关代码已实现(status: implementing或reviewed)- 调用依据二选一:change.md §6 记录了命中信号且未豁免 / 用户显式点名。都没有 → 告知用户默认主路不需要本闸门,确认仍要跑再继续
工作流程
- 消费 lessons:按 ../eo-shared/lessons.md §1 扫 INDEX 匹配 trigger——尤其环境相关 lesson(起停命令、单次代价)
- 盘点覆盖:读 change.md §2 全部 AC 与 §5 TODO;读 frontmatter
base_commit..HEAD的[<change-id>]提交 diff;建立「AC → 已有证据」映射(既有测试、implement 速报里的一次性执行证据都算输入) - 提取缺口:对照映射列出无覆盖验证点。AC 决定验什么,代码决定拿什么验——从 diff 的分支、默认值、空值与边界处理、类型转换里提取 AC 没写、已有测试也没碰、但代码实际会遇到的输入,补进缺口清单(只按 AC 文字正向推导,验的永远只是「AC 想到的路径」)
- 补缺编写:只为缺口写测试,遵循项目既有测试目录与命名约定;回归资产分层——逻辑密集 / 边界多 / 共享路径的落成永久测试文件,其余以一次性执行证据作证(命令 + 关键输出记入 test.md)
- 执行:跑全部相关测试与必要回归;需要起环境的按 ../eo-shared/ac-spec.md「起环境的纪律」——探测复用、按环境组合分组跑完
- 失败分析:测试代码自身写错 → 直接修正重跑;业务代码 bug → 停手,记入报告并建议走 /eo-fix 循环内分支
- 报告与速报:
-
test.md 简版(覆盖式):
# <标题> 测试报告 > 日期:YYYY-MM-DD | 基线:<HEAD short-sha> | 结论:通过 / 不通过(失败 x 项) ## 未决清单 | 项 | 失败现象 | 位置 | 修复 commit | 状态 | |----|---------|------|------------|------| | F-1 | <一句话> | <用例/文件> | | open / fixed / verified | ## 缺口补缺摘要 <补了哪些测试、一次性证据清单(命令 + 关键输出)> -
修复后再跑:核销未决清单(fixed 项复测 → verified / 回 open),覆盖重写报告
-
对话速报(硬性):
结论:通过 / 不通过(失败 x 项)[基线 <short-sha>] 失败项: 1. <一句话> — <用例/文件> 未覆盖 AC:<AC-x(原因)>;全覆盖则省略此行 下一步:<失败 → /eo-fix 循环内分支修复后回本 skill 复验 / 通过 → /eo-archive 或用户指定> (详细报告见 <test.md 路径>) -
status 回退边:结论不通过且当前 status 为
reviewed→ 当场置回implementing(见 ../eo-shared/conventions.md §3)
-
关键约束
- 禁止跨权:严禁修改业务逻辑代码
- 不重写已覆盖项:审计通过的不重编;独立性靠审计 + 独立执行保证
- 测试独立性:用例独立运行,不依赖执行顺序
- 不修改 change 的判据:AC/TODO 的文字不动——发现写漏/写偏记录到报告并建议回 /eo-implement 确认后补写
- 环境不归你所有:探测复用、用完不停;按环境组合分组跑
- 输入不只来自 AC:跳过「读实现取输入」= 只验 AC 想到的路径
- 注释纪律:测试资产同样遵守注释纪律(项目级完整篇:
eo-doc/agent-handbook/comments.md,如已启用)——溯源标注与「为何正确」辩护不进测试注释
Signals
- GitHub stars
- 31
- Forks
- 6
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
eo-test- Source
- github.com/simpleeve/eo-skills