| name | dsl-implementation |
| description | 定義したドメイン固有記法を実際に使える形に実装する。 仕様書のパース、バリデーション、構成オブジェクトへの変換を実装する。 「DSLを実装したい」「仕様書を読み取れるようにしたい」といった 要求があった場合に使用する。DSL定義と構成の知識が存在することが前提。 ジェネレーティブプログラミングのドメイン実装活動。
|
ドメイン固有記法の実装
定義したドメイン固有記法(DSL)を実際に機能させるための実装を行うスキル。
AI前提の場合、AIが仕様書を読み取って正しく解釈できるようにすることが目的。
ジェネレーティブプログラミングのドメイン実装活動。
前提確認
docs/dsl/notation.md が存在するか確認する
docs/configuration/configuration-knowledge.md が存在するか確認する
- 存在しない場合、先に関連する活動を行うことを推奨するが、必要に応じてこの活動から始めてもよい
手順
ステップ1: 実装方式の決定
AIによるコード生成が前提の場合、DSLの「実装」は従来のパーサー実装とは異なる。方式を選定する:
- 方式A: AIネイティブ — DSLのドキュメントとサンプルをAIのコンテキストとして渡し、AIが直接解釈する。パーサーは不要。
- 方式B: バリデーションつき — 仕様書の構文・制約チェックだけ機械的に行い、解釈はAIに委ねる。
- 方式C: フルパーサー — 従来通りパーサーを実装し、構成オブジェクトに変換する。
ステップ2: バリデーションの実装
選択した方式に応じてバリデーションを実装する:
- DSLの構文が正しいことを検証する
- フィーチャーモデルの制約(requires / excludes)に違反していないことを検証する
- パラメータの型と値域が正しいことを検証する
- エラーメッセージは具体的に、修正方法がわかるようにする
ステップ3: 構成の解決
仕様書から具体的な構成(どのコンポーネントをどう組み合わせるか)を解決する仕組みを実装する:
- デフォルト値の適用
- 依存フィーチャーの自動解決(A を選んだら B も必要、等)
- 最終的な構成オブジェクト / 構成ファイルの出力
ステップ4: テストとサンプル検証
docs/dsl/examples/ のサンプル仕様書が正しくバリデーション・解決されることを確認する
- 制約違反の仕様書が適切にエラーになることを確認する
ステップ5: 次のステップの案内
次の活動としてジェネレータ実装(/generator-implementation)との統合が推奨されるが、必要に応じて他の活動に進んだり、以前の活動に戻って成果物を更新してもよい。