用途
skill-health 为 Aeon 技能舰队提供可观测性,基于同一份 GitHub Actions 技能运行数据提供两种视图:健康视图负责逐技能审计与自愈式问题跟踪,分析视图负责全舰队排名与异常发现。
主要能力
健康视图(默认)
- 读取 memory/cron-state.json、memory/skill-health/*.json、memory/skill-health/last-report.json、aeon.yml、memory/issues/ 以及 ./scripts/skill-runs 等数据源。
- 对每个已启用技能按规则分类:CRITICAL(连续失败 ≥3 或失败且 ≥3 天未成功)、DEGRADED(成功率 <0.6 或近期平均质量分 <2.5)、FLAPPING(7 天内 3 次以上状态翻转)、WARNING(成功率 <0.8 或连续失败 ≥1)、HEALTHY、NO DATA。
- 计算严重度分数用于排序,并记录 last_error、api_host 与建议动作(FIX CONFIG、WAIT-API、INVESTIGATE、DISPATCH-SKILL)。
- 检测系统性模式:多个技能共享同一 api_host 或错误签名时输出单条 SYSTEMIC 提示。
- 与 memory/issues/ 对账:为新故障登记问题单(ISS-NNN),在技能恢复时关闭;对 fix-pending 问题检查修复 PR 的真实合并状态并相应解决或重新打开。
- 通知受状态变化门控:分类哈希未变且距上次通知不足 24 小时则不通知。
分析视图(analytics / metrics)
- 拉取指定窗口(默认 168 小时,上限 720 小时)的运行快照,输出运行最多、失败最多、静默跳过与已调度但零运行的技能。
- 交叉引用 aeon.yml 调度表与 cron-state.json,标记 silent_scheduled 与连续失败异常。
- 从日志中挖掘退出分类(SKIP_UNCHANGED、NEW_INFO、SKIP_QUIET 等),区分“安静但正确”与真正失败。
- 输出带显著性门控的通知、一篇文章与一份仪表盘 JSON 规格。
使用方式
通过变量选择视图:留空 → 全量健康检查;传入技能 slug(如 token-movers)→ 单技能健康检查;传入 analytics 或 metrics(可带小时数,如 analytics:72、metrics 336)→ 舰队指标视图;传入裸整数(如 168)→ 指标视图的旧式简写。窗口小时数上限为 720。
适用场景
- 需要定期审计大量定时技能健康度、自动登记与关闭故障单的运维场景。
- 需要横向对比全舰队运行次数、失败率与退出分类分布的分析场景。
- 需要识别静默跳过与调度缺口(已调度但从未运行)的场景。
限制
- 问题登记与关闭依赖 memory/issues/INDEX.md 已存在;缺失时跳过该步骤并记录 SKILL_HEALTH_ISSUE_TRACKER_MISSING,不会自动创建。
- 修复 PR 状态核对依赖 gh 命令;不可用或查询出错时保持问题单不变,不会在未验证的情况下解决。
- 分析视图在数据拉取失败时记录 SKILL_ANALYTICS_NO_DATA 并停止,不发出通知。
- 窗口超过 720 小时会拖慢 gh api 分页,因此被限制。
- 具体收费、价格与平台支持信息暂未提供。