Générer une commande CLI Cobra

Scaffolde une nouvelle commande CLI Cobra suivant les schémas du projet. Lit une commande existante pour s'aligner sur le style, puis enregistre, gère les erreurs et compile.

Spar Skills Guide Bot
DeveloppementIntermédiaire
0008/08/2026
Claude Code
#cobra#cli#scaffolding#go#command

Recommandé pour


name: new-command description: Scaffold a new Cobra CLI command following the project's patterns. disable-model-invocation: true argument-hint: "<verb> [noun] — what the command does" allowed-tools: mcp__flow__execute, mcp__flow__run_command, mcp__flow__list_executables, Bash(flow build:), Bash(go build:), Read

Scaffold a new Cobra CLI command for: $ARGUMENTS

Before writing any code, read a similar existing command to match the exact style:

  • Simple verb commands: cmd/internal/exec.go
  • Noun/verb subcommands: cmd/internal/workspace.go or cmd/internal/vault.go — each groups its subcommands in a single file rather than a directory

Then follow these patterns:

  1. File location: cmd/internal/<noun>.go. Only root.go lives directly in cmd/; every command handler is under cmd/internal/. Shared helpers go in cmd/internal/helpers.go, flags in cmd/internal/flags/, output shaping in cmd/internal/response/.
  2. Command registration: register on the parent command, or add to rootCmd in cmd/root.go
  3. Error handling:
    • Runtime errors → errhandler.HandleFatal(ctx, cmd, err)
    • Flag/arg misuse → errhandler.HandleUsage(ctx, cmd, "message", args...)
    • Never use log.Fatal, os.Exit, or logger.Log().FatalErr() in cmd/
  4. Context: resolve workspace context via pkg/context before delegating to internal/services
  5. Output: respect --output flag (text/json/yaml) for structured responses

After scaffolding, verify it builds — prefer mcp__flow__execute with ref build binary and argument ./bin/flow over a raw shell call.

Skills similaires