Skip to content

feat(cli): implement self-service CLI with onboard/doctor/security commands #24

@hrygo

Description

@hrygo

Summary

Implement the CLI self-service capabilities defined in docs/specs/CLI-Self-Service-Spec.md: interactive config wizard (onboard), diagnostic checks (doctor), and security audit (security).

Spec Reference

  • Spec: docs/specs/CLI-Self-Service-Spec.md
  • Status: Draft, 0% implemented
  • Priority: Low (developer experience)

Scope

Command Tree

hotplex
├── serve              # 启动 gateway 服务(原 main 逻辑,向后兼容)
├── onboard            # 交互式配置向导
├── doctor             # 诊断检查(--fix 自动修复)
├── security           # 安全审计(--fix 自动修复)
└── version            # 版本信息

Key Components

组件 文件 说明
Cobra CLI 入口 cmd/worker/main.go 重构为子命令模式
Checker 接口 internal/cli/checker.go Checker 接口 + Diagnostic 类型 + Registry
环境检查 internal/cli/checkers/environment.go Go 版本、OS、PATH 工具
配置检查 internal/cli/checkers/config.go YAML 语法、必填字段、值合法性
依赖检查 internal/cli/checkers/dependencies.go Claude CLI、SQLite、网络可达性
安全检查 internal/cli/checkers/security.go JWT 强度、文件权限、敏感信息
运行时检查 internal/cli/checkers/runtime.go 端口占用、孤儿进程、磁盘空间
消息检查 internal/cli/checkers/messaging.go Slack/Feishu 凭据格式
配置向导 internal/cli/onboard/wizard.go 交互式向导流程
配置模板 internal/cli/onboard/templates.go 配置模板生成

Design Patterns

  • Checker 接口模式: 每个 check 实现 Check(ctx) []Diagnostic,通过 init() 自注册
  • 向后兼容: 无子命令时默认执行 serve
  • 结构化输出: 支持 --json--verbose 标志

Acceptance Criteria

  • hotplex serve 等价于当前 hotplex-worker 启动
  • hotplex doctor 输出所有检查项状态
  • hotplex doctor --fix 自动修复可修复的问题
  • hotplex onboard 生成的配置文件可被 serve 直接使用
  • hotplex security 审计 JWT、文件权限、敏感信息
  • 无子命令时默认执行 serve(向后兼容)
  • 所有 checker 通过 init() 自注册,可独立扩展

Dependencies

  • Cobra CLI framework (github.com/spf13/cobra)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementFeature: new capabilities or improvements

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions