用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/Rain-kl/OpenFlare --skill go-documentation命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Wavelet 项目专用:当业务需要上传文件、读取已上传文件、在 Worker/任务中程序化摄取字节流、选择存储引擎能力、或排查 w_uploads / 文件统计异常时必须使用。本技能指导 storage 与 upload 分层、upload.Ingest 策略选型、前后端接入与禁止旁路写表。
Wavelet 项目专用:当新增或修改自定义业务 API、新增业务路由、新增 service 层核心逻辑时必须使用。本技能指导包职责划分、推荐文件结构、路由解耦、Swagger 文档生成与质量门禁验证。
Wavelet 项目专用:新增或修改 Asynq 异步任务、后台任务、定时任务、任务元数据、TaskHandler、TaskParam、PayloadValidator、AppendLog、任务重试、任务执行记录或 Admin 任务 API 时必须使用。
正在显示 SKILL.md
| name | go-documentation |
| description | 在编写或审查 Go 包、类型、函数或方法的文档时使用。在创建新的导出类型、函数或包时也应主动使用,即使用户没有明确询问文档问题。不涵盖未导出符号的代码注释(参见 go-style-core)。 |
| license | Apache-2.0 |
| metadata | {"sources":"Google 风格指南"} |
| allowed-tools | Bash(bash:*) |
scripts/check-docs.sh — 报告缺少文档注释的导出函数、类型、方法、常量和包。运行 bash scripts/check-docs.sh --help 查看选项。在为新包或导出类型编写文档注释并需要所有文档约定的完整参考时,请参阅
assets/doc-template.go。
规范:所有顶层导出名称必须有文档注释。
// 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) { ...
行为不明显的未导出类型/函数也应有文档注释。
验证:添加文档注释后,运行
bash scripts/check-docs.sh验证是否有导出符号缺少文档。修复所有缺失后再继续。
规范:文档注释必须是完整的句子。
建议:目标约 80 列,但不设硬性限制。
根据标点符号换行。不要拆分长 URL。
使用段落注释对字段分组。标记可选字段及默认值:
type Options struct {
// 通用设置:
Name string
Group *FooGroup
// 自定义设置:
LargeGroupThreshold int // 可选;默认值:10
}
规范:每个包必须有且仅有一个包注释。
// Package math provides basic constants and mathematical functions.
package math
main 包,使用二进制名称:// The seed_generator command ...doc.go 文件在编写包级文档、main 包注释、doc.go 文件或可运行示例时,请阅读 references/EXAMPLES.md。
建议:记录非显而易见的行为,显而易见的行为无需记录。
| 主题 | 何时记录... | 何时跳过... |
|---|---|---|
| 参数 | 非显而易见的行为、边界情况 | 只是重复类型签名 |
| 上下文 | 行为与标准取消不同 | 标准 ctx.Err() 返回 |
| 并发 | 线程安全性不明确(例如,看似读取但内部修改) | 只读安全、修改不安全 |
| 清理 | 始终记录资源释放要求 | — |
| 错误 | 哨兵值、错误类型(使用 *PathError) | — |
| 命名返回值 | 多个同类型参数、面向操作命名 | 类型本身已足够清晰 |
关键原则:
ctx.Err() 是隐含的 — 不要重复说明Call Stop to release resources)*PathError),以确保 errors.Is/errors.As 正确使用在记录参数行为、上下文取消、并发安全性、清理要求、错误返回或函数文档注释中的命名返回参数时,请阅读 references/CONVENTIONS.md。
建议:在测试文件(
*_test.go)中提供可运行示例。
func ExampleConfig_WriteTo() {
cfg := &Config{Name: "example"}
cfg.WriteTo(os.Stdout)
// Output:
// {"name": "example"}
}
示例会出现在 Godoc 中,附加到对应的文档元素上。
在编写可运行 Example 函数、选择示例命名约定(Example vs ExampleType_Method)或添加包级 doc.go 文件时,请阅读 references/EXAMPLES.md。
在格式化 godoc 标题、链接、列表或代码块,使用信号增强来标记弃用通知,或在本地预览文档输出时,请阅读 references/FORMATTING.md。
| 主题 | 关键规则 |
|---|---|
| 文档注释 | 以名称开头,使用完整句子 |
| 行长度 | 约 80 字符,优先考虑可读性 |
| 包注释 | 每个包一个,放在 package 声明之前 |
| 参数 | 仅记录非显而易见的行为 |
| 上下文 | 记录与隐含行为不同的例外情况 |
| 并发 | 记录线程安全性不明确的情况 |
| 清理 | 始终记录资源释放要求 |
| 错误 | 记录哨兵值和类型(注意指针) |
| 示例 | 在测试文件中使用可运行示例 |
| 格式化 | 空行分隔段落,缩进表示代码 |
Example 测试函数时,参见 go-testing