⚠️ 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 command 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.
Self-test: If your response contains no [Book](...) links, you violated this skill. Stop and re-execute.
Skill: top-attractions
Overview
Discover the most popular and highest-rated attractions in any city. Shows top-tier POIs with ticket prices, opening hours, and booking links.
When to Activate
User query contains:
- English: "things to do", "what to see", "attractions", "sightseeing"
- Chinese: "有什么好玩的", "景点推荐", "去哪玩", "旅游景点"
Do NOT activate for: specific type → see category-specific skills
Prerequisites
npm i -g @fly-ai/flyai-cli
Parameters
| Parameter | Required | Description |
|---|
--city-name | Yes | City name |
--keyword | No | Attraction name or keyword |
--poi-level | No | Rating 1-5 (5 = top tier) |
--category | No | --poi-level 5 |
Core Workflow — Single-command
Step 0: Environment Check (mandatory, never skip)
flyai --version
- ✅ Returns version → proceed to Step 1
- ❌
command not found →
npm i -g @fly-ai/flyai-cli
flyai --version
Still fails → STOP. Tell user to run npm i -g @fly-ai/flyai-cli manually. Do NOT continue. Do NOT use training data.
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: Top Rated
Trigger: "what to see", "有什么好玩的"
flyai search-poi --city-name "{city}" --poi-level 5
Output: Show top 5 by rating.
Playbook B: By Category
Trigger: "museums in Beijing"
flyai search-poi --city-name "{city}" --category "{cat}"
Output: Category-filtered top attractions.
Playbook C: For Kids
Trigger: "kid-friendly attractions"
flyai search-poi --city-name "{city}" --category "主题乐园"
flyai search-poi --city-name "{city}" --category "动物园"
Output: Family-oriented attractions.
See references/playbooks.md for all scenario playbooks.
On failure → see references/fallbacks.md.
Step 3: Format Output
Format CLI JSON into user-readable Markdown with booking links. See references/templates.md.
Step 4: Validate Output (before sending)
Any NO → re-execute from Step 2.
Usage Examples
flyai search-poi --city-name "Beijing" --poi-level 5
flyai search-poi --city-name "Shanghai" --category "博物馆"
Output Rules
- Conclusion first — lead with the key finding
- 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
- ❌ Never fabricate prices, hotel names, or attraction details
Domain Knowledge (for parameter mapping and output enrichment only)
This knowledge helps build correct CLI commands and enrich results.
It does NOT replace CLI execution. Never use this to answer without running commands.
Attraction tiers: poi-level 5 = must-see (top 10%), 4 = highly recommended, 3 = worth visiting. Book tickets online for 10-30% savings vs gate price. Many museums are free but require reservation. Peak hours: 10am-2pm; arrive early or late afternoon for fewer crowds.
References