Agent Skill
2/7/2026

documenting-domains

コードベース分析からドメインドキュメントを生成

T
thkt
5GitHub Stars
2Views
npx skills add thkt/claude-config

SKILL.md

Namedocumenting-domains
Descriptionコードベース分析からドメインドキュメントを生成

name: documenting-domains description: > コードベース分析からドメインドキュメントを生成。 ドメインモデル、エンティティ関係、ビジネスルールのドキュメント化時、 またはユーザーがドメインモデル, エンティティ, ER図, domain model等に言及した場合に使用。 allowed-tools: [Read, Write, Grep, Glob, Task] context: fork user-invocable: false

ドメインドキュメント生成

アプローチ: スキーマファースト

エンティティ/モデルファイルを信頼の源として Read する。

優先度ソース方法
1ORMスキーマファイルファイル全文 Read、エンティティ解析
2型/クラスファイルファイル全文 Read、フィールド抽出
3Grep(フォールバック)発見のみ、フィールド値の取得は不可

検出

カテゴリ対象
エンティティclass, interface, dataclass, Prisma, ORM
Value Objects内部構造を持つ埋め込み型、独立ライフサイクルなし
ポリモーフィック型判別共用体、サブタイプ階層、バリアント
不変条件バリデーションロジック、制約、必須フィールド
ドメイン用語クラス/関数名、コメント、JSDoc
関連エンティティ参照、継承、import(直接 + 間接)
ビジネスルールバリデータ、ポリシー、ドメインサービス
ドメインイベントイベントクラス、EventEmitter、pub/subパターン
コード問題typo、命名不整合、null処理のギャップ

発見ルール

読み取り前にモデルルート配下の全ディレクトリを列挙する。全ディレクトリ = エンティティまたはVOの候補。未調査のディレクトリを残さない。

ORM抽出ルール

ORM/フレームワークエンティティ検出フィールド抽出不変条件検出
Prismamodel EntityName {fieldName Type @annotation@unique, @default, @@index
TypeORM@Entity() class@Column() property@Check(), クラスバリデータ
SequelizeModel.init({...})init config 内のプロパティvalidate: オプション
DrizzlepgTable(), sqliteTable()カラム定義.notNull(), .unique()
Djangoclass X(models.Model)models.CharField(...)validators=, unique=True
SQLAlchemyclass X(Base)Column(Type, ...) 宣言CheckConstraint, UniqueConstraint
汎用class X / interface Xプロパティ宣言 + 型メソッド内の throw/assert/validate

スキーマ読み取り

ルール詳細
ファイル全文読みフィールド値の grep 取得は不可
全フィールド取得「重要な」ものだけでなく全フィールド
正確な型名保持定義通りの型名を使用、| null を含む場合はそのまま記録
nullable 検出?? null → nullable; ?? null なし → non-nullable; ?: T → optional
enum 実装形式形式を記録: named_enum, object_literal, class_wrapped
enum 値宣言順で全値; コード上の実際のキーのみ使用
制約の保持NOT NULL, required, @IsNotEmpty, バリデータ
ソース位置プロジェクト相対パス + 行番号を一貫して使用
命名の不一致ディレクトリ名 ≠ 型名を記録
コード問題読み取り中に発見したtypo、不整合パターンを記録

反ハルシネーション: 出力の全フィールドは Read 呼び出しに基づく source_file が必須。Read 証拠なし = 出力禁止。

Prisma スキーマ

model X { ... } ブロックをエンティティの信頼源としてパース。Type? = nullable、@relation = リレーション、enum X { ... } = enum 値。

信頼度

証拠レベル
スキーマ + バリデータverified
スキーマファイルのみverified
型/クラス定義inferred
Grepマッチのみunknown

検証ゲート

出力前に検証:

チェック項目ルール
幻フィールド禁止全出力フィールドは Read の file:line に紐づく必要あり
ディレクトリ網羅全モデルディレクトリ → 出力にエンティティまたはVO
nullable 正確性全フィールドの nullable 状態がコードパターンと一致
enum 正確性enumキー/値がコードと完全一致、実装形式を記録
パス一貫性全ソースパスが同一のプロジェクト相対形式
関連の深さ間接関連(A → B → C)もERに含める
命名の整合ディレクトリ ≠ 型名の不一致を記録
Skills Info
Original Name:documenting-domainsAuthor:thkt