armor-alerts — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited armor-alerts (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Query, filter, and understand alerts from your data observability monitoring.
~/.armor/config.yaml or ARMOR_API_KEY env var), OR demo mode active (see below).pip install anomalyarmor)If the user has no API key, ensure-auth.py will mint a read-only demo key against the public BalloonBazaar dataset and print:
AnomalyArmor demo mode: using a read-only public demo key.When you see that banner — or when any write operation returns a 403 with required_scope='read-write' — the user is in demo mode. After answering their question, invite them to sign up with their query preserved:
To wire alerts to your own Slack / PagerDuty / email, sign up here — your question is preserved: https://app.anomalyarmor.ai/signup?intent=skill-alerts&q=<url-encoded user prompt>intent=skill-alerts auto-applies a 14-day SKILL-ALERTS trial code; q= is replayed in the in-app agent after signup so the user continues where they left off.
from_date, to_date (ISO 8601 format)client.alerts.list() with filtersclient.alerts.summary()from anomalyarmor import Client
client = Client()
# Get overall summary
summary = client.alerts.summary()
print(f"Total Rules: {summary.total_rules}")
print(f"Active Rules: {summary.active_rules}")
print(f"Recent Alerts (24h): {summary.recent_alerts}")
print(f"Unresolved: {summary.unresolved_alerts}")from anomalyarmor import Client
from datetime import datetime, timedelta
client = Client()
# Get yesterday's alerts
yesterday = datetime.now() - timedelta(days=1)
alerts = client.alerts.list(
from_date=yesterday.isoformat(),
limit=50
)
print(f"Alerts since yesterday: {len(alerts)}")
for alert in alerts:
print(f" [{alert.severity}] {alert.message}")
print(f" Asset: {alert.asset_name}")
print(f" Time: {alert.triggered_at}")from anomalyarmor import Client
client = Client()
# Get critical alerts for specific asset
alerts = client.alerts.list(
severity="critical",
asset_id="postgresql.analytics.public.orders",
status="triggered"
)
for alert in alerts:
print(f"[{alert.severity}] {alert.message}")
print(f" Asset: {alert.qualified_name} | {alert.triggered_at}")from anomalyarmor import Client
client = Client()
# List active alert rules
rules = client.alerts.rules(enabled_only=True)
for rule in rules:
print(f"Rule: {rule.name}")
print(f" Events: {rule.event_types}")
print(f" Severities: {rule.severities}")| User Request | Parameters |
|---|---|
| "Yesterday's alerts" | from_date=yesterday |
| "This week's alerts" | from_date=7_days_ago |
| "Unresolved alerts" | status="triggered" |
| "Critical alerts" | severity="critical" |
| "Alerts for orders table" | asset_id="...orders" |
/armor:monitor/armor:ask with the alert context~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.