Skip to content
Development
Skill

/go-skills

Shared Go best practices for LlamaFarm CLI. Covers idiomatic patterns, error handling, and testing.

From plugin
llamafarm
83619 skills1 MCP

Claude Code

$ npx -y skills add llama-farm/llamafarm --skill go-skills --agent claude-code

SKILL.md

go-skills.SKILL.md
name: go-skills
description: Shared Go best practices for LlamaFarm CLI. Covers idiomatic patterns, error handling, and testing.
allowed-tools: Read, Grep, Glob
user-invocable: false

Go Skills for LlamaFarm CLI

Shared Go best practices for LlamaFarm CLI development. These guidelines ensure idiomatic, maintainable, and secure Go code.

Tech Stack

  • Go 1.24+
  • Cobra (CLI framework)
  • Bubbletea (TUI framework)
  • Lipgloss (terminal styling)

Directory Structure

cli/
  cmd/           # Command implementations
    config/      # Configuration types and loading
    orchestrator/ # Service management
    utils/       # Shared utilities
    version/     # Version and upgrade handling
  internal/      # Internal packages
    tui/         # TUI components
    buildinfo/   # Build information

Quick Reference

Error Handling

  • Always wrap errors with context: `fmt.Errorf("operation failed: %w", err)`
  • Use sentinel errors for expected conditions: `var ErrNotFound = errors.New("not found")`
  • Check errors immediately after function calls

Concurrency

  • Use `sync.Mutex` for shared state protection
  • Use `sync.RWMutex` when reads dominate writes
  • Use channels for goroutine communication
  • Always use `defer` for mutex unlocks

Testing

  • Use table-driven tests for comprehensive coverage
  • Use interfaces for mockability
  • Test file names: `*_test.go` in same package

Security

  • Never log credentials or tokens
  • Redact sensitive headers in debug logs
  • Validate all external input
  • Use `context.Context` for cancellation

Checklist Files

| File | Description | |------|-------------| | [patterns.md](patterns.md) | Idiomatic Go patterns | | [concurrency.md](concurrency.md) | Goroutines, channels, sync | | [error-handling.md](error-handling.md) | Error wrapping, sentinels | | [testing.md](testing.md) | Table-driven tests, mocks | | [security.md](security.md) | Input validation, secure coding |

Go Proverbs to Remember

1. "Don't communicate by sharing memory; share memory by communicating" 2. "Errors are values" 3. "A little copying is better than a little dependency" 4. "Clear is better than clever" 5. "Design the architecture, name the components, document the details"

Common Patterns in This Codebase

HTTP Client Interface

type HTTPClient interface {
    Do(req *http.Request) (*http.Response, error)
}

Process Management with Mutex

type ProcessManager struct {
    mu        sync.RWMutex
    processes map[string]*ProcessInfo
}

Cobra Command Pattern

var myCmd = &cobra.Command{
    Use:   "mycommand",
    Short: "Brief description",
    RunE: func(cmd *cobra.Command, args []string) error {
        // Implementation
        return nil
    },
}

Bubbletea Model Pattern

type myModel struct {
    // State fields
}

func (m myModel) Init() tea.Cmd { return nil }
func (m myModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) { /* ... */ }
func (m myModel) View() string { return "" }
Read more
@llama-farm
Ships withllamafarm

Enterprise AI capabilities on your own hardware. No cloud required. LlamaFarm is an open-source AI platform that runs entirely on your hardware.

83619 skills1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
836
Star history of llama-farm/llamafarm on GitHub, a chart by star-history.com

Other skills on llamafarm.

cli-skills

cli-skills

CLI best practices for LlamaFarm. Covers Cobra, Bubbletea, Lipgloss patterns for Go CLI development.

code-review

code-review

Comprehensive code review for diffs. Analyzes changed code for security vulnerabilities, anti-patterns, and quality issues.…

commit-push-pr

commit-push-pr

Commit changes, push to GitHub, and open a PR. Includes quality checks (security, patterns, simplification). Use --quick to skip…

common-skills

common-skills

Best practices for the Common utilities package in LlamaFarm. Covers HuggingFace Hub integration, GGUF model management, and…

config-skills

config-skills

Configuration module patterns for LlamaFarm. Covers Pydantic v2 models, JSONSchema generation, YAML processing, and validation.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills12d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc13d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about go-skills.

Which coding agents can use go-skills?
go-skills installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.