GitHub Spec Kit — الدليل الشامل: من Vibe Coding لهندسة Intent-Driven

اقعد معايا شوية. هات كوباية القهوة بتاعتك، لأن اللي جاي ده مش مقالة بتتقرا بالعين — دي جلسة شغل. أنا وانت، قدام terminal واحد، هنبني مشروع من الصفر بـ GitHub Spec Kit. وفي الطريق هتفهم كل حاجة: ليه الـ vibe coding بيبوّظ المشاريع، وإيه اللي بيخلّي spec مكتوب في ملف أقوى من أذكى model في السوق، وإزاي تخلّي الـ AI agent بتاعك يشتغل زي مهندس منضبط مش زي جني بيحقق أمنيات.

66 أمر. 9 مراحل. 30+ integration. extension ecosystem كامل. متقلقش من الأرقام — هناخدهم واحدة واحدة، وفي الآخر هتلاقي نفسك فاهم الصورة كلها من غير ما تحس.

يلا بينا.


Section1. القصة بتبدأ بمشكلة: ليلة الـ Demo

خليني أحكيلك قصة — وانت هتعرفها، لأنها حصلتلك.

فيه developer — سمّيه أحمد — عنده deadline. فتح الـ AI agent بتاعه وكتب: "اعمللي نظام login". من غير spec، من غير constraints، من غير acceptance criteria. الـ AI طلّع كود في دقيقتين. أحمد بصّله بصّة سريعة — شكله كويس — عمله merge. الـ demo نجح، الكل صقّف، وأحمد روّح نام مبسوط.

ده اسمه Vibe Coding. وفي اللحظة دي، بيبان إنه أحلى حاجة في الدنيا. سريع؟ جداً. شغال؟ أيوة. المشكلة فين بقى؟

المشكلة إن القصة مش بتخلص هنا. بعد ستة شهور، الـ team كبر، والـ features اتراكمت، وكل feature جديدة كانت بتتعمل بنفس الطريقة: prompt عشوائي → كود → eyeball review → merge. وفجأة أحمد بيكتشف إن الـ codebase بقى كتلة من الـ assumptions المدفونة في chat sessions قديمة محدش فاكرها. الـ bug بيظهر في مكان، وسببه في مكان تاني خالص. ده اسمه Architectural Drift — وده مش bug، ده مرض مزمن.

وهنا انت هتقول لي: يا باشمهندس، بس الـ AI هو اللي كتب الكود — يبقى الـ AI هو الغلطان! أقولك لأ. الـ AI بيعمل اللي بتقوله بالظبط. المشكلة إن اللي بتقوله مش واضح. الـ intent نفسه — القصد — عمره ما اتكتب في حتة. وبكده بتدخل في الحلقة المفرغة دي:

Developer vague → AI hallucinates → Code drifts → Spec never written → Repeat

بص عليها كويس. كل دورة في الحلقة دي بتزوّد الـ drift، والـ spec اللي كان المفروض يكون الـ source of truth عمره ما بيتكتب — لأن "مفيش وقت". لحد ما الـ production يقع، وساعتها بيبقى فيه وقت لكل حاجة.

Vibe Coding vs SDD — مقارنة بصرية

1.1 خليني أحطلك الفرق في جدول — Vibe Coding vs SDD

البعدVibe Coding (عشوائي)Spec-Driven Development (SDD)
تعريف الـ Intentضمني ومش دقيق — عرضة للـ "hallucinated requirements"تعليمات موثّقة لا لبس فيها عبر structured templates
سلامة الـ Architectureخطر drift عالي — الـ consistency بتتضحّى عشان السرعةمبادئ non-negotiable بتتـ enforce عبر Project Constitution
الـ Traceabilityالـ context بيضيع بين الـ chat sessionsartifact-driven — الـ specs متـ commit في الـ repo
الـ Validationeyeballing يدوي و debugging عشوائيquality gates و checklists بتتحقق قبل وبعد التنفيذ
جودة الـ Outputprototypes مسلوقة فيها regressions مخفيةهندسة production-ready بـ test coverage أعلى من 90%

Vibe Coding vs Spec-Driven Development — مقارنة تفصيلية جنب لجنب

وخد عندك الخلاصة في سطرين، دول أهم سطرين في المقالة كلها:

Spine: GitHub Spec Kit بيحوّل الـ intent من حاجة عابرة في chat session لـ artifact ملتزم بيه في الـ repo — الـ spec يبقى الـ source of truth، والكود يبقى الـ secondary artifact.

Twist: الـ fix مش أكتر compute ولا model أحسن — الـ fix هو structure. لما الـ intent يكون محدد ومُلتزم بيه، حتى mid-tier model بيتفوّق على frontier model شغال في vibe coding mode. فكّر فيها كده: مهندس عادي معاه رسومات كاملة هيبني أحسن من مهندس عبقري شغال من دماغه.

Spec-Driven AI Development Guide — Infographic شامل

الـ shift الجوهري هنا إن الـ focus بيتنقل من "كتابة كود" لـ "إدارة intent". وده بالظبط الـ governance اللي أي AI-native engineering organization محتاجاه. مش بكرة — دلوقتي.


Section2. طيب إيه الحل؟ تعرّف على GitHub Spec Kit

خليني أديك تشبيه هيوضّح كل حاجة.

لما تيجي تبني عمارة، مش بتقول للمقاول "ابنيلي حاجة حلوة" وتمشي. بيحصل الآتي: بتقعد مع مهندس استشاري يسمعك ويكتب كراسة شروط (ده الـ spec). بعدها بيتعمل رسومات إنشائية (ده الـ plan). بعدها جدول تنفيذ بالبنود (دي الـ tasks). وبعدين المقاول بينفّذ بند بند، وفيه استشاري بيستلم كل مرحلة (ده الـ QA). والعمارة كلها محكومة بـ كود بناء ملزم للجميع (ده الـ Constitution).

Spec Kit بيعمل بالظبط كده — بس للسوفتوير، والمقاول بتاعك هو الـ AI agent.

بشكل رسمي: Spec Kit مش framework ولا library ولا SDK. ده CLI tool + workflow framework بيـ orchestrate التفاعل بين الـ developer والـ AI agent. الفلسفة بتاعته في جملة واحدة: specifications become executable — الـ spec مش مستند بيموت في Confluence، ده living source of truth بيحكم الـ lifecycle كله، وبيفصل فصل صارم بين الـ "What" (إيه اللي عايزه) والـ "How" (إزاي هيتنفذ).

Engineering Intent — من الـ intent للـ implementation

Intent Definition — تعريف الـ intent

طب إزاي ده بيشتغل على أرض الواقع؟ بدل ما تكتب prompt عشوائي وتتمنى خير، الـ Spec Kit بيـ force الشغل يمر في phases محددة — كل phase ليها output artifact بيتـ commit. والـ AI agent مش حر يـ skip ولا يـ improvise خارج الـ spec.

2.1 التجهيز — نركّب الأداة الأول

الـ SDD الناجح محتاج environment موحّد، و Spec Kit بيستخدم uv package manager للـ isolation.

المتطلبات: Python 3.11+، Git، و uv أو pipx. ده كل اللي محتاجه.

bash
# الطريقة المفضّلة (uv)
uvtoolinstallspecify-cli--fromgit+https://github.com/github/spec-kit.git

# بطريقة pipx
pipxinstallgit+https://github.com/github/spec-kit.git

# تحقق
specifycheck# audit environment
specify--version# confirm official build
تهيئة GitHub Spec Kit
➜ ~ npx github-spec-kit init
⠋ Scanning project structure...
✓ Created .github/spec-kit/config.yml
✓ Created .github/spec-kit/templates/
✓ Spec Kit ready — run: npx github-spec-kit generate
➜ ~⏎ نفّذ · ⌫ امسح

نصيحة: أول أمر تجرّبه بعد التثبيت هو specify check — لو فيه حاجة ناقصة في الـ environment، هتكتشفها دلوقتي في ثانيتين، مش في نص الـ workflow وانت مستعجل.

2.2 هو لازم أغيّر الـ AI Agent بتاعي؟ لأ — 30+ Integration

ده أول سؤال بييجي في دماغ أي حد: "أنا شغال بـ Claude Code / Copilot / Cursor... هضطر أسيبه؟" والإجابة: لأ خالص. Spec Kit متصمم بفلسفة "no lock-in" — بيتـ adapt لأي agent:

Integrationالـ Output
Claude CodeCLAUDE.md
GitHub Copilot.github/copilot/
Gemini CLIGEMINI.md
Codex CLICODEX.md
Cursor.cursor/rules/
Windsurf.windsurf/rules/
HermesHERMES.md
Kimi CodeKIMI.md
Kiro CLIKIRO.md
Qwen CodeQWEN.md
Roo Code.roorules
Cline.clinerules
opencodeOPENCODE.md
ForgeFORGE.md
generic--integration-options للـ custom
bash
specifyintegrationlist# عرض كل الـ integrations
specifyinit.--integrationclaude# Claude Code → CLAUDE.md
specifyinit.--integrationcopilot# GitHub Copilot → .github/copilot/
specifyinit.--integrationgemini# Gemini CLI → GEMINI.md
specifyinit.--integrationcodex# Codex CLI → CODEX.md
specifyinit.--integrationcursor-agent# Cursor → .cursor/rules/
specifyinit.--integrationwindsurf# Windsurf → .windsurf/rules/
specifyinit.--integrationhermes# Hermes → HERMES.md
specifyinit.--integrationkimi# Kimi Code → KIMI.md

# لو الـ agent بتاعك مش في القائمة:
specifyinit.--integrationgeneric--integration-options="--commands-dir .myagent/cmds"

# Skills mode (للـ agents اللي بتدعمها):
specifyinit.--integrationcodex--integration-options="--skills"

2.3 نفّذ specify init وتعالَ نشوف حصل إيه

نفّذت الأمر؟ تمام. افتح المشروع وهتلاقي directory جديد اسمه .specify/ — وخليني أقولك من دلوقتي: ده مخ العملية كلها. كل الـ phases اللي جايين بيقرأوا منه وبيكتبوا فيه.

Architecture Diagram — هيكل المشروع

text
my-project/
├── .specify/
│   ├── memory/constitution.md      ← قواعد المشروع (Project Constitution)
│   ├── templates/
│   │   ├── spec-template.md
│   │   ├── plan-template.md
│   │   └── tasks-template.md
│   ├── templates/overrides/        ← أعلى priority
│   ├── presets/                    ← preset templates
│   ├── extensions/                 ← installed extensions
│   └── features/
│       └── 001-feature-name/
│           ├── spec.md             ← من /speckit.specify
│           ├── plan.md             ← من /speckit.plan
│           ├── tasks.md            ← من /speckit.tasks
│           ├── data-model.md
│           ├── contracts/
│           │   ├── api-spec.json
│           │   └── signalr-spec.md
│           ├── research.md
│           ├── checklist.md
│           ├── blueprint.md
│           └── analysis.md
├── CLAUDE.md     ← أو KIMI.md / COPILOT.md حسب الـ integration
├── .gitignore
└── src/          ← الكود (بيتعمل من /speckit.implement)

وفيه تفصيلة ذكية هنا اسمها Template Resolution Order — لو أكتر من template لنفس الحاجة، مين بيكسب؟ الأعلى في القائمة دي:

text
1. .specify/templates/overrides/    ← project-local (أعلى priority)
2. .specify/presets/templates/      ← presets
3. .specify/extensions/templates/   ← extensions
4. .specify/templates/              ← spec kit core (أقل priority)

هيكل المشروع بعد specify init — خريطة تفصيلية للـ directory structure

ملحوظة: الـ .specify/ ده مش مجرد folder. لو الـ constitution بتقول "TDD mandatory"، كل command جوا الـ Spec Kit هيـ enforce ده تلقائياً — مش محتاج تفكّر الـ AI في كل prompt. مكتوب مرة، مُلتزم بيه دايماً.


Section3. الرحلة الحقيقية — 9 مراحل هنمشيهم مع بعض خطوة خطوة

دلوقتي جه وقت الشغل الفعلي. عشان الكلام ميبقاش نظري، هنبني مع بعض feature حقيقية: نظام tasks بسيط — المستخدم يضيف task، يعلّم عليها إنها خلصت، ويشوف إحصائيات إنتاجيته. هنمشي بيها من أول أمر لآخر أمر، وكل مرحلة هقولك: بنعمل إيه، وليه، وإيه اللي بيطلع في إيدك في الآخر.

SDD Phases Overview — نظرة عامة على المراحل

SDD Complete Workflow — الـ flowchart الكامل مع كل المراحل التسع والأوامر

text
 الرحلة الكاملة:
 ┌──────────────────────────────────────────────────────────────────────────┐
 │ 0.Setup → 1.Constitution → 2.Specify → 3.Plan → 4.Tasks                 │
 │         → 5.Implement → 6.QA & Review → 7.Ship → 8.Maintenance          │
 │                                                                          │
 │ 🖥️ Terminal = specify CLI commands  │  🤖 Agent = /speckit.* slash cmds  │
 │ ❌ Built-in = بدون extension       │  ✅ Extension = يحتاج تثبيت        │
 └──────────────────────────────────────────────────────────────────────────┘

خد بالك من التقسيمة دي كويس: فيه أوامر بتتكتب في الـ Terminal (بتبدأ بـ specify)، وفيه أوامر بتتكتب جوا الـ AI agent نفسه (بتبدأ بـ /speckit). والأوامر اللي عليها ✅ محتاجة extension يتثبّت الأول.

Phase 0 — الإعداد (Setup): بنجهّز الورشة

قبل ما نبني، بنجهّز الورشة. المرحلة دي كلها أوامر terminal، وهي الأساس اللي كل حاجة هتقعد عليه:

الأمربيعمل إيهإمتى تستخدمهالـ Output
specify init <name>بينشئ مشروع جديد بالكامل مع كل الـ templates والـ structureأول مرة — مشروع جديد.specify/, CLAUDE.md, templates
specify init . --integration <agent>بينشئ الـ SDD structure في مشروع موجود مع الـ agent integration المناسبفي مشروع موجودنفس الفوق داخل المشروع
specify checkبيعمل audit للـ environment — بيتأكد إن Python, Git, uv كلهم شغالينبعد التثبيت أو في أي وقتتحقق من Python/Git/uv
specify --versionبيطّلع إصدار الـ CLI والـ systemأي وقتإصدار الـ CLI والـ system
specify selfبيعمل check و upgrade للـ CLI نفسهللتحديثcheck/upgrade الـ CLI
specify extension searchبيعرض قائمة بكل الـ extensions المتاحةقبل التثبيتقائمة الـ extensions
specify extension add <n> --from <url>بيثبّت extension من communityبعد initتثبيت extension
specify extension remove <n>بيحذف extension وملفاتهلإزالة extensionحذف الـ extension
specify preset searchبيعرض قائمة بالـ presets المتاحةقبل استخدام presetsقائمة الـ presets
specify preset add <n>بيثبّت preset templatesلتعديل شكل الـ specsتثبيت preset
specify integration listبيعرض كل الـ AI agents المدعومة (30+)قبل initعرض integrations
specify workflow run <name>بيشتغل workflow كامل بالترتيبلتشغيل دورة كاملةينفّذ steps بالترتيب

⚠️ تحذير: الـ built-in extensions الوحيدة اللي بتتثبّت بالاسم بدون --from هي الـ git extension. كل الـ community extensions بتحتاج --from <zip-url>. يعني specify extension add review لوحدها مش هتشتغل — لازم الـ URL.

في مشروعنا؟ نفّذنا specify init task-tracker --integration claude و specify check. الورشة جاهزة. ننتقل.

Phase 1 — الـ Constitution: دستور المشروع

هنا بقى أول حاجة بتفرّق الـ SDD عن أي طريقة تانية. قبل ما نكتب سطر واحد عن الـ feature، بنكتب دستور المشروع — الـ "engineering rulebook" اللي الـ AI agent ملزم بيه في كل مرحلة جاية، ومن غير ما تفكّره.

bash
/speckit.constitutionSecurity-first.TDDmandatory.TTFB<200ms.

الأمر ده بيولّد constitution.md في .specify/memory/، وبيـ encode جواه:

  • Tech Stack Constraints: إصدارات libraries إلزامية (مثلاً "Must use Next.js 14 SSG")
  • Testing Mandates: حد أدنى للـ coverage و TDD requirements
  • Compliance: Accessibility (WCAG)، Security (OWASP)، design system standards

هنا انت هتسألني السؤال المنطقي: "طيب هو الـ AI بيلتزم بالكلام ده فعلاً؟" أقولك آه — لأن الـ constitution بيشتغل كـ hard gate مش كنصيحة. الـ /speckit.analyze (هنوصلها كمان شوية) بترفض أي plan بيخالف الدستور. constitution "صارم" بيزوّد الـ complexity بس بيضمن production readiness — و constitution "خفيف" أنسب للـ exploratory spikes. انت اللي بتختار مستوى الصرامة حسب طبيعة المشروع.

والفايدة الخفية الأهم: الـ constitution بيحل مشكلة اسمها context saturation. بدل ما تفضل تكرر للـ agent في كل prompt "متنساش الـ TDD، متنساش الـ security" — بتكتبها مرة واحدة، وبتتقري تلقائياً مع كل command. دماغك فاضية، والقواعد شغالة.

الأمربيعمل إيهإمتىالـ Output
/speckit.constitutionبيـ generate constitution.md بالقواعد الأساسيةأول المشروع أو تغيير قواعد.specify/memory/constitution.md
/speckit-red-teamبيعمل adversarial review للـ constitution أو الـ planبعد constitution أو planfindings report (بدون auto-edit)
/speckit-brownfieldبيعمل reverse-engineering للـ modules في مشروع موجودبداية مشروع موجودspecs أولية لكل module
/speckit-repoindexبيعمل index للـ repo كلهمشروع موجود — مرة واحدة.specify/repo-index.md
bash
specifyextensionaddred-team--fromhttps://github.com/ashbrener/spec-kit-red-team/archive/refs/heads/main.zip
specifyextensionaddbrownfield--fromhttps://github.com/Quratulain-bilal/spec-kit-brownfield/archive/refs/heads/main.zip
specifyextensionaddrepoindex--fromhttps://github.com/liuyiyu/spec-kit-repoindex/archive/refs/heads/main.zip

نصيحة: جرّب /speckit-red-team على الدستور بتاعك — ده بيعمل adversarial review، يعني بيحاول "يهاجم" الـ constitution ويلاقي الثغرات فيه قبل ما تبني عليه. أرخص وقت تكتشف فيه ثغرة هو قبل ما يتكتب أي كود.

في مشروعنا؟ كتبنا: /speckit.constitution "Vanilla JS only. TDD mandatory. No external UI frameworks. All data local-first." — كده الـ agent عمره ما هيقترح React ولا يكتب كود من غير test. اتقفلت الأبواب دي خلاص.

Phase 2 — الـ Specify: بنكتب "إيه" مش "إزاي"

دلوقتي بنكتب كراسة الشروط. وهنا فيه قاعدة ذهبية لو مش هتاخد من المقالة دي غيرها يبقى كفاية:

القاعدة الذهبية في specify: قول "إيه" و"ليه" — متقولش "إزاي". الـ agent هيفكّر في التقنية بعدين.

bash
/speckit.specify"Users can create tasks, mark them done, and see a productivity summary. A task has a title, optional due date, and status. The summary shows tasks completed per day over the last week."
توليد الـSpec
➜ ~ npx github-spec-kit generate --output specs/auth.md
⠋ Analyzing auth module...
✓ Generated specs/auth.md (42 lines)
✓ Added 3 acceptance criteria
➜ ~⏎ نفّذ · ⌫ امسح

الأمر بيولّد spec.md — وجواه user stories و acceptance criteria بس. مفيش database، مفيش framework، مفيش API design. ليه الإصرار ده؟

تعالَ أقولك السبب بمثال: لو كتبت في الـ spec "نستخدم React + Node"، وبعد سنة قررتوا تنقلوا لـ Vue أو حتى CLI tool — الـ spec كله بقى outdated رغم إن الـ requirements نفسها ما اتغيرتش. الـ spec بيعيش أطول من التقنية، فلازم يفضل technology-agnostic. الـ "إزاي" ليه مكان تاني اسمه الـ plan، جاي في المرحلة الجاية على طول.

بس استنى — إحنا لسه مخلصناش المرحلة دي. أخطر حاجة في أي spec هي الجُمل الغامضة. وعشان كده فيه quality gates لازم الـ spec يعدي منها:

الأمربيعمل إيهإمتى تستخدمهالـ Output
/speckit.specifyبيـ generate spec.md بالـ user stories و acceptance criteriaكل feature جديدةspecs/<feature>/spec.md
/speckit.clarifyبيـ identify الـ ambiguities ويـ quiz الـ developer، ويسجل الإجابات في الـ specبعد specify، قبل planيحدّث spec.md
/speckit-critiqueبيعمل dual-lens review للـ specبعد specifycritique-report.md
/speckit-spec-validateبيعمل comprehension quiz و gate — بيتأكد إن الـ AI فهم الـ spec صحبعد clarify، قبل implementcomprehension quiz + gate
/speckit.checklistبيـ generate validation checklist — "unit tests for English"بعد specifychecklist.md
/speckit-whatifبيعمل impact analysis لو فكّرت تغيّر requirementsقبل تغيير requirementsimpact analysis
/speckit-scopeبيقدّر حجم الجهد المطلوببعد specifyscope-report.md
/speckit-memory-loaderبيحمّل .specify/memory/ تلقائياً قبل كل commandتلقائياًبيحمّل context

خليني أقف عند اتنين منهم لأنهم جواهر حقيقية:

  • /speckit.clarify — ده sequential, coverage-based questioning layer. الـ agent بيقرا الـ spec، يستخرج كل نقطة غامضة، ويسألك عليها سؤال سؤال — وإجاباتك بتتسجل جوا الـ spec نفسه. في مشروعنا سألنا: "الـ due date بالساعة ولا باليوم بس؟" و"الـ task المحذوفة تدخل في الإحصائيات؟" — أسئلة لو ما اتسألتش دلوقتي، الـ AI كان هيـ guess إجاباتها وانت مش واخد بالك.
  • /speckit.checklist — بيولّد validation checklist، أو زي ما بحب أسميها: "unit tests للغة الإنجليزي". بتتأكد إن الـ requirements نفسها complete و clear و consistent قبل ما تتحول لكود.
bash
specifyextensionaddcritique--fromhttps://github.com/arunt14/spec-kit-critique/archive/refs/heads/main.zip
specifyextensionaddspec-validate--fromhttps://github.com/aeltayeb/spec-kit-spec-validate/archive/refs/heads/main.zip
specifyextensionaddwhatif--fromhttps://github.com/DevAbdullah90/spec-kit-whatif/archive/refs/heads/main.zip
specifyextensionaddscope--fromhttps://github.com/Quratulain-bilal/spec-kit-scope-/archive/refs/heads/main.zip
specifyextensionaddmemory-loader--fromhttps://github.com/KevinBrown5280/spec-kit-memory-loader/archive/refs/heads/main.zip

Phase 3 — الـ Plan: دلوقتي بس نتكلم تقنية

الـ spec اتقفل؟ حلو. دلوقتي بقى وقت الـ "إزاي". وخد بالك من الجمال هنا: التقنية بتتحدد وانت معاك spec واضح ومتـ clarify — يعني بتختار الـ tech على أساس requirements حقيقية، مش على أساس "آخر حاجة شفتها في تويتر".

bash
/speckit.plan"Vite + SQLite + vanilla JS"

الأمر ده بيـ synthesize الـ technical architecture كاملة من الـ spec، وبيحدد:

  • Data models — الـ schema بالظبط
  • API contracts — شكل الـ endpoints والـ payloads
  • File structures — الملفات هتتحط فين

وأهم حاجة: بيـ cross-reference الـ Constitution. فاكر إحنا كتبنا "Vanilla JS only"؟ لو حاولت تكتب /speckit.plan "React + Firebase" هيقولك: ده بيخالف الدستور. الأبواب اللي قفلناها في Phase 1 لسه مقفولة.

الـ output الكامل لـ /speckit.plan:

text
specs/<feature>/
├── plan.md           ← الخطة التقنية
├── data-model.md     ← الـ schema
├── contracts/
│   ├── api-spec.json ← API contracts
│   └── signalr-spec.md
├── research.md
└── quickstart.md
الأمربيعمل إيهإمتىالـ Output
/speckit.planبيـ synthesize technical architecture من الـ specبعد spec — حدّد الـ tech stackplan.md + data-model.md + contracts/
/speckit-blueprintبيـ generate class diagrams و file layoutبعد plan، قبل implementblueprint.md (class diagrams + file layout)
/speckit-version-guardبيتحقق إن الـ dependencies متوافقة مع بعضبعد planversion-report.md
/speckit-diagramبيـ generate Mermaid diagrams للـ architectureبعد plan/tasksMermaid diagrams
/speckit-red-teamبيعمل adversarial review للـ planبعد planfindings report
bash
specifyextensionaddblueprint--fromhttps://github.com/chordpli/spec-kit-blueprint/archive/refs/heads/main.zip
specifyextensionaddversion-guard--fromhttps://github.com/KevinBrown5280/spec-kit-version-guard/archive/refs/heads/main.zip
specifyextensionadddiagram--fromhttps://github.com/Quratulain-bilal/spec-kit-diagram-/archive/refs/heads/main.zip

Phase 4 — الـ Tasks: نقطّع الفيل حتت صغيرة

سؤال: إيه أكبر عدو للـ AI models؟ ... الـ limited context window. لو رميت plan كامل على الـ agent وقلتله "نفّذ"، هينسى الأول وهو بيعمل الآخر. الحل؟ نقطّع الخطة لـ chunks صغيرة atomic — كل واحدة تتنفذ وتتراجع لوحدها.

bash
/speckit.tasks

بيولّد tasks.md — قايمة مهام مرتبة بذكاء:

  • Dependency Management: الـ infrastructure والـ models بيتبنوا قبل الـ UI components — مش هتلاقي task بيبني شاشة لحاجة لسه متخزنتش
  • Parallel Execution: الـ tasks المعلّمة بـ [P] ممكن تشتغل بالتوازي — بـ agents متعددة لو حبيت
  • TDD Enforcement: الـ tasks متركّبة بحيث الـ failing test يتكتب قبل كود الـ implementation — دستورنا قال TDD، فالـ tasks نفسها بتطلع TDD
الأمربيعمل إيهإمتىالـ Output
/speckit.tasksبيـ generate tasks.md بالـ dependencies و [P] parallel markersبعد plantasks.md بـ dependencies + [P] parallel markers
/speckit.analyzeبيعمل consistency check بين الـ spec, plan, و tasksبعد tasks، قبل implement دايماًanalysis.md — consistency check
/speckit.taskstoissuesبيحول الـ tasks لـ GitHub Issuesبعد tasksGitHub Issues (remote)
/speckit-jiraبيحول الـ tasks لـ Jira Epic → Stories → Sub-tasksبعد tasksJira Epic → Stories → Sub-tasks
/speckit-maqa-linearبيحول الـ tasks لـ Linear issuesMAQA workflowLinear issues
/speckit-maqa-trelloبيحول الـ tasks لـ Trello boardMAQA workflowTrello board
/speckit-maqa-azure-devopsبيحول الـ tasks لـ Azure DevOps work itemsMAQA workflowAzure DevOps work items
bash
specifyextensionaddjira--fromhttps://github.com/mbachorik/spec-kit-jira/archive/refs/heads/main.zip

⚠️ تحذير — ودي أهم قاعدة في المقالة كلها: /speckit.analyze قبل /speckit.implement دايماً. الـ analyze ده read-only validator بيراجع الـ spec والـ plan والـ tasks مع بعض ويكتشف أي تعارض أو Constitutional Violation. غلطة consistency هنا بتتصلح في دقيقتين — نفس الغلطة بعد implement بتاخد ساعات debugging. دقيقتين مقابل ساعات. متفاوضش على دي.

Phase 5 — الـ Implement: أخيراً... الكود

تسع مراحل وإحنا لسه بنكتب كود دلوقتي؟! أيوة. وده مش عيب — ده الميزة نفسها. لأن اللحظة اللي الـ agent هيكتب فيها الكود، هو معاه: دستور واضح، spec متـ clarify، خطة تقنية متراجعة، و tasks مرتبة بالـ dependencies. مفيش guessing. مفيش hallucination. فيه تنفيذ.

bash
/speckit.implement

الـ agent بيبني task-by-task، بيعلّم على كل task خلصت ✅ في tasks.md، وبيحل بنفسه الـ issues اللي بتظهر في الـ build cycles.

الأمربيعمل إيهإمتىالـ Output
/speckit.implementبيـ direct الـ agent يبني الكود task-by-taskبعد tasks + analyzesource code + tasks.md محدّث بـ ✅
/speckit-checkpointبيعمل git commits منظّمة أثناء implementتلقائياً أثناء implementgit commits منظّمة (مش commit ضخم واحد)
/speckit-worktreeبيعمل isolated git worktree للـ parallel feature developmentparallel feature developmentgit worktrees معزولة
/speckit-worktreesبيعمل sibling/nested worktrees لعدة agents في parallelعدة agents في parallelsibling/nested worktrees
/speckit-conductبيـ delegate phases لـ sub-agentsلو الـ context window كبيريفوّض phases لـ sub-agents
bash
specifyextensionaddcheckpoint--fromhttps://github.com/aaronrsun/spec-kit-checkpoint/archive/refs/heads/main.zip
specifyextensionaddworktree--fromhttps://github.com/Quratulain-bilal/spec-kit-worktree/archive/refs/heads/main.zip
specifyextensionaddworktrees--fromhttps://github.com/dango85/spec-kit-worktree-parallel/archive/refs/heads/main.zip
specifyextensionaddconduct--fromhttps://github.com/twbrandon7/spec-kit-conduct-ext/archive/refs/heads/main.zip

نصيحة: ثبّت /speckit-checkpoint — بدل commit عملاق واحد في الآخر اسمه "done"، بتاخد commits منظّمة أثناء الشغل. لو حاجة باظت، الـ rollback بيبقى جراحة دقيقة مش بتر.

Phase 6 — الـ QA & Review: هنا بيتفصل الجد عن الهزل

اسمعني كويس في الجزء ده، لأن هنا فيه فخ نفسي بيقع فيه الكل: الكود اتكتب، شكله حلو، والـ agent بيقولك "تمام، خلصت كل الـ tasks!" — إغراء الـ merge المباشر رهيب. متعملهاش.

ليه؟ لأن الـ AI agents عندها عادة وحشة اسمها phantom completions: بتعلّم على الـ task إنها ✅ وهي فعلياً ما اتنفذتش، أو اتنفذت نص تنفيذ. ولو مفيش حد بيتحقق، بتكتشفها في الـ production.

عشان كده في الـ Phase دي، اتنين ضروريين والباقي حسب الحالة:

الأمربيعمل إيهالأولويةليه مهم
/speckit-verifyبيتحقق إن الكود بيطابق كل requirement في الـ specضروريده الـ gate الأساسي — لو مش مطابق، الكود مش جاهز
/speckit-verify-tasksبيـ detect "phantom completions" — الـ agent قال خلّص بس ما عملشضروريالـ AI بيقول "خلّصت" وهو ما عملش — اكتشفه هنا
/speckit-review6 agents متخصصة: code quality, comments, tests, errors, types, simplification🔶 مهمcode review شامل بـ 6 زوايا
/speckit-staff-reviewمراجعة بمستوى senior engineer🔶 مهمللـ high-stakes implementations
/speckit-security-reviewOWASP top 10, injection, auth, data exposure🔶 مهمالأمان مش luxury
/speckit-qabrowser/CLI acceptance testing ضد الـ spec criteria🔶 اختياريتأكد إن الـ feature شغال زي الـ spec بيقول
/speckit-spectestبيـ map الـ tests للـ requirements — يكشف untested areas🔶 اختيارييطّلع الـ gaps في الـ testing
/speckit-rippleside effects analysis في 9 domains🔶 مهم بعد أي تعديلأي تعديل ليه side effects — اكتشفها
/speckit-cleanupscout rule: يصلح الصغير، يسجّل الكبير🔶 اختيارينظافة الكود
/speckit-fix-findingsauto-fix نتايج الـ review🔶 اختياريبيصلح اللي يقدر يصلحه تلقائياً
/speckit-reconcileلو الكود حاد عن الـ spec، يحدّث الـ spec🔶 اختياريأحياناً الكود هو الصح والـ spec يحتاج تعديل
bash
specifyextensionaddverify--fromhttps://github.com/ismaelJimenez/spec-kit-verify/archive/refs/heads/main.zip
specifyextensionaddverify-tasks--fromhttps://github.com/datastone-inc/spec-kit-verify-tasks/archive/refs/heads/main.zip
specifyextensionaddreview--fromhttps://github.com/ismaelJimenez/spec-kit-review/archive/refs/heads/main.zip
specifyextensionaddstaff-review--fromhttps://github.com/arunt14/spec-kit-staff-review/archive/refs/heads/main.zip
specifyextensionaddsecurity-review--fromhttps://github.com/DyanGalih/spec-kit-security-review/archive/refs/heads/main.zip
specifyextensionaddqa--fromhttps://github.com/ismaelJimenez/spec-kit-qa/archive/refs/heads/main.zip
specifyextensionaddspectest--fromhttps://github.com/Quratulain-bilal/spec-kit-spectest/archive/refs/heads/main.zip
specifyextensionaddripple--fromhttps://github.com/chordpli/spec-kit-ripple/archive/refs/heads/main.zip
specifyextensionaddcleanup--fromhttps://github.com/dsrednicki/spec-kit-cleanup/archive/refs/heads/main.zip
specifyextensionaddreconcile--fromhttps://github.com/stn1slv/spec-kit-reconcile/archive/refs/heads/main.zip

في مشروعنا؟ /speckit-verify طلّع إن الـ productivity summary بيعرض 7 أيام صح، بس نسي يستبعد الـ tasks المحذوفة — بالظبط النقطة اللي /speckit.clarify سجّلها في الـ spec. من غير الـ verify، دي كانت هتعدي.

Phase 7 — الـ Ship: يوم التسليم

الأمربيعمل إيهإمتىالـ Output
/speckit-statusبيعرض dashboard بحالة المشروع كلهاقبل ship — تحقق إن كل حاجة greenconsole dashboard
/speckit-ci-guardبيمنع merge لو specs ناقصة في الـ CI pipelineفي الـ CI pipeline تلقائياًيمنع merge لو specs ناقصة
/speckit-pr-bridgeبيـ generate PR description تلقائيةبعد implement، عند عمل PRPR description تلقائية
/speckit-confluenceبيـ publish specs على Confluenceبعد finalize specsConfluence page
/speckit-shipبيعمل CHANGELOG + release PR + git tagsلما كل حاجة جاهزةCHANGELOG + release PR + git tags
/speckit-retrospectiveبيعمل retrospective + درجة adherenceبعد كل featureretrospective.md + درجة adherence
/speckit-memory-hubبيحفظ الدروس المستفادة في .specify/memory/بعد ship.specify/memory/ محدّث
bash
specifyextensionaddstatus--fromhttps://github.com/KhawarHabibKhan/spec-kit-status/archive/refs/heads/main.zip
specifyextensionaddci-guard--fromhttps://github.com/Quratulain-bilal/spec-kit-ci-guard/archive/refs/heads/main.zip
specifyextensionaddpr-bridge--fromhttps://github.com/Quratulain-bilal/spec-kit-pr-bridge-/archive/refs/heads/main.zip
specifyextensionaddship--fromhttps://github.com/arunt14/spec-kit-ship/archive/refs/heads/main.zip
specifyextensionaddretrospective--fromhttps://github.com/emi-dm/spec-kit-retrospective/archive/refs/heads/main.zip
specifyextensionaddmemory-md--fromhttps://github.com/DyanGalih/spec-kit-memory-hub/archive/refs/heads/main.zip

ملحوظة: متفوّتش /speckit-retrospective — بيطلّعلك "درجة adherence": التزمت قد إيه بالـ workflow في الـ feature دي؟ والدروس بتتحفظ بـ /speckit-memory-hub في .specify/memory/ — يعني الـ feature الجاية بتبدأ أذكى من اللي قبلها.

Phase 8 — الـ Maintenance: الشغل مبيخلصش يوم الـ Ship

العمارة اتسلمت — بس العمارات محتاجة صيانة. والـ codebase الحي بيتحرك: bugs بتظهر، requirements بتتغير، والـ specs ممكن تحيد عن الكود مع الوقت (drift):

الأمربيعمل إيهإمتى تستخدمه
/speckit-doctorبيعمل periodic health check للمشروعperiodic health check
/speckit-statusبيعرض dashboard بحالة المشروعdaily check
/speckit-syncبيـ detect إن الـ specs حادّت عن الكودdetect spec-code drift
/speckit-bugfixبيعمل structured bug fix workflowأي bug جديد
/speckit-fixitبيعمل quick targeted fixquick targeted fix
/speckit-iterateبيعدّل الـ spec أثناء الـ implementationتعديل spec mid-implementation
/speckit-refineبيغيّر الـ requirements ويـ cascade التعديلاتتغيير requirements + cascade
/speckit-memory-hub auditبينظّف الـ memory القديمتنظيف memory قديم
bash
specifyextensionadddoctor--fromhttps://github.com/KhawarHabibKhan/spec-kit-doctor/archive/refs/heads/main.zip
specifyextensionaddsync--fromhttps://github.com/bgervin/spec-kit-sync/archive/refs/heads/main.zip
specifyextensionaddbugfix--fromhttps://github.com/Quratulain-bilal/spec-kit-bugfix/archive/refs/heads/main.zip
specifyextensionadditerate--fromhttps://github.com/imviancagrace/spec-kit-iterate/archive/refs/heads/main.zip
specifyextensionaddrefine--fromhttps://github.com/Quratulain-bilal/spec-kit-refine/archive/refs/heads/main.zip

كده خلصنا الرحلة كاملة: من ورشة فاضية لـ feature شغالة في production ومعاها specs حية بتتصان. خد نفس، لأن دلوقتي هندخل في العدة الإضافية.


Section4. الـ Extension Catalog — العِدّة الإضافية

فاكر لما قلتلك في الأول إن Spec Kit بييجي "بعدّة أساسية" و"عدّة إضافية"؟ وصلنا للعدّة الإضافية.

المفهوم بسيط: الـ core بتاع Spec Kit فيه 19 أمر بس — دول الأساسيات. أي حاجة تانية بتيجي كـ extension بتثبّتها لما تحتاجها. زي ما الموبايل بييجي بتطبيقات أساسية وانت بتنزّل الباقي من الـ store.

Extension Ecosystem — خريطة الـ extensions

Extension Ecosystem — خريطة ذهنية لكل فئات الـ extensions

بص على الخريطة دي كويس. تقوللي "ده كتير أوي يا هندسة"؟ أقولك — بالظبط كده، وده المقصود. الـ beauty إنك مش لازم تثبّتهم كلهم. اختار اللي بتحتاجه حسب الـ workflow بتاعك. بس خلّي بالك من حاجة مهمة: الـ extensions دي مش optional nice-to-have — كل واحدة بتحل مشكلة حقيقية اتوجعنا منها في الـ SDD lifecycle.

خلّيني أقولك ليه محتاج كل واحدة — مش بس "بتعمل إيه":

  • Verify Tasks → عارف لما الـ AI يقولك "خلّصت التاسكات كلها ✅" وانت تفتح الكود تلاقي نص الحاجات مش موجودة؟ دي اسمها phantom completions — والـ extension ده بيكشفها واحدة واحدة.
  • Review → مش مجرد linting. ده 6 agents بيراجعوا الكود من 6 زوايا مختلفة: quality وtypes وlogic وغيرهم.
  • Ripple → أي تعديل — مهما كان صغير — ليه side effects في 9 domains. من غير الـ extension ده هتكتشف الكسر بعد فوات الأوان، غالباً في production.
  • Red Team → ده بيهاجم الـ spec نفسها قبل ما تتـ implement. ليه؟ لأن المشكلة اللي بتتحل وهي لسه على الورق أرخص 100 مرة من اللي بتتحل في الكود.

Master Extension Table

دي أهم 10 extensions — اتفرج على عمود الـ Value Proposition بالذات:

Short NameCommandCategoryValue Proposition
Review/speckit-reviewQA6-agent audit of quality, types, and logic to prevent code rot
Staff Review/speckit-staff-reviewQASenior-level architecture validation for high-stakes implementations
Verify Tasks/speckit-verify-tasksQAEliminates "phantom completions" by verifying code exists for all [x] marks
Security/speckit-security-reviewSecurityAutomates OWASP-aligned vulnerability scanning within the dev cycle
Red Team/speckit-red-teamSecurityAdversarial review to find integrity gaps in specifications early
Ripple/speckit-rippleMaintenanceDetects side effects across 9 domains before a change is merged
Bug Fix/speckit-bugfixMaintenanceStandardized, spec-aware remediation workflow
Reconcile/speckit-reconcileMaintenanceManages drift by updating specs to match implementation realities
Orchestrator/speckit-orchestratorOrchestrationTracks state and resolves conflicts across multiple parallel features
Worktree/speckit-worktreeGitSpawns isolated Git worktrees for parallel feature development

والتثبيت دايماً بنفس الشكل:

bash
specifyextensionadd<name>--from<zip-url>

ملحوظة: لاحظ الـ --from دي — هنرجعلها في قسم القواعد المهمة، لأنها بتلخبط ناس كتير.


Section5. Greenfield vs Brownfield — تعالى نمشيها مرتين

نظري كفاية — تعالى نمشي الرحلة مرتين كاملتين: مرة بمشروع جديد من الصفر (Greenfield — أرض خضرا مفيهاش حاجة)، ومرة بمشروع قديم شغال عليه ناس قبلك (Brownfield — أرض بنى عليها ناس قبلك وسابولك الميراث).

Greenfield vs Brownfield — مقارنة تفصيلية لـ workflow النوعين

5.1 Greenfield (مشروع جديد)

ده السيناريو السهل — الورشة فاضية وانت هتبني من أول طوبة. بص على التسلسل كله مرة واحدة، وخد بالك من علامات (✅ ضروري) و(اختياري):

Phases Overview — الدورة الكاملة

text
[Phase 0] specify init . --integration claude
specifycheck
specifyextensionaddreview,security-review,qa,ship,...
[Phase 1] /speckit.constitution "Security-first. TDD. TTFB < 200ms."
/speckit-red-team(اختياريهاجمالـconstitution)
[Phase 2] /speckit.specify "Feature description"
/speckit.clarify(إزالةالغموض)
/speckit-critique(اختياريdual-lensreview)
/speckit.checklist(اختياريqualityvalidation)
[Phase 3] /speckit.plan "Vite + SQLite + vanilla JS"
/speckit-blueprint(اختياريخريطةالكودقبلالتنفيذ)
/speckit-version-guard(اختياريتحققمنالـdependencies)
[Phase 4] /speckit.tasks
/speckit.analyze(✅ضروريقبلimplementدايماً)
/speckit.taskstoissues(اختياريربطبـGitHubIssues)
[Phase 5] /speckit.implement
/speckit-checkpoint(اختياريcommitsمنظّمة)
[Phase 6] /speckit-verify            (✅ ضروري)
/speckit-verify-tasks(✅ضروري)
/speckit-review(اختياريcodereview)
/speckit-security-review(اختياريsecurityaudit)
/speckit-qa(اختياريacceptancetesting)
[Phase 7] /speckit-status
/speckit-ship(اختياريreleasepipeline)

شايف؟ الـ spine بتاع الرحلة هو نفس الستة اللي حفظناهم: constitution → specify → plan → tasks → implement → verify. الباقي كله إضافات بتقوّي النقط اللي تهمك.

5.2 Brownfield (مشروع موجود)

هنا القصة مختلفة. انت واقف قدام codebase عمره 3 سنين، اللي كتبوه مشيوا من الشركة، والـ documentation آخر تحديث ليها كان "قريباً". أول غلطة ممكن تعملها؟ إنك تبدأ تكتب specs لحاجات جديدة قبل ما تفهم الموجود.

عشان كده الـ Brownfield workflow بيبدأ بخطوة عكسية: بدل ما تكتب spec وتطلّع منها كود، بتاخد الكود الموجود وتطلّع منه specs — دي عملية الـ reverse-engineering اللي بيعملها /speckit-brownfield:

text
[Phase 0] specify init . --integration copilot
specifyextensionaddbrownfield,repoindex,verify,reconcile,...
[Phase 1] /speckit-repoindex          (افهم الكود الموجود)
/speckit-brownfield(عملreverse-engineeringللـmodules)
/speckit.constitution(حدّدقواعدالمشروع)
[Phase 2] /speckit-brownfield "Reverse-engineer the auth module"
/speckit-brownfield"Reverse-engineer the API layer"
...(كرّرلكلmoduleرئيسي)
[Phase 3] /speckit.plan               (لو بتضيف feature جديدة)
[Phase 4] /speckit.tasks + /speckit.analyze
[Phase 5] /speckit.implement
[Phase 6] /speckit-review
/speckit-security-review
/speckit-spectest(اعملtestsمنالـspecs)
/speckit-verify
/speckit-reconcile(تحققمنالـconsistency)
[Phase 7] /speckit-checkpoint
/speckit-ship
[Phase 8] /speckit-bugfix             (لأي bug جديد)
/speckit-ripple(بعدأيتعديل)
/speckit-verify(تحققإنالتعديلماكسرشحاجة)

5.3 القاعدة الدهبية للـ Brownfield

دي احفظها زي اسمك. أي تعديل في كود موجود — أي تعديل — يمشي على السبع خطوات دول:

text
قبل ما تعدّل أي كود موجود:
  1. /speckit-status          ← اعرف فين حاجاتك دلوقتي
  2. اقرأ spec.md للـ module  ← افهم الـ contract
  3. عدّل الكود
  4. /speckit-verify          ← هل كسرت الـ contract؟
  5. /speckit-ripple          ← أي side effects؟
  6. /speckit-spectest        ← الـ tests لسه aligned؟
  7. /speckit-reconcile       ← consistency check أخير

نصيحة: لو هتاخد من القسم ده حاجة واحدة بس، خد القاعدة دي. أغلب الكوارث في المشاريع القديمة سببها خطوة 2 اللي محدش بيعملها — بيعدّلوا كود من غير ما يفهموا الـ contract بتاعه.


Section6. طب ليه Spec Kit تحديداً؟ — المقارنة مع السوق

سؤال منطقي هتسأله: "هو Spec Kit ده الوحيد؟ مفيش غيره؟" في غيره طبعاً — والاختيار بينهم بيعتمد على حاجة اسمها الـ Maturity Level.

Comparative Analysis — Spec Kit vs alternatives

تقوللي "كل الـ tools دي بتعمل نفس الحاجة"؟ قولك لأ — كل واحدة واقفة على درجة مختلفة من السلم:

SDD Maturity Hierarchy

LevelNameDescriptionTools
1Spec-FirstSpecs precede coding but are often discardedSpec Kit, Kiro
2Spec-AnchoredSpecs persist and evolve alongside code as a durable contractSpec Kit + extensions, OpenSpec, Spec Kitty
3Spec-as-SourceSpecs are the primary unit of programming; code is a secondary, auto-generated artifactTessl

والفرق بين المستويات دي مش theoretical — ده فرق عملي هتحس بيه:

  • في Level 1، الـ spec بيتكتب في الأول وبعدين... بينتسي. زي كراسة الشروط اللي بتترمي في الدرج بعد ما العمارة تخلص.
  • في Level 2، الـ spec بيفضل living document — بيتحدث مع الكود ويفضل contract ساري. وهنا Spec Kit بالـ extensions بتاعته (sync وreconcile وverify) بيلعب.
  • في Level 3، القصة تتقلب: الـ spec هو الأصل والكود مجرد مشتق بيتولّد منه. ده مستقبل لسه بيتشكّل — وTessl هي اللي بتجرّبه دلوقتي.

SDD Maturity Hierarchy — المستويات التلاتة للنضج

SDD Tool Comparison

ToolLicenseGit WorktreesBest For
Spec KitOpen Sourcevia ExtensionGreenfield projects & battlefield-tested SDD
Spec KittyOpen SourceBuilt-inOrchestrating parallel features with Git Worktree
BMadOpen SourceNoEnterprise workflows using 21 specialized agents
OpenSpecMITNoLightweight change management for brownfield projects
TesslProprietaryNoSpec-as-source; high-abstraction generation

الخلاصة؟ لو عايز أداة open source متجرّبة في المعارك وبتكبر معاك من Level 1 لـ Level 2 — Spec Kit هو الاختيار الأوسع انتشاراً والأنضج ecosystem.


Section7. الـ Bug Workflow — سياسة الـ "No-Shortcut"

دلوقتي أصعب امتحان لأي methodology: إيه اللي بيحصل لما bug يظهر في production والدنيا ولعانة؟

هنا أغلب الفرق بترمي الـ methodology من الشباك: "مفيش وقت لـ specs، هنعمل hotfix سريع وخلاص". وده بالظبط أول خيط في فتلة الـ drift اللي اتكلمنا عنها في الأول — أول "استثناء صغير" بيجيب وراه عشرة.

Spec Kit واخد موقف صارم من ده اسمه الـ No-Shortcut Policy، وعامل للـ bugs مسار خاص بيها:

Bug Workflow — الـ diagnose/fix cycle

الـ Bug Extension (namespaced تحت speckit.bug.*) بيسجّل كل حاجة في audit trail منظّم جوه .specify/bugs/<slug>/ — يعني بعد 6 شهور تقدر ترجع تشوف الـ bug ده كان إيه، اتصلح إزاي، وليه:

الأمربيعمل إيهإمتى تستخدمهليه مهم
speckit.bug.assessبيـ analyze الـ codebase ضد الـ original specأي bug جديدعشان تفهم الـ divergence قبل ما تصلح
speckit.bug.fixبيـ generate targeted fixes بـ maintain spec complianceبعد assessالـ fix بيكون spec-compliant مش ad-hoc
speckit.bug.testبيـ verify الـ fix ضد الـ failure scenariosبعد fixتأكد إن الـ bug اتحل فعلاً

يعني التسلسل دايماً: assess (افهم الانحراف عن الـ spec) → fix (صلّح من غير ما تكسر الـ compliance) → test (اتأكد إن السيناريو اللي وقع مش هيقع تاني).

والقاعدة الأساسية: الـ bug fixes ممنوع تعدّي من غير الـ spec workflow. حتى fix السطر الواحد بيحتاج retroactive specification pass.

وهنا انت هتقولي: "يا باشمهندس ده bug سطر واحد، ليه لازم أعمله spec؟!"

أقولك ليه. لأن الـ bug السطر الواحد ده عرض مش مرض — ممكن يكون مؤشر على مشكلة أكبر في الـ spec نفسها. لو الـ spec كانت سليمة، السطر ده كان غلط ليه أصلاً؟ والـ bug workflow مش بيبطّأك — بيحميك من الـ regressions اللي مش بتشوفها غير لما الـ production يقع الساعة 3 الفجر. الـ "simple change" اللي من غير spec هو بالظبط اللي بيعمل الـ "ripples" اللي محدش حسبها.


Section8. الجدول الكامل — الـ 66 أمر في مكان واحد

خد نفس. إحنا لفّينا الرحلة كلها، ودلوقتي جه وقت الخريطة الشاملة — كل أمر في Spec Kit في جدول واحد تقدر ترجعله في أي وقت.

إزاي تقرا الجدول:

  • ❌/✅ → ❌ يعني built-in جاي مع Spec Kit نفسه، ✅ يعني extension لازم تثبّته الأول
  • 🖥️/🤖 → 🖥️ يعني أمر terminal (CLI)، 🤖 يعني slash command جوه الـ AI agent
  • Project → 🟢 New للمشاريع الجديدة، 🟤 Existing للقديمة، وBoth للاتنين
#Command❌/✅Extension🖥️/🤖ProjectCategory
1specify init🖥️BothSetup
2specify check🖥️BothSetup
3specify --version🖥️BothSetup
4specify self🖥️BothSetup
5specify extension add🖥️BothSetup
6specify extension search🖥️BothSetup
7specify preset add🖥️BothSetup
8specify preset search🖥️BothSetup
9specify integration list🖥️BothSetup
10specify workflow🖥️BothSetup
11/speckit.constitution🤖BothCore SDD
12/speckit.specify🤖BothCore SDD
13/speckit.plan🤖BothCore SDD
14/speckit.tasks🤖BothCore SDD
15/speckit.taskstoissues🤖BothCore SDD
16/speckit.implement🤖BothCore SDD
17/speckit.clarify🤖BothQuality
18/speckit.analyze🤖BothQuality
19/speckit.checklist🤖BothQuality
20/speckit-brownfieldbrownfield🤖🟤 ExistingCode Discovery
21/speckit-repoindexrepoindex🤖🟤 ExistingCode Discovery
22/speckit-reviewreview🤖BothQA & Review
23/speckit-staff-reviewstaff-review🤖BothQA & Review
24/speckit-security-reviewsecurity-review🤖BothSecurity
25/speckit-qaqa🤖BothQA & Testing
26/speckit-spectestspectest🤖BothQA & Testing
27/speckit-verifyverify🤖BothQA & Testing
28/speckit-verify-tasksverify-tasks🤖BothQA & Testing
29/speckit-cleanupcleanup🤖BothQA & Review
30/speckit-rippleripple🤖BothQA & Testing
31/speckit-critiquecritique🤖BothQuality
32/speckit-red-teamred-team🤖BothSecurity
33/speckit-spec-validatespec-validate🤖BothQuality
34/speckit-blueprintblueprint🤖🟢 NewPlanning
35/speckit-bugfixbugfix🤖BothBug Fixing
36/speckit-fixitfixit🤖BothBug Fixing
37/speckit-iterateiterate🤖BothSpec Management
38/speckit-reconcilereconcile🤖BothSpec Management
39/speckit-syncsync🤖BothSpec Management
40/speckit-refinerefine🤖BothSpec Management
41/speckit-jirajira🤖BothIntegrations
42/speckit-github-issuesgithub-issues🤖BothIntegrations
43/speckit-confluenceconfluence🤖BothIntegrations
44/speckit-pr-bridgepr-bridge🤖BothGitHub & CI/CD
45/speckit-ci-guardci-guardCIBothGitHub & CI/CD
46/speckit-checkpointcheckpoint🤖BothGitHub & CI/CD
47/speckit-shipship🤖BothGitHub & CI/CD
48/speckit-doctordoctor🤖BothHealth
49/speckit-statusstatus🤖BothHealth
50/speckit-diagramdiagram🤖BothHealth
51/speckit-scopescope🤖BothHealth
52/speckit-whatifwhatif🤖BothHealth
53/speckit-orchestratororchestrator🤖BothOrchestration
54/speckit-fleetfleet🤖🟢 NewOrchestration
55/speckit-conductconduct🤖BothOrchestration
56/speckit-retrospectiveretrospective🤖BothProcess
57/speckit-retroretro🤖BothProcess
58/speckit-onboardonboard🤖BothProcess
59/speckit-memory-hubmemory-md🤖BothMemory
60/speckit-memory-loadermemory-loader🤖BothMemory
61/speckit-version-guardversion-guard🤖🟢 NewDependency
62/speckit-worktreeworktree🤖BothGit & Parallel
63/speckit-worktreesworktrees🤖BothGit & Parallel
64/speckit-tinyspectinyspec🤖BothProcess
65/speckit-optimizeoptimize🤖BothProcess
66/speckit-learnlearn🤖BothProcess

ملحوظة: لاحظ حاجة مهمة في الجدول: أول 19 أمر بس هما الـ built-in (❌). الـ 47 الباقيين كلهم extensions من الـ community — وده اللي بيخلي الـ ecosystem ده حي وبيكبر كل يوم.


Section9. دليل القرار السريع — "أنا فين وأعمل إيه؟"

تاه منك الطريق في نص الشغل؟ عادي، بيحصل. الجدول ده بيجاوب على سؤال واحد بس: "أنا واقف هنا... أبدأ منين؟"

سيناريوابدأ من هنا
مشروع جديد من الصفرPhase 0 → Phase 1 → Phase 2 → ...
مشروع موجود، عايز تطبّق SDDPhase 0 (مع brownfield + repoindex) → Phase 1
constitution جاهز، بتبدأ feature جديدةPhase 2 (specify)
spec كتبته، جاهز للـ planPhase 3
plan جاهز، محتاج تنظّم الشغلPhase 4 (tasks)
tasks جاهزة، وقت الكودPhase 5 (implement)
كود خلص، محتاج quality checkPhase 6 (QA)
كل الـ tests اجتازتPhase 7 (ship)
bug اتبلّغPhase 8 → bugfix → verify → ripple
requirements اتغيّرت في النصiterate → refine → tasks → implement
مش عارف فين حاجاتك/speckit-status → اقرأ الـ dashboard

Section10. قواعد مهمة — الحاجات اللي بتفرق بين مبتدئ ومحترف

قبل ما نقفل، في شوية قواعد لو مشيت عليها هتوفّر على نفسك أسابيع من التخبط. كل قاعدة جنبها ليه — لأني مش عايزك تحفظ، عايزك تفهم:

القاعدةالتفاصيلليه
متقولش tech stack في /speckit.specifyبس قول إيه وليه — الـ plan هو المكان الصح للتقنيةالـ spec لازم يبقى technology-agnostic
/speckit.analyze قبل implement دايماًالـ consistency check بيوفّر ساعات debuggingغلطة هنا بتتصلح في 2 دقيقة، بعد implement بتاخد ساعة
الـ constitution مش اختياريبيمشي مع كل command ومش لازم تتذكر تحطهبيتقرأ تلقائياً مع كل slash command
[P] markers في tasks.mdبيحدد الـ tasks اللي ممكن تتنفّذ بالـ parallelبيـ speed up الـ implementation
Community extensions بتحتاج --fromمش ممكن تقول specify extension add review بسالـ built-in الوحيد هو git extension
/speckit-verify-tasks ضروريالـ AI بيقول "خلّصت" وهو ما عملش — اكتشفه هناphantom completions مش هتكتشفها من غيره
كل feature = branch جديداختياري بس best practiceبيـ isolate الـ changes

تحذير: القاعدة الأولى دي أكتر غلطة بيقع فيها الناس الجداد. أول ما بيمسكوا /speckit.specify بيكتبوا "React app with Express backend..." — لأ. الـ specify للـ إيه وليه، والـ plan للـ إزاي. لو خلطتهم، رجعت تاني لنفس عادات الـ vibe coding بس بخطوات أكتر.


Section11. الخلاصة: مستقبل الـ Intent-Based Development

Intent-Based Development — المستقبل

وصلنا لآخر الرحلة. فاكر أحمد اللي قابلناه في أول المقال — اللي الـ demo بتاعه اتلغبط قدام العميل؟ تعالى نلخّص إيه اللي كان هيتغير لو كان ماشي بالـ SDD من الأول — ودي خلاصة كل اللي اتعلمناه:

أولاً: الـ specification هي الـ fundamental unit of programming — مش الكود. الكود ده secondary artifact مُشتق من intent متـ validate. أحمد كان بيراكم prompts فوق بعضها من غير ذاكرة — الـ spec هي الذاكرة دي.

ثانياً: الـ structure مش luxury — ده الـ difference بين team بيـ drift وteam بيـ stay on course. الـ vibe coding سريع بس مش sustainable. والـ SDD مش بطيء — ده disciplined. الفرق بين الاتنين بيظهر مش في اليوم الأول... في الشهر التالت.

ثالثاً: الـ AI agent مش المشكلة — الـ vague intent هو المشكلة. لما الـ intent يكون محدد ومُلتزم بيه، حتى mid-tier model بيتفوق على frontier model شغال في vibe coding mode. يعني قبل ما تدفع أكتر في موديل أقوى، جرّب تدفع وقت أكتر في spec أوضح.

كل ما الـ AI بيتطور، الـ specification هتبقى هي وحدة البرمجة الأساسية. وSpec Kit بيديك العدّة اللي بتدير الـ transition ده — مش بكرة، دلوقتي.

يلا نبدأ — أول SDD project ليك

قوم افتح الترمينال دلوقتي — مش بكرة — وامشي على الستة دول:

  1. Init: specify init .
  2. Constitution: /speckit.constitution
  3. Specify: /speckit.specify
  4. Plan: /speckit.plan
  5. Tasks: /speckit.tasks
  6. Implement: /speckit.implement

وقبل ما تمشي، سيبني أسيبك مع السؤال اللي المقال كله كان بيبني ليه: الـ vibe coding سريع وبسيط — بس هل السرعة من غير structure تستاهل الـ drift اللي جاي بعدها؟ ولا الوقت جه إنك تنقل الـ source of truth من الكود للـ spec؟

الإجابة عندك. والعدّة قدامك. 🚀


المقالة دي جزء من سلسلة Agentic AI على Learn-in-Depth Journal.