返回 Skill 列表
extension
分类: 开发与工程无需 API Key

不重复造轮子

euse-first 把"不要重复造轮子"变成强制执行的工作流。新业务模块需要新逻辑、算法或功能时,协议强制 Agent 先做技术抽象,用五维关键词矩阵启发式检索 GitHub / Gitee / 包管理器生态,再按决策链处理:同语言直接使用、异语言移植改写(先跑原测试对齐行为)、穷尽检索后才允许自研。内置六项候选及格线(含许可证带毒审查)、三级供应链校验防镜像投毒、实测可用的国内镜像路由表——无 VPN 环境开箱即用。

person作者: AllenChen0318hubModelScope

Reuse-First 开源复用优先协议

铁律

  1. 禁止未检索就自研:任何含算法成分的新逻辑/功能,动手写之前必须走完检索流程。
  2. 禁止直连 GitHub 反复重试:用户网络直连 github.com 超时(已实测)。检索与下载一律镜像优先,直连仅作全部镜像失败后的最后手段,且最多试一次;直连也失败 → 按"网络全断"降级处理(Phase 4 末)。
  3. 禁止无来源移植:改写/移植的代码必须记录来源仓库 + commit,禁止"看起来是自己写的"。
  4. 禁止许可证带毒引入:GPL/AGPL/LGPL(静态链接)/MPL/SSPL/BUSL 代码引入前必须做兼容性判定,拿不准必须向用户确认。
  5. 禁止未校验集成:经第三方镜像下载的代码,必须按 Phase 4 供应链校验条款完成验证后才能进入集成。

决策链总览

需求 → [Phase 0 技术抽象] → [Phase 1 启发式检索(时间盒 15 分钟)]
         ↓
   有候选?──否──→ Phase 5 自研(附检索记录)
         │是
   [Phase 2 候选评估]
         ↓
   有存活候选?──否──→ Phase 5 自研(附检索记录 + 每个候选的淘汰原因)
         │是
   同语言?──是──→ Phase 3A 直接使用(镜像下载 + 供应链校验)
         │否
         └──────→ Phase 3B 移植改写(先跑原测试对齐行为 + 安全审查)

Phase 0:技术抽象

把业务需求剥离业务词汇,还原为纯技术能力描述。业务词搜不到开源方案,技术词才能。

产出三要素:

  • 输入 / 输出:数据形态与变换关系(如"时序点列 → 平滑曲线")
  • 约束:语言、运行时、性能、体积、离线要求
  • 能力名词:该问题在计算机科学的通用名字(如"限流"→ rate limiting / token bucket)

Phase 1:启发式关键词检索(时间盒 15 分钟)

关键词矩阵(至少生成 3 组再开始搜)

| 维度 | 方法 | 示例(需求:接口限流) | |------|------|------------------------| | 能力词 | Phase 0 的通用名 | rate limit | | 算法词 | 该能力的经典算法名 | token bucket / leaky bucket / sliding window | | 场景词 | 框架/中间件语境 | api gateway throttle / middleware | | 同义替换 | 换近义词重搜 | throttle / quota / concurrency control | | 中英互译 | 中文需求先译英文搜,英文词搜不到再回中文搜 Gitee | 限流 / 熔断 |

检索渠道(按序执行,任一渠道命中高质量候选即可进入评估)

  1. WebSearch 工具{关键词} {语言} library site:github.com,同时搜 {关键词} {语言} 开源 site:gitee.com(WebSearch 若不可用则跳过本渠道,不阻塞流程)
  2. Gitee 搜索(国内直连可用,已实测):https://gitee.com/search?q={关键词}&type=repository
  3. 包管理器官方生态(同语言方案的主战场):
    • npm → https://npmmirror.com(搜索页可用)
    • PyPI → WebSearch pypi {关键词}(注意:清华源只有 simple 索引,无搜索页
    • crates.io → rsproxy.cn
    • Maven → 阿里云 maven 仓库搜索
  4. awesome 列表awesome-{领域} {语言} 是捞冷门高质量库的兜底手段

已实测的镜像能力边界(2026-08-24)

| 镜像 | 能力 | 实测结果 | |------|------|----------| | gh-proxy.com | git clone / tarball / Release 文件下载 | 可用(200) | | gh-proxy.com | HTML 搜索页代理 | 不可用(403),禁止用于检索 | | ghproxy.net | git 协议 | 可用 | | mirror.ghproxy.com | raw 文件 | 超时,不可用 | | kkgithub.com | 仓库浏览 | 超时,不可用 | | gitee.com | 搜索/浏览 | 可用(国内服务) |

GitHub 仓库的搜索一律靠渠道 1(WebSearch)+ 渠道 2(Gitee 找镜像仓库),不走镜像代理。

终止条件

  • 找到 ≥1 个候选 → 进入 Phase 2 评估
  • 时间盒耗尽或全部关键词组 × 全部渠道均无候选 → 记录检索日志,进入 Phase 5 自研

Phase 2:候选评估(及格线)

逐项核对,任一硬指标不满足即淘汰换下一个候选:

| 指标 | 及格线 | |------|--------| | 许可证 | MIT/Apache-2.0/BSD 直接通过;LGPL/MPL/SSPL/BUSL/GPL/AGPL 需按项目许可做兼容性判定,拿不准向用户确认 | | 维护状态 | 近 12 个月有 commit;满足成熟稳定库豁免:功能完整、文档清晰、无未解决的高危 issue(算法类库稳定后常年不更新属正常) | | 完整性 | 有测试或可运行示例;README 能说清用法 | | 匹配度 | 机械判定:候选必须全部通过三项检查——①支持需求的输入形态 ②产出需求的输出形态 ③满足 Phase 0 列出的硬约束。任一项不通过即淘汰 | | 安全 | 无未修复的高危已知漏洞(查 README/security 段落与 issue 标题) | | 体量 | 不引入巨型依赖解决一个小问题(依赖树膨胀检查) |

并列裁决:多个候选同时存活时,按 许可证宽松度 > 体量 > 维护状态 顺序裁决。

Phase 3A:同语言直接使用

  1. 按 Phase 4 镜像规则安装/下载并完成供应链校验
  2. 写最小验证:用真实输入跑一遍,确认行为符合预期
  3. 在依赖清单中登记来源与许可证

Phase 3B:异语言移植改写

  1. 先读原仓库测试用例——它们是最精确的行为规格
  2. 移植前安全审查:重点检查输入处理、反序列化、网络与文件操作段落,剔除可疑逻辑
  3. 移植核心算法,语言习惯按目标语言惯用法重写(不做逐行直译)
  4. 把原测试用例翻译为目标语言测试,全部通过才算移植完成
  5. 文件头注释标注来源:// Ported from {owner}/{repo}@{commit} ({license})

Phase 4:国内镜像获取与供应链校验(强制)

镜像规则(镜像优先,直连兜底且只试一次)

| 场景 | 镜像方案 | |------|----------| | git clone GitHub 仓库 | git clone https://gh-proxy.com/https://github.com/{owner}/{repo}.git(实测可用);备选 https://ghproxy.net/ 同格式 | | GitHub 源码快照 | https://gh-proxy.com/https://github.com/{owner}/{repo}/archive/refs/heads/{branch}.tar.gz | | GitHub Release 文件 | https://gh-proxy.com/https://github.com/{owner}/{repo}/releases/download/{tag}/{file},先 curl -sI --max-time 15 验证 200 | | npm 包 | npm i --registry=https://registry.npmmirror.com {pkg} | | pip 包 | pip install {pkg} -i https://pypi.tuna.tsinghua.edu.cn/simple;备选阿里云 https://mirrors.aliyun.com/pypi/simple | | cargo 包 | 配置 rsproxy.cn | | Gitee 仓库 | 直连即可(国内服务) |

供应链校验(三级,按序执行至通过)

  1. 首选官方源校验:包管理器安装(npm/pip/cargo)走官方镜像时,校验由注册表的完整性机制(integrity hash / wheel hash)完成,默认通过
  2. 官方哈希核对:上游提供校验和/签名(如 Release 的 .sha256 / .asc)时,下载后逐一核对
  3. 双镜像交叉校验:无任何官方校验物时,从两个不同镜像(如 gh-proxy.com + ghproxy.net)分别下载,比对产物哈希;一致才可集成,不一致立即丢弃并向用户报告

网络全断降级

全部镜像 + 直连均失败时:检查项目现有依赖中能否组合实现;不能再则进入 Phase 5 自研,并在检索记录中注明"网络不可用,检索降级为本地依赖盘点"。

Phase 5:自研(最后候选穷尽路径)

进入自研必须携带检索记录:已用的关键词组、已查的渠道、每个候选的淘汰原因(无候选则注明)。自研时参考检索中看到的同类实现的接口设计(公开设计不受许可证限制),但代码必须自己写。

与选型协议的协作边界

reuse-first 负责"找到候选并验证可用";当多个候选难分高下、或需要从零设计技术方案时,把候选清单交给 optimal-architecture-algorithm skill 做最终裁决。二者串行,不并行输出结论。

输出格式:复用决策报告

每次流程结束向用户输出:

## 复用决策报告
- 需求抽象:{输入→输出,能力名词}
- 检索记录:{关键词组 × 渠道,命中情况}
- 候选对比:{库名 | star | 许可证 | 维护状态 | 淘汰/入选原因}
- 决策:{直接使用 / 移植 / 自研} —— 理由
- 获取方式:{镜像 URL 或安装命令}
- 供应链校验:{通过的校验级别与结果}