بافتار جهانی متعلق به خارج از APC است

APC لایه بافتار (context) قابل حمل است. APX لایه زمان‌اجرای محلی است.

برای حفظ سلامت این‌ها، یک قانون را دنبال کنید. اگر چیزی باید پس از یک کلون (clone) تازه باقی بماند، آن را در APC قرار دهید. اگر چیزی به کاربر، ماشین یا فرآیند خاصی وابسته است، آن را خارج از APC نگه دارید.

پروژه‌ها رشد می‌کنند و وسوسه‌ها نیز به دنبال آن می‌آیند. ممکن است بخواهید یک تنظیم یا یک مسیر محلی دیگر اضافه کنید. اگر سخت‌گیر نباشید، مخزن (repo) شما به انباری از داده‌های ماشین تبدیل می‌شود. این امر باعث شکنندگی مخزن می‌شود.

APC حامل معنای متعلق به پروژه است. این قرارداد مشترکی است که یک مخزن با خود حمل می‌کند.

محتوای خوب APC شامل موارد زیر است:

  • هویت پروژه
  • نقش‌های عامل (Agent)
  • مهارت‌های قابل استفاده مجدد
  • حافظه پروژه مدیریت‌شده
  • راهنمایی‌های MCP در سطح پروژه
  • دستورالعمل‌های سراسری مخزن در AGENTS.md

یک هم‌تیمی یا یک ماشین جدید باید بلافاصله پس از چک‌اوت (checkout)، این حقایق را بخواند.

بافتار جهانی متفاوت است. این بافتار متعلق به یک کاربر یا یک ایستگاه کاری (workstation) است.

نمونه‌هایی از بافتار جهانی:

  • کلیدهای API
  • تنظیمات ویرایشگر
  • مستعارها (aliases) محلی
  • مسیرهای ابزار مخصوص ماشین
  • حافظه زمان‌اجرای خصوصی
  • کش‌ها (Caches)
  • متن‌های نشست (Session transcripts)
  • لاگ‌های پیام

APX این وضعیت را محلی نگه می‌دارد. این لایه وضعیت زمان‌اجرا را در مسیر ~/.apx/ ذخیره می‌کند. این کار باعث می‌شود پروژه قابل اشتراک‌گذاری باقی بماند.

ترکیب این لایه‌ها باعث سه مشکل می‌شود:

  1. قابلیت حمل (Portability) از بین می‌رود. اعتماد به مخزنی که به تنظیمات محلی وابسته است، دشوار است.
  2. بررسی‌ها (Reviews) شلوغ و آشفته می‌شوند. درخواست‌های ادغام (Pull requests) باید تصمیمات پروژه را نشان دهند، نه متعلقات ایستگاه کاری را.
  3. افشای اسرار (Secrets). ذخیره جزئیات محلی باعث می‌شود کامیت کردن فایل‌های اشتباه آسان شود.

قبل از اضافه کردن یک تنظیم، این سوال را بپرسید: آیا مشارکت‌کننده دیگری بلافاصله پس از کلون کردن، به این نیاز خواهد داشت؟

اگر پاسخ مثبت است، از APC استفاده کنید.

  • یک عامل بررسی‌کننده (reviewer agent) برای هر کلون؟ APC.
  • یک کلید API شخصی؟ نه APC.
  • یک تصمیم پروژه در مورد مجوزها؟ APC.
  • یک مسیر مرورگر محلی؟ نه APC.
  • یک راهنمایی MCP مشترک؟ APC.
  • یک کش اجرا (run cache)؟ نه APC.

این قانون، اتوماسیون را پایدار می‌کند. APC معنای قابل حمل به شما می‌دهد. APX وضعیت محلی را برای شما فراهم می‌کند.

این مرز را دقیق نگه دارید. این کار باعث می‌شود پشته (stack) شما برای عیب‌یابی، اشتراک‌گذاری و انتقال بین ابزارها آسان‌تر شود.

برای بافتاری که همراه با مخزن جابه‌جا می‌شود، از APC استفاده کنید. اگر بافتار شخصی یا گذرا است، آن را محلی نگه دارید.

Source: https://dev.to/agentprojectcontext/global-context-belongs-outside-apc-4fg8

Optional learning community: https://t.me/GyaanSetuAi