{
  "schema": "MAKNOW_ASSESSMENT_ITEMS_v1.0",
  "lesson_id": "NET-003",
  "formative": [
    {
      "id": "NET-003-F1",
      "prompt": {
        "fa-IR": "**NET-003-S1 — بازیابی.** تفاوت snapshot مدل، تاریخچهٔ migration و ردیف مشاهده‌شده را توضیح دهید. مرز دسترسی به دادهٔ این درس و یک خروجی متعلق به درس مجاور را نام ببرید.",
        "en-US": "**NET-003-S1 — Retrieval.** Explain the distinction between model snapshot, migration history and observed rows. State this lesson's data-access boundary and one outcome owned by an adjacent lesson."
      },
      "remediation_ref": "lesson://NET-003#section/mental_model"
    },
    {
      "id": "NET-003-F2",
      "prompt": {
        "fa-IR": "**NET-003-S3 — تشخیص.** در تغییر حذف/افزودن، عملیات نامعتبر، پیامد احتمالی برای داده و کمینهٔ تعمیر حافظ داده را مشخص کنید. چرا PASS و false بودن هشدار نمی‌توانند خود عملیات را بی‌اثر کنند؟",
        "en-US": "**NET-003-S3 — Diagnosis.** For the generated drop/add change, identify the invalid operation, likely data consequence and minimum data-preserving repair. Explain why PASS labels and a false warning flag cannot override the operation."
      },
      "remediation_ref": "lesson://NET-003#section/failure_modes"
    },
    {
      "id": "NET-003-F3",
      "prompt": {
        "fa-IR": "**NET-003-S4 — انتقال.** تصمیم `transfer_provider` را از شواهد خودش بسازید. provider و مقیاس تازه، همهٔ captureهای نیازمند جایگزینی، برنامهٔ آزمایش مناسب و شرط بازشدن دوبارهٔ بازبینی را بنویسید. حکم baseline را کپی نکنید.",
        "en-US": "**NET-003-S4 — Transfer.** Recompute `transfer_provider` from its own evidence. Name the changed provider and scale, all captures that require replacement, a suitable rehearsal plan and the conditions for reopening review. Do not copy the baseline verdict."
      },
      "remediation_ref": "lesson://NET-003#section/guided_and_independent_practice"
    }
  ],
  "summative": [
    {
      "id": "NET-003-S1",
      "type": "retrieval",
      "blocking": true,
      "prompt": {
        "fa-IR": "**NET-003-S1 — بازیابی.** تفاوت snapshot مدل، تاریخچهٔ migration و ردیف مشاهده‌شده را توضیح دهید. مرز دسترسی به دادهٔ این درس و یک خروجی متعلق به درس مجاور را نام ببرید.",
        "en-US": "**NET-003-S1 — Retrieval.** Explain the distinction between model snapshot, migration history and observed rows. State this lesson's data-access boundary and one outcome owned by an adjacent lesson."
      },
      "expected_evidence": "Boundary-correct explanation and one non-goal.",
      "claim_refs": [
        "lesson://NET-003#claim/NET-003-K1",
        "lesson://NET-003#claim/NET-003-K2",
        "lesson://NET-003#claim/NET-003-K3",
        "lesson://NET-003#claim/NET-003-K4"
      ],
      "answer_key": "NOT_EMBEDDED"
    },
    {
      "id": "NET-003-S2",
      "type": "application",
      "blocking": true,
      "prompt": {
        "fa-IR": "**NET-003-S2 — کاربرد.** دفتر شواهد baseline را بسازید و وضعیت محدود آن را توجیه کنید. چرا ردشدن نوشتن قدیمی می‌تواند تست هم‌زمانی را موفق کند و چرا مجوز تولید نمی‌دهد؟",
        "en-US": "**NET-003-S2 — Application.** Produce the baseline ledger and justify its bounded state. Explain why a rejected stale update can satisfy the concurrency test and why it cannot authorize production deployment."
      },
      "expected_evidence": "Complete evidence artifact and bounded decision.",
      "claim_refs": [
        "lesson://NET-003#claim/NET-003-K1",
        "lesson://NET-003#claim/NET-003-K2",
        "lesson://NET-003#claim/NET-003-K3",
        "lesson://NET-003#claim/NET-003-K4"
      ],
      "answer_key": "NOT_EMBEDDED"
    },
    {
      "id": "NET-003-S3",
      "type": "diagnosis",
      "blocking": true,
      "prompt": {
        "fa-IR": "**NET-003-S3 — تشخیص.** در تغییر حذف/افزودن، عملیات نامعتبر، پیامد احتمالی برای داده و کمینهٔ تعمیر حافظ داده را مشخص کنید. چرا PASS و false بودن هشدار نمی‌توانند خود عملیات را بی‌اثر کنند؟",
        "en-US": "**NET-003-S3 — Diagnosis.** For the generated drop/add change, identify the invalid operation, likely data consequence and minimum data-preserving repair. Explain why PASS labels and a false warning flag cannot override the operation."
      },
      "expected_evidence": "Invalidated field/state, consequence and minimal repair.",
      "claim_refs": [
        "lesson://NET-003#claim/NET-003-K1",
        "lesson://NET-003#claim/NET-003-K2",
        "lesson://NET-003#claim/NET-003-K3",
        "lesson://NET-003#claim/NET-003-K4"
      ],
      "answer_key": "NOT_EMBEDDED"
    },
    {
      "id": "NET-003-S4",
      "type": "transfer",
      "blocking": true,
      "prompt": {
        "fa-IR": "**NET-003-S4 — انتقال.** تصمیم `transfer_provider` را از شواهد خودش بسازید. provider و مقیاس تازه، همهٔ captureهای نیازمند جایگزینی، برنامهٔ آزمایش مناسب و شرط بازشدن دوبارهٔ بازبینی را بنویسید. حکم baseline را کپی نکنید.",
        "en-US": "**NET-003-S4 — Transfer.** Recompute `transfer_provider` from its own evidence. Name the changed provider and scale, all captures that require replacement, a suitable rehearsal plan and the conditions for reopening review. Do not copy the baseline verdict."
      },
      "expected_evidence": "Decision recomputed from changed evidence.",
      "claim_refs": [
        "lesson://NET-003#claim/NET-003-K1",
        "lesson://NET-003#claim/NET-003-K2",
        "lesson://NET-003#claim/NET-003-K3",
        "lesson://NET-003#claim/NET-003-K4"
      ],
      "answer_key": "NOT_EMBEDDED"
    }
  ],
  "checker_policy": "Public structure check; instructor semantic comparison; human rationale review."
}
