| name | type-design-analysis |
| description | 型設計の品質と不変性を4軸スコアで分析する。interface, type, class の追加・変更時に使用。 |
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つの型に多すぎる責任
- 構築境界での検証不足 - 無効な状態で構築可能
出力形式
# 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つの軸すべてでスコアを付与
- 具体的な改善提案を含める