Claude Skill

eo-test

按需独立测试视角:风险信号命中或用户点名时,对已实现 change 做测试审计、补缺与重验证,产简版 test.md。严禁修改业务代码。触发:找双新眼睛跑测试 / 独立验证 / 给这个 change 补测试 / /eo-test。 NOT FOR: 与 change 无关的日常跑测试或补单测(直接做即可,不产报告);默认主路的自验(归 eo-implement)。

LLM Mart · 0 points · 8 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download simpleeve-eo-skills-eo-test-e6f1112.zip · 4 KB
Part of simpleeve/eo-skills — 16 skills

Install

skills CLI npx skills add https://github.com/SimpleEve/eo-skills/tree/main/eo-test
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install simpleeve-eo-skills@llmmart
Git git clone https://github.com/SimpleEve/eo-skills.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole simpleeve/eo-skills collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

eo-test — 独立测试(按需闸门)

本 skill 是可选闸门,不是流程节点。默认主路里 eo-implement 自验足够;只有 ../eo-shared/granularity.md §5 风险信号命中(且用户未豁免)或用户显式点名时才调用。价值 = 独立视角:不是把 implement 跑过的再跑一遍,而是审计真实性 + 补 AC 没想到的输入。

职能边界

  1. 绝对禁令:禁止修改任何非测试相关的业务源码。发现 bug 只记录并建议修复,不自行改源码
  2. 审计 + 补缺,不重写:先盘点既有测试并审计真实性(断言是否真实覆盖对应 AC、有无被弱化/删除、有无过拟合/硬编码特判),只为缺口编写
  3. 简版报告:结论 + 未决清单 + 失败定位,写入 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 记录了命中信号且未豁免 / 用户显式点名。都没有 → 告知用户默认主路不需要本闸门,确认仍要跑再继续

工作流程

  1. 消费 lessons:按 ../eo-shared/lessons.md §1 扫 INDEX 匹配 trigger——尤其环境相关 lesson(起停命令、单次代价)
  2. 盘点覆盖:读 change.md §2 全部 AC 与 §5 TODO;读 frontmatter base_commit..HEAD 的 [<change-id>] 提交 diff;建立「AC → 已有证据」映射(既有测试、implement 速报里的一次性执行证据都算输入)
  3. 提取缺口:对照映射列出无覆盖验证点。AC 决定验什么,代码决定拿什么验——从 diff 的分支、默认值、空值与边界处理、类型转换里提取 AC 没写、已有测试也没碰、但代码实际会遇到的输入,补进缺口清单(只按 AC 文字正向推导,验的永远只是「AC 想到的路径」)
  4. 补缺编写:只为缺口写测试,遵循项目既有测试目录与命名约定;回归资产分层——逻辑密集 / 边界多 / 共享路径的落成永久测试文件,其余以一次性执行证据作证(命令 + 关键输出记入 test.md)
  5. 执行:跑全部相关测试与必要回归;需要起环境的按 ../eo-shared/ac-spec.md「起环境的纪律」——探测复用、按环境组合分组跑完
  6. 失败分析:测试代码自身写错 → 直接修正重跑;业务代码 bug → 停手,记入报告并建议走 /eo-fix 循环内分支
  7. 报告与速报:
    • 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,如已启用)——溯源标注与「为何正确」辩护不进测试注释
Files (eo-skills)
  • references
    • test-template.md 1.3 KB
      # test.md 固定模板(v3 简版)
      
      eo-test 按下方模板写入 `eo-doc/changes/<change-id>/test.md`。**覆盖式**:同一 change 再次调用时整体重写(历史由 git 兜),核销未决清单后重新出结论。
      
      ```markdown
      ---
      title: <功能名称>测试报告
      change_id: <change-id>
      created: YYYY-MM-DD
      summary: 一句话测试结论。
      ---
      
      # <功能名称> 测试报告
      
      > 关联:[change.md](change.md)(验收锚点:其 §2)| 日期:YYYY-MM-DD | 基线:<HEAD short-sha>
      > 结论:通过 / 不通过(失败 x 项)
      
      ## 未决清单
      
      <!-- 修复后核销:fixed 项复测 → verified / 回 open; waived = 用户当场裁决不修(附原话要点,不阻塞归档) -->
      
      | 项 | 失败现象 | 位置 | 修复 commit | 状态 |
      |----|---------|------|------------|------|
      | F-1 | <一句话> | `path/to/test#用例` | ~ | open / fixed / verified / waived |
      
      ## 覆盖与补缺摘要
      
      - 已有证据:<既有测试 / implement 自验证据,一句>
      - 补缺:<新写了哪些测试;未落文件的验证点列一次性执行证据(命令 + 关键输出)>
      - 未覆盖:<AC-x 及原因;全覆盖写「无」>
      
      ## 失败详情(有未决项时)
      
      ### [F-1] <用例名>
      - 对应 AC | 失败原因 | 修复建议 | 关键错误输出
      ```
      
  • SKILL.md 5.2 KB
    ---
    name: eo-test
    description: |
      按需独立测试视角:风险信号命中或用户点名时,对已实现 change 做测试审计、补缺与重验证,产简版 test.md。严禁修改业务代码。触发:找双新眼睛跑测试 / 独立验证 / 给这个 change 补测试 / /eo-test。
      NOT FOR: 与 change 无关的日常跑测试或补单测(直接做即可,不产报告);默认主路的自验(归 eo-implement)。
    ---
    
    # eo-test — 独立测试(按需闸门)
    
    本 skill 是**可选闸门**,不是流程节点。默认主路里 eo-implement 自验足够;只有 [../eo-shared/granularity.md](../eo-shared/granularity.md) §5 风险信号命中(且用户未豁免)或用户显式点名时才调用。价值 = **独立视角**:不是把 implement 跑过的再跑一遍,而是审计真实性 + 补 AC 没想到的输入。
    
    ## 职能边界
    
    1. **绝对禁令**:禁止修改任何非测试相关的业务源码。发现 bug 只记录并建议修复,不自行改源码
    2. **审计 + 补缺,不重写**:先盘点既有测试并审计真实性(断言是否真实覆盖对应 AC、有无被弱化/删除、有无过拟合/硬编码特判),只为缺口编写
    3. **简版报告**:结论 + 未决清单 + 失败定位,写入 `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 记录了命中信号且未豁免 / 用户显式点名。都没有 → 告知用户默认主路不需要本闸门,确认仍要跑再继续
    
    ## 工作流程
    
    1. **消费 lessons**:按 [../eo-shared/lessons.md](../eo-shared/lessons.md) §1 扫 INDEX 匹配 trigger——尤其环境相关 lesson(起停命令、单次代价)
    2. **盘点覆盖**:读 change.md §2 全部 AC 与 §5 TODO;读 frontmatter `base_commit..HEAD` 的 `[<change-id>]` 提交 diff;建立「AC → 已有证据」映射(既有测试、implement 速报里的一次性执行证据都算输入)
    3. **提取缺口**:对照映射列出无覆盖验证点。**AC 决定验什么,代码决定拿什么验**——从 diff 的分支、默认值、空值与边界处理、类型转换里提取 AC 没写、已有测试也没碰、但代码实际会遇到的输入,补进缺口清单(只按 AC 文字正向推导,验的永远只是「AC 想到的路径」)
    4. **补缺编写**:只为缺口写测试,遵循项目既有测试目录与命名约定;回归资产分层——逻辑密集 / 边界多 / 共享路径的落成永久测试文件,其余以一次性执行证据作证(命令 + 关键输出记入 test.md)
    5. **执行**:跑全部相关测试与必要回归;需要起环境的按 [../eo-shared/ac-spec.md](../eo-shared/ac-spec.md)「起环境的纪律」——探测复用、按环境组合分组跑完
    6. **失败分析**:测试代码自身写错 → 直接修正重跑;业务代码 bug → **停手**,记入报告并建议走 /eo-fix 循环内分支
    7. **报告与速报**:
       - test.md 简版(覆盖式):
    
         ```markdown
         # <标题> 测试报告
         > 日期: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](../eo-shared/conventions.md) §3)
    
    ## 关键约束
    
    - **禁止跨权**:严禁修改业务逻辑代码
    - **不重写已覆盖项**:审计通过的不重编;独立性靠审计 + 独立执行保证
    - **测试独立性**:用例独立运行,不依赖执行顺序
    - **不修改 change 的判据**:AC/TODO 的文字不动——发现写漏/写偏记录到报告并建议回 /eo-implement 确认后补写
    - **环境不归你所有**:探测复用、用完不停;按环境组合分组跑
    - **输入不只来自 AC**:跳过「读实现取输入」= 只验 AC 想到的路径
    - **注释纪律**:测试资产同样遵守注释纪律(项目级完整篇:`eo-doc/agent-handbook/comments.md`,如已启用)——溯源标注与「为何正确」辩护不进测试注释
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related