From kids-camp-planner
This skill should be used when the user asks to "calculate commutes", "commute matrix", "travel times", "update commute data", "how far is each camp", "filter by commute", "commute analysis", "check commute times", "driving time to camps", "transit time to camps", or needs automated commute calculations between home, work, and camp locations. Requires a Geoapify API key in the family profile.
npx claudepluginhub reggiechan74/cc-plugins --plugin kids-camp-plannerThis skill uses the workspace's default tool permissions.
**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`. The API key is stored in `.claude/kids-camp-planner.local.md` under `apis.geoapify_api_key`.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Automates semantic versioning and release workflow for Claude Code plugins: bumps versions in package.json, marketplace.json, plugin.json; verifies builds; creates git tags, GitHub releases, changelogs.
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. The API key is stored in .claude/kids-camp-planner.local.md under apis.geoapify_api_key.
Calculate travel times between home, work, and camp locations using the Geoapify Route Matrix API. Models full commute chains (Home -> Camp -> Work in the morning, Work -> Camp -> Home in the evening) across multiple travel modes, and flags providers that exceed the family's maximum commute constraint.
.claude/kids-camp-planner.local.md under apis.geoapify_api_keyRead .claude/kids-camp-planner.local.md to extract:
research_dir — path to the research directoryapis.geoapify_api_key — API authenticationRead <research_dir>/family-profile.md to extract:
home_address — origin for all commute calculationsparents[].work_address — destinations for chain calculationsmax_commute_minutes — hard constraint thresholdIf no API key is found, inform the user:
To use automated commute calculations, you need a free Geoapify API key. Get one at https://myprojects.geoapify.com/ and add it to
.claude/kids-camp-planner.local.mdunderapis.geoapify_api_key, or run the setup skill to configure it.
Read all <research_dir>/providers/*.md files and extract:
**Location**: line in Basic Information section)Execute the commute calculator script:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/commute-matrix/scripts/commute_calculator.py \
--profile <research_dir>/family-profile.md \
--providers <research_dir>/providers/ \
--api-key <GEOAPIFY_API_KEY> \
--modes drive,transit \
--output-md <research_dir>/commute-report.md \
--output-json <research_dir>/commute-matrix.json \
--update-providers \
--geocache <research_dir>/geocache.json
Read the API key from .claude/kids-camp-planner.local.md (apis.geoapify_api_key) and pass it via --api-key.
Arguments:
--profile: Path to family profile (reads home address, work addresses, max commute)--providers: Directory containing provider markdown files--api-key: Geoapify API key (read from .claude/kids-camp-planner.local.md)--modes: Comma-separated travel modes: drive, transit, walk, bicycle (default: drive,transit)--output-md: Path for commute report markdown--output-json: Path for structured JSON output (consumed by schedule-optimizer)--update-providers: Flag to update provider files' Distance & Commute section--geocache: Path to geocoding cache file (avoids re-geocoding known addresses)Replace <research_dir> with the actual research directory path from the thin config, and <GEOAPIFY_API_KEY> with the actual key value.
After the script runs, present the user with:
max_commute_minutesIf --update-providers was used, the script splits each provider's Distance & Commute section into:
The computed subsection is auto-updated on each run; manual data is preserved.
<research_dir>/commute-report.md)Human-readable markdown with:
<research_dir>/commute-matrix.json)Structured data consumed by the schedule-optimizer agent:
exceeds_max flag for constraint filteringbest_mode and best_chain_minutes for quick optimization<research_dir>/geocache.json)Caches geocoding results to avoid redundant API calls. Keyed by normalized (lowercased, stripped) address. Safe to delete to force re-geocoding.
<research_dir>/commute-matrix.json to apply commute constraints and preferencesgeoapify_api_key under apis: in .claude/kids-camp-planner.local.md<research_dir>/geocache.json to force re-geocoding, then re-run