check-spots
Validate spots.json for common issues including missing fields, invalid URLs, duplicate entries, and data consistency problems
When & Why to Use This Skill
This Claude skill automates the rigorous validation and quality assurance of JSON data files, specifically optimized for location-based datasets. It ensures data integrity by performing deep structural checks, verifying required fields, validating complex URL patterns (such as Windguru, Windfinder, and Google Maps), and identifying consistency issues like duplicates or malformed cardinal directions.
Use Cases
- Automating CI/CD data validation: Use this skill to automatically verify the integrity of JSON configuration or data files before deployment to prevent application crashes.
- Geographical data auditing: Detect typos in country names, validate GPS/Map URLs, and ensure cardinal directions (N, NE, E, etc.) follow standardized formats.
- External link maintenance: Periodically scan and validate specialized service URLs (like weather stations or webcams) to ensure they meet specific domain requirements.
- Localization parity checks: Ensure that translated data objects (e.g., English vs. Polish descriptions) maintain consistent fields and data types across the entire dataset.
- Duplicate entry detection: Identify redundant records based on unique identifiers like names or specific service IDs to maintain a lean and accurate database.
| 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