الوحدة 15 — إتقان الكلفة والأمان والنشر ضمن فريق
وضعت الوحدة السابقة Claude Code في cron، وفي PR على GitHub Actions، وفي SDK Python. يبقى ما يحسم استمرار Kiosque في أكتوبر: كم يكلّف، وماذا يرى، وكيف يُنصَّب بشكل نظيف لخمسة مطوّرين. ثلاثة محاور — الكلفة، والسياق، والأمان — على قاعدة واحدة: كلّ ما ليس ضروريًّا للدور الجاري يكلّف رموزًا ويوسّع سطح الهجوم.
قراءة /usage
/usage هو ردّ الفعل الأوّل. سطر Total cost في قسم Session يعرض الكلفة المحلّيّة، محسوبةً من الرموز على السعر المعروض؛ إن كان modelPricing مُدارٌ ساريًا، تظهر الإشارة at your organization's configured rates. في Pro/Max، هذا الرقم إرشاديّ؛ الفوترة الفعليّة عبر أرصدة الاستعمال، مرئيّة في Usage credits وقابلة للإدارة عبر /usage-credits. /cost و/stats بديلان.
منذ الجواب الثاني، يُضاف سطر Prompt cache (main): 14 requests · 91% of input tokens from cache · 2 misses (last 6m 10s ago, 310.2k tokens re-cached) · warm (1h TTL, last activity 40s ago). نسبة قراءة مرتفعة تعني أنّ المحادثة تقرأ في الغالب من الذاكرة المُخبَّأة، وتُفوتَر بتعرفة «cached» (نحو 10 ٪ من تعرفة الدخل). miss هو طلب أعاد معالجة أكثر من 5 ٪ ولا أقلّ من 2000 رمز كان يمكن تقديمه من الذاكرة؛ يظهر أحيانًا سبب مرجَّح (likely cause: tool definitions changed). expected rebuilds مقصودة (ضغط، وتنظيف tool-results). warm 1h TTL: المحادثة الرئيسة على النافذة الطويلة (مضمونة على الاشتراك ضمن الاستعمال المُدرَج؛ على الأرصدة، أو مفتاح API، أو مزوّد سحابيّ، خمس دقائق افتراضيًّا).
تحت هذه الأسطر، يعزو قسم breakdown (زرّان d وw) الاستعمال الحديث إلى skills وسب-agents وplugins وخوادم MCP، ويرصد ما يصل إلى ثلاثة behavior flags (long context، cache misses…) حين يتجاوز سلوك 10 ٪. سطر Loops يعرض مهامّ /loop مرتَّبة بالرموز. /insights يكتب تقرير HTML في ~/.claude/usage-data/report.html بتحليل حتّى 200 جلسة محلّيّة حديثة.
تقليل الرموز
يُرتِّب costs.md الحركات. في Kiosque، خمس حركات تُنزل الفاتورة إلى الثلث: /clear بين مهامّ غير مترابطة (سياق مفتوح طوال اليوم يُفوتر المحادثة كاملة في كلّ دور؛ /rename قبل /clear للعثور لاحقًا عبر /resume)؛ و/compact بتعليمات (/compact ركّز على تصحيح الـauth يحفظ ما يهمّ، ويوضَع عند وقفة طبيعيّة)؛ والنموذج المناسب (يعالج Sonnet 90 ٪ من عمل Kiosque بكلفة أدنى من Opus؛ وOpus لقرارات المعماريّة وtraces متعدّدة الطبقات؛ model: haiku لسب-agent بسيط)؛ وعدد أقلّ من MCP مُفعَّلة (يعرض /mcp الخوادم النشطة)؛ والتفويض إلى سب-agent (قراءة عشرة ملفّات تبقى في سياقه، ولا يعود إلّا الملخّص).
مكمّلات: MAX_THINKING_TOKENS=8000 (أو /effort medium) لعمل بسيط، ونقل التعليمات المفصَّلة من CLAUDE.md إلى skills تُحمَّل عند الطلب (استهدف CLAUDE.md < 200 سطرًا)، وprompts محدَّدة («أضِف التحقّق في auth.ts» بدل «حسِّن الـauth»).
فهم السياق
يصف context-window.md النافذة في طبقات. قبل أوّل إدخال، تُحمَّل جلسة Kiosque: prompt النظام وتعريفات الأدوات (~4.5k رمزًا، تُع اد عند كلّ تغيير أداة)، وذاكرة تلقائيّة (~700، أوّل 200 سطر أو 25 KB من MEMORY.md)، وأسماء أدوات MCP (~120، مخطّطات مؤجَّلة بـtool search)، ووصف skills (~450، غائبة بعد /compact عدا skills المستدعاة)، و~/.claude/CLAUDE.md (~320)، وCLAUDE.md المشروع (~1800). كلّ قراءة تُضيف 1000 حتّى 3000 رمز؛ كلّ قاعدة بـpaths: تنضمّ إلى المحادثة حين يُقرأ ملفّ مطابق؛ يُبقي كلّ سب-agent نافذته الخاصّة.
بعد /compact: يبقى prompt النظام وoutput style (خارج التاريخ)، ويُعاد تحميل CLAUDE.md الجذر والقواعد غير المُرشَّحة من القرص، وتُعاد قراءة حتّى خمسة ملفّات معدَّلة حديثًا، وتُحقَن skills المُستدعاة بـ5000 رمز لكلّ منها، ومجموعها الأقصى 25000. تعود قواعد paths: عند إعادة قراءة ملفّ مطابق. ما يُكتب في ملفّ يبقى؛ وما يعيش في المحادثة وحدها يُلخَّص.
ما يُبطل الذاكرة المُخبَّأة
prompt-caching.md هو القراءة الثانية التي لا غنى عنها. الـcache مطابقة بادئة: أيّ تعديل في الداخل يُجبر على إعادة معالجة ما بعده. الإبطالات المُكلفة: /model (لكلّ نموذج cache خاصّ به، ويطلب Claude Code التأكيد ما دام الـcache حارًّا)، وتغيير الجهد أثناء الجلسة (عدا Fable 5.1 على مفتاح API أو اشتراك)، وتفعيل fast mode (الرأس يُعدِّل مفتاح الـcache، ويُفوتر دور غير مُخزَّن بتعرفة fast mode)، ووصل/فصل خادم MCP أدواته مُحمَّلة في البادئة (الأدوات المؤجَّلة بـtool search تبقى مجّانيّة في الـcache)، ورفض أداة كاملة بـdeny على Bash أو WebFetch، و/compact (يُبطل بحكم البناء)، وتغيير output style، وتحديث Claude Code.
تحرير ملفّ، وتغيير وضع الصلاحيّة، واستدعاء skill، وتنفيذ /rewind أو /recap: لا شيء من ذلك يكسر الـcache. سب-agent يبدأ cache خاصًّا به. اختر النموذج والجهد بداية الجلسة، واحفظ /compact للوقفات.
للتأكّد من الـTTL: claude -p "hello" --output-format json، ثمّ قراءة usage.cache_creation.ephemeral_1h_input_tokens مقابل ephemeral_5m_input_tokens. يقبل ضبطان، promptCacheTtl (المحادثة الرئيسة) وsubagentPromptCacheTtl (السب-agents، وسير العمل، والضغط، والعناوين)، القيمَتَين 5m أو 1h. FORCE_PROMPT_CACHING_5M=1 يفرض خمس دقائق؛ وENABLE_PROMPT_CACHING_1H=1 يطلب ساعة. على مفتاح API أو مزوّد سحابيّ، ضع promptCacheTtl: 1h.