[CLI] 优化交互体验:补齐全局简写习惯与重构适配器命令架构
目标问题
当前 NeoCode CLI 的命令树和参数在整体上表现出良好的一致性(如资源管理使用 ls/rm,服务管理使用 install/status),但在“高频用户肌肉记忆”和“单单词顶层命令架构”方面存在少量体验断层:
- 全局版本查询缺失:缺乏常用的
-v / --version 全局拦截,用户输入 neocode -v 会报 unknown flag,必须输入 neocode version。
- 短标识缺失:高频全局参数
--workdir 和模型参数 --model 缺乏符合直觉的单字母别名(-w, -m)。
- 顶层命令风格破坏:现有的
feishu-adapter 是唯一使用 kebab-case 的顶层命令,既破坏了顶层“单单词名词/动词”的对称美学,也不利于未来接入其他协作平台(如钉钉、企微)的扩展规划。
实现设计
本任务将在不影响现有核心业务链路的前提下,对 CLI 层进行体验调优与结构重构:
- 统一 Version 习惯:在
internal/cli/root.go 级别支持并拦截 -v / --version 标志,复用 version_command.go 的核心输出逻辑。
- 补齐高频参数短别名:通过 Cobra 的
*P 方法,为关键参数注册单字母别名。
- 适配器插件化重构(Breaking Change):引入统一的
adapter 命令组,将原飞书适配器降级为子命令,即由 neocode feishu-adapter 改为 neocode adapter feishu,为后续构建插件化生态奠定标准。
任务清单
测试验证
- 正常路径:
- 执行
neocode -v 和 neocode --version 能正确输出当前版本及升级提示,无报错。
- 执行
neocode web -w /tmp 能够被正确解析为工作目录。
- 执行
neocode use openai -m gpt-4 能够成功切换模型。
- 执行
neocode adapter feishu --help 能够正确拉起适配器的帮助信息。
- 异常分支:
- 旧命令
neocode feishu-adapter 应优雅地报错或提示命令已变更。
风险与回滚
- 风险:低。主要为 CLI 解析层的路由更改。唯一的破坏性变更(Breaking Change)是
feishu-adapter 的更名,若用户有存量的 Shell/Systemd 启动脚本,升级后会执行失败。
- 回滚:发现不可预期的启动崩溃或 TUI 初始化阻塞时,直接 Revert 对应 PR 的 CLI 修改即可,不涉及持久化状态数据污染。
[CLI] 优化交互体验:补齐全局简写习惯与重构适配器命令架构
目标问题
当前 NeoCode CLI 的命令树和参数在整体上表现出良好的一致性(如资源管理使用
ls/rm,服务管理使用install/status),但在“高频用户肌肉记忆”和“单单词顶层命令架构”方面存在少量体验断层:-v/--version全局拦截,用户输入neocode -v会报 unknown flag,必须输入neocode version。--workdir和模型参数--model缺乏符合直觉的单字母别名(-w,-m)。feishu-adapter是唯一使用 kebab-case 的顶层命令,既破坏了顶层“单单词名词/动词”的对称美学,也不利于未来接入其他协作平台(如钉钉、企微)的扩展规划。实现设计
本任务将在不影响现有核心业务链路的前提下,对 CLI 层进行体验调优与结构重构:
internal/cli/root.go级别支持并拦截-v/--version标志,复用version_command.go的核心输出逻辑。*P方法,为关键参数注册单字母别名。adapter命令组,将原飞书适配器降级为子命令,即由neocode feishu-adapter改为neocode adapter feishu,为后续构建插件化生态奠定标准。任务清单
adapter命令组internal/cli创建adapter_command.go,定义并注册adapter顶层命令。feishu_adapter_command.go挂载为adapter的子命令。-v/--version支持internal/cli/root.go,支持原生的--version标志并桥接版本探测逻辑,保证退出状态码与直接执行neocode version一致。root.go,将--workdir注册改为PersistentFlags().StringP("workdir", "w", ...)use_command.go,将--model注册改为Flags().StringVarP(&opts.Model, "model", "m", ...)README.md或其他包含 CLI 使用说明的文档(将feishu-adapter替换为adapter feishu)。internal/cli整体测试覆盖率满足强制 100% 目标。测试验证
neocode -v和neocode --version能正确输出当前版本及升级提示,无报错。neocode web -w /tmp能够被正确解析为工作目录。neocode use openai -m gpt-4能够成功切换模型。neocode adapter feishu --help能够正确拉起适配器的帮助信息。neocode feishu-adapter应优雅地报错或提示命令已变更。风险与回滚
feishu-adapter的更名,若用户有存量的 Shell/Systemd 启动脚本,升级后会执行失败。