go-documentation
Goのパッケージ・型・関数・メソッドのドキュメントを作成またはレビューする際に使用します。新しいエクスポートされた型・関数・パッケージを作成するときは、ユーザーが明示的に依頼しなくても積極的に適用してください。非エクスポートシンボルのコードコメントは対象外です(go-style-coreを参照)。
description の原文を見る
Use when writing or reviewing documentation for Go packages, types, functions, or methods. Also use proactively when creating new exported types, functions, or packages, even if the user doesn't explicitly ask about documentation. Does not cover code comments for non-exported symbols (see go-style-core).
SKILL.md 本文
Go ドキュメンテーション
利用可能なスクリプト
scripts/check-docs.sh— ドキュメントコメントが欠けている exported な関数、型、メソッド、定数、パッケージをレポートします。オプションについてはbash scripts/check-docs.sh --helpを実行してください。
新しいパッケージまたは exported 型のドキュメントコメントを書くときに、すべてのドキュメンテーション規約の完全なリファレンスが必要な場合は
assets/doc-template.goを参照してください。
ドキュメントコメント
規範的: すべてのトップレベルの exported 名にはドキュメントコメントが必須です。
基本ルール
- 説明対象のオブジェクト名で始める
- 名前の前に冠詞("a", "an", "the")が続く場合もあります
- 完全な文を使用する(大文字で始まり、句読点で終わる)
// 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 な型や関数にもドキュメントコメントを付けるべきです。
検証: ドキュメントコメントを追加した後、
bash scripts/check-docs.shを実行して exported シンボルがドキュメント欠けていないか確認してください。進める前にすべてのギャップを修正してください。
コメント文
規範的: ドキュメンテーションコメントは完全な文である必要があります。
- 最初の単語を大文字で始め、句読点で終わる
- 例外:識別子で明確な場合は小文字で始められます
- 構造体フィールドの行末コメントはフレーズでも構いません
コメント行の長さ
勧告的: 約80文字を目安にしてください。ただし厳密な上限はありません。
句読点に基づいて改行してください。長い URL は分割しないでください。
構造体ドキュメンテーション
フィールドをセクションコメントでグループ化します。オプショナルフィールドはデフォルト値を示します:
type Options struct {
// General setup:
Name string
Group *FooGroup
// Customization:
LargeGroupThreshold int // optional; default: 10
}
パッケージコメント
規範的: すべてのパッケージは正確に1つのパッケージコメントを持つ必要があります。
// 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 フォーマット
Godoc の見出し、リンク、リスト、またはコードブロックのフォーマット、非推奨通知のためのシグナルブースティング、またはローカルでのドキュメント出力プレビューをする場合は
references/FORMATTING.mdを参照してください。
クイックリファレンス
| トピック | 重要なルール |
|---|---|
| ドキュメントコメント | 名前で始まり、完全な文を使用 |
| 行の長さ | 約80文字、可読性を優先 |
| パッケージコメント | パッケージあたり1つ、package 句の上 |
| パラメータ | 自明でない動作のみドキュメント化 |
| コンテキスト | 暗黙的な動作の例外をドキュメント化 |
| 並行処理 | あいまいなスレッド安全性をドキュメント化 |
| クリーンアップ | リソース解放を常にドキュメント化 |
| エラー | センチネルと型をドキュメント化(ポインタに注意) |
| 例 | テストファイルで実行可能な例を使用 |
| フォーマット | 段落は空行、コードはインデント |
関連スキル
- 命名規約: ドキュメントコメントが説明する識別子の名前を選択する場合は
go-namingを参照してください - テスト例: godoc に表示される実行可能な
Exampleテスト関数を書く場合はgo-testingを参照してください - リント強制: revive または他のリントを使用してドキュメントコメントの存在を強制する場合は
go-lintingを参照してください - スタイル原則: ドキュメンテーション冗長性と明確さ・簡潔さのバランスを取る場合は
go-style-coreを参照してください
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- cxuu
- リポジトリ
- cxuu/golang-skills
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/cxuu/golang-skills / ライセンス: Apache-2.0
関連スキル
nature-response
Nature系ジャーナルの原稿修正に対する査読者への回答文について、下書き、チェック、または修正を行うことができます。査読者からのコメント、編集者の決定文、修正指示、回答案の作成、または大幅修正・軽微修正の対応方法に関するご相談があれば、対応いたします。査読報告書や回答文作成のサポートが必要な場合にご利用ください。
microsoft-docs
公式のMicrosoft文書を参照して、Azure、.NET、Agent Framework、Aspire、VS Code、GitHubなど様々な分野の概念、チュートリアル、コード例を検索します。デフォルトではMicrosoft Learn MCPを使用し、learn.microsoft.com外のコンテンツについてはContext7およびAspire MCPを使用します。
API Documentation Lookup
このスキルは、ユーザーが「Effect APIを調べる」「Effectドキュメントを確認する」「Effect関数のシグネチャを探す」「Effect.Xは何をするのか」「Effect.Xの使い方」「Effect APIリファレンス」「Effectドキュメントを取得する」といった質問をした場合や、公式のEffect-TS APIドキュメントから特定の関数シグネチャ、パラメータ、使用例を調べる必要がある場合に使用します。
knowledge-base
このスキルは、ヘルプセンターのアーキテクチャ設計、サポート記事の執筆、検索とセルフサービスの最適化が必要な場合に活用できます。ナレッジベース、ヘルプセンター、サポート記事、セルフサービス、記事テンプレート、検索最適化、コンテンツ分類、ヘルプドキュメントの設計・管理に関するあらゆるタスクで動作します。
markdown
GitHub Flavored Markdown標準に従ったMarkdownファイルのフォーマットと検証ができます。自動的なlinting処理と手動による意味的なレビューを組み合わせることで、ファイルの品質を確保します。
claude-md-enhancer
CLAUDE.mdファイルをプロジェクトタイプに合わせて分析・生成・改善します。ベストプラクティス、モジュール設計対応、技術スタックのカスタマイズに対応しています。新規プロジェクトの立ち上げ、既存のCLAUDE.mdファイルの改善、またはAI支援開発の標準化を図る際にご活用ください。