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

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

فائل کی ساخت

ایک skill کو YAML frontmatter کے ساتھ ایک ہی 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 فیلڈز

ضروری فیلڈز

فیلڈقسمتفصیل
namestringمنفرد identifier (kebab-case)
versionstringSemantic ورژن (مثلاً “2.1.0”)
descriptionstringمختصر تفصیل (زیادہ سے زیادہ 160 حروف)
categoryenumایک میں سے: data-sync, email-marketing, sms-whatsapp, loyalty, analytics, integrations
triggersarrayوہ ایونٹس جو اس skill کو فعال کرتے ہیں
actionsarrayوہ آپریشنز جو یہ skill انجام دے سکتی ہے

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

فیلڈقسمڈیفالٹتفصیل
statusenumstableایک میں سے: stable, beta, experimental
brevoEndpointsarray[]استعمال شدہ Brevo API endpoints
permissionsarray[]مطلوبہ Brevo API permissions
relatedSkillsarray[]متعلقہ skills کے IDs
featuredbooleanfalseSkill کیٹالاگ میں نمایاں کریں

Triggers

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

Event Triggers

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

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

Webhook Triggers

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"
containsString میں شاملemail: "contains @gmail.com"
starts_withString کا سابقہname: "starts_with Dr."
inفہرست میں ویلیوcountry: "in US,CA,UK"

Actions

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

Action کی تعریف

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-emailTransactional ای میل بھیجیں
brevo/send-smsSMS پیغام بھیجیں
brevo/send-whatsappWhatsApp پیغام بھیجیں
brevo/create-contactنیا contact بنائیں
brevo/update-contactContact attributes اپ ڈیٹ کریں
brevo/delete-contactContact ڈیلیٹ کریں
brevo/add-to-listContact کو list میں شامل کریں
brevo/remove-from-listContact کو list سے ہٹائیں
brevo/track-eventاپنی مرضی کا ایونٹ ٹریک کریں
http/requestHTTP درخواست کریں
transform/mapڈیٹا transform کریں
control/delayجاری رکھنے سے پہلے انتظار کریں
control/conditionCondition کی بنیاد پر branch کریں

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

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

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' }}
uppercaseString کو uppercase کریں{{ name | uppercase }}
lowercaseString کو lowercase کریں{{ email | lowercase }}
capitalizeپہلا حرف بڑا کریں{{ name | capitalize }}
truncateString کو کاٹیں{{ desc | truncate: 100 }}
dateتاریخ format کریں{{ date | date: 'YYYY-MM-DD' }}
currencyکرنسی format کریں{{ price | currency: 'EUR' }}
mapArray خاصیت map کریں{{ items | map: 'name' }}
joinArray join کریں{{ tags | join: ', ' }}
firstArray کا پہلا آئٹم{{ items | first }}
lastArray کا آخری آئٹم{{ items | last }}
sizeArray/string کی لمبائی{{ items | size }}

Permissions

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

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

مکمل مثال

---
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 فیلڈ شامل کریں:

---
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 [email protected]"
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_namestringMCP tool کا نام (فارمیٹ: tajo/skill-name)
mcp.descriptionstringTool discovery کے دوران AI agents کو دکھائی جانے والی تفصیل
mcp.inputSchemaobjectTool کے input پیرامیٹرز کی تعریف کرنے والا JSON Schema
mcp.brevo_serversarrayاس skill کو کون سے Brevo MCP server ماڈیولز کی ضرورت ہے

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

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

Tip

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

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

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

# 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 اور 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 کرنا چاہیے

اگلے اقدامات

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
AI معاون

السلام علیکم! دستاویزات کے بارے میں کچھ بھی پوچھیں۔