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.
Calculates commute times between home, work, and camp locations to flag providers exceeding maximum travel constraints.
/plugin marketplace add reggiechan74/cc-plugins/plugin install kids-camp-planner@cc-pluginsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
scripts/commute_calculator.pyLocate 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-runExpert guidance for Next.js Cache Components and Partial Prerendering (PPR). **PROACTIVE ACTIVATION**: Use this skill automatically when working in Next.js projects that have `cacheComponents: true` in their next.config.ts/next.config.js. When this config is detected, proactively apply Cache Components patterns and best practices to all React Server Component implementations. **DETECTION**: At the start of a session in a Next.js project, check for `cacheComponents: true` in next.config. If enabled, this skill's patterns should guide all component authoring, data fetching, and caching decisions. **USE CASES**: Implementing 'use cache' directive, configuring cache lifetimes with cacheLife(), tagging cached data with cacheTag(), invalidating caches with updateTag()/revalidateTag(), optimizing static vs dynamic content boundaries, debugging cache issues, and reviewing Cache Component implementations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.