Token导航 LogoToken导航

Agent Skill · 前端设计

go-developer(去开发者)

go-developer 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

go-developer 是前端设计类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为需要联网;许可证信息还不明确,第三方扫描有提醒项,按安装量在前端设计类的 10,216 个 Skill 里排第 9,864。

总安装 192周安装 8GitHub Stars 4下载 64核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:go-developer(去开发者)
来源仓库:https://github.com/gvre/skills
仓库路径:skills/go-developer
安装命令:
npx skills add https://github.com/gvre/skills --skill go-developer
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/gvre/skills --skill go-developer

这个 Skill 是做什么的

前端设计类 Skill 关注页面结构、视觉规范和组件写法,输出通常是可运行的界面代码。

用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息。适合在 Codex、Claude、Cursor、Gemini CLI 中围绕仓库状态、代码变更或协作事项进行整理。可结合来源仓库、安装命令和原始 README 核验具体用法。

安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。注意该技能归类为前端设计,但实际功能更偏向开发者工具集成。

来源仓库内路径:skills/go-developer

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/gvre/skills --skill go-developer;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

go-developer 怎么安装?

在终端执行 npx skills add https://github.com/gvre/skills --skill go-developer。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

go-developer 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

go-developer 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

go-developer 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

go-developer 用的人多吗?

公开数据是累计安装 192 次,近一周安装 8 次,下载 64 次,GitHub 4 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

go-developer 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理前端设计类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

前端设计类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
frontend-design

前端设计 · Codex、Claude

8,823,360126,072只读MIT通过
vercel-composition-patterns

Vercel 组合模式 · Codex、Claude

3,858,81625,893需要联网MIT通过
vercel-react-native-skills

Vercel React native skills 前端 · Codex、Claude

2,468,66425,878只读MIT通过
adapt

adapt 搜索 · Codex、Claude

2,027,04023,125操作浏览器未明确通过
bolder

bolder 分析 · Codex、Claude

2,004,28823,130只读未明确通过
go-developer

去开发者 · 本页

1924需要联网未明确有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Go Developer

Guide for writing production-quality Go 1.25+ projects following current best practices.

Structure: This file contains rules, guidelines, and compact examples. For full code examples and deep dives, see the files in references/. Consult them when you need implementation details beyond what's shown here.

Version Support

This guide covers:

Feature Version Matrix

Feature1.251.26
Container-aware GOMAXPROCS✅✅
sync.WaitGroup.Go()✅✅
testing/synctest (stable)✅✅
go doc -http=:6060✅✅
go.mod ignore directive✅✅
Green Tea GC (default)❌ (experimental)✅
new(expr) initialization❌✅
Self-referential generic types❌✅
errors.AsType❌✅
Rewritten go fix with modernizers❌✅
pprof flame graphs by default❌✅

Quick Reference

Core Requirements (1.25+):

  • Go 1.25+ minimum
  • Use go.mod for all dependency management
  • golangci-lint for linting
  • govulncheck for vulnerability scanning
  • Table-driven tests with t.Run
  • Interfaces for dependency injection
  • Explicit error handling (no panics for expected errors)

Project Overrides

How tool settings are resolved depends on the task:

  • Reviewing existing code / PRs: Read go.mod (for go-version) and .golangci.yml (for linter configuration) from the repository. The project's actual configuration is the source of truth. Do not override what the project already defines.
  • Creating new projects: Use the defaults below when no go.mod exists yet.

Local overrides (see "What Can Be Overridden") apply in both modes and take precedence over both the project config and the defaults below.

Defaults for New Projects

SettingDefault
go-version1.25
lintergolangci-lint v2
linter-preseterrcheck, govet, staticcheck, gosec, revive, goimports, misspell, unconvert, unparam, noctx
test-assertionstestify (optional)
loggerslog

What Can Be Overridden

Overrides are not limited to the tool defaults above. A repository can provide any additional context that affects how this skill operates:

  • Domain / business context: what the service does, which external systems it integrates with, critical business invariants the AI would not know from reading code alone.
  • Review behavior: which priority levels to comment on, what to skip, confidence threshold, maximum number of comments.
  • Codebase state: ongoing migrations, known tech debt that is intentional, legacy patterns being phased out (so the AI does not flag them).
  • Team conventions: patterns specific to this codebase that differ from generic best practices.
  • External caveats: downstream consumers, deployment constraints, known limitations in third-party dependencies.

How to Override

Place overrides in whichever local rule file your agent platform uses:

  • Cursor: .cursor/rules/go-overrides.mdc (with globs: "**/*.go")
  • Claude Code: CLAUDE.md at the repository root
  • Generic / agentskills.io: AGENTS.md at the repository root

Only include what differs from the defaults or what adds context the AI cannot infer from the code.

Example override (works in any of the above files):

Go skill overrides for this repository: Domain context: This is an event-driven microservice consuming from Kafka and writing to PostgreSQL. Exactly-once semantics matter — always flag missing transaction boundaries or ack-before-process patterns. Review behavior: - Only flag Priority 1 (Critical) and Priority 2 (Important) issues - Do not comment on naming conventions or package organization - Maximum 5 review comments per PR Codebase state: - Migrating from go-kit to plain stdlib HTTP; mixed patterns in internal/transport/ are intentional - The pkg/legacy/ directory will be removed after v3.0 launch Tool overrides (only when go.mod /.golangci.yml do not define them): - test-assertions: none (use stdlib only)

Module Configuration (go.mod)

module github.com/yourorg/yourproject

go 1.25

require (
    github.com/some/dependency v1.2.3
)

Rules:

  • Pin the minimum Go version you actually require
  • Run go mod tidy regularly to keep go.sum clean
  • Use go mod verify to check module integrity
  • Use go.mod ignore directive (1.25+) to exclude directories from package matching
  • Use go work for multi-module development (monorepos); don't commit go.work for libraries

Interfaces and Dependency Injection

Define interfaces where they are used (consumer side), not where they are implemented.

Rules:

  • Keep interfaces small (1–3 methods) - prefer composition over fat interfaces
  • Accept interfaces, return concrete types
  • Use any instead of interface{}
  • Verify interface satisfaction at compile time: var _ UserRepository = (*PostgresRepo)(nil)

Error Handling

Return errors explicitly - never use panics for expected failures:

  • Wrap errors with context
  • Sentinel errors for known conditions
  • Custom error types for structured context

Inspect error chains with errors.Is (sentinels), errors.As (typed), or errors.AsType[T] (1.26, generic). See references/REFERENCE.md for a full 3-layer error wrapping example (repo → service → handler).

Rules:

  • ALWAYS wrap errors with fmt.Errorf("context: %w", err)
  • NEVER ignore errors (use _ only when truly intentional, add a comment)
  • NEVER return err.Error() to API clients — return static, pre-defined messages; log the full error internally
  • NEVER wrap errors with full structs that may contain sensitive fields (passwords, tokens, PII) — select safe fields explicitly
  • Translate errors at API boundaries — map domain errors to HTTP/gRPC status codes in a dedicated translation function; never let raw upstream errors reach the response
  • Use errors.Is for sentinel errors, errors.As for typed errors
  • Define sentinel errors at the package level with var Err... = errors.New(...)
  • Panic only for programmer errors (nil pointer dereference, index out of bounds in init)

Generics (1.18+) and Iterators (1.23+)

Rules:

  • Use generics for reusable data structures and algorithms, not for everything
  • Prefer interfaces when you need runtime polymorphism (method dispatch)
  • Use comparable constraint for map keys and equality checks
  • Use cmp.Ordered for types that support <, >, <=, >=
  • Don't over-engineer: if a function works fine with any or a concrete type, don't add generics
  • Use iter.Seq[T] for single-value iterators, iter.Seq2[K, V] for key-value pairs
  • Always check yield's return value and stop if it returns false
  • Use slices.Collect, maps.Collect to materialize iterators into concrete types
  • Prefer iterators over returning []T when the caller may not need all elements (lazy evaluation)

See references/generics-guide.md for generic functions, constraints, data structures, self-referential types (1.26), when NOT to use generics, and composable iterator pipelines.

Concurrency

Goroutines and Channels

// ✅ Always handle goroutine lifecycle
func (s *Server) Start(ctx context.Context) error {
    g, ctx := errgroup.WithContext(ctx)

    g.Go(func() error {
        if err := s.httpServer.ListenAndServe(); !errors.Is(err, http.ErrServerClosed) {
            return err
        }
        return nil
    })

    g.Go(func() error {
        <-ctx.Done()
        return s.httpServer.Shutdown(context.Background())
    })

    return g.Wait()
}

// ✅ Use sync.WaitGroup.Go() (1.25+) for fire-and-forget goroutines
var wg sync.WaitGroup
wg.Go(func() {
    processItem(item)
})
wg.Wait()

Context Propagation

// ✅ Always pass context as first parameter
func (s *UserService) GetUser(ctx context.Context, id int64) (*app.User, error) {
    ctx, cancel := context.WithTimeout(ctx, 5*time.Second)
    defer cancel()

    req, err := http.NewRequestWithContext(ctx, http.MethodGet, fmt.Sprintf("/users/%d", id), nil)
    if err != nil {
        return nil, fmt.Errorf("create request: %w", err)
    }
    // ...
}

Rules:

  • ALWAYS pass context.Context as the first parameter
  • NEVER store context in a struct
  • ALWAYS call cancel() when using context.WithCancel or context.WithTimeout
  • Use context.AfterFunc (1.21+) to register cleanup callbacks on context cancellation instead of spawning goroutines that block on <-ctx.Done()
  • Use context.WithoutCancel (1.21+) for background work that should outlive the parent context (carries values but not cancellation)
  • Use errgroup (golang.org/x/sync/errgroup) for concurrent tasks with error propagation
  • Use -race flag in tests to detect data races

Advanced patterns: See references/concurrency-guide.md for channels, mutexes, worker pools, context.WithoutCancel, and sync primitives.

Testing

Key patterns:

  • Use the standard testing package (no external test framework required)
  • Table-driven tests with t.Run for multiple scenarios
  • Use testify for assertions when it reduces boilerplate
  • Mock via interfaces - no magic mocking frameworks needed
  • Use -race flag to detect data races
  • Use testing/synctest (stable in 1.25) for concurrent code testing

See references/testing-guide.md for comprehensive testing patterns, mocking, benchmarks, and fuzzing.

Logging (slog)

Use log/slog (standard library, Go 1.21+).

Rules:

  • Use log/slog — not fmt.Println, not log.Printf
  • Use structured key-value pairs, not string formatting
  • Pass logger via dependency injection, not as a global; use slog.SetDefault only at startup
  • Log at boundaries (handlers/entrypoints) — lower layers wrap and return errors, they don't log
  • Use *Context methods (InfoContext, ErrorContext) to propagate request-scoped data
  • NEVER log sensitive data (passwords, tokens, PII)

See references/logging-guide.md for setup, handlers, middleware, context-aware logging, and custom handlers.

Code Quality

golangci-lint Configuration

Note: The version: "2" format below requires golangci-lint v2+. If your team uses golangci-lint v1, remove the version field and adjust the config accordingly.

# .golangci.yml
version: "2"

linters:
  enable:
    - errcheck       # Check for unchecked errors
    - govet          # Reports suspicious constructs
    - staticcheck    # Comprehensive static analysis
    - gosec          # Security checks
    - revive         # Opinionated linter
    - goimports      # Import formatting
    - misspell       # Spell checker
    - unconvert      # Remove unnecessary type conversions
    - unparam        # Unused function parameters
    - noctx          # Detect HTTP requests without context

linters-settings:
  revive:
    rules:
      - name: exported
      - name: var-naming
  govet:
    enable-all: true

issues:
  exclude-rules:
    - path: _test\.go
      linters:
        - gosec

Naming Conventions

  • Packages: short, lowercase, no underscores: user, httputil, store
  • Functions/variables: camelCase: getUserByID, maxRetries
  • Exported: PascalCase: UserService, ErrNotFound
  • Interfaces: noun or -er suffix: Reader, Stringer
  • Constants: camelCase (unexported) or PascalCase (exported)
  • Acronyms: keep consistent casing: userID, parseURL, HTTPClient

✅ GOOD: getUserByID(), ErrNotFound, ❌ BAD: get_user_by_id(), err_not_found

Security Best Practices

Critical rules:

  • ✅ ALWAYS validate and sanitize user input
  • ✅ ALWAYS use parameterized queries for SQL
  • ✅ ALWAYS load secrets from environment or secret manager
  • ✅ ALWAYS use HTTPS for external APIs
  • ✅ Run govulncheck./... regularly
  • ❌ NEVER hardcode secrets or API keys
  • ❌ NEVER use fmt.Sprintf to build SQL queries
  • ❌ NEVER log sensitive data

Anti-Patterns (Never Do)

  • ❌ Panic for expected errors - use error returns
  • ❌ Ignore errors: result, _:= doSomething()
  • ❌ Store context in a struct field
  • ❌ Use init() for complex initialization
  • ❌ Global mutable state (use dependency injection)
  • ❌ Fat interfaces (>5 methods) - split them
  • ❌ interface{} / any when a concrete type or generic works
  • ❌ Goroutine leaks - always ensure goroutines can exit
  • ❌ Unbuffered channels in hot paths without careful design
  • ❌ time.Sleep in tests - use testing/synctest or channels

Go 1.25 and 1.26 Features

Checklist

For Code Authors

When creating Go code:

  • Go 1.25+ features used where appropriate
  • All errors handled explicitly (no _ without comment)
  • Errors wrapped with fmt.Errorf("context: %w", err)
  • context.Context passed as first parameter
  • cancel() called for every WithCancel/WithTimeout
  • defer Close() on DB rows, HTTP response bodies, file handles
  • Interfaces defined at consumer side, kept small
  • Table-driven tests with t.Run
  • -race flag used in CI
  • golangci-lint passes
  • govulncheck passes
  • Structured logging with slog
  • No hardcoded secrets
  • internal/ used for private code

For Code Reviewers

Review quality rules (apply before writing any comment):

  • Only comment when confident. If you are uncertain whether something is actually wrong, do not comment. A false positive wastes more reviewer and author time than a missed suggestion.
  • Signal over noise. A review with 2 critical findings is more valuable than one with 15 mixed-confidence suggestions. Fewer, higher-quality comments.
  • Default scope: Priority 1 and 2 only. Do not comment on Priority 3 issues unless the repository overrides explicitly request it.
  • Never comment on pure style preferences that the configured linter does not flag. If golangci-lint passes, the style is acceptable.
  • Respect the codebase's current state. If code is in a known migration, uses legacy patterns being phased out, or has documented tech debt, do not flag those patterns unless the override says otherwise.
  • Use domain context when available. A missing transaction boundary in a payment service is critical; the same issue in a CLI utility may not be. Weigh findings against what the code actually does, not just generic rules.
  • Honor review behavior overrides. If the repository sets a maximum comment count, confidence threshold, or excludes certain categories, follow those constraints strictly.

When reviewing Go code, prioritize findings:

Priority 1 - Critical Issues (Must Fix):

  1. Security vulnerabilities (SQL injection, hardcoded secrets, path traversal)
  2. Ignored errors (silent failures, missing error checks)
  3. Goroutine leaks (goroutines that can never exit)
  4. Data races (shared state without synchronization)
  5. Resource leaks (missing defer Close() on DB rows, HTTP response bodies, file handles; missing defer cancel() on contexts)

Priority 2 - Important Improvements (Should Fix):

  1. Missing context propagation (functions missing ctx context.Context)
  2. Error wrapping (errors without context, missing fmt.Errorf("...: %w", err))
  3. Testing gaps (missing table-driven tests, no race detection)

Priority 3 - Nice to Have (Consider Fixing):

  1. Naming conventions (non-idiomatic names)
  2. Package organization (generic package names)
  3. Fat interfaces (interfaces with too many methods — split them)
  4. Performance (unnecessary allocations, missing benchmarks). Escalate to Priority 2 when the impact is concrete: hot-path allocations, missing connection pooling, or blocking operations in goroutines serving concurrent requests.

PR Review Workflow

When asked to review a PR (by number, URL, or branch name):

Step 1: Gather context

  • Fetch the PR description, metadata, and diff using gh pr view and gh pr diff
  • Read go.mod and .golangci.yml for the project's actual configuration
  • Read any local overrides (.cursor/rules/, AGENTS.md, CLAUDE.md)
  • Identify which files changed and their purpose from the PR description

Step 2: Review

  • Apply the review quality rules and priority levels above
  • Assess changes against the PR's stated intention — flag deviations from what the PR says it does, not just generic code quality
  • Ignore files excluded by local overrides (e.g. frozen directories)

Step 3: Present findings

  • Show findings to the user grouped by priority, with file paths and line numbers
  • Do NOT post to GitHub until the user explicitly approves
  • If there are no findings worth flagging, say so — a clean review is a valid outcome

Step 4: Post (only when approved)

  • Post each finding as a separate inline review comment on the specific line in the PR
  • Use a single review submission (not individual comments) so the author gets one notification, not N
  • Submit as a neutral COMMENT review, not REQUEST_CHANGES. The user decides the disposition via follow-up commands below.

Follow-up commands

These should work without repeating the full context:

  • "re-review" — fetch latest changes, review only new/modified hunks, and present findings
  • "approve" — approve the PR with a constructive comment
  • "request changes" — submit the review requesting changes with a summary of outstanding issues

Autonomous mode

When running without a human in the loop (CI, GitHub Actions, bots), apply these defaults instead of the interactive steps above:

  • Scope: Priority 1 and 2 only. Do not comment on P3 issues.
  • Maximum 5 review comments per PR. If there are more findings, post the 5 most critical and note the count of remaining issues in the review summary.
  • Post directly — skip the preview step (Step 3). There is no user to approve.
  • Submit as COMMENT, never REQUEST_CHANGES or APPROVE.
  • If no P1 issues are found, do not post any review. Silence means approval from the autonomous reviewer.
  • On new commits to the same PR, re-review only the changed hunks.

Repository overrides can widen or narrow these defaults (e.g. include P2, raise or lower the max comment count).

Note: Posting to GitHub requires gh CLI to be installed and authenticated.

Resources

The full reference also covers: embedding (go:embed), build constraints, and profiling with pprof.

平台分布

Codex

34.34%
按下载量换算22

Claude

29.73%
按下载量换算19

Cursor

20.35%
按下载量换算13

Gemini CLI

9.62%
按下载量换算6

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills