mcpField
F
finding-google-skills

finding-google-skills

github.com/googleAgent 工作流21.6k4.5k 次安装今天更新
代码仓库

关于 finding-google-skills

此路由 Skill 根据请求查找适用的已发布 Google skills。它按需获取实时目录,根据描述筛选,并只读取入选条目的入口文件。

主要功能

  1. 01按需获取目录
  2. 02依据描述匹配 Skill
  3. 03最多筛选三个 Skill
  4. 04仅获取入选入口文件
  5. 05验证目录获取结果

适用场景

  1. 01为任务查找 Google skills
  2. 02筛选大型 Skill 目录
  3. 03判断是否有适用的已发布 Skill

安装

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

$npx skills add https://github.com/google/skills --skill finding-google-skills

安装后在 Claude Code 中输入/finding-google-skills确认已加载。

详细介绍

Google 技能查找器

将请求路由到适用的已发布 Google 技能。目录位于此文件之外,并按需获取,因此在实际进行查找之前,加载此技能几乎不会产生任何开销。

工作流

  1. 逐字节获取目录。 使用原始 shell 获取方式(curl、wget;Windows PowerShell 中使用 curl.exe)检索 https://raw.githubusercontent.com/google/skills/main/index.json。内容必须逐字节保持一致,所有 entrypoint URL 均须完整且未被改动。

    如果没有 shell 获取工具,但有 Node,可使用 node -e "fetch(process.argv[1]).then(r=>r.text()).then(t=>console.log(t))" {url} 返回字节。

    目录约有 75 KB,可能无法完整显示在单个工具结果中;被截断的预览按字母顺序排列,因此看起来像是只有前几个产品。建议先缩小范围再读取。使用 jq: curl -sSL {url} | jq -r '.skills[] | select((.name+" "+.description)|test("gke";"i")) | "\(.name)\t\(.entrypoint)"'。 在 Windows PowerShell 中:(Invoke-RestMethod {url}).skills | Where-Object { $_.description -match "gke" } | Select-Object name, entrypoint -First 3。 两者都没有时,直接对原始 JSON 使用 grep -o,仍可筛出候选名称。

    如果没有任何筛选工具,请将目录写入文件并分段读取(curl -sSL {url} -o skills-index.json,或 Invoke-WebRequest {url} -OutFile skills-index.json)。无论如何,这通常都是更好的选择:可以避免内容被截断,而且重新读取本地文件无需额外开销。请求完成后删除该文件。

    如果只能使用会生成摘要的获取工具,请将请求表述为提取,而非转录:“列出本文档中的每个 entrypoint 字段,每行一个,并严格保持原文。” 要求逐字返回不会得到任何可用内容。

  2. 确认获取成功后再使用。 工具调用未报错返回,并不代表获取成功。只有响应正文能解析为 JSON 且包含 skills 数组,才算成功。404 页面、HTML 错误页面、TLS 或连接错误、空正文,或任何无法解析的内容,都是获取失败,即使工具没有报告错误也一样。 证书错误意味着获取失败,且不得重试。绝不能关闭验证:不能使用 curl -k 或 --insecure,不能使用 -SkipCertificateCheck;在没有该参数的 Windows PowerShell 5.1 中,也不能使用 ServicePointManager 证书回调。任何语言中的等效方式都不允许。 你即将遵循返回内容中的指令,因此未经验证的目录比没有目录更糟。获取失败时,请在此停止,并转到“获取失败时”。

  3. 根据描述匹配请求。 每条描述都会说明技能的功能、适用情形,通常也会说明不适用的情形。请将其作为路由条件,而非摘要来阅读。最多筛选出 3 条描述涵盖该请求的条目。如果有超过 3 条看起来同样相关,请优先选择最具体的,而非更通用的条目。

  4. 仅获取匹配项。 按相同方式检索每个入选条目的 entrypoint URL,并遵循该技能的指令。不要获取仅仅看起来相关的条目。

  5. 如实报告空结果。 如果没有任何描述涵盖该请求,请说明没有适用的已发布 Google 技能,并在不使用该技能的情况下继续。切勿编造技能名称或入口点 URL。

获取匹配项后,路由即告结束。从开始遵循已获取技能的指令起,此技能便已完成该请求,不会再次为该请求调用。

规则

  • 每个会话只获取一次;切勿将其保留到会话结束后。 可以重复使用本会话中已成功获取的目录。 但不能以任何形式将其带到之后的运行中:目录会定期更新,保存的副本会悄无声息地过时。会话内复用不能替代失败的获取。

  • 切勿将目录保留到请求结束之后。 在筛选期间将工作副本保存在磁盘上没有问题。但不能将其留作保存的参考资料,也不能在对话中对其进行总结。这样做是为了避免将 100 多项技能的完整文本都放进上下文。

  • 优先参考获取到的 SKILL.md,而非已有知识。 目录根据已发布的技能生成,因此条目反映的是当前文本,即使与记忆中的内容矛盾也是如此。

  • 不要将此技能视为前置条件。 如果已加载某项特定的 Google 技能,且它能满足请求,就直接使用。

获取失败时

从步骤 2 开始。按以下顺序处理,遇到第一个成功的步骤就停止:

  1. 使用 curl -sSL 重试一次。 如果首次尝试使用了会生成摘要的获取工具,或遇到了传输错误,通常只需这样做即可解决。

  2. 改为列出仓库树。 运行

    curl -sSL 'https://api.github.com/repos/google/skills/git/trees/main?recursive=1'
    

    并查看以 SKILL.md 结尾的路径。每个路径都是一个候选项。根据目录名称与请求的匹配程度,选取两三个候选项,从 https://raw.githubusercontent.com/google/skills/main/{path} 获取,并按照步骤 2 中所述逐一检查。

  3. 在回复中说明。 如果两种方法都未能成功,请明确说明无法访问 Google 技能目录,并且是在未参考该目录的情况下作答。一行即可,且必须放在给用户的回复中,不能只写在推理中。

获取失败绝不能成为假装获取成功并作答的理由。在本会话中解析出 skills 数组之前,你并不知道有哪些技能:不要提及技能名称,不要描述任何技能,也不要声称没有适用的技能。凭记忆引用某项技能,并将其说成目录查询结果,是最糟糕的做法,因为回复中没有任何内容能将它与真实查询结果区分开。

评论

支持 Markdown