clean-code-principles
SOLIDの原則、デザインパターン、DRY、KISS、クリーンコードの基礎を扱うスキルです。アーキテクチャのレビューやコード品質のチェック、リファクタリング、設計方針の議論を行う際に活用できます。「アーキテクチャをレビュー」「コード品質を確認」「SOLIDの原則」「デザインパターン」「クリーンコード」などのフレーズで起動します。
description の原文を見る
SOLID principles, design patterns, DRY, KISS, and clean code fundamentals. Use when reviewing architecture, checking code quality, refactoring, or discussing design decisions. Triggers on "review architecture", "check code quality", "SOLID principles", "design patterns", or "clean code".
SKILL.md 本文
クリーンコード原則
基本的なソフトウェア設計原則、SOLID、デザインパターン、およびクリーンコード実践。保守性が高く、スケーラブルなソフトウェアを書くための言語に依存しないガイドライン。
適用時期
以下の場合にこれらのガイドラインを参照してください:
- 新機能またはシステムを設計する場合
- コードアーキテクチャをレビューする場合
- 既存コードをリファクタリングする場合
- 設計決定について議論する場合
- コード品質を向上させる場合
ルールカテゴリーを優先度別に分類
| 優先度 | カテゴリー | 影響度 | プレフィックス |
|---|---|---|---|
| 1 | SOLID原則 | CRITICAL | solid- |
| 2 | コア原則 | CRITICAL | core- |
| 3 | デザインパターン | HIGH | pattern- |
| 4 | コード組織 | HIGH | org- |
| 5 | 命名と可読性 | MEDIUM | name- |
| 6 | 関数とメソッド | MEDIUM | func- |
| 7 | コメントとドキュメント | LOW | doc- |
クイックリファレンス
1. SOLID原則(CRITICAL)
solid-srp- 単一責任の原則solid-ocp- 開放閉鎖の原則solid-lsp- リスコフの置換原則solid-isp- インターフェース分離の原則solid-dip- 依存性逆転の原則
2. コア原則(CRITICAL)
core-dry- 繰り返さない(Don't Repeat Yourself)core-kiss- シンプルを心がける(Keep It Simple, Stupid)core-yagni- 必要になるまで作らない(You Aren't Gonna Need It)core-separation-of-concerns- 責任を分離するcore-composition-over-inheritance- コンポジションを優先core-law-of-demeter- 最小知識の原則core-fail-fast- エラーを早期に検出・報告core-encapsulation- 実装詳細を隠蔽
3. デザインパターン(HIGH)
pattern-factory- オブジェクト生成用ファクトリパターンpattern-strategy- アルゴリズム用ストラテジパターンpattern-repository- データアクセス用リポジトリパターンpattern-decorator- 動作拡張用デコレータパターンpattern-observer- イベント処理用オブザーバーパターンpattern-adapter- インターフェース変換用アダプターパターンpattern-facade- インターフェース簡潔化用ファサードパターンpattern-dependency-injection- 疎結合のための依存性注入
4. コード組織(HIGH)— 計画中
org-feature-folders- レイヤーではなく機能で構成org-module-boundaries- 明確なモジュール境界org-layered-architecture- 適切なレイヤー分離org-package-cohesion- 関連コードを一緒にorg-circular-dependencies- 循環インポートを回避
5. 命名と可読性(MEDIUM)— 計画中
name-meaningful- 意図を明確にした命名name-consistent- 一貫した命名規則name-searchable- マジックナンバー/文字列を回避name-avoid-encodings- ハンガリアン記法なしname-domain-language- ドメイン用語を使用
6. 関数とメソッド(MEDIUM)— 計画中
func-small- 関数は小さく保つfunc-single-purpose- 1つのことだけを実行func-few-arguments- パラメータ数を制限func-no-side-effects- 副作用を最小化func-command-query- コマンドとクエリを分離
7. コメントとドキュメント(LOW)— 計画中
doc-self-documenting- コードが自分自身を説明するdoc-why-not-what- 何でなく、なぜを説明doc-avoid-noise- 冗長なコメントなしdoc-api-docs- パブリックAPIをドキュメント化
基本的なガイドライン
詳細な例と説明についてはルールファイルを参照してください:
core-dry.md- DRY原則pattern-repository.md- リポジトリパターン
SOLID原則(概要)
| 原則 | 定義 |
|---|---|
| Single Responsibility | クラスは変更の理由が1つだけ |
| Open/Closed | 拡張に開き、変更に閉じている |
| Liskov Substitution | サブタイプは基本型の代替可能 |
| Interface Segregation | クライアントに不要なインターフェースを強制しない |
| Dependency Inversion | 具体的な実装でなく、抽象に依存する |
コア原則(概要)
| 原則 | 定義 |
|---|---|
| DRY | 繰り返さない - 唯一の情報源 |
| KISS | シンプルに - 過度な設計を避ける |
| YAGNI | 必要になるまで作らない - 必要なものだけを構築 |
クイック例
// 単一責任の原則 - 1つのクラス、1つのジョブ
class UserService {
constructor(
private validator: UserValidator,
private repository: UserRepository,
) {}
createUser(data) {
this.validator.validate(data);
return this.repository.create(data);
}
}
// 依存性逆転の原則 - 抽象に依存
interface Repository<T> {
find(id: string): Promise<T | null>;
save(entity: T): Promise<T>;
}
class OrderService {
constructor(private repository: Repository<Order>) {}
}
// DRY - 唯一の情報源
const EMAIL_REGEX = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
const isValidEmail = (email: string) => EMAIL_REGEX.test(email);
// マジックナンバーではなく意味のある名前
const MINIMUM_AGE = 18;
if (user.age >= MINIMUM_AGE) { }
出力形式
コードを監査する場合、以下の形式で結果を出力してください:
file:line - [principle] Description of issue
例:
src/services/UserService.ts:15 - [solid-srp] Class handles validation, persistence, and notifications
src/utils/helpers.ts:42 - [core-dry] Email validation duplicated from validators/email.ts
src/models/Order.ts:28 - [name-meaningful] Variable 'x' should describe its purpose
使用方法
詳細な説明についてはルールファイルを参照してください:
rules/solid-srp-class.md
rules/core-dry.md
rules/pattern-repository.md
参考資料
このスキルは確立されたソフトウェアエンジニアリング原則に基づいています:
コア書籍
- Clean Code by Robert C. Martin - クリーンコード実践の基礎
- Design Patterns by Gang of Four - デザインパターンの古典的カタログ
- Refactoring by Martin Fowler - コード構造の改善
- The Pragmatic Programmer by Hunt & Thomas - 実践的な知恵
オンラインリソース
- Refactoring Guru - デザインパターンとコード臭
- Martin Fowler's Refactoring Catalog - 包括的なリファクタリング技法
- Uncle Bob's Clean Coder Blog - ソフトウェア職人気質の記事
パターンカタログ
メタデータ
バージョン: 1.0.2 ステータス: アクティブ カバレッジ: 3つの実装カテゴリー(SOLID、コア原則、デザインパターン)にわたる23ルール、4つが計画中 最終更新: 2026-03-07
ルール統計
- SOLID原則:10ルール
- コア原則:12ルール
- デザインパターン:1ルール
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- asyrafhussin
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/asyrafhussin/agent-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(レンダリングモード、色、多言語対応)、ダークモード、アクセシビリティ、プラットフォーム固有の考慮事項を網羅したガイドラインです。