project-discover-preflight-scope(Step0+1:证据入口盘点 + 范围止损)
概览
Preflight 的目标不是“把信息都写出来”,而是先把 可执行/可定位的证据入口 盘清楚;Scope 的目标是先把 覆盖面止损(P0/P1/P2),避免逆向工程变成“写全但不可维护”。
开始时宣布:「我正在使用 project-discover-preflight-scope 技能执行 Discover 的 Preflight 与 Scope 止损。」
输入 / 输出
- 输入
- 仓库根目录(代码、配置、依赖、CI/CD 配置)
- 已有文档入口(README/Makefile/package.json/脚本等)
- 可观测/运维入口(若存在:dashboard、告警、runbook、回滚)
- 输出(落盘)
.aisdlc/project/components/index.md:模块清单 + P0/P1/P2 + code_entry + 复选框(此时不打勾).aisdlc/project/memory/structure.md:将“如何跑/如何验/如何发布”的入口以链接形式固定(下一步子技能会正式写)- 注意:Preflight 的“证据入口清单”不需要单独建新文件,建议以“入口链接 + Evidence Gaps”逐步分散落位到
memory/*、模块页与ops/*
核心原则(Preflight)
- 优先可执行证据
- 优先级:脚本/CI job/契约文件/迁移/生成命令 > 描述性文档 > 口述经验
- 只记录“入口”,不写推断
- 你要写的是“从哪里进入、如何定位、证据在哪个文件/哪个 job”,不是“它应该怎么工作”
- 缺证据 = 结构化缺口
- 写进后续文档的
## Evidence Gaps:缺口/期望粒度/候选位置/影响
- 写进后续文档的
Preflight 最小清单(找证据入口)
只要能定位到具体文件或 job 名,就算有效入口;不要为了“写完整说明”而脑补。
- 运行入口
- 本地启动脚本/命令入口(例如:
package.json scripts、Makefile、*.ps1/*.sh、docker-compose、k8s manifest) - 环境变量入口(例如:
.env.example、配置模板、helm values)
- 本地启动脚本/命令入口(例如:
- 测试入口
- 单测/集成测/E2E 的命令入口与目录入口
- 覆盖率/门禁入口(例如:CI job、测试阈值配置)
- CI/CD 入口
- workflow/pipeline 文件位置 + 关键 job 名
- 是否有 docs/link-check 等门禁(如果没有,后续可作为建议)
- 契约/结构化事实入口
- OpenAPI/Proto/GraphQL schema
- DB migrations/DDL/ORM models
- 可观测/运维入口(如有)
- dashboard、告警、日志查询入口、runbook、回滚入口
Scope(P0/P1/P2)规则
分级建议(与 Discover DoD 对齐)
- P0(必须):高频变更、跨团队交界、对外集成多、事故/故障热点、合规风险高
- P1(建议):稳定但经常被引用/被问到/被依赖的基础能力
- P2(按需):低风险、低协作、生命周期短;先做索引占位,必要时再升级
逆向深度止损(强约束)
- P0:必须最终具备模块页
.aisdlc/project/components/{module}.md,且页内同时包含## API Contract+## Data Contract+## Evidence(缺口只能写到Evidence Gaps,且此模块不得打勾) - P1:必须最终具备模块页;允许 API 或 Data 其中一段降级为 Evidence Gaps(记录缺口与影响)
- P2:只在索引占位导航(默认不创建模块页)
components/index.md(Scope 落盘)最小模板
索引只导航:此表格不写不变量、不写字段,不写“待补/未发现”。缺口统一留给模块页的
Evidence Gaps。
# Components Index(地图层:只导航)
| module | priority | owner | code_entry | api_contract | data_contract | ops_entry | status |
|--------|----------|-------|------------|--------------|---------------|-----------|--------|
| auth | P0 | team-x | `src/auth/` | [api](./auth.md#api-contract) | [data](./auth.md#data-contract) | [ops](../ops/index.md) | - [ ] |
| order | P1 | team-y | `src/order/` | [api](./order.md#api-contract) | [data](./order.md#data-contract) | | - [ ] |
| legacy-tooling | P2 | | `tools/legacy/` | | | | - [ ] |
并行化建议
当入口盘点任务互不依赖时,建议并行:
- Agent A:运行入口 + 环境变量入口
- Agent B:测试入口 + 质量门禁入口
- Agent C:CI/CD 入口
- Agent D:契约/Schema/DDL 入口 + Ops 入口
红旗清单
- Scope 还没做,就开始为一堆模块写细节(范围必失控)
- 用“我猜应该是……”来填运行/测试/契约(必须写 Evidence Gaps)
- 在索引里写“主要类/核心表/错误码/字段列表”(索引只导航)
常见错误
- 把 Preflight 变成“写 README 教程”(应只固定入口与证据链)
- 试图一次覆盖全部模块(应先 P0 三件套)