golang-structs-interfaces SKILL.md skillA

This file is byte-identical to the first copy the registry indexed. Same content hash, so the same checks give both the same grade.

golang-structs-interfaces from yzfly/skills is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.

Install it, pinned
mdr add yzfly/skills/golang-structs-interfaces@v1.1.3

Pins v1.1.3 in mdr.lock. Pin the fingerprint instead.

Audit grade
A, 17 of 17 checks passed
Kind
SKILL.md skill
Repository
yzfly/skills
Path
skills/cto/references/payload/backend/golang/golang-structs-interfaces/SKILL.md
Versions recorded
1
Latest version
v1.1.3, committed May 3, 2026
Size
13,159 bytes
Repository stars
12
License
a license file GitHub does not identify

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…

Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.

What the file says

**Persona:** You are a Go type system designer. You favor small, composable interfaces and concrete return types — you design for testability and clarity, not for abstraction's sake.

> **Community default.** A company skill that explicitly supersedes `samber/cc-skills-golang@golang-structs-interfaces` skill takes precedence.

# Go Structs & Interfaces

## Interface Design Principles

### Keep Interfaces Small

> "The bigger the interface, the weaker the abstraction." — Go Proverbs

Interfaces SHOULD have 1-3 methods. Small interfaces are easier to implement, mock, and compose. If you need a larger contract, compose it from small interfaces:

→ See `samber/cc-skills-golang@golang-naming` skill for interface naming conventions (method + "-er" suffix, canonical names)

```go
type Reader interface {
    Read(p []byte) (n int, err error)
}

type Writer interface {
    Write(p []byte) (n int, err error)
}

// Composed from small interfaces
type ReadWriter interface {
    Reader
    Writer
}
```

Compose larger interfaces from smaller ones:

```go
type ReadWriteCloser interface {
    io.Reader
    io.Writer
    io.Closer
}
```

### Define Interfaces Where They're Consumed
…

Read the whole file at its exact version.

How to install

The exact contents, by fingerprint
mdr add yzfly/skills/golang-structs-interfaces@sha256:e1e9192aab7b3c05

The line at the top of this page pins the label v1.1.3, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.

Badge

mdr badge

[![mdr](https://markdownregistry.com/badge/art_2335wqch6cl6ha6k.svg)](https://markdownregistry.com/a/art_2335wqch6cl6ha6k)

5 badge image fetches in 30 days. What the badge shows.

Versions

The registry has recorded 1 version of this file, committed on May 3, 2026.

versioncommittedcommitsizeaudit
v1.1.3 latest2026-05-03 c091e90 13,159 BA view

Audit of the latest version

A  17 of 17 checks passed. Fixed automatic checks with no AI involved, so the same checks give the same answer every run.
  • pass: Frontmatter block present
  • pass: Frontmatter declares a name
  • pass: Frontmatter declares a description
  • pass: Size between 200 bytes and 200 KB (13159 bytes)
  • pass: No zero-width or bidi control characters
  • pass: No instruction hidden inside an HTML comment
  • pass: No link to an exfiltration or paste host
  • pass: No credential-shaped string
  • pass: No instruction to send local credentials anywhere
  • pass: No text hidden with inline styles
  • pass: No prompt-injection phrasing
  • pass: No curl or wget piped into a shell
  • pass: No recursive delete of root, home or parent
  • pass: No instruction to read or print local credentials
  • pass: No base64 blob over 200 characters
  • pass: No link to a raw IP address
  • pass: No script tag

Source

GitHub

yzfly/skills · 12 stars · license a license file GitHub does not identify · pushed 2026-09-26 · branch main

API

GET https://markdownregistry.com/api/v1/artifacts/art_2335wqch6cl6ha6k
GET https://markdownregistry.com/api/v1/resolve?ref=yzfly/skills/golang-structs-interfaces
GET https://markdownregistry.com/api/v1/blob/e1e9192aab7b3c05f3e4e6c7fbe00b634dda870932f5862e386d7b472247bf8e

Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.

Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.

More from yzfly/skills

anti-ai-copy SKILL.md skill
yzfly/skills · skills/anti-ai-copy/SKILL.md · 软件界面文案(UI copy / microcopy / UX writing)写作与去 AI 味。当用户要写、改、审界面文案时使用:按钮、页面标题、表单标签、占位符、空状态、Toast /…
v1.0.0 · audit A · 12 stars
brand-narrative SKILL.md skill
yzfly/skills · skills/brand-narrative/SKILL.md · 品牌叙事策略。当用户要做品牌叙事 / 品牌故事 / 品牌定位 / 品牌策略、问「我们的品牌到底围绕什么」「该讲产品还是讲文化」、想判断某个新品 / 联名 / 内容「符不符合品牌」、或为 0–1…
v1.0.0 · audit A · 12 stars
breathing-brand SKILL.md skill
yzfly/skills · skills/breathing-brand/SKILL.md · 出海 / 国际化品牌的极简呼吸感视觉全案。当用户说要做品牌 VI、品牌视觉、logo 与周边、独立站视觉、社区 / 组织 / 产品的品牌形象,或抱怨自己的品牌「看起来廉价」「太满太乱」「不够国际化 /…
v1.0.0 · audit A · 12 stars
cto SKILL.md skill
yzfly/skills · skills/cto/SKILL.md · Startup / AI-startup CTO who is also a top-tier individual contributor. Two modes: (1) greenfield — turn fuzzy business…
git:20260504.146b163 · audit A · 12 stars
golang-benchmark SKILL.md skill
yzfly/skills · skills/cto/references/payload/backend/golang/golang-benchmark/SKILL.md · Golang benchmarking, profiling, and performance measurement. Use when writing, running, or comparing Go benchmarks…
v1.1.3 · audit A · 12 stars
golang-cli SKILL.md skill
yzfly/skills · skills/cto/references/payload/backend/golang/golang-cli/SKILL.md · Golang CLI application development. Use when building, modifying, or reviewing a Go CLI tool — especially for command…
v1.1.3 · audit A · 12 stars
golang-code-style SKILL.md skill
yzfly/skills · skills/cto/references/payload/backend/golang/golang-code-style/SKILL.md · Golang code style, formatting and conventions. Use when writing Go code, reviewing style, configuring linters, writing…
v1.1.2 · audit A · 12 stars
golang-concurrency SKILL.md skill
yzfly/skills · skills/cto/references/payload/backend/golang/golang-concurrency/SKILL.md · Golang concurrency patterns. Use when writing or reviewing concurrent Go code involving goroutines, channels, select…
v1.1.3 · audit A · 12 stars
golang-context SKILL.md skill
yzfly/skills · skills/cto/references/payload/backend/golang/golang-context/SKILL.md · Idiomatic context.Context usage in Golang — creation, propagation, cancellation, timeouts, deadlines, context values…
v1.1.1 · audit A · 12 stars
golang-continuous-integration SKILL.md skill
yzfly/skills · skills/cto/references/payload/backend/golang/golang-continuous-integration/SKILL.md · Provides CI/CD pipeline configuration using GitHub Actions for Golang projects. Covers testing, linting, SAST, security…
v1.2.0 · audit A · 12 stars
golang-data-structures SKILL.md skill
yzfly/skills · skills/cto/references/payload/backend/golang/golang-data-structures/SKILL.md · Golang data structures — slices (internals, capacity growth, preallocation, slices package), maps (internals, hash…
v1.1.1 · audit A · 12 stars
golang-database SKILL.md skill
yzfly/skills · skills/cto/references/payload/backend/golang/golang-database/SKILL.md · Comprehensive guide for Go database access. Covers parameterized queries, struct scanning, NULLable column handling…
v1.1.2 · audit A · 12 stars

Every file in yzfly/skills

Other files named golang-structs-interfaces

golang-structs-interfaces SKILL.md skill
samber/cc-skills-golang · skills/golang-structs-interfaces/SKILL.md · Golang struct and interface design patterns — composition, embedding, type assertions, type switches, interface…
v1.2.1 · audit A · 3,523 stars
golang-structs-interfaces SKILL.md skill
aiskillstore/marketplace · pending/samber/golang-structs-interfaces/SKILL.md · Golang struct and interface design patterns — composition, embedding, type assertions, type switches, interface…
v1.2.1 · audit A · 439 stars
golang-structs-interfaces SKILL.md skill
omarluq/librecode · .librecode/skills/golang-structs-interfaces/SKILL.md · Golang struct and interface design patterns — composition, embedding, type assertions, type switches, interface…
v1.1.3 · audit A · 30 stars

Browse by kind, by grade A, or by owner.