这是什么
/ultracode 是一个纯知识型 prompt skill:调用时把一段固定的
「Workflow Orchestration Playbook」文本注入当前上下文。它的实现是
src/skills/bundled/ultracode.ts 里的 registerUltracodeSkill(),
通过 registerBundledSkill 注册为一个 userInvocable 的 prompt 命令。
它注入的手册覆盖这些内容:
- 何时该用 Workflow 工具(显式 opt-in 的五种情形)、何时不该用;
- 编排原语速查:
agent/parallel/pipeline/phase/log/workflow; - 质量模式库:adversarial-verify、judge-panel、loop-until-dry、multi-modal-sweep、 completeness-critic;
- 脚本执行约束:纯 JavaScript、禁
import、禁 TypeScript 语法、 禁Date.now()/Math.random(); - 恢复与预算:
resumeFromRunId/ journal 重放 /budget消耗; - 并发与模型分层:默认并发 3、上限 16、按任务选择 haiku / sonnet / opus。
它不改变主循环、不切换任何行为开关、零运行时副作用。真正执行脚本的是 Workflow 工具
(见 Workflows),查看实时进度的是
/workflows 面板。
| 角色 | 是什么 | 是否执行 agent |
|---|---|---|
/ultracode |
知识 skill:注入编排手册(prompt 文本) | 否,只注入上下文 |
Workflow 工具 |
编排引擎入口:接收脚本并在后台执行子 agent | 是 |
/workflows |
监控面板:实时查看 run / phase / agent 进度与历史 | 否,只读展示 |
手册里「ultracode 已开启」这一信号来自 harness(claude.ai / 客户端)注入的
system-reminder,不是本仓库的任何状态。仓库里没有针对 ultracode 的 feature flag、
环境变量或 effort level;/effort 也不接受 ultracode 作为档位。
真正被编译进产物的开关是 Workflow 工具背后的
WORKFLOW_SCRIPTS feature。
前置条件
| 项 | 要求 |
|---|---|
| skill 注册 |
CLI 启动时由 src/skills/bundled/index.ts 调用
registerUltracodeSkill() 无条件注册,不 gate USER_TYPE,
无额外依赖。
|
| Workflow 工具可用 |
编译期 feature WORKFLOW_SCRIPTS 开启时,src/tools.ts 才注册
Workflow 工具;否则手册可注入但没有可执行载体。
|
| 脚本运行环境 |
脚本在 CLI 进程内以 new AsyncFunction 的函数体执行,无文件系统 / Node.js API
访问。
|
安装启用
-
确认 skill 已随 CLI 注册
编译进 CLI 后无需安装,会话里直接输入
/ultracode即可。它是 bundled skill, 所有用户可用。 -
确保 Workflow 工具已开启
Build 产物默认包含
WORKFLOW_SCRIPTS。dev 模式可用环境变量显式开启, 以便实际调用 Workflow 工具:# dev 模式手动开启工作流脚本特性 FEATURE_WORKFLOW_SCRIPTS=1 bun run dev -
在会话中调用手册
输入
/ultracode注入手册;可带一段描述,参数会追加到手册末尾的## User input段落。/ultracode 审计 auth 模块的正确性与并发安全 # → 手册 + 你的输入一同进入上下文,模型据此决定是否调用 Workflow 工具 -
(可选)用
/workflows观察执行模型发起 Workflow 后,用
/workflows面板实时查看 phase 与 agent 进度。
手册内容与约束
手册为模型规定了下面的行为边界,调用即生效,无需额外配置:
| 主题 | 手册规定 |
|---|---|
| 显式 opt-in |
仅当出现下列之一才可调用 Workflow:用户消息里含关键字 ultracode;
会话已开启 ultracode(system-reminder 确认);用户用自己的话明确要求跑 workflow /
多 agent 编排;用户调用了指示调用 Workflow 的 skill 或斜杠命令;用户要求运行某个具体
命名 workflow。其余任务即使「适合并行」也默认不调用。
|
| 脚本形态 |
纯 JavaScript,不是 TypeScript;必须以
export const meta = {...} 纯字面量开头(必填 name /
description,可选 whenToUse / phases),
顶层 return 返回结果。
|
| 确定性约束 |
禁 Date.now() / Math.random() / 无参
new Date()(会破坏 resume),需要时间戳或随机种子经 args 传入。
|
| 并发 |
默认每 run 并发 3;改 maxConcurrency(1–16)前须先用
AskUserQuestion 询问用户(除非用户本会话已给出数字)。
|
| 硬限 |
单次 parallel / pipeline ≤ 4096 项;单 workflow 生命周期总
agent ≤ 1000。
|
| 默认原语 |
多阶段默认用 pipeline()(阶段间无屏障);只有阶段 N 确实需要上一阶段
全部结果时才用 parallel()(屏障)。
|
| 模型分层 |
默认省略 opts.model,让 agent 继承会话模型;仅当任务明确适配不同档位
(haiku 做分诊、opus 做对抗式验证)才覆盖。
|
常用命令与参数
| 命令 / 输入 | 作用 |
|---|---|
/ultracode [args] |
注入编排手册;传入的 args 追加为手册末尾的
## User input 段。
|
/workflows |
打开 Workflow 监控面板(单独页面见 Workflows)。 |
/<name> |
.claude/workflows/<name> 脚本自动生成的命令,等价于要求模型以
name="<name>" 调用 Workflow 工具。
|
手册并不直接接收参数,它引导模型生成如下 Workflow 工具输入(字段定义以引擎包 schema 为准):
| Workflow 输入字段 | 说明 |
|---|---|
script |
内联脚本字符串 |
name |
命名 workflow,解析到 .claude/workflows/<name>.ts|js|mjs |
scriptPath |
已存在脚本的路径(须在 cwd 内) |
args |
透传给脚本的 args,须为真实 JSON 值(对象 / 数组 / 字符串) |
resumeFromRunId |
从既有 run 重放 journal |
description / title |
调用描述(3–5 词)/ 进度视图标题 |
maxConcurrency |
每 run 并发上限(1–16),缺省 3 |
实战示例
手册建议:先用内联脚本,调用后 Workflow 会自动把脚本落盘并把路径写回工具结果,
之后用 Write/Edit 改这个文件、以 scriptPath 重新调用即可迭代。
# 1. 注入手册,带上本次任务范围
/ultracode 审查本次改动,逐条对抗式验证
# 2. 模型据手册发起 Workflow(示例脚本见下)
# 工具结果返回 run_id 与脚本落盘路径
# 3. 打开面板看实时进度
/workflows
# 4. 改脚本后用 scriptPath + resumeFromRunId 续跑
一段符合手册约束、可真实运行的命名 workflow 脚本骨架:
export const meta = {
name: 'review-changes',
description: '按维度审查改动,并对抗式验证每条发现',
phases: [{ title: 'Review' }, { title: 'Verify' }],
}
const FINDINGS_SCHEMA = {
type: 'object',
properties: {
findings: {
type: 'array',
items: {
type: 'object',
properties: {
title: { type: 'string' },
file: { type: 'string' },
},
required: ['title', 'file'],
},
},
},
required: ['findings'],
}
const VERDICT_SCHEMA = {
type: 'object',
properties: { isReal: { type: 'boolean' } },
required: ['isReal'],
}
const DIMENSIONS = [
{ key: 'bugs', prompt: '通读 git diff,找出正确性 bug' },
{ key: 'perf', prompt: '通读 git diff,找出性能问题' },
]
// pipeline:每个维度独立走 Review -> Verify,阶段间无屏障
const results = await pipeline(
DIMENSIONS,
d => agent(d.prompt, {
label: `review:${d.key}`,
phase: 'Review',
schema: FINDINGS_SCHEMA,
}),
review => parallel(
(review && review.findings ? review.findings : []).map(f => () =>
agent(`对抗式验证这条发现的真伪:${f.title}`, {
label: `verify:${f.file}`,
phase: 'Verify',
schema: VERDICT_SCHEMA,
}).then(v => ({ ...f, verdict: v }))
)
)
)
const confirmed = results
.flat()
.filter(Boolean)
.filter(f => f.verdict && f.verdict.isReal)
log(`确认 ${confirmed.length} 条发现`)
return { confirmed }
这里每个维度的验证只依赖它自己的发现,无需等其它维度跑完,所以用
pipeline 让「bugs 的验证」与「perf 的审查」并行推进;
parallel 会引入屏障,把快的那条链空等慢的。
常见问题排错
/ultracode 只注入手册,不派发 agent、不启动 run。是否真的调用 Workflow
由模型按手册的 opt-in 规则决定;想「跳过询问」可以直接说「use a workflow」或运行某个
命名 workflow。
脚本是 new AsyncFunction 的函数体,不是 ESM 模块,且引擎不转译 TS。
出现以下写法会直接解析失败:import 语句、类型注解 / interface /
enum / as / 泛型、export default、
除唯一一处 export const meta 之外的任何 export。
推荐用 .js / .mjs。
export const meta = {...} 在加载期求值,必须是纯字面量:不能用变量、
函数调用、展开或模板插值,否则抛 ScriptError。若脚本声明了
meta.phases,请让 phase() 调用使用完全一致的标题,
面板才能把预声明的 pending 阶段正确合并。
沙箱用抛异常的 shim 屏蔽了 Date.now()、无参 new Date() 与
Math.random(),以保证 journal 可重放。需要时间戳或随机性时,经
args 传入,或按索引变化 agent 的 prompt / label。
手册与 Workflow 工具描述都规定:除用户本会话已给出数字外,把
maxConcurrency 改成 3 以外的值必须先通过 AskUserQuestion 确认
(建议 3 / 6 / 9)。这是为了避免 fan-out 时被静默放大并发。
内联调用会自动把脚本落盘,工具结果里给出路径。之后用 Write/Edit 修改该文件,
以 {scriptPath} 重新调用;配合 resumeFromRunId,未改动前缀中的
agent() 会秒回缓存结果,只重跑发散点之后的部分。