Evaluate tennis vacation destinations with structured scoring and recommendations.
This skill uses web search to collect flight price information. No external tools or installations are required.
DimensionWeightKey MetricsTransportation25%Flight price, frequency, ground transportAccommodation25%Hotel price, rating, proximity to courtsWeather20%Temperature, precipitation, best seasonFacilities30%Court quality, fees, coaching availability
Custom Weights: If user has preferences, adjust weights as follows:
Transportation (交通可达性)
Accommodation (住宿条件)
Weather (天气适宜度)
Facilities (球场质量)
TypeCharacteristicsBest ForTrainingPro facilities, intensive atmosphereSerious playersResortLeisure vibe, integrated vacationFamilies/friendsScenicUnique views, Instagram-worthyShort tripsUrbanCity center, trendyBusiness travelers
Extract from user input:
信息收集原则:
When user provides a link (e.g., Xiaohongshu, Instagram):
If departure city unknown: Ask user or default to Shanghai (note in report).
Ask: "What's most important to you? (Choose up to 2)"
If skipped, use default 25% weights.
DimensionData SourceFallbackFlightsflyai CLI (if installed) for real-time pricesWebSearch for reference pricesHotelsBooking, TripAdvisorWebSearchWeatherHistorical climate data-CourtsBuilt-in database, web search-
注意:如果 flyai CLI 未安装,将使用 WebSearch 获取参考价格,并在报告中标注数据来源。
Priority: Use flyai CLI for real-time prices if available
Step 1: Check if flyai is installed
bash
which flyai
Step 2: If installed, query real-time flight prices
bash
flyai search-flight \
--origin "出发城市" \
--destination "目的地" \
--dep-date-start YYYY-MM-DD \
--dep-date-end YYYY-MM-DD \
--back-date-start YYYY-MM-DD \
--back-date-end YYYY-MM-DD \
--sort-type 3
Step 3: Parse results
Fallback: If flyai is not installed
Use WebSearch to get reference prices:
[出发城市]到[目的地]机票价格npm install -g @fly-ai/flyai-cli"Data Source Labels:
LabelConditionScoring Impactflyai实时flyai CLI executed successfullyFull score网络参考WebSearch used (flyai not installed)-1 point (max 8/10)待补充All methods failedMax 5/10
\\ Rules:**
Each dimension scored 0-10:
Final Score = (dimension_score weight)
Use report-template.md for full template.
For single destination: Use single-destination template For multiple destinations: Use comparison template
markdown
# Tennis Travel Rating Report
## [Destination]
> **一句话总结**:[简洁概括目的地核心优势和注意事项]
### Overall Score: [X.X]/10
**Rating**: [Highly Recommended/Recommended/etc.]
**Type**: [Training/Resort/Scenic/Urban]
### Dimension Scores
| Dimension | Score | Weight | Key Metric | 数据来源 |
|-----------|-------|--------|------------|----------|
| Transportation | X.X/10 | XX% | 往返机票 X,XXX起 | flyai实时/网络参考/待补充 |
| Accommodation | X.X/10 | XX% | XXX/晚 | Booking/Agoda/携程 |
| Weather | X.X/10 | XX% | 最佳季节: X-X月 | 历史气候数据 |
| Facilities | X.X/10 | XX% | 场地费 XXX/小时 | 酒店官网/实地调查 |
**数据来源标注说明:**
- **flyai实时**:使用Bash工具执行flyai命令获取的实时价格
- **网络参考价**:通过WebSearch获取的参考价格(非实时)
- **待补充**:无法获取数据,需要用户自行查询
### 1 交通可达性 (X.X/10)
**航班信息**
- 往返机票 X,XXX起
- 航空公司、转机情况等
**地面交通**
- 机场酒店/球场:约X小时车程
- [ 查看谷歌地图路线](https://www.google.com/maps/dir/机场名称/酒店或球场名称)
### 2 住宿条件 (X.X/10)
**酒店概况**
- **酒店名称**: [酒店名]
- **位置**: [具体位置描述]
- [ 在谷歌地图上查看](https://www.google.com/maps/search/酒店名+城市)
- 价格、评分等信息
### 3 天气适宜度 (X.X/10)
**最佳季节**: X-X月
- 温度、降水等分析
### 4 球场质量 (X.X/10)
**球场设施**
- **球场名称**: [球场名]
- **位置**: [具体位置描述]
- [ 在谷歌地图上查看](https://www.google.com/maps/search/球场名+城市)
- 场地类型、费用、预订方式等
### Highlights
- [Top strength]
- [Key consideration]
- [Best for: target audience]
### Budget Estimate (X天X晚)
| Item | Cost (参考价) |
|------|---------------|
| 往返机票 | X,XXX |
| 住宿 (X晚) | X,XXX |
| 球场费用 | XXX |
| 餐饮及其他 | X,XXX |
| **总计** | **X,XXX** |
*Generated: [Date] | Sources: [List]*
ALWAYS include this section at the end of every report:
markdown
---
### 价格查询建议
由于您的出行时间较灵活 / 距离计划出行还有[X天],建议先查询当前机票价格:
**我可以为您提供**:
- 一次性查询 [出发地] [目的地] 的当前航班价格
- 根据查询结果给出购票建议
- 推荐最佳购票时机
**需要我帮您查询当前价格吗?** 请告诉我您的预算上限(如:往返机票 X,XXX以内)。
触发条件(满足任一即需添加):
如果用户同意监控:
如果用户拒绝:正常结束,无需进一步操作
注意:本 skill 不创建自动后台监控任务。如需持续监控,请手动定期查询。
Quick reference for popular destinations:
Asia: Sanya Haitang Bay, Shanghai Qizhong, Tokyo Ariake, Bali Europe: Roland Garros, Wimbledon, Monte Carlo, Barcelona Americas: Indian Wells, Miami, Cancun Oceania: Melbourne Park, Gold Coast
For full database, see destinations.md.
Before generating report, verify:
必须确认:
MUST include price monitoring section in EVERY report when:
ALWAYS add at the END of the report, after the budget estimate section:
markdown
---
### 价格查询建议
由于您的出行时间较灵活 / 距离计划出行还有[X天],建议先查询当前机票价格:
**我可以为您提供**:
- 一次性查询 [出发地] [目的地] 的当前航班价格
- 根据查询结果给出购票建议
- 推荐最佳购票时机
**需要我帮您查询当前价格吗?** 请告诉我您的预算上限(如:往返机票 X,XXX以内)。
Ask for details:
Perform immediate price check (no automatic monitoring):
Confirm to user: markdown
**价格查询完成**
注意:此为一次性查询。如需持续关注,请定期手动查询或使用专业价格监控工具。
### If User Declines
Continue normally, no further action needed.
## Examples
**Example 1 - Basic query (flyai installed)**:
Input: "Evaluate Sanya for tennis trip from Shanghai in April"
Workflow:
1. Ask departure city Shanghai
2. Ask preferences User selects "Weather" and "Facilities"
3. **Check if flyai is installed** Yes
4. **Query real-time flights**:
bash
```bash
flyai search-flight --origin "上海" --destination "三亚" --dep-date-start 2025-04-01 --dep-date-end 2025-04-07 --back-date-start 2025-04-05 --back-date-end 2025-04-12 --sort-type 3
Example 1b - flyai not installed: Input: "Evaluate Sanya for tennis trip from Shanghai in April" Workflow: 1-2. Same as above 3. Check if flyai is installed No 4. Use WebSearch fallback:
Example 2 - Comparison: Input: "Compare Sanya vs Bali for tennis vacation" Output: Side-by-side comparison with recommendation
Example 3 - Custom weights (single priority): Input: "I care most about flight convenience" Workflow:
Example 4 - User provides Xiaohongshu link: Input: "我想去这里打球:96 【富士山人生球场!...】 https://www.xiaohongshu.com/..." Workflow:
Extract destination from text first:
Optionally attempt link access Failed (Xiaohongshu anti-scraping)
Confirm with user: "Detected you want to visit a court near Mt. Fuji (Shizuoka area). Default departure city: Shanghai. Is this correct?"
After user confirms, check flyai availability:
Generate report with clear data source labels Output: Complete report with transportation data (source clearly labeled)