From anomalyarmor-agents
Test and preview monitoring configurations before enabling. Handles "dry-run threshold", "preview alerts", "test this rule", "what would fire".
npx claudepluginhub anomalyarmor/agents --plugin armorThis skill uses the workspace's default tool permissions.
Preview what alerts would fire with proposed configurations. Avoid alert fatigue by testing thresholds before enabling.
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.
Preview what alerts would fire with proposed configurations. Avoid alert fatigue by testing thresholds before enabling.
~/.armor/config.yaml or ARMOR_API_KEY env var)pip install anomalyarmor)client.freshness.dry_run() with proposed configclient.alerts.preview() with event typesfrom anomalyarmor import Client
client = Client()
# Test what would happen with a 4-hour freshness threshold
# Uses historical data to predict alert frequency
result = client.freshness.dry_run(
asset_id="asset-uuid",
table_path="public.orders",
expected_interval_hours=4,
lookback_days=7
)
print(f"Configuration: Alert if stale for {result.threshold_hours} hours")
print(f"Historical period: {result.lookback_days} days")
print()
print(f"Total checks analyzed: {result.total_checks}")
print(f"Would alert count: {result.would_alert_count}")
print(f"Alert rate: {result.alert_rate_percent:.1f}%")
print()
if result.would_alert_now:
print(f"Current status: Would alert NOW (age: {result.current_age_hours:.1f}h)")
else:
print(f"Current status: OK (age: {result.current_age_hours:.1f}h)")
print(f"\nRecommendation: {result.recommendation}")
from anomalyarmor import Client
client = Client()
# Preview schema drift detection with proposed settings
result = client.schema.dry_run(
asset_id="asset-uuid",
lookback_days=30
)
print(f"Schema Drift Dry-Run Results:")
print(f" Total changes detected: {result.total_changes}")
print(f" Changes by type: {result.changes_summary}")
print()
if result.sample_changes:
print("Sample changes:")
for change in result.sample_changes[:5]:
print(f" - {change.change_type}: {change.table_name}")
print(f"\nRecommendation: {result.recommendation}")
from anomalyarmor import Client
client = Client()
# Preview what alerts would match a rule configuration
result = client.alerts.preview(
event_types=["freshness_stale", "schema_drift"],
severities=["critical", "warning"],
lookback_days=7
)
print(f"Lookback: {result.lookback_hours} hours")
print(f"Alerts would match: {result.alerts_would_match}")
print(f"By severity: {result.alerts_by_severity}")
print(f"By type: {result.alerts_by_type}")
print()
if result.sample_alerts:
print("Sample alerts:")
for alert in result.sample_alerts[:5]:
print(f" - {alert.triggered_at}: {alert.message}")
from anomalyarmor import Client
client = Client()
# Preview what anomalies would be detected with a metric
result = client.metrics.dry_run(
asset_id="asset-uuid",
table_path="catalog.schema.orders",
metric_type="null_percent",
column_name="email",
sensitivity=1.5,
lookback_days=14,
)
print(f"Metric Dry-Run: {result.metric_type}")
print(f"Total snapshots analyzed: {result.total_snapshots}")
print(f"Would alert count: {result.would_alert_count}")
print(f"Alert rate: {result.alert_rate_percent:.1f}%")
print()
print(f"Recommendation: {result.recommendation}")
| Metric | Good Range | Action if Outside |
|---|---|---|
| Alert rate | 5-25% | Adjust threshold up/down |
| Alerts per day | 0.1 - 1.0 | Adjust threshold up/down |
| Zero alerts | - | Tighten threshold |
/armor:monitor to enable the configuration