From kids-camp-planner
Builds gap-free summer camp schedules for Ontario families, covering weekdays from last school day to Labour Day using family profiles, school calendars, and camp research.
How this skill is triggered — by the user, by Claude, or both
Slash command
/kids-camp-planner:plan-summerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Locate research directory:** Read `.claude/kids-camp-planner.local.md` to get the `research_dir` path (default: `camp-research`). All user data paths below are relative to this directory. The family profile is at `<research_dir>/family-profile.md`.
Locate research directory: Read .claude/kids-camp-planner.local.md to get the research_dir path (default: camp-research). All user data paths below are relative to this directory. The family profile is at <research_dir>/family-profile.md.
Build a complete summer camp schedule covering every weekday from the last day of school through to the day before the new school year begins (typically the day after Labour Day in Ontario). Identify coverage gaps, match camps to children's ages and interests, respect budget and logistics constraints, and produce a visual schedule.
Read the family profile from <research_dir>/family-profile.md for school dates. If school dates are not specified in the profile, use the 3-Tier School Calendar Lookup:
Tier 1 - Check internal library first:
${CLAUDE_PLUGIN_ROOT}/skills/camp-planning/references/school-calendars/ for the family's school board/schoolTier 2 - Ask the user: If no internal data exists, ask: "I don't have [school] calendar data saved. Do you have the school calendar URL or PDF handy?"
Tier 3 - Web search: If the user doesn't have it, search for "[school board] school year calendar [year]"
${CLAUDE_PLUGIN_ROOT}/skills/camp-planning/references/school-calendars/pdfs/Check calendar staleness: After loading calendar data, extract the school year from the ## YYYY-YYYY School Year header. Parse the end year (e.g., 2026 from "2025-2026"). If the current date is after September 1 of that end year, warn: "Calendar data for [board] is from [year]. The current year may have different PA days and breaks. Would you like to search for updated calendar data?" If the user says yes, run the 3-Tier School Calendar Lookup to find updated data.
Multi-school families: If children attend different schools, determine the summer window per child. The coverage window starts on the earliest last-school-day and ends on the latest first-fall-day across all schools. On days when one child's school is still in session (or has already started), that child does not need camp coverage.
From the calendar data, determine:
Private school note: Private schools may have a shorter or longer summer than public schools depending on their start/end dates. Always use the actual school calendar dates, not the public board defaults. Pass the exact dates to the summer_dates.py script via --last-school-day and --first-fall-day.
Run the date calculator to determine the exact window:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/plan-summer/scripts/summer_dates.py \
--year 2025 \
--last-school-day 2025-06-26 \
--first-fall-day 2025-09-02
The script outputs: total weekdays, total weeks, and a week-by-week date range listing.
For day-by-day output, add the --output-days flag:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/plan-summer/scripts/summer_dates.py \
--year 2025 \
--last-school-day 2025-06-26 \
--first-fall-day 2025-09-02 \
--output-days
This adds a day-by-day listing showing each weekday with its week number and coverage status.
From the family profile, identify vacation and exclusion dates. Subtract these from the coverage window to determine weeks/days that need camp coverage.
Present to user:
Summer 2025 Coverage Needs:
- Total window: June 30 - August 29 (9 weeks)
- Vacation: July 14-18 (cottage), Aug 11-15 (camping)
- Weeks needing coverage: 7 weeks
- Days needing coverage: 35 weekdays
Check if provider files already exist in <research_dir>/providers/. If not, suggest using the research-camps skill or camp-researcher agent to find options.
For each child, filter providers by:
Create a week-by-week assignment considering:
Hard constraints (must satisfy):
Soft constraints (optimize for):
Day-by-day schedule format (primary):
# Summer 2025 Daily Schedule
| Date | Day | Emma's Camp | Emma Cost | Liam's Camp | Liam Cost | Daily Total | Notes |
|------|-----|-------------|-----------|-------------|-----------|-------------|-------|
| 2025-06-30 | Mon | YMCA Cedar Glen | $87 | YMCA Cedar Glen | $87 | $174 | Week 1 |
| 2025-07-01 | Tue | YMCA Cedar Glen | $87 | YMCA Cedar Glen | $87 | $174 | |
| ... | ... | ... | ... | ... | ... | ... | ... |
Weekly summary format (derived from daily):
# Summer 2025 Weekly Summary
| Week | Dates | Child 1 | Child 2 | Notes |
|------|-------|---------|---------|-------|
| 1 | Jun 30 - Jul 4 | YMCA Day Camp | YMCA Day Camp | Sibling discount |
| 2 | Jul 7 - Jul 11 | City Swim Camp | City Art Camp | Different interests |
| 3 | Jul 14 - Jul 18 | VACATION | VACATION | Cottage trip |
| ... | ... | ... | ... | ... |
The day-by-day schedule is the primary format and source of truth. Weekly summaries are derived from it. See ${CLAUDE_PLUGIN_ROOT}/examples/sample-annual-schedule.md for a full-year example.
After building the initial schedule, check for:
Flag issues clearly and suggest alternatives.
Create or update:
<research_dir>/summer-YYYY/schedule.md - The week-by-week schedule table<research_dir>/summer-YYYY/budget.md - Budget summary (use budget-optimization skill)<research_dir>/providers/ for any new providers identifiedSummarize the plan for the user:
scripts/summer_dates.py - Calculate summer coverage window, weekday counts, and week-by-week date ranges given school year boundaries. Use --output-days for day-by-day listing with week numbers.npx claudepluginhub reggiechan74/cc-plugins --plugin kids-camp-plannerCreates sustainable multi-month travel plans with budgeting, visa mapping, anchor city selection, and remote work logistics.
Assists with event concept development, logistics planning, vendor coordination, budget management, and timeline creation for event planners.
Designs Montessori-style uninterrupted work cycles with choice-based activities structured within a realistic time block. Includes materials rotation, observation protocols, and transition management.