关于 oracle
oracle 是将深入代码分析委托给 Codex CLI 的技能,面向需要基于代码库回答问题的开发者。它通过只读沙箱启动 Codex,由其自行探索代码,并支持在同一会话中继续追问。
主要功能
- 01将明确的问题交给 Codex CLI 分析
- 02Codex 可只读访问并探索代码库
- 03支持提供外部上下文文件
- 04通过会话 ID 延续后续提问
- 05整理 Codex 分析结果后呈现
适用场景
- 01分析代码库中的架构问题
- 02调查特定函数或文件的行为
- 03基于代码探索跟进未解答的问题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ trancong12102/ agentskills --skill oracle安装后在 Claude Code 中输入/oracle确认已加载。
附带文件scripts/codex-oracle.py
详细介绍
Oracle
将深入分析委托给 Codex CLI——向它提出明确的问题并启动它,等待它完成,然后呈现结果。Codex 在只读沙箱中运行,可以访问完整代码库,因此会自行收集所需上下文。
先决条件
- Codex CLI(必需):使用
npm i -g @openai/codex安装,并通过codex login进行身份验证
如果尚未安装 Codex CLI,请停止并告知用户安装它。
工作流
不要阅读脚本源代码。直接运行脚本,并使用 --help 查看用法。
步骤 1:拟定问题
Codex CLI 可以完整读取代码库,并自行浏览文件、搜索代码和进行网络搜索。你的工作是拟定一个清晰、具体的问题,而不是为此收集上下文。
- 理解用户的问题以及需要分析的内容。
- 拟定一个清晰、具体的问题,准确表达用户的意图——包括相关文件路径、函数名称或架构部分,为 Codex 指明方向。
- 可以选择使用
--context-file提供 Codex 无法自行访问的外部上下文(例如,用户提供的仓库外文件或粘贴的内容)。
步骤 2:运行 Codex
脚本位于相对于此技能目录的 scripts/ 中。运行 <script> --help 查看完整用法。
以后台 Bash 任务(run_in_background: true)的方式启动 scripts/codex-oracle.py。Codex CLI 最长可能需要 30 分钟。
# New session
python3 scripts/codex-oracle.py --question "..." [--context-file path] [--focus text] [--dry-run]
# Resume a previous session for follow-up
python3 scripts/codex-oracle.py --session-id <id> --question "follow-up question..." [--context-file path] [--focus text]
启动后台任务后,立即结束响应并等待。不要轮询、读取输出文件或检查进程状态。Codex 完成后,你会自动收到通知。
步骤 3:查看响应
- 从后台任务完成通知中读取 Codex 输出。
- 从最后一行获取
oracle-session-id,并在内部保存以供后续使用。 - 自行审阅响应。判断它是否充分回答了用户的问题,还是需要澄清或深入分析。
步骤 4:后续追问循环(如有需要)
如果 Codex 的响应不完整、含糊,或者你需要它进一步深入分析,请在向用户呈现任何内容之前发送后续问题。根据需要重复此流程。
- 使用已保存的
oracle-session-id和--session-id继续会话。Codex 会保留完整的对话历史。 - 只发送新的追问——不要重复先前的问题或系统提示词。
- 以后台任务方式启动,等待完成,并审阅新的响应。
- 返回判断是否已获得充分答案,或是否还需要继续追问。
每轮都会累积会话上下文,让后续回答更有参考价值。只有主题完全改变时,才开始新会话(步骤 1)。
步骤 5:呈现结果
从 Oracle 获得完整、清晰的答案后(可能需要一轮或多轮),请:
- 将所有 Codex 响应综合为一份连贯的答案,呈现给用户。
- 自行决定如何组织格式以及突出哪些内容;不必逐一复述每轮的所有细节。
规则
- 由 Codex 负责分析,你的职责是拟定问题、启动任务并呈现结果。 Codex 运行期间,不要自行并行分析。
- 按主题而非严重程度组织发现。 根据问题类型调整结构(架构问题可按组件和权衡组织;漏洞问题可按根因假设组织;安全问题可按威胁模型组织,等等)。
- 使用完成通知中提供的
output-file路径,通过Read工具读取后台任务输出。TaskOutput无法找到后台 Bash 任务 ID,使用后会失败。 - 始终使用包装脚本运行 Codex。 该脚本会设置正确的模型和只读模式;直接调用
codexCLI 会绕过这些设置。
评论
支持 Markdown