mcpField
Q
quack

quack

github.com/sprngrAgent 工作流857 次安装2 周前更新
代码仓库

关于 quack

quack 是用于显式路由工作流类请求的 skill,供主动调用其路由的用户使用。它解析别名、按关键词调整匹配优先级,并依据规则内联执行或委派,同时遵守审批约束。

主要功能

  1. 01仅在显式调用时启用
  2. 02基于别名解析路由
  3. 03按关键词调整路由匹配优先级
  4. 04支持内联或委派执行策略
  5. 05为含糊或未知路由请求澄清
  6. 06遵循审批与安全边界

适用场景

  1. 01将请求路由到指定工作流
  2. 02处理多个匹配的路由别名
  3. 03澄清无法识别的请求
  4. 04在修改工作区前执行审批要求

安装

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

$npx skills add https://github.com/sprngr/rubber-duck --skill quack

安装后在 Claude Code 中输入/quack确认已加载。

包含的文件

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

assets/
heartbeat.md
quick-help.md
route-aliases.json
subagent-runbook.md
references/
Examples.md
GUARDRAILS.md

详细介绍

技能:quack

显式路由控制 🦆。优先按别名自动路由,否则提出一个有针对性的消歧问题。

用途

为类似工作流的请求提供由用户显式控制的路由,同时遵守安全和审批约束。

理念护栏(技能局部)

继承 references/GUARDRAILS.md 中的共享护栏。

  • 上下文不完整时,提出 1-3 个有针对性的澄清问题
  • 缺少证据时,明确说明假设

激活

仅当用户显式调用 quack 时使用;不要根据推断出的意图自动激活。

方法

  1. 验证是否显式调用了 quack。
  2. 规范化意图:去掉 quack 后的分隔符(:, -, —),去掉外层成对引号,去掉末尾标点(?!.;:)。
  3. 裸 quack(心跳路径):
    • 如果规范化后的意图为空或仅包含空白字符:
      • 读取 assets/heartbeat.md,并从列表中随机选择一条心跳语句
      • 读取并原样输出完整的 assets/quick-help.md 内容(不做摘要)
      • 输出结束提示:What would you like to route?
      • 停止(不要临时生成俏皮话,也不要进入消歧流程)
  4. 解析可选覆盖项:use <subagent> 或 with <subagent> 或 via <subagent>。
  5. 验证覆盖项(如果存在)是否属于平台子 Agent 列表;如果无效,只提一个更正问题:Need one detail: unknown subagent "<x>". Use duckling or general?,然后停止。
  6. 确定有效子 Agent:如果在步骤 4 中解析到覆盖项,则使用该项;否则默认使用 duckling。
  7. 确定路由执行策略:
    • 默认内联:duck-design、duck-teach、duck-debug、duck-debt
    • 默认委派:duck-patch、duck-refactor、duck-risk、duck-review、duck-triage、duck-simplify
    • 用户覆盖项无论默认策略如何,都会强制委派
  8. 如果输入中包含完整技能名称,解析该技能并执行路由(见步骤 11)。
  9. 否则,加载 assets/route-aliases.json 并尝试进行不区分大小写的匹配。
  10. 应用基于关键词的优先级(匹配到多个技能时):
    • 扫描意图中的优先级关键词:
      • 风险信号(rollback、breaking、compatibility、compat、failure、impact)-> 优先选择 duck-risk
      • 复杂度信号(overengineered、complexity、simpler、too many、bloated)-> 优先选择 duck-simplify
      • 学习信号(why、how、what does、explain、teach me)-> 优先选择 duck-teach,而不是 duck-debug
      • 测试信号(test、coverage、should I test、before PR)-> 优先选择 duck-triage
      • 设计信号(choose、tradeoff、approach、option)-> 优先选择 duck-design
    • 将匹配到的技能重新排序,使优先级匹配的技能排在最前
    • 仍然提供其他选项(优先级只用于排序,不会消除选项)
  11. 如果应用优先级后仍有多个别名匹配,则按以下规则打破平局:精确匹配 > 别名最长 > 提出一个消歧问题。
  12. 路由执行(完整技能名称或别名匹配):
    • 从 assets/subagent-runbook.md 加载已解析技能的角色指令
    • 如果策略为默认内联,且没有用户覆盖项:
      • 先以内联方式执行技能
      • 如果执行失败,只提出一个更正问题,然后停止
      • 仅在内联执行步骤完成后输出 Routing: <skill>.
    • 否则(默认委派或存在用户覆盖项):
      • 首先使用框架原生调度工具,将任务委派给子 Agent,并设置 subagent=<effective_subagent>(由步骤 6 确定,默认为 duckling)
      • 传递 skill_name=<resolved_skill> 参数
      • 如果调度失败,只提出一个更正问题,然后停止
      • 如果提供了用户覆盖项,则仅在调度成功后输出 Routing: <skill> via <subagent>.;否则仅在调度成功后输出 Routing: <skill>.
    • 执行路径可用时,不要仅输出路由文本就停止。
  13. 别名未匹配(消歧):
    • 检测意图片段并提出一个有针对性的问题:
      • 类似调试(error/fail/trace/stack/broken):Need one detail: is this debug, trace, or review?
      • 发布/风险(rollout/migration/compat/rollback):Need one detail: is this risk review or design tradeoff?
      • 代码变更(fix/change/refactor/clean up):Need one detail: do you want review, patch, refactor, or simplify?
      • 技术债(todo/defer/fixme/debt):Need one detail: is this debt audit or simplify?
      • 未知:Need one detail: which route fits—review, debug, design, teach, triage, risk, simplify, patch, refactor, or debt?
    • 等待用户澄清,然后重新尝试解析别名。

边界

  • 保留用户对决策的所有权。
  • 如果某项更改会削弱信任边界验证、安全控制、数据丢失防护、无障碍要求或明确的用户要求,请拒绝该更改,并仅提供保留这些约束的安全替代方案。
  • 未经明确且有范围限定的授权,不得进行编辑、执行会更改工作区状态的命令或委派子 Agent。

评论

支持 Markdown