# نسخهٔ نهایی ۲ — انطباق با چهار سند ابلاغی (۱۴۰۵/۰۵/۲۴)

این سند مکمل `FINAL-1405.05.24.md` است. آن سند رفع خطای ۴۲۹ و موتور محلی را شرح
می‌دهد؛ این سند، انطباق با چهار سند ابلاغی کارفرما را.

---

## نتیجه ممیزی: قبل و بعد

| سند مرجع                                 | پیش از این نسخه | پس از این نسخه |
| ---------------------------------------- | --------------- | -------------- |
| ساختار کلی لایحه تأخیرات                 | ۹۱٪             | **۱۰۰٪**       |
| ساختار کلی لایحه ضرر و زیان              | ۱۰۰٪            | **۱۰۰٪**       |
| نتایج بررسی نسخه 14050318-MGH            | ۴۸٪             | **۷۴٪**        |
| دستورالعمل توسعه ماژول قراردادها و داوری | ۲۵٪             | **۹۰٪**        |

شش مورد باقی‌مانده در سند ایرادات، همگی چیدمان بصری‌اند (بندهای ۲، ۴، ۸، ۹، ۱۱، ۲۰)
و تعیین تکلیفشان مستلزم اجرای بیلد و بازبینی چشمی است، نه تغییر کد.

---

## ۱. دو ماژول جدید

### ماژول تحلیل قرارداد و مدیریت ریسک — `src/lib/contract/contract-analysis.ts`

یک تحلیل‌گر قطعی که قرارداد را به **۳۵ سرفصل موضوعی** سند تجزیه می‌کند: از تحویل
زمین و تأمین مصالح تا هاردشیپ، خلع ید، داوری و قانون حاکم.

برای هر سرفصل یکی از چهار حکم صادر می‌شود:

| حکم    | معنا                                                                        |
| ------ | --------------------------------------------------------------------------- |
| موجود  | بند با ضمانت اجرای روشن وجود دارد                                           |
| مفقود  | بند اصلاً در قرارداد نیست — مقررات تکمیلی حاکم اعلام می‌شود                 |
| مبهم   | بند هست اما با واژگانی مثل «حسب مورد»، «به تشخیص»، «در اسرع وقت» بی‌اثر شده |
| متعارض | بند با بند دیگری از همان قرارداد در تضاد است                                |

**نکته کلیدی:** شدت ریسک بر پایه **نقش اعلامی کاربر** محاسبه می‌شود. نبودِ «مهلت
اعلام ادعا» برای پیمانکار ریسک درجه ۵ است و برای کارفرما یک مزیت — همان قرارداد،
دو امتیاز متفاوت. نقش‌های بی‌طرف (کارشناس، داور، قاضی) قرائت متوازن می‌گیرند.

خروجی: ماتریس ریسک، بانک بندهای اصلاحی پیشنهادی، و تقویم تعهدات قراردادی.

### ماژول کارشناسی، داوری و قضاوت‌یار — `src/lib/arbitration/claim-matrix.ts`

قاعده حاکم، عیناً از سند: «در مرحله اول، اصل استحقاق هر خواسته را تعیین می‌کند.
فقط در صورت احراز استحقاق، برای کمی‌سازی از ماژول تأخیرات یا ماژول ضرر و زیان
استفاده می‌کند.»

این قاعده یک **دروازه مکانیکی** است، نه توصیه. هر خواسته پنج آزمون می‌دهد:
صلاحیت مرجع · قابلیت رسیدگی · مبنای قراردادی · رابطه علت و معلولی · مسئولیت طرف مقابل.

- هر پنج احراز شد → کمی‌سازی مجاز، با مسیرِ مشخص (تأخیرات یا ضرر و زیان)
- یکی رد شد → **کمی‌سازی ممنوع**؛ تابع `quantificationPlan()` آن را در `blocked` نگه می‌دارد
- دلیل ناکافی → «نیازمند تکمیل دلیل»، نه رد

خروجی‌ها: ماتریس دعوا، گزارش کارشناسی، پیش‌نویس رأی داوری، یادداشت تصمیم‌یار قضایی.
هر سه خروجی صراحتاً برچسب «پیش‌نویس / ابزار کمکی» دارند و اگر نقش اعلامی بی‌طرف
نباشد، هشدار بازبینی توسط مرجع بی‌طرف درج می‌شود.

---

## ۲. پنج هستهٔ مشترک (بندهای ۳-۲، ۳-۴، ۴۰، ۴۱، ۴۲، ۴۳)

| بند | ماژول                         | چه چیزی اضافه شد                                                                              |
| --- | ----------------------------- | --------------------------------------------------------------------------------------------- |
| ۳-۴ | `domain/roles.ts`             | هر ۹ نقش، سه موضع خروجی، و `riskDirection` که جهت ریسک را بر پایه نقش برمی‌گرداند             |
| ۴۲  | `domain/evidence-status.ts`   | پنج وضعیت اعتبار + دروازه‌ای که `Unsupported` را بدون تأیید صریح کاربر وارد گزارش نمی‌کند     |
| ۴۳  | `domain/confidence-schema.ts` | پنج شاخص با نام سند و آستانه‌های ۸۰/۶۰/۴۰؛ زیر ۸۰ همیشه `HumanReviewRequired`                 |
| ۴۱  | `domain/audit-log.ts`         | هر شش پرسش الزامی: چه کسی، چه اسنادی، چه نسخه دانشی، چه فرضیاتی، چه فرمول‌هایی، چه خروجی‌هایی |
| ۳-۲ | `domain/knowledge-source.ts`  | هر ۱۱ فیلد متادیتای منبع دانش + فیلتر نقش، نوع قرارداد و تاریخ اعتبار                         |
| ۴۰  | `domain/disclaimer.ts`        | سلب مسئولیت دائمی در ابتدا و انتهای هر گزارش (idempotent)                                     |

نکتهٔ بند ۴۲ که ارزش تأکید دارد: وضعیت اعتبار **از شواهد استنتاج می‌شود**، نه از
ادعای مدل. `classifyEvidence()` می‌شمارد چند نقل قول مستقیم و چند ارجاع قانونی
پشت یک نتیجه است و بر آن پایه تصمیم می‌گیرد.

---

## ۳. ایرادات کارفرما که در این نسخه رفع شد

**۷ و ۲۴-د — اعداد داشبورد.** `src/lib/dashboard/report-metrics.ts` شاخص‌های کلیدی
(تمدید مدت، تاریخ پایان جدید، تأخیر مجاز/غیرمجاز/همزمان، مجموع خسارات، سطح
اطمینان) را از **خودِ گزارش تولیدشده** استخراج می‌کند و ControlCenter آن‌ها را در
کارت نمایش می‌دهد. قاعدهٔ سخت‌گیرانه: اگر عددی در گزارش نباشد، کارت ساخته نمی‌شود و
پنل صراحتاً می‌گوید شاخص عددی قابل استخراجی یافت نشد. هیچ عدد جانشینی ساخته نمی‌شود.

**۱۵ — Logic Linked.** `assessLinkedLogic()` اکنون **محتوای شبکه** را می‌سنجد:
تعداد فعالیت، تعداد رابطه، و فعالیت‌های یتیم. پیام آن هرگز به «برنامه چون‌ساخت»
اشاره نمی‌کند — آن الزام متعلق به گیتِ روش تحلیل است، نه به این بررسی.

**۱۷ — «فضای کاری شما آماده است».** بلوک بزرگ حذف و با یک سطر فشرده جایگزین شد.

**۳ و ۲۴-ب — تناقض MPP.** برچسب فرمت‌ها از «MPP, XER, XML, XLSX» به
«XER/XML (تحلیل شبکه‌ای) · MPP/XLSX (سند)» تغییر کرد. MPP همچنان پذیرفته می‌شود،
اما دیگر به‌عنوان ورودی تحلیل شبکه‌ای تبلیغ نمی‌شود. راهنمای تبدیل به XML در
`MPP_GUIDANCE_FA` در دسترس است.

**گانت‌چارت.** `src/legacy/utils/ganttChart.ts` یک SVG خودبسندهٔ راست‌به‌چپ تولید
می‌کند که نشان می‌دهد در هر روز تقویمی چه عواملی فعال بوده‌اند، و اتحاد روزها را با
**کسر همپوشانی** محاسبه می‌کند — همان چیزی که سند نمونه مطالبه کرده بود.

---

## ۴. یک تصحیح صادقانه نسبت به ممیزی قبلی

در ممیزی اول، ایراد ۱۹ (هشدار تأخیرات همزمان) را «رفع نشده» گزارش کردم. **این
اشتباه بود.** آن ایراد از قبل رفع شده بود: `DelayAnalysisPage.tsx` خط ۲۶۶ آرایهٔ
`NO_CONCURRENT_METHODS = ["SUM", "GANTT", "IAP", "APvsAB"]` را دارد و هشدار برای
هر چهار روش رندر می‌شود. ممیزی قبلی چون واژهٔ `supportsConcurrent` را جستجو کرده
بود — نامی که خودم فرض کرده بودم — پیاده‌سازی واقعی را نیافت.

این مورد در فایل اکسل با برچسب «رفع شده (در ممیزی قبلی اشتباه گزارش شد)» ثبت شده است.

---

## ۵. وضعیت اعتبارسنجی

| بررسی        | نتیجه                                    |
| ------------ | ---------------------------------------- |
| تست‌ها       | **۲۱۶ پاس، ۰ شکست** (از ۱۰۴ در نسخه قبل) |
| Typecheck    | پاک                                      |
| Lint         | **۰ خطا** (۹ هشدار بی‌ضرر react-refresh) |
| Build تولیدی | موفق روی نصب تمیز                        |

### فایل‌های تست جدید

| فایل                       | تعداد | پوشش                                                                           |
| -------------------------- | ----- | ------------------------------------------------------------------------------ |
| `specCores.test.ts`        | ۳۳    | نقش‌ها، دروازه اعتبار، شاخص‌های اطمینان، لاگ ممیزی، متادیتای دانش، سلب مسئولیت |
| `contractAnalysis.test.ts` | ۲۳    | تشخیص بند، ابهام، امتیاز نقش‌محور، هندآف ۱۱ و ۱۲ پارامتری                      |
| `arbitration.test.ts`      | ۲۴    | پنج آزمون استحقاق، دروازه کمی‌سازی، سه قالب خروجی                              |
| `dashboardMetrics.test.ts` | ۱۹    | استخراج شاخص، تضمین عدم ساخت داده، Linked Logic                                |
| `ganttChart.test.ts`       | ۱۳    | حساب همپوشانی، رندر SVG، فرار از تزریق                                         |

آزمون‌هایی که ارزش نام بردن دارند:

- «a rejected claim NEVER reaches any quantification engine» — دروازه بند ۳۹
- «an empty report yields NO metrics — never placeholders» — تضمین بند ۷
- «a baseline WITH relations passes» — دقیقاً شکایت بند ۱۵
- «the same contract scores differently for the two parties» — اثر واقعی نقش
- «union counts an overlapping day once» — قاعدهٔ کسر همپوشانی

---

## ۶. آنچه هنوز باقی است

**۲ مورد در دستورالعمل:**

- تشخیص خودکار نسخهٔ سند (بند ۳-۱) — نسخه‌بندی اسناد پروژه، نه پایگاه دانش
- قالب خروجی Word اختصاصی برای نظریه کارشناسی و رأی داوری (متن مارک‌داون آماده است)

**۶ مورد چیدمان بصری در سند ایرادات:** بندهای ۲، ۴، ۸، ۹، ۱۱، ۲۰. این‌ها را
عمداً «رفع شده» اعلام نکردم چون بدون اجرای بیلد و دیدن صفحه، هر ادعایی حدس است.

**دو ماژول جدید موتور قطعی دارند، اما هنوز صفحهٔ اختصاصی UI ندارند.** منطق، خروجی
مارک‌داون و تست کامل است؛ اتصال به یک تب در رابط کاربری، گام بعدی است.
