{
  "skill": {
    "id": "skl_deploy_wave_analytics",
    "name": "deploy-wave-analytics",
    "plugin": "cwc-analytics-engineering",
    "description": "Per-wave timing analytics over deploy-runner step logs: parses the `STEP=n NAME=x EXIT=rc DURATION_S=d` / terminal `RUN_EXIT=rc` line format owned by plugins/cwc-deploy/skills/deploy-runner/deploy_runner/log.py (byte-identical regexes, enforced by a drift test that re-parses log.py at test time) into a typed `WaveReport` — step count, total/mean/max duration, slowest step name — via `uv run wave-analytics <log>`. Mirrors log.py's hard rule exactly: success comes ONLY from an explicit `RUN_EXIT=0`; an unterminated log is RUNNING, never SUCCESS. This skill READS logs, never writes them. Use when analyzing how long a deploy wave took, which step was slowest, comparing waves, or checking whether a wave log actually terminated. Trigger on \"wave timing\", \"slowest deploy step\", \"analyze the deploy log\", \"how long did wave N take\". Do NOT use to RUN deploys or generate step logs (cwc-deploy's deploy-runner owns that end) or for Cloudflare cache/CDN analytics (sibling analytics-playbook owns subagentcache.com).",
    "summary": "Per-wave timing analytics over deploy-runner step logs: parses the `STEP=n NAME=x EXIT=rc DURATION_S=d` / terminal `RUN_EXIT=rc` line format owned by plugins/cwc-deploy/skills/deploy-runner/deploy_runner/log.py (byte-identical regexes, enforced by a drift test that re-parses log.py at test time)...",
    "gated": 0,
    "source_path": "plugins/cwc-analytics-engineering/skills/deploy-wave-analytics/SKILL.md",
    "created_at": "2026-07-10 18:13:13",
    "cite_as": "https://subagentskills.com/api/skills/skl_deploy_wave_analytics"
  }
}