وثائق بوابة القرار

تقييم بوابة حتمي وقابل لإعادة التشغيل مع قرارات قابلة للتدقيق.

وثائق Asset Core

دليل تشغيل مرجع الاقتباس القانوني

الهدف

هذا الدليل التشغيلي هو الدليل التشغيلي لحزمة مرجع الاقتباسات القانونية الخاصة بـ CourtListener في Decision Gate.

استخدمه من أجل:

  1. التحقق الحتمي غير المتصل في CI/dev.
  2. التحقق اليدوي من صحة الدخان المباشر ضد CourtListener.
  3. وضع أمان آمن للإنتاج ومعالجة الرموز.

الحزمة القياسية

  • المسار القياسي: references/openapi/courtlistener-legal-citation-v1/
  • Canonical OpenAPI: references/openapi/courtlistener-legal-citation-v1/openapi.json
  • إدخال كتالوج الحزمة: references/openapi/reference_library.json

وضع عدم الاتصال الحتمي (افتراضي)

وضع عدم الاتصال هو الوضع الافتراضي وهو مطلوب لـ CI القياسي.

تشغيل مجموعة الاقتباسات القانونية غير المتصلة بالإنترنت:

dg-reason="offline-legal-citation-suite" dg-owner="dg-maintainers" dg-expires=2026-05-15
cargo test -p system-tests --features system-tests --test providers -- --exact legal_citation::legal_citation_reference_projection_first_end_to_end

تحقق من استيراد / ملف تعريف العمليات الأربعة الصارمة:

dg-reason="offline-strict-import-check" dg-owner="dg-maintainers" dg-expires=2026-05-15
cargo test -p system-tests --features system-tests --test providers -- --exact legal_citation::legal_citation_reference_import_strict_four_operation_profile

تحقق من عقد تغطية مجموعة البيانات:

dg-reason="offline-dataset-coverage-check" dg-owner="dg-maintainers" dg-expires=2026-05-15
cargo test -p system-tests --features system-tests --test providers -- --exact legal_citation::legal_citation_reference_dataset_coverage_and_semantics

المخرجات المتوقعة تشمل:

  • legal_citation_report.json
  • tool_transcript.json
  • تشغيل تصدير/تحقق من المخرجات لكل حالة

وضع الاشتراك المباشر (يدوي)

وضع التشغيل المباشر هو يدوي عن عمد وليس جزءًا من CI لدمج الحواجز.

المتطلبات البيئية:

  • COURTLISTENER_LIVE=1

بيئة اختيارية:

  • COURTLISTENER_BASE_URL (افتراضي https://www.courtlistener.com/api/rest/v4)
  • COURTLISTENER_LIVE_CASE_LIMIT (الافتراضي 3)

متطلبات الاعتماد:

  • Store the raw API token in DG local encrypted secrets as secret://courtlistener/api_token (لا حاجة لتصدير الشل للعرض المباشر).
  • Typed runtime auth applies deterministic render metadata (prefix: "Token ") قبل حقن رأس Authorization.
  • DG secret store unlock is keyring-first. When keyring is unavailable/headless, set DECISION_GATE_SECRETS_PASSPHRASE before running secrets commands or دخان حي.
  • DECISION_GATE_SECRETS_PASSPHRASE هو مادة فتح التخزين، وليس رمز مزود.

تهيئة الأسرار المشفرة المحلية وتخزين رمز CourtListener:

# If keyring is unavailable/headless:
export DECISION_GATE_SECRETS_PASSPHRASE="<strong-passphrase>"
scripts/bootstrap/dg.sh secrets init
export COURTLISTENER_API_TOKEN="<raw-api-token>"
scripts/bootstrap/dg.sh secrets put \
  --tenant-id 1 \
  --namespace-id 1 \
  --name courtlistener/api_token \
  --from-env COURTLISTENER_API_TOKEN
scripts/bootstrap/dg.sh secrets preflight \
  --tenant-id 1 \
  --namespace-id 1 \
  --name courtlistener/api_token

تم تثبيت المعادل الثنائي: استبدل scripts/bootstrap/dg.sh بـ decision-gate في الأوامر أعلاه.

سير عمل استيراد بديل (تعيينات صريحة فقط):

scripts/bootstrap/dg.sh secrets import \
  --tenant-id 1 \
  --namespace-id 1 \
  --env-file .env \
  --map COURTLISTENER_API_TOKEN=courtlistener/api_token

تشغيل الدخان اليدوي المباشر:

dg-reason="manual-live-citation-smoke" dg-owner="operator" dg-expires=2026-05-15
scripts/bootstrap/dg.sh live courtlistener smoke --case-limit 3

تظل أوامر الاختبار المباشر متاحة عند الحاجة:

COURTLISTENER_LIVE=1 \
COURTLISTENER_LIVE_CASE_LIMIT=3 \
cargo test -p system-tests --features system-tests --test providers -- --exact legal_citation::legal_citation_live_opt_in_smoke

هذا الدخان يثبت:

  1. ربط رأس المصادقة لـ Authorization عبر secret://courtlistener/api_token.
  2. سلوك جسم مشفر بالشكل لـ citationLookup.
  3. مزيج النجاح/الفشل على مجموعة حية محدودة.

التحفة الحية:

  • legal_citation_live_report.json

وضع أمان الإنتاج

الإعدادات الافتراضية الموصى بها للاستخدام الشبيه بالإنتاج:

  1. حافظ على حظر الوصول إلى الشبكة الخاصة (الإعداد الافتراضي مغلق بشكل افتراضي).
  2. استخدم روابط بيانات الاعتماد الصريحة (secret://...) وتجنب الأسرار المضمنة في المواصفات.
  3. تقييد المضيفين من خلال سياسة أمان وقت التشغيل المكتوبة حيث يسمح النشر.
  4. حافظ على حدود المحاولات واحترم إشارات التراجع/حدود المعدل.

لا تقم بتخفيف إعدادات الأمان المستخدمة لقطع الغيار المحلية (allow_private_networks لاختبار localhost) في عمليات النشر في الإنتاج.

معالجة الرموز وإخفاء المعلومات

  1. لا تقم بتخزين الرموز أو ملفات البيئة التي تحتوي على أسرار.
  2. قم بتخزين الرموز في مخزن الأسرار المشفر المحلي (أو مدير الأسرار المؤسسي).
  3. احتفظ بقيمة توكن CourtListener خامًا (بدون بادئة Token في التخزين).
  4. لا تقم بطباعة قيم الرموز في السجلات أو العناصر.

تفسير Runpack

لكل حالة، تأكد:

  1. نتيجة القرار (pass أو fail) تتطابق مع دلالات البوابة المتوقعة.
  2. runpack_verify التقارير ناجحة.
  3. دلائل المراسي موجودة وحتمية للجولات المتكررة غير المتصلة بالإنترنت.

إجراء تحديث التركيب

استخدم برنامج الالتقاط لتحديث التركيبات يدويًا:

ملاحظة: COURTLISTENER_API_TOKEN أدناه مخصص فقط لبرنامج الالتقاط. ليس هو مسار بيانات الاعتماد في وقت التشغيل المستخدم في اختبارات الدخان الحية.

dg-reason="manual-fixture-refresh" dg-owner="operator" dg-expires=2026-05-15
COURTLISTENER_API_TOKEN="<raw-api-token>" \
python3 scripts/reference_packs/courtlistener_capture.py

خيار التشغيل الجاف:

dg-reason="manual-fixture-refresh-dryrun" dg-owner="operator" dg-expires=2026-05-15
COURTLISTENER_API_TOKEN="<raw-api-token>" \
python3 scripts/reference_packs/courtlistener_capture.py --dry-run

يحدث البرنامج النصي تركيبات الحزم الكانونية ويعكسها إلى:

  • system-tests/tests/fixtures/legal_citation/
  • examples/agentic/legal-citation-verification/