Experience Planner
Convert a loose desire for something to do into a short, executable plan with live-verified options, local momentum signals, estimated spend, travel time, and booking notes.
Prefer real, current options over generic idea lists. Use live web browsing for time-sensitive facts and do not present results as current unless you verified them in-session.
Skill Summary
| Field |
Value |
| Name |
experience-planner |
| Description |
Convert vague leisure requests into executable, location-aware activity plans with live web verification and local trend checks. |
| Metadata |
history_path=.experience-planner/history.json; primary_script=scripts/activity_history.py; requires_live_research=true; requires_web_browsing=true; output_sections=assumptions,recommended plan,booking notes,backups,history update |
| Tags |
planning, leisure, local-activities, itinerary, weather-aware, budget-aware, history-aware, trend-aware, live-research |
Workflow
Lock the planning window.
Translate phrases like tonight, after work, or this weekend into absolute dates and times in the user's locale. State assumptions briefly when the user is vague.
Load or create history.
Use the bundled script to create or inspect a local history file before searching. Keep the file in the current workspace, not inside the skill directory.
python3 <path-to-skill>/scripts/activity_history.py ensure
python3 <path-to-skill>/scripts/activity_history.py summary --limit 20
python3 <path-to-skill>/scripts/activity_history.py recent --limit 10
Default history path: .experience-planner/history.json
- Gather the minimum planning context.
Collect only the signals that materially affect the recommendation:
- starting area or neighborhood
- social context:
solo, partner, friends, family, team
- budget ceiling or price sensitivity
- transport mode and max travel time
- indoor or outdoor preference and weather tolerance
- energy level, pace, and vibe
- dietary, accessibility, age, or hard schedule constraints
- willingness to book ahead versus walk-in only
If key context is missing, ask at most one or two short questions. Otherwise, make a reasonable assumption and say so.
Research live options and area trends.
Use web browsing for every time-sensitive recommendation. At minimum, verify the planning window against current weather, opening hours, event schedules, class times, ticket availability, and booking links. Also gather local momentum signals such as highly rated or busy area spots, recent openings, current event buzz, and recent neighborhood coverage. Prefer the workflow in live-research.md. Gather roughly five to ten candidates across a few categories before narrowing.
Score candidates.
Use planning-rubric.md. Reject candidates that are closed, sold out, clearly outside budget, or too far away for the available window. Reward fit, proximity, novelty, and reliability.
Build a small itinerary.
Produce one primary plan and one or two backup plans. Make the primary plan feel executable, not theoretical:
- main activity
- food or drink stop that fits the same area and budget
- optional follow-up if time and energy remain
For each plan, include:
- expected start time and duration
- travel time between legs
- estimated total cost
- why it fits this user and this moment
- what made it a strong live pick right now, for example current availability, popularity, or recency
- booking or walk-in guidance
- source links for anything time-sensitive or spend-related
If browsing or internet access is unavailable, say so clearly and do not imply the results are live. Offer either:
- a generic non-live plan based on stable knowledge, or
- a request for the user to enable browsing and rerun
- Close the loop.
When the user reports what they did or whether they liked it, record it so future recommendations avoid repetition and improve variety.
python3 <path-to-skill>/scripts/activity_history.py record \
--title "Bouldering at Boulder Planet" \
--date 2026-03-15 \
--companions friends \
--category fitness \
--cost 32 \
--rating 4 \
--tag indoor \
--tag active \
--notes "Good difficulty spread; crowded after 8pm"
Planning Rules
- Prefer concrete nearby options that can be acted on now over broad idea dumps.
- Use live web research instead of memory for hours, schedules, pricing, weather, and availability.
- Treat "popular nearby" or "what's trending" as a required search dimension whenever the user wants the best current options, not as an optional extra.
- Mix novelty with reliability. Include at least one low-friction option when the user sounds indecisive or last-minute.
- Penalize recent repeats in the same category, venue, or neighborhood unless the user explicitly asks for them.
- Prefer indoor, bookable, or low-weather-risk plans when the forecast is poor.
- Prefer low-coordination plans when the user's request is vague and immediate.
- Widen the radius or switch categories before giving up on a thin search result set.
- Do not recommend a time-sensitive venue or event from a single weak source when a stronger primary source is available.
Output Shape
Keep the final answer short and actionable:
Assumptions
Only include this if you had to infer missing context.
Recommended plan
Give the itinerary in order with times, travel, cost, and one-sentence rationale.
Booking notes
Call out reservations, ticket links, or opening-hour constraints.
Backups
Give one or two credible alternatives, not a long list.
History update
If the user reports the outcome, record it and mention the logged takeaway that will affect future recommendations.
Always include source links for the primary plan and any booking-critical backup.
Reference Map
- planning-rubric.md: scoring dimensions, search strategy, and itinerary heuristics
- live-research.md: required live-search workflow, source priority, freshness checks, and fallback behavior
- history-schema.md: local history format, storage rules, and script behavior
1---2name: experience-planner3description: Convert vague real-world leisure requests into concrete activity plans. Use when the user says they are bored, asks what to do tonight or this weekend, wants date ideas, solo outings, hangouts, nearby classes, or short itineraries that should account for location, time, weather, budget, companions, travel time, and prior activity history. Use live web research to verify current venues, events, weather, and local trend signals before recommending a small executable plan, and optionally record the outcome and feedback in a local history file.4---56# Experience Planner78Convert a loose desire for something to do into a short, executable plan with live-verified options, local momentum signals, estimated spend, travel time, and booking notes.910Prefer real, current options over generic idea lists. Use live web browsing for time-sensitive facts and do not present results as current unless you verified them in-session.1112## Skill Summary1314| Field | Value |15| --- | --- |16| Name | `experience-planner` |17| Description | Convert vague leisure requests into executable, location-aware activity plans with live web verification and local trend checks. |18| Metadata | `history_path=.experience-planner/history.json`; `primary_script=scripts/activity_history.py`; `requires_live_research=true`; `requires_web_browsing=true`; `output_sections=assumptions,recommended plan,booking notes,backups,history update` |19| Tags | `planning`, `leisure`, `local-activities`, `itinerary`, `weather-aware`, `budget-aware`, `history-aware`, `trend-aware`, `live-research` |2021## Workflow22231. Lock the planning window.24Translate phrases like `tonight`, `after work`, or `this weekend` into absolute dates and times in the user's locale. State assumptions briefly when the user is vague.25262. Load or create history.27Use the bundled script to create or inspect a local history file before searching. Keep the file in the current workspace, not inside the skill directory.2829```bash30python3 <path-to-skill>/scripts/activity_history.py ensure31python3 <path-to-skill>/scripts/activity_history.py summary --limit 2032python3 <path-to-skill>/scripts/activity_history.py recent --limit 1033```3435Default history path: `.experience-planner/history.json`36373. Gather the minimum planning context.38Collect only the signals that materially affect the recommendation:3940- starting area or neighborhood41- social context: `solo`, `partner`, `friends`, `family`, `team`42- budget ceiling or price sensitivity43- transport mode and max travel time44- indoor or outdoor preference and weather tolerance45- energy level, pace, and vibe46- dietary, accessibility, age, or hard schedule constraints47- willingness to book ahead versus walk-in only4849If key context is missing, ask at most one or two short questions. Otherwise, make a reasonable assumption and say so.50514. Research live options and area trends.52Use web browsing for every time-sensitive recommendation. At minimum, verify the planning window against current weather, opening hours, event schedules, class times, ticket availability, and booking links. Also gather local momentum signals such as highly rated or busy area spots, recent openings, current event buzz, and recent neighborhood coverage. Prefer the workflow in [live-research.md](references/live-research.md). Gather roughly five to ten candidates across a few categories before narrowing.53545. Score candidates.55Use [planning-rubric.md](references/planning-rubric.md). Reject candidates that are closed, sold out, clearly outside budget, or too far away for the available window. Reward fit, proximity, novelty, and reliability.56576. Build a small itinerary.58Produce one primary plan and one or two backup plans. Make the primary plan feel executable, not theoretical:5960- main activity61- food or drink stop that fits the same area and budget62- optional follow-up if time and energy remain6364For each plan, include:6566- expected start time and duration67- travel time between legs68- estimated total cost69- why it fits this user and this moment70- what made it a strong live pick right now, for example current availability, popularity, or recency71- booking or walk-in guidance72- source links for anything time-sensitive or spend-related7374If browsing or internet access is unavailable, say so clearly and do not imply the results are live. Offer either:7576- a generic non-live plan based on stable knowledge, or77- a request for the user to enable browsing and rerun78797. Close the loop.80When the user reports what they did or whether they liked it, record it so future recommendations avoid repetition and improve variety.8182```bash83python3 <path-to-skill>/scripts/activity_history.py record \84 --title "Bouldering at Boulder Planet" \85 --date 2026-03-15 \86 --companions friends \87 --category fitness \88 --cost 32 \89 --rating 4 \90 --tag indoor \91 --tag active \92 --notes "Good difficulty spread; crowded after 8pm"93```9495## Planning Rules9697- Prefer concrete nearby options that can be acted on now over broad idea dumps.98- Use live web research instead of memory for hours, schedules, pricing, weather, and availability.99- Treat "popular nearby" or "what's trending" as a required search dimension whenever the user wants the best current options, not as an optional extra.100- Mix novelty with reliability. Include at least one low-friction option when the user sounds indecisive or last-minute.101- Penalize recent repeats in the same category, venue, or neighborhood unless the user explicitly asks for them.102- Prefer indoor, bookable, or low-weather-risk plans when the forecast is poor.103- Prefer low-coordination plans when the user's request is vague and immediate.104- Widen the radius or switch categories before giving up on a thin search result set.105- Do not recommend a time-sensitive venue or event from a single weak source when a stronger primary source is available.106107## Output Shape108109Keep the final answer short and actionable:1101111. `Assumptions`112Only include this if you had to infer missing context.1131142. `Recommended plan`115Give the itinerary in order with times, travel, cost, and one-sentence rationale.1161173. `Booking notes`118Call out reservations, ticket links, or opening-hour constraints.1191204. `Backups`121Give one or two credible alternatives, not a long list.1221235. `History update`124If the user reports the outcome, record it and mention the logged takeaway that will affect future recommendations.125126Always include source links for the primary plan and any booking-critical backup.127128## Reference Map129130- [planning-rubric.md](references/planning-rubric.md): scoring dimensions, search strategy, and itinerary heuristics131- [live-research.md](references/live-research.md): required live-search workflow, source priority, freshness checks, and fallback behavior132- [history-schema.md](references/history-schema.md): local history format, storage rules, and script behavior