Skip to main content

test-knowledge-retrieval

基于当前 PRD 和业务上下文,通过 test-knowledge-mcp 检索并组织测试知识库资料。适用于需要为 prd-to-xmind-testcases、UI 自动化、API 自动化、Traceability、回归分析、影响面分析提供历史 PRD、历史测试用例、历史缺陷、接口文档、上下游说明、发布说明、shared 规则等结构化上下文的场景。

Jump to install

Source facts

Repository
Fhui/AI-TEST
Last source activity
June 4, 2026 at 10:10
Detected SKILL.md language
Chinese
Stars
1
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
9 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
test-knowledge-retrieval
description
基于当前 PRD 和业务上下文,通过 test-knowledge-mcp 检索并组织测试知识库资料。适用于需要为 prd-to-xmind-testcases、UI 自动化、API 自动化、Traceability、回归分析、影响面分析提供历史 PRD、历史测试用例、历史缺陷、接口文档、上下游说明、发布说明、shared 规则等结构化上下文的场景。
# Test Knowledge Retrieval ## 职责边界 本 skill 只负责“检索与上下文组织”。 必须执行: - 基于当前 PRD 和用户补充信息规划检索条件。 - 通过 `test-knowledge-mcp` 检索和读取测试知识库资料。 - 将检索结果分为强相关、中相关、弱相关。 - 识别可复用测试用例、回归候选、风险候选、上下游依赖、shared 规则、冲突和待确认问题。 - 输出 `context-retrieval.md` 和 `context-package.json`。 禁止执行: - 生成测试用例、XMind、Playwright spec、API 自动化脚本或完整 PRD 分析。 - 修改测试知识库。 - 绕过 `test-knowledge-mcp` 直接扫描或读取知识库目录。 - 读取或解析 `.xmind` 文件。 - 臆造缺失的业务规则。 ## 必需能力 知识库相关操作必须通过 `test-knowledge-mcp` 完成: - `validate_knowledge_base` - `search_context` - `read_context_documents` - `list_module_assets` 如果 `test-knowledge-mcp` 不可用,必须停止并提示用户。禁止自行扫描知识库兜底。 ## Knowledge Roots 执行检索前必须确认知识库根目录来源,并在 `context-retrieval.md` 的 `Knowledge Roots` 或 `Retrieval Summary` 中记录结论。 MCP 的知识库来源包括: - 项目默认知识库:`knowledge-base` - 环境变量:`TEST_KNOWLEDGE_ROOTS` 必须注意: - `search_context` 会在 MCP 允许的 knowledge roots 中检索,skill 不得自行读取 `TEST_KNOWLEDGE_ROOTS` 指向目录。 - `validate_knowledge_base`、`scan_knowledge_base`、`refresh_knowledge_index` 如果传入 `root_path`,必须传 knowledge root 本身,禁止传项目根目录。 - 如果默认 `knowledge-base` 为空,不能直接判定 `knowledge_not_found`,必须继续执行同 system 和全库关键词降级检索,让 MCP 覆盖环境变量中的 roots。 - 如果 MCP 返回所有 roots 均无结果,才允许进入空结果处理。 ## 输出目录 写文件前必须确认项目根目录是包含 `.codex` 的目录。 所有产物写入: ```text ./<delivery-name>/analysis/ ``` 必需产物: ```text ./<delivery-name>/analysis/context-retrieval.md ./<delivery-name>/analysis/context-package.json ``` 禁止把执行产物写入 `.codex/`、`.codex/skills/` 或 skill 目录。 ## 执行流程 ### 1. 生成检索计划 从当前 PRD 和用户补充上下文中提取或谨慎推断: - `system` - `module` - `version` - `business_objects` - `interfaces` - `states` - `roles` - `upstream_dependencies` - `downstream_dependencies` - `keywords` - `risk_keywords` - `diff` 或 release note 线索 无法推断的字段保持为空,并写入 `open_questions`。禁止臆造。 在 `context-retrieval.md` 中输出 `Retrieval Plan`,至少包含: - System - Module - Business Objects - Interfaces - States - Roles - Upstream Dependencies - Downstream Dependencies - Keywords - Risk Keywords - Search Strategy - Open Questions ### 2. 校验并检索 当知识库状态不明确时,先调用 `validate_knowledge_base`。 必须按以下降级链路调用 `search_context`,禁止跳过中间步骤后直接标记 `knowledge_not_found`。 #### 2.1 精确 Module 检索 使用最可靠的精确字段检索: - `system` - `module` - `business_objects` - `interfaces` - `states` - `roles` - `upstream_dependencies` - `downstream_dependencies` - `keywords` 如果命中有效结果,进入相关性分级和读取阶段。 #### 2.2 同 System 降级检索 如果精确 module 无有效结果,必须将 `module` 置空或省略,保留 `system` 和业务检索条件,再次调用 `search_context`: - `system=<当前 system>` - `module=""` - 保留业务对象、接口、状态、角色、依赖、关键词 命中后按实际匹配信号重新分级。不能因为不是精确 module 就全部丢弃。 #### 2.3 全库 Keywords 降级检索 如果同 system 仍无有效结果,必须执行全库关键词检索: - `system=""` - `module=""` - 使用核心业务关键词、版本号、模块别名、业务对象、接口、状态、风险关键词 全库关键词命中的结果默认最多作为中相关或弱相关;只有同时命中业务对象、接口、状态、流程或历史版本关系时,才允许升级为强相关。 #### 2.4 空结果判定 只有精确 module、同 system、全库 keywords 三层检索均无有效结果,才允许设置: ```json "knowledge_not_found": true ``` 每一层检索都必须记录到 `context-package.json.retrieval_summary.search_attempts`,并写入 `context-retrieval.md` 的 `Search Attempts`。 检索覆盖范围必须包括: - 同 system、同 module。 - 同 system 下的相关模块。 - 上游依赖和下游依赖。 - shared 规则、发布说明和上下文关键词。 优先使用多次精准检索,避免一次性全库宽泛检索。禁止读取整个知识库。 ### 2.5 模块别名策略 当 PRD 中 module 可能是版本化组合名时,必须生成模块别名并纳入全库 keywords 降级检索。 示例: - 当前 module:`V5.6.1(在线看片自助裁剪)` - 可推断别名:`自助裁剪`、`在线看片自助裁剪`、`小程序自助裁剪`、`取片服务小程序 / 自助裁剪`、`V5.6.0(小程序自助裁剪)` 模块别名只能作为检索关键词或候选 module 说明,不能当作已确认事实写入最终业务结论。 ### 3. 相关性分级 读取正文前先分级: - `strong_related`:同 module,并命中业务对象、接口、流程、状态、角色、风险关键词或 diff。 - `medium_related`:上下游依赖、shared 规则、同 system 不同 module。 - `weak_related`:只有关键词相似,或表述相似但业务对象不同。 弱相关默认只记录摘要,不把正文写入 `context-package.json`。 ### 4. 读取候选资料 必须调用 `read_context_documents`。 - 强相关:允许在 `max_chars_per_doc` 限制内读取较完整正文。 - 中相关:优先摘要读取或使用较小字符上限。 - 弱相关:默认不读取正文。 历史测试用例规则: - `.md` 是 AI source,优先读取 `.md`。 - 如果存在关联 `.xmind`,只返回 `xmind_path` 和 `xmind_exists`。 - 禁止读取或解析 `.xmind`。 ### 5. 生成 Context Package 按 `references/context-package-schema.md` 生成合法 JSON。 字段填充规则: - `reused_testcases` 只放入与当前范围实质匹配的历史测试用例。 - `regression_candidates` 只有在命中当前模块、接口、状态流转、业务对象、风险关键词或 diff 时才能写入。 - `risk_candidates` 必须关注历史线上缺陷、高频缺陷、幂等、并发、状态错乱、通知重复、异步延迟、回滚失败、接口兼容、权限绕过。 - `upstream_dependencies` 和 `downstream_dependencies` 来源于相关资产或当前 PRD 显式描述。 - `shared_rules` 只写入与当前范围相关的 shared 规则。 - `conflicts` 记录当前 PRD 与历史 PRD、历史测试用例、缺陷、接口文档、发布说明、shared 规则之间的冲突。 - `open_questions` 记录缺失字段、归属不清、冲突待确认等问题。 选择回归候选时读取 `references/regression-selection.md`。记录冲突时读取 `references/conflict-detection.md`。 ### 6. 生成人类可读摘要 写入 `context-retrieval.md`,必须包含: ```markdown # Context Retrieval ## Knowledge Roots ## Retrieval Plan ## Search Attempts ### Exact Module Search ### System-Level Fallback Search ### Global Keyword Fallback Search ### Final Decision ## Retrieval Summary ## Strong Related Assets ## Medium Related Assets ## Weak Related Assets ## Reused Testcases ## Regression Candidates ## Risk Candidates ## Upstream Dependencies ## Downstream Dependencies ## Shared Rules ## Conflicts ## Open Questions ``` 内容必须简洁、可追溯。禁止粘贴完整大文档、完整历史 PRD 或完整历史测试用例集。 ## 空结果处理 如果 `search_context` 没有返回有效结果: - 仍然输出两个产物。 - 设置 `retrieval_summary.knowledge_not_found` 为 `true`。 - 相关数组保持为空。 - 在 `open_questions` 中记录缺失知识或需要补充的元数据。 - 必须说明三层检索均失败,以及失败发生在哪些 query 条件下。 禁止臆造历史上下文。 ## 参考资料 - `references/context-retrieval.md`:检索计划、查询策略和相关性分级。 - `references/regression-selection.md`:回归候选和风险候选选择规则。 - `references/conflict-detection.md`:冲突识别和记录格式。 - `references/context-package-schema.md`:`context-package.json` 结构规范。 ## 示例 - `examples/context-retrieval.sample.md` - `examples/context-package.sample.json` - `examples/regression-candidates.sample.json`
View on GitHub