From anomalyarmor-agents
Add data quality checks with metrics and validity rules. Handles "add null check", "create row count metric", "list metrics", "add uniqueness check", "data quality status".
npx claudepluginhub anomalyarmor/agents --plugin armorThis skill uses the workspace's default tool permissions.
Set up and manage data quality checks including metrics (row counts, null rates, distinct counts) and validity rules (null checks, uniqueness, custom expressions).
Conducts multi-round deep research on GitHub repos via API and web searches, generating markdown reports with executive summaries, timelines, metrics, and Mermaid diagrams.
Dynamically discovers and combines enabled skills into cohesive, unexpected delightful experiences like interactive HTML or themed artifacts. Activates on 'surprise me', inspiration, or boredom cues.
Generates images from structured JSON prompts via Python script execution. Supports reference images and aspect ratios for characters, scenes, products, visuals.
Set up and manage data quality checks including metrics (row counts, null rates, distinct counts) and validity rules (null checks, uniqueness, custom expressions).
~/.armor/config.yaml or ARMOR_API_KEY env var)pip install anomalyarmor)Metrics track quantitative measurements over time:
Rules that validate data integrity:
client.metrics.create() with appropriate parametersclient.metrics.capture()client.validity.create() with column and rule parametersclient.validity.check()from anomalyarmor import Client
client = Client()
# Get metrics summary
summary = client.metrics.summary("asset-uuid")
print(f"Total metrics: {summary.total_metrics}")
print(f"Failing metrics: {summary.failing_count}")
# List all metrics
metrics = client.metrics.list("asset-uuid")
for m in metrics:
print(f" {m.metric_type}: {m.name} ({m.status})")
metric = client.metrics.create(
asset_id="asset-uuid",
metric_type="row_count",
table_path="public.orders",
capture_interval="daily",
)
print(f"Created metric: {metric.id}")
rule = client.validity.create(
asset_id="asset-uuid",
rule_type="NOT_NULL",
table_path="public.customers",
column_name="email",
severity="warning",
)
print(f"Created rule: {rule.id}")
# Run immediately
result = client.validity.check("asset-uuid", rule.id)
print(f"Check result: {result.status}")
rule = client.validity.create(
asset_id="asset-uuid",
rule_type="UNIQUE",
table_path="public.orders",
column_name="order_id",
severity="critical",
)
Metrics Summary for warehouse.public.orders:
Total metrics: 3
Passing: 2
Failing: 1
Metrics:
row_count: Daily Row Count (passing)
null_rate: Email Null Rate (passing)
distinct_count: Customer Distinct Count (failing)
Validity Rules:
NOT_NULL: email_not_null (passing)
UNIQUE: order_id_unique (passing)
/armor:alerts to create alert rules/armor:lineage to trace dependencies