用途:这是 LlamaFarm CLI 的框架专属开发规范,用于指导基于 Go 的命令行与终端界面开发,在共享 Go 技能之上扩展 Cobra、Bubbletea、Lipgloss 的实践模式。
技术栈:Go 1.24+、Cobra(CLI 框架)、Bubbletea(TUI 框架)、Lipgloss(终端样式)、Bubbles(TUI 组件)。
目录结构:cli/cmd 下含 config(配置类型与加载)、orchestrator(服务管理与进程控制)、utils(HTTP、输出、日志等共享工具)、version(版本与升级);cli/internal 下含 tui(可复用 TUI 组件)与 buildinfo(构建期信息)。
主要能力与要点:Cobra 命令建议用 RunE 而非 Run 以处理错误,在 init() 中注册标志,用持久标志共享选项,用 Args 字段校验参数。Bubbletea 需实现 Init()、Update()、View() 接口,用消息类型驱动状态变化,异步操作返回 tea.Cmd,Update() 中保持状态不可变。Lipgloss 样式定义为包级常量,用 lipgloss.NewStyle() 创建,动态处理终端宽度,通过样式变量支持配色主题。
配套清单:cobra.md(命令模式、标志、校验)、bubbletea.md(Model/Update/View 模式)、performance.md(CLI 专属优化)。共享 Go 技能涵盖概览、惯用模式、并发、错误处理、测试与安全。
使用方式:按上述模式编写命令与 TUI,用户可见消息统一走输出 API(OutputInfo、OutputSuccess、OutputError、OutputProgress、OutputWarning);操作前可用服务编排模式确保依赖服务运行。
适用场景:LlamaFarm CLI 的命令、TUI 组件与终端样式开发。
限制与准则:强调用户体验优先、优雅降级(处理缺失服务、网络错误与超时)、输出一致、跨平台(macOS、Linux、Windows)以及不同终端模拟器与尺寸的兼容性测试。具体安装命令与版本细节资料未提供。