مرجع بنية التحقق من المقارنات
نظرة عامة
يطبق Decision Gate صحة المقارنة في طبقتين:
- Authoring-time strict validation (default-on) in the MCP layer rejects invalid comparator/type combinations before a scenario or precheck runs. F:crates/decision-gate-mcp/src/validation.rs L36-L673 F:crates/decision-gate-mcp/src/tools.rs L2027-L2050 F:crates/decision-gate-mcp/src/tools.rs L2663-L2707
- Runtime comparator evaluation in the core returns tri-state results and
yields
Unknownwhen evidence types do not match expectations. 2) تقييم المقارن في وقت التشغيل في النواة يُرجع نتائج ثلاثية الحالة ويعطيUnknownعندما لا تتطابق أنواع الأدلة مع التوقعات. F:crates/decision-gate-core/src/runtime/comparator.rs L39-L259
المحقق الصارم هو حارس البوابة؛ منطق وقت التشغيل هو الخط الأخير من سلوك الفشل المغلق. F:crates/decision-gate-mcp/src/validation.rs L36-L170 F:crates/decision-gate-core/src/runtime/comparator.rs L39-L197
خريطة مصدر الحقيقة
| المنطقة | الملف | الملاحظات |
|---|---|---|
| Comparator enum + EvidenceQuery | F:crates/decision-gate-core/src/core/evidence.rs L32-L90 | قائمة المقارنات القياسية وشكل الاستعلام. |
| دلالات المقارنات في وقت التشغيل | F:crates/decision-gate-core/src/runtime/comparator.rs L39-L308 | ترتيب مدرك للأرقام العشرية، سلوك lex/deep، unknown عند عدم التطابق. |
| محرك التحقق الصارم | F:crates/decision-gate-mcp/src/validation.rs L36-L673 | مصفوفة فئات الأنواع، تحليل المخطط، تجاوزات المجال. |
| تكامل أدوات MCP | F:crates/decision-gate-mcp/src/tools.rs L2027-L2050 F:crates/decision-gate-mcp/src/tools.rs L2663-L2707 | scenario_define + precheck يستدعي التحقق الصارم. |
| واجهة تكوين التحقق | F:crates/decision-gate-config/src/config.rs L1469-L1521 | مفاتيح ValidationConfig ومعرفات الملفات الشخصية. |
| مخططات العقود | F:crates/decision-gate-contract/src/schemas.rs L1105-L1129 | مخطط المقارنة والتعليقات التوضيحية. |
| تلميحات/وثائق | F:crates/decision-gate-contract/src/tooltips.rs L260-L296 | سلوك المقارنة والتحقق الموجه للجمهور. |
| الوثائق المولدة | F:Docs/generated/decision-gate/tooling.md L1-L42 F:Docs/generated/decision-gate/tooltips.json L1-L80 | تم إعادة توليدها بعد تحديثات المخطط/التلميحات. |
| اختبارات تحقق MCP | F:crates/decision-gate-mcp/tests/validation.rs L1-L220 | تغطية وحدات لوضع التحقق الصارم. |
| اختبارات النظام | F:system-tests/tests/suites/validation.rs L1-L220 | سلوك التحقق من البداية إلى النهاية. |
خط أنابيب التحقق (MCP)
تعريف السيناريو (scenario_define)
- MCP validates provider contracts and check schemas. يقوم MCP بالتحقق من عقود المزودين وفحص المخططات. F:crates/decision-gate-mcp/src/tools.rs L2045-L2048
- Strict validation enforces comparator/type compatibility and expected-value shape. يفرض التحقق الصارم توافق المقارن/النوع وشكل القيمة المتوقعة. F:crates/decision-gate-mcp/src/tools.rs L2045-L2048
- Implementation:
ToolRouter::define_scenario. التنفيذ:ToolRouter::define_scenario. F:crates/decision-gate-mcp/src/tools.rs L2027-L2093
التحقق المسبق (precheck tool)
- MCP validates payload against the registered data shape schema. يقوم MCP بالتحقق من الحمولة مقابل مخطط بيانات الشكل المسجل. F:crates/decision-gate-mcp/src/tools.rs L2670-L2680
- Strict validation enforces condition compatibility against the data shape schema. يفرض التحقق الصارم توافق الشروط مع مخطط شكل البيانات. F:crates/decision-gate-mcp/src/tools.rs L2690-L2692
- Implementation:
ToolRouter::precheck. التنفيذ:ToolRouter::precheck. F:crates/decision-gate-mcp/src/tools.rs L2663-L2707
قواعد التحقق الصارمة (ملخص التنفيذ)
توافق نوع الفئة
- Implemented in
crates/decision-gate-mcp/src/validation.rs. تم التنفيذ فيcrates/decision-gate-mcp/src/validation.rs. F:crates/decision-gate-mcp/src/validation.rs L234-L535 schema_type_classesand helpers derive type classes.schema_type_classesوالمساعدات تستمد فئات الأنواع. F:crates/decision-gate-mcp/src/validation.rs L400-L535comparator_allowancesdefines allowed/opt-in/forbidden combinations.comparator_allowancesيحدد التركيبات المسموح بها/المختارة/الممنوعة. F:crates/decision-gate-mcp/src/validation.rs L234-L398validate_expected_valueensures expected-value shapes match schema.validate_expected_valueيضمن تطابق أشكال القيمة المتوقعة مع المخطط. F:crates/decision-gate-mcp/src/validation.rs L587-L673
عائلات المقارنات الاختيارية
- Lexicographic ordering comparators are opt-in (config flag + schema override). F:crates/decision-gate-mcp/src/validation.rs L329-L340 F:crates/decision-gate-mcp/src/validation.rs L558-L585 F:crates/decision-gate-mcp/src/validation.rs L829-L838 F:crates/decision-gate-config/src/config.rs L1472-L1487
- Deep equality comparators are opt-in (config flag + schema override). F:crates/decision-gate-mcp/src/validation.rs L350-L365 F:crates/decision-gate-mcp/src/validation.rs L558-L585 F:crates/decision-gate-mcp/src/validation.rs L829-L838 F:crates/decision-gate-config/src/config.rs L1472-L1487
تجاوزات المجال
x-decision-gate.allowed_comparatorsrestricts allowed comparators to a subset of the type-class matrix.x-decision-gate.allowed_comparatorsيقيّد المقارنات المسموح بها إلى مجموعة فرعية من مصفوفة نوع الفئة. F:crates/decision-gate-mcp/src/validation.rs L537-L585x-decision-gate.dynamic_type = truetreats the schema as dynamic (no declared type) and allows comparator validation to proceed without a type restriction, subject to config toggles.x-decision-gate.dynamic_type = trueيعامل المخطط على أنه ديناميكي (بدون نوع محدد) ويسمح بالتحقق من المقارنات بالاستمرار دون قيود نوع، مع مراعاة إعدادات التكوين. F:crates/decision-gate-mcp/src/validation.rs L400-L414
معالجة الاتحاد
oneOf/anyOf/multi-type unions intersect allowances across variants. F:crates/decision-gate-mcp/src/validation.rs L234-L270 F:crates/decision-gate-mcp/src/validation.rs L675-L701- Nullable unions allow null without expanding comparator set. تسمح الاتحادات القابلة للاحتواء بـ null دون توسيع مجموعة المقارنات. F:crates/decision-gate-mcp/src/validation.rs L703-L755
دلالات المقارنات في وقت التشغيل (الأساسية)
- Numeric comparisons are decimal-aware (no float rounding). المقارنات العددية تأخذ في الاعتبار الأرقام العشرية (بدون تقريب للكسور العائمة). F:crates/decision-gate-core/src/runtime/comparator.rs L148-L277
- RFC 3339
date/date-timeordering is supported for string values. دعم ترتيبdate/date-timeوفقًا لمعيار RFC 3339 للقيم النصية. F:crates/decision-gate-core/src/runtime/comparator.rs L168-L295 - Unsupported comparisons yield
TriState::Unknown. المقارنات غير المدعومة تعطيTriState::Unknown. F:crates/decision-gate-core/src/runtime/comparator.rs L65-L198 in_setonly applies to scalar evidence values; arrays/objects yieldUnknown.in_setينطبق فقط على قيم الأدلة السلمية؛ المصفوفات/الكائنات تعطيUnknown. F:crates/decision-gate-core/src/runtime/comparator.rs L250-L258- Implementation:
crates/decision-gate-core/src/runtime/comparator.rs. التنفيذ:crates/decision-gate-core/src/runtime/comparator.rs. F:crates/decision-gate-core/src/runtime/comparator.rs L39-L308
واجهة التكوين
- Strict validation is default-on. Disabling strict requires
validation.allow_permissive = true. التحقق الصارم مفعل بشكل افتراضي. تعطيل التحقق الصارم يتطلبvalidation.allow_permissive = true. F:crates/decision-gate-config/src/config.rs L1472-L1511 - Optional comparator families are gated by config toggles. عائلات المقارنات الاختيارية محجوزة بواسطة مفاتيح التكوين. F:crates/decision-gate-config/src/config.rs L1472-L1487
- Implementation:
crates/decision-gate-config/src/config.rs(ValidationConfig). التنفيذ:crates/decision-gate-config/src/config.rs(ValidationConfig). F:crates/decision-gate-config/src/config.rs L1469-L1521
توافق العقد + الوثائق
- Comparator schema and annotations are in
crates/decision-gate-contract/src/schemas.rs. مخطط المقارنات والتعليقات موجود فيcrates/decision-gate-contract/src/schemas.rs. F:crates/decision-gate-contract/src/schemas.rs L1105-L1129 - Public tooltips and guidance are in
crates/decision-gate-contract/src/tooltips.rs. التلميحات العامة والإرشادات موجودة فيcrates/decision-gate-contract/src/tooltips.rs. F:crates/decision-gate-contract/src/tooltips.rs L260-L296 - Regenerate contract artifacts after any validation or comparator changes:
Docs/generated/decision-gate/. F:Docs/generated/decision-gate/tooling.md L1-L42 F:Docs/generated/decision-gate/tooltips.json L1-L80
قائمة التغيير
- Update comparator semantics in
crates/decision-gate-core/src/runtime/comparator.rs.- تحديث دلالات المقارنات في
crates/decision-gate-core/src/runtime/comparator.rs. F:crates/decision-gate-core/src/runtime/comparator.rs L39-L308
- تحديث دلالات المقارنات في
- Update strict validation logic in
crates/decision-gate-mcp/src/validation.rs. 2) تحديث منطق التحقق الصارم فيcrates/decision-gate-mcp/src/validation.rs. F:crates/decision-gate-mcp/src/validation.rs L36-L673 - Update config toggles in
crates/decision-gate-config/src/config.rsif needed. 3) تحديث مفاتيح التكوين فيcrates/decision-gate-config/src/config.rsإذا لزم الأمر. F:crates/decision-gate-config/src/config.rs L1469-L1521 - Align schemas/tooltips in
crates/decision-gate-contract/src/schemas.rsandcrates/decision-gate-contract/src/tooltips.rs. F:crates/decision-gate-contract/src/schemas.rs L1105-L1129 F:crates/decision-gate-contract/src/tooltips.rs L260-L296 - Regenerate
Docs/generated/decision-gate/artifacts. 5) إعادة توليد العناصر فيDocs/generated/decision-gate/. F:Docs/generated/decision-gate/tooling.md L1-L42 - Update unit + system tests. F:crates/decision-gate-mcp/tests/validation.rs L1-L220 F:system-tests/tests/suites/validation.rs L1-L220