Claude Code
محوّل إطار عمل Apothem لـ Claude Code (إتاحة عامة).
المورّد: Anthropic
اسم التثبيت: claude-code
الحالة: إتاحة عامة
الإعداد الأصلي: ~/.claude/
التثبيت
apothem install --harness claude-codeيثبّت محوّل claude-code متن Apothem المشترك في شجرة الاكتشاف الأصلية لـ Claude Code. تُثبَّت عوامل Markdown، والقواعد، والمهارات، وأنماط الإخراج، والإعدادات في مواقعها الأصلية؛ وتُحوَّل مطالبات الأوامر إلى مهارات، لتبقى سير العمل القابلة لإعادة الاستخدام مرئية عبر سطح المهارات الحالي في Claude Code. يُنسَخ مُصيِّر شريط الحالة إلى ~/.claude/statuslines/ لكنه لا يُوصَل: يقرأ Claude Code شريط حالته من الإعداد statusLine، الذي يتركه المحوّل غير مضبوط. ولتفعيله، أضف إلى settings.json مدخلَ statusLine من النوع "type": "command" يُشغِّل ~/.claude/statuslines/render.py. تعمل القيمة commandWindows في المقتطف على Windows، وتذكر المُفسِّر دون علامات اقتباس. وحين يحتوي مسار المُفسِّر على مسافة، يكتب التثبيت في تلك القيمة صيغة Windows 8.3 القصيرة له إن توفّرت على وحدة التخزين. وتحتفظ مدخلات الخطّافات في settings.json بالمسار الكامل.
الملفات المكتوبة: settings.json، وكتلة Apothem في
CLAUDE.md، وagents/، وrules/،
وskills/، وstatuslines/، وoutput-styles/،
وشجرة الدعم الفرعية .apothem/support/
(.apothem/support/hooks/، و.apothem/support/conformity/،
و.apothem/support/schemas/، و.apothem/support/templates/)
تحت ~/.claude/. تُحوَّل ملفات الأوامر إلى أدلّة مهارات فرعية. يعمل موزّع
الخطّافات وبوابة المطابقة من نسختيهما المُجسَّدتين — تستدعي مدخلات الخطّافات في
settings.json الملف ~/.claude/.apothem/support/hooks/dispatch.py
والملف ~/.claude/.apothem/support/conformity/gate.py بمسارهما المطلق، لذا
لا حاجة إلى حزمة apothem قابلة للاستيراد على المضيف.
يبقى ~/.claude/CLAUDE.md ملكًا للمُشغِّل. يكتب المحوّل فيه كتلة
Apothem واحدة محدَّدة بعلامات حارسة، تحمل إسقاط الملف التعريفي (الهوية،
والتفضيلات، والقواعد، والجدّية، والسلوكيات المُختارة بالاشتراك) وقسم ملفات دعم
Apothem، ويحافظ على كل سطر خارج العلامات الحارسة حرفيًا. يُسمّي قسم ملفات
الدعم الدليل المطلق الذي تُحَلّ نسبةً إليه كل إحالة بأسلوب المستودع في القواعد
والمهارات والعوامل المُثبَّتة: rules/<name>.md تحت
~/.claude/rules/، وtemplates/...، وschemas/...،
وhooks/...، وconformity/... تحت
~/.claude/.apothem/support/. ويشير أيضًا إلى فهرس القواعد،
~/.claude/rules/apothem-rule-index.md. ويصل بقية سطح حوكمة Apothem إلى
Claude Code عبر شجرة rules/ المُنتشِرة وخطّاف
SessionStart. يُحمِّل OpenCode أيضًا
~/.claude/CLAUDE.md حين لا يوجد ~/.config/opencode/AGENTS.md،
لذا لا تُسمّي الكتلة أداة واحدة بعينها قارئًا لها.
تعيين الملف التعريفي إلى الإعداد الأصلي
في كل apothem install أو apothem update، ينشر المحوّل متن
apothem المشترك في ~/.claude/ وفق بيان الانتشار. يستخدم
المحوّل الأدلّة الأصلية مباشرةً حيثما أمكن، ويحوّل مطالبات الأوامر إلى مجلدات مهارات.
تُنسَخ العناصر الفرعية المطابقة الموجودة التي يديرها Apothem احتياطيًا قبل
استبدالها؛ وتُحفَظ المدخلات غير ذات الصلة التي ألّفها المُشغِّل. يُدمَج
settings.json بحيث تبقى المفاتيح التي ألّفها المُشغِّل قابلة للاستعادة.
لا تبقى الملفات التي كتبها المشغّل إلا خارج المجلّدات أدناه. يُزيل كل تثبيت وتحديث كل مجلّد من هذه المجلّدات تحت ~/.claude/ إن كان موجودًا، سواء كتبه Apothem أم لا: src/، وconformity/، وschemas/، وhooks/، وconfig/، وscripts/، وtools/، وlib/، وtemplates/، وdocs/، وtests/، وpackaging/، وmcp/، وexamples/، وassets/، وsite/، وpublic/، وcommands/. ويزيل أيضًا statuslines/__init__.py وملفات AGENTS.md في agents/ وrules/ وskills/ وstatuslines/ وoutput-styles/. يُزال المجلّد المحذوف كاملًا، بما في ذلك الملفات التي وضعتها فيه. وتُزال أوامر الشرطة المائلة التي تحتفظ بها في commands/ أيضًا، ويثبّت Apothem أوامره الخاصة بوصفها مهارات تحت skills/. ويُزال سكربت الخطّاف الذي تحتفظ به في hooks/، فيبقى أي مُدخَل في settings.json يستدعيه يشير إلى لا شيء. ويجري المسح قبل أن يكتب التثبيت ملفاته الخاصة. يُنسَخ كل مسار مُزال إلى ~/.apothem/backups/ أولًا، ويسمّي سجلّ التثبيت تلك النسخة. ولا يستعيد إلغاء التثبيت المسار. ولاستعادة مسار مُزال، شغّل apothem rollback --harness claude-code --install-id ID للتثبيت الذي أزاله، كما هو موضح في مرجع الاسترجاع. ويعكس apothem rollback المجرّد آخر تثبيت فقط. وتُحفَظ سجلّات التثبيت ونسخها لأحدث 10 تثبيتات، ولذلك لا يمكن استعادة المسار المُزال إلا ما دام تثبيته من بينها. ويسرد apothem diff --harness claude-code هذه الإزالات بوصفها Prune stale files قبل أن تثبّت.
تحمل المهارات المُثبَّتة، والمهارات المُحزَّمة في إضافة Claude Code،
المفتاح user-invocable بدلًا من userInvocable الوارد في متن
المصدر، لأن Claude Code لا يقرأ إلا المفتاح الموصول بشرطة. تضبطه حاويتا
القوالب (plan-suite، وresearch-suite) على
false، فتبقيان خارج قائمة /. يضبط كل نمط إخراج
keep-coding-instructions: true، فاختيار أيٍّ منها يُبقي تعليمات هندسة
البرمجيات المدمجة في Claude Code.
ويحمل كلاهما أيضًا مفاتيح البيانات الأمامية الخاصة بـ Apothem وحده
(version، وupdated، وarchetype، وportability)
تحت خريطة metadata: لاحقة من سلاسل نصية مُقتبَسة، بهذا الترتيب الثابت.
يتجاهل Claude Code المفاتيح العليا غير المعروفة، ويحتفظ تنسيق المهارات المفتوح
بالإضافات الخاصة بكل عميل في metadata. ولا تتغيّر ملفات المصدر. وتستخدم
مجلّدات المهارات على مستوى المستخدم (~/.agents/skills/،
و~/.codebuddy/skills/، و~/.kiro/skills/، و~/.trae/skills/)
صيغة metadata نفسها، فلا تُعيد التثبيتات التي تتشارك مجلّدًا كتابة ملفات
بعضها أبدًا. وتتلقّى كل أُطُر العمل الأخرى المفاتيح في المستوى الأعلى كما في السابق.
القواعد وما يُحمَّل عند الإطلاق
يُحمِّل Claude Code ملف القاعدة عند الإطلاق ما لم تحمل بياناته الأمامية قائمة
paths: تُحدِّد نطاقه. ومع paths: يُحمِّل القاعدة حين يقرأ ملفًا
مطابقًا أو يعدّله. والقائمة المكوّنة من ** وحدها لا تُحدِّد أي نطاق، فتُحمَّل
تلك القاعدة أيضًا عند الإطلاق؛ ولا تستخدم أي قاعدة من Apothem مثل هذه القائمة.
ويحوّل التثبيت pathFilter الخاص بكل قاعدة إلى تلك القائمة. خمس قواعد لا تحمل أيًّا منها وتُحمَّل في كل جلسة: agnostic-posture، وauthority-inquiry،
وsession-closure، وcontext-management، وفهرس القواعد،
apothem-rule-index. وتُثبَّت كل قاعدة أخرى تحت ~/.claude/rules/
مع paths: وتُحمَّل عند لمس ملف مطابق.
يطابق Claude Code تلك الأنماط الشاملة، بدلالات .gitignore، مع مسار
الملف نسبةً إلى دليل العمل، ولا يطابقها أبدًا مع ملف خارجه. ويقع دليل الذاكرة
التلقائية تحت ~/.claude/projects/، لذا لا تُحمَّل
auto-memory وauto-memory-topic-files أبدًا بمطابقة مسار. ولا يؤدّي
تعديل ~/.claude/CLAUDE.md أو ملف تحت ~/.claude/rules/ من مشروع آخر
إلى تحميل القواعد المحصورة في تلك الملفات كذلك. وتصل هذه القواعد إلى الجلسة
عبر الفهرس.
يسمّي الفهرس كل قاعدة والموقف الذي يستدعيها. والخطوة التي تستشهد بـ
rules/<name>.md بوصفه إجراءها تقرأ ذلك الملف أولًا. وبعد ضغط السياق، أعد قراءة
أي قاعدة كنت تطبّقها: فلا يُعيد Claude Code حقن قاعدة محصورة بمسار حتى يُلمَس
ملف مطابق مجدّدًا. والاسم apothem-rule-index.md محجوز، لأن التثبيت ينسخ
احتياطيًا ملف القاعدة الذي يحمل هذا الاسم ثم يستبدله.
القواعد التي تحكم أسطح Apothem الخاصة محصورة في CLAUDE.md،
وAGENTS.md، وملفات Markdown تحت rules/، وcommands/، وskills/، وagents/،
وhooks/، وoutput-styles/. ونادرًا ما يحتوي مستودع تطبيق على تلك
الملفات، لذا تصل هذه القواعد في مثله إلى الجلسة عبر الفهرس، وعبر مهارة أو
أمر أو مساعِد يستشهد بها، وعبر الخطّافات، لا عبر مطابقة مسار.
تُكتَب نسخ القواعد دون قسمها الختامي ## Bindings، كما هو الحال مع
مهارات الأوامر. ويحمل القسم إحالات متبادلة للمشرفين على الصيانة ولبوابة
المطابقة. وتحتفظ به ملفات المصدر، وكذلك النسخ التي تتلقّاها أُطُر العمل
الأخرى.
لإبقاء قاعدة محصورة مفعّلة في كل جلسة، يمكنك تجربة استيرادها من نص
خارج كتلة Apothem في ~/.claude/CLAUDE.md، مثلًا
@rules/definitiveness.md. وتوثّق صفحة الذاكرة في Claude Code الاستيراد
وتقول إن المسار المستورَد يُحَلّ نسبةً إلى الملف المستورِد. ولا تقول
كيف تُعامَل قائمة paths الخاصة بالقاعدة المستورَدة، ولم يتحقّق Apothem من
ذلك. تحقّق باستخدام الخطّاف InstructionsLoaded من أن القاعدة تُحمَّل عند الإطلاق
ولا تُحمَّل مرة ثانية عند مطابقة مسار.
مهارات الأوامر والملفات المرجعية
بعد ضغط السياق لا يُعيد Claude Code إرفاق سوى أول 5,000 رمز
من كل مهارة مُستدعاة، ويوصي بملف SKILL.md من نحو 500 سطر أو
أقل مع وضع التفاصيل في ملفات مجاورة. وتبلغ مطالبات الأوامر حتى 67 KB، لذا
يقسم إصدار Claude Code كل واحدة منها إلى SKILL.md نحيف إضافةً إلى ملفات تحت
references/:
- يُحذَف القسم
## Bindings. فهو نص للمشرفين على الصيانة موجّه إلى بوابة المطابقة ولا يحتاج إليه النموذج أبدًا. - تنتقل أقسام Pipeline Contract، وFoundational Stanzas، وDecision Tree، والأمثلة، وأقسام الأوضاع، وبعض الجرود المُستشهَد بها إلى ملفات مرجعية. ويبقى العنوان، ويسمّي مؤشّر من سطر واحد تحته الملف ويقول متى ينبغي قراءته. وتسرد مؤشّرات Pipeline Contract وFoundational Stanzas أيضًا ما يغطّيه الملف.
- حين يظل
SKILL.mdأكبر من 15,800 بايت، تنتقل أكبر خطوات Workflow إلىreferences/step-NN-<slug>.md، الأكبر فالأكبر، حتى يتّسع. والمعرّف المختصر هو عنوان الخطوة دون بادئةStep N:ودون معرّف تفويض أو انضباط لاحق بين قوسين. وتبقى الخطوات التي تقلّ عن 600 بايت مضمَّنة. وإن لم يكفِ ذلك، تنتقل أقسام Output، وMandates، وCritical Rules، وInstructions بهذا الترتيب. - تخبر ملاحظة قصيرة بعد التمهيد النموذجَ بمكان الملفات
(
${CLAUDE_SKILL_DIR}/references/) وبأنه يجب عليه إعادة قراءة تلك التي تحكم خطوته الحالية بعد الضغط.
يبقى كل SKILL.md صادر، بما في ذلك ملاحظة ## Installed Reference Paths التي
يُلحقها التثبيت، عند 17,000 بايت أو أقل لجذر تثبيت يصل إلى
140 حرفًا. وتشحن الإضافة الملفات نفسها دون تلك الملاحظة، وأوامرها
مهارات تحت skills/، لذا ليس لديها مجلّد commands/؛ ويبقى
الاستدعاء /apothem:<name> دون تغيير. والتقسيم حتمي وقابل
للعكس: نص SKILL.md وملفاته المرجعية يُعيد بناء أمر المصدر
مطروحًا منه Bindings. وتبقى ملفات المصدر، ومخرجات كل إطار عمل آخر،
دون تغيير. وتقرأ أدوات أخرى أيضًا المهارات من ~/.claude/skills/،
فترى الملفات نفسها؛ ويسمّيها apothem install.
لرؤية الأرقام لكل أمر، شغّل سكربت القياس من نسخة مستخرجة من المستودع:
python scripts/dev/measure_claude_skills.py # per-command table
python scripts/dev/measure_claude_skills.py --check # exit 1 on a breachيُبلِغ عن أحجام المصدر وSKILL.md والملفات المرجعية، والهامش المتبقّي حتى الميزانية،
وعدد رموز تقديري، ويسرد المهارات الأصلية للمقارنة.
وresearch-suite، وهي مهارة أصلية لا يُقسَم مصدرها، هي المهارة الوحيدة
التي تتجاوز الحدّ الأقصى.
ملاحظات التوافق
تُحوَّل مطالبات الأوامر إلى أدلّة مهارات وتُصيَّر القواعد كما هو
موضّح أعلاه؛ وتُنسَخ المهارات وأنماط الإخراج كما هي، وتُنسَخ العوامل
كما كُتبت باستثناء أن المساعِد الذي يسرده المفتاح agent_mcp_servers في الملف التعريفي
يكتسب مُدخَل mcp__<server>__* لكل خادم مُسمّى في سطر tools الخاص به (راجع
خوادم MCP).
يتحقّق التثبيت من أن الملف التعريفي سليم البنية وأن جميع ربطات
الخطّافات في settings.json قابلة للحلّ. لا يؤلّف المحوّل أي مدخلات لخوادم
MCP: سجّل الخوادم باستخدام claude mcp add (راجع
خوادم MCP).
~/.claude/agents/ جذر مشترك يملكه Claude Code، وكذلك
~/.claude/skills/: فأدوات مدعومة أخرى تُحمِّل هذين المجلّدين، لذا تظهر العوامل
والمهارات التي يكتبها تثبيت Claude Code هناك في تلك الأدوات أيضًا، ويطبع
التثبيت ملاحظة تسمّيها. ويسرد
سجلّ أُطُر العمل قرّاء كل
جذر.
يطبّق Claude Code جميع ربطات الخطّافات في settings.json عند كل بدء جلسة. يُتحقَّق من كل محوّل مقابل إطار عمله الأصلي الخاص — لا يوجد إطار عمل «مرجعي» ذو امتياز.
حدود قواعد الأذونات
يرفض قالب الإعدادات Read(...) على مسارات الأسرار والذاكرة المؤقتة مثل
.env* و~/.ssh/**. يطبّق Claude Code رفض
Read على أدوات الملفات الخاصة به، وعلى أوامر الملفات التي يتعرّف عليها في
Bash (cat، وhead، وtail،
وsed، وtee)، وعلى أهداف إعادة التوجيه. ولا يطبّق الرفض على
بحث يقرأ الملفات دون تسميتها، مثل grep -r pattern .، ولا على سكربت يفتح
الملفات بنفسه (مرجع الأذونات). على
macOS وLinux وWSL، يُبقي Claude Code أداتي
Glob وGrep خارج مجموعة الأدوات الافتراضية ويبحث عبر
Bash بدلًا من ذلك، لذا لا تسري مدخلات السماح Glob
وGrep في القالب إلا حيث تكون هاتان الأداتان موجودتين. لمنع كل عملية من
قراءة مسار ما، فعّل بيئة العزل في Claude Code.
المهارات وتعريفات المساعِدات التي تُسمّي TodoWrite تُسمّي أيضًا
TaskCreate، وTaskGet، وTaskList،
وTaskUpdate، لأن Claude Code يُعطِّل TodoWrite
افتراضيًا لصالح تلك الأدوات.
التحقّق
apothem verify --harness claude-codeيؤكّد أمر التحقّق ما يلي:
- الإعداد الأصلي موجود في المسار المتوقَّع.
- كل هدف مُدار موجود؛ والملفات المُدارة غير فارغة، وتُحلَّل إعدادات JSON
أو YAML. أضِف
--profile PATHلتتحقّق كذلك من أن الملفات المثبّتة تطابق ذلك الملف التعريفي. - روتين التحقّق الخاص بالمحوّل يُبلِغ عن النجاح.
التحديث
apothem update --harness claude-codeيُعيد اشتقاق الإعداد الأصلي من الملف التعريفي المشترك الحالي. شغّله بعد تحديث حزمة
apothem المُثبَّتة، حتى يعكس سطح الاصطلاحات المُنتشِر (العوامل، والقواعد،
والمهارات، وأشرطة الحالة، وأنماط الإخراج) النسخة الجديدة. في CLAUDE.md،
لا يُعيد التحديث كتابة سوى كتلة Apothem الواقعة بين علاماتها الحارسة.
إلغاء التثبيت
apothem uninstall --harness claude-codeيُزيل كتلة Apothem من ~/.claude/CLAUDE.md ويُبقي أي نص آخر
فيه. ولا يُحذَف الملف إلا عندما لا يبقى فيه شيء آخر. ويُزيل المدخلات التي أضافها
المحوّل إلى ~/.claude/settings.json (تبقى قواعد الأذونات والمفاتيح
ومعالجات الخطّافات الخاصة بك، ولا يُحذَف الملف إلا عندما يكون Apothem هو
من أنشأه ولا يبقى فيه شيء يخصّك). ويُزيل كذلك ملفات Apothem في
~/.claude/agents/، و~/.claude/rules/،
و~/.claude/skills/، و~/.claude/statuslines/،
و~/.claude/output-styles/، و~/.claude/.apothem/support/؛
وتبقى الملفات الأخرى في تلك المجلدات. يُنسَخ كل ملف احتياطيًا تحت
~/.apothem/backups/ قبل تغييره أو إزالته.
لا تتأثّر حزمة apothem المُثبَّتة ولا مستودع المصدر.
بوابة المطابقة
python -m apothem.conformity.gate --all .حين تُشغَّل البوابة على المستودع، فإنها تشترط القسم ## Bindings في كل
قاعدة وأمر ومساعِد ومهارة. وحين تُشغَّل على شجرة ~/.claude/ مُثبَّتة، فإنها
تقبل نسخة القاعدة أو المهارة التي لا تحتوي على هذا القسم، لأن التثبيت
يحذفه، وتظل تفحص القسم حين يكون موجودًا.
استكشاف الأخطاء وإصلاحها
| العَرَض | الإصلاح |
|---|---|
| ملف الإعداد غير موجود | أعد تشغيل apothem install --harness claude-code |
| فشل التحقّق | شغّل apothem update --harness claude-code، ثم تحقّق مجدّدًا |
| محتوى إعداد غير متوقَّع | أعد تشغيل apothem update؛ فالملف التعريفي المشترك apothem هو مصدر الحقيقة، لا ~/.claude/ |
مفاتيح الضبط
| الراية | القيمة الافتراضية | الوصف |
|---|---|---|
--dry-run | false | معاينة التثبيت دون كتابة ملفات. |
انظر أيضًا
- كل أُطُر العمل — الفهرس الكامل للأدوات المدعومة
- دليل التثبيت — ثبّت Apothem في إطار العمل هذا
- مرجع
apothem harnesses— اسرد المحوّلات وافحصها من واجهة سطر الأوامر