fai-tune-20-anomaly-detection — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited fai-tune-20-anomaly-detection (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.
solution-plays/20-anomaly-detection/config/ ├── detector.json ├── windows.json ├── thresholds.json └── alerts.json
// config/detector.json
{
"algorithm": "spectral_residual",
"sensitivity": 0.85,
"lookback_window": 288,
"seasonality": "daily",
"min_anomaly_duration": 3,
"cooldown_minutes": 15
}| Parameter | Range | Default | Guidance |
|---|---|---|---|
sensitivity | 0.50-0.99 | 0.85 | Lower to reduce false positives. |
lookback_window | 24-10000 | 288 | Must cover seasonal pattern. |
min_anomaly_duration | 1-60 | 3 | Suppress spikes/noise. |
cooldown_minutes | 0-240 | 15 | Avoid repeated alerts for same event. |
{
"evaluation": {
"enabled": true,
"dataset": "evaluation/test-cases.jsonl",
"sample_size": 200,
"gates": {
"quality_min": 0.80,
"safety_min": 0.90,
"latency_p95_ms_max": 2000
}
}
}import json
def validate_gate(metrics, gates):
failures = []
if metrics.get("quality", 0) < gates["quality_min"]:
failures.append("quality")
if metrics.get("safety", 0) < gates["safety_min"]:
failures.append("safety")
if metrics.get("latency_p95_ms", 999999) > gates["latency_p95_ms_max"]:
failures.append("latency")
if failures:
raise SystemExit(f"Gate failed: {', '.join(failures)}")
print("PASS: all gates met"){
"cost_controls": {
"daily_budget_usd": 500,
"monthly_budget_usd": 10000,
"alert_thresholds": [50, 75, 90],
"throttle_on_budget_breach": true
}
}| Check | Expected | Command |
|---|---|---|
| Sensitivity | 0.50-0.99 | jq '.sensitivity' config/detector.json |
| Lookback window | >= one season | jq '.lookback_window' config/detector.json |
| Cooldown set | >= 5 minutes recommended | jq '.cooldown_minutes' config/detector.json |
| Issue | Cause | Fix |
|---|---|---|
| Too many alerts | Sensitivity too high | Reduce sensitivity and increase min_anomaly_duration. |
| Missed incidents | Threshold too strict | Increase sensitivity by 0.03 and re-test. |
| Duplicate notifications | No cooldown | Set cooldown_minutes to 15-30. |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.