go-skills

Go Skills for LlamaFarm CLI

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "go-skills" with this command: npx skills add llama-farm/llamafarm/llama-farm-llamafarm-go-skills

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 Idiomatic Go patterns

concurrency.md Goroutines, channels, sync

error-handling.md Error wrapping, sentinels

testing.md Table-driven tests, mocks

security.md Input validation, secure coding

Go Proverbs to Remember

  • "Don't communicate by sharing memory; share memory by communicating"

  • "Errors are values"

  • "A little copying is better than a little dependency"

  • "Clear is better than clever"

  • "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 "" }

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

code-review

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

typescript-skills

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

python-skills

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

cli-skills

No summary provided by upstream source.

Repository SourceNeeds Review