提供代码风格规范、安全基础检查与可访问性要点,适合个人开发者快速校验代码质量。Use when 需要代码生成、编程辅助、调试测试、开发部署时使用。不适用于无明确技术栈的模糊需求。适用于独立开发者、企业团队和自动化工作流场景。支持中文交互,无需复杂配置即开即用。输出结果可直接使用,减少二次加工成本。提供结构化输出和错误处理机制。
文档
Code Test Check
试用根据本地 PRD 需求文档或功能测试用例(Excel/JSON),分析用户指定的后端与前端源码,验证需求功能点/测试用例是否被代码实现,输出 Markdown 验证报告(含代码证据与实现状态矩阵)。
它能做什么
根据本地 PRD 需求文档或功能测试用例(Excel/JSON),分析用户指定的后端与前端源码,验证需求功能点/测试用例是否被代码实现,输出 Markdown 验证报告(含代码证据与实现状态矩阵)。
技能文档
代码测试核查器
根据 PRD 需求文档 或 功能测试用例(Excel / JSON),在用户指定的前后端源码中逐条核查功能点是否被实现,输出带代码证据的 Markdown 验证报告。
开始时宣布: "我正在使用代码测试核查技能。"
核心原则(最高优先级,不可违背)
- 证据驱动:每一个实现状态判定,必须附上代码位置(
文件路径:行号)和关键代码片段。无证据不得判定为"已实现"。 - 禁止臆测:找不到对应代码就标记为"未找到/未实现",严禁因"功能常见"或"AI 一般会写"而假设其存在。
- 只读分析:只读取和分析源码,绝不修改源码、不连数据库、不调用真实接口。
- 需求为准:当代码实现与需求描述(PRD 或测试用例的预期结果)不一致时,以需求为准确认,并标记为"偏离需求"。
- 必须分析关联影响(防漏测):验证完需求点本身,强制追加关联模块影响分析——识别本次改动触及的共享代码资产(模型/字段/接口/常量/组件),反向追溯其调用方与依赖方,评估是否受波及。不做关联影响分析 = 漏测,报告不完整。
源码位置与搜索范围(由用户指定,不预设项目)
本技能不内置任何特定项目,源码路径、技术栈、目录结构均以用户指定为准。
原则:搜索范围越小越精准、越快。 直接扫描整个项目根目录会命中大量无关代码(依赖、配置、构建产物、测试夹具等),导致噪声多、效率低。因此优先让用户指定最贴近功能点的具体目录,只有用户未指定时才回退到更大的代码目录。
开始验证前,必须先与用户确认以下信息:
| 确认项 | 说明 |
|---|---|
| 后端源码目录 | 后端代码绝对路径。优先指定功能最相关的具体目录(如控制器层、路由层、对应业务模块的 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 / 纯文本)
- 读取用户指定的本地 PRD 文档
- 提取核心信息:功能模块、业务规则、字段要求、接口定义、交互逻辑、约束条件、异常处理
- 若文档较大,分模块理解,记录每个模块的验收标准
输入源 B:功能测试用例(Excel / JSON)
- 读取测试用例文件。JSON 格式结构为
{ module_name, cases: [{ case_id, module, title, precondition, steps, expected, priority }] } - 提取每条用例的:模块(
module)、标题(title)、前置条件(precondition)、步骤(steps)、预期结果(expected) - 预期结果即为验证标准:测试用例的
expected字段天然定义了可验证的验收标准,直接作为功能点的判定依据
💡 当用户同时提供 PRD 和测试用例时,以测试用例为验证主轴(因其颗粒度更细、可验证性更强),PRD 作为补充上下文。
第二步:构建原子化功能点清单
根据输入源类型,构建可独立验证的原子功能点清单。
输入源 A(PRD):将需求拆解为原子功能点。每个功能点必须满足:
- 单一职责:一个功能点只描述一个可验证的行为
- 可验证:能在源码中通过搜索/阅读找到对应实现(接口、逻辑、UI 之一)
- 可判定:有明确的"实现/未实现"判定标准
- 归属明确:标注该功能点主要由后端还是前端实现(或两者协同)
功能点粒度示例(以"某业务对象审批"为例):
- ✅ 好的拆解:"审批列表支持按状态筛选"、"审批通过时必填审批意见"、"驳回后状态回写为待处理"
- ❌ 坏的拆解:"实现审批功能"(太大,无法定位)
输入源 B(测试用例):测试用例本身即功能点,但需做聚合优化:
- 直接映射:每条测试用例(
title+expected)作为一个待验证功能点,保留原case_id作为编号 - 按模块聚合:相同
module的用例归为一组,便于分批验证 - 去重合并:若多条用例验证同一代码实现的不同数据场景(如同接口的不同角色),合并为一个功能点、保留子场景说明
- 优先级继承:保留用例的
priority(P0 用例的未实现项为最高风险)
无论哪种输入源,整理为带编号的清单后,向用户确认清单再进入验证(功能点过多时分批确认)。
第三步:逐条验证(核心步骤)
对每个功能点,按以下策略在用户指定的后端/前端源码目录中查找实现证据。详细工具用法见 references/tech-stack-guide.md。
搜索策略(由广到窄):
- 语义搜索定位:用
SearchCodebase在上方确认的后端、前端搜索范围(具体目录优先,无则代码根目录)中按功能语义搜索,定位相关文件- 每个功能点至少分别在后端、前端各做一次语义搜索
- 搜索问题要具体,如"XX审批通过的接口实现在哪里"
- 精确匹配确认:用
Grep在同一搜索范围内,按关键标识符(方法名、路由路径、字段名、文案)精确匹配 - 阅读代码验证逻辑:用
Read读取命中的代码,核对实现逻辑是否真正满足需求描述(而非仅关键词命中)
判定实现状态:
| 状态 | 标记 | 判定标准 |
|---|---|---|
| 已实现 | ✅ | 找到对应代码,且实现逻辑符合 PRD 描述 |
| 部分实现 | ⚠️ | 找到相关代码,但存在缺失分支/未覆盖场景/逻辑不完整 |
| 未实现 | ❌ | 在前后端均未找到对应代码 |
| 偏离需求 | 🔀 | 找到代码,但实现方式与 PRD 描述不一致 |
判定要点:
- 接口类功能点:核对路由定义 + 控制器/处理方法 + 参数校验 + 业务逻辑
- 字段类功能点:核对数据库字段使用、请求参数、响应输出、前端表单绑定
- 交互类功能点:核对前端事件绑定、组件属性、状态流转
- 规则类功能点:核对校验逻辑、常量定义、条件分支
第四步:关联模块影响分析(防漏测,必做)
只验证需求点本身会漏掉回归风险。本步骤识别本次改动对其他模块的潜在影响,找出需要回归验证的关联点。
分析思路(三步反向追溯):
4.1 识别本次触及的共享代码资产
从第三步已定位的代码中,提取被改动/新增的"共享资产",这些是影响外溢的源头:
| 资产类型 | 后端识别方法 | 前端识别方法 |
|---|---|---|
| 数据模型/字段 | 改动的 Model/实体类、新增/变更的数据库字段 | 接口返回字段变化 |
| 接口 | 新增/改动的路由路径、控制器/处理方法 | 前端接口定义模块中改动的接口 |
| 常量/枚举 | 常量/枚举定义处改动的状态码、枚举值 | 前端状态映射常量 |
| 公共方法 | 被修改的 Model/Service 公共方法、公共函数 | 被修改的公共组件、工具函数 |
| 事件/钩子 | 改动的事件监听、模型事件 | - |
💡 上述"控制器/Model/常量/接口定义模块"等均指第 0 步探测到的项目对应分层目录。
4.2 反向追溯调用方与依赖方
对每个共享资产,反向查找"谁还在用它",判断是否受波及:
- 后端:用
Grep搜索该 Model/实体类名、方法名、字段名、路由路径在整个后端源码中的其他调用处 - 前端:用
Grep搜索该接口方法、组件名、字段名在整个前端源码中的其他引用处 - 跨端:后端接口返回字段变化 → 搜索前端所有消费该字段的页面
4.3 评估影响并标记回归点
对每个关联调用方,判定影响等级:
| 影响等级 | 标记 | 判定标准 | 处理 |
|---|---|---|---|
| 高风险 | 🔴 | 调用方逻辑直接依赖被改资产,行为可能变化 | 必须回归测试 |
| 低风险 | 🟡 | 调用方引用了该资产,但本次改动不影响其分支 | 建议冒烟验证 |
| 无影响 | 🟢 | 调用方仅引用名称,逻辑不依赖具体改动 | 无需测试 |
分析要点(防遗漏):
- 共享 Model 的新增字段/状态:搜索所有读写该字段的代码,尤其是列表筛选、状态流转、统计报表
- 常量/枚举变更:搜索所有引用该常量的条件分支(极易遗漏)
- 接口入参/出参变化:前端所有调用方 + 后端所有内部调用
- 公共方法签名/行为变化:所有调用链
- 数据库字段约束/默认值变化:依赖该字段的写入逻辑、统计逻辑
第五步:生成 Markdown 验证报告
按 report/report-template.md 模板生成报告,保存到需求文档同目录或 docs/ 对应模块目录下。
文件命名:<需求名称>_实现验证报告_<日期>.md,日期格式 YYYYMMDD。
第六步:输出总结
向用户展示:
- 实现度:已实现 X / 部分 Y / 未实现 Z / 偏离 W(含百分比)
- 风险提示:未实现和偏离的功能点(测试重点)
- 关联影响:高风险回归点 N 个、低风险 M 个(防漏测重点)
- 报告路径:生成的 Markdown 文件路径
注意事项
- 防误判:关键词命中 ≠ 功能实现。必须阅读代码确认逻辑,尤其注意注释掉的代码、空实现、TODO 标记。
- 前后端协同:一个功能可能需要前后端配合,两者都要验证。例如"审批通过"需要后端接口 + 前端按钮调用,缺一不可标记为部分实现。
- 版本一致性:若 PRD 引用了接口文档,优先以接口文档的字段/路径为搜索锚点。
- 局限性声明:源码静态分析无法覆盖运行时行为(如动态配置、权限控制、异步任务),报告中需说明验证边界。
- 大型需求先按模块拆分,分批验证,避免一次性功能点过多导致分析不充分。
相关技能
Review code against Android/iOS/TypeScript/Go/general rules. Triggers: review, code review, check my changes, 帮我看看代码, commit hash, PR URL. Read-only, never modifies code.
Mandatory risk-driven verification workflow for maintained-code changes. Use when implementing, fixing, refactoring, deleting, migrating, or reviewing code to identify all materially affected behavior, map failure risks to sufficient tests, execute required evidence, and report unresolved test gaps
代码审查与质量检测:检查代码规范、潜在Bug、性能问题、安全漏洞,输出审查报告与改进建议。Invoke when user asks 代码审查、Code Review、代码质量、代码检查、代码优化.
当开发提了 PR、代码变更需要确定测试范围、或者想通过分析代码来预测可能出 Bug 的区域时使用此技能。从测试视角分析代码变更的影响范围、识别高危模式和典型风险区域。不要看完整代码逻辑——你只需要关注变更类型(新增/修改/删除/重构)、影响范围(接口定义/数据库字段/业务逻辑)和相关依赖,据此确定最小回归测试范围。输出代码变更影响分析报告。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills
|-. 当需要code analyze tool相关能力的开发场景,提供完整工作流程和配置指南. 该工具经过差异化增强,结合实际使用痛点进行了优化。Use。适用于独立开发者、企业团队和自动化工作流场景,提供结构化输出与错误处理机制,支持中文交互,即开即用。Use when 需要代码生成、编程辅助、调试测试、开发部署时使用。不适用于无明确技术栈的模糊需求。