منبع حقیقت، محتوا، انتشار و رسانه · فصل ۴ — Media Library، Factory، FFmpeg، Workbench و QA · 169

Candidate ≠ Publication: QC/Source/Rights/Approval Gate

محتوا یا media تولید می‌کند اما provenance، rights، version، approval و release boundary را یک سیستم واحد نمی‌بیند. موضوع جاری: «Candidate ≠ Publication: QC/Source/Rights/Approval Gate». می‌تواند «Candidate ≠ Publication: QC/Source/Rights/Approval Gate» را در یک pipeline محدود با provenance، rights/version و publication gate تعریف کند.

Candidate Is Not Publication: QC, Source, Rights, and Approval Gate — en-US

خلاصهٔ درس

محتوا یا media تولید می‌کند اما provenance، rights، version، approval و release boundary را یک سیستم واحد نمی‌بیند. موضوع جاری: «Candidate ≠ Publication: QC/Source/Rights/Approval Gate».

می‌تواند «Candidate ≠ Publication: QC/Source/Rights/Approval Gate» را در یک pipeline محدود با provenance، rights/version و publication gate تعریف کند.

خروجی این درس

می‌تواند «Candidate ≠ Publication: QC/Source/Rights/Approval Gate» را در یک pipeline محدود با provenance، rights/version و publication gate تعریف کند.

پیش‌نیازها

1. مسئله: candidate وجود دارد، اما هنوز publishable نیست

یک فایل ممکن است با موفقیت render شود، ظاهر خوبی داشته باشد و حتی Content Credential معتبر داشته باشد، اما انتشارش هنوز مجاز نباشد. شاید source binding قدیمی شده باشد، مجوز استفاده adaptation را ندهد، approval برای digest قبلی صادر شده باشد یا semantic QC هنوز UNKNOWN باشد. CON-018 این تفاوت را به یک Gate قابل ممیزی تبدیل می‌کند.

2. مرز مالکیت CON-018

خروجی این درس Publication Candidate Gate Decision Record v1 است. درس مالک media-library identity، transform recipe، FFmpeg execution یا variant graph نیست و QA چندبعدی کامل نیز در CON-022 بسته می‌شود. اینجا فقط تصمیم می‌گیریم آیا evidence لازم برای همین candidate دقیق و همین publication context به حد RELEASE_READY رسیده یا باید BLOCK/DEFER شود.

3. Candidate را با digest قفل کن

نام فایل، مسیر پوشه یا thumbnail هویت قابل اتکا نیست. Gate ledger باید حداقل candidate_id، candidate_digest و gate_profile_version را ثبت کند. اگر bytes تغییر کنند، digest جدید است و هر evidence که به digest قبلی bind بوده—مثل approval یا بعضی QC recordها—باید دوباره qualification شود.

4. پنج predicate را مستقل نگه دار

در این درس پنج predicate اجباری داریم: SOURCE_BOUND، PROVENANCE_VALID، RIGHTS_ALLOWED، APPROVAL_CURRENT و QC_CLOSED. Release readiness حاصل conjunction این predicateهاست؛ نه average. هر predicate authority، evidence و lifecycle خودش را دارد و pass شدن یکی نمی‌تواند دیگری را سبز کند.

5. C2PA چه چیزی می‌گوید و چه چیزی نمی‌گوید

C2PA 2.4 یک trust/validation model برای manifest، signer و bindingهای provenance می‌دهد. خود specification تأکید می‌کند که provenance signals برای تصمیم مصرف‌کننده هستند و specification ارزش‌گذاری «خوب/بد» محتوا را انجام نمی‌دهد. پس C2PA_VALID=true می‌تواند evidence برای provenance باشد، اما source suitability، rights clearance، editorial approval یا publication permission را به‌تنهایی ثابت نمی‌کند.

6. Source binding را جدا از provenance ببین

ممکن است manifest معتبر باشد اما source authority که candidate به آن نسبت داده شده، stale یا اشتباه باشد. PROVENANCE_VALID=TRUE نباید SOURCE_BOUND=STALE را پنهان کند. اگر source binding نیاز به refresh دارد، disposition باید DEFER شود و recheck trigger دقیقاً همان evidence را هدف بگیرد.

7. Rights یک boolean عمومی نیست

Creative Commons شش مجوز اصلی را از ترکیب شرط‌های BY، NC، ND و SA می‌سازد. بنابراین licensed=true برای publication gate کافی نیست. باید نوع و نسخه مجوز، intended use، commercial/noncommercial context، adaptation status، attribution obligations و هر expiry یا permission جداگانه ثبت شود. این درس مشاوره حقوقی ارائه نمی‌کند؛ فقط state شواهد supplied را درست نگه می‌دارد.

8. Approval باید scope و digest داشته باشد

یک approval خوب حداقل approval_event_id، approver authority، scope، candidate digest و validity window دارد. اگر candidate bytes عوض شوند و approval فقط digest قبلی را پوشش داده باشد، APPROVAL_CURRENT دیگر TRUE نیست—even اگر تفاوت بصری خیلی کوچک باشد. approval قدیمی تاریخچه است، نه مجوز خودکار نسخه جدید.

9. QC_CLOSED یعنی تمام QCهای لازم بسته‌اند

CON-018 خودش full Media QA را اجرا نمی‌کند، اما باید نتیجه لازم را به‌صورت predicate مصرف کند. اگر technical PASS باشد ولی semantic UNKNOWN، QC_CLOSED باید UNKNOWN بماند. اگر semantic FAIL باشد، QC predicate FALSE است. Gate انتشار حق ندارد از polish ظاهری یا technical pass برای پوشاندن evidence ناقص استفاده کند.

10. سه disposition محدود: RELEASE_READY، BLOCK، DEFER

RELEASE_READY فقط وقتی مجاز است که هر پنج predicate mandatory برای candidate/context دقیق TRUE باشند. BLOCK وقتی است که evidence فعلی یک مانع صریح مثل rights expiry، approval mismatch یا semantic FAIL نشان دهد. DEFER وقتی مناسب است که predicate لازم UNKNOWN/STALE/PENDING باشد و با یک event مشخص قابل recheck باشد.

11. Blocking gate و reason را از بین نبر

Decision record باید blocking_gate، reason و recheck_trigger را نگه دارد. عبارت‌هایی مثل «فعلاً آماده نیست» ضعیف‌اند. بهتر است بنویسیم: SOURCE_BOUND=STALE → DEFER → REFRESH_SOURCE_BINDING یا RIGHTS_ALLOWED=FALSE → BLOCK → OBTAIN_COMPATIBLE_PERMISSION. این precision تعمیر را کوچک و قابل ممیزی می‌کند.

12. Score averaging در Gate انتشار ممنوع است

فرض کنید provenance، source، approval و technical/aesthetic evidence عالی‌اند اما rights منقضی شده است. امتیاز 90/100 نباید RELEASE_READY بسازد. این lesson design non-compensatory است: mandatory false/unknown/stale/expired/revoked state باید همان‌طور در تصمیم باقی بماند.

13. Diagram و Evidence Matrix را یک‌جا بخوان

نمودار learner-facing مسیر exact candidate → source/provenance ∧ rights ∧ approval ∧ QC → release state را نشان می‌دهد. جدول CON-018-T1 همان مدل را به evidence row تبدیل می‌کند: digest، source/provenance، rights scope/expiry، approval binding، QC states، blocker و recheck trigger. هیچ معنا فقط با رنگ منتقل نمی‌شود.

14. Lab: هشت fixture و 64 assertion

در lab://CON-018/CON018-LAB1 هشت fixture مصنوعی دارید: baseline کامل، rights expiry، approval روی digest قدیمی، semantic QC نامعلوم، C2PA معتبر با source stale، provenance validation failure، approval pending، و transfer نهایی با source/approval تازه اما semantic mismatch. باید هر predicate را مستقل محاسبه کنید و از evidence fixture فراتر ادعا نکنید.

15. Transfer: source و approval درست شدند، semantic هنوز مانع است

در transfer، asset restricted با source مجاز جایگزین شده و approval برای digest جدید دوباره صادر شده است، اما subtitle حالا semantic mismatch دارد. Source، provenance، rights و approval می‌توانند TRUE باشند ولی QC_CLOSED=FALSE است؛ بنابراین نتیجه همچنان BLOCK می‌ماند تا semantic repair و recheck انجام شود. این همان discipline اصلی CON-018 است: candidate جدید را از صفر جعل نمی‌کنیم، اما هیچ binding قدیمی را هم بی‌دلیل به آن ارث نمی‌دهیم.

ارزیابی

پاسخ‌نامه‌ی این درس در بسته‌ی آموزش وجود ندارد؛ خودت جواب بده و صادقانه علامت بزن. «نیاز به مرور» درس را به صف تکرار می‌فرستد.

CON-018-AS1 application

lesson ✗AI ✗notes ✗

CON-018-AS2 diagnosis

lesson ✗AI ✗notes ✗

CON-018-AS3 decision

lesson ✗AI ✗notes ✗

CON-018-AS4 transfer

lesson ✗AI ✗notes ✗

CON-018-AS5 reflection

lesson ✗AI ✗notes ✗
ملاک‌های ارزیابی (rubric)
  • Exact binding: candidate ID/digest and gate-profile version are explicit.
  • Predicate independence: source, provenance, rights, approval, and QC remain independently evidenced.
  • C2PA boundary: manifest validation is never treated as rights, editorial truth, approval, or publication permission.
  • Rights discipline: actual license/permission scope and expiry are preserved; no generic licensed shortcut.
  • Approval discipline: digest/scope/validity binding is checked after candidate mutation.
  • Non-compensation: FALSE/UNKNOWN/STALE/EXPIRED/REVOKED mandatory states cannot be averaged away.
  • Traceable disposition: BLOCK/DEFER names blocker, reason, evidence reference, and recheck trigger.
  • Transfer: a changed candidate requalifies affected digest-bound evidence without rewriting history.

منابع و تازگی

·
·

مطالعهٔ موارد (case studies)

تصاویر درس

An exact candidate passes source, provenance, rights, approval, and QC gates independently; only all true is release ready.

فایل‌های آزمایشگاه

Implement evaluate_candidate(case) in starter.py using only the supplied fixture evidence.

Return these fields: source_predicate, provenance_predicate, rights_predicate, approval_predicate, qc_predicate, blocking_gate, release_state, recheck_trigger.

Rules to preserve: predicates are independent; candidate digest binds approval; C2PA validity supports provenance only; mandatory failures cannot be averaged away. Do not invent rights, approvals, or QC judgments.