Install
$ agentstack add skill-cxuu-golang-skills-go-documentation ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Go Documentation
Resource Routing
scripts/check-docs.sh- Run when checking exported functions, types, methods, constants, and packages for missing doc comments.scripts/check-docs-ast.go- Implementation helper invoked bycheck-docs.sh; patch this when changing documentation analysis behavior.assets/doc-template.go- Use when starting a documented package or exported API.references/CONVENTIONS.md- Read when documenting parameters, context behavior, concurrency safety, cleanup, errors, or named results.references/EXAMPLES.md- Read when adding runnable examples or package examples.references/FORMATTING.md- Read when formatting Godoc lists, paragraphs, links, and code blocks.
Doc Comments
> Normative: All top-level exported names must have doc comments.
Basic Rules
- Begin with the name of the object being described
- An article ("a", "an", "the") may precede the name
- Use full sentences (capitalized, punctuated)
// A Request represents a request to run a command.
type Request struct { ...
// Encode writes the JSON encoding of req to w.
func Encode(w io.Writer, req *Request) { ...
Unexported types/functions with unobvious behavior should also have doc comments.
> Validation: After adding doc comments, run bash scripts/check-docs.sh to verify no exported symbols are missing documentation. Fix any gaps before proceeding.
Comment Sentences
> Normative: Documentation comments must be complete sentences.
- Capitalize the first word, end with punctuation
- Exception: may begin with uncapitalized identifier if clear
- End-of-line comments for struct fields can be phrases
Comment Line Length
> Advisory: Aim for ~80 columns, but no hard limit.
Break based on punctuation. Don't split long URLs.
Struct Documentation
Group fields with section comments. Mark optional fields with defaults:
type Options struct {
// General setup:
Name string
Group *FooGroup
// Customization:
LargeGroupThreshold int // optional; default: 10
}
Package Comments
> Normative: Every package must have exactly one package comment.
// Package math provides basic constants and mathematical functions.
package math
- For
mainpackages, use the binary name:// The seed_generator command ... - For long package comments, use a
doc.gofile
What to Document
> Advisory: Document non-obvious behavior, not obvious behavior.
| Topic | Document when... | Skip when... | |-------|-----------------|--------------| | Parameters | Non-obvious behavior, edge cases | Restates the type signature | | Contexts | Behavior differs from standard cancellation | Standard ctx.Err() return | | Concurrency | Ambiguous thread safety (e.g., read that mutates) | Read-only is safe, mutation is unsafe | | Cleanup | Always document resource release | — | | Errors | Sentinel values, error types (use *PathError) | — | | Named results | Multiple params of same type, action-oriented names | Type alone is clear enough |
Key principles:
- Context cancellation returning
ctx.Err()is implied — don't restate it - Read-only ops are assumed thread-safe; mutations assumed unsafe — don't restate
- Always document cleanup requirements (e.g.,
Call Stop to release resources) - Use pointer in error type docs (
*PathError) for correcterrors.Is/errors.As - Don't name results just to enable naked returns — clarity > brevity
Runnable Examples
> Advisory: Provide runnable examples in test files (*_test.go).
func ExampleConfig_WriteTo() {
cfg := &Config{Name: "example"}
cfg.WriteTo(os.Stdout)
// Output:
// {"name": "example"}
}
Examples appear in Godoc attached to the documented element.
Quick Reference
| Topic | Key Rule | |-------|----------| | Doc comments | Start with name, use full sentences | | Line length | ~80 chars, prioritize readability | | Package comments | One per package, above package clause | | Parameters | Document non-obvious behavior only | | Contexts | Document exceptions to implied behavior | | Concurrency | Document ambiguous thread safety | | Cleanup | Always document resource release | | Errors | Document sentinels and types (note pointer) | | Examples | Use runnable examples in test files | | Formatting | Blank lines for paragraphs, indent for code |
Related Skills
- Naming conventions: See [go-naming](../go-naming/SKILL.md) when choosing names for the identifiers your doc comments describe
- Testing examples: See [go-testing](../go-testing/SKILL.md) when writing runnable
Exampletest functions that appear in godoc - Linting enforcement: See [go-linting](../go-linting/SKILL.md) when using revive or other linters to enforce doc comment presence
- Style principles: See [go-style-core](../go-style-core/SKILL.md) when balancing documentation verbosity against clarity and concision
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: cxuu
- Source: cxuu/golang-skills
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.