analysis-anomaly — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited analysis-anomaly (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.
🤖 AI自动执行(数据分析类)
| 输入项 | 类型 | 必填 | 来源 | 说明 |
|---|---|---|---|---|
| 指标体系 | JSON | 是 | output/pm-metrics-design/metrics-system/metrics.json | 需要监控的核心指标列表及定义 |
| 实时数据流 | JSON | 是 | 数据仓库/实时计算平台 | 指标时序数据 |
| 告警规则 | JSON | 是 | 用户提供 | 各类指标异常的阈值配置 |
| 事件日历 | JSON | ○ | 用户提供 | 产品改动、运营活动、市场事件等外部事件 |
每小时定时执行
├── 获取所有核心指标当前值
├── 计算同比(上周同期)、环比(上小时)变化
├── 对比预设阈值和历史波动范围
└── 标记需要关注的指标| 检测方法 | 说明 |
|---|---|
| 统计阈值 | 基于历史数据设定上下限(如±3σ) |
| 趋势偏离 | 与历史趋势的显著偏离 |
| 环比异常 | 与近期数据的大幅波动 |
| 同比异常 | 与去年同期相比的显著变化 |
异常自动归因四步法:
1. 确认真实性
├── 排除数据延迟问题
├── 排除数据管道故障
├── 排除统计噪声(自然波动)
└── 确认为真实异常
2. 定位范围
├── 影响多少用户
├── 影响哪些功能/页面
├── 影响哪些平台/渠道
└── 持续多长时间
3. 关联外部事件
├── 产品改动(版本发布、功能开关)
├── 运营活动(促销、推送、弹窗)
├── 市场事件(竞品动作、热点事件)
└── 环境因素(节假日、天气、突发事件)
4. 生成归因结论
├── 最可能原因(most_likely_cause)
├── 置信度(confidence)
├── 支持证据(evidence)
└── 建议行动(recommended_action)根据异常严重程度推送:
输出文件路径:output/pm-metrics-ops/analysis-anomaly/ 输出Schema:
{
"type": "object",
"required": ["metric_name", "current_value", "severity", "attribution"],
"properties": {
"metric_name": {"type": "string", "description": "异常指标名称"},
"current_value": {"type": "number", "description": "当前值"},
"expected_range": {"type": "array", "description": "预期范围"},
"deviation": {"type": "string", "description": "偏离程度"},
"severity": {"type": "string", "description": "严重程度:P0/P1/P2/P3"},
"attribution": {"type": "object", "description": "归因信息,包含真实性判断、相关事件和推荐行动"},
"trend_chart_url": {"type": "string", "description": "趋势图URL"},
"raw_data_url": {"type": "string", "description": "原始数据URL"}
}
}anomaly_report:
timestamp: "2024-01-15T10:30:00Z"
# 基本信息
metric_name: "dau_conversion_rate"
current_value: 12.3
expected_range: [15.0, 20.0]
deviation: -27%
# 严重程度
severity: "P1" # P0/P1/P2/P3
# 归因信息
attribution:
is_real: true
scope:
affected_users: 150000
affected_platforms: ["iOS", "Android"]
affected_features: ["首页推荐"]
duration: "ongoing"
related_events:
- type: "product_release"
name: "v2.5.0发布"
time: "2024-01-15T08:00:00Z"
confidence: 0.85
- type: "marketing_campaign"
name: "新年促销活动"
time: "2024-01-14T00:00:00Z"
confidence: 0.3
most_likely_cause: |
v2.5.0版本中首页推荐算法改动,
导致推荐内容与用户兴趣匹配度下降
confidence: 0.85
evidence:
- "异常发生在版本发布后2小时内"
- "iOS和Android同时下降,排除端侧问题"
- "非活动时段,排除营销影响"
recommended_action: |
1. 立即检查v2.5.0首页推荐算法改动
2. 如果2小时内无法定位,准备回滚
3. 准备A/B测试验证假设
needs_human_confirmation: true
# 辅助信息
trend_chart_url: "output/pm-metrics-ops/analysis-anomaly/charts/dau_conversion_20240115.png"
raw_data_url: "output/pm-metrics-ops/analysis-anomaly/data/dau_conversion_20240115.json"output/pm-metrics-ops/analysis-anomaly/
├── anomaly_reports/
│ ├── YYYYMMDD_HHMMSS_anomaly_{metric}.yaml
│ └── summary_{date}.yaml
├── charts/
│ └── {metric}_{date}.png
└── data/
└── {metric}_{date}.json# 指标异常检测配置
anomaly_detection:
core_metrics:
- name: "dau"
threshold_type: "absolute"
min_value: 1000000
max_value: null
alert_on: "below"
- name: "dau_conversion_rate"
threshold_type: "statistical"
std_multiplier: 3
min_change_pct: 5
alert_on: "both"
- name: "revenue_daily"
threshold_type: "relative"
vs_last_week_pct: -15
alert_on: "below"
notification:
channels:
- type: "slack"
url: "${SLACK_WEBHOOK}"
- type: "phone"
for_severity: ["P0"]| 字段路径 | 类型 | 必填 | 说明 |
|---|---|---|---|
| anomaly_report | object | 是 | 异常报告根对象 |
| anomaly_report.metric_name | string | 是 | 异常指标名称 |
| anomaly_report.current_value | number | 是 | 当前值 |
| anomaly_report.expected_range | array | 是 | 预期范围,[min, max] |
| anomaly_report.deviation | string | 是 | 偏离程度 |
| anomaly_report.severity | string | 是 | 严重程度,枚举值:P0/P1/P2/P3 |
| anomaly_report.attribution | object | 是 | 归因信息 |
| anomaly_report.attribution.is_real | boolean | 是 | 是否为真实异常 |
| anomaly_report.attribution.scope | object | 是 | 影响范围 |
| anomaly_report.attribution.most_likely_cause | string | 是 | 最可能原因 |
| anomaly_report.attribution.confidence | number | 是 | 置信度,0-1 |
| anomaly_report.attribution.recommended_action | string | 是 | 建议行动 |
| anomaly_report.attribution.needs_human_confirmation | boolean | 是 | 是否需人类确认 |
| anomaly_report.trend_chart_url | string | 否 | 趋势图URL |
| anomaly_report.raw_data_url | string | 否 | 原始数据URL |
当上游输入发生变更时,本Skill的响应策略:
| 上游变更 | 影响范围 | 响应策略 |
|---|---|---|
| 指标体系变更 | 监控指标列表和阈值 | 更新监控指标列表,重新加载告警规则,标记需人类确认 |
| 告警规则变更 | 异常检测阈值和推送策略 | 重新加载告警规则,更新检测参数 |
| 事件日历变更 | 归因关联的外部事件 | 更新事件关联数据,重新评估未确认异常的归因 |
| 数据源变更 | 数据获取和计算逻辑 | 更新数据源配置,验证数据完整性 |
当异常报告自身变更时,对下游的通知机制:
| 报告变更类型 | 通知范围 | 通知方式 |
|---|---|---|
| P0/P1异常新增 | decision-dace, data-analysis-report | 标记异常新增,触发洞察转化 |
| 归因结论变更 | decision-dace | 标记归因变更,触发DACE Conclude |
| 严重级别升级 | 全部下游 | 标记级别升级,触发对应告警策略 |
| 条件 | Action |
|---|---|
| P0异常(核心指标↓ > 10%) | 即时推送 + 电话告警 + 自动创建Incident |
| P1异常(指标↓ 3-10%) | 2小时内推送 + Slack通知 |
| P2异常(指标↓ 1-3%) | 每日汇总 |
| P3波动(指标↓ < 1%) | 记录,持续监控 |
| 需要人工确认 | 发送确认请求,等待响应 |
| 缺失范围 | 降级方案 | 输出影响 |
|---|---|---|
| 指标体系缺失 | 提示用户提供指标数据和异常描述,基于描述进行归因分析 | 异常检测范围基于用户描述,可能遗漏未关注指标 |
| 实时数据流缺失 | 用户提供指标数据和异常描述 → 基于描述归因分析 | 无法自动检测异常,依赖用户主动发现 |
| 指标体系 + 实时数据流均缺失 | 用户提供指标数据和异常描述 → 基于描述归因分析 | 输出基于描述的归因分析报告,标注"待验证" |
当上游文件缺失时,需用户提供以下信息以支撑降级生成:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.