install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/go-cli" ~/.claude/skills/majiayu000-claude-skill-registry-go-cli && rm -rf "$T"
manifest:
skills/data/go-cli/SKILL.mdsource content
Go CLI Skill
Supplementary CLI patterns and utilities.
Overview
Additional CLI patterns for argument parsing, progress indicators, and user interaction.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| feature | string | yes | - | Feature: "progress", "prompt", "color" |
Core Topics
Argument Validation
var cmd = &cobra.Command{ Use: "process [file]", Args: cobra.ExactArgs(1), RunE: func(cmd *cobra.Command, args []string) error { file := args[0] if _, err := os.Stat(file); os.IsNotExist(err) { return fmt.Errorf("file not found: %s", file) } return process(file) }, }
Progress Bar
func DownloadWithProgress(url, dest string) error { resp, err := http.Get(url) if err != nil { return err } defer resp.Body.Close() file, err := os.Create(dest) if err != nil { return err } defer file.Close() bar := progressbar.DefaultBytes(resp.ContentLength, "downloading") _, err = io.Copy(io.MultiWriter(file, bar), resp.Body) return err }
Interactive Prompt
func ConfirmAction(message string) bool { reader := bufio.NewReader(os.Stdin) fmt.Printf("%s [y/N]: ", message) input, _ := reader.ReadString('\n') input = strings.TrimSpace(strings.ToLower(input)) return input == "y" || input == "yes" }
Colored Output
import "github.com/fatih/color" var ( successColor = color.New(color.FgGreen).SprintFunc() errorColor = color.New(color.FgRed).SprintFunc() warnColor = color.New(color.FgYellow).SprintFunc() ) func PrintSuccess(msg string) { fmt.Println(successColor("✓"), msg) } func PrintError(msg string) { fmt.Fprintln(os.Stderr, errorColor("✗"), msg) }
Troubleshooting
Failure Modes
| Symptom | Cause | Fix |
|---|---|---|
| Colors not showing | No TTY | Check isatty |
| Input hangs | Stdin closed | Handle EOF |
Usage
Skill("go-cli")