Type Design Analysis スキル
目的
型設計の品質と不変性を分析し、堅牢な型システムの構築を支援する。
評価軸(各1-10スコア)
1. Encapsulation(カプセル化)
- •10: 完全なカプセル化、内部状態へのアクセス不可
- •7-9: ほぼ完全、一部のgetter/setterあり
- •4-6: 部分的、一部の内部が露出
- •1-3: 不十分、内部が広く公開
チェックポイント: privateフィールド、readonly修飾子、getter/setter
2. Invariant Expression(不変性表現)
- •10: すべての不変性が型で表現
- •7-9: 主要な不変性が型で表現
- •4-6: 一部の不変性のみ
- •1-3: ドキュメントのみに依存
チェックポイント: Union型、Branded型、型ガード
3. Invariant Usefulness(不変性の有用性)
- •10: クリティカルなビジネスルールを保護
- •7-9: 重要なエラーを防止
- •4-6: 一般的なミスを防止
- •1-3: 限定的な保護
4. Invariant Enforcement(不変性の強制)
- •10: 構築時と全変異点で検証
- •7-9: 構築時に検証、変異は制限
- •4-6: 部分的な検証
- •1-3: 検証なし、信頼ベース
アンチパターン(検出して報告)
- •貧血ドメインモデル - データのみで振る舞いがない型
- •変更可能な内部の公開 - 配列やオブジェクトを直接公開
- •ドキュメント依存の不変性 - 型ではなくコメントで制約を表現
- •過度に広い責任 - 1つの型に多すぎる責任
- •構築境界での検証不足 - 無効な状態で構築可能
出力形式
markdown
# Type Design Analysis Results ## [型名] - ファイル: path/to/file.ts | 軸 | スコア | 理由 | |----|--------|------| | Encapsulation | X/10 | ... | | Invariant Expression | X/10 | ... | | Invariant Usefulness | X/10 | ... | | Invariant Enforcement | X/10 | ... | - 総合スコア: X/10 - 検出されたアンチパターン: ... - 改善提案: ... ## Summary - 分析した型の数: X - 平均スコア: X/10 - 検出されたアンチパターン: X
注意事項
- •新規追加または変更された型のみを分析
- •4つの軸すべてでスコアを付与
- •具体的な改善提案を含める