Playbook for building a NET-NEW feature in whip. Use when the user wants to add a feature, tool, slash command, integration, or UX behavior ('build…', 'add…', 'implement…'), even without the word 'feature'. Mines docs/roadmap.md + docs/learnings/. NOT for…
context-labs/whip
SkillsMP has collected 48 skills from context-labs/whip. Open a skill to review its source and details.
- Latest recorded source activity
- SkillsMP catalog refreshed
- skills collected
- 48
- GitHub stars
- 222
- GitHub forks
- 24
Skills in this repository
Showing 40 of 48 collected skills.
The lazy senior dev: write the least code that works — the ponytail ladder (does it need to exist? already here? stdlib? native? existing dep? one line?), root cause over symptom, deletion over addition, `ponytail:` comments for shortcuts. whip's default…
Golang benchmarking, profiling, and performance measurement. Use when writing or comparing Go benchmarks, profiling with pprof, interpreting CPU/memory/trace profiles, benchstat analysis, CI benchmark regression detection, or production performance issues.…
Golang CLI development — command structure, flags, config layering, exit codes, I/O, signals, shell completion, validation, testing. Use when building or reviewing a Go CLI or code using cobra, viper, urfave/cli. Cobra → `golang-spf13-cobra`; viper →…
Golang code style — line length and breaking, variable declarations, control flow clarity, when comments help vs hurt. Use when writing or reviewing Go code or setting coding standards. Not for naming (→ `golang-naming`), lint (→ `golang-lint`), docs (→…
Golang concurrency patterns. Use when writing or reviewing concurrent Go code — goroutines, channels, select, locks, sync primitives, errgroup, singleflight, worker pools, fan-out/fan-in — or for goroutine leaks, race conditions, channel ownership, or…
Idiomatic context.Context usage in Golang — cancellation, timeouts/deadlines, request-scoped values, WithoutCancel for background work. Use when designing context propagation across layers, debugging leaked contexts, or choosing Background/TODO/WithoutCancel.…
CI/CD with GitHub Actions for Golang — testing, linting, SAST, security scanning, coverage, Dependabot, Renovate, GoReleaser, release pipelines. Use when setting up Go project CI, GitHub Actions workflows, linters/scanners, dependency update automation, or…
Golang data structures — slices/maps internals (capacity growth, preallocation, hash buckets), slices/maps packages, container/list/heap/ring, strings.Builder vs bytes.Buffer, generic collections, unsafe/weak pointers. Use when choosing or optimizing Go data…
Go database access — parameterized queries, struct scanning, NULLable columns, transactions, isolation levels, SELECT FOR UPDATE, connection pool, migrations. Use for PostgreSQL, MariaDB, MySQL, SQLite; database testing; or database/sql, sqlx, pgx. Does NOT…
Dependency injection (DI) in Golang — why DI matters, manual constructor injection, library comparison. Use when designing service architecture or wiring dependencies. For google/wire, dig, fx, samber/do → `golang-google-wire`, `golang-uber-dig`,…
Golang dependency management — go.mod, installing/upgrading packages, Minimal Version Selection, vulnerability scanning, binary size, Dependabot/Renovate, conflict resolution, go.work. Use when adding, removing, upgrading dependencies, auditing…
Idiomatic Golang design patterns — functional options, constructors, error flow, resource lifecycle, graceful shutdown, resilience, architecture, dependency injection, streaming. Apply when choosing architectural patterns, implementing functional options, or…
Documentation for Golang projects — godoc comments, README, CONTRIBUTING, CHANGELOG, Go Playground, Example tests, API docs, llms.txt. Use when writing or reviewing doc comments or documentation, adding code examples, setting up doc sites, or documentation…
Idiomatic Golang error handling — %w wrapping, errors.Is/As, errors.Join, custom and sentinel errors, panic/recover, single handling rule, slog logging, samber/oops. Apply when creating, wrapping, inspecting, or logging errors. oops → `golang-samber-oops`;…
Compile-time dependency injection in Golang using google/wire — wire.NewSet, wire.Build, wire.Bind, wire.Struct, wire.FieldsOf, cleanup, wireinject, wire_gen.go. Apply when using google/wire, when code imports `github.com/google/wire`, or wiring at compile…
Golang semantic code intelligence via `gopls` — go-to-definition, references, call hierarchy, symbols, diagnostics, rename, refactors. Use when navigating or refactoring Go code. Not for published ecosystem → `golang-pkg-go-dev`; vuln audits →…
GraphQL APIs in Go using gqlgen or graphql-go. Apply when building GraphQL servers, designing schemas, writing resolvers, handling subscriptions, or integrating GraphQL with Go HTTP services. Also when the codebase imports `github.com/99designs/gqlgen` or…
gRPC usage, protobuf organization, and production patterns for Go 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,…
Golang skills orchestrator — always active on any Go coding, review, debug, or setup task. Loads the most relevant samber/cc-skills-golang skills, disambiguating overlapping clusters. Configures agent-config files (CLAUDE.md, AGENTS.md, GEMINI.md, Cursor,…
Linting best practices and golangci-lint configuration for Go — running linters, configuring .golangci.yml, nolint suppressions, selecting linters. Use when setting up golangci-lint or code quality tooling, handling lint warnings or nolint, or when go vet,…
Modernize Go code to recent language features, standard library improvements, and idiomatic patterns. Trigger proactively when writing or reviewing Go code with old-style patterns or a deprecation warning, or when the user asks for modernization, a Go version…
Go naming conventions — packages, constructors, structs, interfaces, enums, errors, receivers, getters/setters, acronyms, tests. Use when writing/reviewing Go code or picking between naming alternatives (New vs NewTypeName, ErrNotFound vs NotFoundError). Not…
Go observability — always-on production signals: slog logging, Prometheus metrics, OpenTelemetry tracing, pprof profiling, alerting, Grafana. Apply when instrumenting Go services or migrating zap/logrus/zerolog to slog. Not for performance deep-dives (→…
Go performance optimization — if X bottleneck, apply Y: allocation reduction, CPU/memory efficiency, GC tuning, pooling, caching, hot paths. Use when a profiled/benchmarked bottleneck needs the fix pattern. Not for measurement (→ golang-benchmark) or…
Golang package/module docs via `godig`, a pkg.go.dev API client (CLI + MCP) — APIs, symbols, versions, importers, licenses, vulnerabilities. Use to look up Go library docs, signatures, or CVEs — prefer over Context7. Not for deps, library choice, local…
Golang project layouts and workspaces. Use when starting a new Go project, organizing an existing codebase, setting up a monorepo, creating CLI tools with multiple main packages, deciding between cmd/internal/pkg conventions, or discussing package…
Golang refactoring — safe restructuring at scale: safety-net tests, tool-driven transforms (gopls Rename/Inline/Extract, `gofmt -r`), import cycles, stacked PRs. Apply for code smells, renames, extracting functions/interfaces, splitting packages. Styles →…
Defensive Go coding to prevent panics, silent data corruption, and subtle runtime bugs. Use for nil panics, append aliasing, concurrent map access, float comparison pitfalls, zero-value design; or when reviewing for nil-safety, numeric overflow, defer in…
Dependency injection in Go using samber/do — service containers, lifecycle, scopes, health checks, graceful shutdown, module organization. Apply when using or adopting samber/do, when the codebase imports github.com/samber/do(/v2), or when refactoring…
In-memory caching in Go using samber/hot — eviction (LRU, LFU, TinyLFU, S3FIFO, ARC, SIEVE), TTL, loaders, sharding, stale-while-revalidate, missing-key caching, metrics. Apply when using samber/hot, on github.com/samber/hot imports, or to cut latency on hot…
Functional helpers for Go using samber/lo — 500+ type-safe generics for slices, maps, strings, concurrency (Map, Filter, Reduce); concurrent (lo/parallel), in-place (lo/mutable), lazy iterators (lo/it). Apply when using/importing github.com/samber/lo. Not for…
Monadic types in Golang via samber/mo — Option, Result, Either, Future, IO, Task, State for type-safe nullable values, error handling, functional composition. Apply when using/adopting samber/mo, when the codebase imports github.com/samber/mo, or for…
Structured error handling in Golang with samber/oops — error builders, stack traces, codes, context, wrapping, attributes, user-facing vs developer messages, panic recovery, logger integration. Apply when using/adopting samber/oops or the codebase imports…
Reactive streams in Golang using samber/ro — ReactiveX with 150+ operators, cold/hot observables, subjects, Pipe pipelines, backpressure. Apply when using/adopting samber/ro, when the codebase imports it, or building async event pipelines. Not for finite…
Structured logging extensions for Golang using samber/slog-* — multi-handler pipelines, sampling, attribute formatting, HTTP middleware (gin, echo, fiber, chi), backend routing (datadog, sentry, loki, syslog). Apply when using slog or on…
Security best practices for Golang — injection (SQL, command, XSS), cryptography, filesystem safety, network security, cookies, secrets, memory safety, logging. Apply when writing, reviewing, or auditing Go code for security, or on risky code involving…
CLI command tree library for Golang using spf13/cobra — cobra.Command, RunE vs Run, PreRun hooks, Args validators, persistent vs local flags, shell completion, testing via SetArgs. Apply when using/adopting cobra or the codebase imports…
Golang configuration library using spf13/viper — layered precedence (flag > env > file > KV > default), AutomaticEnv, ReadInConfig, Unmarshal + mapstructure, WatchConfig hot reload. Apply when using/adopting viper or the codebase imports…
Golang testing with stretchr/testify — assert, require, mock, suite: assertions, mock expectations, argument matchers, suite lifecycle, Eventually, JSONEq. Use when writing testify tests, creating mocks, choosing assert vs require, or when the codebase…