diff --git a/CLAUDE.md b/CLAUDE.md index dec5c09..3684c7b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -52,7 +52,7 @@ Example frontmatter: ```yaml --- name: golang-example -description: Golang skill for X. Use when doing Y. +description: "Golang skill for X. Use when doing Y." user-invocable: false license: MIT compatibility: Designed for Claude Code or similar AI coding agents. Requires go compiler and git. diff --git a/clawhub-publish.sh b/clawhub-publish.sh index f3e66fb..32f3d5d 100755 --- a/clawhub-publish.sh +++ b/clawhub-publish.sh @@ -2,7 +2,8 @@ set -euo pipefail if [ -n "${CLAWHUB_TOKEN:-}" ]; then - npx -y clawhub login --token "$CLAWHUB_TOKEN" + # executed from in ci + npx -y clawhub login --token "$CLAWHUB_TOKEN" fi for skill_dir in skills/*/; do @@ -24,4 +25,12 @@ for skill_dir in skills/*/; do echo "Publishing ${skill_name} v${version}" npx -y clawhub publish "$PWD/${skill_dir}" --version "$version" || true + + if [ -n "${CLAWHUB_TOKEN:-}" ]; then + # executed from in ci + continue + fi + + # rate limits: 5 skills per hour / 20 skills per day + sleep 3600 done diff --git a/skills/golang-cli/SKILL.md b/skills/golang-cli/SKILL.md index dd8368f..b27fc97 100644 --- a/skills/golang-cli/SKILL.md +++ b/skills/golang-cli/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-cli -description: Golang CLI application development. Use when building, modifying, or reviewing a Go CLI tool — especially for command structure, flag handling, configuration layering, version embedding, exit codes, I/O patterns, signal handling, shell completion, argument validation, and CLI unit testing. Also triggers when code uses cobra, viper, or urfave/cli. +description: "Golang CLI application development. Use when building, modifying, or reviewing a Go CLI tool — especially for command structure, flag handling, configuration layering, version embedding, exit codes, I/O patterns, signal handling, shell completion, argument validation, and CLI unit testing. Also triggers when code uses cobra, viper, or urfave/cli." user-invocable: false license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-code-style/SKILL.md b/skills/golang-code-style/SKILL.md index eb4357d..517cf63 100644 --- a/skills/golang-code-style/SKILL.md +++ b/skills/golang-code-style/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-code-style -description: Golang code style, formatting and conventions. Use when writing code, reviewing style, configuring linters, writing comments, or establishing project standards. +description: "Golang code style, formatting and conventions. Use when writing code, reviewing style, configuring linters, writing comments, or establishing project standards." user-invocable: false license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-concurrency/SKILL.md b/skills/golang-concurrency/SKILL.md index 060e728..4f77f61 100644 --- a/skills/golang-concurrency/SKILL.md +++ b/skills/golang-concurrency/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-concurrency -description: Golang concurrency patterns. Use when writing or reviewing concurrent Go code involving goroutines, channels, select, locks, sync primitives, errgroup, singleflight, worker pools, or fan-out/fan-in pipelines. Also triggers when you detect goroutine leaks, race conditions, channel ownership issues, or need to choose between channels and mutexes. +description: "Golang concurrency patterns. Use when writing or reviewing concurrent Go code involving goroutines, channels, select, locks, sync primitives, errgroup, singleflight, worker pools, or fan-out/fan-in pipelines. Also triggers when you detect goroutine leaks, race conditions, channel ownership issues, or need to choose between channels and mutexes." user-invocable: false license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-context/SKILL.md b/skills/golang-context/SKILL.md index dfe382b..9700176 100644 --- a/skills/golang-context/SKILL.md +++ b/skills/golang-context/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-context -description: Idiomatic context.Context usage in Golang — creation, propagation, cancellation, timeouts, deadlines, context values, and cross-service tracing. Apply when working with context.Context in any Go code. +description: "Idiomatic context.Context usage in Golang — creation, propagation, cancellation, timeouts, deadlines, context values, and cross-service tracing. Apply when working with context.Context in any Go code." user-invocable: false license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-continuous-integration/SKILL.md b/skills/golang-continuous-integration/SKILL.md index 36f7f8b..993a9bf 100644 --- a/skills/golang-continuous-integration/SKILL.md +++ b/skills/golang-continuous-integration/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-continuous-integration -description: Provides CI/CD pipeline configuration using GitHub Actions for Golang projects. Covers testing, linting, SAST, security scanning, code coverage, Dependabot, Renovate, GoReleaser, code review automation, and release pipelines. Use this whenever setting up CI for a Go project, configuring workflows, adding linters or security scanners, setting up Dependabot or Renovate, automating releases, or improving an existing CI pipeline. Also use when the user wants to add quality gates to their Go project. +description: "Provides CI/CD pipeline configuration using GitHub Actions for Golang projects. Covers testing, linting, SAST, security scanning, code coverage, Dependabot, Renovate, GoReleaser, code review automation, and release pipelines. Use this whenever setting up CI for a Go project, configuring workflows, adding linters or security scanners, setting up Dependabot or Renovate, automating releases, or improving an existing CI pipeline. Also use when the user wants to add quality gates to their Go project." user-invocable: true license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-data-structures/SKILL.md b/skills/golang-data-structures/SKILL.md index c6e4be0..920a505 100644 --- a/skills/golang-data-structures/SKILL.md +++ b/skills/golang-data-structures/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-data-structures -description: Golang data structures — slices (internals, capacity growth, preallocation, slices package), maps (internals, hash buckets, maps package), arrays, container/list/heap/ring, strings.Builder vs bytes.Buffer, generic collections, pointers (unsafe.Pointer, weak.Pointer), and copy semantics. Use when choosing or optimizing Go data structures, implementing generic containers, using container/ packages, unsafe or weak pointers, or questioning slice/map internals. +description: "Golang data structures — slices (internals, capacity growth, preallocation, slices package), maps (internals, hash buckets, maps package), arrays, container/list/heap/ring, strings.Builder vs bytes.Buffer, generic collections, pointers (unsafe.Pointer, weak.Pointer), and copy semantics. Use when choosing or optimizing Go data structures, implementing generic containers, using container/ packages, unsafe or weak pointers, or questioning slice/map internals." user-invocable: false license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-database/SKILL.md b/skills/golang-database/SKILL.md index b71ea9b..5566062 100644 --- a/skills/golang-database/SKILL.md +++ b/skills/golang-database/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-database -description: Comprehensive guide for Go database access. Covers parameterized queries, struct scanning, NULLable column handling, error patterns, transactions, isolation levels, SELECT FOR UPDATE, connection pool, batch processing, context propagation, and migration tooling. Use this skill whenever writing, reviewing, or debugging Golang code that interacts with PostgreSQL, MariaDB, MySQL, or SQLite. Also triggers for database testing or any question about database/sql, sqlx, pgx, or SQL queries in Golang. This skill explicitly does NOT generate database schemas or migration SQL. +description: "Comprehensive guide for Go database access. Covers parameterized queries, struct scanning, NULLable column handling, error patterns, transactions, isolation levels, SELECT FOR UPDATE, connection pool, batch processing, context propagation, and migration tooling. Use this skill whenever writing, reviewing, or debugging Golang code that interacts with PostgreSQL, MariaDB, MySQL, or SQLite. Also triggers for database testing or any question about database/sql, sqlx, pgx, or SQL queries in Golang. This skill explicitly does NOT generate database schemas or migration SQL." user-invocable: false license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-dependency-injection/SKILL.md b/skills/golang-dependency-injection/SKILL.md index aa9e2bd..0819a18 100644 --- a/skills/golang-dependency-injection/SKILL.md +++ b/skills/golang-dependency-injection/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-dependency-injection -description: Comprehensive guide for dependency injection (DI) in Golang. Covers why DI matters (testability, loose coupling, separation of concerns, lifecycle management), manual constructor injection, and DI library comparison (google/wire, uber-go/dig, uber-go/fx, samber/do). Use this skill when designing service architecture, setting up dependency injection, refactoring tightly coupled code, managing singletons or service factories, or when the user asks about inversion of control, service containers, or wiring dependencies in Go. +description: "Comprehensive guide for dependency injection (DI) in Golang. Covers why DI matters (testability, loose coupling, separation of concerns, lifecycle management), manual constructor injection, and DI library comparison (google/wire, uber-go/dig, uber-go/fx, samber/do). Use this skill when designing service architecture, setting up dependency injection, refactoring tightly coupled code, managing singletons or service factories, or when the user asks about inversion of control, service containers, or wiring dependencies in Go." user-invocable: false license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-dependency-management/SKILL.md b/skills/golang-dependency-management/SKILL.md index 23e0e0e..49c6245 100644 --- a/skills/golang-dependency-management/SKILL.md +++ b/skills/golang-dependency-management/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-dependency-management -description: Provides dependency management strategies for Golang projects including go.mod management, installing/upgrading packages, semantic versioning, Minimal Version Selection, vulnerability scanning, outdated dependency tracking, dependency size analysis, automated updates with Dependabot/Renovate, conflict resolution, and dependency graph visualization. Use this skill whenever adding, removing, updating, or auditing Go dependencies, resolving version conflicts, setting up automated dependency updates, analyzing binary size, or working with go.work workspaces. +description: "Provides dependency management strategies for Golang projects including go.mod management, installing/upgrading packages, semantic versioning, Minimal Version Selection, vulnerability scanning, outdated dependency tracking, dependency size analysis, automated updates with Dependabot/Renovate, conflict resolution, and dependency graph visualization. Use this skill whenever adding, removing, updating, or auditing Go dependencies, resolving version conflicts, setting up automated dependency updates, analyzing binary size, or working with go.work workspaces." user-invocable: false license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-design-patterns/SKILL.md b/skills/golang-design-patterns/SKILL.md index a89cca4..80161e0 100644 --- a/skills/golang-design-patterns/SKILL.md +++ b/skills/golang-design-patterns/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-design-patterns -description: Idiomatic Golang design patterns — functional options, constructors, error flow and cascading, resource management and lifecycle, graceful shutdown, resilience, architecture, dependency injection, data handling, and streaming. Apply when designing Go APIs, structuring applications, choosing between patterns, making design decisions, architectural choices, or production hardening. +description: "Idiomatic Golang design patterns — functional options, constructors, error flow and cascading, resource management and lifecycle, graceful shutdown, resilience, architecture, dependency injection, data handling, and streaming. Apply when designing Go APIs, structuring applications, choosing between patterns, making design decisions, architectural choices, or production hardening." user-invocable: false license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-documentation/SKILL.md b/skills/golang-documentation/SKILL.md index ec05c07..9d6f89c 100644 --- a/skills/golang-documentation/SKILL.md +++ b/skills/golang-documentation/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-documentation -description: Comprehensive documentation guide for Golang projects, covering godoc comments, README, CONTRIBUTING, CHANGELOG, Go Playground, Example tests, API docs, and llms.txt. Use when writing or reviewing doc comments, documentation, adding code examples, setting up doc sites, or discussing documentation best practices. Triggers for both libraries and applications/CLIs. +description: "Comprehensive documentation guide for Golang projects, covering godoc comments, README, CONTRIBUTING, CHANGELOG, Go Playground, Example tests, API docs, and llms.txt. Use when writing or reviewing doc comments, documentation, adding code examples, setting up doc sites, or discussing documentation best practices. Triggers for both libraries and applications/CLIs." user-invocable: true license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-error-handling/SKILL.md b/skills/golang-error-handling/SKILL.md index f9ce439..5361fe1 100644 --- a/skills/golang-error-handling/SKILL.md +++ b/skills/golang-error-handling/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-error-handling -description: Idiomatic Golang error handling — creation, wrapping with %w, errors.Is/As, errors.Join, custom error types, sentinel errors, panic/recover, the single handling rule, structured logging with slog, HTTP request logging middleware, and samber/oops for production errors. Built to make logs usable at scale with log aggregation 3rd-party tools. Apply when creating, wrapping, inspecting, or logging errors in Go code. +description: "Idiomatic Golang error handling — creation, wrapping with %w, errors.Is/As, errors.Join, custom error types, sentinel errors, panic/recover, the single handling rule, structured logging with slog, HTTP request logging middleware, and samber/oops for production errors. Built to make logs usable at scale with log aggregation 3rd-party tools. Apply when creating, wrapping, inspecting, or logging errors in Go code." user-invocable: false license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-grpc/SKILL.md b/skills/golang-grpc/SKILL.md index c417ff7..ad49e3f 100644 --- a/skills/golang-grpc/SKILL.md +++ b/skills/golang-grpc/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-grpc -description: Provides gRPC usage guidelines, protobuf organization, and production-ready patterns for Golang microservices. Use when implementing, reviewing, or debugging gRPC servers/clients, writing proto files, setting up interceptors, handling gRPC errors with status codes, configuring TLS/mTLS, testing with bufconn, or working with streaming RPCs. +description: "Provides gRPC usage guidelines, protobuf organization, and production-ready patterns for Golang microservices. Use when implementing, reviewing, or debugging gRPC servers/clients, writing proto files, setting up interceptors, handling gRPC errors with status codes, configuring TLS/mTLS, testing with bufconn, or working with streaming RPCs." user-invocable: false license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-linter/SKILL.md b/skills/golang-linter/SKILL.md index a29bb00..56d9b26 100644 --- a/skills/golang-linter/SKILL.md +++ b/skills/golang-linter/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-lint -description: Provides linting best practices and golangci-lint configuration for Go projects. Covers running linters, configuring .golangci.yml, suppressing warnings with nolint directives, interpreting lint output, and managing linter settings. Use this skill whenever the user runs linters, configures golangci-lint, asks about lint warnings or suppressions, sets up code quality tooling, or asks which linters to enable for a Go project. Also use when the user mentions golangci-lint, go vet, staticcheck, revive, or any Go linting tool. +description: "Provides linting best practices and golangci-lint configuration for Go projects. Covers running linters, configuring .golangci.yml, suppressing warnings with nolint directives, interpreting lint output, and managing linter settings. Use this skill whenever the user runs linters, configures golangci-lint, asks about lint warnings or suppressions, sets up code quality tooling, or asks which linters to enable for a Go project. Also use when the user mentions golangci-lint, go vet, staticcheck, revive, or any Go linting tool." user-invocable: false license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-modernize/SKILL.md b/skills/golang-modernize/SKILL.md index 2f1776f..d5f6fce 100644 --- a/skills/golang-modernize/SKILL.md +++ b/skills/golang-modernize/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-modernize -description: Continuously modernize Golang code to use the latest language features, standard library improvements, and idiomatic patterns. Use this skill whenever writing, reviewing, or refactoring Go code to ensure it leverages modern Go idioms. Also use when the user asks about Go upgrades, migration, modernization, deprecation, or when modernize linter reports issues. Also covers tooling modernization: linters, SAST, AI-powered code review in CI, and modern development practices. Trigger this skill proactively when you notice old-style Go patterns that have modern replacements. +description: "Continuously modernize Golang code to use the latest language features, standard library improvements, and idiomatic patterns. Use this skill whenever writing, reviewing, or refactoring Go code to ensure it leverages modern Go idioms. Also use when the user asks about Go upgrades, migration, modernization, deprecation, or when modernize linter reports issues. Also covers tooling modernization: linters, SAST, AI-powered code review in CI, and modern development practices. Trigger this skill proactively when you notice old-style Go patterns that have modern replacements." user-invocable: true license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-naming/SKILL.md b/skills/golang-naming/SKILL.md index 48a6596..da14357 100644 --- a/skills/golang-naming/SKILL.md +++ b/skills/golang-naming/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-naming -description: Go (Golang) naming conventions — covers packages, constructors, structs, interfaces, constants, enums, errors, booleans, receivers, getters/setters, functional options, acronyms, test functions, and subtest names. Use this skill when writing new Go code, reviewing or refactoring, choosing between naming alternatives (New vs NewTypeName, isConnected vs connected, ErrNotFound vs NotFoundError, StatusReady vs StatusUnknown at iota 0), debating Go package names (utils/helpers anti-patterns), or asking about Go naming best practices. Also trigger when the user mentions MixedCaps vs snake_case, ALL_CAPS constants, Get-prefix on getters, or error string casing. Do NOT use for general Go implementation questions that don't involve naming decisions. +description: "Go (Golang) naming conventions — covers packages, constructors, structs, interfaces, constants, enums, errors, booleans, receivers, getters/setters, functional options, acronyms, test functions, and subtest names. Use this skill when writing new Go code, reviewing or refactoring, choosing between naming alternatives (New vs NewTypeName, isConnected vs connected, ErrNotFound vs NotFoundError, StatusReady vs StatusUnknown at iota 0), debating Go package names (utils/helpers anti-patterns), or asking about Go naming best practices. Also trigger when the user mentions MixedCaps vs snake_case, ALL_CAPS constants, Get-prefix on getters, or error string casing. Do NOT use for general Go implementation questions that don't involve naming decisions." user-invocable: false license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-popular-libraries/SKILL.md b/skills/golang-popular-libraries/SKILL.md index 2cf483c..9a4c3b9 100644 --- a/skills/golang-popular-libraries/SKILL.md +++ b/skills/golang-popular-libraries/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-popular-libraries -description: Recommends production-ready Golang libraries and frameworks. Apply when the user asks for library suggestions, wants to compare alternatives, or needs to choose a library for a specific task. Also apply when the AI agent is about to add a new dependency — ensures vetted, production-ready libraries are chosen. +description: "Recommends production-ready Golang libraries and frameworks. Apply when the user asks for library suggestions, wants to compare alternatives, or needs to choose a library for a specific task. Also apply when the AI agent is about to add a new dependency — ensures vetted, production-ready libraries are chosen." user-invocable: false license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-project-layout/SKILL.md b/skills/golang-project-layout/SKILL.md index 6d7304e..97b05e3 100644 --- a/skills/golang-project-layout/SKILL.md +++ b/skills/golang-project-layout/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-project-layout -description: Provides a guide for setting up Golang project layouts and workspaces. Use this whenever starting a new Go project, organizing an existing codebase, setting up a monorepo with multiple packages, creating CLI tools with multiple main packages, or deciding on directory structure. Apply this for any Go project initialization or restructuring work. +description: "Provides a guide for setting up Golang project layouts and workspaces. Use this whenever starting a new Go project, organizing an existing codebase, setting up a monorepo with multiple packages, creating CLI tools with multiple main packages, or deciding on directory structure. Apply this for any Go project initialization or restructuring work." user-invocable: true license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-safety/SKILL.md b/skills/golang-safety/SKILL.md index 7b28e9b..8594b3c 100644 --- a/skills/golang-safety/SKILL.md +++ b/skills/golang-safety/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-safety -description: Defensive Golang coding to prevent panics, silent data corruption, and subtle runtime bugs. Use whenever writing or reviewing Go code that involves nil-prone types (pointers, interfaces, maps, slices, channels), numeric conversions, resource lifecycle (defer in loops), or defensive copying. Also triggers on questions about nil panics, append aliasing, map concurrent access, float comparison, or zero-value design. +description: "Defensive Golang coding to prevent panics, silent data corruption, and subtle runtime bugs. Use whenever writing or reviewing Go code that involves nil-prone types (pointers, interfaces, maps, slices, channels), numeric conversions, resource lifecycle (defer in loops), or defensive copying. Also triggers on questions about nil panics, append aliasing, map concurrent access, float comparison, or zero-value design." user-invocable: false license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-samber-do/SKILL.md b/skills/golang-samber-do/SKILL.md index 2d96aa8..fff6061 100644 --- a/skills/golang-samber-do/SKILL.md +++ b/skills/golang-samber-do/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-samber-do -description: Implements dependency injection in Golang using samber/do. Apply this skill when working with dependency injection, setting up service containers, managing service lifecycles, or when you see code using github.com/samber/do/v2. Also use when refactoring manual dependency injection, implementing health checks, graceful shutdown, or organizing services into scopes/modules. +description: "Implements dependency injection in Golang using samber/do. Apply this skill when working with dependency injection, setting up service containers, managing service lifecycles, or when you see code using github.com/samber/do/v2. Also use when refactoring manual dependency injection, implementing health checks, graceful shutdown, or organizing services into scopes/modules." user-invocable: false license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-samber-hot/SKILL.md b/skills/golang-samber-hot/SKILL.md index 78a35a0..948216e 100644 --- a/skills/golang-samber-hot/SKILL.md +++ b/skills/golang-samber-hot/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-samber-hot -description: In-memory caching in Golang using samber/hot — eviction algorithms (LRU, LFU, TinyLFU, W-TinyLFU, S3FIFO, ARC, TwoQueue, SIEVE, FIFO), TTL, cache loaders, sharding, stale-while-revalidate, missing key caching, and Prometheus metrics. Apply when using or adopting samber/hot, when the codebase imports github.com/samber/hot, or when the project repeatedly loads the same medium-to-low cardinality resources at high frequency and needs to reduce latency or backend pressure. +description: "In-memory caching in Golang using samber/hot — eviction algorithms (LRU, LFU, TinyLFU, W-TinyLFU, S3FIFO, ARC, TwoQueue, SIEVE, FIFO), TTL, cache loaders, sharding, stale-while-revalidate, missing key caching, and Prometheus metrics. Apply when using or adopting samber/hot, when the codebase imports github.com/samber/hot, or when the project repeatedly loads the same medium-to-low cardinality resources at high frequency and needs to reduce latency or backend pressure." user-invocable: false license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-samber-lo/SKILL.md b/skills/golang-samber-lo/SKILL.md index f76ec9d..5f2355f 100644 --- a/skills/golang-samber-lo/SKILL.md +++ b/skills/golang-samber-lo/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-samber-lo -description: Functional programming helpers for Golang using samber/lo — 500+ type-safe generic functions for slices, maps, channels, strings, math, tuples, and concurrency (Map, Filter, Reduce, GroupBy, Chunk, Flatten, Find, Uniq, etc.). Core immutable package (lo), concurrent variants (lo/parallel aka lop), in-place mutations (lo/mutable aka lom), lazy iterators (lo/it aka loi for Go 1.23+), and experimental SIMD (lo/exp/simd). Apply when using or adopting samber/lo, when the codebase imports github.com/samber/lo, or when implementing functional-style data transformations in Go. Not for streaming pipelines (→ See golang-samber-ro skill). +description: "Functional programming helpers for Golang using samber/lo — 500+ type-safe generic functions for slices, maps, channels, strings, math, tuples, and concurrency (Map, Filter, Reduce, GroupBy, Chunk, Flatten, Find, Uniq, etc.). Core immutable package (lo), concurrent variants (lo/parallel aka lop), in-place mutations (lo/mutable aka lom), lazy iterators (lo/it aka loi for Go 1.23+), and experimental SIMD (lo/exp/simd). Apply when using or adopting samber/lo, when the codebase imports github.com/samber/lo, or when implementing functional-style data transformations in Go. Not for streaming pipelines (→ See golang-samber-ro skill)." user-invocable: false license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-samber-mo/SKILL.md b/skills/golang-samber-mo/SKILL.md index 2a540d4..862b529 100644 --- a/skills/golang-samber-mo/SKILL.md +++ b/skills/golang-samber-mo/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-samber-mo -description: Monadic types for Golang using samber/mo — Option, Result, Either, Future, IO, Task, and State types for type-safe nullable values, error handling, and functional composition with pipeline sub-packages. Apply when using or adopting samber/mo, when the codebase imports `github.com/samber/mo`, or when considering functional programming patterns as a safety design for Golang. +description: "Monadic types for Golang using samber/mo — Option, Result, Either, Future, IO, Task, and State types for type-safe nullable values, error handling, and functional composition with pipeline sub-packages. Apply when using or adopting samber/mo, when the codebase imports `github.com/samber/mo`, or when considering functional programming patterns as a safety design for Golang." user-invocable: false license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-samber-oops/SKILL.md b/skills/golang-samber-oops/SKILL.md index 885c626..78da322 100644 --- a/skills/golang-samber-oops/SKILL.md +++ b/skills/golang-samber-oops/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-samber-oops -description: Structured error handling in Golang with samber/oops — error builders, stack traces, error codes, error context, error wrapping, error attributes, user-facing vs developer messages, panic recovery, and logger integration. Apply when using or adopting samber/oops, or when the codebase already imports github.com/samber/oops. +description: "Structured error handling in Golang with samber/oops — error builders, stack traces, error codes, error context, error wrapping, error attributes, user-facing vs developer messages, panic recovery, and logger integration. Apply when using or adopting samber/oops, or when the codebase already imports github.com/samber/oops." user-invocable: false license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-samber-ro/SKILL.md b/skills/golang-samber-ro/SKILL.md index 3053edf..c0d1017 100644 --- a/skills/golang-samber-ro/SKILL.md +++ b/skills/golang-samber-ro/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-samber-ro -description: Reactive streams and event-driven programming in Golang using samber/ro — ReactiveX implementation with 150+ type-safe operators, cold/hot observables, 5 subject types (Publish, Behavior, Replay, Async, Unicast), declarative pipelines via Pipe, 40+ plugins (HTTP, cron, fsnotify, JSON, logging), automatic backpressure, error propagation, and Go context integration. Apply when using or adopting samber/ro, when the codebase imports github.com/samber/ro, or when building asynchronous event-driven pipelines, real-time data processing, streams, or reactive architectures in Go. Not for finite slice transforms (-> See golang-samber-lo skill). +description: "Reactive streams and event-driven programming in Golang using samber/ro — ReactiveX implementation with 150+ type-safe operators, cold/hot observables, 5 subject types (Publish, Behavior, Replay, Async, Unicast), declarative pipelines via Pipe, 40+ plugins (HTTP, cron, fsnotify, JSON, logging), automatic backpressure, error propagation, and Go context integration. Apply when using or adopting samber/ro, when the codebase imports github.com/samber/ro, or when building asynchronous event-driven pipelines, real-time data processing, streams, or reactive architectures in Go. Not for finite slice transforms (-> See golang-samber-lo skill)." user-invocable: false license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-samber-slog/SKILL.md b/skills/golang-samber-slog/SKILL.md index df96abf..d7fe9ba 100644 --- a/skills/golang-samber-slog/SKILL.md +++ b/skills/golang-samber-slog/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-samber-slog -description: Structured logging extensions for Golang using samber/slog-**** packages — multi-handler pipelines (slog-multi), log sampling (slog-sampling), attribute formatting (slog-formatter), HTTP middleware (slog-fiber, slog-gin, slog-chi, slog-echo), and backend routing (slog-datadog, slog-sentry, slog-loki, slog-syslog, slog-logstash, slog-graylog...). Apply when using or adopting slog, or when the codebase already imports any github.com/samber/slog-* package. +description: "Structured logging extensions for Golang using samber/slog-**** packages — multi-handler pipelines (slog-multi), log sampling (slog-sampling), attribute formatting (slog-formatter), HTTP middleware (slog-fiber, slog-gin, slog-chi, slog-echo), and backend routing (slog-datadog, slog-sentry, slog-loki, slog-syslog, slog-logstash, slog-graylog...). Apply when using or adopting slog, or when the codebase already imports any github.com/samber/slog-* package." user-invocable: false license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-security/SKILL.md b/skills/golang-security/SKILL.md index fdf38a9..891a0e2 100644 --- a/skills/golang-security/SKILL.md +++ b/skills/golang-security/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-security -description: Security best practices and vulnerability prevention for Golang. Covers injection (SQL, command, XSS), cryptography, filesystem safety, network security, cookies, secrets management, memory safety, and logging. Apply when writing, reviewing, or auditing Go code for security, or when working on any risky code involving crypto, I/O, secrets management, user input handling, or authentication. Includes configuration of security tools. +description: "Security best practices and vulnerability prevention for Golang. Covers injection (SQL, command, XSS), cryptography, filesystem safety, network security, cookies, secrets management, memory safety, and logging. Apply when writing, reviewing, or auditing Go code for security, or when working on any risky code involving crypto, I/O, secrets management, user input handling, or authentication. Includes configuration of security tools." user-invocable: true license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-stay-updated/SKILL.md b/skills/golang-stay-updated/SKILL.md index 1184216..b9dcab5 100644 --- a/skills/golang-stay-updated/SKILL.md +++ b/skills/golang-stay-updated/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-stay-updated -description: Provides resources to stay updated with Golang news, communities and people to follow. Use when seeking Go learning resources, discovering new libraries, finding community channels, or keeping up with Go language changes and releases. +description: "Provides resources to stay updated with Golang news, communities and people to follow. Use when seeking Go learning resources, discovering new libraries, finding community channels, or keeping up with Go language changes and releases." user-invocable: false license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-stretchr-testify/SKILL.md b/skills/golang-stretchr-testify/SKILL.md index eef2611..4ae83f2 100644 --- a/skills/golang-stretchr-testify/SKILL.md +++ b/skills/golang-stretchr-testify/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-stretchr-testify -description: Comprehensive guide to stretchr/testify for Golang testing. Covers assert, require, mock, and suite packages in depth. Use whenever writing tests with testify, creating mocks, setting up test suites, or choosing between assert and require. Essential for testify assertions, mock expectations, argument matchers, call verification, suite lifecycle, and advanced patterns like Eventually, JSONEq, and custom matchers. Trigger on any Go test file importing testify. +description: "Comprehensive guide to stretchr/testify for Golang testing. Covers assert, require, mock, and suite packages in depth. Use whenever writing tests with testify, creating mocks, setting up test suites, or choosing between assert and require. Essential for testify assertions, mock expectations, argument matchers, call verification, suite lifecycle, and advanced patterns like Eventually, JSONEq, and custom matchers. Trigger on any Go test file importing testify." user-invocable: false license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-structs-interfaces/SKILL.md b/skills/golang-structs-interfaces/SKILL.md index 16f9dc3..f2d1440 100644 --- a/skills/golang-structs-interfaces/SKILL.md +++ b/skills/golang-structs-interfaces/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-structs-interfaces -description: Golang struct and interface design patterns — composition, embedding, type assertions, type switches, interface segregation, dependency injection via interfaces, struct field tags, and pointer vs value receivers. Use this skill when designing Go types, defining or implementing interfaces, embedding structs or interfaces, writing type assertions or type switches, adding struct field tags for JSON/YAML/DB serialization, or choosing between pointer and value receivers. Also use when the user asks about "accept interfaces, return structs", compile-time interface checks, or composing small interfaces into larger ones. +description: "Golang struct and interface design patterns — composition, embedding, type assertions, type switches, interface segregation, dependency injection via interfaces, struct field tags, and pointer vs value receivers. Use this skill when designing Go types, defining or implementing interfaces, embedding structs or interfaces, writing type assertions or type switches, adding struct field tags for JSON/YAML/DB serialization, or choosing between pointer and value receivers. Also use when the user asks about \"accept interfaces, return structs\", compile-time interface checks, or composing small interfaces into larger ones." user-invocable: false license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang. diff --git a/skills/golang-testing/SKILL.md b/skills/golang-testing/SKILL.md index a4e98ed..f1cefcb 100644 --- a/skills/golang-testing/SKILL.md +++ b/skills/golang-testing/SKILL.md @@ -1,6 +1,6 @@ --- name: golang-testing -description: Provides a comprehensive guide for writing production-ready Golang tests. Covers table-driven tests, test suites with testify, mocks, unit tests, integration tests, benchmarks, code coverage, parallel tests, fuzzing, fixtures, goroutine leak detection with goleak, snapshot testing, memory leaks, CI with GitHub Actions, and idiomatic naming conventions. Use this whenever writing tests, asking about testing patterns or setting up CI for Go projects. Essential for ANY test-related conversation in Go. +description: "Provides a comprehensive guide for writing production-ready Golang tests. Covers table-driven tests, test suites with testify, mocks, unit tests, integration tests, benchmarks, code coverage, parallel tests, fuzzing, fixtures, goroutine leak detection with goleak, snapshot testing, memory leaks, CI with GitHub Actions, and idiomatic naming conventions. Use this whenever writing tests, asking about testing patterns or setting up CI for Go projects. Essential for ANY test-related conversation in Go." user-invocable: true license: MIT compatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang.