SuperAPI AI 工具集

consulting-an-oracle

编程与开发

查看项目

更新于 11-02 02:33

技能介绍

用途

consulting-an-oracle 用于在会话内调试陷入停滞时,把失败的排查过程整理成一个独立、自包含的 Markdown 文件,交由更强的单次调用模型(如 GPT-5 Pro、Opus、Gemini Pro)冷启动回答。目标模型没有任何项目知识和历史记忆,因此提示必须能独立成立。核心原则是“恰到好处的上下文胜过整仓转储”:聚焦的 1500 行提示优于 30000 行转储。

主要能力

  • 检测 Ruby/Rails 项目形态:Ruby 版本、Rails 或其他框架版本、数据库适配器、测试框架、后台任务、资源管线、类型工具、linter、Hotwire 栈。
  • 提取逐字失败信息:失败命令、完整堆栈(不做概括)、期望与实际行为各一句话。
  • 重建尝试记录:从会话历史生成 3–7 条“假设—操作—结果”,包含部分成功。
  • 挑选附件:从失败文件出发走一跳,包含失败文件、其引用的类/模块、对应测试文件、相关初始化器、相关 schema 或路由片段;上限 8 个文件、总计 2000 行。
  • 脱敏:在写入前扫描提示正文与附件,排除 .env、master.key、credentials.yml.enc、.pem、.key,并替换 API key、secret、token、password、bearer、authorization、含凭据的连接串、长 base64/hex 字符串等为 [REDACTED:<原因>]。
  • 写入文件并报告路径、行数与建议调用方式。

使用方式

触发条件:同一症状在本会话已有 3 次以上修复失败;用户说“ask the oracle”“ask GPT-5”“write a letter to an expert”“draft a prompt for another model”“/tmp/letter.md”;排查消耗上下文但无收敛;在上下文压缩前需要让失败排查以单次提示形式留存。开始时应声明“I'm using the consulting-an-oracle skill to package this investigation.”

流程:先并行运行命令采集项目形态;从最近会话上下文中提取逐字失败信息;重建尝试记录;挑选不超过 8 个文件、2000 行的附件;先脱敏再写入;按 template.md 的结构写入 tmp/oracle/<YYYY-MM-DD>-<slug>.md(非 Rails 项目或 tmp 不可写时回退到 /tmp/oracle-<slug>.md),slug 为失败症状的简短 kebab-case 描述;最后打印路径与建议调用方式,不调用任何模型,也不在编辑器中打开文件。

建议调用示例(原文保留): codex --model gpt-5-pro --file tmp/oracle/2026-05-06-<slug>.md 或粘贴到 chat.openai.com / claude.ai / gemini.google.com。

适用场景

  • 同一错误在会话内多次修复无效,需要更强的单次模型介入。
  • 排查过程占用大量上下文却无进展,需要打包外部求解。
  • 上下文压缩前,需要把失败排查保留为可重复运行的单次提示。

限制

  • 该技能只生成文件,不调用任何模型,也不处理凭据、CLI 可用性或成本决策。
  • 不适用于尚未真正开始调试(应使用 systematic-debugging)、问题已解决(应使用 compound)、带完整插件与工具交接给另一个 Claude 会话(应使用 handoff),或用户希望继续尝试的情况。
  • 附件有硬上限:不超过 8 个文件、2000 行;超出时优先减少文件并保留上下文。
  • 文件位置在 Rails 项目中为 tmp/oracle/,否则回退到 /tmp/;若 tmp 不可写则使用回退路径。

反模式

不要为求稳妥转储整个仓库;不要概括堆栈;不要手工脱敏整个 .env;不要以第二人称对用户说话;不要向 oracle 提开放式问题,应指定输出格式;不要写会话叙事,应按假设/操作/结果结构化。

Ruby/Rails 可疑清单

提示中应包含与失败相关的 Ruby/Rails 隐式上下文项:自动加载(Zeitwerk 与 Classic、失败常量位置、lib/ 是否在加载路径、eager-load 模式)、冻结字符串字面量、线程安全(Puma 工作线程、连接池、Thread.current)、初始化器顺序与猴子补丁、Gem 版本漂移、ActiveSupport 陷阱(present?/blank?/try、delegate 链、with_options)、环境差异(dev/test/prod)、后台任务路径与适配器、迁移与 schema 不一致。仅包含可能相关项,不要堆砌。

可重复运行

提示应使用绝对文件路径、顶部写明 Git SHA,不引用“会话早些时候”或“如我所说”,确保之后用同一 --file 参数重跑能复现相同上下文。