用途
Evaluate Existing Solutions 是一个技术选型决策技能,核心原则是“复用先于发明”,但把它当作一种决策纪律而非硬性规则。它要求在决定引入某个通用机制之前,把现有能力与自建方案放在全生命周期拥有成本上进行比较:当成熟方案契合且能降低整体风险与机制复杂度时优先采用;当证据表明自建更小、更安全、更可控或更具差异化时优先自建。
该技能只负责调研和决策,不安装包、不运行不可信代码、不创建账户、不发起采购、不接受许可、不向服务发送数据,也不在未获单独授权时实施所选方案。
主要能力
- 按影响面选择三种深度:轻量预检(在提出重要自建通用机制前,先检查仓库现有能力与标准/框架/平台原语)、仅尽职调查(用户已指定某个尚未采用的依赖时,核验版本/层级、兼容性、维护、安全、许可、来源、生命周期风险与本地契合度,不重新做市场比较)、完整比较(对重大未决选择,比较可信现有方案与真实自建基线并产出决策建议)。
- 先界定任务与硬约束,再开始调研;先检查仓库与内置选项,再向外搜索。
- 将当前版本、维护、安全、支持、定价与许可视为易变信息,必须核验实时候选,不能只依赖模型记忆。
- 以一手技术证据支撑结论;流行度与营销只能用于发现候选,不能用于选定候选。
- 比较总拥有成本,包括集成胶水、包装层、升级、迁移、安全响应、测试、运维、支持与退出,而非仅看初始实现工作量。
- 按影响与可逆性校准调研深度,一旦硬门槛或充分证据使进一步搜索不太可能改变决策即停止。
- 记录不确定性、置信度、证据日期以及何种情况会改变建议。
使用方式
工作流分为七步:
- 框定决策:说明要完成的任务、用户与操作者、可观察结果、硬约束、偏好、非目标、预期寿命、规模、关键性、可逆性、决策负责人、交付期限与紧迫性,以及运行时、语言、框架、部署、数据、安全、隐私、无障碍、合规与预算约束。
- 先检查本地与内置选项:阅读治理说明、架构决策、活动计划、清单、锁文件、工作区配置与邻近代码,识别可复用或扩展的仓库能力、语言标准库或开放标准、现有运行时/框架/云/浏览器/数据库/操作系统原语,以及团队已拥有并支持的依赖与工具。
- 定义候选类别:只纳入可信类别,如维持现状或复用本地能力、标准/框架/平台原语、受维护的库、开源工具或应用、托管或商业服务、改造/包装/组合少量现有选项、自建实现。避免虚假广度,两三个代表性候选加自建基线通常足够。
- 收集当前外部证据:对每个实时外部候选进行浏览,优先使用官方文档、标准、源码仓库与规范包注册表;精确的发布、变更日志、支持窗口、兼容性、EOL 与迁移页面;仓库的 LICENSE、SECURITY、治理、所有权与贡献文件;供应商 SLA、定价、DPA、数据驻留、可移植性、备份与删除条款;官方或生态公告如 OSV、GHSA、供应商公告及相关国家指引;性能关键时使用可复现基准而非供应商声明。记录观察到的版本或服务层级、证据日期、URL 与发现。搜索片段、星标、下载/安装量、博客排名、生成的比较站点与单一聚合安全评分只能作为发现信号。若无法进行实时调研,只能使用本地缓存、锁文件、随附文档与源码,并标记外部状态未核验、决策为临时性,要求在实施前重新验证。
- 先应用硬门槛,再比较权衡:候选未通过硬约束时予以排除或给出可信缓解措施;对幸存者做定性比较,不要把判断伪装成加权数字评分。评估整个被采用的系统,包括传递依赖、集成代码、托管控制平面、操作者工作流、迁移桥、回退行为以及仍需的自建胶水。同时比较价值实现时间与机会成本。最终决策分类为:采用(Adopt)、改造(Adapt)、组合(Combine)、自建(Build)、推迟(Defer)、维持现状(Do nothing)。
- 安全地解决不确定性:对重大未知,提出能改变决策的最小契合度验证,如临时探针、契约测试、兼容性构建、代表性基准、运维演练、许可/安全审查或迁移预演。先定义问题、成功/失败边界、代表性负载、时间盒与一次性产出;使用一次性最小权限执行沙箱,默认拒绝家目录与仓库挂载、网络、凭据与主机服务,只挂载一次性输入并逐项显式授权例外;未经授权与检查不得安装或执行不可信包、安装后脚本、容器、二进制或远程安装器;在生态允许时禁用生命周期/安装脚本,执行前核验确切产物与可用校验和/签名/来源,并记录每一项获授权的网络、挂载、凭据或权限例外;未经明确授权与批准的数据路径,绝不向候选服务发送机密、个人数据、专有代码或生产负载;测试实际版本与受支持用法,而非仅玩具 API。
- 决策并路由所有权:使用 assets/solution-decision-template.md 撰写决策。每个智能体产出的结果初始状态为“提议”,只有指定决策负责人可以接受,并记录接受者与日期。使用现有故事、设计或活动计划约定;若不存在,写一个带时间戳的临时文件,而不是发明永久文档路径。明确接受的持久决策通过 expectations 进入项目现有 ADR 约定。若采用或改造,需指明确切受支持版本/范围或服务层级与更新策略,说明谁负责升级、公告、事件、续约与移除,定义最窄的有用依赖边界,避免反射式包装,将领域策略保留在本地语言中,记录退出路径、数据导出路径与重新评估触发条件。若自建,需说明成熟方案为何在明确约束或总拥有成本上落败,区分领域优势与通用管道,界定机制、维护承诺、安全工作与运维面,并识别自建设计中仍复用的标准或小原语。
适用场景
完整比较适用于:持久的直接依赖或框架;认证、队列、调度、校验、搜索、可观测性、存储、迁移或功能开关等通用横切能力;开源应用、开发者工具、构建系统、数据库、运行时、托管服务或平台能力;用成熟原语替换选定的自定义机制;具有重大生命周期成本的构建、购买、采用、改造、组合、推迟或维持现状决策。
限制
不适用于领域特定策略、小型透明辅助函数、一次性胶水、无新机制的常规修复或重构,或项目已拥有工具的常规使用。find-skills 发现的是可安装的智能体技能,不评估软件库、工具、应用或服务。若行为仍不明确,应回到 specification;若安装了 grill-me 技能,可用它压力测试决策树,否则一次问一个聚焦问题直到硬约束清晰。