surf-check

Surf forecast decision engine. Outputs surfable conditions for agent alerting.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "surf-check" with this command: npx skills add kevinmcnamee/surf-check

surf-check

Checks surf forecasts and tells you when conditions are worth paddling out.

Quick Start

cd {baseDir} && npm install
npm run check

Commands

Run from the skill directory:

cd {baseDir} && npm run check
CommandWhen to Use
npm run checkUser asks about surf conditions
npm run check:debugDebugging why a day did/didn't qualify
npm run check:jsonWhen you need structured data
npm run check:cronAutomated checks (cron job uses this)

Sample Output

🏄 **Surf Forecast Summary**

**Belmar (16th Ave)**
• Saturday: 2-3ft (Fair)

**Long Branch**
• Saturday: 2-3ft (Fair)

If nothing meets thresholds, output is empty (cron mode) or shows "No surfable conditions in the forecast."

Decision Thresholds

Days OutMinimum RatingWhy
4+ daysFair-Good+Forecasts are fuzzy, need high confidence
1-3 daysFair+Sweet spot for planning
Day ofGood+ (before 8am)Only if it's actually firing

Wave height: 2-6ft (configured in src/types.ts)

Your Job

When conditions are surfable:

  1. Summarize naturally — "Looks like Saturday could be good at Belmar, 2-3ft and Fair conditions"
  2. Include the day and spot — user needs to know when and where
  3. Don't over-explain the ratings — surfers know what Fair/Good means

When user asks about surf:

  • Run npm run check and summarize the output
  • If nothing's showing up, check npm run check:debug to see why

Configuration

Default spots: Belmar (16th Ave), Long Branch (NJ)

To customize, create ~/.surf-check.json:

{
  "spots": [
    { "id": "5842041f4e65fad6a7708a01", "name": "My Local Break" }
  ],
  "waveMin": 2,
  "waveMax": 6
}

Find spot IDs from Surfline URLs:

https://www.surfline.com/surf-report/spot-name/5842041f4e65fad6a7708a01
                                              └── spot ID

OpenClaw Cron Integration

{
  "name": "surf-check",
  "schedule": { "kind": "cron", "expr": "0 */6 * * *", "tz": "America/New_York" },
  "payload": {
    "kind": "systemEvent",
    "text": "Run: cd {baseDir} && npm run check:cron"
  },
  "sessionTarget": "main"
}

When cron fires:

  • You receive output as a system event
  • Only new conditions are shown (state tracking prevents duplicates)
  • If output is empty, nothing qualified or already reported

Troubleshooting

No output from cron: Normal if nothing qualifies or already reported. Run npm run check:debug to see evaluation.

Reset state: rm {baseDir}/data/state.json to re-report all conditions.

Add a spot: Edit src/types.ts or use ~/.surf-check.json config.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

acn

Agent Collaboration Network — Register your agent, discover other agents by skill, route messages, manage subnets, and work on tasks. Use when joining ACN, f...

Registry SourceRecently Updated
Automation

Ocean Chat

OceanBus-powered P2P messaging, shared address book, 1v1 meetup negotiation, and conversation threading for AI agents. Use when users want to manage contacts...

Registry SourceRecently Updated
Automation

Remote Skill Test

Use when the user wants to test an agent skill on a remote jump host after updating it locally. Triggers on "test skill remotely", "remote test", "远程测试 skill...

Registry SourceRecently Updated
280Profile unavailable
Automation

Link Midjourney Instagram

Runs the linkmidjourneyinstagram automation — generate four Midjourney images in Chromium via Playwright, then post each PNG as its own Instagram web post wi...

Registry SourceRecently Updated
320Profile unavailable