--- name: engineering-decision-loop description: EDL(Engineering Decision Loop,工程决策闭环):把工程目标从定题、找路、决策推进到实施、验证、交付和资产沉淀,深度按风险分级。用于:准备新建或扩建工具、框架、平台、skill、方法论或体系,即使只说“我想做一个 X”“开始设计 X”;借、造、适配还是直接生成,build-vs-buy、框架、库、模型、API 或基础设施选型,既有选型重评;问“有没有类似的”“别人怎么做的”“是不是在重复造轮子”;用户说“用 EDL”,或要求从调研到上线、端到端交付。只问同类时只做先例扫描,只问选型时停在决策,要求交付时走完整闭环。 --- # EDL 工程决策闭环 ## 核心规则 - 研究是手段,决策才是产品;决策之后,用户能从约定的真实入口拿到结果并有证据,才算完成。 - 默认复用,自建为例外。选择自建的一方负责举证:写明已查过的内部资产与外部候选,以及各自不被采用的理由。 - 扫描决定造什么,不决定做不做。结论落到模块或能力层,发现同类不构成放弃理由。 - 先内后外。未完成内部资产检查,不给外部扫描结论。 - 状态只按证据升级。每个阶段结束时按 `references/rules.md` 的 Evidence Gate 写出状态和证据;阶段走完不等于状态升级。 - 失败先定位到阶段,再决定修复、换路或停止,不从头重来。 - 本技能只编排,不重写规则。规则以参考文件为准,冲突时 `rules.md` 优先。 ## 参考文件 | 文件 | 内容 | 何时读 | |---|---|---| | `references/rules.md` | 核心闭环、Evidence Gate、最小执行包、Human Decision Gate、完成标准 | 进入第 4 阶段前 | | `references/plan.md` | 目标卡、解空间、决策包、最小验证 | 第 1、3 阶段 | | `references/borrow-build.md` | 借造方法母本:分诊、Gate 0 到 5、重评、失效边界 | L2 决策前通读;L1 查第 3、4 节 | | `references/scan-method.md` | 先例扫描:检索策略、来源分级、分析维度、饱和判据、有效期 | S1 查第 2、4 节;S2 通读 | | `assets/` | `l1-note.md`、`l2-decision-record.md`、`scan-record.md`、`field-test-record.md`、`case-summary.md` | 需要落盘时 | 这些文件是发布快照。若当前环境能访问项目仓库 `ai-colab`(本机路径或 GitHub),以其中 `edl/README.md`、`edl/engineering-decision-loop.md` 和 `edl/borrow-build/` 为事实源。 ## 入口:按问题决定走多远 先判断用户在问什么,只走需要的阶段。 | 用户在问 | 走到哪 | 产出 | |---|---|---| | 有没有类似的、别人怎么做的、是不是重复造轮子 | 只做第 2 阶段的扫描 | 按扫描等级的对照表和模块结论 | | 该用哪个、借还是造、重评旧决定 | 第 1 到 3 阶段 | 按分诊等级的决定或记录 | | 我想做一个 X、开始设计 X(还没查过同类) | 先第 1 到 3 阶段;用户要继续做时进入第 4 阶段 | 扫描结论 → 决定 → 实施 | | 用 EDL、从调研到上线、做完并验证 | 第 1 到 6 阶段 | 最小执行包 | 隐式触发(用户只是开始设计,没提选型)时不打断原任务:先按分诊等级完成候选发现,再继续。小工具、可随时丢弃的实现走 L0,一句话说明查了哪里即可。 ## 阶段 | 阶段 | EDL 步骤 | 做什么 | 产出 | |---|---|---|---| | 1 定题 | Frame、Inspect | 按 `plan.md` 第 3 节写目标卡:真实入口、验收条件、硬约束与偏好分开;把问题压到具体能力层;核对现有系统和资产,不假定未拥有的权限或部署 | 目标卡、分诊等级 | | 2 找路 | Explore、Research、Compare | 按等级做先例扫描;展开范式、方案、组件三层解空间 | 扫描结论与候选 | | 3 决策 | Experiment、Decide | 先按硬约束淘汰,再比较;只为最可能改变选型的未知项做最小实验,通过条件事先写好 | 决策包;L1 / L2 记录 | | 4 实施 | Plan → Execute → Test → Verify → Fix → Re-test | 按 `rules.md` 核心闭环推进;测试要能在植入错误时失败 | 代码或配置、测试结果 | | 5 交付 | Merge → Deploy → E2E → Acceptance | 从真实入口走通,写入后回读确认;按 `rules.md` 完成标准判断 | CI、部署、端到端与验收证据 | | 6 沉淀 | Assetize、Feedback | 可复用组件写成资产卡;摩擦和推翻的假设记下来;L2 安排回访 | 资产卡、决策记录、案例登记 | ## 分诊(第 1 阶段末) | 等级 | 情形 | 扫描 | 记录 | |---|---|---|---| | L0 | 低损失、可逆、可快速验证 | S0:检查一次当前环境可访问的既有资产 | 不强制;选择自建时附一句检查结果 | | L1 | 影响有限但值得留下理由 | S1:全部内部来源;外部 3 到 8 次检索,含一个清单或综述和一次反面检索 | `assets/l1-note.md` | | L2 | 高损失、难逆或命中强制升级项 | S2:全部内部来源;外部按 `scan-method.md` 全流程达到饱和 | `assets/l2-decision-record.md`、`assets/scan-record.md` | 必须升级到 L2:安全、合规、敏感数据、长期合同、核心架构、高迁移成本、跨系统强耦合、对抗性问题;新建预计跨项目复用的体系、平台或方法论。 ## 先例扫描(第 2 阶段) 1. **拆解**:把要做的东西拆成能力模块,每个模块写 2 到 4 个检索词,覆盖中文、英文、行业术语和上位概念。 2. **内部**:Claude Code 中查已安装 skill 及其维护源、ai-colab(`capabilities/assets/` 资产卡、`capabilities/map.md` 能力地图与缺口、`edl/decisions/` 决策记录)、项目文档与 ADR;claude.ai 中查 Project 知识库、上传文件、记忆与历史对话。无法访问的来源写明,不算已查。 3. **外部**:覆盖商业产品、开源项目、skill 与插件、方法论与标准、学术研究五类;有意检索论文、小项目等低热度来源。候选清单必须包含主平台原生能力及其近期内置趋势。 4. **反面检索**:批评、失败案例、弃用或迁移报告、产品转向。 5. **对照与判定**:按模块写本方多出的、缺少的、被原生能力吸收的风险和结论;写明有效期和重扫信号。 模块结论取值:采用、改造后采用、借鉴设计后自建、自建(须列出已查候选及不采用理由)、放弃(正被原生能力吸收或价值不足)、先取证。 ## 决策(第 3 阶段) - 先按硬约束淘汰,再比较验证历史、适配度、长期成本、退出能力和被原生能力吸收的风险;主平台或下一代模型即将免费提供的部分不作为自建重点。 - 不为未知编造数字。写明未知原因、取证成本、是否阻断决定和取证计划。证据不足时结论可以是“先取证”“小规模试点”或“暂不决定”。 - L0 给选择、关键理由和验证方式;L1 给选择、两个以内关键理由、最大未知和一个可观测重开信号,附扫描简表;L2 按 `borrow-build.md` 第 4 节写证据与假设、被淘汰候选、决定性权衡、责任边界、退出能力和重开条件。 ## 证据的三个维度 三套分级回答不同问题,不互相替换: - `scan-method.md` 第 2 节的 A 到 D:一条扫描来源能不能支撑结论。每个模块结论至少一条 A 级依据。 - ai-colab `edl/borrow-build/runbook.md` 第 3 节的六级证据(标准法规到营销材料,不在快照里):L2 比较候选时各类证据的权重,同时记录与当前场景的距离。 - `rules.md` 的 Evidence Gate 和资产卡状态:交付走到了哪一步。 ## 按规模裁剪 - 第 2、3 阶段的深度跟随分诊等级。 - 第 4、5 阶段进入后不能省,但只做目标需要的环节:没有部署目标就不写 Deploy,并说明完成停在哪个状态。 - 第 6 阶段没有可复用产出时写一句“无新资产”。 ## 何时停下来问人 只在命中 `rules.md` 的 Human Decision Gate 时停下;其余情况在已有授权内继续。决策包里的推荐路线不需要再次确认,除非它改变了用户的目标或方向。 ## 输出 - 只扫描或只选型:先给结论,再给对照表或理由;S0、L0 一句话。 - 进行中:每个阶段一行,写阶段、Evidence Gate 状态和下一步。 - 结束时:按 `rules.md` 的最小执行包汇报,先给结果和证据,再给剩余风险、下一步和新增资产;没做到的环节明确写出。 - 所有链接指向实际打开过的页面;只看过检索摘要的来源标“未核实”。 ## 重评与回访 决定所依据的扫描过期、主平台发布同类能力、主要候选大版本变化或转向、准备对已自建资产追加大量投入时,先重扫再走本流程。L2 决定后在用户要求建立项目资产时用 `assets/field-test-record.md` 安排 T0 到 T3 回访,T2 后才用 `assets/case-summary.md` 提炼经验。 ## 记录位置(ai-colab) 只在用户要求落盘或项目已有记录体系时写文件;其他项目优先用它自己的 ADR 或文档目录,不另建平行事实源。 | 内容 | 位置 | |---|---| | 目标卡、扫描记录、决策包 | `edl/decisions/YYYY-MM-DD-<主题>.md` | | 可复用组件 | `capabilities/assets/` 资产卡(字段以 `capabilities/schema/` 为准)、`capabilities/map.md` | | 运行证据 | 资产卡 `delivery_evidence` 指向的位置 | | 摩擦、方法未生效的反例 | `edl/borrow-build/cases.md` | ## 禁止事项 - 在本技能或项目文档里复制规则文本;要改规则只改 `edl/` 下的母本。 - 以星标、下载量、排行榜,或厂商撰写的竞品对比、作者自荐作为唯一依据;采信未经独立评估的效率数字。 - 把外部产品的可观察行为写成对其内部实现的断言。 - 以功能列表代替验证历史,以代码生成速度代替验证成本。 - 把调研、代码完成、一次部署成功或一次接口返回成功写成已验证;把计划中的步骤写成已完成的证据。 - 为了让测试通过而削弱安全措施、跳过或删除测试。