Install
openclaw skills install @zxpfreesky/code-test-check根据本地 PRD 需求文档或功能测试用例(Excel/JSON),分析用户指定的后端与前端源码,验证需求功能点/测试用例是否被代码实现,输出 Markdown 验证报告(含代码证据与实现状态矩阵)。
openclaw skills install @zxpfreesky/code-test-check根据 PRD 需求文档 或 功能测试用例(Excel / JSON),在用户指定的前后端源码中逐条核查功能点是否被实现,输出带代码证据的 Markdown 验证报告。
开始时宣布: "我正在使用代码测试核查技能。"
文件路径:行号)和关键代码片段。无证据不得判定为"已实现"。本技能不内置任何特定项目,源码路径、技术栈、目录结构均以用户指定为准。
原则:搜索范围越小越精准、越快。 直接扫描整个项目根目录会命中大量无关代码(依赖、配置、构建产物、测试夹具等),导致噪声多、效率低。因此优先让用户指定最贴近功能点的具体目录,只有用户未指定时才回退到更大的代码目录。
开始验证前,必须先与用户确认以下信息:
| 确认项 | 说明 |
|---|---|
| 后端源码目录 | 后端代码绝对路径。优先指定功能最相关的具体目录(如控制器层、路由层、对应业务模块的 Model/Service 目录),范围越小、搜索越精准;未指定具体目录时使用后端代码根目录。 |
| 前端源码目录 | 前端代码绝对路径。优先指定功能最相关的具体目录(如涉及模块的 views/pages 目录、api 接口定义目录);未指定具体目录时使用前端代码根目录。 |
| 技术栈与分层约定 | 框架(如 ThinkPHP/Spring Boot/Django/Express/Gin 等;Vue/React 等)及关键目录的位置,用于锁定接口层、数据层、常量层等。 |
若项目无后端或无前端,对应端可省略,只验证单端。
搜索范围确定流程:
SearchCodebase 的 target_directories 和 Grep 的 path,范围最窄、噪声最少。Glob/LS 探测框架特征目录(如 controllers、routes、models、src/api、src/views、src/components),把搜索范围收敛到源码目录,排除依赖与构建产物(vendor、node_modules、dist、build、runtime、target 等)。常见技术栈的目录锚点参考 references/tech-stack-guide.md。⚠️ 全程不得假设目录结构,一切以用户指定或探测结果为准。能缩小范围就缩小,避免全量扫描。
本技能支持两种输入源,根据用户提供的材料类型选择解析方式:
输入源 A:PRD 需求文档(Word / PDF / Markdown / 纯文本)
输入源 B:功能测试用例(Excel / JSON)
{ module_name, cases: [{ case_id, module, title, precondition, steps, expected, priority }] }module)、标题(title)、前置条件(precondition)、步骤(steps)、预期结果(expected)expected 字段天然定义了可验证的验收标准,直接作为功能点的判定依据💡 当用户同时提供 PRD 和测试用例时,以测试用例为验证主轴(因其颗粒度更细、可验证性更强),PRD 作为补充上下文。
根据输入源类型,构建可独立验证的原子功能点清单。
输入源 A(PRD):将需求拆解为原子功能点。每个功能点必须满足:
功能点粒度示例(以"某业务对象审批"为例):
输入源 B(测试用例):测试用例本身即功能点,但需做聚合优化:
title + expected)作为一个待验证功能点,保留原 case_id 作为编号module 的用例归为一组,便于分批验证priority(P0 用例的未实现项为最高风险)无论哪种输入源,整理为带编号的清单后,向用户确认清单再进入验证(功能点过多时分批确认)。
对每个功能点,按以下策略在用户指定的后端/前端源码目录中查找实现证据。详细工具用法见 references/tech-stack-guide.md。
搜索策略(由广到窄):
SearchCodebase 在上方确认的后端、前端搜索范围(具体目录优先,无则代码根目录)中按功能语义搜索,定位相关文件
Grep 在同一搜索范围内,按关键标识符(方法名、路由路径、字段名、文案)精确匹配Read 读取命中的代码,核对实现逻辑是否真正满足需求描述(而非仅关键词命中)判定实现状态:
| 状态 | 标记 | 判定标准 |
|---|---|---|
| 已实现 | ✅ | 找到对应代码,且实现逻辑符合 PRD 描述 |
| 部分实现 | ⚠️ | 找到相关代码,但存在缺失分支/未覆盖场景/逻辑不完整 |
| 未实现 | ❌ | 在前后端均未找到对应代码 |
| 偏离需求 | 🔀 | 找到代码,但实现方式与 PRD 描述不一致 |
判定要点:
只验证需求点本身会漏掉回归风险。本步骤识别本次改动对其他模块的潜在影响,找出需要回归验证的关联点。
分析思路(三步反向追溯):
4.1 识别本次触及的共享代码资产
从第三步已定位的代码中,提取被改动/新增的"共享资产",这些是影响外溢的源头:
| 资产类型 | 后端识别方法 | 前端识别方法 |
|---|---|---|
| 数据模型/字段 | 改动的 Model/实体类、新增/变更的数据库字段 | 接口返回字段变化 |
| 接口 | 新增/改动的路由路径、控制器/处理方法 | 前端接口定义模块中改动的接口 |
| 常量/枚举 | 常量/枚举定义处改动的状态码、枚举值 | 前端状态映射常量 |
| 公共方法 | 被修改的 Model/Service 公共方法、公共函数 | 被修改的公共组件、工具函数 |
| 事件/钩子 | 改动的事件监听、模型事件 | - |
💡 上述"控制器/Model/常量/接口定义模块"等均指第 0 步探测到的项目对应分层目录。
4.2 反向追溯调用方与依赖方
对每个共享资产,反向查找"谁还在用它",判断是否受波及:
Grep 搜索该 Model/实体类名、方法名、字段名、路由路径在整个后端源码中的其他调用处Grep 搜索该接口方法、组件名、字段名在整个前端源码中的其他引用处4.3 评估影响并标记回归点
对每个关联调用方,判定影响等级:
| 影响等级 | 标记 | 判定标准 | 处理 |
|---|---|---|---|
| 高风险 | 🔴 | 调用方逻辑直接依赖被改资产,行为可能变化 | 必须回归测试 |
| 低风险 | 🟡 | 调用方引用了该资产,但本次改动不影响其分支 | 建议冒烟验证 |
| 无影响 | 🟢 | 调用方仅引用名称,逻辑不依赖具体改动 | 无需测试 |
分析要点(防遗漏):
按 report/report-template.md 模板生成报告,保存到需求文档同目录或 docs/ 对应模块目录下。
文件命名:<需求名称>_实现验证报告_<日期>.md,日期格式 YYYYMMDD。
向用户展示: