Project Discovery 是 agentic-qa-boilerplate 中的项目接入编排技能(Onboarding Orchestrator),目标是把一个未知代码库变成可测试项目。它按固定顺序执行四个发现阶段,每个阶段以前一阶段完成为门禁,绝不自动串联。
用途 该技能用于项目接入与发现,产出业务领域图(business-domain-context)和基础设施图(infra-context),以及 .context/project-config.md。这些知识是后续技能(shift-left-testing、sprint-testing、test-automation、test-documentation、regression-testing)依赖的基础。发现过程是对话式的:阅读代码、遇到歧义时提问、写文件前先确认;无法从源码验证的内容标记为 Discovery Gap。
四个阶段
- Constitution(谁、是什么、为什么):包含四个子步骤——Project Connection(仓库路径、技术栈检测、环境 URL、.env 凭据、团队联系人,输出 .context/project-config.md)、Project Assessment(当前测试成熟度,输出到 .agents/instructions/agent-project.md 的 ## Project Assessment (Phase 1) 块)、Business Model Discovery(问题陈述、目标用户、价值主张、收入模型,输出到业务领域图的 overview 与 business-model 部分)、Domain Glossary(核心实体与概念、UI 标签与代码标识符映射、枚举,输出 term-<slug> 部分与 enumerations、discovery-gaps)。
- Architecture(架构与非功能需求):输出 infra-context 图的 overview、architecture、external-services、nfr-<slug> 部分。
- Infrastructure(后端、前端、环境、CI):输出 infra-context 图的 backend、frontend、environments、ci-cd 部分。
- Specification(待办事项连接检查):不写文件,运行 bun run jira:check。
使用方式 技能遵循 agentic-qa-core/references/orchestration-doctrine.md 与 session-management.md。Phase 0(会话恢复检查)与 Phase 1(计划写入)是强制的。会话状态位于 .session/project-discovery/{plan.md, progress.md}。开始前需锁定目标仓库路径:支持 monorepo(单仓库含前后端)、split sibling repos(前后端分开克隆)、remote(未克隆,需先本地克隆)。根据场景选择范围:Fresh onboarding(全新接入,运行 1→2→3→4 后接 project-context refresh-all)、Boilerplate adoption(采用本仓库作为测试框架,运行 1→3 后接 project-context)、Brownfield(已有文档缺测试,运行 2→3→4 的缺口部分)、Context refresh(重定向到 project-context 模式)。
主要能力
- 按顺序执行四阶段发现,每阶段有完成门禁,需用户确认后继续。
- 作为业务领域图与基础设施图的生成器,按 agentic-qa-core/references/business-context-maps.md 执行 CREATE/UPDATE,地图缺失或占位时创建全部章节,已生成时仅更新过期章节并展示章节级差异等待批准。
- 读取旧版 .context/business/、.context/SRS/、.context/infrastructure/ 的 markdown 作为输入,在 data-migrated-from 中引用,不删除或重写。
- 对架构性且难以逆转的测试架构决策(runner、隔离/并行、fixture 与测试数据策略、测试内认证、选择器契约、CI 分片)记录为 .context/ADR/ 下的追加式 ADR,草拟为 Proposed 供人接受。
- 不编造业务实体、流程、需求或 Jira/Xray 字段 ID 与状态名;不可验证内容进入 discovery-gaps。
- 不将凭据或检测到的密钥粘贴到任何发现输出,仅引用 .env 键或文件路径;硬编码密钥命中记录为 HIGH 风险(仅路径)。
适用场景 适用于全新项目接入、采用本仓库作为测试框架的新项目、已有文档但缺测试的棕地项目,以及需要重新运行某阶段以更新地图的场景。
限制
- 对目标仓库只读,写入目标限于 .context/project-config.md、.context/ADR/ 以及两个上下文技能的地图文件(外加 AGENTS.md 的 Phase 1 评估块)。
- 不填充 business-data-context、business-api-context、business-e2e-context 地图,不写 personas、journeys、功能目录或主测试计划,这些属于 project-context 模式。
- 不创建逐工单 PBI 内容或复制待办事项。
- 不将发现会话与 test-framework-adaptation 混合,不用于增量地图刷新。
- 全新开始时不得跳过 Phase 1 或其领域词汇表。
- 未克隆的仓库无法从 URL 发现,需先克隆。
- 描述系统实际行为而非产品期望行为,to-be PRD/SRS 超出范围。
- 使用声明能力(db、api-schema、diagrams)前需运行 preflight-gate.md §8 的使用点检查,无可用工具时停止并说明能力与启用方式,不得静默回退。
- 关于 IQL 方法论,仅在用户询问为何如此结构化时提及。
该技能运行时间长(数小时,四个硬门禁阶段),受益于逐阶段检查点;若在 Phase 2 与 Phase 3 之间中断,恢复时读取 progress.md 并跳回第一个未完成阶段,不重新询问已确认范围。