Data Quality Frameworks
wshobson/agents
Sets up data quality checks with Great Expectations, dbt tests and data contracts, with checkpoints and pass-fail reports for pipelines.
Data validation and quality expertise covering Great Expectations patterns, schema validation, statistical validation, referential integrity checks, data profiling, anomaly detection, data…
$ npx skills add FerroxLabs/wayland --skill data-validator -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install FerroxLabs/wayland data-validator --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/data-engineering/data-validator .claude/skills/data-validator && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "data-validator" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/data-engineering/data-validator into .claude/skills/data-validator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "data-validator", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/data-engineering/data-validatorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add FerroxLabs/wayland --skill data-validator -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install FerroxLabs/wayland data-validator --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .agents/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/data-engineering/data-validator .agents/skills/data-validator && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "data-validator" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/data-engineering/data-validator into .agents/skills/data-validator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "data-validator", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add FerroxLabs/wayland --skill data-validator -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install FerroxLabs/wayland data-validator --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/data-engineering/data-validator .cursor/skills/data-validator && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "data-validator" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/data-engineering/data-validator into .cursor/skills/data-validator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "data-validator", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/FerroxLabs/wayland.git --path src/process/resources/skills-library/bodies/skills/data-engineering/data-validator--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add FerroxLabs/wayland --skill data-validator -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install FerroxLabs/wayland data-validator --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/data-engineering/data-validator .gemini/skills/data-validator && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "data-validator" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/data-engineering/data-validator into .gemini/skills/data-validator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "data-validator", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install FerroxLabs/wayland data-validatorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add FerroxLabs/wayland --skill data-validator -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .github/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/data-engineering/data-validator .github/skills/data-validator && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "data-validator" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/data-engineering/data-validator into .github/skills/data-validator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "data-validator", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add FerroxLabs/wayland --skill data-validator -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install FerroxLabs/wayland data-validator --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/data-engineering/data-validator .opencode/skills/data-validator && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "data-validator" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/data-engineering/data-validator into .opencode/skills/data-validator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "data-validator", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
data-validatorData validation and quality expertise covering Great Expectations patterns, schema validation, statistical validation, referential integrity checks, data profiling, anomaly detection, data…
Data Validator is an agent skill from FerroxLabs/wayland. Data validation and quality expertise covering Great Expectations patterns, schema validation, statistical validation, referential integrity checks, data profiling, anomaly detection, data contracts, quality scoring, and automated testing strategies for ensuring data reliability throughout the pipeline. Use when the user asks about data validator, data validator best practices, or needs guidance on data validator implementation. Do NOT use when the user needs a different specialized skill or is asking about an…
Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Data & Analytics, covering Forms and validation, Anomaly detection and Test strategy. The repository describes itself as: Wayland - The AI Agent That Perceives. Reasons. Acts. Evolves. The licence is Apache-2.0.
Read from SKILL.md and the folder at commit 4c030c7. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are python, yaml, sql and markdown).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Data Validator loads about 3.3k tokens when it runs. Until then it costs about 140 tokens; SKILL.md has 325 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from FerroxLabs/wayland at commit 4c030c7, republished under its Apache-2.0 licence (© FerroxLabs). 325 words, ~3,251 tokens.
.claude/skills/data-validator/SKILL.md (or your agent's skills folder).Data quality is the foundation upon which all downstream analytics, ML models, and business decisions depend. This skill covers tools, techniques, and patterns for validating data at every stage of the pipeline.
import great_expectations as gx
context = gx.get_context()
datasource = context.sources.add_pandas("pandas_datasource")
# Build expectation suite
suite = context.add_expectation_suite("customer_quality_suite")
# Table-level
suite.add_expectation(gx.expectations.ExpectTableRowCountToBeBetween(min_value=10000, max_value=10000000))
suite.add_expectation(gx.expectations.ExpectTableColumnCountToEqual(value=15))
# Column-level: customer_id
suite.add_expectation(gx.expectations.ExpectColumnValuesToNotBeNull(column="customer_id"))
suite.add_expectation(gx.expectations.ExpectColumnValuesToBeUnique(column="customer_id"))
suite.add_expectation(gx.expectations.ExpectColumnValuesToMatchRegex(
column="customer_id", regex=r"^CUS-[A-Z0-9]{8}$"
))
# Column-level: email (allow 1% non-matching for legacy data)
suite.add_expectation(gx.expectations.ExpectColumnValuesToMatchRegex(
column="email",
regex=r"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$",
mostly=0.99
))
# Numeric column: revenue
suite.add_expectation(gx.expectations.ExpectColumnValuesToBeBetween(
column="lifetime_revenue", min_value=0, max_value=10000000, mostly=0.999
))
# Categorical column
suite.add_expectation(gx.expectations.ExpectColumnValuesToBeInSet(
column="status", value_set=["active", "inactive", "suspended", "pending"]
))def validate_data(**context):
ge_context = gx.get_context()
checkpoint = ge_context.add_or_update_checkpoint(
name="customer_checkpoint",
validations=[{
"batch_request": {"datasource_name": "warehouse", "data_asset_name": "dim_customer"},
"expectation_suite_name": "customer_quality_suite",
}],
action_list=[
{"name": "store_validation_result", "action": {"class_name": "StoreValidationResultAction"}},
{"name": "update_data_docs", "action": {"class_name": "UpdateDataDocsAction"}},
]
)
result = checkpoint.run()
if not result.success:
raise ValueError("Data quality check failed")name: dim_customer
version: "2.1"
owner: data-engineering
sla_hours: 6
allow_extra_columns: false
min_rows: 50000
columns:
- name: customer_id
type: string
nullable: false
unique: true
pattern: "^CUS-[A-Z0-9]{8}$"
- name: email
type: string
nullable: true
max_length: 255
- name: lifetime_revenue
type: float
nullable: false
min_value: 0
- name: status
type: string
nullable: false
allowed_values: ["active", "inactive", "suspended", "pending"]class SchemaDriftDetector:
def __init__(self, schema_store):
self.store = schema_store
def detect_drift(self, table_name: str, current_df) -> dict:
previous_schema = self.store.get_schema(table_name)
current_schema = self._extract_schema(current_df)
if previous_schema is None:
self.store.save_schema(table_name, current_schema)
return {'status': 'new_table', 'changes': []}
changes = []
prev_cols = {c['name']: c for c in previous_schema['columns']}
curr_cols = {c['name']: c for c in current_schema['columns']}
for name in set(curr_cols) - set(prev_cols):
changes.append({'type': 'column_added', 'column': name})
for name in set(prev_cols) - set(curr_cols):
changes.append({'type': 'column_removed', 'column': name})
for name in set(prev_cols) & set(curr_cols):
if prev_cols[name]['dtype'] != curr_cols[name]['dtype']:
changes.append({'type': 'type_changed', 'column': name,
'from': prev_cols[name]['dtype'], 'to': curr_cols[name]['dtype']})
if changes:
self.store.save_schema(table_name, current_schema)
return {'status': 'drift_detected' if changes else 'no_change', 'changes': changes}from scipy import stats
import numpy as np
class StatisticalValidator:
@staticmethod
def detect_outliers_iqr(series, multiplier=1.5):
Q1, Q3 = series.quantile(0.25), series.quantile(0.75)
IQR = Q3 - Q1
lower, upper = Q1 - multiplier * IQR, Q3 + multiplier * IQR
outliers = series[(series < lower) | (series > upper)]
return {'count': len(outliers), 'percentage': len(outliers) / len(series) * 100,
'lower_bound': lower, 'upper_bound': upper}
@staticmethod
def compare_distributions(current, historical, significance=0.05):
stat, p_value = stats.ks_2samp(current.dropna(), historical.dropna())
return {'test': 'kolmogorov_smirnov', 'statistic': stat, 'p_value': p_value,
'significant_drift': p_value < significance}
@staticmethod
def validate_proportions(series, expected_proportions):
observed = series.value_counts(normalize=True).sort_index()
expected = pd.Series(expected_proportions).sort_index()
all_cats = sorted(set(observed.index) | set(expected.index))
observed = observed.reindex(all_cats, fill_value=0)
expected = expected.reindex(all_cats, fill_value=0)
stat, p_value = stats.chisquare(observed * len(series), expected * len(series))
return {'test': 'chi_squared', 'p_value': p_value, 'significant_difference': p_value < 0.05}class ReferentialIntegrityChecker:
def __init__(self, engine):
self.engine = engine
def check_fk(self, child_table, child_col, parent_table, parent_col):
query = f"""
SELECT COUNT(*) AS orphan_count
FROM {child_table} c
LEFT JOIN {parent_table} p ON c.{child_col} = p.{parent_col}
WHERE p.{parent_col} IS NULL AND c.{child_col} IS NOT NULL
"""
result = pd.read_sql(query, self.engine).iloc[0]
return {'child_table': child_table, 'parent_table': parent_table,
'orphan_count': int(result['orphan_count']),
'passed': result['orphan_count'] == 0}class AnomalyDetector:
def detect_volume_anomaly(self, current_count, historical_counts, z_threshold=3.0):
mean, std = np.mean(historical_counts), np.std(historical_counts)
if std == 0:
return {'is_anomaly': current_count != mean}
z_score = (current_count - mean) / std
return {'is_anomaly': abs(z_score) > z_threshold, 'z_score': z_score,
'expected_range': (mean - z_threshold * std, mean + z_threshold * std)}
def detect_freshness_anomaly(self, latest_timestamp, expected_frequency_hours):
from datetime import datetime, timezone
age_hours = (datetime.now(timezone.utc) - latest_timestamp).total_seconds() / 3600
return {'is_stale': age_hours > expected_frequency_hours * 2, 'age_hours': age_hours}class DataQualityScorer:
def __init__(self):
self.dimensions = {
'completeness': 0.25, 'uniqueness': 0.15, 'validity': 0.25,
'consistency': 0.15, 'timeliness': 0.10, 'accuracy': 0.10,
}
def score(self, validation_results: dict) -> dict:
scores = {}
weighted_total = 0
for dimension, weight in self.dimensions.items():
if dimension in validation_results:
dim_score = validation_results[dimension]
scores[dimension] = {'score': dim_score, 'weight': weight,
'grade': 'A' if dim_score >= 95 else 'B' if dim_score >= 85 else 'C' if dim_score >= 70 else 'D' if dim_score >= 50 else 'F'}
weighted_total += dim_score * weight
overall = weighted_total / sum(self.dimensions[d] for d in scores) if scores else 0
return {'overall_score': round(overall, 2), 'dimensions': scores}contract:
name: dim_customer
version: "3.0"
owner: data-engineering
consumers: [analytics, marketing-ml, customer-success]
schema:
fields:
- { name: customer_id, type: string, required: true, unique: true }
- { name: email, type: string, required: false, pii: true }
- { name: lifetime_revenue, type: "decimal(12,2)", required: true, min: 0 }
quality:
freshness: { max_age_hours: 24, field: updated_at }
volume: { min_rows: 50000, max_row_change_pct: 20 }
completeness: { email: 95, phone: 80 }
sla:
availability: 99.9
update_frequency: daily
breaking_changes:
notification_days: 14
channels: [{ slack: "#data-contracts" }]-- tests/generic/test_revenue_positive.sql
{% test positive_revenue(model, column_name) %}
SELECT * FROM {{ model }} WHERE {{ column_name }} < 0
{% endtest %}
-- tests/singular/assert_revenue_reconciliation.sql
WITH warehouse AS (
SELECT SUM(net_amount) AS total FROM {{ ref('fct_orders') }}
WHERE order_date = '{{ var("check_date") }}'
),
source AS (
SELECT SUM(amount) AS total FROM {{ source('stripe', 'charges') }}
WHERE DATE(created) = '{{ var("check_date") }}'
)
SELECT * FROM warehouse w CROSS JOIN source s
WHERE ABS(w.total - s.total) / GREATEST(s.total, 1) > 0.01| Stage | What to Validate | Failure Action |
|---|---|---|
| Ingestion | Schema, encoding, row count | Reject file, alert source team |
| Staging | Types, nulls, basic ranges | Quarantine records, log to DLQ |
| Transform | Business rules, referential integrity | Block downstream, alert owner |
| Load | Row counts match, no duplicates | Rollback, retry with investigation |
| Serving | Freshness, availability, SLA | Alert consumers, serve stale with warning |
Use this skill when:
Do NOT use this skill when:
# Data Validator Analysis
## Context Assessment
[Situation summary and constraints]
## Recommended Approach
[Primary recommendation with rationale]
## Implementation Steps
1. [Step with specific details]
2. [Step with specific details]
3. [Step with specific details]
## Trade-offs and Considerations
- [Key trade-off 1]
- [Key trade-off 2]
## Next Steps
- [Immediate action item]
- [Follow-up action item]Input: "Help me implement data validator for a medium-scale production application"
Output: A structured analysis covering current state assessment, recommended data validator approach with specific patterns, implementation roadmap with milestones, and risk mitigation strategies tailored to the application scale and constraints.
© FerroxLabs, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in src/process/resources/skills-library/bodies/skills/data-engineering/data-validator of FerroxLabs/wayland.
Open the folder on GitHubat commit 4c030c7
Data Validator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Data Validator this skillFerroxLabs/wayland | 608 | — | ~3.3k | Automated safety check: Pass | Apache-2.0 | |
| Data Quality Frameworkswshobson/agents | 40k | 10 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Profiling Tablesastronomer/agents | 450 | — | ~964 | Automated safety check: Pass | Apache-2.0 | |
| Data QualityJoelLewis/finance_skills | 205 | — | ~11k | Automated safety check: Pass | MIT | |
| Glue DiagnosticsKilo-Org/kilo-marketplace | 189 | — | ~2k | Automated safety check: Pass | MIT | |
| Stat Edaasgard-ai-platform/skills | 241 | — | ~954 | Automated safety check: Pass | MIT |
wshobson/agents
Sets up data quality checks with Great Expectations, dbt tests and data contracts, with checkpoints and pass-fail reports for pipelines.
astronomer/agents
Deep-dive data profiling for a specific table. An agent skill from astronomer/agents.
JoelLewis/finance_skills
Design and operate data quality programs for financial data — validation rules, pricing validation, data lineage, exception management, profiling, and governance.
Kilo-Org/kilo-marketplace
A skill your agent uses to investigate and troubleshoot AWS Glue problems by analyzing ETL jobs, crawlers, connections, Data Catalog, DPU utilization, Spark execution, and job bookmarks following…
asgard-ai-platform/skills
Conduct Exploratory Data Analysis (EDA) using descriptive statistics, visualizations, and data quality checks.
majiayu000/claude-skill-registry
Data discovery and analysis specialist focused on extracting actionable insights from complex datasets, identifying patterns and anomalies, and transforming raw data into strategic intelligence.
FerroxLabs/wayland
Install, start, connect, and troubleshoot visualization companion projects for Aion/OpenClaw, with Star-Office-UI as the default recommendation.
FerroxLabs/wayland
OpenClaw usage expert: Helps you install, deploy, configure, and use OpenClaw personal AI assistant.
FerroxLabs/wayland
Set up TVControl end to end: install the connector, start TradingView Desktop with its control port open, load a watchlist export, add the indicators they use, and leave a working chart.
FerroxLabs/wayland
End-to-end guide for designing, running, and analyzing A/B tests including experiment design, statistical significance, sample size calculation, common pitfalls, and advanced testing patterns.
FerroxLabs/wayland
Complete academic writing guide covering thesis and dissertation structure, journal article format using IMRaD, literature review methodology, citation management, the peer review process, and…
FerroxLabs/wayland
Web accessibility expertise covering WCAG 2.2 conformance, audit methodology, ARIA patterns, keyboard navigation, screen reader testing, focus management, form accessibility, and automated vs manual…
Categories
Data validation and quality expertise covering Great Expectations patterns, schema validation, statistical validation, referential integrity checks, data profiling, anomaly detection, data…. Data Validator is an agent skill from FerroxLabs/wayland. Data validation and quality expertise covering Great Expectations patterns, schema validation, statistical validation, referential integrity checks, data profiling, anomaly detection, data contracts, quality scoring, and automated testing strategies for ensuring data reliability throughout the pipeline.
Data Validator fits situations like: the user asks about data validator; data validator best practices; needs guidance on data validator implementation; the user needs a different specialized skill.
Run `npx skills add FerroxLabs/wayland --skill data-validator -a claude-code`. Or copy the skill folder (src/process/resources/skills-library/bodies/skills/data-engineering/data-validator in FerroxLabs/wayland) into .claude/skills/data-validator in your project. Claude Code loads it when a task matches its description.
Run `npx skills add FerroxLabs/wayland --skill data-validator -a codex`. Or copy the skill folder (src/process/resources/skills-library/bodies/skills/data-engineering/data-validator in FerroxLabs/wayland) into .agents/skills/data-validator in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add FerroxLabs/wayland --skill data-validator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/data-validator, .gemini/skills/data-validator, .github/skills/data-validator and .opencode/skills/data-validator in your project.
SKILL.md names no scripts, command-line tools or credentials: Data Validator is instructions for the agent only. Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Data Validator is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Data Validator: Data Quality Frameworks (wshobson/agents, 40k stars), Profiling Tables (astronomer/agents, 450 stars), Data Quality (JoelLewis/finance_skills, 205 stars) and Glue Diagnostics (Kilo-Org/kilo-marketplace, 189 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
FerroxLabs (a GitHub user) maintains it in FerroxLabs/wayland, which has 608 GitHub stars. The repository holds 1,194 skills in this directory. The repository was last updated on October 6, 2026.
Source: FerroxLabs/wayland on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.