كل الوحدات لماذا التخطيط أولًا التشريح قصص المستخدم التقطيع English

التخطيط أوّلًا

حوّل فكرةً غامضة إلى خطةٍ قابلة للتنفيذ يتّبعها المساعد — دون تِيه.

الوحدة 3 · قرّر ماذا تبني، قبل أن تبنيه.

مبتدئ التخطيط يتضمّن مختبرًا ~45 دقيقة

ماذا ستتعلّم

  • لماذا المواصفة المكتوبة هي الترياق لتضخّم النطاق وتآكل السياق
  • تشريح ملف SPEC.md خفيفٍ وحيّ
  • كيف تكتب قصص مستخدم بمعايير قبولٍ قابلة للاختبار
  • كيف تعرّف نموذج بياناتٍ صغيرًا وواجهة API — الحدّ الأدنى أوّلًا
  • كيف تقطّع العمل إلى مراحل يبنيها المساعد واحدةً تلو الأخرى
  • مختبر عملي: اكتب وأودِع SPEC.md لخزنة المقتطفات، والذكاء الاصطناعي يصوغ وأنت تقرّر

المتطلبات المسبقة: الوحدة 2 — مستودع snippet-vault بهيكله وملف سياقه.

لماذا التخطيط أوّلًا؟

تبدو البرمجة بالإحساس بلا خطةٍ سريعةً — لعشرين دقيقة تقريبًا. ثم يبدأ المساعد بتخمين مقصدك، ويضيف ما لم تطلبه، ويناقض خيارًا سابقًا، فتصبح تُطفئ الحرائق بدل أن تبني. والمواصفة ببساطة هي القرارات متّخذةً مرّةً واحدة، مكتوبةً، كي لا تعيد أنت ولا الذكاء الاصطناعي تخمينها.

بلا مواصفةمع مواصفة
يخترع الذكاء الاصطناعي نطاقًا لم تُرِدهالنطاق ثابتٌ وظاهر — يسهل قول «ليس الآن»
«الاكتمال» شعورٌ يُتنازَع عليه لاحقًا«الاكتمال» معايير قبولٍ يمكنك فحصها
تآكل السياق: ينسى النموذج القرارات السابقةالمواصفة ذاكرةٌ دائمة يعيد النموذج قراءتها
طلبٌ واحدٌ ضخمٌ غامض، ونتيجةٌ لا تُتوقّعمهامّ صغيرة مقتطعة من الخطة، واحدةً تلو الأخرى

المواصفة عقدٌ لا رواية

هي SPEC.md قصيرٌ وحيّ في مستودعك — صفحة أو صفحتان. إنها العقد المشترك بينك وبين المساعد. ستحدّثها كلّما تعلّمت؛ وهذا متوقّع. وظيفتها أن تجعل سؤال «ماذا نبني؟» قابلًا للإجابة بنظرة.

تشريح مواصفةٍ جيّدة

أبقِها خفيفة. ستة أقسامٍ تغطّي أيّ تطبيقٍ صغير تقريبًا:

القسميُجيب عن
المشكلة والهدفماذا نحلّ، ولمن؟
قصص المستخدمماذا يستطيع المستخدم فعله؟
ضمن النطاق / ليس هدفًاما سنبنيه — وما لن نبنيه صراحةً — الآن.
نموذج البياناتالأشياء الأساسية التي نخزّنها وحقولها.
API / الشاشاتنقاط النهاية أو الصفحات التي تحقّق القصص.
المراحلالترتيب الذي نبني به، أصغر شريحةٍ مفيدة أوّلًا.

وهذا الهيكل الذي ستملؤه في المختبر:

# Snippet Vault — SPEC ## Problem & goal Developers lose useful code snippets. Give them one place to save, tag, and quickly find snippets. ## User stories - (filled in below) ## In scope - Create, list, search, and delete snippets. ## Non-goals (not now) - Accounts / login, sharing, syntax highlighting, folders. ## Data model Snippet: id, title, language, code, createdAt ## API GET /snippets?q= list + search POST /snippets create DELETE /snippets/:id delete ## Milestones 1. Create + list 2. Search 3. Delete

من الفكرة إلى قصص المستخدم

تلتقط قصّة المستخدم شيئًا واحدًا يستطيع المستخدم فعله، من وجهة نظره، مع كيفية معرفتك أنه يعمل. الصيغة الكلاسيكية:

القالب

بصفتي [مَن]، أريد [ماذا]، حتى [لماذا].
ثم: معايير القبول — الشروط القابلة للفحص لـ«الاكتمال».

لخزنة المقتطفات:

Story: Save a snippet As a developer, I want to save a snippet with a title and language, so that I can find it again later. Acceptance: - A form takes title, language, and code. - On submit, the snippet appears in the list. - Empty title is rejected with a message. Story: Search snippets As a developer, I want to search by title, so that I can find a snippet fast. Acceptance: - Typing in the search box filters the list live. - Search is case-insensitive. - No match shows a friendly "nothing found" state.

لماذا تهمّ المعايير هنا

أسطر القبول هذه ليست بيروقراطية — بل تصير حالات اختبارك في الوحدة 6، وتخبر المساعد متى يتوقّف بالضبط. ويكفّ «الاكتمال» عن كونه جدالًا.

قطّع إلى مراحل

لا تسلّم المساعد المواصفة كاملةً وتقول «ابنِها». قطّعها إلى مراحل عمودية رفيعة — كلٌّ منها زيادةٌ صغيرة تعمل وقابلة للشحن. ابنِ أصغر شيءٍ مفيد أوّلًا (الحدّ الأدنى)، ثم أضِف طبقة فوق طبقة.

# Milestone plan (task list) [ ] M1 Create + list snippets (title, language, code) end to end [ ] M2 Search box filters the list by title [ ] M3 Delete a snippet [ ] M4 Validation + empty/error states # Each milestone: one branch, tests, review, commit.

اقطع الحدّ الأدنى بلا رحمة

أسرع طريقٍ للإنهاء هو أن تبني أقلّ. كل «ألن يكون رائعًا لو…» يذهب تحت ليس هدفًا، لا إلى M1. يمكنك دائمًا ترقية «ليس هدفًا» لاحقًا — أمّا مرحلةٌ أولى متضخّمة فهي كيف تتعثّر المشاريع.

دع الذكاء الاصطناعي يصوغ، وأنت تقرّر

استخدامٌ ممتاز للمساعد: أعطِه موجزك والهيكل، واطلب منه أن يقترح قصص المستخدم ونموذج البيانات وتقطيع المراحل. ثم حرّر أنت — اقطع النطاق، صحّح النموذج، أعد الترتيب. المساعد صائغٌ سريع؛ وقرارات المنتج تبقى لك.

مختبر عملي: اكتب مواصفة خزنة مقتطفاتك

ستُنتج ملف SPEC.md حقيقيًّا — يصوغه الذكاء الاصطناعي وتقرّره أنت — بقصص مستخدمٍ ومعايير قبولٍ ونموذج بياناتٍ صغير وتقطيع مراحل. وستسلّم المواصفة المُودَعة.

ما تحتاجه

مستودع snippet-vault من الوحدة 2 (الهيكل + ملف السياق)، ومساعدك.

1

اكتب موجزًا بفقرة واحدة

بكلماتك: أيّ مشكلةٍ تحلّها خزنة المقتطفات ولمن. جملتان أو ثلاث تكفي.

2

دع الذكاء الاصطناعي يصوغ SPEC.md

الصق هذا، ثم راجع ما يعود:

Using my brief and CLAUDE.md, draft SPEC.md with these sections: Problem & goal, User stories (with acceptance criteria), In scope, Non-goals, Data model, API, Milestones. Keep the MVP tiny. Propose it — I'll edit. Don't write app code.
3

اجعلها لك — اقطع النطاق

حرّر المسوّدة. انقل كل ما ليس جوهريًّا إلى ليس هدفًا. أبقِ 3–5 قصص مستخدم، لكلٍّ معايير قبولٍ ملموسة. وأكّد أن نموذج البيانات هو فقط Snippet: id, title, language, code, createdAt.

4

قطّع المراحل

رتّب العمل أصغر-مفيدٍ-أوّلًا كقائمة مهامّ بمربّعات (M1 إنشاء+عرض، M2 بحث، M3 حذف…). هذه القائمة تقود كل وحدةٍ متبقّية.

5

أودِع المواصفة

git add SPEC.md git commit -m "Add SPEC: stories, data model, milestones"

ثم أضِف إلى REFLECTION.md: أيّ «ليس هدفًا» قطعته لإبقاء M1 صغيرة، وأين تضخّمت مسوّدة الذكاء الاصطناعي فقلّمتها؟ ثم أودِعه.

ما الذي تسلّمه

مستودع snippet-vault مع SPEC.md. تحقّق من نفسك قبل التسليم:

  • SPEC.md فيه الأقسام الستّة كلّها، والحدّ الأدنى مُبقًى صغيرًا
  • 3–5 قصص مستخدم، لكلٍّ معايير قبولٍ قابلة للفحص
  • قائمة مراحل، أصغر شريحةٍ مفيدة أوّلًا
  • إيداعات جديدة للمواصفة وللتأمّل

مسرد مصغّر

المصطلحالمعنى المبسّط
المواصفة (Spec)مستندٌ قصيرٌ حيّ لما تبنيه ولماذا (SPEC.md).
قصّة المستخدمقدرةٌ واحدة من وجهة نظر المستخدم: بصفتي… أريد… حتى…
معايير القبولالشروط القابلة للفحص التي تجعل القصّة «مكتملة».
ليس هدفًاشيءٌ تختار عمدًا ألّا تبنيه الآن.
مرحلة / شريحةزيادةٌ رفيعة تعمل يمكنك بناؤها وشحنها وحدها.
MVPالمنتج الأدنى القابل للتطبيق — أصغر نسخةٍ مفيدةٍ فعلًا.

الخلاصة وما التالي

صار لديك الآن

ملف SPEC.md مُودَع: المشكلة، وقصص المستخدم بمعايير قبولها، ونموذج بياناتٍ صغير، وواجهة API، وتقطيع مراحل. صار للمساعد عقدٌ دائمٌ يبني عليه — وصار لديك تعريفٌ لـ«الاكتمال».

التالي: الوحدة 4 — التحكم بالإصدارات من السطر الأول. قبل بناء M1، نصقل عادات Git — فرعٌ لكل مرحلة، وإيداعاتٌ نظيفة، ومراجعة كل تغييرٍ مولَّدٍ بالذكاء الاصطناعي كأنه طلب دمج.

التخطيط أوّلًا

الأهداف لماذا التخطيط أولًا التشريح قصص المستخدم التقطيع المختبر العملي المسرد الخلاصة