# ClaimManager — بستهٔ اصلاحی انترپرایز (نسخهٔ ۱۴۰۵.۰۵)

این سند، اصلاحات اعمال‌شده روی ایرادات کارفرما (گزارش بررسی ۲۶ تیر ۱۴۰۵ و لایحهٔ تأخیرات
۳ مرداد ۱۴۰۵) را فهرست می‌کند.

## ۱) موتور محاسباتی واحد برای هر ۸ روش تحلیل تأخیر

**ایراد:** رابط کاربری هشت روش (SUM، GANTT، IAP، TIA، AP-vs-AB، CAB، WA، CONTRACT) را نشان می‌داد،
اما مسیر محاسباتی در همهٔ حالات فقط `runIap` را صدا می‌زد.

**اصلاح:** فایل جدید `src/legacy/utils/delayEngine.ts`

- `runDelayAnalysis({ methodId, events, schedules, concurrency })` — dispatcher مستقل برای هر روش
- خروجی یکنواخت `DelayMethodResult` شامل: EOT، روزهای مجاز/غیرمجاز/قابل جبران/همزمان/بحرانی،
  اثر هر رویداد، رویدادهای متصل‌نشده، هشدارها و ورودی‌های مفقود
- مستندسازی الگوریتم و مبنای فنی هر روش (`algorithm` / `basis`) در خروجی و در گزارش

## ۲) تأخیر همزمان (Concurrent Delay) واقعاً محاسبه می‌شود

**ایراد:** تنظیمات «حداقل هم‌پوشانی» و «دامنه» فقط دکور بودند و وارد محاسبه نمی‌شدند.

**اصلاح:** `ConcurrencyConfig` (فعال/غیرفعال، حداقل روز هم‌پوشانی، دامنهٔ کل/فقط‌بحرانی)
به موتور تزریق می‌شود؛ `analyzeConcurrency` جفت‌رویدادهای هم‌پوشان را شناسایی و قاعدهٔ SCL
(همزمانی ← تمدید مدت بله، خسارت خیر) را اعمال می‌کند. روزهای هم‌پوشان فقط یک‌بار شمرده می‌شوند (union).

## ۳) پردازش مجموعهٔ کامل برنامه‌های زمان‌بندی

**ایراد:** فقط اولین فایل XML/XER پارس می‌شد؛ روش‌های TIA / AP-vs-AB / CAB / WA بدون برنامهٔ
میانی و چون‌ساخت عملاً قابل اجرا نبودند.

**اصلاح:** `src/legacy/utils/scheduleSet.ts`

- همهٔ فایل‌های برنامه پارس و به سه دستهٔ مبنا / میانی / چون‌ساخت طبقه‌بندی می‌شوند
- فایل‌های MPP و قالب‌های ناسازگار به‌جای نادیده‌گرفتن، صریحاً در «محدودیت‌ها» درج می‌شوند
- وضعیت مجموعه (`describeScheduleSet`) به پرامپت هوش مصنوعی و به گزارش منتقل می‌شود

## ۴) حذف علت ریشه‌ای «EOT = ۰ روز»

**ایراد:** محاسبهٔ شبکه پیش از استخراج رویدادهای تأخیر توسط هوش مصنوعی اجرا می‌شد؛ بنابراین
همیشه روی مجموعهٔ خالی اجرا می‌شد و خروجی صفر می‌داد.

**اصلاح:** پس از استخراج و لنگرزدن رویدادها (`anchored`)، موتور مجدداً اجرا می‌شود و نتیجهٔ قطعی
(`buildEngineReportSection`) در گزارش درج می‌گردد و بر متن تولیدشدهٔ مدل اولویت دارد.

## ۵) پایگاه دانش حقوقی نسخه‌بندی‌شده و ارجاع دقیق

**ایراد:** استنادات حقوقی در گزارش تولید متنی بود و امکان ارجاع به مواد نامرتبط وجود داشت.

**اصلاح:** `src/legacy/utils/knowledgeBase.ts` (نسخه `1405.05-KB1`)

- قواعد ساختاریافته: مواد ۲۸، ۳۰، ۳۷، ۴۳، ۴۸ شرایط عمومی پیمان؛ بخشنامه‌های ۵۰۹۰ و ۱۳۰۰؛
  دستورالعمل سرجمع ۹۶؛ ماده ۲۲۱ قانون مدنی؛ SCL Protocol؛ AACE 29R-03؛ FIDIC 8.5
- هر قاعده دارای مرجع، تاریخ اجرا، وضعیت (جاری/منسوخ)، پیش‌شرط‌ها و اثر حقوقی است
- `auditCitations()` استنادات متن گزارش را با پایگاه دانش تطبیق می‌دهد و ارجاع ناشناخته را علامت می‌زند

## ۶) کنترل خطای تحلیلی (طبقه‌بندی مسئولیت)

`src/legacy/utils/classification.ts` — تشخیص مسئولیت (کارفرما / پیمانکار / شخث ثالث) و قاعدهٔ
مجاز/غیرمجاز و قابل‌جبران/غیرقابل‌جبران. `detectMisclassification()` مواردی مانند «تأخیر تخصیص اعتبار
به‌عنوان تأخیر پیمانکار» را در متن گزارش شناسایی و در بخش «ممیزی» درج می‌کند.

## ۷) امتیاز اطمینان (Confidence Score) واقعی

`src/legacy/utils/confidence.ts` — شش عامل وزنی: پوشش اسناد، وجود قرارداد، کیفیت شبکه،
اتصال رویدادها به فعالیت، عمق استناد به سند، و اعتبار ارجاعات حقوقی.

- سقف امتیاز ۹۲ (هرگز ۱۰۰٪)
- خطای طبقه‌بندی تا ۲۰ امتیاز جریمه
- EOT صفر در عین وجود رویداد ← سقف ۴۵
- زیر ۶۰ ← برچسب **«غیرقابل تقدیم به کارفرما/مرجع حل اختلاف»**

## ۸) تأخیرات مالی — بخشنامهٔ ۵۰۹۰ و ۱۳۰۰ (مورد ۲۲)

**ایراد:** موتور ۵۰۹۰ نوشته شده بود اما در UI فقط پیام «جزئیات این روش ارسال خواهد شد» بود.

**اصلاح:** `src/legacy/components/delay/FinancialDelay5090Tab.tsx`

- مشخصات پایهٔ پیمان (S، T، نوع پیمان و ضریب اثر — سرجمع ۹۶ = ۵۰٪)
- صورت‌وضعیت‌های موقت/تعدیل با مهلت پرداخت `max(20, دوره×۲۰/۳۰)`
- اقساط پیش‌پرداخت (قسط اول: `0.9×θ×نسبت پرداخت`؛ اقساط بعدی: `θ×(T/S)×(K/Δ)×نسبت`)
- سقف تمدید و مقیاس صورت‌وضعیت قطعی
- توجه به هم‌پوشانی مالی–فنی (union) تا روزها دوبار شمرده نشوند

## ۹) پنل خلاصه — واحد «روز» به‌جای «تعداد رویداد»

پنل `DelaySummaryPanel` پیش‌تر تعداد رویداد را نشان می‌داد (مثلاً «مجاز: ۳») که در دعاوی بی‌معناست.
اکنون همهٔ مقادیر **روز تقویمی** هستند و برچسب‌ها نیز همین را اعلام می‌کنند.

## ۱۰) پنل زندهٔ موتور محاسباتی

پنل قدیمی همیشه خروجی IAP را نشان می‌داد، حتی وقتی کاربر روش دیگری را انتخاب کرده بود.
اکنون پنل دقیقاً خروجی روش انتخابی را به‌همراه الگوریتم، مبنای فنی، ورودی‌های مفقود
و هشدارها نشان می‌دهد.

## ۱۱) ساختار جدید گزارش تولیدی

بدنهٔ گزارش اکنون به ترتیب شامل:

1. متن تحلیلی (خروجی مدل)
2. هشدار قرارداد (در صورت عدم بارگذاری قرارداد)
3. **نتایج قطعی موتور محاسباتی** (اولویت با اعداد موتور)
4. **ممیزی استنادات و خطاهای طبقه‌بندی**
5. **امتیاز اطمینان و محدودیت‌ها**
6. پیوست فنی (مدل، نسخهٔ پایگاه دانش، تاریخ تولید)

## مواردی که عمداً باز مانده‌اند (نیازمند تصمیم یا دادهٔ کارفرما)

| مورد                             | وضعیت     | توضیح                                                                 |
| -------------------------------- | --------- | --------------------------------------------------------------------- |
| تقویم کاری و تعطیلات رسمی در CPM | باز       | فعلاً تقریب ۸ ساعت/روز؛ نیازمند تقویم پروژه                           |
| Constraintها (SNET/FNLT)         | جزئی      | فقط SNET پشتیبانی می‌شود                                              |
| فایل MPP باینری                  | باز       | باید به XML یا XER تبدیل شود (در محدودیت‌ها اعلام می‌شود)             |
| اتصال خودکار رویداد به فعالیت    | هیوریستیک | پیشنهادی است و باید توسط کارشناس تأیید شود                            |
| محدودیت حجم اسناد در یک اجرا     | باز       | سقف متن ارسالی به مدل محدود است؛ راه‌حل قطعی RAG با پایگاه برداری است |

## راه‌اندازی

```bash
npm install      # یا: bun install
npm run dev      # http://127.0.0.1:8080
```

> توجه: اگر صفحه بالا نیامد، VPN/پراکسی را خاموش کنید و به‌جای `localhost` از
> `http://127.0.0.1:8080` استفاده کنید.
