هوشِ دیزاین‌سیستم

نسلِ سومِ دیگ (v3) یک لایهٔ تحلیل روی رجیستری/مهاجرت/چرخهٔ‌حیات/وابستگیِ موجود اضافه می‌کند، فقط ترکیب و تفسیر، نه یک موتورِ محاسباتیِ تازه. همه‌چیز فقط‌خواندنی است: هیچ دستوری در این صفحه فایلی تغییر نمی‌دهد.

معماری در یک نگاه

هر لایه دقیقاً روی لایهٔ قبلی سوار است، بدونِ دوباره‌سازیِ منطقش:

architecture.txt
dependency-graph.ts + migration.ts + lifecycle.ts + release.ts
        │
        ▼  ترکیب می‌شوند در
governance.ts  →  dig governance <component>
        │
        ▼  به‌علاوهٔ repo-scanner.ts (استفادهٔ محلی) و health.ts (پذیرش)
intelligence-export.ts  →  dig export-health --json
        │
        ▼  قانون‌محور (یا AI، اگر پیکربندی شده)
doctor.ts (AIAnalyzer)  →  dig doctor
        │
        ▼  انتخابِ یک پیشنهادِ عملی برای یک کامپوننت
migration-assistant.ts (MigrationAssistant)  →  dig migrate-assist <component>

dig health

v2

گزارشِ یکپارچهٔ سلامتِ دیزاین‌سیستم برایِ همین پروژه: پذیرش، مهاجرت‌های در انتظار، چرخهٔ‌حیات، ریسکِ وابستگی و کامپوننت‌های بدونِ استفاده، همه در یک صفحه.

dig health
dig health --json

dig export-health

v2

قراردادِ صادراتِ پایدار و ماشین‌خوان، همان دادهٔ dig health، فقط به شکلِ per-component و مسطح برای مصرف‌کننده‌های آینده (از جمله داشبورد). همیشه JSON برمی‌گرداند.

dig export-health --json
export-health.json
{
  "system": {
    "version": "v2"
  },
  "health": {
    "adoptionRate": 78,
    "risk": "medium"
  },
  "components": [
    {
      "name": "button",
      "usageCount": 35,
      "deprecated": false,
      "migrationPending": true,
      "dependencyImpact": 12,
      "changeType": "breaking"
    }
  ]
}

dig doctor

v3

تحلیلِ خودکارِ یافته‌ها: برای هر مسئله (مهاجرتِ در انتظار، کامپوننتِ منسوخ، وابستگیِ پرریسک، عدمِ‌استفاده، پذیرشِ پایین) یک finding با شدت و پیشنهاد می‌سازد.

dig doctor
dig doctor --json

--explain: ردِ استدلال

برای هر finding، دلیلِ دقیق (چند بند) و سطحِ اطمینان را هم نشان می‌دهد، افزودنی؛ خروجیِ پیش‌فرضِ dig doctor بدونِ این پرچم دست‌نخورده می‌ماند.

dig doctor --explain

dig migrate-assist --explain

v3

مثلِ dig doctor --explain، ولی برای یک پیشنهادِ مشخص: چرا این قاعده (مهاجرت/جایگزین/بررسیِ دستی) انتخاب شد و چه شواهدی پشتش است.

dig migrate-assist button --explain

پیکربندیِ ارائه‌دهندهٔ AI

پیش‌فرض همیشه تحلیلِ قطعیِ قانون‌محور است، بدونِ هیچ کلید/شبکه‌ای. اگر بخواهید --explain از یک مدلِ واقعی (Claude) استفاده کند، این دو متغیرِ محیطی را ست کنید:

.env
DIG_AI_PROVIDER=claude
ANTHROPIC_API_KEY=sk-ant-...

اگر هرکدام نباشد، یا کلید اشتباه باشد، یا پاسخِ مدل نامعتبر/دیرهنگام باشد، بدونِ خطا و بدونِ کرش، همان تحلیلِ قانون‌محور نمایش داده می‌شود. رفتارِ fallback هرگز نمی‌شکند.