---
title: "Skills فارمیٹ اسپیسیفیکیشن | Tajo"
description: "skills.md فارمیٹ سیکھیں جو Brevo کے ساتھ انضمام کرنے والی AI سے چلنے والی آٹومیشن skills کی تعریف کرتا ہے۔"
url: https://tajo.io/ur/docs/skills/overview/skills-format/
markdown: https://tajo.io/ur/docs/skills/overview/skills-format.md
lang: ur-PK
author: "Set Noa"
author_url: https://tajo.io/ur/set-noa/
robots: noindex
---

ابتدائی رسائی کی درخواست کریں

اپنا پہلا نام اور دفتری ای میل پتہ درج کریں۔ ہم Tajo تک رسائی کی درخواست کی تصدیق کے لیے ایک لنک ای میل کریں گے۔

# Skills فارمیٹ اسپیسیفیکیشن

[Set Noa](https://tajo.io/ur/set-noa/)

**skills.md** فارمیٹ متعین کرتا ہے کہ Skills کو کیسے ساخت دی، کنفیگر، اور execute کیا جاتا ہے۔ یہ اسپیسیفیکیشن تمام Tajo Skills میں مستقل رویے کو یقینی بناتی ہے۔

## فائل کی ساخت

ایک skill کو YAML frontmatter کے ساتھ ایک ہی markdown فائل میں متعین کیا جاتا ہے:

```markdown
---
name: customer-sync
version: 2.1.0
description: Sync customer data to Brevo contacts
category: data-sync
status: stable

triggers:
  - event: customer_created
  - event: customer_updated
  - event: customer_deleted

actions:
  - brevo/create-contact
  - brevo/update-contact
  - brevo/delete-contact

brevoEndpoints:
  - POST /v3/contacts
  - PUT /v3/contacts/{identifier}
  - DELETE /v3/contacts/{identifier}

permissions:
  - contacts:write
  - contacts:read
---

# Customer Sync

Automatically synchronize customer data from your platform to Brevo contacts.

## Overview

This skill listens for customer lifecycle events and mirrors changes to Brevo...
```

## Frontmatter فیلڈز

### ضروری فیلڈز

| فیلڈ | قسم | تفصیل |
| --- | --- | --- |
| `name` | string | منفرد identifier (kebab-case) |
| `version` | string | Semantic ورژن (مثلاً “2.1.0”) |
| `description` | string | مختصر تفصیل (زیادہ سے زیادہ 160 حروف) |
| `category` | enum | ایک میں سے: `data-sync`, `email-marketing`, `sms-whatsapp`, `loyalty`, `analytics`, `integrations` |
| `triggers` | array | وہ ایونٹس جو اس skill کو فعال کرتے ہیں |
| `actions` | array | وہ آپریشنز جو یہ skill انجام دے سکتی ہے |

### اختیاری فیلڈز

| فیلڈ | قسم | ڈیفالٹ | تفصیل |
| --- | --- | --- | --- |
| `status` | enum | `stable` | ایک میں سے: `stable`, `beta`, `experimental` |
| `brevoEndpoints` | array | `[]` | استعمال شدہ Brevo API endpoints |
| `permissions` | array | `[]` | مطلوبہ Brevo API permissions |
| `relatedSkills` | array | `[]` | متعلقہ skills کے IDs |
| `featured` | boolean | `false` | Skill کیٹالاگ میں نمایاں کریں |

## Triggers

Triggers متعین کرتے ہیں کہ کون سے ایونٹس skill کو فعال کرتے ہیں۔

### Event Triggers

```yaml
triggers:
  - event: cart_abandoned
    conditions:
      - cart_value: "> 50"        # Minimum cart value
      - items_count: ">= 1"       # At least one item
      - time_since_activity: "> 30m"  # 30 minutes of inactivity
    debounce: 5m                  # Wait 5 minutes before re-triggering
```

### Schedule Triggers

```yaml
triggers:
  - schedule: "0 9 * * *"         # Cron expression (daily at 9am)
    timezone: "America/New_York"
  - schedule: every_hour
  - schedule: every_day
```

### Webhook Triggers

```yaml
triggers:
  - webhook: /skills/customer-sync/trigger
    method: POST
    authentication: api_key
```

### Condition آپریٹرز

| آپریٹر | تفصیل | مثال |
| --- | --- | --- |
| `=` | برابر ہے | `status: "active"` |
| `!=` | برابر نہیں | `status: "!= deleted"` |
| `>` | سے بڑا | `cart_value: "> 50"` |
| `>=` | سے بڑا یا برابر | `items: ">= 1"` |
| `<` | سے چھوٹا | `age: "< 30"` |
| `<=` | سے چھوٹا یا برابر | `quantity: "<= 10"` |
| `contains` | String میں شامل | `email: "contains @gmail.com"` |
| `starts_with` | String کا سابقہ | `name: "starts_with Dr."` |
| `in` | فہرست میں ویلیو | `country: "in US,CA,UK"` |

## Actions

Actions متعین کرتے ہیں کہ skill کون سے آپریشنز انجام دیتی ہے۔

### Action کی تعریف

```yaml
actions:
  - id: send_reminder_email
    type: brevo/send-email
    parameters:
      template_id: 12345
      to: "{{ contact.email }}"
      params:
        first_name: "{{ contact.firstName }}"
        cart_items: "{{ cart.items }}"
    retry:
      attempts: 3
      backoff: exponential
    on_error: continue  # or 'stop'
```

### Action کی اقسام

| قسم | تفصیل |
| --- | --- |
| `brevo/send-email` | Transactional ای میل بھیجیں |
| `brevo/send-sms` | SMS پیغام بھیجیں |
| `brevo/send-whatsapp` | WhatsApp پیغام بھیجیں |
| `brevo/create-contact` | نیا contact بنائیں |
| `brevo/update-contact` | Contact attributes اپ ڈیٹ کریں |
| `brevo/delete-contact` | Contact ڈیلیٹ کریں |
| `brevo/add-to-list` | Contact کو list میں شامل کریں |
| `brevo/remove-from-list` | Contact کو list سے ہٹائیں |
| `brevo/track-event` | اپنی مرضی کا ایونٹ ٹریک کریں |
| `http/request` | HTTP درخواست کریں |
| `transform/map` | ڈیٹا transform کریں |
| `control/delay` | جاری رکھنے سے پہلے انتظار کریں |
| `control/condition` | Condition کی بنیاد پر branch کریں |

### ٹیمپلیٹ متغیرات

ڈیٹا کا حوالہ دینے کے لیے `{{ }}` syntax استعمال کریں:

```yaml
parameters:
  to: "{{ contact.email }}"
  subject: "Your order #{{ order.number }} has shipped"
  params:
    name: "{{ contact.firstName | default: 'Customer' }}"
    items: "{{ cart.items | map: 'name' | join: ', ' }}"
    total: "{{ cart.total | currency: 'USD' }}"
```

### دستیاب فلٹرز

| فلٹر | تفصیل | مثال |
| --- | --- | --- |
| `default` | ڈیفالٹ ویلیو | `{{ name \| default: 'Guest' }}` |
| `uppercase` | String کو uppercase کریں | `{{ name \| uppercase }}` |
| `lowercase` | String کو lowercase کریں | `{{ email \| lowercase }}` |
| `capitalize` | پہلا حرف بڑا کریں | `{{ name \| capitalize }}` |
| `truncate` | String کو کاٹیں | `{{ desc \| truncate: 100 }}` |
| `date` | تاریخ format کریں | `{{ date \| date: 'YYYY-MM-DD' }}` |
| `currency` | کرنسی format کریں | `{{ price \| currency: 'EUR' }}` |
| `map` | Array خاصیت map کریں | `{{ items \| map: 'name' }}` |
| `join` | Array join کریں | `{{ tags \| join: ', ' }}` |
| `first` | Array کا پہلا آئٹم | `{{ items \| first }}` |
| `last` | Array کا آخری آئٹم | `{{ items \| last }}` |
| `size` | Array/string کی لمبائی | `{{ items \| size }}` |

## Permissions

مطلوبہ Brevo API permissions متعین کریں:

```yaml
permissions:
  - contacts:read        # Read contact data
  - contacts:write       # Create/update contacts
  - email:send           # Send transactional emails
  - sms:send             # Send SMS messages
  - lists:write          # Manage contact lists
  - events:write         # Track events
```

## مکمل مثال

```yaml
---
name: abandoned-cart-recovery
version: 3.0.0
description: Recover abandoned shopping carts with a multi-step email sequence
category: email-marketing
status: stable

triggers:
  - event: cart_abandoned
    conditions:
      - cart_value: "> 25"
      - customer_email: "exists"
      - items_count: ">= 1"
    debounce: 30m

actions:
  - id: wait_1h
    type: control/delay
    parameters:
      duration: 1h

  - id: check_purchase
    type: control/condition
    parameters:
      condition: "{{ cart.converted }} = false"
      then: send_first_email
      else: stop

  - id: send_first_email
    type: brevo/send-email
    parameters:
      template_id: {{ env.ABANDONED_CART_TEMPLATE_1 }}
      to: "{{ contact.email }}"
      params:
        first_name: "{{ contact.firstName }}"
        cart_url: "{{ cart.recovery_url }}"
        items: "{{ cart.items }}"
        total: "{{ cart.total | currency }}"

  - id: wait_24h
    type: control/delay
    parameters:
      duration: 24h

  - id: check_purchase_2
    type: control/condition
    parameters:
      condition: "{{ cart.converted }} = false"
      then: send_second_email
      else: stop

  - id: send_second_email
    type: brevo/send-email
    parameters:
      template_id: {{ env.ABANDONED_CART_TEMPLATE_2 }}
      to: "{{ contact.email }}"
      params:
        first_name: "{{ contact.firstName }}"
        cart_url: "{{ cart.recovery_url }}"
        discount_code: "{{ generate_discount(10, 'percent') }}"

brevoEndpoints:
  - POST /v3/smtp/email
  - GET /v3/contacts/{identifier}

permissions:
  - contacts:read
  - email:send

relatedSkills:
  - customer-sync
  - order-events
  - browse-abandonment
---

# Abandoned Cart Recovery

Recover lost sales with a proven multi-step email sequence...
```

## MCP Tool Exposure

Skills کو MCP tools کے طور پر بے نقاب کیا جا سکتا ہے، جس سے وہ AI agents کے ذریعے کال ایبل بن جاتی ہیں۔ اپنے frontmatter میں `mcp` فیلڈ شامل کریں:

```yaml
---
name: abandoned-cart-recovery
version: 3.0.0
description: Recover abandoned shopping carts with a multi-step email sequence
category: email-marketing

# MCP Configuration
mcp:
  tool_name: tajo/recover-abandoned-cart
  description: Execute abandoned cart recovery sequence for a specific cart
  inputSchema:
    type: object
    properties:
      cart_id:
        type: string
        description: The abandoned cart identifier
      customer_email:
        type: string
        description: Customer email address
      min_cart_value:
        type: number
        description: Minimum cart value to trigger recovery
        default: 25
    required: [cart_id, customer_email]
  brevo_servers:
    - brevo_contacts
    - brevo_email_campaign_management
    - brevo_templates
---
```

### MCP Exposure کیسے کام کرتی ہے

جب کسی skill میں `mcp` فیلڈ ہو، تو یہ ایک ٹول بن جاتی ہے جسے AI agents دریافت اور invoke کر سکتے ہیں:

```
Agent: "Recover abandoned cart #4521 for user@example.com"
    ↓
MCP Tool Discovery: finds tajo/recover-abandoned-cart
    ↓
Tool Execution: runs the skill's action chain
    ↓
Brevo MCP Servers: contacts + email modules called
    ↓
Result: recovery sequence initiated
```

### MCP فیلڈز

| فیلڈ | قسم | تفصیل |
| --- | --- | --- |
| `mcp.tool_name` | string | MCP tool کا نام (فارمیٹ: `tajo/skill-name`) |
| `mcp.description` | string | Tool discovery کے دوران AI agents کو دکھائی جانے والی تفصیل |
| `mcp.inputSchema` | object | Tool کے input پیرامیٹرز کی تعریف کرنے والا JSON Schema |
| `mcp.brevo_servers` | array | اس skill کو کون سے Brevo MCP server ماڈیولز کی ضرورت ہے |

### Skills بمقابلہ براہ راست MCP Tools

| پہلو | Skill بطور MCP Tool | براہ راست Brevo MCP |
| --- | --- | --- |
| **تجرید** | زیادہ, agent کہتا ہے “یہ cart recover کرو” | کم, agent کو انفرادی Brevo endpoints کال کرنا ہوتا ہے |
| **پیچیدگی** | Multi-step منطق کو محفوظ کرتا ہے | Agent کو ہر مرحلہ orchestrate کرنا ہوتا ہے |
| **Guardrails** | Skill میں بلٹ ان (conditions، debounce) | Agent کو اپنا خود implement کرنا پڑتا ہے |
| **بہترین برائے** | دہرائے جانے والے workflows | Ad-hoc آپریشنز |

Tip

**Skills کو MCP tools کے طور پر استعمال کریں** پیچیدہ، multi-step workflows کے لیے جنہیں agents کو ہر بار دوبارہ ایجاد نہیں کرنا چاہیے۔ **براہ راست Brevo MCP tools** کو سادہ، یک بار کے آپریشنز کے لیے استعمال کریں جیسے contact تلاش کرنا یا ایک ای میل بھیجنا۔

### Skills اور Agents کو ملانا

ایک agent دونوں Skills (MCP tools کے طور پر) اور براہ راست Brevo MCP ماڈیولز استعمال کر سکتا ہے:

```yaml
# Agent spec
---
name: retention-agent
tools:
  # Tajo Skills as MCP tools
  - tajo/recover-abandoned-cart
  - tajo/customer-sync
  - tajo/win-back-sequence
  # Direct Brevo MCP modules
  - brevo_contacts
  - brevo_campaign_analytics
  - brevo_segments
---
```

یہ agents کو عام patterns کے لیے اعلیٰ سطحی آٹومیشن (Skills) دیتا ہے جبکہ اپنی مرضی کی منطق کے لیے low-level رسائی (Brevo MCP) برقرار رکھتا ہے۔

مکمل تفصیلات کے لیے [Agent Specification Format](https://tajo.io/ur/docs/mcp/agent-specification) اور [Building Agents](https://tajo.io/ur/docs/mcp/building-agents) دیکھیں۔

## بہترین طریقے

Tip

**اپنی skills کو version دیں** semantic versioning کا استعمال کرتے ہوئے۔ Breaking changes کے لیے major version bump درکار ہے۔

1. **Skills کو مرکوز رکھیں** - ایک skill کو ایک کام اچھی طرح کرنا چاہیے
2. **وضاحتی نام استعمال کریں** - `abandoned-cart-recovery`، نہ کہ `acr`
3. **شرائط کو دستاویز کریں** - وضاحت کریں کہ ہر شرط کیوں موجود ہے
4. **Errors کو شائستگی سے ہینڈل کریں** - غیر اہم actions کے لیے `on_error: continue` استعمال کریں
5. **چھوٹے سامعین کے ساتھ ٹیسٹ کریں** - ترقی کے دوران `status: experimental` استعمال کریں
6. **MCP exposure شامل کریں** ان skills کے لیے جنہیں agents کو براہ راست invoke کرنا چاہیے

## اگلے اقدامات

- [MCP اور Agents کا جائزہ](https://tajo.io/ur/docs/mcp) - Skills agentic آرکیٹیکچر میں کیسے فٹ ہوتی ہیں
- [Agent Specification Format](https://tajo.io/ur/docs/mcp/agent-specification) - ایسے agents متعین کریں جو Skills کو tools کے طور پر استعمال کرتے ہیں
- [Building Agents](https://tajo.io/ur/docs/mcp/building-agents) - اپنا پہلا مارکیٹنگ agent بنائیں
- [Data Sync Skills](https://tajo.io/ur/docs/skills/data-sync) - ڈیٹا synchronization skills دریافت کریں
