mcpField
M
melech-distill-need

melech-distill-need

github.com/adirdAgent 工作流4568 次安装3 周前更新
代码仓库

关于 melech-distill-need

这项技能指导 Agent 从字面请求中提炼实际目标,先了解关键背景并检查现有方案,再提出不同路径供用户选择。适用于需求尚不清晰、可能无需开发的场景。

主要功能

  1. 01区分字面请求与真实目标
  2. 02用少量问题澄清需求
  3. 03检查背景约束与现有方案
  4. 04比较方案并给出建议
  5. 05确认后再进入实现

适用场景

  1. 01评估是否需要开发新功能
  2. 02寻找现有产品或流程的替代方案
  3. 03在编码前厘清需求与成功标准

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/adird/agent-shell-hamelech --skill melech-distill-need

安装后在 Claude Code 中输入/melech-distill-need确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

evals/
evals.json
evals/fixtures/support-product/
product-signals.md
README.md
routing.ts

详细介绍

提炼需求

用户的请求不是圣旨,通常只是一个拟议的解决方案。

人们往往:

  • 不清楚自己究竟在问什么
  • 不清楚自己真正需要什么
  • 不清楚现有解决方案已经能满足需求

天真的 AI 会瞄准字面意思。你的任务是提炼需求,然后提供能达成目标的途径——这些途径可能与用户提出的方案截然不同。

经典模式:

  • 请求:“我需要一匹更快的马。”
  • 提炼:更快到达 B 地。
  • 更好的办法:坐汽车——或者走路,如果工作地点就在十英尺外。

你要达成什么

区分:

  1. 字面请求——点名要的功能、工具或实现方式
  2. 实际需求/目标——要满足什么条件,用户才会满意
  3. 背景——可能改变或简化问题的限制条件
  4. 更好的办法——包括复用、改变流程或不开发

然后让用户决定。明确说出提炼后的需求;不要悄悄换成你偏好的解决方案。

工作流

1. 识别拟议的解决方案

用一句话复述字面请求。标明这是拟议的解决方案,而不是最终目标。

2. 提炼目标

只问最少的问题,弄清:

  • 完成后必须满足什么条件
  • 为什么现在想解决这个问题
  • 如果什么都不改变,会有什么痛点

优先问 1–3 个能带来关键信息的问题。如果分支很明确,可以一并询问。 不要进行冗长的需求访谈。

3. 检查会改变问题性质的背景

留意会改变解决方案类别的事实:

  • 限制、距离、频率、紧迫性、规模
  • 谁在承受痛点
  • 在用户的实际情境中,“完成”意味着什么

如果缺少的背景信息会改变答案,就询问用户。 如果可以根据仓库/产品安全推断,就说明你的假设。

4. 检查现有解决方案

在提出新方案前,先确认:

  • 代码库、产品或流程中是否已有现成方案
  • 用户是否在重复造轮子
  • 更糟的是,是否在把轮子造成立方体
  • 如果已有的库、工具或服务可能就能解决问题,提醒用户

如果能满足需求,优先集成、复用或配置现有方案,而不是从零开始开发。

5. 提供不同类别的解决方案

针对同一个目标,提出 1–3 个有实质差异的办法。至少考虑:

  • 不开发/手动处理/调整流程/使用现有工具
  • 对现有方案做最小改动
  • 用户点名的方案(或改进后的版本),前提是它仍然值得采用

对每种方案说明:是否适合目标、成本、需要牺牲什么,以及适用场景。 给出推荐方案,由用户选择。

6. 移交下一步
  • 如果需求不再成立,或“走路”更合适 → 停下。不要制定计划,也不要写代码。
  • 如果需求仍然适合通过开发解决 → 继续对齐概念,并选择最小且有用的方案。
  • 如果用户已有方向,只是想让你找出漏洞 → 直接对该方向进行压力测试。

问题筛选

只问会影响以下事项的问题:

  • 目标的定义
  • 解决方案类别
  • 是否有必要开发
  • 是否已有方案能解决问题

不要询问实现细节。不要为了显得专业而凭空制造需求。

这就是拦截环节,最终结论可以是不开发。

应做/不应做

应做:“你要的是一匹更快的马。目标似乎是更快到公司。你住处离公司只有 10 英尺——走过去比养马更快。如果真正的限制是天气、身份、货物,请告诉我,我们再重新评估。”

**不应做:**开始设计一套优化马匹的服务。

应做:“你要的是一个新的通知微服务。真正的需求似乎是:让用户注意到扣款失败。现有的电子邮件和应用内横幅可能就够了。选项有:(1) 复用横幅;(2) 扩展现有通知器;(3) 新建服务。我推荐 (1)。”

**不应做:**因为句子里提到了微服务,就立刻搭建微服务的脚手架。

应做:“字面请求:自定义 RBAC 引擎。提炼后的需求:对非管理员隐藏管理页面。检查两个路由的角色权限可能就够了。在设计策略框架之前,先确认这个目标。”

**不应做:**把用户点名的架构当成不可更改的东西。

**应做:**给出建议,然后等待用户选择。

**不应做:**悄悄把用户的请求替换成你自己偏好的方案,然后开始写代码。

评论

支持 Markdown