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

英語版は IRomValidator.md を参照。

IRomValidator (ROM バリデーター仕様)

1. 責務の境界 (Responsibility Boundary)

IRomValidator は、ROM資産が RCS 系規約に適合しているかを検査し、不完全な知能資産の実行流入を遮断する品質保証ゲートです。

  • 役割:
  • スキーマ、リンク解決性、型一貫性、循環参照を検証します。

  • 非役割:
  • 正準化・署名照合・物理I/Oは他コンポーネント責務です。

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

namespace AIKernel.Abstractions.Rom;\n\n/// <summary>\n/// ROM バリデーターの契約。\n/// RCS-F002: リンク未解決時は推論入力を拒否。\n/// RCS-F004: Type Consistency の検証。\n/// RCS-F005: Circular Reference Guard。\n/// </summary>\npublic interface IRomValidator\n{\n    /// <summary>\n    /// ROM ドキュメントのスキーマを検証します。\n    /// RCS-001: 必須項目 (entity.id, entity.type, version) の存在確認。\n    /// RCS-F001: 必須 ID 欠落時は ROM 無効。\n    /// </summary>\n    /// <param name="document">検証対象の ROM ドキュメント</param>\n    /// <param name="cancellationToken">キャンセルトークン</param>\n    /// <returns>スキーマ検証結果</returns>\n    Task<AIKernel.Dtos.Rom.RomSchemaValidationResult> ValidateSchemaAsync(\n        IRomDocument document,\n        CancellationToken cancellationToken = default);\n\n    /// <summary>\n    /// ROM ドキュメント内の関係参照([[id]])がすべて解決可能であることを検証します。\n    /// RCS-002: [[id]] は解決可能な参照でなければならない(MUST)。\n    /// RCS-F002: リンク未解決時は推論入力を拒否。\n    /// </summary>\n    /// <param name="document">検証対象の ROM ドキュメント</param>\n    /// <param name="relationResolver">関係解決サービス</param>\n    /// <param name="cancellationToken">キャンセルトークン</param>\n    /// <returns>リンク検証結果</returns>\n    Task<AIKernel.Dtos.Rom.RomLinkageValidationResult> ValidateLinkageAsync(\n        IRomDocument document,\n        IRelationResolver relationResolver,\n        CancellationToken cancellationToken = default);\n\n    /// <summary>\n    /// Type Consistency を検証します。\n    /// RCS-F004: entity.type とプロパティ定義が矛盾する場合、入力を拒否。\n    /// 必須プロパティ欠落も含む。\n    /// </summary>\n    /// <param name="document">検証対象の ROM ドキュメント</param>\n    /// <param name="typeSchema">型スキーマ定義</param>\n    /// <param name="cancellationToken">キャンセルトークン</param>\n    /// <returns>型一貫性検証結果</returns>\n    Task<AIKernel.Dtos.Rom.RomTypeConsistencyResult> ValidateTypeConsistencyAsync(\n        IRomDocument document,\n        AIKernel.Dtos.Rom.EntityTypeSchema typeSchema,\n        CancellationToken cancellationToken = default);\n\n    /// <summary>\n    /// 循環参照を検出します。\n    /// RCS-F005: Circular Reference Guard - 循環参照が推論ループを誘発する場合、停止しなければならない。\n    /// </summary>\n    /// <param name="document">検証対象の ROM ドキュメント</param>\n    /// <param name="relationResolver">関係解決サービス</param>\n    /// <param name="maxDepth">探索の最大深度(無限ループ防止)</param>\n    /// <param name="cancellationToken">キャンセルトークン</param>\n    /// <returns>循環参照検出結果</returns>\n    Task<AIKernel.Dtos.Rom.CircularReferenceDetectionResult> DetectCircularReferencesAsync(\n        IRomDocument document,\n        IRelationResolver relationResolver,\n        int maxDepth = 10,\n        CancellationToken cancellationToken = default);\n}
  • UC-01 ROM 構造ロードと解析:
  • ロード直後の初期品質ゲートとして機能します。

  • UC-15 コンテキスト・ハイドレーション:
  • 参照整合性を保証して推論前提を安定化します。

  • UC-12 参照整合検証:
  • 動的リンク妥当性を事前確認します。

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

  • 決定論的検証:
  • 同一ドキュメント・同一リゾルバ状態・同一スキーマで同一判定を返す必要があります。

  • Fail-Closed:
  • IsValid=false 相当結果時は当該ROMを実行系に流してはなりません。

  • 深度制限:
  • maxDepth は計算量爆発と無限追跡を防ぐ安全装置として機能します。

5. 例外契約 (Exception Contract)

本インターフェース自体は例外型を固定しません。実装では以下の失敗類型を明示することが推奨されます。

  • 規約重大違反:
  • 実行継続不能な構造欠陥を検知した場合。

  • 検証中断:
  • タイムアウトやキャンセル要求により検証不能となった場合。

6. 実装時の注意 (Notes)

  • 部分検証戦略:
  • 段階検証は許容されますが、推論開始前に最終総合Passが必要です。

  • 動的スキーマ:
  • ドメイン/バージョン別 EntityTypeSchema 切替に耐えるルックアップ設計を推奨します。


変更履歴

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