# تمرین نوسازی محدود .NET

نیاز: Python 3.10+، فقط کتابخانهٔ استاندارد. از همین پوشه اجرا کنید:

```bash
python inspect_baseline.py fixtures/baseline.json
python inspect_project.py
python run_checks.py --inventory
python run_checks.py --template fixtures/regression_failed.json submission.json --as-of 2026-09-12
python run_checks.py --check fixtures/regression_failed.json submission.json
```

میان دو فرمان آخر، تصمیم، همهٔ علت‌های نوع‌دار، pointer، استدلال، ترمیم و محرک بازبینی را تکمیل کنید. STRUCTURE_PASS_SEMANTICS_UNREVIEWED فقط شکل و اتصال را می‌سنجد. خروجی موجود بازنویسی نمی‌شود.

baseline و sdk_pin_old حل‌شده‌اند؛ regression_failed هدایت‌شده و transfer_existing مستقل است. policy.json همهٔ قواعد، contracts.json انتظارها و منابع snapshot و resources جدول کامل، نگاشت، منابع و ارزیابی را می‌دهند. تصمیم انتقال را خودتان بسازید. نامزد و رسید تازهٔ پیشنهادی را در فایل جدا با برچسب ساختگی نگه دارید.

پایتون فقط resolver محدود و مقایسه را واقعاً اجرا می‌کند. ورودی global.json ازقبل انتخاب شده است؛ فقط disable و latestPatch برای نسخهٔ پایدار پشتیبانی می‌شوند. inspect_project چهار اعلان صریح را می‌خواند و MSBuild را اجرا نمی‌کند. داده‌های build، تست و diagnostics مصنوعی‌اند، نه اجرای C#.

پوشهٔ dotnet پروژهٔ کنسولی کامل با assertion دارد. از پوشهٔ آن و با SDK دقیق 10.0.401 و targeting pack لازم، dotnet restore --configfile NuGet.Config، سپس dotnet build --no-restore و dotnet run --no-build --no-restore اجرا می‌شوند. dotnet test جانشین harness کنسولی نیست. پروژه از framework reference استفاده می‌کند؛ بستهٔ خیالی تمرین را نصب نمی‌کند. این اجرا در محیط تولیدکننده UNVERIFIED است: CoreCLR راه نیفتاد و build اجرا نشد. نتیجهٔ واقعی خودتان را با هش منبع C# و context در دفتر جدا ثبت کنید؛ آن را در receipt ساختگی جا نزنید. بازگشت فقط snapshot دورریختنی است و اثر پایگاه داده را برنمی‌گرداند.

تاریخ مثال 2026-09-12 و موعد بازبینی 2026-10-18 است. برای ادعای جاری تاریخ واقعی و وضعیت منقضی را حفظ کنید. مالک انسانی یا تأیید سرویس واقعی ارائه نشده است.
