date-night

TotalClaw 作者 totalclaw

您的 AI 约会之夜礼宾 — 计划、预订和协调整个晚上 通过浏览器自动化输出。说“计划一个约会之夜”,它会处理所有事情: 餐厅预订(OpenTable、Resy)、电影票(Fandango、Megaplex、AMC)、 带有价格比较的活动门票(SeatGeek、Ticketmaster、StubHub)、天气检查、 行驶时间估计、预算总计、日历事件和合作伙伴通知。 可配置的饮食偏好、育儿提醒、最喜欢的剧院以及 保姆费率预算。第一次运行会进行友好的入职培训 — 之后,只需告诉它你想要什么样的夜晚。 触发因素:约会之夜、晚餐预订、预订餐桌、OpenTable、Resy、查找餐厅、 电影票、正在播放的节目、音乐会门票、体育赛事门票、我附近的活动、 晚餐和电影、计划约会、约会想法、取消预订、修改预订、 重新配置约会之夜首选项。

安装 / 下载方式

TotalClaw CLI推荐
totalclaw install totalclaw:totalclaw~tdavis009-date-night
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Atotalclaw~tdavis009-date-night/file -o tdavis009-date-night.md
## 概述(中文)

您的 AI 约会之夜礼宾 — 计划、预订和协调整个晚上
通过浏览器自动化输出。说“计划一个约会之夜”,它会处理所有事情:
餐厅预订(OpenTable、Resy)、电影票(Fandango、Megaplex、AMC)、
带有价格比较的活动门票(SeatGeek、Ticketmaster、StubHub)、天气检查、
行驶时间估计、预算总计、日历事件和合作伙伴通知。
可配置的饮食偏好、育儿提醒、最喜欢的剧院以及
保姆费率预算。第一次运行会进行友好的入职培训 —
之后,只需告诉它你想要什么样的夜晚。
触发因素:约会之夜、晚餐预订、预订餐桌、OpenTable、Resy、查找餐厅、
电影票、正在播放的节目、音乐会门票、体育赛事门票、我附近的活动、
晚餐和电影、计划约会、约会想法、取消预订、修改预订、
重新配置约会之夜首选项。

## 原文

# Date Night Skill (Published)

End-to-end date night planning: restaurants, movies, events, logistics, and notifications. Powered by `playwright-cli` browser automation.

---

## User Preferences

This skill uses `~/.openclaw/skills/date-night/config.json`. **Run onboarding on first use** (see below). After that, load config silently at the start of every session.

```bash
cat ~/.openclaw/skills/date-night/config.json 2>/dev/null
```

Config schema:
```json
{
  "name": "string",
  "first_name": "string",
  "last_name": "string",
  "user_email": "string",
  "user_phone": "string (digits only, e.g. 8015550155)",
  "partner": "string | null",
  "notify_channel": "iMessage | Telegram | Discord | Signal | SMS",
  "dietary": ["no alcohol", "vegetarian", "..."],
  "has_children": false,
  "children_count": 0,
  "children_ages": "string | null",
  "location": "City, ST",
  "zip": "00000",
  "preferred_theater": "string | null",
  "babysitter_rate": 18,
  "calendar_tool": "gog | gcal | ical",
  "onboarded_at": "ISO timestamp"
}
```

**PII note:** `user_email`, `user_phone`, `first_name`, and `last_name` are used to auto-fill reservation and ticket forms. They are stored locally in `config.json` and never transmitted except to the booking site during form submission.

---

## First Run Onboarding

**Check at every skill invocation:**

```bash
CONFIG=~/.openclaw/skills/date-night/config.json
if [ ! -f "$CONFIG" ]; then
  echo "ONBOARDING_NEEDED"
fi
```

If `ONBOARDING_NEEDED`: run the onboarding flow **before** doing anything else.

### Onboarding Flow

Ask questions **one at a time**, conversationally. This is a date night skill — make it feel warm and fun, not like filling out a DMV form.

**Opening:**
> "Hey! Looks like it's your first time using the Date Night skill — exciting. Let me grab a few quick things so I can make it feel personal. Won't take long."

**Question sequence** (ask naturally, wait for each answer):

1. **Name:**
   > "First — what's your name?"
   — Collect first name and last name (needed for reservation forms).

2. **Email & Phone:**
   > "What email and phone number should I use for reservations? These go directly into booking forms — I store them locally and nowhere else."

3. **Partner:**
   > "Planning these with a partner, or flying solo? (Solo date nights are completely valid.)"
   — If partner: "What's their name?"

3. **Partner notification:**
   > "What's the best way to reach {partner}? Like, if I wanted to send them a heads-up about a reservation — iMessage, Telegram, Signal, Discord, something else?"
   — Skip if solo.

4. **Dietary / lifestyle:**
   > "Any food preferences or restrictions I should know about? Things like no alcohol, vegetarian, gluten-free, shellfish allergy — or just 'none, we eat everything'?"

5. **Kids:**
   > "Do you have kids at home? (I ask because I'll remind you about childcare after every booking.)"
   — If yes: "How many, and roughly what ages?"

6. **Location:**
   > "What city or zip code are you in? I'll use this for finding nearby restaurants, theaters, and venues."

7. **Theater preference (optional):**
   > "Any favorite movie theater chain, or a go-to theater near you? I can default to that when searching showtimes. (Skip if you don't have one.)"

8. **Babysitter rate (optional, only if has_children):**
   > "What's your babysitter rate — roughly? I use it for budget estimates. Default is $18/hr if you're not sure."

9. **Calendar tool:**
   > "Last one — how do you manage your calendar? I can add events automatically. Options: `gog` (Google), `gcal`, `ical`, or tell me what you use."

**Closing:**
> "Perfect — you're all set! 🎉 Just say 'plan a date night,' 'find us a restaurant,' or 'get us tickets' anytime. I've got the rest."

### Save Config

After collecting all answers, write the file:

```bash
mkdir -p ~/.openclaw/skills/date-night
cat > ~/.openclaw/skills/date-night/config.json << 'EOF'
{
  "name": "{name}",
  "first_name": "{first_name}",
  "last_name": "{last_name}",
  "user_email": "{email}",
  "user_phone": "{phone_digits}",
  "partner": "{partner_or_null}",
  "notify_channel": "{channel}",
  "dietary": ["{pref1}", "{pref2}"],
  "has_children": {true|false},
  "children_count": {N},
  "children_ages": "{ages_or_null}",
  "location": "{City, ST}",
  "zip": "{zip}",
  "preferred_theater": "{theater_or_null}",
  "babysitter_rate": {rate},
  "calendar_tool": "{tool}",
  "onboarded_at": "{ISO_TIMESTAMP}"
}
EOF
```

### Applying Config Throughout the Skill

After loading config, substitute into all references:

| Config field | Used in |
|-------------|---------|
| `first_name` / `last_name` | Auto-fill reservation and ticket forms |
| `user_email` | Auto-fill booking forms, account lookups |
| `user_phone` | Auto-fill booking forms, SMS verification |
| `dietary` | Restaurant recommendations (filter per preferences) |
| `location` / `zip` | All nearby searches, drive time estimates |
| `partner` | Notification drafts, calendar events |
| `notify_channel` | How to send partner notifications |
| `has_children` | Childcare prompt after every booking |
| `babysitter_rate` | Budget estimates |
| `preferred_theater` | Default theater for movie searches |
| `calendar_tool` | All calendar event creation commands |

**Dietary preference enforcement:**
If `dietary` includes `"no alcohol"`: never highlight wine lists, cocktail programs, bar scenes, or alcohol features when recommending restaurants or events. Focus on food, ambiance, service.

---

## Reconfigure

If user says **"update my date night preferences"**, **"reconfigure date night"**, or **"change my date night settings"**:

```bash
# Back up existing config
cp ~/.openclaw/skills/date-night/config.json \
   ~/.openclaw/skills/date-night/config.backup.json 2>/dev/null || true
```

Then re-run the onboarding flow with current values shown as defaults:
> "Sure — let's update your preferences. I'll show what you have now and you can change anything. Hit Enter to keep the current value."

After re-running, overwrite config.json. Confirm:
> "Updated! Changes are live for the next date night."

---

## Requirements

### External Binaries (must be installed separately)

| Binary | Install | Required? |
|--------|---------|-----------|
| `playwright-cli` | `npm install -g @playwright/cli@latest` | **Yes** |
| Chromium | `npx playwright install chromium` | **Yes** (used by playwright-cli) |
| `goplaces` | `brew install steipete/tap/goplaces` | Optional — enhanced restaurant search |

PATH setup: `export PATH="$HOME/.npm-global/bin:$PATH"`

### Environment Variables

| Variable | Purpose | Required? |
|----------|---------|-----------|
| `GOOGLE_PLACES_API_KEY` | Google Places API for `goplaces` CLI | Only if using `goplaces` |

### OpenClaw Built-in Capabilities Used

These are **standard OpenClaw agent tools** — not external dependencies. They require no separate installation; they are available to any OpenClaw agent with the appropriate tool policies enabled.

| OpenClaw Tool | Purpose in This Skill |
|---------------|----------------------|
| `web_search` | Find restaurants, events, movies, reviews (public web) |
| `web_fetch` | Extract menus, reviews, showtimes from URLs (public web) |
| `message` (send) | Draft partner notifications — **always shown for approval before sending** |
| Calendar skills (`gog`/`ical`) | Create calendar events after booking |
| SMS/iMessage skill (`imsg`) | Retrieve booking verification codes (see Sensitive Access below) |

**No additional credentials or API tokens are needed** for these built-in tools — they use whatever channe