الأدوات المدعومة
يعمل OpenSpec مع العديد من مساعدي البرمجة المعتمدين على الذكاء الاصطناعي. عند تشغيل الأمر openspec init، يقوم OpenSpec بضبط الأدوات المحددة باستخدام ملف التعريف (profile) أو سير العمل النشط واختيار وضع التسليم.
آلية العمل
بالنسبة لكل أداة محددة، يمكن لـ OpenSpec تثبيت:
- المهارات (إذا تضمن التسليم المهارات):
.../skills/openspec-*/SKILL.md - الأوامر (إذا تضمن التسليم الأوامر): ملفات أوامر
opsx-*الخاصة بالأداة
يقتصر Codex على المهارات فقط: يقوم OpenSpec بتثبيت .agents/skills/openspec-*/SKILL.md لـ Codex حتى عندما يكون وضع التسليم مضبوطاً على commands، ولا يقوم بإنشاء ملفات تعليمات برمجية مخصصة لـ Codex. يتم تسوية المهارات الموجودة التي يديرها OpenSpec تحت المسار القديم .codex/skills بعد كتابة الملفات البديلة؛ ويتم الحفاظ على الملفات المخصصة والمختلفة.
بشكل افتراضي، يستخدم OpenSpec ملف تعريف core، والذي يتضمن:
proposeexploreapplyupdatesyncarchive
يمكنك تمكين سير العمل الموسع (new, continue, ff, verify, bulk-archive, onboard) عبر الأمر openspec config profile، ثم تشغيل openspec update.
كيفية الاستدعاء
تستخدم هذه الوثائق /opsx:propose كاسم رسمي، لكن كل أداة تكتبه بالطريقة التي تقرأ بها الملف الذي كتبه OpenSpec. ابحث عن مسار الأداة في مرجع دليل الأدوات أدناه، ثم طابق شكله هنا.
| ملف الأمر الذي يكتبه OpenSpec | ما تكتبه | الأدوات |
|---|---|---|
.../commands/opsx/<id>.* — مجلد opsx/ يضيف نطاقًا له | /opsx:<id> | Claude Code, CodeBuddy, Crush, Gemini CLI, Lingma, Qoder, ZCode |
.../opsx-<id>.* — اسم الملف هو الأمر | /opsx-<id> | كل أداة أخرى بها ملفات أوامر مولّدة، باستثناء Amazon Q وDevin |
.devin/workflows/opsx-<id>.md — يقرؤه أحد وكيلين فقط من وكلاء Devin | /opsx-<id> على Devin Desktop، و/openspec-<skill> على Devin Local | Devin Desktop**** |
.amazonq/prompts/opsx-<id>.md — موجه وليس أمرًا | @opsx-<id> | Amazon Q Developer |
| لا شيء — مهارات فقط | /openspec-<skill> | CodeArts, ForgeCode, Hermes, MiniMax Code, Mistral Vibe, Zed Agent، .agents المشترك |
| لا شيء — Kimi Code | /skill:openspec-<skill> | Kimi Code |
| لا شيء — Codex CLI | $openspec-<skill> | Codex (/openspec-<skill> غير معترف به) |
إذن /opsx:propose هو /opsx-propose في Cursor، و@opsx-propose في Amazon Q، و$openspec-propose في Codex.
يختلف شيآن بشكل مستقل، ولهذا لا تندمج الصفوف:
- الاسم. الصفّان 1–2 يختلفان فقط في كيفية تسمية الملف للأمر، وجذر
opsx-<id>/opsx:<id>هو نفسه لكل أداة بها ملفات أوامر مولّدة. - الغلاف. Amazon Q يحمّل ملفاته إلى مكتبة موجهات تُستدعى بـ
@. الأدوات التي تعتمد على المهارات فقط لا تولّد ملفات أوامر على الإطلاق، لذا تستخدم الصفوف الثلاثة الأخيرة أسماء مهارات — مُدرجة تحت أسماء المهارات المولّدة — والتي لا تتطابق تطابقًا واحدًا لواحد مع معرفات الأوامر (/opsx:applyهي مهارةopenspec-apply-change).
أنماط مسارات الأوامر أعلاه محايدة الامتداد (.*) عمدًا: الامتداد يخص الأداة (.toml لـ Gemini CLI، .prompt لـ Continue، .prompt.md لـ Kiro وGitHub Copilot)، وبعض الأدوات تعرض الاسم مع امتداده في القائمة المنسدلة. طابق شكل المجلد، وليس الامتداد.
الملفات التي يولّدها OpenSpec، وتلميح "البدء" المطبوع بعد الإعداد، تستخدم بالفعل الشكل الصحيح للأدوات التي اخترتها — لذا أسرع إجابة هي قراءة التلميح.
مرجع دليل الأدوات
| الأداة (المعرف) | نمط مسار المهارات | نمط مسار الأوامر |
|---|---|---|
Amazon Q Developer (amazon-q) | .amazonq/skills/openspec-*/SKILL.md | .amazonq/prompts/opsx-<id>.md |
Antigravity (antigravity) | .agent/skills/openspec-*/SKILL.md | .agent/workflows/opsx-<id>.md |
Auggie (auggie) | .augment/skills/openspec-*/SKILL.md | .augment/commands/opsx-<id>.md |
IBM Bob Shell (bob) | .bob/skills/openspec-*/SKILL.md | .bob/commands/opsx-<id>.md |
Claude Code (claude) | .claude/skills/openspec-*/SKILL.md | .claude/commands/opsx/<id>.md |
Cline (cline) | .cline/skills/openspec-*/SKILL.md | .clinerules/workflows/opsx-<id>.md |
Command Code (command-code) | .commandcode/skills/openspec-*/SKILL.md | .commandcode/commands/opsx-<id>.md |
CodeArts (codeartsagent) | .codeartsdoer/skills/openspec-*/SKILL.md | غير مولّد (لا يوجد محوّل أوامر؛ استخدم استدعاءات /openspec-* القائمة على المهارات) |
CodeBuddy (codebuddy) | .codebuddy/skills/openspec-*/SKILL.md | .codebuddy/commands/opsx/<id>.md |
Codex (codex) | .agents/skills/openspec-*/SKILL.md | غير مولّد (مهارات فقط؛ استخدم $openspec-*) |
Devin Desktop، سابقًا Windsurf (devin) | .devin/skills/openspec-*/SKILL.md | .devin/workflows/opsx-<id>.md**** |
ForgeCode (forgecode) | .forge/skills/openspec-*/SKILL.md | غير مولّد (لا يوجد محوّل أوامر؛ استخدم استدعاءات /openspec-* القائمة على المهارات) |
Continue (continue) | .continue/skills/openspec-*/SKILL.md | .continue/prompts/opsx-<id>.prompt |
CoStrict (costrict) | .cospec/skills/openspec-*/SKILL.md | .cospec/openspec/commands/opsx-<id>.md |
Crush (crush) | .crush/skills/openspec-*/SKILL.md | .crush/commands/opsx/<id>.md |
Cursor (cursor) | .cursor/skills/openspec-*/SKILL.md | .cursor/commands/opsx-<id>.md |
Factory Droid (factory) | .factory/skills/openspec-*/SKILL.md | .factory/commands/opsx-<id>.md |
Gemini CLI (gemini) | .gemini/skills/openspec-*/SKILL.md | .gemini/commands/opsx/<id>.toml |
GitHub Copilot (github-copilot) | .github/skills/openspec-*/SKILL.md | .github/prompts/opsx-<id>.prompt.md** |
Hermes Agent (hermes) | .hermes/skills/openspec-*/SKILL.md*** | غير مولّد (لا يوجد محوّل أوامر؛ استخدم استدعاءات /openspec-* القائمة على المهارات) |
iFlow (iflow) | .iflow/skills/openspec-*/SKILL.md | .iflow/commands/opsx-<id>.md |
Junie (junie) | .junie/skills/openspec-*/SKILL.md | .junie/commands/opsx-<id>.md |
Kilo Code (kilocode) | .kilocode/skills/openspec-*/SKILL.md | .kilocode/workflows/opsx-<id>.md |
Kimi Code (kimi) | .kimi-code/skills/openspec-*/SKILL.md | غير مولّد (لا يوجد محوّل أوامر؛ استخدم استدعاءات /skill:openspec-* القائمة على المهارات) |
Kiro (kiro) | .kiro/skills/openspec-*/SKILL.md | .kiro/prompts/opsx-<id>.prompt.md |
Lingma (lingma) | .lingma/skills/openspec-*/SKILL.md | .lingma/commands/opsx/<id>.md |
MiniMax Code (minimax-code) | ~/.minimax/skills/openspec-*/SKILL.md | غير مولّد (لا يوجد محوّل أوامر؛ استخدم مهارات MiniMax Code) |
Mistral Vibe (vibe) | .vibe/skills/openspec-*/SKILL.md | غير مولّد (لا يوجد محوّل أوامر؛ استخدم استدعاءات /openspec-* القائمة على المهارات) |
Oh My Pi (oh-my-pi) | .omp/skills/openspec-*/SKILL.md | .omp/commands/opsx-<id>.md |
OpenCode (opencode) | .opencode/skills/openspec-*/SKILL.md | .opencode/commands/opsx-<id>.md |
Pi (pi) | .pi/skills/openspec-*/SKILL.md | .pi/prompts/opsx-<id>.md |
SourceCraft Code Assistant for VS Code (codeassistant) | .codeassistant/skills/openspec-*/SKILL.md | .codeassistant/commands/opsx-<id>.md |
Qoder (qoder) | .qoder/skills/openspec-*/SKILL.md | .qoder/commands/opsx/<id>.md |
Qwen Code (qwen) | .qwen/skills/openspec-*/SKILL.md | .qwen/commands/opsx-<id>.md |
Rovo Dev CLI (rovodev) | .rovodev/skills/openspec-*/SKILL.md | غير مولّد. Rovo لا يملك واجهة أوامر مائلة — يطابق المهارات تلقائيًا أو عبر الموجه (مثلًا "استخدم مهارة openspec-propose")؛ /skills يديرها فقط. المحتوى المولّد يشير إلى المهارات بالاسم، وليس كأوامر /openspec-*. |
Zoo Code (roocode) | .roo/skills/openspec-*/SKILL.md | .roo/commands/opsx-<id>.md |
Trae (trae) | .trae/skills/openspec-*/SKILL.md | .trae/commands/opsx-<id>.md |
Zed Agent (zed) | .agents/skills/openspec-*/SKILL.md | غير مولّد (مهارات فقط؛ استخدم /openspec-* أو @openspec-*) |
ZCode (zcode) | .zcode/skills/openspec-*/SKILL.md | .zcode/commands/opsx/<id>.md |
مهارات .agents المشتركة (agents) | .agents/skills/openspec-*/SKILL.md | غير مولّد (لا يوجد محوّل أوامر؛ استخدم استدعاءات /openspec-* القائمة على المهارات) |
** ملفات موجهات GitHub Copilot معترف بها كأوامر مائلة مخصصة في إضافات IDE (VS Code، JetBrains، Visual Studio). Copilot CLI لا يستهلك .github/prompts/*.prompt.md مباشرة حاليًا. اختيار github-copilot يمكن أن يضبط أيضًا وكيل البرمجة السحابي المستضاف على GitHub — راجع وكيل البرمجة السحابي لـ GitHub Copilot أدناه.
*** Hermes يحمّل المهارات من ~/.hermes/skills/ افتراضيًا. لاستخدام مهارات OpenSpec المحلية للمشروع، أضف مجلد .hermes/skills/ للمشروع إلى skills.external_dirs في ~/.hermes/config.yaml؛ ثم يعرض Hermes المهارات باستدعاءات مائلة واجهة المستخدم مثل /openspec-propose.
**** تم إعادة تسمية Windsurf إلى Devin Desktop في 2 يونيو 2026، وانتقل مجلد إعداداته: .devin/ هو الموضع المفضل للقراءة والكتابة، و.windsurf/ هو بديل قراءة فقط قديم. يتبع OpenSpec إعادة التسمية — معرف الأداة هو devin، و--tools windsurf لا يزال يحلّ إليه لتبقى سكربتات الإعداد الحالية تعمل. المشروع الذي لا يزال يحتفظ بملفات OpenSpec في .windsurf/ يُعرض عليه النقل عند openspec update التالي؛ الرفض يتركها في مكانها، والملفات التي كتبتها بنفسك لا تُلمس أبدًا. تُستدعى سيرورات العمل باسم الملف، لذا .devin/workflows/opsx-apply.md هو /opsx-apply. وكيل Devin Local لا يدعم سيرورات العمل — المهارات فقط، ولا يقرأ .windsurf/ على الإطلاق — لذا كلما كتب OpenSpec مهارات Devin يحتفظ بأجسادها، وتلميح البدء، على استدعاءات مهارات /openspec-* التي تعمل على كلا الوكيلين. مع التسليم القائم على الأوامر فقط لا تُكتب مهارات وكل منهما يعود إلى /opsx-*.
يدعم دعم SourceCraft Code Assistant إضافته لـ VS Code. أوامره المخصصة ومهاراته متاحة فقط في VS Code. هذا التكامل لا يضبط SourceCraft الويب أو JetBrains.
مع التسليم القائم على المهارات فقط، اطلب من Code Assistant استخدام مهارة openspec-propose مع فكرتك. تُفعّل المهارات عبر مطابقة الطلب؛ OpenSpec لا يولّد أوامر /openspec-* لهذه الأداة.
MiniMax Code هو تكامل عالمي قائم على المهارات فقط. يكتب OpenSpec فقط مجلدات openspec-* تحت ~/.minimax/skills/؛ لا ينشئ مجلدات .minimax أو .mavis محلية للمستودع. التسليم القائم على الأوامر فقط يترك مهارات MiniMax Code العالمية الموجودة دون تغيير حتى لا يزيل إعداد تسليم مشروع واحد مهارات يستخدمها مشروع آخر.
وكيل البرمجة السحابي لـ GitHub Copilot
وكيل البرمجة لـ Copilot من GitHub يعمل على GitHub في بيئة GitHub Actions — منفصل عن Copilot في محررك. يمكن لـ OpenSpec ضبطه لاستخدام سطر أوامر OpenSpec بتوليد ملفين:
.github/workflows/copilot-setup-steps.yml— يثبّت@fission-ai/openspecفي بيئة الوكيل.github/agents/openspec.agent.md— يخبر الوكيل كيفية تشغيل OpenSpec
لأن هذا يكتب سير عمل GitHub Actions في مستودعك، فهو اختياري:
| الطريقة | السلوك |
|---|---|
openspec init (تفاعلي) | يسأل عما إذا كنت تريد ضبط الملفات السحابية. الافتراضي هو لا. |
openspec init --copilot-cloud | يضبطها دون سؤال (للسكربتات/CI). |
openspec init --no-copilot-cloud | يتخطاها دون سؤال، ويحذف أي منها تم توليده سابقًا. |
openspec update | لا يسأل أبدًا. يجدد الملفات فقط إذا اخترت ذلك (أو كان المشروع يملكها بالفعل). إذا رفضت، يحذف ملفات OpenSpec السحابية المُدارة. |
يُحفظ اختيارك في openspec/config.yaml كـ githubCopilot.cloudAgent: true|false، لذا تحترم التحديثات غير التفاعلية ذلك. OpenSpec لا يكتب أو يحذف أبدًا إلا الملفات التي ولّد محتواها — إذا عدّلت copilot-setup-steps.yml أو openspec.agent.md، أو كان لديك نسختك الخاصة، تُترك دون تغيير (وinit/update يخبرانك بذلك).
متى تختار الهدف المشترك .agents
agents هو الخيار المحايد عن المورّد: يكتب المهارات إلى .agents/skills/، الجذر المشترك الذي تقرأه العديد من أدوات الوكلاء، بدلاً من مجلد خاص بأداة معينة.
| الموقف | الاختيار |
|---|---|
| أداتك لها صف خاص بها أعلاه | معرفها الخاص — تحصل على تكامل تلك الأداة، بما في ذلك الأوامر المائلة حيث تدعمها |
عدة وكلاء على مستودع واحد، جميعهم يقرؤون .agents/skills | agents — شجرة مهارات واحدة بدلاً من شجرة لكل أداة |
أداتك غير مدرجة بعد لكنها تقرأ .agents/skills | agents |
اختيارها مع معرف خاص بأداة معينة لا مشكلة فيه؛ كل منهما يكتب عادةً إلى جذره الخاص. Codex وZed Agent هما الاستثناءان لأنهما يستخدمان جذر .agents الرسمي نفسه. إذا اختير Codex مع Zed أو agents، يحتفظ OpenSpec بشجرة واحدة يقودها Codex. تناقلاته تسمي كلا من $openspec-* لـ Codex و/openspec-* للوكلاء الآخرين، لذا --tools all والإعدادات متعددة الوكلاء الموجودة تستمر في العمل دون كاتبين يتجاوزان نفس الملفات. OpenSpec يعرضها أيضًا تلقائيًا بمجرد أن يملك المشروع مجلد .agents/skills/ — مجلد .agents/ وحده لا يكفي، لأن الأدوات تستخدم ذلك الجذر للقواعد وتعريفات الوكلاء الفرعيين أيضًا. لاحظ أن .agents ليست .agent: المجلد المفرد يخص Antigravity.
شيآن يجب معرفتهما:
- مهارات فقط. لا يوجد محوّل أوامر، لذا لا تُكتب ملفات أوامر
opsx-*؛ مع وضع تسليم شامل للأوامر،openspec initيذكرagentsبين الأدوات التي يبلغ عنها تحتCommands skipped for: … (no adapter). استدعِ سيرورات العمل باسم المهارة — معظم المساعدين الذين يقرؤون.agents/skillsيكتبونها/openspec-propose، الشكل الذي يطبعه تلميح إعداد OpenSpec. الهدف محايد عن المورّد، لذا تحقق من وثائق مساعدك الخاصة إذا كان يستخدم شكلًا آخر. - لا يُنشأ أو يُحرّر
AGENTS.md. الهدف هو مجلد.agents/. إذا كانAGENTS.mdالجذري لا يزال يحمل كتل علامات OpenSpec من إصدار أقدم،openspec updateيزيلها — راجع دليل الترحيل.
دعم Zed هنا مخصص لـ Zed Agent المدمج. Zed External Agents وTerminal Threads تستخدم تكاملاتها الخاصة. تتطلب Agent Skills Zed v1.4.2 أو أحدث. المهارات المحلية للمشروع غير متاحة في شجرة عمل غير موثوقة حتى تمنح الثقة.
لأن .agents/skills/ مشترك بين Codex وZed Agent والهدف المحايد عن المورّد، من المفيد معرفة ما يدّعيه OpenSpec هناك: يكتب، يجدد، ويحذف فقط مجلدات مهارات openspec-* لسيرورات العمل التي اخترتها، بالإضافة إلى علامة .openspec-target تسجّل ما إذا كان Codex أو Zed Agent أو الهدف المحايد عن المورّد هو من صاغ تلك الشجرة المشتركة. أي شيء آخر في ذلك المجلد يُترك دون تغيير. تعامل مع أسماء openspec-* والعلامة كملكية لـ OpenSpec — التعديلات داخلها تُستبدل عند openspec update التالي، تمامًا كما في كل أداة أخرى.
للمشاريع السابقة للعلامة، يستنتج OpenSpec الملكية من مراجع المهارات المُدارة: $openspec-* تعني Codex و/openspec-* تعني الهدف المحايد عن المورّد. شجرة رسمية عامة بجانب .codex/skills القديم تُعامل كتركيب ثنائي الهدف أقدم وتُوحّد في الشجرة المشتركة المتوافقة.
openspec update يحترم هذه الملكية أيضًا. إذا كان المشروع يملك .agents كهدف محايد عن المورّد وكُشف عن تركيب Codex متبقٍّ فقط من ملفات موجهات متناثرة، يترك التحديث شجرة agents الراسخة في مكانها بدلاً من إعادة كتابتها ببناء جملة Codex، ويحافظ على ملفات الموجهات القديمة تلك بدلاً من حذفها. لتسليم الشجرة المشتركة إلى Codex، شغّل openspec init --tools codex صراحةً.
الإعداد غير التفاعلي
لإعداد CI/CD أو الإعداد النصي، استخدم --tools (واختياريًا --profile):
# Configure specific tools
openspec init --tools claude,cursor
# Configure all supported tools
openspec init --tools all
# Skip tool configuration
openspec init --tools none
# Override profile for this init run
openspec init --profile coreمعرفات الأدوات المتاحة (--tools) — يُقبل windsurf أيضًا كاسم مستعار لـ devin: amazon-q, antigravity, auggie, bob, claude, cline, command-code, codeartsagent, codex, devin, forgecode, codebuddy, continue, costrict, crush, cursor, factory, gemini, github-copilot, hermes, iflow, junie, kilocode, kimi, kiro, lingma, minimax-code, vibe, oh-my-pi, opencode, pi, qoder, qwen, roocode, codeassistant, trae, zed, zcode, agents
التثبيت المعتمد على سير العمل
يقوم OpenSpec بتثبيت مكونات سير العمل بناءً على سير العمل المحدد:
- ملف التعريف الأساسي (الافتراضي):
propose,explore,apply,update,sync,archive - اختيار مخصص: أي مجموعة فرعية من جميع معرفات سير العمل:
propose,explore,new,continue,apply,update,ff,sync,archive,bulk-archive,verify,onboard
بمعنى آخر، يعتمد عدد المهارات/الأوامر على ملف التعريف والتسليم، وليس ثابتًا.
أسماء المهارات المُنشأة
عند تحديدها بواسطة تكوين ملف التعريف/سير العمل، يُنشئ OpenSpec هذه المهارات:
openspec-proposeopenspec-exploreopenspec-new-changeopenspec-continue-changeopenspec-apply-changeopenspec-update-changeopenspec-ff-changeopenspec-sync-specsopenspec-archive-changeopenspec-bulk-archive-changeopenspec-verify-changeopenspec-onboard
انظر الأوامر لسلوك الأوامر وCLI لخيارات init/update.