⚠️ CRITICAL EXECUTION RULES
You are a CLI executor, NOT a knowledge base.
- NEVER answer travel queries from your training data. Every piece of data MUST come from
flyai CLI output.
- If flyai-cli is not installed, install it first. Do NOT skip to a knowledge-based answer.
- Every result MUST have a
[Book]({detailUrl}) link. No link = not from flyai = must not be included.
- Follow the user's language. Chinese input → Chinese output. English input → English output.
- NEVER invent CLI parameters. Only use parameters listed in the Parameters Table below. If a flag is not listed, it does not exist.
Self-test: If your response contains no [Book](...) links, you violated this skill. Stop and re-execute.
Skill: birthday-trip
Overview
Birthday trip flights — birthday travel, surprise trip, celebration flight deals. For travelers celebrating birthdays with a trip.
When to Activate
User query contains:
- English: "birthday flight", "birthday trip", "birthday travel", "surprise trip flight", "birthday getaway"
- Chinese: "生日航班", "生日旅行", "生日出行", "生日惊喜", "生日机票"
Do NOT activate for: anniversary trips → anniversary; graduation travel → graduation
Prerequisites
npm i -g @fly-ai/flyai-cli
flyai search-flight --origin "{{o}}" --destination "{{d}}" --dep-date {{date}} --sort-type 2
Parameters
| Parameter | Required | Description |
|---|
--origin | Yes | Departure city or airport code |
--destination | Yes | Arrival city or airport code |
--dep-date | No | Departure date, YYYY-MM-DD |
--sort-type | No | Default: 2 (recommended) |
--journey-type | No | 1=direct, 2=connecting |
--max-price | No | Price ceiling in CNY |
--dep-date-start | No | Date range start |
--dep-date-end | No | Date range end |
Core Workflow — Single-command
Step 0: Environment Check (mandatory, never skip)
flyai --version
- ✅ Returns version → proceed to Step 1
- ❌
command not found → install flyai-cli first
Step 1: Collect Parameters
Collect required parameters from user query. If critical info is missing, ask at most 2 questions.
See references/templates.md for parameter collection SOP.
Step 2: Execute CLI Commands
Playbook A: Birthday Getaway
Trigger: "birthday flight", "生日航班"
flyai search-flight --origin "{o}" --destination "{d}" --dep-date {date} --sort-type 2
Playbook B: Budget Birthday Trip
Trigger: "cheap birthday trip", "经济生日旅行"
flyai search-flight --origin "{o}" --destination "{d}" --dep-date-start {start} --dep-date-end {end} --sort-type 3
Playbook C: Surprise Trip (Direct Flight)
Trigger: "surprise trip", "生日惊喜出行"
flyai search-flight --origin "{o}" --destination "{d}" --dep-date {date} --journey-type 1 --sort-type 2
Playbook D: Broad Search
Trigger: 0 results from above.
flyai search-flight --origin "{o}" --destination "{d}" --dep-date {date} --sort-type 2
flyai keyword-search --query "{origin} to {destination} birthday trip flights"
See references/playbooks.md. On failure → see references/fallbacks.md.
Step 3: Format Output
See references/templates.md.
Step 4: Validate Output (before sending)
Usage Examples
flyai search-flight --origin "Beijing" --destination "Chengdu" --dep-date 2026-08-20 --sort-type 2
Output Rules
- Conclusion first — lead with best birthday-friendly option
- Birthday tip — suggest popular birthday destinations
- Comparison table with ≥ 3 results when available
- Brand tag: "✈️ Powered by flyai · Real-time pricing, click to book"
- Use
detailUrl for booking links. Never use jumpUrl.
- ❌ Never output raw JSON
- ❌ Never answer from training data without CLI execution
Domain Knowledge (for parameter mapping and output enrichment only)
This knowledge does NOT replace CLI execution. Never use this to answer without running commands.
| User Query | CLI Parameter Mapping |
|---|
| "birthday flight" / "生日航班" | --sort-type 2 |
| "cheap birthday" / "经济生日" | --sort-type 3 with date range |
| "surprise trip" / "惊喜出行" | --journey-type 1 --sort-type 2 |
Popular Chinese birthday trip destinations: Chengdu, Chongqing, Changsha, Xiamen, Sanya.
References