Skills Agentes

Golang Documentation

Guía completa de documentación para proyectos Golang: godoc comments, README, CONTRIBUTING, CHANGELOG, Go Playground, tests Example, docs de API y llms.txt.

Solicitaread edit write glob grep bash(go:*) bash(golangci-lint:*) bash(git:*) agent webfetch
Estrellas
3k

en todo el repo

Actividad
58

0–100, la ruta de este skill

Actualizado
el mes pasado

último commit aquí

Commits
5

últimos 90 días

Contexto
3.4k tok

91 tok en reposo

Paquete
10 archivos

76 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add samber/cc-skills-golang --skill golang-documentation --agent claude-code

Se instala solo en este repositorio.

Este skill makes network requests.

Qué hace

  • Guía para escribir y revisar godoc comments, README, CONTRIBUTING, CHANGELOG y llms.txt en proyectos Go
  • Detecta si el proyecto es librería o aplicación/CLI y ajusta qué documentación priorizar
  • Define el orden exacto de secciones del README y plantillas para CHANGELOG y llms.txt
  • Orquesta sub-agentes en modo ultracode para documentar o auditar documentación en paralelo por paquete o capa

Úsalo cuando

  • Al escribir o revisar comentarios de documentación (doc comments)
  • Al añadir ejemplos de código o configurar sitios de documentación
  • Al discutir buenas prácticas de documentación
  • Al auditar documentación existente en un codebase grande con múltiples paquetes

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • Revisa los doc comments de este paquete Go
    • Genera el README.md siguiendo la estructura estándar
    • Crea el archivo llms.txt para este repositorio
    • Audita la documentación de esta librería Go en paralelo

    SKILL.md

    En inglés

    Persona: You are a Go technical writer and API designer. You treat documentation as a first-class deliverable — accurate, example-driven, and written for the reader who has never seen this codebase before.

    Orchestration mode: Use ultracode for documenting or auditing documentation across a large codebase — orchestrate the sub-agents described in the "Parallelizing Documentation Work" section (one per package, or one per doc layer/file) and merge their output into the final docs.

    Modes:

    • Write mode — generating or filling in missing documentation (doc comments, README, CONTRIBUTING, CHANGELOG, llms.txt). Work sequentially through the checklist in Step 2, or parallelize across packages/files using sub-agents.
    • Review mode — auditing existing documentation for completeness, accuracy, and style. Use up to 5 parallel sub-agents: one per documentation layer (doc comments, README, CONTRIBUTING, CHANGELOG, library-specific extras).

    Community default. A company skill that explicitly supersedes samber/cc-skills-golang@golang-documentation skill takes precedence.

    Go Documentation

    Write documentation that serves both humans and AI agents. Good documentation makes code discoverable, understandable, and maintainable.

    Cross-References

    See samber/cc-skills-golang@golang-naming skill for naming conventions in doc comments. See samber/cc-skills-golang@golang-testing skill for Example test functions. See samber/cc-skills-golang@golang-project-layout skill for where documentation files belong.

    Writing Principles

    Apply to every piece of documentation you write or review:

    Concision — write the shortest version that carries the idea. Remove ornament and hollow transitions. Never drop facts, warnings, or user-requested depth.

    Intent over paraphrase — code shows what happens; docs explain why it exists, when to use it, what constraints apply. A comment that only restates the signature wastes the reader's time.

    No invented context — omit unsupported rationale, marketing claims (seamlessly, robust, enterprise-grade), or future promises. Leave gaps visible rather than filling with speculation.

    Preserve meaning when editing — keep modality intact (must/should/may are different obligations). Preserve conditions, warnings, required actions. A cleaner sentence that changes obligations is wrong.

    Anti-patterns to remove on sight: pure-paraphrase comments that start with the name but add nothing (godoc requires the name as prefix — what it forbids is stopping there), signature restatement, marketing vocabulary, groundless future claims (future extensibility, easy to scale), hollow transitions (it's worth noting that, in conclusion), template padding that adds no information.

    Step 1: Detect Project Type

    Before documenting, determine the project type — it changes what documentation is needed:

    Library — no main package, meant to be imported by other projects:

    • Focus on godoc comments, ExampleXxx functions, playground demos, pkg.go.dev rendering
    • See Library Documentation

    Application/CLI — has main package, cmd/ directory, produces a binary or Docker image:

    Both apply: function comments, README, CONTRIBUTING, CHANGELOG.

    Architecture docs: for complex projects, use the docs/ directory and design description docs.

    Step 2: Documentation Checklist

    Every Go project needs these (ordered by priority):

    Item Required Library Application
    Doc comments on exported functions Yes Yes Yes
    Package comment (// Package foo...) — MUST exist Yes Yes Yes
    README.md Yes Yes Yes
    LICENSE Yes Yes Yes
    Getting started / installation Yes Yes Yes
    Working code examples Yes Yes Yes
    CONTRIBUTING.md Recommended Yes Yes
    CHANGELOG.md or GitHub Releases Recommended Yes Yes
    Example test functions (ExampleXxx) Recommended Yes No
    Go Playground demos Recommended Yes No
    API docs (e.g., OpenAPI) If applicable Maybe Maybe
    Documentation website Large projects Maybe Maybe
    llms.txt Recommended Yes Yes

    A private project might not need a documentation website, llms.txt, Go Playground demos...

    Parallelizing Documentation Work

    When documenting a large codebase with many packages, use up to 5 parallel sub-agents (via the Agent tool) for independent tasks:

    • Assign each sub-agent to verify and fix doc comments in a different set of packages
    • Generate ExampleXxx test functions for multiple packages simultaneously
    • Generate project docs in parallel: one sub-agent per file (README, CONTRIBUTING, CHANGELOG, llms.txt)

    Step 3: Function & Method Doc Comments

    Every exported function and method MUST have a doc comment. Document complex internal functions too. Skip test functions.

    The comment starts with the function name and a verb phrase. Focus on why and when, not restating what the code already shows. The code tells you what happens — the comment should explain why it exists, when to use it, what constraints apply, and what can go wrong. Include parameters, return values, error cases, and a usage example:

    // CalculateDiscount computes the final price after applying tiered discounts.
    // Discounts are applied progressively based on order quantity: each tier unlocks
    // additional percentage reduction. Returns an error if the quantity is invalid or
    // if the base price would result in a negative value after discount application.
    //
    // Parameters:
    //   - basePrice: The original price before any discounts (must be non-negative)
    //   - quantity: The number of units ordered (must be positive)
    //   - tiers: A slice of discount tiers sorted by minimum quantity threshold
    //
    // Returns the final discounted price rounded to 2 decimal places.
    // Returns ErrInvalidPrice if basePrice is negative.
    // Returns ErrInvalidQuantity if quantity is zero or negative.
    //
    // Play: https://go.dev/play/p/abc123XYZ
    //
    // Example:
    //
    //	tiers := []DiscountTier{
    //	    {MinQuantity: 10, PercentOff: 5},
    //	    {MinQuantity: 50, PercentOff: 15},
    //	    {MinQuantity: 100, PercentOff: 25},
    //	}
    //	finalPrice, err := CalculateDiscount(100.00, 75, tiers)
    //	if err != nil {
    //	    log.Fatalf("Discount calculation failed: %v", err)
    //	}
    //	log.Printf("Ordered 75 units at $100 each: final price = $%.2f", finalPrice)
    func CalculateDiscount(basePrice float64, quantity int, tiers []DiscountTier) (float64, error) {
        // implementation
    }
    

    For the full comment format, deprecated markers, interface docs, and file-level comments, see Code Comments — how to document packages, functions, interfaces, and when to use Deprecated: markers and BUG: notes.

    Step 4: README Structure

    README SHOULD follow this exact section order. Copy the template from templates/README.md:

    1. Title — project name as # heading
    2. Badges — shields.io pictograms (Go version, license, CI, coverage, Go Report Card...)
    3. Summary — 1-2 sentences explaining what the project does
    4. Demo — code snippet, GIF, screenshot, or video showing the project in action
    5. Getting Started — installation + minimal working example
    6. Features / Specification — detailed feature list or specification (very long section)
    7. Contributing — link to CONTRIBUTING.md or inline if very short
    8. Contributors — thank contributors (badge or list)
    9. License — license name + link

    Common badges for Go projects:

    [![Go Version](https://img.shields.io/github/go-mod/go-version/{owner}/{repo})](https://go.dev/) [![License](https://img.shields.io/github/license/{owner}/{repo})](./LICENSE) [![Build Status](https://img.shields.io/github/actions/workflow/status/{owner}/{repo}/test.yml?branch=main)](https://github.com/{owner}/{repo}/actions) [![Coverage](https://img.shields.io/codecov/c/github/{owner}/{repo})](https://codecov.io/gh/{owner}/{repo}) [![Go Report Card](https://goreportcard.com/badge/github.com/{owner}/{repo})](https://goreportcard.com/report/github.com/{owner}/{repo}) [![Go Reference](https://pkg.go.dev/badge/github.com/{owner}/{repo}.svg)](https://pkg.go.dev/github.com/{owner}/{repo})
    

    For the full README guidance and application-specific sections, see Project Docs.

    Step 5: CONTRIBUTING & Changelog

    CONTRIBUTING.md — Help contributors get started in under 10 minutes. Include: prerequisites, clone, build, test, PR process. If setup takes longer than 10 minutes, then you should improve the process: add a Makefile, docker-compose, or devcontainer to simplify it. See Project Docs.

    Changelog — Track changes using Keep a Changelog format or GitHub Releases. Copy the template from templates/CHANGELOG.md. Each entry answers what changed for the reader — internal refactors without user-visible impact belong in commit history. Don't inflate a fixed edge case into a broad "reliability improvement" claim. See Project Docs.

    Step 6: Library-Specific Documentation

    For Go libraries, add these on top of the basics:

    • Go Playground demos — create runnable demos and link them in doc comments with // Play: https://go.dev/play/p/xxx. Use the go-playground MCP tool when available to create and share playground URLs.
    • Example test functions — write func ExampleXxx() in _test.go files. These are executable documentation verified by go test.
    • Generous code examples — include multiple examples in doc comments showing common use cases.
    • godoc — your doc comments render on pkg.go.dev. Use go doc locally to preview; to inspect how a published package renders its docs, symbols, and examples, → See samber/cc-skills-golang@golang-pkg-go-dev skill.
    • Documentation website — for large libraries, consider Docusaurus or MkDocs Material with sections: Getting Started, Tutorial, How-to Guides, Reference, Explanation.
    • Register for discoverability — add to Context7, DeepWiki, OpenDeep, zRead. Even for private libraries.

    See Library Documentation for details.

    Step 7: Application-Specific Documentation

    For Go applications/CLIs:

    • Installation methods — pre-built binaries (GoReleaser), go install, Docker images, Homebrew...
    • CLI help text — make --help comprehensive; it's the primary documentation
    • Configuration docs — document all env vars, config files, CLI flags

    See Application Documentation for details.

    Step 8: API Documentation

    If your project exposes an API:

    API Style Format Tool
    REST/HTTP OpenAPI 3.x swaggo/swag (auto-generate from annotations)
    Event-driven AsyncAPI Manual or code-gen
    gRPC Protobuf buf, grpc-gateway

    Prefer auto-generation from code annotations when possible. See Application Documentation for details.

    Step 9: AI-Friendly Documentation

    Make your project consumable by AI agents:

    • llms.txt — add a llms.txt file at the repository root. Copy the template from templates/llms.txt. This file gives LLMs a structured overview of your project.
    • Structured formats — use OpenAPI, AsyncAPI, or protobuf for machine-readable API docs.
    • Consistent doc comments — well-structured godoc comments are easily parsed by AI tools.
    • Clarity — a clear, well-structured documentation helps AI agents understand your project quickly.

    Step 10: Delivery Documentation

    Document how users get your project:

    Libraries:

    go get github.com/{owner}/{repo}
    

    Applications:

    # Pre-built binary
    curl -sSL https://github.com/{owner}/{repo}/releases/latest/download/{repo}-$(uname -s)-$(uname -m) -o /usr/local/bin/{repo}
    
    # From source
    go install github.com/{owner}/{repo}@latest
    
    # Docker
    docker pull {registry}/{owner}/{repo}:latest
    

    See Project Docs for Dockerfile best practices and Homebrew tap setup.

    Reproducido de samber/cc-skills-golang bajo licencia MIT. Leer esta página en markdown.

    Archivos

    10 archivos en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Requiere el binario go instalado; opcionalmente golangci-lint y git.

    Necesita en el PATH:curldocker

    Detalles

    Creador
    samber
    Categoría
    Documentos
    Licencia
    MIT
    Recursos incluidos
    referencias
    Código fuente
    Ver SKILL.md

    Etiquetas

    Más de samber/cc-skills-golang

    Este repo incluye 46 skills. Si instalas uno, normalmente ya tienes los demás.

    Buenas prácticas de linting y configuración de golangci-lint para proyectos Golang: ejecutar linters, configurar .golangci.yml, suprimir avisos con nolint, interpretar salidas y elegir linters.

    Costo de contexto al activarse
    1.8k tok
    Tamaño del paquete
    5 archivos
    Última actualización
    hace 3 días
    herramientas desarrollo

    Benchmarking, profiling y medición de rendimiento en Golang: escribir y comparar benchmarks, perfilar con pprof, analizar con benchstat y detectar regresiones en CI.

    Costo de contexto al activarse
    3.3k tok
    Tamaño del paquete
    10 archivos
    Última actualización
    hace 28 días
    testing qa

    Orquestador de skills de Golang, siempre activo en cualquier tarea de código, revisión, debug o setup: carga las skills más relevantes de samber/cc-skills-golang, a menudo varias a la vez.

    Costo de contexto al activarse
    3.8k tok
    Tamaño del paquete
    4 archivos
    Última actualización
    hace 20 días
    herramientas desarrollo

    Patrones y metodología de optimización de rendimiento en Golang: si hay cuello de botella X, aplica el patrón Y, una vez que profiling o benchmarks ya lo identificaron.

    Costo de contexto al activarse
    2.3k tok
    Tamaño del paquete
    9 archivos
    Última actualización
    el mes pasado
    herramientas desarrollo

    Tests de Golang listos para producción: table-driven, suites y mocks con testify, tests paralelos, fuzzing, fixtures, detección de fugas de goroutines con goleak, snapshot testing, cobertura, tests de integración.

    Costo de contexto al activarse
    4.4k tok
    Tamaño del paquete
    6 archivos
    Última actualización
    el mes pasado
    testing qa

    Inyección de dependencias en Golang con samber/do: contenedores de servicios, gestión de ciclo de vida, scopes, health checks, apagado ordenado y organización en módulos.

    Costo de contexto al activarse
    2.3k tok
    Tamaño del paquete
    4 archivos
    Última actualización
    hace 22 días
    herramientas desarrollo

    Skills relacionados

    Benchmarking, profiling y medición de rendimiento en Golang: escribir y comparar benchmarks, perfilar con pprof, analizar con benchstat y detectar regresiones en CI.

    Costo de contexto al activarse
    3.3k tok
    Tamaño del paquete
    10 archivos
    Última actualización
    hace 28 días
    testing qa

    Desarrollo de aplicaciones CLI en Go: estructura de comandos, flags, configuración por capas, versión embebida, exit codes, señales, completions y testing con cobra, viper o urfave/cli.

    Costo de contexto al activarse
    2.6k tok
    Tamaño del paquete
    14 archivos
    Última actualización
    hace 3 meses
    herramientas desarrollo

    Convenciones de estilo en Golang: longitud y corte de líneas, declaración de variables, claridad del control de flujo y cuándo los comentarios ayudan u estorban.

    Costo de contexto al activarse
    2.5k tok
    Tamaño del paquete
    3 archivos
    Última actualización
    el mes pasado
    herramientas desarrollo