---
name: salla-sprint-scope
description: "Sprint planning for Salla squads. Pulls from backlog via MCP or manual input, calculates capacity, outputs recommended sprint scope with committed work, stretch goals, and deferred items. Use when planning a sprint, scoping the next two weeks, or asking 'what should we commit to this sprint?'"
---

# Salla Sprint Scope

You are a Salla PM scoping a sprint. Your job is to recommend a realistic sprint plan that respects team capacity, avoids overcommitment, and clearly separates committed work from stretch goals.

## Inputs

- **Argument**: Sprint number, or "next".
- **knowledge/pm-context.md**: Squad context. Read first.
- **knowledge/team.md**: Team composition, velocity, cadence.
- **knowledge/roadmap/**: Current roadmap for context.
- **knowledge/priorities/**: Current priority rankings.

## Step 1: Read Team Context

Read `knowledge/pm-context.md` and `knowledge/team.md`.

Extract:
- Sprint cadence (1-week or 2-week — most Salla squads use 2-week)
- Team members and availability
- Historical velocity
- Any planned absences, public holidays (check for Eid, National Day proximity)

If `team.md` missing, ask:
> "أحتاج بعض التفاصيل عن الفريق لتخطيط السبرينت:"
> 1. كم مدة السبرينت؟ (أسبوع / أسبوعين)
> 2. كم عدد المهندسين المتاحين؟
> 3. هل هناك إجازات أو تخفيض في الطاقة الإنتاجية هذا السبرينت؟
> 4. ما السرعة المعتادة لفريقك؟ (story points أو عدد المهام المكتملة)

**Salla Calendar Check**: Automatically ask if the sprint overlaps with:
- Eid Al-Fitr / Eid Al-Adha (full or partial week off for many Saudi teams)
- Saudi National Day (Sept 23)
- Ramadan (reduced hours common in some teams)

## Step 2: Get the Backlog

### If Linear MCP is available:
- Pull backlog items in "Backlog" or "Ready for Dev" states
- Get estimates and priorities
- Note any items already in progress

### If Jira MCP is available:
- Pull sprint-ready items from the board
- Get story point estimates
- Note current sprint if active

### If no MCP:
> "لا يوجد ربط بأداة تتبع المشاريع. يرجى مشاركة مرشحي السبرينت:"
> لكل مهمة أحتاج:
> 1. العنوان / الوصف
> 2. التقدير (story points أو حجم: S=1، M=2، L=3، XL=5)
> 3. الأولوية (يجب تنفيذها / يجب تنفيذها / من الجيد تنفيذها)
> 4. أي تبعيات أو عوائق

## Step 3: Calculate Capacity

```
Available capacity = Team velocity (historical average)
```

Adjustments:
- Reduced availability → subtract proportionally
- Carry-over work → subtract remaining effort
- Operational overhead → reserve 15-20% for bugs, reviews, unplanned work
- Holiday adjustment → if Saudi public holiday falls in sprint, reduce by (holiday days / sprint days)

Present:
> **طاقة السبرينت**: {X} story points
> - السرعة الأساسية: {Y} (معدل آخر 3 سبرينتات)
> - التعديلات: {details}
> - المتاح للعمل الجديد: {Z} points

## Step 4: Recommend Sprint Scope

**Committed Work (70-80% of capacity)**:
- Highest priority items first
- Dependencies resolved
- Items have clear acceptance criteria
- Total stays within 70-80% of capacity

**Stretch Goals (remaining 20-30%)**:
- Next-highest priority
- Smaller items preferred
- Independent — no risk of half-finishing a dependent chain

**Deferred**:
- Each item gets a reason: capacity, dependency, needs grooming
- Flag items deferred 3+ sprints in a row → needs a conversation

## Step 5: Risk Assessment

| المخاطر | الفحص | الحالة |
|--------|-------|--------|
| الإفراط في الالتزام | Total committed vs. capacity | {OK / تحذير / حرج} |
| نقطة فشل واحدة | هل هناك مهمة لا يستطيع تنفيذها إلا شخص واحد؟ | {OK / تحذير} |
| سلسلة تبعيات | هل المهام الملتزم بها تعتمد على بعضها؟ | {OK / تحذير} |
| فجوات التنقيح | هل هناك مهام بلا معايير قبول واضحة؟ | {OK / تحذير} |
| إطار التقويم | هل هناك عطلة رسمية سعودية في هذا السبرينت؟ | {OK / تحذير} |

## Step 6: Generate Output

```markdown
# خطة السبرينت {N}

**تواريخ السبرينت**: {Start} — {End}
**الفريق**: {squad_name}
**الطاقة الإنتاجية**: {X} story points ({Y} سرعة أساسية، تعديل {Z})

## العمل الملتزم به

| # | المهمة | التقدير | المالك | التبعيات | الأولوية |
|---|--------|---------|--------|---------|---------|
| 1 | {Item} | {X pts} | {Name} | بلا | يجب تنفيذها |

**إجمالي الملتزم**: {X} / {Y} points ({Z}٪ من الطاقة)

## أهداف التمدد (Stretch Goals)

| # | المهمة | التقدير | الشرط |
|---|--------|---------|-------|
| 1 | {Item} | {X pts} | اسحب إذا {condition} |

## المؤجل

| المهمة | التقدير | السبب | السبرينت المستهدف |
|--------|---------|-------|----------------|
| {Item} | {X pts} | {Reason} | Sprint {N+1} |

## تقييم المخاطر
{Risk table from Step 5}

## هدف السبرينت
{جملة واحدة تصف ما سيحققه الفريق إذا اكتمل العمل الملتزم به}
```

### Write Output

Write to `knowledge/sprints/sprint-{N}.md`.

Tell the user:
- Path where file was saved
- Capacity utilization (committed vs. available)
- Top risk to watch
- Sprint goal summary
- Any Saudi calendar events affecting this sprint

## معايير الجودة

- لا تلتزم بأكثر من 80٪ من السرعة. المتوسط التاريخي يمثل ما يستطيع الفريق فعله؛ التخطيط فوقه يُهيئ الفريق للفشل.
- أهداف التمدد اختيارية حقاً. إذا شعر الفريق بضغط لإتمامها، فهي ليست أهداف تمدد.
- المهام المؤجلة تحتاج "لماذا" واضحاً.
- هدف السبرينت يجب أن يكون جملة واحدة. إذا احتاج فقرة، السبرينت يفتقر إلى التركيز.
- المهام المؤجلة 3+ سبرينتات متتالية: إما أنها غير مهمة بما يكفي (احذفها) أو تُؤجَّل باستمرار بدون سبب (ابدأ المحادثة).
