>
通过 gsd headless 以子进程方式运行 GSD 命令。无需 SDK,无需 RPC——仅需 shell 执行、退出码和标准输出的 JSON。
bash
bash
gsd headless [flags] [command] [args...]
默认命令为 auto(运行所有排队的单元)。
| 标志 | 描述 |
|---|---|
| --output-format <fmt> | 输出格式:text(默认)、json(退出时输出结构化结果)、stream-json(JSONL 事件) |
| --json |
| 码 | 含义 | 常量 |
|---|---|---|
| 0 | 成功——单元/里程碑完成 | EXITSUCCESS |
| 1 |
这些代码是稳定的,适用于 CI 流水线和编排器逻辑。
| 格式 | 行为 |
|---|---|
| text | 标准错误输出上的人类可读进度。默认。 |
| json |
当需要结构化结果进行决策时,使用 --output-format json。完整字段参考请参见 references/json-result.md。
bash
gsd headless --output-format json new-milestone --context spec.md --auto
读取规范文件,引导 .gsd/,创建里程碑,然后链接到自动模式执行所有阶段(讨论 → 研究 → 计划 → 执行 → 总结 → 完成)。退出时在标准输出上发出 JSON 结果。
new-milestone 的额外标志:
bash
bash
gsd headless --output-format json auto
循环处理所有待处理的单元,直到里程碑完成或阻塞。
bash
gsd headless --output-format json next
精确执行一个单元(任务/切片/里程碑步骤),然后退出。这是需要在步骤之间进行控制的编排器的推荐模式。
bash
gsd headless query
返回包含完整项目快照的单个 JSON 对象——无 LLM 会话,即时(约 50 毫秒)。这是编排器检查状态的推荐方式。
json
{
state: {
phase: executing,
activeMilestone: { id: M001, title: ... },
activeSlice: { id: S01, title: ... },
progress: { completed: 3, total: 7 },
registry: [...]
},
next: { action: dispatch, unitType: execute-task, unitId: M001/S01/T01 },
cost: { workers: [{ milestoneId: M001, cost: 1.50 }], total: 1.50 }
}
bash
gsd headless dispatch research|plan|execute|complete|reassess|uat|replan
强制路由到特定阶段,绕过正常的状态机路由。
bash
gsd headless --resume
恢复之前的 headless 会话。会话 ID 可在之前 --output-format json 运行的 HeadlessJsonResult.sessionId 字段中获得。
使用 --output-format json 时,进程在退出时向标准输出发出单个 HeadlessJsonResult。解析它以进行决策:
bash
RESULT=$(gsd headless --output-format json next 2>/dev/null)
EXIT=$?
STATUS=$(echo $RESULT | jq -r .status)
COST=$(echo $RESULT | jq -r .cost.total)
PHASE=$(echo $RESULT | jq -r .phase)
NEXT=$(echo $RESULT | jq -r .nextAction)
SESSION_ID=$(echo $RESULT | jq -r .sessionId)
echo 状态:$STATUS,成本:\$${COST},阶段:$PHASE,下一步:$NEXT
完整字段参考请参见 references/json-result.md。
退出码 10 表示执行遇到了需要人工干预的阻塞:
bash
gsd headless --output-format json next 2>/dev/null
EXIT=$?
if [ $EXIT -eq 10 ]; then
# 检查阻塞
BLOCKER=$(gsd headless query | jq .state.phase)
echo 阻塞:$BLOCKER
# 选项 1:使用 --supervised 模式进行交互式处理
gsd headless --supervised auto
# 选项 2:预提供答案以解决阻塞
gsd headless --answers blocker-answers.json auto
# 选项 3:调整计划以绕过它
gsd headless steer 跳过阻塞的依赖,改用模拟
fi
bash
MAX_BUDGET=10.00
RESULT=$(gsd headless --output-format json next 2>/dev/null)
COST=$(echo $RESULT | jq -r .cost.total)
if (( $(echo $TOTALCOST > $MAXBUDGET | bc -l) )); then
echo 超出预算:\$$TOTALCOST > \$$MAXBUDGET
gsd headless stop
exit 1
fi
完全控制的推荐模式。一次运行一个单元,在步骤之间检查状态:
bash
while true; do
RESULT=$(gsd headless --output-format json next 2>/dev/null)
EXIT=$?
STATUS=$(echo $RESULT | jq -r .status)
COST=$(echo $RESULT | jq -r .cost.total)
echo 退出:$EXIT,状态:$STATUS,成本:\$$COST
# 处理终端状态
[ $EXIT -eq 0 ] || break
# 检查里程碑是否完成
PHASE=$(gsd headless query
该技能支持在以下平台通过对话安装:
帮我安装 SkillHub 和 gsd-orchestrator-1775997373 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 gsd-orchestrator-1775997373 技能
skillhub install gsd-orchestrator-1775997373
文件大小: 10.89 KB | 发布时间: 2026-4-13 10:31