reuse-before-build · git:20261024.480cfc7 · 2026-10-24 · sha256 98476a2cc3ba670c

reuse-before-build git:20261024.480cfc7A

Immutable. This exact content never changes and is served at /api/v1/blob/98476a2cc3ba670c.

---
name: reuse-before-build
description: 在新增或替换任何代码实现前调查复用机会,涵盖组件、工具函数、后端、脚本及业务功能。先核实项目封装、标准能力和已安装依赖;没有合适能力时主动联网比较成熟方案,推荐并获得选型确认后实现。适用于跨语言、跨技术栈的编码任务;纯文案和格式调整无需触发。
---

# 实现前先发现和复用

把能力调查放在实现之前。自己能写出来,不是选择自研的依据。所有新增或替换实现都检查,包括简单业务逻辑;按用户需要的完整能力分组,不对每行代码单独选型。遵守用户已指定的技术路线、已有授权与项目约束,不把调查扩展成全项目改造。

## 1. 明确能力并检查本地证据

从任务中确认功能、输入输出、运行环境及必要约束。先检查,再编辑该能力的实现:

- 查找项目现有组件、业务封装、工具函数及邻近使用方式,判断是否适用。
- 检查语言标准库和运行平台的原生能力。
- 读取相关依赖清单、锁定版本和实际安装包;用对应版本的导出、类型、随包文档或示例核实能力。若依赖未安装,明确这一限制,结合锁定版本和官方版本文档核实,不把声明范围当成实际版本。
- 不因为当前文件没有 import 就认定项目没有该能力;不因为最新版文档提供某 API 就认定当前安装版本也有。

给出简短结论:复用什么、何处证明其适用、还需哪些适配。无需展示完整检索日志。复用项目内部代码时仍须遵守模块边界,不能为了复用引入不合理耦合。

## 2. 有合适能力:直接复用

任务已经授权且现有能力适用时,直接使用,无需额外询问。优先沿用项目的合适封装和约定;封装不适用时核查底层公开能力,不机械复用错误抽象。

使用组件、函数或 SDK 的真实公开接口。允许样式、数据映射和业务连接;不要用“适配器”或“封装”的名义重新写一遍依赖已有的状态机、算法或交互。不要为了验证猜测修改依赖源码。

“部分覆盖”要明确拆分:现有能力负责哪些部分,剩余哪些能力仍需调查。保持用户要求的行为,不能为了方便套库默默删减功能。

## 3. 本地存在缺口:先联网调查

在编写替代实现前,主动搜索成熟库、官方组件、SDK、标准方案或其他适合当前任务的解决方式。所有未被本地能力合理覆盖的新增实现都经过这一步,包括业务专用逻辑;不要求每个业务规则都有对应的库。

依据功能与实际环境搜索,使用官方文档、官方仓库、版本记录核实候选。搜索摘要只能发现线索,不能作为能力或维护状态的最终证据。调查应足以判断可行性,无需无休止搜索;优先形成少量真正适用的候选。对证据不足的能力、兼容性或费用明确标注,不能编造结论。

网络不可用时说明受阻项,不能声称没有成熟方案,也不能自动开始自研。继续完成不依赖该选型的工作,向用户说明恢复调查或明确授权自研等可选路径。

## 4. 比较、推荐并确认路线

通常比较 2–3 个实际可行方案;只有一个或没有候选时如实说明,不凑数。可用紧凑表格:

| 方案及官方来源 | 能力覆盖与缺口 | 环境/版本兼容性 | 接入和维护成本 |
| --- | --- | --- | --- |

只讨论影响当前选择的因素:必要的体积、性能、许可、维护情况或服务费用,不罗列无关指标。推荐基于当前需求、已有技术栈和总体成本,不只看热度或功能数量。

给出明确结论:“我推荐 X,因为……;需要引入/升级……,还需自行实现……;是否同意使用?”使用当前环境提供的询问工具;没有工具时直接提问。

以下路线需要用户确认,除非先前已明确授权同一路线:

- 引入新依赖、升级依赖、引入服务或切换框架。升级必须说明现有版本缺口及兼容影响。
- 调查后决定自研:说明排除候选的依据、最小自研范围、验证方式与维护责任,再请用户确认。通用能力可复用、业务规则需自写时,可以合并说明并一次确认。

一般的“实现功能”请求不代替上述选型确认。用户已经指定库或明确授权自研时,保留授权,仍核实适配性,不反复询问;若发现需要超出授权范围,再提出具体差异。

确认前可做只读检查和方案准备,不安装、不改依赖声明、不调用付费服务、不写该缺口的替代实现。无回复或拒绝某候选都不等于同意自研。用户拒绝后根据原因调整候选或提出剩余路线。

若这份 Skill 导致暂停,注明并链接当前 SKILL.md 的“比较、推荐并确认路线”规则,简短解释等待的是哪个未获授权的选择;不把本规则描述成工具强制拦截。

## 5. 实现与验证

按已确认路线执行,使用最少必要适配,避免不必要依赖或大型框架。验证实际行为、版本兼容性与受影响回归;检查最终代码确实调用了被选能力,未暗中保留重复实现或未经批准的自研回退。

交付说明复用对象、必要自定义部分、检查结果与未验证事项。发现候选实际不能满足需求时返回选型阶段,不静默更换路线。

## 验证此 Skill

仅在创建、修改或评测此 Skill 时读取 [行为验收场景](references/behavior-checks.md)。结构校验不等于行为验证,显式调用通过不等于自然编码请求能自动触发。不能声称此 Skill 能保证每次自动加载。