j5ik2o/okite-ai/first-class-collection
Claude Code and agent skill by j5ik2o/okite-ai
- community
Checking that the SKILL.md file is still in the repository.
ファーストクラスコレクションパターンの設計・実装を支援。コレクションをラップする専用クラスの 設計、ドメインロジックの集約、不変性の確保をガイド。コードレビュー、新規実装、リファクタリング 時にコレクション操作ロジックが散在している場合に使用。 対象言語: Java, Kotlin, Scala, TypeScript, Python, Ruby, Go, Rust。 トリガー:「コレクションをラップしたい」「リストのロジックを集約」「ファーストクラスコレクション」 「コレクション操作が散在」「List<Order>をOrdersクラスに」といったコレクション設計関連リクエストで起動。
Install
npx vskill@latest install j5ik2o/okite-ai/first-class-collectionSKILL.md
First Class Collection
コレクションをラップする専用クラスを作成し、ドメインロジックを集約する。
核心原則
コレクションをラップするクラスは、コレクション以外のフィールドを持たない。 (ThoughtWorks Anthology, Object Calisthenics Rule 4)
| アプローチ | 特徴 | 問題 | |
|---|---|---|---|
| 生のコレクション | List<Order> orders | ロジック散在、ドメイン概念の欠如 | |
| ファーストクラス | Orders orders | 責任集約、ドメイン表現、不変性保証 |
判断フロー
アンチパターン検出
以下のパターンを見つけたら変換を検討:
変換パターン
以下の説明にはJavaのコレクションを利用しているが、提供される種々の型は可変コレクションであるため、内部のコレクションをそのまま返すことができないので、複製を作るなど工夫が必要になる。しかし、Scalaのように不変コレクションがある場合は、わざわざそのような考慮は不要であるため、不変コレクションがある場合は優先して利用すること。
1. 基本構造
2. 集計ロジックの集約
3. フィルタリングの内部化
4. バリデーションの集約
5. 不変な追加操作
言語別イディオム
TypeScript
Rust
Python
Go
設計指針
ファーストクラスコレクション化すべきもの
- ドメインで名前がつくコレクション(「注文一覧」「在庫リスト」等)
- 集計・フィルタリング・検証ロジックを持つ
- 複数箇所から同じ操作をされる
- ビジネスルールに関わる制約がある
生のコレクションで良いもの
- 純粋なデータ転送(DTO内のリスト)
- フレームワーク/ライブラリの制約
- 一時的な中間データ
- ロジックが不要な単純なグループ化
レビュー観点
- ロジック散在: 同じコレクション操作が複数箇所にないか
- ドメイン概念: コレクションにビジネス上の名前があるか
- 不変性: 外部から直接変更されていないか
- 責任: Tell, Don't Askに従っているか
関連原則
| 原則 | 関係 | |
|---|---|---|
| Tell, Don't Ask | コレクションに問い合わせず命じる | |
| 単一責任原則 | コレクション操作を一箇所に集約 | |
| DRY | 重複するコレクション操作を排除 | |
| カプセル化 | 内部リストを隠蔽 |
詳細ガイドライン
言語別の詳細パターン、イテレータ実装、テスト方法は references/patterns.md を参照。
関連スキル(併読推奨)
このスキルを使用する際は、以下のスキルも併せて参照すること:
tell-dont-ask: コレクションに命じるパターンの基盤原則law-of-demeter: コレクション内部への直接アクセスを防ぐ原則intent-based-dedup: 同じ構造のコレクションでも意図が異なれば共通化しない判断
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/first-class-collection/SKILL.md
Popularity
- Repository stars
- 72
- Repository forks
- 2
- 7-day trend score
- 21
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 16 Mar 2026, 7 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/j5ik2o/okite-ai/first-class-collection)