golang-data-structures
golang-data-structures is a skill in samber/cc-skills-golang, last changed 2 Sept 2026. It can run shell commands, name web addresses and pre-approve tools — read the findings before installing. Our pattern check found 1 item to review at commit 246b6c4 on 27 Oct 2026.
Pattern check: 1 item to review · commit 246b6c4 · 27 Oct 2026
InstallGolang 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. Not for applying optimization patterns once profiling has identified a bottleneck (→ See `samber/cc-skills-golang@golang-performance` skill).
- Licence
- MIT
- Repo stars
- 3.7k
- Folder last changed
- 2 Sept 2026 (opens in a new tab)
- Publisher
- samber
- Files
- 7 files
- Checked
- 246b6c4 (opens in a new tab) · 27 Oct 2026
Install
Each tab says whether it installs commit 246b6c4, the one we checked, or the latest version.
No tab for your agent? Use Any agent for OpenCode, Goose, Windsurf (Devin Desktop), Zed, Roo Code, Factory Droid, Junie, Amp and Antigravity, and Claude Code for Cline. Kiro needs the folder copied by hand.
Pinned to commit 246b6c4, the one we checked.
From your project's root folder:
tmp="$(mktemp -d)" &&
git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/samber/cc-skills-golang.git "$tmp" &&
git -C "$tmp" fetch -q --depth 1 origin 246b6c4c1ab3077dee114beb9ade3bb0527dfebc &&
git -C "$tmp" sparse-checkout set -- skills/golang-data-structures &&
git -C "$tmp" checkout -q 246b6c4c1ab3077dee114beb9ade3bb0527dfebc &&
mkdir -p .claude/skills &&
mkdir .claude/skills/golang-data-structures &&
cp -R "$tmp"/skills/golang-data-structures/. .claude/skills/golang-data-structures/ &&
rm -rf "$tmp"If Claude Code was already running and this created the skills folder, run /reload-skills.
Pinned to commit 246b6c4, the one we checked.
Skills in the Claude apps belong to your account rather than to a project.
Make golang-data-structures.zip, with the skill folder at the top level:
tmp="$(mktemp -d)" &&
git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/samber/cc-skills-golang.git "$tmp" &&
git -C "$tmp" fetch -q --depth 1 origin 246b6c4c1ab3077dee114beb9ade3bb0527dfebc &&
git -C "$tmp" sparse-checkout set -- skills/golang-data-structures &&
git -C "$tmp" checkout -q 246b6c4c1ab3077dee114beb9ade3bb0527dfebc &&
out="$(mktemp -d)" &&
cp -R "$tmp"/skills/golang-data-structures "$out"/golang-data-structures &&
(cd "$out" && zip -qr - golang-data-structures) > golang-data-structures.zip &&
rm -rf "$tmp" "$out"In Claude, open Customize > Skills, select +, then + Create skill > Upload a skill, and choose golang-data-structures.zip.
On Free, Pro and Max plans, turn on Code execution and file creation (Create and edit files in newer settings) under Settings > Capabilities.
Pinned to commit 246b6c4, the one we checked.
From your project's root folder:
tmp="$(mktemp -d)" &&
git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/samber/cc-skills-golang.git "$tmp" &&
git -C "$tmp" fetch -q --depth 1 origin 246b6c4c1ab3077dee114beb9ade3bb0527dfebc &&
git -C "$tmp" sparse-checkout set -- skills/golang-data-structures &&
git -C "$tmp" checkout -q 246b6c4c1ab3077dee114beb9ade3bb0527dfebc &&
mkdir -p .agents/skills &&
mkdir .agents/skills/golang-data-structures &&
cp -R "$tmp"/skills/golang-data-structures/. .agents/skills/golang-data-structures/ &&
rm -rf "$tmp"Codex picks up new skills on its own; restart it if this one does not appear.
Pinned to commit 246b6c4, the one we checked.
From your project's root folder:
tmp="$(mktemp -d)" &&
git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/samber/cc-skills-golang.git "$tmp" &&
git -C "$tmp" fetch -q --depth 1 origin 246b6c4c1ab3077dee114beb9ade3bb0527dfebc &&
git -C "$tmp" sparse-checkout set -- skills/golang-data-structures &&
git -C "$tmp" checkout -q 246b6c4c1ab3077dee114beb9ade3bb0527dfebc &&
mkdir -p .cursor/skills &&
mkdir .cursor/skills/golang-data-structures &&
cp -R "$tmp"/skills/golang-data-structures/. .cursor/skills/golang-data-structures/ &&
rm -rf "$tmp"Pinned to commit 246b6c4, the one we checked.
From your project's root folder:
tmp="$(mktemp -d)" &&
git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/samber/cc-skills-golang.git "$tmp" &&
git -C "$tmp" fetch -q --depth 1 origin 246b6c4c1ab3077dee114beb9ade3bb0527dfebc &&
git -C "$tmp" sparse-checkout set -- skills/golang-data-structures &&
git -C "$tmp" checkout -q 246b6c4c1ab3077dee114beb9ade3bb0527dfebc &&
mkdir -p .github/skills &&
mkdir .github/skills/golang-data-structures &&
cp -R "$tmp"/skills/golang-data-structures/. .github/skills/golang-data-structures/ &&
rm -rf "$tmp"In a running Copilot CLI session, run /skills reload.
Or install it with gh skill, which also installs the commit we checked. Needs GitHub CLI 2.90 or later.
gh skill install samber/cc-skills-golang skills/golang-data-structures/SKILL.md@246b6c4c1ab3077dee114beb9ade3bb0527dfebc --agent github-copilot --scope projectPinned to commit 246b6c4, the one we checked.
From your project's root folder:
tmp="$(mktemp -d)" &&
git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/samber/cc-skills-golang.git "$tmp" &&
git -C "$tmp" fetch -q --depth 1 origin 246b6c4c1ab3077dee114beb9ade3bb0527dfebc &&
git -C "$tmp" sparse-checkout set -- skills/golang-data-structures &&
git -C "$tmp" checkout -q 246b6c4c1ab3077dee114beb9ade3bb0527dfebc &&
mkdir -p .gemini/skills &&
mkdir .gemini/skills/golang-data-structures &&
cp -R "$tmp"/skills/golang-data-structures/. .gemini/skills/golang-data-structures/ &&
rm -rf "$tmp"In a running session, run /skills reload.
Or use Gemini CLI’s own installer. Installs the latest version, not the one we checked.
gemini skills install https://github.com/samber/cc-skills-golang.git --path skills/golang-data-structures --scope workspacePinned to commit 246b6c4, the one we checked.
Codex, Cursor, Copilot, VS Code, Gemini CLI, OpenCode, Goose, Amp and Zed all read .agents/skills; Claude Code and Kiro list only their own folders.
From your project's root folder:
tmp="$(mktemp -d)" &&
git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/samber/cc-skills-golang.git "$tmp" &&
git -C "$tmp" fetch -q --depth 1 origin 246b6c4c1ab3077dee114beb9ade3bb0527dfebc &&
git -C "$tmp" sparse-checkout set -- skills/golang-data-structures &&
git -C "$tmp" checkout -q 246b6c4c1ab3077dee114beb9ade3bb0527dfebc &&
mkdir -p .agents/skills &&
mkdir .agents/skills/golang-data-structures &&
cp -R "$tmp"/skills/golang-data-structures/. .agents/skills/golang-data-structures/ &&
rm -rf "$tmp"Or use the skills CLI from skills.sh. Installs the latest version, not the one we checked. The skills CLI reports installs to skills.sh unless you set DISABLE_TELEMETRY=1.
npx skills@1.7.4 add samber/cc-skills-golang --skill golang-data-structuresWhat it can touch
From the files and frontmatter at commit 246b6c4. This is how much a skill can do, not whether it is risky.
What it can touch: Shell, network or credentials
Runs shell commands
Its instructions or files give the agent commands to run on your computer.
Names web addresses
It mentions outside web addresses the agent may visit. We list them but don't follow them.
Pre-approves tools
Its allowed-tools field lists tools the agent may use without asking you first, in agents that honour it.
SKILL.md:17
Pattern check
Pattern check: 1 item to review · commit 246b6c4 · 27 Oct 2026
R34 · HighBroad tools pre-approved in allowed-tools
SKILL.md:17 (opens in a new tab)allowed-tools: Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent Bash(godig:*) Bash(gopls:*) LSP mcp__gopls__* mcp__context7__resolve-library-id mcp__context7__query-docs
We checked every text file in this skill, at commit 246b6c4 on 27 Oct 2026, against 45 published patterns such as download-and-run commands, hidden text and credential access. We don't run the skill, we don't read the web pages it points to, and we can't judge everything its instructions might lead an agent to do. In published tests, pattern checks like this one missed most malicious skills. Read the skill before you install it — especially anything it asks you to download or run.
How the check worksReport an incorrect finding
Outside links we did not follow
- https://github.com/samber/cc-skills-golang
- https://research.swtch.com/godata
- https://go.dev/ref/mem
- https://go.dev/doc/effective_go
Format check
Each agent reads SKILL.md a little differently. We check the file against each one's published rules; we don't run the skill in any agent.
Agent Skills specPasses with warnings
The open format from agentskills.io, held to what the strictest agents enforce, so one folder loads everywhere.
- Warning
The frontmatter uses [ ] or { } values. Most agents accept them, but the spec's validator (skills-ref) rejects the file. F4
Fix: Write lists as "- item" lines and maps as indented key: value lines, without anchors or tags.
- Warning
Fields outside the spec: user-invocable (read by Claude Code and VS Code) and paths (read by Claude Code). Uploads to the Claude apps and API, and the spec's validator, reject the file; most agents ignore these fields. O1
Fix: Delete them for a portable skill, or keep them if you only target the agents that read them.
- Warning
metadata values should be text; openclaw (a map) is not. The spec's validator turns them into text; other readers may not. O4
Fix: Quote each value, for example version: "1.0".
- Note
Anthropic's packaging script leaves these out: evals/. F8
Fix: Delete them, or list them in .gitignore.
- Note
The first sentence of the description is 287 characters. Agents shorten long descriptions, so lead with the main job. D8
Fix: Start with one short sentence that names the job.
- Warning
Claude CodePasses
Claude Code reads its own extra fields, ignores unknown ones, and still loads a skill whose frontmatter is broken, without its fields.
Claude apps & API uploadFails
Uploading to claude.ai or the Claude API, or packaging with Anthropic's script, accepts only the six spec fields and stops on anything else.
- Error
Upload and packaging fail on fields outside the spec: user-invocable and paths. O1
Fix: Delete them, and keep your own data under metadata as text values.
- Note
Anthropic's packaging script leaves these out: evals/. F8
Fix: Delete them, or list them in .gitignore.
- Note
The description is 602 characters. The claude.ai Help Center says 200 at most, though Anthropic's API docs and validator allow 1,024. D4
Fix: If the claude.ai upload refuses it, trim the description to 200 characters.
- Note
metadata values should be text; openclaw (a map) is not. The spec defines metadata as text to text. O4
Fix: Quote each value, for example version: "1.0".
- Error
OpenAI (Codex & API)Passes with warnings
Codex finds SKILL.md by its exact name and needs a description; OpenAI's Skills API checks the frontmatter against the spec and caps uploads.
- Warning
Fields outside the spec: user-invocable and paths. Codex ignores them; OpenAI doesn't say whether its upload accepts them. O1
Fix: Delete them, or move your own data under metadata as text values.
- Warning
metadata values should be text; openclaw (a map) is not. OpenAI's upload follows the spec's text-to-text rule. O4
Fix: Quote each value, for example version: "1.0".
- Note
Anthropic's packaging script leaves these out: evals/. F8
Fix: Delete them, or list them in .gitignore.
- Note
The first sentence of the description is 287 characters. Agents shorten long descriptions, so lead with the main job. D8
Fix: Start with one short sentence that names the job.
- Warning
VS Code & CopilotPasses
VS Code reads skills one folder below .github/skills, .claude/skills or .agents/skills and falls back to the folder name when the name is missing or differs; GitHub's Copilot docs require the exact name SKILL.md.
SKILL.md
Files
7 files
More from samber/cc-skills-golang
golang-benchmark
samber/cc-skills-golang
Golang benchmarking, profiling, and performance measurement. Use when writing, running, or comparing Go benchmarks, profiling hot paths with pprof, interpreting CPU/memory/trace profiles, analyzing results with benchstat, setting up CI benchmark regression detection, or investigating production performance with Prometheus runtime metrics. Also use when the developer needs deep analysis on a specific performance indicator - this skill provides the measurement methodology, while `samber/cc-skills-golang@golang-performance` provides the optimization patterns.
- Downloads software
- Runs shell commands
- +3 more
Pattern check: 1 item to reviewMIT · 3.7k repo stars · Updated 2 Sept 2026
golang-cli
samber/cc-skills-golang
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. For cobra-specific APIs → See `samber/cc-skills-golang@golang-spf13-cobra` skill; for viper configuration layering → See `samber/cc-skills-golang@golang-spf13-viper` skill.
- Runs shell commands
- Names web addresses
- +2 more
Pattern check: 1 item to reviewMIT · 3.7k repo stars · Updated 23 Oct 2026
golang-code-style
samber/cc-skills-golang
Golang code style conventions — line length and breaking, variable declarations, control flow clarity, when comments help vs hurt. Use when writing or reviewing Go code, asking about style or clarity, or establishing project coding standards. Not for naming conventions (→ See `samber/cc-skills-golang@golang-naming` skill), linter configuration (→ See `samber/cc-skills-golang@golang-lint` skill), or doc comments (→ See `samber/cc-skills-golang@golang-documentation` skill).
- Runs shell commands
- Names web addresses
- +1 more
Pattern check: 1 item to reviewMIT · 3.7k repo stars · Updated 19 Aug 2026
golang-concurrency
samber/cc-skills-golang
Golang concurrency design — goroutine lifecycle and leak prevention, channels and `select`, channel ownership and direction, `sync.Mutex`/`RWMutex`/`sync.Map`/`sync.Once`/atomics, `errgroup`, `singleflight`, worker pools, and fan-out/fan-in pipelines. Use when writing or reviewing concurrent Go code, when choosing between channels and mutexes, when protecting a shared map or counter, or when a goroutine has no clear exit. Not for defensive coding unrelated to concurrency such as nil panics, slice aliasing, or numeric overflow (→ See `samber/cc-skills-golang@golang-safety` skill), and not for debugging a specific hung, crashing, or racing program after the fact (→ See `samber/cc-skills-golang@golang-troubleshooting` skill).
- Runs shell commands
- Reaches the network
- +2 more
Pattern check: 1 item to reviewMIT · 3.7k repo stars · Updated 2 Sept 2026
golang-context
samber/cc-skills-golang
Idiomatic context.Context usage in Golang — propagation through API boundaries, cancellation, timeouts and deadlines, request-scoped values, context.WithoutCancel for background work outliving requests. Apply when designing context propagation across layers, debugging leaked or unexpired contexts, choosing between context.Background/TODO/WithoutCancel, or storing values in context. Not for code that merely accepts ctx as first parameter.
- Runs shell commands
- Reaches the network
- +2 more
Pattern check: 1 item to reviewMIT · 3.7k repo stars · Updated 1 Sept 2026
golang-continuous-integration
samber/cc-skills-golang
GitHub Actions CI/CD pipeline configuration for Golang projects — workflow files for test, lint, SAST, coverage and vulnerability-scan jobs, Dependabot and Renovate config files, GoReleaser release pipelines, Docker build/push, repository security settings, and AI-driven PR review. Use when setting up or improving Go project CI, writing or fixing `.github/workflows/*.yml`, adding a linter or security scanner as a pipeline job, wiring automated dependency-update bots, or adding quality gates. Covers wiring tools into a pipeline, not the analysis they perform: do NOT use for choosing or interpreting security findings (→ See `samber/cc-skills-golang@golang-security` skill) or for choosing, upgrading, or auditing dependency versions (→ See `samber/cc-skills-golang@golang-dependency-management` skill).
- Touches credentials
- Downloads software
- +6 more
Pattern check: 1 item to reviewMIT · 3.7k repo stars · Updated 2 Sept 2026