Afrexai Brand Strategy
Brand Strategy Engine
Fetch surf-relevant ocean conditions from Stormglass by spot name or coordinates, including current snapshot and 1-3 day forecast windows with tides, gusts, and water temperature. Use when users ask for surf reports, wave or swell conditions, tide timing, wind, gusts, or water temperature for a beach or surf spot.
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
SkillHub CLI
skillhub install dgorissen/stormglassInspect the source and compatibility requirements, then follow its installation steps.
Give your agent the source link and ask it to inspect instructions and dependencies before explaining the installation steps.
Produce machine-readable surf condition data for cron-driven agent pipelines.
This skill resolves a surf spot name with Google Geocoding (or uses direct coordinates), queries Stormglass, and returns a stable JSON payload for downstream interpretation/rendering.
Provide exactly one location mode:
--location "Spot name" (optional country/region in string), or--lat <float> --lon <float>
Optional controls:
--horizon now|24h|48h|72h (default 72h)--output json|pretty (default json, recommended for automation)--source <comma-separated provider list>
--mock (offline deterministic data; useful for tests)STORMGLASS_API_KEY for Stormglass requestsGOOGLE_GEOCODING_API_KEY optional for --location (if absent, script falls back to OpenStreetMap Nominatim)In --mock mode, no API keys are required.
| Mode | STORMGLASS_API_KEY |
GOOGLE_GEOCODING_API_KEY |
|---|---|---|
--mock |
not required | not required |
live --lat/--lon |
required | not required |
live --location with Google |
required | optional (preferred when set) |
live --location with OSM fallback |
required | not required |
Primary credential is STORMGLASS_API_KEY.
JSON output for cron:
python scripts/surf_report.py --location "Highcliffe Beach" --horizon 72h --output json
Direct coordinates:
python scripts/surf_report.py --lat 50.735 --lon -1.705 --horizon 24h --output json
Offline test run:
python scripts/surf_report.py --location "Highcliffe Beach" --horizon now --mock --output json
Top-level keys are stable:
meta: request metadata, timestamps, input mode, optional warningslocation: resolved place details and coordinatesnow: instantaneous surf-relevant metricsforecast: horizon summaries and best windowstides: tide extrem...These signals come from indexed source analysis and may lag behind changes. Check the current source files.
An OpenClaw-friendly surf data skill that fetches current and 1-3 day ocean forecasts from Stormglass, including:
It supports querying by:
--location, with geocoding), or--lat + --lon).SKILL.md - skill contract and agent handoff guidancescripts/surf_report.py - main CLIscripts/test_surf_report.py - CLI test runnerscripts/normalize_surf_data.py - optional schema normalizerexamples.md - practical command/pipeline examplesreference.md - API mapping, schema, and behavior detailsSTORMGLASS_API_KEY - required for live Stormglass requestsGOOGLE_GEOCODING_API_KEY - optional; used when present for --location
| Mode | STORMGLASS_API_KEY |
GOOGLE_GEOCODING_API_KEY |
|---|---|---|
--mock (offline tests) |
not required | not required |
live with --lat/--lon |
required | not required |
live with --location + Google geocoder |
required | optional (preferred when set) |
live with --location + OSM fallback |
required | not required |
Primary credential for this skill is STORMGLASS_API_KEY.
From repository root:
# 1) Offline smoke test (no keys required)
python3 scripts/surf_report.py --location "Highcliffe Beach" --horizon now --mock --output pretty
# 2) Live request by coordinates (Stormglass key required)
export STORMGLASS_API_KEY="..."
python3 scripts/surf_report.py --lat 50.735 --lon -1.705 --horizon 24h --output json
# 3) Live request by location (Google optional; OSM fallback if missing)
python3 scripts/surf_report.py --location "Highcliffe Beach" --ho...
# Stormglass Surf Skill ## Purpose Produce machine-readable surf condition data for cron-driven agent pipelines. This skill resolves a surf spot name with Google Geocoding (or uses direct coordinates), queries Stormglass, and returns a stable JSON payload for downstream interpretation/rendering. ## Inputs Provide exactly one location mode: - `--location "Spot name"` (optional country/region in string), or - `--lat <float> --lon <float>` Optional controls: - `--horizon now|24h|48h|72h` (default `72h`) - `--output json|pretty` (default `json`, recommended for automation) - `--source <comma-separated provider list>` - `--mock` (offline deterministic data; useful for tests) ## Required Environment Variables - `STORMGLASS_API_KEY` for Stormglass requests - `GOOGLE_GEOCODING_API_KEY` optional for `--location` (if absent, script falls back to OpenStreetMap Nominatim) In `--mock` mode, no API keys are required. ### Credential Matrix | Mode | `STORMGLASS_API_KEY` | `GOOGLE_GEOCODING_API_KEY` | |---|---|---| | `--mock` | not required | not required | | live `--lat/--lon` | required | not required | | live `--location` with Google | required | optional (preferred when set) | | live `--location` with OSM fallback | required | not required | Primary credential is `STORMGLASS_API_KEY`. ## Execution Commands JSON output for cron: ```bash python scripts/surf_report.py --location "Highcliffe Beach" --horizon 72h --output json ``` Direct coordinates: ```bash python scripts/surf_report.py --lat 50.735 --lon -1.705 --horizon 24h --output json ``` Offline test run: ```bash python scripts/surf_report.py --location "Highcliffe Beach" --horizon now --mock --output json ``` ## Output Contract (JSON-first) Top-level keys are stable: - `meta`: request metadata, timestamps, input mode, optional warnings - `location`: resolved place details and coordinates - `now`: instantaneous surf-relevant metrics - `forecast`: horizon summaries and best windows - `tides`: tide extrem...
# Stormglass Surf Skill An OpenClaw-friendly surf data skill that fetches current and 1-3 day ocean forecasts from Stormglass, including: - wave height - swell height/period/direction - wind speed/direction - wind gusts - water temperature - high/low tide extremes It supports querying by: - surf spot name (`--location`, with geocoding), or - direct coordinates (`--lat` + `--lon`). ## Project Layout - `SKILL.md` - skill contract and agent handoff guidance - `scripts/surf_report.py` - main CLI - `scripts/test_surf_report.py` - CLI test runner - `scripts/normalize_surf_data.py` - optional schema normalizer - `examples.md` - practical command/pipeline examples - `reference.md` - API mapping, schema, and behavior details ## Requirements - Python 3.10+ - Stormglass API key for non-mock runs - Google Geocoding key optional (if absent, location mode falls back to OpenStreetMap Nominatim) ## Environment Variables - `STORMGLASS_API_KEY` - required for live Stormglass requests - `GOOGLE_GEOCODING_API_KEY` - optional; used when present for `--location` ### Credential Matrix | Mode | `STORMGLASS_API_KEY` | `GOOGLE_GEOCODING_API_KEY` | |---|---|---| | `--mock` (offline tests) | not required | not required | | live with `--lat/--lon` | required | not required | | live with `--location` + Google geocoder | required | optional (preferred when set) | | live with `--location` + OSM fallback | required | not required | Primary credential for this skill is `STORMGLASS_API_KEY`. ## Quick Start From repository root: ```bash # 1) Offline smoke test (no keys required) python3 scripts/surf_report.py --location "Highcliffe Beach" --horizon now --mock --output pretty # 2) Live request by coordinates (Stormglass key required) export STORMGLASS_API_KEY="..." python3 scripts/surf_report.py --lat 50.735 --lon -1.705 --horizon 24h --output json # 3) Live request by location (Google optional; OSM fallback if missing) python3 scripts/surf_report.py --location "Highcliffe Beach" --ho...
Brand Strategy Engine
Energy Audit — Commercial Building Assessment
Environmental Compliance Manager
Token Economics Analyzer