سیاستهای افشای استفاده از هوش مصنوعی در پروژه شما، تنها به اندازه آخرین بازبینی دستی کدتان اعتبار دارند. برای رفع این نقطه ضعف، Commit Check در ۶ ژوئیه ۲۰۲۶ نسخه ۲.۱۱.۰ را منتشر کرد تا مکانیزمی برای شناسایی و مسدود کردن خودکار امضاهای تولیدشده توسط هوش مصنوعی در سطح یکپارچهسازی مستمر (CI) ایجاد کند.
حاکمیت در پروژههای متنباز به نقطهای رسیده است که اعتماد دستی دیگر مقیاسپذیر نیست. پروژههای بزرگی ماهها درباره نحوه برخورد با کمکهای AI بحث کردهاند؛ برای مثال، هسته لینوکس فرمت «Assisted-by:» را به عنوان یک تریلر (Trailer) استاندارد کرد، در حالی که فدورا و آپاچی دستورالعملهای افشای خاص خود را توسعه دادند. تا پیش از این، این قوانین صرفاً توافقاتی اخلاقی و کنوانسیونهای ساده بودند و هیچ لایه خودکار و بیطرفی برای رد کردن کدهای غیرمنطبق در سطح زیرساختی وجود نداشت. این فشار برای شفافیت در کد، همگام با تغییرات گستردهتر در قوانین جهانی است، بهطوری که الزامات سختگیرانهی اتحادیه اروپا برای شفافیت در ابزارهای هوش مصنوعی نیز تا سال ۲۰۲۶ باید اجرایی شوند.
همانطور که در تحلیلهای پیشین ما دربارهی استانداردهای حاکمیت در کدهای متنباز اشاره کردیم، شفافیت در منبع کد اکنون به اندازه خودِ کیفیت کد اهمیت یافته است. این ابزار در واقع مانند یک لینتر (Linter) — شبیه به ویراستاری که غلطهای املایی را قبل از چاپ میگیرد — برای شفافیت عمل میکند. همانطور که یک کامپایلر خطاهای نحوی را میگیرد، Commit Check اکنون امضاهای پنهان AI را پیش از ورود به بدنه اصلی کد شکار میکند.
نیاز صنعت به اجبار قانونی
به نقل از گزارشهای تخصصی، بحث درباره افشای AI دیگر تئوری نیست. طبق اعلام منابع، هسته لینوکس فرمت «Assisted-by:» را پذیرفته اما تعمدی در اجرای سختگیرانه آن در CI نکرد. ساشا لوین در اجلاس Maintainers اشاره کرد که تمرکز لینوکس بر ایجاد یک قرارداد و استاندارد است، نه اینکه مانند یک دروازهبان عمل کرده و دسترسیها را ببندد.
اشتهایای جوامع مختلف برای پذیرش AI بسیار متفاوت است:
- پایتون: در حال حاضر در حال بحث است که آیا استفاده از Claude Code باید بهطور اجباری مستند شود یا خیر (به مورد شماره ۳۱۳۹۶۲ در VS Code اشاره کنید که در آن بحث جایگزینی "Co-authored-by" با "Assisted-by" برای عاملهای AI مطرح شده است).
- فدورا: افشای AI را الزامی کرده و استفاده از تگ Assisted-by را توصیه میکند.
- QEMU و Gentoo: موضع سختگیرانهتری دارند و هرگونه مشارکت تولیدشده توسط AI را بهطور کلی ممنوع کردهاند. این رویکرد تند در برخی پروژهها، بخشی از موجی است که در آن برخی مخازن متنباز برای بقا و جلوگیری از استخراج داده توسط AI به سمت مدلهای بسته یا اختصاصی حرکت میکنند.
مکانیزمهای فنی شناسایی
بر اساس مستندات dev.to، این ابزار از یک پایگاه داده منتخب از نشانگرهای شناختهشده AI برای شناسایی امضاهای ابزاری استفاده میکند. این موارد شامل جزئیات زیر است:
- Claude Code: شناسایی عباراتی مثل «Co-authored-by: Claude»، «Assisted-by: Claude:
»، مارکرهای ایموجی، عبارات «Claude-Session:» و «Claude-Workflow:» و همچنین مدلهای خاصی مانند «claude-sonnet-4». - GitHub Copilot، OpenAI Codex، Gemini، Cursor و Devin: تطبیق با رشتههای استاندارد «Co-authored-by» که توسط این ابزارها درج میشود.
- Aider، Windsurf و Tabby: شناسایی تگهای انتهایی ابزاری خاص (به عنوان مثال: «Co-authored-by: ... (aider)»).
- AI عمومی: تطبیق با فرمتهای «Assisted-by:
: [tools]» و نام مدلهای شناختهشدهای مانند «gpt-4-turbo».

برای جلوگیری از مثبتهای کاذب (False Positives)، سامانه شناسایی را به آدرسهای ایمیل noreply متصل کرده است. برای مثال، کامیتی که توسط «Claude [email protected]» ارسال شده رد میشود، اما کامیتی از شخصی به نام «کلود مونه» با ایمیل «[email protected]» یا «جین دو» با ایمیل «[email protected]» نادیده گرفته میشود تا کاربر واقعی با نام مشابه مسدود نشود. همچنین فرمت Assisted-by لینوکس بهگونهای مدیریت میشود که لیستهای ابزاری اختیاری در انتها (مانند coccinelle sparse) را بهدرستی شناسایی کرده و در عین حال فقط مارکر AI را برای تصمیمگیری استخراج کند.
پیکربندی و پیادهسازی
پروژهها میتوانند این قابلیت را از طریق یک سوئیچ ساده و به سه روش فعال کنند:
- فایل TOML (cchk.toml): افزودن عبارت
[commit] ai_attribution = "forbid" - خط فرمان (CLI): استفاده از دستور
commit-check --message --ai-attribution=forbid - متغیر محیطی: تعریف
CCHK_AI_ATTRIBUTION=forbid
در این نسخه دو حالت وجود دارد: ignore (که پیشفرض است و با نسخههای قبل سازگار است) و forbid (که هر کامیتی حاوی امضاهای شناختهشده AI را رد میکند). حالت require (الزام به ذکر منبع) در این انتشار وجود ندارد، زیرا تأیید معنایی (Semantics) بهطور قابل توجهی دشوارتر از تطبیق الگویی (Pattern-matching) است. نیاز فوری پروژهها در حال حاضر صرفاً توانایی گفتن «نه» به کدهای ناشناس بود.
محدوده اثر و یکپارچهسازی
این قابلیت در حال حاضر از طریق API پایتون (که در آن متد validate_message() نتایج اتریبیوشن AI را بازمیگرداند)، CLI و سرور MCP (نسخه ۰.۱.۷) در دسترس است. وضعیت ساختاریافته بررسی AI در خروجیهای --format json نیز گنجانده شده است. همچنین یک GitHub Action اختصاصی (commit-check-action) برای انتشارهای بعدی برنامهریزی شده است.
با این حال، این ابزار در یک مرز اعتماد مشخص عمل میکند. هدف آن شکار رفتارهای پیشفرض ابزارهاست — یعنی تریلرها، مارکرها و متاداتی که بهطور خودکار اضافه میشوند — و نه شناسایی تقلبهای عمدی. اگر برنامهنویسی امضای AI را پیش از ارسال (Push) بهصورت دستی پاک کند، ابزار نمیتواند آن را شناسایی کند. توسعهدهندگان میگویند این دقیقاً مشابه رفتار تمام لینترهاست؛ همانطور که دستور --no-verify قلابهای pre-commit را دور میزند، نویسندهای مصمم میتواند تاریخچه را بازنویسی کند. هدف نهایی این است که افشا را به «سادهترین مسیر» (Path of Least Resistance) تبدیل کنند، نه اینکه یک سیستم جنایی و فارنزیک بینقص بسازند. با این حال، باید توجه داشت که چالشهای مربوط به شفافیت AI گاهی میتواند به الگوهای گمراهکننده تبدیل شود و اعتماد کاربران را به جای تقویت، دچار تزلزل کند.
نقشه راه حاکمیت
نسخه ۲.۱۱.۰ زیربنای حالت سختگیرانه require است. بهروزرسانیهای آینده قصد دارند کامیتی را که فاقد تگ «Assisted-by» است رد کنند تا مستقیماً خواستههای الزامی جوامع لینوکس و فدورا را برآورده سازد. سایر ویژگیهای برنامهریزی شده عبارتند از:
- خلاصههای PR: نمایش وضعیت افشای AI به تفکیک هر کامیت در درخواستهای ادغام (Pull Requests).
- بهبود MCP: امکان پرسوجوی عاملهای AI از دستور
describe_validation_rulesتا بتوانند پیش از نوشتن کامیت، بهطور خودکار با قوانین منطبق شوند. - متادیتای JSON غنیتر: ارائه دادههای ساختاریافته از امضای AI برای استفاده در SBOM (صورتحساب نرمافزاری) و ابزارهای حسابرسی.
اگر مدیریت یک مخزن متنباز را بر عهده دارید، میتوانید با نصب pip install commit-check==2.11.0 و تعریف قوانین اتریبیوشن در cchk.toml سیاستهای AI خود را خودکار کنید. برای تست سریع اجبار قانونی از دستور echo "feat: add streaming support" | commit-check -m --ai-attribution=forbid استفاده کنید.
گام بعدی شما
- اگر مدیر پروژه هستید، فایل
cchk.tomlرا برای جلوگیری از ورود کدهای بدون اتریبیوشن AI پیکربندی کنید. - برای تیمهای توسعه، استانداردهای جدید «Assisted-by» را در مستندات مشارکت (Contribution) درج کنید.
- خروجی JSON ابزار را به سیستمهای SBOM (صورتحساب نرمافزاری) خود متصل کنید تا سوابق تولید کد شفاف شود.
این تنها آغاز ماجراست؛ اثر موجگونهی این تصمیم بر اکوسیستم متنباز و نحوه ارزیابی کیفیت کدها را در گزارش بعدی بررسی خواهیم کرد.




گفتگو