پاسخ کوتاه: برای تست یک سیستم تصمیم‌گیری خودکار، فقط Accuracy مدل یا Fairness dashboard را نبینید. باید بتوانید یک Decision مشخص را با Input و Feature همان زمان، نسخهٔ Model/Rule/Policy/Threshold، Queue و Capacity، مداخلهٔ Human، Action پایین‌دستی، Notice، Review، Override و Correction بازسازی کنید. خروجی این راهنما یک Automated Decision Record و Replay قابل‌ممیزی است؛ نه تضمین «بی‌سوگیری»، انصاف، قانون‌مندی یا نتیجهٔ خوب.

این مقاله راهنمای مهندسی Evidence است و نظر حقوقی نیست. شمول Instrument، معنای تصمیم «صرفاً خودکار»، اثر حقوقی/مشابه مهم، وظیفهٔ ثبت، Human intervention، اعتراض، نگهداری یا افشا به نقش واجد صلاحیت و متن رسمی جاری وابسته است.

مالکیت این مقاله: Automated Decision Record & Replay

مالکیت محدود صفحه، Trace یک Decision از Request تا Correction است. ارزیابی انصاف AI مالک Construct، Population، Group، Metric، Threshold، uncertainty و Fairness claim است؛ تست اخلاقی AI مالک Impact/Harm/Power/Alternative/Appeal/Remedy governance؛ و تست مدل ML مالک Label/Split/Leakage/Metric/Calibration/Release Gate. اینجا فقط Record آن Artifactها را به یک تصمیم اجراشده وصل می‌کنیم.

Model output با Decision یکی نیست

Input → Feature pipeline → Model output / score
Score → Rule set → Policy / threshold / capacity
Policy → Queue / priority → Human review / override
Review → System decision → Downstream action
Action → Notice → Contest / Review → Correction / Restoration

مدل ممکن است فقط امتیاز یا پیشنهاد بسازد؛ Rule یک Exception اعمال کند؛ ظرفیت صف Cutoff را عوض کند؛ اپراتور Override کند؛ و سرویس دیگری Action نهایی را اجرا کند. نسبت‌دادن Outcome به «الگوریتم» بدون این زنجیره، علت و Owner را مخدوش می‌کند.

اول Decision Boundary را تعریف کنید

DecisionID / Type / SubjectRef / RequestID
RequestedAt / DecidedAt / EffectiveAt / CompletedAt
Product / Service / UseCase / Environment / Channel
Actor / Subject / AffectedParty / DownstreamConsumer
Options / Default / Reversibility / MaterialityCandidate
DecisionOwner / ActionOwner / AppealOwner / CorrectionOwner

«رتبه‌بندی»، «ارجاع به بررسی»، «رد»، «مسدودسازی»، «قیمت‌گذاری» و «اطلاع‌رسانی» Decisionهای متفاوت‌اند. Queue priority شاید به‌تنهایی Action نباشد، اما از طریق Capacity به Outcome برسد. Boundary باید آن را نشان دهد.

درخواست، تصمیم و اقدام سه هویت جدا دارند

Retry ممکن است برای یک Request چند Prediction و فقط یک Decision بسازد؛ Decision ممکن است چند Action مانند Hold، Notice و Refund trigger کند؛ Correction نیز Action قبلی را برگرداند. RequestID، PredictionID، DecisionID، ActionID و CorrectionID را یکی نکنید.

Replay یعنی بازسازی گذشته، نه اجرای امروز

اگر Input تاریخی را به Model فعلی بدهید، تصمیم قدیمی را Replay نکرده‌اید. Schema، feature code، reference data، Model artifact، dependency، Rule، Policy، threshold، capacity، clock و Human evidence همان زمان باید Pin شوند. نتیجهٔ امروز یک Counterfactual یا Re-evaluation جداست.

ReplayID / DecisionID / AsOf
InputSnapshot / FeatureSnapshot / ModelDigest / RuntimeLock
RuleVersion / PolicyVersion / Threshold / CapacityState
Clock / Locale / DependencySnapshot / VendorResponse
HumanRecord / ExpectedTrace / ObservedTrace / Difference
ReplayEnvironment / Network=false / NotProduction

Point-in-time Input را حفظ کنید

مقدار فعلی دیتابیس لزوماً مقدار دیده‌شده هنگام Decision نیست. Source، observed/available/effective time، Schema، Join key، normalization، missingness، quality state و Hash را نگه دارید. Late event یا Backfill می‌تواند Snapshot تاریخی را Silent تغییر دهد.

Feature باید Lineage و Event time داشته باشد

Feature name مانند `risk_30d` معنای کافی ندارد. Window، Event/processing time، timezone، inclusion/exclusion، default/imputation، late-data rule، source version، feature-store view و code digest را ثبت کنید. Feature Leakage و Proxy question در مقاله‌های مدل/انصاف بررسی می‌شوند؛ این Record فقط Reference آن تحلیل را نگه می‌دارد.

Model identity باید از نام بازاری دقیق‌تر باشد

ModelID / SemanticVersion / ArtifactDigest / RegistryURI
TrainingRunRef / EvaluationRef / ApprovalRef
ServingBuild / Endpoint / Runtime / DependencyLock
FeatureContract / OutputContract / Seed / Hardware
Vendor / Region / Tenant / Fallback / EffectiveWindow

«Model-v3» بدون Digest و Serving identity کافی نیست. Vendor ممکن است Alias را به Artifact تازه وصل کند یا API رفتار را بدون Version ظاهری تغییر دهد. Request/response حداقلی، قرارداد، Change notice و Fallback را مطابق Authorization نگه دارید.

Raw output، Score و Class را مخلوط نکنید

Logit، probability-like score، calibrated probability، class، rank و generated text معنای متفاوت دارند. Scale، direction، uncertainty، calibration reference، abstention/OOD state و GeneratedAt را ذخیره کنید. Score بالا خودکار «پرریسک»، «متقلب» یا «نامناسب» نیست؛ Policy معنای عملی می‌دهد.

Rule engine را قابل ردگیری کنید

RuleSet / Version / EffectiveWindow / EvaluationOrder
RuleID / Condition / Inputs / DerivedValue / Result
ConflictResolution / Exception / Fallback / Stop
ExecutedRules / SkippedRules / Failure / TraceDigest

یک Rule ثابت می‌تواند خروجی مدل را Override کند. ترتیب Ruleها، Short circuit، Null semantics و Exception اهمیت دارند. فقط Rule نهایی را Log نکنید؛ مسیر اجرا و دلیل Skip نیز برای Replay لازم است.

Policy و Threshold نسخهٔ مستقل دارند

Threshold ممکن است براساس Segment، ظرفیت، ساعت، Risk appetite یا Campaign عوض شود. PolicyID/version/effective window، Cutoff، tie-break، Queue priority، capacity state، exception و owner را ثبت کنید. Model ثابت با Policy جدید Decision متفاوت می‌دهد.

Capacity یک متغیر تصمیم است

اگر روزانه فقط ۱۰۰ Case قابل Review است، Rank ۱۰۱ ممکن است بدون تغییر Score از مسیر خارج شود. Available reviewers، queue depth، SLA، cutoff time، backlog policy و fail-open/fail-closed را Snapshot کنید. Fairness metric بدون Exposure و Capacity می‌تواند اثر واقعی را نبیند.

Eligibility را پیش از Model جدا کنید

گاهی بیشترین حذف پیش از Scoring رخ می‌دهد: missing document، unsupported locale، invalid format یا Rule تجاری. Eligibility policy/version/criteria/exclusion/exception/evidence/result/unknown را ثبت کنید. فقط مقایسهٔ خروجی Model روی افراد واردشده، Population حذف‌شده را پنهان می‌کند.

Abstention و Unknown باید مسیر واقعی داشته باشند

Low confidence، OOD، missing feature، vendor timeout یا rule conflict نباید ناخواسته به Reject تبدیل شوند. Stateهای `ABSTAIN / UNKNOWN / MANUAL_REVIEW / RETRY / HOLD`، Owner، SLA، fallback و Notice را Test کنید. نرخ Abstention را همراه Outcome آن پایش کنید.

Human in the loop یک Boolean نیست

ReviewRequired / Trigger / ReviewerRole / Competence
Authority / Independence / Conflict / TimeBudget / Capacity
InformationShown / InformationHidden / IndependentEvidence
CanAsk / CanPause / CanOverride / CanRestore / Escalation
Reason / Timestamp / Receipt / OutcomeFollowUp

نمایش یک دکمهٔ Approve به انسان، Oversight موثر را ثابت نمی‌کند. Reviewer شاید وقت، اختیار، Evidence مستقل، آموزش یا مسیر Override نداشته باشد. Designation، capability، behavior و outcome را جدا بسنجید.

Automation Bias را در UI و Workflow تست کنید

ترتیب نمایش Score، رنگ، Confidence، Explanation، Default action، forced reason و Time pressure می‌تواند Anchoring بسازد. Blind-first review، staged disclosure، independent evidence prompt و reason-before-score را در Lab مقایسه کنید؛ اما اختلاف رفتار، علت روانی جهانی یا انصاف را ثابت نمی‌کند.

Override باید جهت و دلیل داشته باشد

Model→Human و Human→Model یک «override rate» واحد نیستند. جهت، prior state، new state، reason code، free text حداقلی، Evidence، authority، exception، second review و timestamp را ثبت کنید. Override بالا یا پایین به‌تنهایی خوب/بد نیست.

Separation of Duties را واقعی کنید

کسی که Policy را تغییر می‌دهد نباید بدون کنترل مناسب همان Case را Review و Correction را تأیید کند. Role، permission، conflict، recusal، emergency exception و post-review را Test کنید. عنوان شغلی Authority را ثابت نمی‌کند.

Downstream Action را تا اثر اجرا دنبال کنید

Decision `APPROVE` ممکن است در Action service شکست بخورد؛ `HOLD` شاید Billing را متوقف نکند؛ Reversal ممکن است Queue دیگر را به‌روز نکند. ActionID، owner، created/executed/effective time، delivery، status، failure، retry، idempotency، rollback و restoration را ثبت کنید.

Notice بخشی از سیستم است

NoticeID / DecisionID / Recipient / Language / Channel
TemplateVersion / GeneratedAt / SentAt / DeliveredAt / ReadState
DecisionSummary / ReasonScope / EffectiveAt / NextStep
ContestRoute / Deadline / Contact / Accessibility / Limits

Template صحیح ولی ارسال‌نشده، Notice عملی نیست. Bounce، SMS truncation، Push permission، فارسی/RTL، Screen reader، لینک منقضی و تفاوت State واقعی با متن را Test کنید. Reason نباید Secret، دادهٔ شخص دیگر یا ادعای علّی بی‌پشتوانه افشا کند.

Explanation با Decision Trace فرق دارد

Trace برای بازسازی سیستم است؛ Explanation برای Audience/Purpose مشخص. Feature attribution، Rule reason، Policy reason و Human reason را یکی نکنید. Fidelity/Stability/Comprehension در راهنمای تست XAI مالکیت جدا دارد. نمایش Explanation نه صحت Decision، علت، انصاف یا Contestability را خودکار ثابت می‌کند.

Contest route باید End-to-End کار کند

  • Route قابل‌پیداکردن و در Window معتبر است؛
  • Authentication متناسب و Alternative امن دارد؛
  • Submission و Evidence upload Receipt می‌سازند؛
  • Status و SLA قابل پیگیری‌اند؛
  • زبان، Accessibility و Support پوشش دارند؛
  • Retaliation یا تصمیم منفی خودکار از صرف اعتراض ایجاد نمی‌شود؛
  • Withdrawal/Correction و Escalation State روشن دارند.

وجود ایمیل `support@` یا دکمهٔ «تماس» مسیر Contest را ثابت نمی‌کند. Case باید به Decision snapshot برسد و Reviewer اختیار تغییر نتیجه/عمل را داشته باشد.

Review با Rerun یکی نیست

اجرای دوبارهٔ همان Pipeline ممکن است همان خطا را تکرار کند. Review باید نوع، independence، snapshot تاریخی، Evidence تازه، Scope، standard، decision و reason داشته باشد. Reviewer بداند Model suggestion چیست یا نه، یک تصمیم طراحی است که باید ثبت شود.

Correction باید Action و Notice را جبران کند

تغییر Database row کافی نیست. Old/new decision، Actionهای متاثر، Billing/access/queue، Notice تازه، subject confirmation، restoration/compensation candidate، downstream recipients و Supersession را ثبت و Verify کنید. نقش واجد صلاحیت دربارهٔ Remedy لازم تصمیم می‌گیرد.

Replay manifest باید قابل‌حمل باشد

Manifest حداقل شامل Digestهای Input/Feature/Model/Rule/Policy، runtime/container، dependency lock، clock/locale/config، fake external responses و expected trace است. Secret، PII و proprietary model را داخل بسته کپی نکنید؛ Reference کنترل‌شده و redacted fixture بسازید.

Determinism را ادعا نکنید؛ اندازه بگیرید

GPU kernel، random seed، parallelism، vendor service، LLM sampling، floating point و race می‌توانند Replay را تغییر دهند. تعداد Run، tolerance، distribution، invariant و acceptable difference را پیش‌تعریف کنید. Exact equality همیشه لازم یا ممکن نیست؛ Trace difference باید Explain شود.

Clock و ترتیب Event Oracle هستند

Event time، ingestion time، decision time، action time و notice time را جدا کنید. UTC instant و Asia/Tehran view را نگه دارید؛ Jalali presentation را زمان canonical ندانید. Duplicate، late، out-of-order و clock skew می‌توانند Policy window و eligibility را تغییر دهند.

Log enabled مساوی Traceable نیست

EventID / Type / Actor / SubjectRef / DecisionID / ActionID
EventTime / IngestedAt / ClockSource / TimeZone
CorrelationID / CausationID / Sequence / Attempt
PayloadSchema / Meaning / DuplicateRule / LateRule
Integrity / Signature / Access / Retention / Redaction

Logهای زیاد با Semantic مبهم Replay را بدتر می‌کنند. Event contract، completeness denominator، expected sequence، gap/duplicate detection، tamper control و access را Test کنید. Hash به‌تنهایی صحت Source یا معنای Event را ثابت نمی‌کند.

Audit trail را با Privacy متوازن کنید

Traceability مجوز ذخیرهٔ نامحدود ویژگی حساس، raw prompt، Document یا free text نیست. Purpose، minimum fields، access، encryption، retention/delete، export، vendor transfer و audit-use boundary را به راهنمای تست حریم خصوصی وصل کنید. Pseudonymous ref نیز ممکن است قابل‌پیوند باشد.

Tamper و Insider scenario را تست کنید

تغییر Policy بعد از Decision، حذف Override، جابه‌جایی Timestamp، دستکاری Reason یا Replay با Artifact دیگر را در محیط مجاز شبیه‌سازی کنید. Least privilege، append-only/WORM candidate، signature/key rotation، alert، incident، recovery و verification را پوشش دهید؛ هیچ تست واقعی بدون Authorization اجرا نشود.

Fairness Record فقط Reference می‌شود

برای Decision، FairnessRecord/Construct/Population/Group/Metric/Uncertainty/Claim/Expiry reference را ذخیره کنید. این صفحه Demographic parity، Equal opportunity، Equalized odds یا Calibration را دوباره آموزش نمی‌دهد. «Metric pass» نه این Decision را منصفانه می‌کند، نه Bias-free و نه عدم تبعیض را ثابت می‌کند.

Accuracy pass نیز Decision را معتبر نمی‌کند

Model evaluation ممکن است روی Population/Label/Window دیگری باشد؛ Policy/Rule/Human/Action خارج Scope آن است. EvaluationRef، validity window، intended use و limitations را Pin کنید. Whole-system testing در راهنمای تست سیستم AI/ML جداست.

Monitoring را به زنجیرهٔ Decision وصل کنید

  • Volume و Eligibility exclusion؛
  • Missing/OOD/Abstention/timeout؛
  • Policy/threshold/capacity distribution؛
  • Queue aging و SLA؛
  • Human override به تفکیک جهت/reason؛
  • Action/Notice failure و retry؛
  • Contest، review، reversal و correction؛
  • Complaint و delayed outcome؛
  • Fairness/Harm referenceهای جدا و expiring.

نرخ خام بدون denominator، Population، Window، freshness و Data quality تصمیم‌پذیر نیست. تغییر Override ممکن است از Policy، staffing، UI یا case mix باشد؛ علت را تحقیق کنید.

Change Triggerها را سراسری کنید

  • Input/schema/source/feature change؛
  • Model/artifact/vendor/runtime update؛
  • Rule/Policy/threshold/capacity change؛
  • Reviewer role/UI/time budget change؛
  • Action/Notice/Contest workflow change؛
  • Instrument/guidance/contract change؛
  • Drift، Incident، Complaint یا Correction pattern؛
  • New population/locale/channel/use.

Change impact باید مشخص کند کدام Decisionها، Replay packها، Claimها، Noticeها و Reviewها متاثرند. Silent alias update، Evidence تاریخی را نامعتبر می‌کند.

NIST چه کمکی می‌کند؟

NIST AI RMF Playbook منبع داوطلبانه و قابل‌گزینش است، نه Checklist یا Certification؛ AI RMF ۱.۰ نیز در حال بازنگری است. پیشنهادهای آن دربارهٔ Auditability، history/log، نقش‌ها، Human oversight، override، complaint/adjudication، exception/escalation و go/no-go برای طراحی سؤال‌های Record مفیدند، اما قانون ایران یا اثبات Trustworthiness نیستند.

EU AI Act را به Log استاندارد جهانی تبدیل نکنید

Regulation (EU) 2024/1689 در Scope خود برای High-risk AI موضوعاتی مانند Automatic logging در طول عمر، Traceability متناسب، Human oversight و وظایف نگهداری Log برای Deployer را با نقش‌ها، کنترل و استثناهای مشخص بیان می‌کند. اینکه یک سامانه High-risk است، چه Role/تاریخ/ماده‌ای اعمال می‌شود و چه Log/مدتی لازم است، نتیجهٔ QA یا اسم Use case نیست.

GDPR Article ۲۲ را دقیق و محدود بخوانید

متن رسمی GDPR در Article ۲۲ دربارهٔ حق مربوط به Decision مبتنی صرفاً بر پردازش خودکار که اثر حقوقی یا اثر مشابه مهم دارد، Exceptionها و Safeguardهای شرایط خاص متن دارد. Guidelines مورد تأیید EDPB برای فهم Profiling/solely automated/significant effect و Safeguardها Context می‌دهد. هر سیستم دارای Model، مشمول Article ۲۲ نیست و وجود Reviewer اسمی خودکار آن را از Scope خارج نمی‌کند؛ متخصص واجد صلاحیت واقعیت و نقش‌ها را بررسی می‌کند.

منبع ایرانی: Evidence دیجیتال، نه قانون AI

قانون تجارت الکترونیکی ایران در مواد ۱۱ تا ۱۶ دربارهٔ سابقهٔ الکترونیکی مطمئن، شکل داده‌پیام و عوامل ارزش اثباتی متن دارد. این مواد می‌توانند سؤال‌های Integrity، دسترسی و نگهداری را برای Review واجد صلاحیت ایجاد کنند، اما استاندارد Log تصمیم AI، الزام عمومی Replay، پذیرش خودکار هر Event log یا حکم دربارهٔ Fairness/مسئولیت نیستند.

Applicability Record را از Test result جدا کنید

Instrument / OfficialSource / VersionDate / AsOf
Jurisdiction / Entity / Role / System / Activity / Territory
DecisionType / SolelyAutomatedCandidate / EffectCandidate
HighRiskCandidate / DataRole / Exception / TransitionDate
Clause / QualifiedReviewer / Status / Rationale / NotConcluded

Instrumentها را در Obligation-to-Evidence Record به Control/Test وصل کنید. QA fact فنی می‌دهد؛ Applicability، obligation، compliance و liability Verdict جدا دارند.

Evidence Pack یک Dump نیست

EvidenceID / Claim / DecisionID / Source / Collector
CollectedAt / EventAt / Version / Provenance / Integrity
Access / Purpose / Retention / Redaction / Export
Counterevidence / Limitation / Supersedes / ConsumerReceipt

هر Evidence به Claim مشخص وصل می‌شود. Raw database، همهٔ Featureها یا Chatهای داخلی را برای «کامل بودن» کپی نکنید. حداقل لازم، access logging، privilege/hold question و Correction history را طراحی کنید.

Decision State Model را صریح کنید

REQUESTED → ELIGIBILITY_CHECK → ELIGIBLE | INELIGIBLE | UNKNOWN
ELIGIBLE → SCORED | ABSTAINED | FAILED
SCORED → RULED → QUEUED | AUTO_DECIDED | HOLD
QUEUED → HUMAN_REVIEW → CONFIRMED | OVERRIDDEN | ESCALATED
DECIDED → ACTION_PENDING → EFFECTIVE | ACTION_FAILED
EFFECTIVE → NOTIFIED → CONTESTED | CLOSED
CONTESTED → REVIEWED → UPHELD | REVERSED | CORRECTED
any state → SUSPENDED | INCIDENT | SUPERSEDED

Transition دارای Actor، timestamp، Evidence و reason است. State جاری جای تاریخ را نمی‌گیرد؛ Reversal و Correction رابطهٔ صریح دارند.

Failure injection را امن و آفلاین انجام دهید

  • Feature missing/late/schema drift؛
  • Model timeout/version mismatch/OOD؛
  • Rule conflict/null/exception؛
  • Capacity zero/queue duplicate/SLA expiry؛
  • Reviewer unavailable/no authority؛
  • Action succeeds but acknowledgment lost؛
  • Notice bounce/wrong locale/expired link؛
  • Contest duplicate/new evidence/reversal failure؛
  • Correction partial/downstream stale.

هیچ Person، Account، Vendor یا Production واقعی برای آزمایش لازم نیست. Fixture و Stub کنترل‌شده، Trace semantics را با ریسک کمتر آشکار می‌کنند.

آزمایش قطعی: پنج چراغ سبز ناکافی

یک Validator مستقل و بدون Dependency با Node.js ۲۴.۱۸.۰ روی Fixture کاملاً ساختگی اجرا شد. Checker سطحی فقط Accuracy مدل، Fairness metric pass، Human-in-loop، Logs enabled و Explanation shown را دید و به‌اشتباه نتیجه داد:

SUPERFICIAL=FAIR_TRACEABLE_AND_HUMAN_REVIEWED

ممیز ۲۸۹ کنترل یکتا را در ۲۹ گروه Identity، Decision، Context، Authority، Eligibility، Input، Feature، Model، Score، Rule، Policy، Human، Intervention، Outcome، Notice، Explanation، Contest، Review، Correction، Replay، Evidence، Logging، Privacy، Security، Applicability، Fairness، Monitoring، Lifecycle و Limits بررسی کرد. هیچ‌کدام در Fixture سطحی نبود:

CONTROL_COUNT=289
AUDIT=HOLD-289
INDEPENDENT_DECISION=real-decision-or-person:false:PASS

قاعدهٔ مستقل تأیید کرد هیچ Decision یا Person واقعی وارد آزمایش نشده است. پس از پرکردن همهٔ فیلدهای ساختاری با مقدار ساختگی و فعال‌کردن مرزهای no fairness/no absence-of-harmful-bias/no accuracy/no causality/no effective-human-oversight/no applicability/no legality/no compliance/no beneficial-outcome proof، نتیجه شد:

CORRECTED=READY_FOR_AUTOMATED_DECISION_REVIEW-0
BOUNDARY=structure-only; no fairness, absence of harmful bias,
accuracy, causality, human oversight effectiveness,
applicability, legality, compliance, or beneficial outcome proven

چرا صفر Finding تصمیم را منصفانه نمی‌کند؟

ممکن است Decision boundary، Population، Label، Fairness construct، Instrument، Human behavior یا Outcome ناقص باشد. Validator فقط Completeness رکورد را می‌سنجد. `READY_FOR_AUTOMATED_DECISION_REVIEW` جای `FAIR/BIAS_FREE/LEGAL/COMPLIANT` نمی‌نشیند.

آزمایشگاه فارسی کاملاً آفلاین

یک Queue خیالی برای بررسی Reconciliation پرداخت بسازید که فقط Priority پیشنهاد می‌دهد و هرگز حساب، پول یا Person را رد/مسدود/شارژ نمی‌کند. Entityها Order، PaymentAttempt، PSP Stub، Callback، Ledger، ReconciliationTask، ModelScore، Rule، Policy، Review و Notice کاملاً ساختگی‌اند.

سه Decision fixture بسازید: A به‌علت Timeout-after-fake-commit در Queue؛ B به‌علت Feature missing در `ABSTAIN`؛ C با Score یکسان اما Capacity متفاوت خارج Cutoff. سپس Human ساختگی C را با Evidence مستقل Override می‌کند، Notice محلی می‌سازد و Review بعدی Correction را به Action وصل می‌کند.

LabBoundary = {
  network: false,
  production: false,
  realModelOrOrganization: false,
  realDecisionOrPerson: false,
  realMoneyOrPayment: false,
  protectedAttributeOrFairnessClaim: false,
  legalOrComplianceOpinion: false,
  purpose: "validate decision record and replay mechanics only"
}

IRR کاملاً خیالی و تومان فقط برچسب نمایشی است. ارقام فارسی/عربی/لاتین، ی/ی، ک/ک، ZWNJ، RTL/LTR/Bidi، UTC instant، Asia/Tehran view و Jalali صرفاً نمایشی پوشش داده می‌شوند. هیچ نام، جنسیت، قومیت، دین، سلامت، معلولیت، سن، کدملی، موبایل، ایمیل، IP، حساب، PAN، CVV2، OTP، Cookie، Token، Credential، Log یا Screenshot واقعی وجود ندارد.

تمرین Replay در پنج گام

  1. Decision/Request/Prediction/Action identityها را جدا بسازید.
  2. Input/Feature/Model/Rule/Policy/Capacity Snapshot را Hash کنید.
  3. Trace اصلی را اجرا و Event contract را Validate کنید.
  4. Alias مدل و Clock را عمداً تغییر دهید و Replay difference را کشف کنید.
  5. Snapshot درست را بازیابی، Override/Notice/Contest/Correction را تا Restoration Verify کنید.

Anti-patternهایی که باید رد شوند

  • «Model pass شد، پس Decision درست است»؛
  • «Fairness metric سبز است، پس Bias نداریم»؛
  • «یک Human هست، پس تصمیم صرفاً خودکار نیست»؛
  • «Reviewer کلیک کرد، پس Oversight موثر است»؛
  • «Logs روشن‌اند، پس Decision قابل Replay است»؛
  • «Explanation نمایش داده شد، پس علت روشن است»؛
  • «Model-v3 برای Identity کافی است»؛
  • «دادهٔ فعلی همان Input تاریخی است»؛
  • «Score همان Decision است»؛
  • «Threshold بخشی از Model است و نسخه نمی‌خواهد»؛
  • «Capacity فقط مسئلهٔ عملیات است»؛
  • «Unknown را می‌توان Reject کرد»؛
  • «Override rate کمتر همیشه بهتر است»؛
  • «ارسال Template یعنی Notice تحویل شده»؛
  • «Support email یعنی Contest داریم»؛
  • «Rerun همان Review است»؛
  • «ویرایش Outcome یعنی Correction کامل است»؛
  • «AI Act/GDPR هر AI در ایران را پوشش می‌دهد»؛
  • «قانون تجارت الکترونیکی ایران استاندارد Log AI است»؛
  • «فرم کامل یعنی تصمیم منصفانه و قانونی است».

چک‌لیست Owner پیش از Release

  • Record/Decision/Request/Prediction/Action/Correction IDها جدا هستند.
  • Use case، actor، subject، affected party و Materiality candidate روشن‌اند.
  • Decision/Policy/Model/Data/Human/Appeal/Correction ownerها ثبت‌اند.
  • Eligibility policy و Population حذف‌شده Trace دارند.
  • Input point-in-time و Feature lineage/version ثابت‌اند.
  • Model artifact/serving/runtime/vendor identity دقیق است.
  • Raw output/score/class/uncertainty/abstention جدا هستند.
  • Rule order/conflict/fallback و executed trace ثبت‌اند.
  • Policy/threshold/capacity/tie-break versioned هستند.
  • Unknown/OOD/timeout مسیر امن و Notice دارند.
  • Human competence/authority/time/evidence/override واقعی است.
  • Automation-bias control و جهت/reason Override آزموده‌اند.
  • Action پایین‌دستی تا effective/rollback/restoration Trace دارد.
  • Notice version/sent/delivered/reason/route Verify شده است.
  • Explanation purpose/audience/fidelity reference دارد.
  • Contest قابل یافتن، دریافت، پیگیری و تصمیم است.
  • Review مستقل از Rerun و دارای snapshot/new evidence است.
  • Correction به Action/Notice/Subject/Recipient رسیده است.
  • Replay manifest همهٔ نسخه‌ها/clock/dependency را Pin می‌کند.
  • Event semantics/sequence/duplicate/late/integrity Validate شده‌اند.
  • Privacy/security/retention/access متناسب‌اند.
  • Applicability و Fairness review خارج از QA verdict جدا هستند.
  • Monitoring denominator/window/freshness و change trigger دارد.
  • هیچ Fairness، Bias-free، Compliance یا Benefit تضمین نشده است.

Pilot سی‌روزهٔ Decision Replay

هفتهٔ اول: روی Caseهای Sanitized، Decision boundary و Version inventory بسازید. هفتهٔ دوم: Input/Feature/Model/Rule/Policy manifest و Event contract را در Lab پیاده کنید. هفتهٔ سوم: Human/Action/Notice/Contest failure injection را اجرا کنید. هفتهٔ چهارم: یک Decision را Replay، Difference را حل و Correction را تا Restoration تمرین کنید.

شاخص Pilot Accuracy یا تعداد Decision نیست. Case بی‌هویت، Input بدون time، Feature بی-lineage، Model alias، Rule بی-trace، Policy بی‌نسخه، Capacity گمشده، Human بی‌اختیار، Action بی‌receipt، Notice تحویل‌نشده، Contest نمایشی، Replay متفاوت و Correction ناقص را بسنجید. برای رتبه‌بندی Reviewer استفاده نکنید.

منابع چگونه استفاده شده‌اند؟

NIST AI RMF/Playbook برای سؤال‌های داوطلبانهٔ Auditability، log، نقش، Human oversight، override، complaint و adjudication؛ EU AI Act برای نمونهٔ scoped logging/traceability/human-oversight/deployer record duties؛ GDPR Article ۲۲ و EDPB guidance برای پرسش‌های solely automated/significant effect/exception/safeguard؛ و مواد ۱۱ تا ۱۶ قانون تجارت الکترونیکی ایران برای سؤال‌های محدود electronic record/integrity/evidential value استفاده شدند. هیچ‌کدام با اسم «AI» یا یک Test pass به Case واقعی اعمال نمی‌شوند.

جمع‌بندی

سیستم تصمیم خودکار را از Model جدا ببینید. Decision قابل‌ممیزی، Input/Feature/Model/Rule/Policy/Capacity/Human/Action/Notice/Review/Correction را در زمان Pin می‌کند و بدون استفاده از Production یا دادهٔ واقعی Replay می‌شود. این Trace پاسخ «چه رخ داد؟» را بهتر می‌کند؛ پاسخ «آیا منصفانه، قانونی یا مفید بود؟» هنوز به Construct، Evidence و Authority جدا نیاز دارد.

سوالات متداول

تفاوت Model output و تصمیم خودکار چیست؟

Model یک Output/score می‌دهد؛ Rule، Policy، threshold، capacity، queue، Human و Action آن را به نتیجهٔ عملی تبدیل می‌کنند. گاهی Model فقط اولویت پیشنهاد می‌دهد و تصمیم نهایی در جزء دیگری رخ می‌دهد.

آیا وجود Human in the loop برای Oversight کافی است؟

خیر. نقش، صلاحیت، استقلال، زمان، Evidence مستقل، اختیار توقف/Override/Restoration، Automation-bias control و رفتار/Outcome باید آزموده شوند. کلیک تأیید انسانی به‌تنهایی نظارت موثر یا وضعیت حقوقی را ثابت نمی‌کند.

برای Replay می‌توان Model فعلی را اجرا کرد؟

فقط اگر دقیقاً همان Artifact/runtime/dependency/input/feature/rule/policy/clock/capacity باشد. در غیر این صورت Re-evaluation یا Counterfactual جدید است، نه بازسازی Decision تاریخی.

آیا Log کامل Fairness و Compliance را ثابت می‌کند؟

نه. Log می‌تواند Trace را پشتیبانی کند، اما Construct انصاف، Population، Harm، Applicability، کیفیت داده، Human effectiveness و Outcome جدا هستند. Log ناقص Evidence را محدود می‌کند؛ Log کامل Verdict حقوقی یا اخلاقی نیست.

حداقل Artifact عملی برای تیم QA چیست؟

Decision Record، version manifest، point-in-time input/feature snapshot، rule/policy trace، Human intervention record، Action/Notice/Contest/Correction receipt و Replay result با Difference/limitations. Fairness و Applicability Recordها را Reference کنید، نه اینکه داخل Ticket از نو حکم دهید.

دیدگاهتان را بنویسید