Communitygithub.com

scasella/claude-dynamic-workflows-codex

在本地 Codex App Server 上运行动态工作流脚本——编排多个 Codex / GPT 智能体(使用 agent / parallel / pipeline / phase / budget DSL),代替 Claude 子智能体执行代码库审计、大规模迁移及多智能体审查或研究。只需提供一两句粗略描述,它就能为您编译出正确的运行框架;添加 --multi 可监督一个并发工作流集群。仅通过 /codex-workflows 手动调用。

claude-dynamic-workflows-codex 是什么?

此技能使开发者能够在本地 Codex App Server 上执行 Claude Code 动态工作流脚本。其核心价值在于利用 Codex(GPT)智能体集群替代 Claude 子智能体,从而高效处理代码库审计、大规模代码迁移和多智能体协同审查等复杂任务。技能支持 agent()、parallel()、pipeline()、phase() 等原生动态工作流 DSL,但每个 agent() 调用都作为一个独立的 Codex 线程运行。用户只需输入一两句粗略意图(如“强化这个目标”),技能便会自动编译出完整的操作框架:包括任务分类、规模选择、架构模式、阶段编排、角色分配等,并直接执行。此外,还支持 --multi 模式启动多个并发工作流并监督其状态,以及 prompt-only、write-only 等特殊模式。该技能为手动调用(通过 /codex-workflows 命令),不会自动触发,确保用户完全掌控工作流启动时机,适合需要精确编排和资源管理的复杂开发场景。

兼容平台✓Claude Code✓Codex CLI✓Cursor✓Antigravity
npx skills add scasella/claude-dynamic-workflows-codex

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Codex 工作流

在本地 Codex 应用服务器 上运行 Claude Code 动态工作流脚本。 创作界面与原生动态工作流完全相同 — export const meta 加上使用 agent()、parallel()、pipeline()、phase()、 log()、args、budget、workflow() 的主体 — 但每个 agent() 调用作为 一个 Codex (GPT) 线程+轮次运行,而不是 Claude 子智能体。

仅限手动调用。 Claude 不会自动触发此技能 (disable-model-invocation: true);仅在用户输入 /codex-workflows 或明确请求 Codex 工作流时运行。调用后,遵循 以下循环 — 工作在 Codex/GPT 智能体上运行。如果用户实际上想要 Claude 子智能体,请说明并指向原生工作流工具。

下面的 RUNNER 表示捆绑的 runner 目录:runner/ 相对于此技能的 基础目录(技能加载时显示)。对于经典的 skills-dir 安装, 即 ~/.claude/skills/codex-workflows/runner — 下面示例中的实际路径 假定如此;如果此技能是作为插件安装的,则替换您的基础目录。它是无依赖的 Node ≥ 18。

默认粗略意图模式

一两句粗略描述就足够了。 您无需向此技能提供完全工程化的 规范 — 描述您想要什么(例如 /codex-workflows 在我运行之前强化这个目标),技能会自行将其编译为可操作的工作集: 它对工作进行分类,选择最小可行规模、原型和 工作集模式,构建任务契约,组合阶段,分配角色,应用 质量/认知标准,创作脚本,选择安全的运行设置,然后 运行 — 在过程中陈述其假设。

此模式下的操作规则:

  • 粗略意图即契约。对任何未指定的内容做出合理假设并 陈述它们;不要用后续问题询问用户。
  • 选择最小有用的工作集,而不是最大可能的(见 反过度构建规则)。
  • 不要发出一个巨大的提示让用户粘贴回来。 编译并继续 创作/运行。(唯一的例外是 prompt-only 模式 — 见 模式检测。)
  • 这取代了任何外部的“元提示”:扩展现在发生在技能 内部。下面将粗略意图编译为工作流的整个部分就是那个 编译器。

默认执行检查清单

每次运行,按顺序(以下各部分展开每个步骤):

  1. 预检 Codex 一次 (handshake.js);注意最新的前沿模型。
  2. 编译 粗略意图:对工作进行分类 → 规模 → 原型 → 模式 (命名它防止的故障模式)→ 任务契约。陈述您的假设。
  3. 创作 脚本到仓库 (./<name>.workflow.js)。
  4. 设置: --frontier · 按规模的 effort(quick_harness 用 --effort medium, standard/deep 用 --auto-effort)· --sandbox read-only 除非必须写入 · 有边界的 --budget · 严格模式(additionalProperties:false)。
  5. 评估大小 — 对于任何昂贵或复杂的工作流,先运行 --plan。
  6. 运行 在 Codex runner 上(绝不能使用原生 Workflow 工具)。
  7. 展示 — 内联 ASCII 地图 + summarize-run 要点;引用脚本、 日志、查看器、报告和运行摘要路径(见 输出行为)。

模式检测

从用户的措辞中读取模式,然后相应行事:

模式触发条件行为
默认(粗略意图)1–2 句粗略描述内部编译 → 创作 → 运行。陈述假设。
--multi(集群)--multi 标志,或“集群”/“同时运行多个工作流”编译一个集群计划(2–4 个并发的变体工作流,相似和/或多样),在后台启动它们,并监督:轮询 fleet status,回答关口,引导,终止,分支,然后综合。见 集群模式。
prompt-only“只给提示”/“只给调用”/“不要运行”发出一个完整的 /codex-workflows 调用/规范(下面的 A–L 结构)并停止 — 不要创作或运行。
write-only“编写但不运行”/“只创作”创作工作流脚本,打印其路径,在运行前停止。
run-existing给出了脚本路径或已保存的工作流名称跳过编译;通过 runner 运行该脚本/名称。
quick“快速”/“小”/“便宜”偏向 quick_harness(2–5 个智能体)。
deep“深入”/“彻底”/“详尽”允许更大/deep_harness;证明大小合理。
no-write“不要写文件”/“只告诉我”仅返回最终 JSON/Markdown;无报告/源文件;--sandbox read-only。

两条优先规则:如果用户给出脚本路径或已保存名称,运行它 (不要重新编译)。如果用户给出详细规范,按书面方式执行但仍 应用下面的安全性和运行默认值。否则就是粗略意图 → 编译。

在 prompt-only 模式下,您发出的调用遵循技能内部构建的相同 A–L 结构:A 名称 · B 目的 · C 任务契约 · D 输入/上下文重建 · E 阶段 · F 角色 · G 反包装器 标准 · H 输出 · I 运行设置 · J 安全/认知 · K 最终响应格式 · L 产品化。然后停止 — 不要运行。

循环

在默认粗略意图模式下,静默 执行步骤 1–2,并在创作前陈述您的假设。下面的机制 — 握手、运行命令、内联地图 — 不变;步骤 2 和 4 是粗略意图被编译的地方。

  1. 预检 — 每会话一次,或每当运行无法连接时,确认 Codex 可访问且已认证:
node ~/.claude/skills/codex-workflows/runner/test/handshake.js

它打印 state: ready 和可用的模型。如果失败,告诉用户 运行 codex login(runner 需要在 PATH 上有一个已登录的 codex CLI)。 从该列表中,注意最新的前沿模型 — 最新的旗舰 通用模型(不是 -mini/-spark 变体;model/list 将其标记为 isDefault 并且其描述称其为最强的)。GPT-5.6 Codex 系列是 Sol(旗舰)、Terra(平衡)和 Luna(高效);目前 前沿是 gpt-5.6-sol。运行中的每个智能体都使用它(见 模型)。

  1. 编译 粗略意图为工作流(见 将粗略意图编译为工作流):对工作进行分类 → 选择规模 → 选择原型 → 选择模式并命名它防止的故障模式 → 构建任务契约 → 组合阶段 → 分配角色 → 应用标准。在创作前向用户陈述得出的假设。

  2. 创作 一个来自该编译的工作流脚本(见 创作)。将其写入 用户的项目中,以便他们可以读取和重新运行 — ./<name>.workflow.js,或 用于可重用工作集的 workflows/<name>.workflow.js / examples/harness-zoo/<name>/。脚本是纯 JavaScript,仅使用注入的全局变量(无导入)。

  3. 选择运行设置(见 运行默认值):--frontier,所选规模对应的 effort 标志(标准/深度工作集用 --auto-effort,快速工作集用 --effort medium),只读沙箱除非运行必须写入,以及有边界的 --budget。对于昂贵或复杂的工作流,先 --plan — 一个无 token 的试运行,计算每个阶段/effort 的智能体数量并估算 --budget。

  4. 运行 — 始终传递 --frontier,以及所选规模对应的 effort 标志:标准/深度工作集用 --auto-effort(它将每个智能体的 effort 调整为其层的并行宽度,因此孤立的综合/判断关口思考最努力),或快速工作集用 --effort medium(见 Effort)。--frontier 将每个智能体固定到最新的前沿模型(见 模型):

node ~/.claude/skills/codex-workflows/runner/bin/run-workflow.js <script.js> --frontier --auto-effort [其他标志]
#   quick_harness:  … <script.js> --frontier --effort medium [其他标志]

进度流式传输到 stderr;工作流的返回值作为 JSON 打印到 stdout。捕获 stdout 以获取结果(大时用 … 1>/tmp/result.json)。 要实时观看运行,添加 --tui(新终端窗口中的实时 ASCII 地图)和/或 --gui(浏览器中的实时 HTML 查看器)— 见 运行 → 实时监控。

  1. 展示 结果给用户(见 输出行为)— 总结它, 提及脚本路径,并在此对话中内联渲染运行的 ASCII 地图,以便他们原生地看到执行图(无需打开窗口):
node ~/.claude/skills/codex-workflows/runner/bin/map-run.js --journal <journal> --no-color

(<journal> 是运行记录为 ✎ journal: … 的路径,默认为 .workflow-journal/<name>.jsonl。) 将该输出粘贴到您的回复中,放在 ```text 块内 — 它是编排器 → 阶段层 → 智能体网格 → 结果 DAG,附带每个智能体的模型/effort/tokens/时间和每个智能体的一行结果片段。始终使用 --no-color 内联(原始 ANSI 会在聊天中渲染为垃圾)。对于实时的、会话内的监控,使用 run_in_background 运行工作流,并在其进行中重新渲染此快照几次(运行中的智能体显示为 ⠋ … running…);为了平滑的实时窗口,请添加 --tui/--gui(见 运行 → 实时监控)。

运行结束时还会打印一行成本/可靠性摘要。要获得更详细的分解 — 按阶段的 tokens、最昂贵/最慢的智能体以及任何红旗(大量 null、未分阶段的大量扇出、默认 effort 成本)— 在日志上运行 summarize-run 并将要点折叠到您的回复中(见 总结运行)。

在使用此技能时,不要调用原生 Workflow 工具。 通过上述 CLI 创作脚本并运行它正是将工作路由到 Codex 的方式;调用原生工具将改为生成 Claude 子智能体。

集群模式 (--multi):启动、监督、引导

当用户传递 --multi(或要求集群 / 同时运行多个工作流)时, 您是 N 个并发运行的操作员 — 不是发射后不管的启动器。您编译一个集群计划,在后台启动每个变体, 然后运行监督循环:轮询状态、回答关口、引导偏离的 worker、 终止死路、分支有希望的线索,并在最后综合。人类设置一次策略 (目标、总预算、风险承受度);您 做出运行中途的判断, 这些判断是变体无法自行做出的。

1 · 编译集群计划

将意图分解为 2–4 个变体 并在启动前陈述计划(变体、每个变体押注什么、每次运行的预算)。两个轴,自由混合:

  • 相似 — 相同工作集,不同切片:通过 --args 将大输入分割到运行中,或者从不同的起始假设/种子攻击同一问题。一个脚本 + 每次运行 --args + --run-id(这样日志不会冲突),或 N 个脚本副本。
  • 多样 — 不同工作集形状押注于任务的不同理论:例如 loop_until_dry 漏洞狩猎 vs adversarial_verification 扫荡 vs sessionful_controller_loop 调查,都针对同一目标。每个变体一个脚本。

将用户的总体预算分配给变体(状态显示每次运行相对于其上限的消耗)。使用现有的 GPT-5.5 测量值合理调整读取密集型扇出的大小: 工作为读取仓库/语料库的智能体花费约 400–600k tokens,无论其 effort 层级如何 — 输入占主导地位,因此 --effort low 不会使扫荡变得便宜,而 --plan 的按 effort 估计低估了它(测量值:四次“低”扫荡 = 2.1M,每次 525k,而计划估计为每个智能体 150k)。在 xhigh 下 — --auto-effort 为每个 sessionful worker 的轮次(宽度 1)提供 — 一个读取轮次运行约 ~1–1.5M(测量值:一个巡视 worker 的第一轮 + 一次引导触发了 2.5M 上限)。预算 ≈ 读者 × 500k + xhigh 读取轮次 × 1.2M + 非读者 × 计划估计,留有空间。触发的上限是可恢复的(--resume 免费重放前缀),但成本为一次监督往返。反过度构建规则也适用于集群:2 个良好区分的变体优于 4 个冗余的变体 — 每个变体必须押注于其他变体没有的东西。

2 · 为监督而创作

每个变体都获得监督者检查点 — 在外部判断可以重定向运行的节点处的 human() 关口:

const directive = await human(
  `第 ${round} 轮发现:${summary}。下一轮指示?`,
  { id: `round${round}`, choices: ["continue", "stop"], default: "continue", timeoutMs: 240_000 })
if (directive === "stop") break
if (directive !== "continue") await worker.steer(directive)   // 自由文本 = 指示

这是引导通道:自由文本答案就是指示,脚本应用它(session.steer(...),重新瞄准下一轮,缩小范围)。将关口放在轮次之间、昂贵阶段之前以及不确定性之上。默认值必须安全 — 未回答的关口超时到其默认值,运行以放手方式降级,永远不会挂起。(这利用日志化的 human() 通道,因此 --resume 重放答案而不是重新询问。)

3 · 启动 — 每个集群一个目录,每次运行在后台

变体共享一个目录(这就是 fleet status <dir> 监督的内容)。使用 run_in_background 启动每个变体,始终使用 --interactive(它无头启用答案通道):

node ~/.claude/skills/codex-workflows/runner/bin/run-workflow.js hunt-orm.workflow.js \
  --frontier --auto-effort --interactive --budget 1500000 1>hunt-orm.result.json
# 相同脚本,不同切片 → 使用 --run-id 隔离:
node …/run-workflow.js hunt.workflow.js --args '{"slice":"auth"}' --run-id auth --interactive …

4 · 监督 — 循环

在其他工作之间轮询集群摘要(并在关口可能挂起时及时…

—

[为翻译而截断]

相关技能