تصور کنید تغییر یک امضای تابع در یک کتابخانه مشترک، منجر به هزاران دلار هزینه برای بازگشت اضطراری (Rollback) و توقف خدمات مشتریان شود. اتنا (Athena)، موتور هوشمند تحلیل تغییرات که برای چالش Hacktoberfest ۲۰۲۶ منتشر شده است، با تبدیل تغییرات کد به حقایق ریاضی بهجای حدسهای احتمالی، این کابوس را به پایان میرساند.
بسیاری از برنامهنویسان برای نوشتن یادداشتهای انتشار (Release Notes) به بررسیهای دستی یا هوش مصنوعی ابری تکیه میکنند؛ اما این روشها اغلب دچار توهم (Hallucination) — شبیه دوستی که خاطرهای را اشتباه تعریف میکند — شده یا کدهای حساس شرکت را به سرورهای شخص ثالث میفرستند. اتنا در زمانی عرضه شده است که تیمهای مهندسی در بخشهای تحت نظارت و حساس — مانند فینتک (FinTech)، هلثتک (HealthTech) و صنایع دفاعی — به بهرهوری هوش مصنوعی نیاز دارند اما نمیتوانند حاکمیت دادههای خود را فدا کنند.
هسته قطعی اتنا
برخلاف دستیارهای کدنویسی معمولی، اتنا از معماری ترکیبی استفاده میکند که نتایج قطعی را بر تولیدات مدل زبانی اولویت میدهد. این موتور ابتدا از ماژول ast پایتون و توکنسازهای سینتکس تایپاسکریپت برای تجزیه درختهای نحو (Syntax Trees) در بازههای کامیت گیت استفاده میکند.
این فرآیند به ابزار اجازه میدهد تا شکستهای ساختاری دقیق را شناسایی کند؛ مواردی مانند حذف اکسپورتها یا تغییر در لیست پارامترها (شامل پارامترهای موقعیتی، کلیدواژهای و مقادیر پیشفرض) و همچنین تغییر در انواع بازگشتی (Return Types). طبق مستندات پروژه، چون این لایه ۱۰۰٪ مستقل از مدلهای زبانی است، کاملاً آفلاین و بدون تأخیر کار میکند؛ بنابراین حکم «تغییر بحرانی» بر اساس شواهد ریاضی صادر میشود، نه شهود یا حدس یک مدل. این رویکرد دقیق در مدیریت تغییرات، یادآور راهکارهای مانیفست نسخهبندی است که برای جلوگیری از شکستهای عملیاتی در استقرار مدلهای AI پیشنهاد شدهاند.
سازوکارهای فنی
اتنا برای تضمین قابلیت اطمینان، بر اساس یک خط لوله ترکیبی سختگیرانه طراحی شده است:
- موتور Diff و تاریخچه گیت: استخراج تغییرات خام از مخزن کد.
- تجزیهکنندههای AST چندزبانه: تحلیل امضاهای ساختاری در زبانهای پایتون و تایپاسکریپت.
- موتور تأیید قطعی و تحلیل اثر: نقشهبرداری از اثرات تغییرات بدون هیچگونه دخالت هوش مصنوعی.
- اولاما (Ollama): (اختیاری) استفاده از مدل
qwen2.5-coder:7bبرای سنتز روایتی و تبدیل دادهها به متن. - سرور MCP / خروجی CLI: تحویل نتایج از طریق ابزارهای استاندارد JSON-RPC 2.0 stdio.
قابلیتهای تفصیلی موتور
برای ارائه اطلاعات مبتنی بر دادههای مرجع (Ground Truth)، اتنا چندین ماژول تشخیص تخصصی را پیاده کرده است:
- تشخیص تغییرات بحرانی در سطح AST: تجزیه درختهای نحو برای یافتن اکسپورتهای حذف شده و تغییرات در نوع بازگشتی. این ماژول بهطور خاص زمانی که یک پارامتر غیر-اختیاری به یک تابع عمومی اضافه شود، آن را علامتگذاری کرده و پیشنهاد ارتقای نسخه به MAJOR (طبق استاندارد SemVer) را میدهد.
- نقشهبرداری از شعاع اثر (Blast Radius): پیمایش خودکار مخزن برای یافتن تمام فایلهای داخلی، توابع فراخواننده و نمادهای واردشدهای که تحت تأثیر تغییر امضا قرار گرفتهاند.
- تشخیص انحراف مستندات: تطبیق نمادهای تغییریافته در کد با راهنماهای Markdown و docstringها برای شناسایی مستندات قدیمی و منسوخ پیش از انتشار محصول.
- یادداشتهای انتشار مبتنی بر شواهد: تولید تغییرات دستهبندیشده که در آن هر مورد (Bullet Point) مستقیماً به هشهای دقیق کامیت و diffهای فایل لینک شده است.
نقشهبرداری از شعاع اثر در عمل
به محض شناسایی یک تغییر بحرانی، اتنا عملیات «نقشهبرداری از شعاع اثر» را آغاز میکند. این ابزار تمام فایلهای داخلی، توابع فراخواننده و نمادهای واردشدهای که از امضای تغییریافته استفاده میکنند را شناسایی میکند.
در یک تست واقعی روی یک API صورتحساب میکروسرویس که توسط یک توسعهدهنده فریلنسر مدیریت میشد، اتنا روی یک شاخه بازسازی (Refactor) با ۳۸ کامیت اجرا شد. ابزار متوجه یک تغییر بحرانی شد: متدی به نام format_tax_rate به یک @staticmethod تبدیل شده بود و یک آرگومان موقعیتی جدید بدون مقدار پیشفرض دریافت میکرد. در حالی که تستهای واحد (Unit Tests) برنامهنویس پاس شده بود، ابزار شعاع اثر اتنا سه پردازشگر وبهوک قدیمی را در فایلهای دیگر یافت که هنوز از امضای تک-آرگومانی قدیمی استفاده میکردند. ادغام آن PR باعث توقف تولید صورتحسابهای مشتریان در محیط عملیاتی میشد.
انحراف مستندات و شواهد
اتنا نمادهای کد را با راهنماهای متنی تطبیق میدهد تا «انحراف مستندات» را شناسایی کند. این کار تضمین میکند که راهنماهای API همزمان با کد بهروز شوند و مستندات قدیمی به دست کاربر نرسد. برای مثال، اگر امضای تابعی در src/core/calculator.py تغییر کند، اتنا هشدار میدهد که فایل docs/api_guide.md هنوز به تعداد آرگومانهای قدیمی اشاره میکند.
هر خروجی سیستم به یک EvidenceRecord متصل است. این رکورد شامل موارد زیر است:
- SHA ۴۰ کاراکتری کامیت.
- موضوع (Subject) کامیت.
- مسیر دقیق فایل.
- بازه خطوط مبدأ و مقصد (Base and Target line spans).
- تکه کد تغییریافته (Unified diff hunk).
این یعنی هر مورد در یادداشتهای انتشار به یک رویداد تأییدشده در گیت لینک شده و توهمات رایج در تولیدکنندههای ابری حذف میشود.
شتابدهی با هوش مصنوعی محلی
در حالی که هسته سیستم قطعی است، اتنا بهصورت اختیاری با اولاما (Ollama) برای اجرای مدلهای وزنهای باز (Open Weights) — یعنی مدلهایی که دستور پختشان علناً منتشر شده و نه فقط غذای آماده — مثل qwen2.5-coder:7b ادغام میشود. نقش هوش مصنوعی در اینجا تشخیص تغییر نیست، بلکه تبدیل diffهای چند-کامیت به روایتهای تجاری منسجم و تمهای فنی انتشار است.
برای جلوگیری از توهم، تأییدکننده اتنا هر استناد تولیدشده توسط AI را با لاگ واقعی گیت چک میکند. هر ادعایی که به یک SHA واقعی متصل نباشد، بهطور خودکار از گزارش نهایی حذف میشود. اگر اولاما نصب نباشد یا آفلاین باشد، اتنا بهطور بیوقفه به حالت قطعی سوییچ میکند تا قابلیت اطمینان ۱۰۰٪ حفظ شود.
یکپارچهسازی و استقرار
اتنا هم بهعنوان ابزار CLI و هم بهعنوان سرور پروتکل زمینه مدل (MCP) عمل میکند. این ویژگی اجازه میدهد ابزار بهطور بومی به ویرایشگرهای AI مثل Cursor، Zed یا Claude Desktop از طریق استاندارد JSON-RPC 2.0 متصل شود. کاربران میتوانند با دستور python -m athena mcp آن را به فایل claude_desktop_config.json اضافه کنند.
برنامهنویسان میتوانند از دستورات زیر استفاده کنند:
- تشخیص تغییرات بحرانی:
python -m athena breaking-changes . --base v1.0.0 --target v2.0.0(شناسایی اکسپورتهای حذف شده و تغییرات پارامتر). - ارزیابی شعاع اثر:
python -m athena analyze . --base v1.0.0 --target HEAD(تحلیل فایلهای تغییریافته و فراخوانندههای پاییندستی متأثر). - تولید یادداشتهای تأییدشده:
python -m athena release-notes . --base v1.0.0 --target v2.0.0 --version "v2.0.0"(تولید یادداشتهای دستهبندیشده با لینکهای کامیت).
برای کسانی که میخواهند سیستم را سریع تست کنند، دستور python examples/create_demo_repo.py یک مخزن Sandbox شامل کامیتهای نمونه، تغییرات بحرانی و انحراف مستندات ایجاد میکند.
مدل اقتصادی و استقلال
این پروژه از مدل Open-core پیروی میکند. در حالی که CLI و سرور MCP تحت لایسنس MIT رایگان هستند، یک بات GitHub Action با هزینه ۱۹ دلار در ماه برای افراد و ۷۹ دلار برای تیمها، حسابرسی خودکار PRها و هشدارهای شعاع اثر را مستقیماً در بررسیهای PR ارسال میکند.
این مدل هزینه بالای توکنها برای ارسال diffهای ۵۰ هزار خطی به APIهای ابری را حذف میکند. این سیستم روی سختافزارهای مصرفی — از جمله GPU مدل NVIDIA RTX 4050 لپتاپ با ۶ گیگابایت VRAM — تست شده و هزینه نهایی هر حسابرسی را تقریباً صفر میکند. این موضوع برای فریلنسرهایی که نمیتوانند ریسک نشت مالکیت معنوی مشتری را با ارسال کد به سرورهای خارجی بپذیرند، حیاتی است.
با استفاده از استانداردهای باز (Git, AST, MCP)، اتنا از وابستگی به یک فروشنده خاص (Vendor Lock-in) جلوگیری میکند. کاربران میتوانند مدل محلی را هر زمان که خواستند از Qwen به Llama 3 یا Gemma 2 تغییر دهند. این معماری برای توسعهدهندگانی که در پرواز، قطارهای شهری یا شبکههای داخلی ایزوله (Air-gapped) شرکتها کار میکنند، ایدهآل است، زیرا به هیچ تماس شبکهای، تلهمتری یا بررسی اینترنت نیاز ندارد.
این رویکرد ثابت میکند که ترکیب تحلیل استاتیک با مدلهای زبانی کوچک (SLM) میتواند در ابزارهای تخصصی توسعه، از مدلهای زبانی بزرگ (LLM) عمومی پیشی بگیرد. برای تیمهایی که تحت قراردادهای سختگیرانه NDA هستند، این معماری راهی امن برای مدیریت انتشار با کمک AI بدون ریسک نشت اطلاعات فراهم میکند. توسعهدهندگان برای بررسی پیادهسازی میتوانند بازدیدکنندههای AST و ۳۳ تست خودکار واقعی — که مواردی چون نشانگرهای positional-only، متدهای staticmethod، حفاظت از استریمهای NTFS و اینترفیسهای چندخطی تایپاسکریپت را پوشش میدهند — در مخزن aaryanrwt/athena بررسی کنند.
گام بعدی شما
- اگر از Cursor یا Claude Desktop استفاده میکنید، سرور MCP اتنا را نصب کنید تا تحلیل تغییرات کد را به محیط چت بیاورید.
- برای تست سریع، دستور
python examples/create_demo_repo.pyرا اجرا کنید تا یک مخزن نمونه با تغییرات بحرانی ایجاد شود. - در PRهای حساس، بهجای تکیه بر تستهای واحد، تحلیل شعاع اثر (Blast Radius) را برای شناسایی فراخوانندههای فراموششده اجرا کنید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو