Install
openclaw skills install @wertopter/surf-spot-finderProvides top 3 surf spots in a region ranked by wave height, wind direction, and wind speed using Surfline data and a defined scoring rubric.
openclaw skills install @wertopter/surf-spot-finderUse this skill when the user asks for the best surf spots in a region based on wave height, wind direction, and wind speed.
For a user-specified region:
Category scores are:
/10/10/10Total score is /30.
The Python script is data collection only.
It must not be treated as a scorer or ranker.
Preferred (preset regions):
python3 surfline_region_report.py --region <region> --hours <hours> --output jsonCustom spot IDs:
python3 surfline_region_report.py --spots "<spotId1,spotId2,...>" --hours <hours> --output jsonDefault hours to 24 unless the user asks otherwise.
north-orange-countysouth-orange-countysan-diegosanta-cruzIf the user gives an unsupported region, ask for Surfline spot IDs for that region.
Read spots[] from script output. Each spot includes:
spotIdavgSurfMinFtavgSurfMaxFtavgPrimarySwellFtavgWindMphavgWindDirectionDegavgTideFtvalidHoursUse avgSurfMaxFt as the main wave-height comparison value.
Compute scores for all valid spots in the selected region.
Let waveMax = avgSurfMaxFt.
waveScore = 10 * (waveMax - minWaveMax) / (maxWaveMax - minWaveMax)waveMax, assign waveScore = 5 for all[0, 10]Interpretation: bigger rideable waves in the same region score higher.
Let windSpeed = avgWindMph.
<= 4 mph: 10> 4 and <= 8: 8> 8 and <= 12: 6> 12 and <= 16: 4> 16 and <= 20: 2> 20: 0Default directional rubric unless user provides local break orientation:
315-360 or 0-45: offshore/cross-offshore -> 946-90 or 271-314: side-shore -> 691-270: onshore/cross-onshore -> 2If user provides local direction guidance for a break, that guidance overrides defaults.
totalScore = waveScore + windSpeedScore + windDirectionScore30Return only the top 3 spots sorted by totalScore descending.
For each ranked spot include:
/10 and avgSurfMaxFt/10 and avgWindDirectionDeg plus label/10 and avgWindMph/30After the list, include one short sentence naming the #1 recommendation.