AIKernel.NET
version: 0.0.2 / status: Refactor / edition: Draft / published: 2026-05-16 / updated: 2026-05-16

英語版は IExpressionContract.md を参照。

IExpressionContract (契約仕様)

1. 責務の境界 (Responsibility Boundary)

IExpressionContract は、推論結果の表現方法を定義し、推論層と表現層を分離するための契約インターフェースです。

  • 役割:
  • 文体、例示、テンプレート、比喩など、出力現像時にのみ使用する表現規約を提供します。

  • 非役割:
  • 推論ロジックの生成・改変は責務外です。表現データを推論入力へ混入させてはなりません。 隔離検証と適用可否判定は IExpressionIsolationValidatorIExpressionApplicationGate などの service interface 側の責務です。

2. 契約シグネチャ (Signature)

using AIKernel.Dtos.Context;\n\nnamespace AIKernel.Contracts;\n\n/// <summary>\n/// 表現(Expression)契約を定義します。\n/// 推論が完全に終了した後にのみ適用される、出力表現層の契約です。\n/// \n/// 参照: 2.CONTEXT_ISOLATION_SPEC.jp.md\n/// </summary>\npublic interface IExpressionContract\n{\n    /// <summary>\n    /// 表現層のコンテキストを取得します。\n    /// </summary>\n    ExpressionContextDto GetContext();\n\n    /// <summary>\n    /// 出力の文体を取得します。\n    /// </summary>\n    string? GetStyle();\n\n    /// <summary>\n    /// 説明用の例を取得します。\n    /// 注意: これらは推論には混入しません。\n    /// </summary>\n    IReadOnlyList<string> GetExamples();\n\n    /// <summary>\n    /// 説明テンプレートを取得します。\n    /// </summary>\n    string? GetDescriptionTemplate();\n\n    /// <summary>\n    /// 比喩・類推を取得します。\n    /// </summary>\n    IReadOnlyList<string> GetAnalogies();\n}
  • UC-04 生成と出力整形:
  • IOutputPolisher が最終出力へ現像する際の規約ソースとなります。

  • UC-06 3層バッファ境界:
  • 推論コンテキストと表現コンテキストの隔離規律を支えます。

4. 統治上の制約 (Governance & Determinism)

  • 隔離の徹底:
  • IExpressionIsolationValidator.ValidateIsolation() は表現データの推論側リークを検知するためのゲートです。

  • 後置適用:
  • IExpressionApplicationGate.CanApplyAfterInference() は Structure フェーズ完了後にのみ true となる運用を前提とします。

  • 決定論的整形:
  • 同一入力に対して同一の表現結果を導く、再現可能な適用規約が必要です。

5. 実装時の注意 (Notes)

  • 多言語運用:
  • GetStyle() / GetExamples() / GetAnalogies() は言語切替規約に従って一貫選択されるべきです。

  • 監査可能性:
  • テンプレートや例示の適用履歴を追跡可能にし、出力差分の説明責任を確保してください。


変更履歴

  • v0.0.0 / v0.0.0.0: 初期ドラフト
  • v0.0.1 (2026-05-06): ドキュメント規約に基づくバージョン更新
Source: architecture/interfaces/contracts/IExpressionContract-jp.md