| name | check-spots |
| description | Validate spots.json for common issues including missing fields, invalid URLs, duplicate entries, and data consistency problems |
Check Spots Validation Skill
Validate the src/main/resources/spots.json file for common issues.
Instructions
Read the spots.json file and perform the following validations. Report all issues found, grouped by category.
1. Structure Validation
- Verify valid JSON syntax
- Ensure root is an array
- Each spot must be an object
2. Required Fields Check
For each spot, verify these fields exist and are non-empty strings:
namecountrylocationUrl
3. Windguru URL Validation
Each spot must have either:
windguruUrlwith valid windguru.cz URL (format:https://www.windguru.cz/<station_id>)- OR both
windguruUrlas empty string andwindguruFallbackUrlas valid windguru.cz URL
4. Optional URL Format Validation
These fields must be either empty strings or valid URLs:
windfinderUrl- should matchhttps://www.windfinder.com/*icmUrl- should matchhttps://www.meteo.pl/*webcamUrl- any valid URLlocationUrl- should be a Google Maps URL (goo.gl, maps.app.goo.gl, or google.com/maps)
5. SpotInfo Validation (English)
Each spot must have spotInfo object with:
type(non-empty string)bestWind(string with valid cardinal directions: N, NE, E, SE, S, SW, W, NW)waterTemp(format:X-Y°CorX°C)experience(non-empty string)launch(non-empty string)hazards(string, can be empty)season(non-empty string)description(non-empty string)llmComment(optional)
6. SpotInfoPL Validation (Polish)
Each spot must have spotInfoPL object with same fields as spotInfo (translations).
7. Duplicate Detection
Check for:
- Duplicate spot names
- Duplicate windguruUrl values (non-empty)
- Duplicate windguruFallbackUrl values
8. Country Name Consistency
Report any country names that appear only once (potential typos).
9. Cardinal Direction Validation
Validate bestWind contains only valid directions: N, NE, E, SE, S, SW, W, NW
Report any invalid direction values.
10. Temperature Format Validation
Validate waterTemp matches pattern like:
10-18°C(range)15°C(single value) Report any malformed temperature values.
Output Format
Report findings in this format:
## Spots.json Validation Report
### Summary
- Total spots: X
- Issues found: Y
- Spots with issues: Z
### Critical Issues (must fix)
- [Spot Name] Missing required field: fieldName
- [Spot Name] Invalid Windguru URL: url
### Warnings (should fix)
- [Spot Name] Empty optional field: fieldName
- Potential duplicate country: "Countri" (appears 1 time, did you mean "Country"?)
### Info
- Countries found: A, B, C
- Spots per country: A (X), B (Y), C (Z)
Running the Validation
- Read
src/main/resources/spots.json - Parse and validate each spot
- Collect all issues
- Generate the report
- Suggest fixes for critical issues