data-validation
Skill from ksmuvva/Synthetic-data-generator
- Category: discovered
- Tags: github, community
- Version: 1.0.0
- Author: walid
- Downloads: 0
- Updated: 2025-11-22
Download the latest version (v1.0.0) from this page.
SKILL.md
# Data Validation Skill
## Description
Advanced data quality validation beyond basic statistical checks. Provides comprehensive validation of synthetic data against business rules, constraints, and quality standards.
## Purpose
This custom skill enhances the synthetic data generator with:
- Deep data quality assessment
- Business rule validation
- Constraint checking and enforcement
- Data integrity verification
- Quality scoring and recommendations
## When to Use
Use this skill when:
- Validating synthetic data quality
- Checking compliance with business rules
- Verifying data constraints are met
- Assessing data integrity and consistency
- Generating quality reports and recommendations
## Capabilities
### 1. Constraint Validation
- **Required Fields**: Verify all required fields are populated
- **Unique Constraints**: Check for uniqueness violations
- **Range Constraints**: Validate numeric ranges
- **Pattern Constraints**: Check string patterns (regex, formats)
- **Referential Integrity**: Verify foreign key relationships
### 2. Business Rule Validation
- **Field Dependencies**: Check dependent field logic
- **Conditional Rules**: Validate if-then-else business rules
- **Cross-Field Validation**: Verify relationships between fields
- **Domain Rules**: Check domain-specific constraints
- **Temporal Rules**: Validate date/time logic
### 3. Data Quality Checks
- **Completeness**: Check for missing or null values
- **Consistency**: Verify data consistency across records
- **Accuracy**: Validate data accuracy against expected patterns
- **Uniqueness**: Check for duplicate or redundant data
- **Validity**: Verify data validity against schemas
### 4. Statistical Validation
- **Distribution Matching**: Compare distributions with source
- **Variance Analysis**: Check variance levels
- **Outlier Detection**: Identify and flag outliers
- **Correlation Checks**: Verify expected correlations
- **Trend Analysis**: Validate temporal trends
## Usage Instructions
### Step 1: Prepare Validation Rules
```python
validation_rules = {
"constraints": {
"required_fields": ["customer_id", "email", "created_at"],
"unique_fields": ["customer_id", "email"],
"ranges": {
"age": {"min": 18, "max": 100},
"order_amount": {"min": 0, "max": 100000}
},
"patterns": {
"email": r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}#39;,
"phone": r'^\+?1?\d{9,15}#39;
}
},
"business_rules": [
{
"rule": "if premium_customer then min_order_amount >= 100",
"severity": "error"
},
{
"rule": "if age < 18 then no_alcohol_purchase",
"severity": "critical"
}
]
}
```
### Step 2: Run Validation
```python
# The validate_quality tool automatically uses this skill
validation_report = await validate_quality_tool({
"session_id": session_id,
"original_data_path": pattern_file_path,
"validation_rules": validation_rules # Optional custom rules
})
```
### Step 3: Review Results
```python
# Check validation results
if validation_report["passed"]:
print(f"✅ Validation passed: {validation_report['overall_score']:.1%}")
else:
print(f"❌ Validation failed: {validation_report['overall_score']:.1%}")
for issue in validation_report["issues"]:
print(f" - {issue['description']} (severity: {issue['severity']})")
```
## Validation Workflow
1. **Load Data**: Load generated synthetic data
2. **Apply Constraints**: Check all constraint violations
3. **Validate Business Rules**: Execute business rule checks
4. **Statistical Analysis**: Compare with source patterns
5. **Quality Scoring**: Calculate overall quality score
6. **Generate Report**: Create detailed validation report
7. **Provide Recommendations**: Suggest improvements
## Quality Metrics
### Overall Quality Score
```
Overall Score = weighted_average([
constraint_compliance * 0.30,
business_rule_compliance * 0.25,
statistical_similarity * 0.20,
data_completeness * 0.15,
data_consistency * 0.10
])
```
### Pass Criteria
- **Overall Score**: ≥ 85%
- **Constraint Compliance**: 100% (no violations)
- **Business Rule Compliance**: ≥ 95%
- **Statistical Similarity**: ≥ 80%
- **No Critical Issues**: Zero critical severity violations
## Integration with Existing Tools
This skill enhances these existing tools:
- **validate_quality**: Adds advanced validation capabilities
- **generate_with_modes**: Validates during generation
- **deep_analyze_pattern**: Extracts validation rules from patterns
- **export_data**: Pre-export validation checks
## Configuration
### Default Settings
```yaml
data_validation:
strict_mode: false
fail_on_warning: false
max_violations_to_report: 100
quality_threshold: 0.85
check_data_leakage: true
check_pii_exposure: true
```
### Severity Levels
- **Critical**: Must fix, blocks export
- **Error**: Should fix, degrades quality
- **Warning**: Nice to fix, minor quality impact
- **Info**: Informational, no action needed
## Best Practices
1. **Define Clear Rules**: Specify validation rules upfront
2. **Use Severity Levels**: Prioritize issues by severity
3. **Iterative Validation**: Validate during and after generation
4. **Review Reports**: Carefully review validation reports
5. **Fix Critical Issues**: Always resolve critical issues before export
6. **Document Rules**: Keep validation rules documented
7. **Version Rules**: Track changes to validation rules
## Example Validation Report
```json
{
"overall_score": 0.92,
"passed": true,
"checks": {
"constraint_compliance": {
"score": 1.0,
"passed": true,
"violations": []
},
"business_rule_compliance": {
"score": 0.95,
"passed": true,
"violations": [
{
"rule": "Premium customers min order amount",
"severity": "warning",
"count": 5
}
]
},
"statistical_similarity": {
"score": 0.88,
"passed": true,
"details": {
"mean_similarity": 0.92,
"std_similarity": 0.89,
"distribution_similarity": 0.85
}
}
},
"recommendations": [
"Adjust variance for 'order_amount' field to better match source",
"Review premium customer logic for edge cases"
]
}
```
## Error Handling
- **Missing Data**: Report as constraint violation
- **Invalid Format**: Report as pattern violation
- **Rule Failure**: Report with severity level
- **Statistical Deviation**: Report with threshold exceedance
- **Unexpected Values**: Flag as outlier or data quality issue
## Performance Considerations
- Validation runs asynchronously
- Large datasets validated in chunks (10K rows per chunk)
- Critical rules checked first
- Statistical checks can be cached
- Parallel validation for independent rules
## Support
For issues with data validation:
1. Check validation rules are correctly defined
2. Review validation report for specific failures
3. Adjust generation mode or reasoning level
4. Consult FEATURE_GUIDE.md for validation best practices