CLI 设计
CLI Design & Developer Experience
Commander.js 实现子命令体系,支持交互式 init 向导、auto 模式、batch-spawn 批量操作
子问题
1.子命令注册与参数解析
2.交互式向导与自动模式
3.环境检测与智能默认值
4.输出格式化与脚本友好
5.消息投递忙检测与投递验证
6.PR review 状态轮询与自动修复触发
7.会话生命周期管理(spawn/kill/cleanup/restore)
8.项目类型检测与 agent rules 模板生成
各项目的解法1 solutions
Signals
横向对比
| 维度 | AgentOrchestrator |
|---|---|
| 命令框架 | Commander.js register 函数模式,11 子命令分文件注册 |
| 环境检测 | 三层检测:系统工具 + 项目类型 + 默认分支三级降级 |
| 交互模式 | readline 向导 + --auto 零交互 + --auto --smart AI 增强 |
| 输出格式化 | chalk + ora + ANSI 感知 padCol 列对齐 + --json 双模式 |
| 批量操作 | batch-spawn 双层去重:已有 session Map + 本批次 Set |
| 消息投递 | tmux send-keys + load-buffer 长消息 + 忙检测 + 3 次投递验证 |
| 会话生命周期 | spawn/kill/cleanup/restore 四阶段 + PR merged 自动清理 |
最佳实践
1.ao init --auto 零交互生成配置
2.batch-spawn 内置去重检测
3.execSilent 返回 null 替代 try-catch 简化探测性调用
4.ANSI 感知 padCol 确保着色后列对齐不错位
5.send 命令长消息走 tmux load-buffer 避免转义问题
6.session cleanup 排除 dead 状态防止误阻塞 respawn