clean-code
コードの保守性・可読性を高めるために、コード作成・レビュー・リファクタリング時に活用します。命名規則の議論、関数設計、エラーハンドリング、テスト作成など幅広い場面でトリガーされます。Robert C. Martinの『Clean Code』をベースに、現代的な観点を加えた内容です。
description の原文を見る
Use when writing, reviewing, or refactoring code for maintainability and readability. Triggers on code reviews, naming discussions, function design, error handling, and test writing. Based on Robert C. Martin's Clean Code handbook with modern corrections.
SKILL.md 本文
Robert C. Martin (Uncle Bob) Clean Code ベストプラクティス
Robert C. Martin の「Clean Code: A Handbook of Agile Software Craftsmanship」に基づく包括的なソフトウェア職人技ガイドです。2008 年の元々の助言が時代遅れになった部分については現代的な修正を加えています。10 のカテゴリにわたる 48 のルールを含み、影響度で優先順位付けされており、コードレビュー、リファクタリング判断、新規開発を指導します。例はおもに Java ですが、原則はプログラミング言語に依存しません。
適用のタイミング
以下の場合にこのガイドラインを参照してください:
- 新しい関数、クラス、またはモジュールを記述する
- 変数、関数、クラス、またはファイルに名前を付ける
- 保守性の問題がないかコードをレビューする
- 既存コードをリファクタリングして明確性を改善する
- ユニットテストを記述または改善する
- サードパーティの依存関係をラップする
ルールカテゴリを優先度別に表示
| 優先度 | カテゴリ | 影響度 | プレフィックス |
|---|---|---|---|
| 1 | 意味のある名前 | CRITICAL | name- |
| 2 | 関数 | CRITICAL | func- |
| 3 | コメント | HIGH | cmt- |
| 4 | フォーマット | HIGH | fmt- |
| 5 | エラーハンドリング | HIGH | err- |
| 6 | オブジェクトとデータ構造 | MEDIUM-HIGH | obj- |
| 7 | バウンダリ | MEDIUM-HIGH | bound- |
| 8 | クラスとシステム | MEDIUM-HIGH | class- |
| 9 | ユニットテスト | MEDIUM | test- |
| 10 | 出現と単純設計 | MEDIUM | emerge- |
クイックリファレンス
1. 意味のある名前 (CRITICAL)
- 意図を表す名前を使用するname-intention-revealing- 誤解を招く名前を避けるname-avoid-disinformation- 意味のある区別を作るname-meaningful-distinctions- 発音しやすい名前を使用するname-pronounceable- 検索可能な名前を使用するname-searchable- 名前にエンコーディングを避けるname-avoid-encodings- クラス名に名詞句を使用するname-class-noun- メソッド名に動詞句を使用するname-method-verb
2. 関数 (CRITICAL)
- 関数を小さく保つfunc-small- 関数は 1 つのことだけを行うfunc-one-thing- 1 段階の抽象化を維持するfunc-abstraction-level- 関数の引数を最小化するfunc-minimize-arguments- 副作用を避けるfunc-no-side-effects- コマンドとクエリを分離するfunc-command-query-separation- 繰り返しを避けるfunc-dry
3. コメント (HIGH)
- コメントではなくコードで表現するcmt-express-in-code- コメントを使用して意図を説明するcmt-explain-intent- 冗長なコメントを避けるcmt-avoid-redundant- コメントアウトされたコードを削除するcmt-avoid-commented-out-code- 警告コメントで結果を示すcmt-warning-consequences
4. フォーマット (HIGH)
- 可読性のための垂直フォーマットを使用するfmt-vertical-formatting- 水平配置を避けるfmt-horizontal-alignment- チームのフォーマットルールに従うfmt-team-rules- インデンテーションルールを守るfmt-indentation
5. エラーハンドリング (HIGH)
- エラーハンドリングを正常系パスから分離するerr-use-exceptions- try-catch-finally を最初に記述するerr-write-try-catch-first- 例外にコンテキストを提供するerr-provide-context- 呼び出し元のニーズで例外を定義するerr-define-by-caller-needs- null の返却と受け渡しを避けるerr-avoid-null
6. オブジェクトとデータ構造 (MEDIUM-HIGH)
- データを抽象化の背後に隠すobj-data-abstraction- データ/オブジェクトの非対称性を理解するobj-data-object-asymmetry- Law of Demeter に従うobj-law-of-demeter- ハイブリッドなデータ/オブジェクト構造を避けるobj-avoid-hybrids- データ転送に DTO を使用するobj-dto
7. バウンダリ (MEDIUM-HIGH)
- サードパーティ API をラップするbound-wrap-third-party- サードパーティコードの学習テストを記述するbound-learning-tests
8. クラスとシステム (MEDIUM-HIGH)
- クラスを小さく保つclass-small- クラスの凝集度を維持するclass-cohesion- クラスを変更に対応するように構成するclass-organize-for-change- クラスを変更から隔離するclass-isolate-from-change- 構築と使用を分離するclass-separate-concerns
9. ユニットテスト (MEDIUM)
- TDD の 3 つの法則に従うtest-first-law- テストをクリーンに保つtest-keep-clean- テストごとに 1 つのコンセプトtest-one-assert- FIRST 原則に従うtest-first-principles- Build-Operate-Check パターンを使用するtest-build-operate-check
10. 出現と単純設計 (MEDIUM)
- 単純設計の 4 つのルールに従うemerge-simple-design- 表現性を最大化するemerge-expressiveness
使い方
詳細説明とコード例については、個別のリファレンスファイルを読んでください:
セクション定義- カテゴリ構造と影響度レベルルールテンプレート- 新しいルールを追加するためのテンプレート
リファレンスファイル
| ファイル | 説明 |
|---|---|
references/_sections.md | カテゴリ定義と順序付け |
assets/templates/_template.md | 新しいルール用のテンプレート |
metadata.json | バージョンとリファレンス情報 |
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- pproenca
- リポジトリ
- pproenca/dot-skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/pproenca/dot-skills / ライセンス: MIT
関連スキル
nano-banana-2
inference.sh CLIを通じてGoogle Gemini 3.1 Flash Image Preview(Nano Banana 2)で画像を生成します。テキストから画像を生成する機能、画像編集、最大14枚の複数画像入力、Google Searchグラウンディング機能に対応しています。トリガーワード:「nano banana 2」「nanobanana 2」「gemini 3.1 flash image」「gemini 3 1 flash image preview」「google image generation」
octocode-slides
洗練されたマルチファイル形式のHTMLプレゼンテーションを生成します。6段階のフロー(概要 → リサーチ → アウトライン → デザイン → 実装 → レビュー)で構成されています。各スライドは独立したHTMLファイルとなり、iframeで読み込まれます。「スライドを作成してほしい」「プレゼンテーションを作ってほしい」「HTMLスライドを生成してほしい」「デックを構築してほしい」といった依頼や、ノート・ドキュメント・コードを洗練されたプレゼンテーションに変換する際に使用できます。
gpt-image2-ppt
OpenAIのgpt-image-2を使用して、視覚的に優れたPPTスライドを生成します。Spatial Glass、Tech Blue、Editorial Monoなど10種類のキュレーション済みスタイルに対応し、ユーザーが提供したPPTXファイルを模倣するテンプレートクローンモードも搭載しています。HTMLビューアと16:9形式のPPTXファイルを出力します。プレゼンテーション、スライド、ピッチデック、投資家向けPPT、雑誌風PPTの作成依頼などで活用してください。
nano-banana
Nano Banana PRO(Gemini 3 Pro Image)およびNano Banana(Gemini 2.5 Flash Image)を使用したAI画像生成機能です。以下の場合に活用できます:(1)テキストプロンプトからの画像生成、(2)既存画像の編集、(3)インフォグラフィックス、ロゴ、商品写真、ステッカーなどのプロフェッショナルなビジュアルアセット制作、(4)複数画像での人物キャラクターの一貫性保持、(5)正確なテキスト描画を含む画像生成、(6)AI生成ビジュアルが必要なあらゆるタスク。「画像を生成」「画像を作成」「写真を作る」「ロゴをデザイン」「インフォグラフィックスを作成」「AI画像」「nano banana」またはその他の画像生成リクエストをトリガーとして機能します。
oiloil-ui-ux-guide
モダンでクリーンなUI/UXガイダンス・レビュースキルです。新機能や既存システム(Webアプリ)に対して、実行可能なUI/UX改善提案、デザイン原則、デザインレビューチェックリストが必要な場合に活用できます。CRAP(コントラスト・反復・配置・近接)をベースに、タスクファーストなUX、情報設計、フィードバック・システムステータス、一貫性、affordances、エラー防止・復旧、認知負荷を重視します。モダンミニマルスタイル(クリーン・余白・タイポグラフィ主導)を強制し、不要なテキストを削減、アイコンとしての絵文字を禁止し、統一されたアイコンセットから直感的で洗練されたアイコンを推奨します。
axiom-hig-ref
Apple Human Interface Guidelines リファレンス — 色(セマンティックカラー、カスタムカラー、パターン)、背景(マテリアル階層、ダイナミック背景)、タイポグラフィ(標準スタイル、カスタムフォント、Dynamic Type)、SF Symbols(レンダリングモード、色、多言語対応)、ダークモード、アクセシビリティ、プラットフォーム固有の考慮事項を網羅したガイドラインです。