{
  "skills": [
    {
      "id": "skl_analytics_playbook",
      "name": "analytics-playbook",
      "plugin": "cwc-analytics-engineering",
      "description": "analytics-engineering playbook — read real Cloudflare GraphQL Analytics API data for this account's zones and record it as a durable snapshot in subagentcache.com's D1-backed cache_snapshots table, with a manual_dashboard_paste vs graphql_api provenance distinction. Use when the user pastes numbers from dash.cloudflare.com/<account>/analytics, asks to check cache hit rate, bandwidth, request counts, or wants a live GraphQL Analytics query run. Trigger on \"cache analytics\", \"cloudflare analytics\", \"cache hit rate\", \"cached bandwidth\", \"check the dashboard\", \"graphql analytics query\", \"wire up live analytics\", \"httpRequests1dGroups\", or a pasted Cloudflare Analytics dashboard screenshot/ text. Do NOT use this to invent or auto-expand a GraphQL query the user didn't ask for — the underlying Cloudflare GraphQL tool is explicitly restricted to exact user-provided queries only; see the \"Hard constraint\" section before writing any query.",
      "summary": "analytics-engineering playbook — read real Cloudflare GraphQL Analytics API data for this account's zones and record it as a durable snapshot in subagentcache.com's D1-backed cache_snapshots table, with a manual_dashboard_paste vs graphql_api provenance distinction.",
      "gated": 1,
      "source_path": "plugins/cwc-analytics-engineering/skills/analytics-playbook/SKILL.md",
      "created_at": "2026-07-10 18:13:13",
      "cite_as": "https://subagentskills.com/api/skills/skl_analytics_playbook"
    },
    {
      "id": "skl_credential_proxy",
      "name": "credential-proxy",
      "plugin": "cwc-analytics-engineering",
      "description": "Run a local credential-injecting proxy, per the pattern documented at code.claude.com/docs/en/agent-sdk/secure-deployment#credential-management, so Claude can pull data from a credentialed API (starting with Cloudflare's GraphQL Analytics API) without ever touching the plaintext token itself -- the proxy reads Keychain and injects the header; Claude sends and receives credential-free requests through it. Use when an MCP tool that would normally provide this access is unavailable/down and the operator wants Claude to complete the pull anyway via a locally-run proxy instead. Trigger on \"set up a proxy\", \"credential proxy\", \"inject credentials safely\", \"the MCP server is down, use a proxy instead\". Do NOT use this to bypass the fivetran-keychain-secrets Hard constraint -- see this file's own Hard constraint section for the one boundary that still applies.",
      "summary": "Run a local credential-injecting proxy, per the pattern documented at code.claude.com/docs/en/agent-sdk/secure-deployment#credential-management, so Claude can pull data from a credentialed API (starting with Cloudflare's GraphQL Analytics API) without ever touching the plaintext token itself -- t...",
      "gated": 0,
      "source_path": "plugins/cwc-analytics-engineering/skills/credential-proxy/SKILL.md",
      "created_at": "2026-07-10 18:13:13",
      "cite_as": "https://subagentskills.com/api/skills/skl_credential_proxy"
    },
    {
      "id": "skl_data_vision_runbook",
      "name": "data-vision-runbook",
      "plugin": "cwc-analytics-engineering",
      "description": "The durable \"why + where we are\" document for .coworkers-analytics's multi-connector Fivetran data-infra initiative — why this repo is building its own connector-backed data layer, what \"done\" looks like for the rollout, and the exact current state of every connector (registry row counts, which are fivetran-debug-verified, which are real vs. best-guess schemas, which are wired to live data vs. zero-row skeleton). Use when the user asks \"what's the data vision\", \"where are we on Fivetran connectors\", \"why are we building this\", \"what's done vs. not done on the connector rollout\", \"which connectors are verified\", \"recap the data-infra state\", or wants to know current registry numbers before deciding what to build next. Trigger on \"data vision\", \"connector rollout state\", \"fivetran status\", \"connector registry\", \"coworkers-analytics data layer\". Do NOT use this for breaking the rollout into atomic tasks/tickets — that's `plugins/cwc-product-management/skills/fivetran-rollout-decomposition`. Do NOT use this to execute code changes, write connector.py files, edit schema.ts, or run migrations — that's `plugins/cwc-engineering/skills/engineering-playbook`, which hands off to cwc-deploy with the exact phrase \"ready for cwc-deploy\" once code is written. This skill only states and maintains the vision and the ground-truth snapshot; it does not plan tasks and does not touch a keyboard.",
      "summary": "The durable \"why + where we are\" document for .coworkers-analytics's multi-connector Fivetran data-infra initiative — why this repo is building its own connector-backed data layer, what \"done\" looks like for the rollout, and the exact current state of every connector (registry row counts, which a...",
      "gated": 0,
      "source_path": "plugins/cwc-analytics-engineering/skills/data-vision-runbook/SKILL.md",
      "created_at": "2026-07-10 18:13:13",
      "cite_as": "https://subagentskills.com/api/skills/skl_data_vision_runbook"
    },
    {
      "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"
    },
    {
      "id": "skl_fivetran_key_rotation",
      "name": "fivetran-key-rotation",
      "plugin": "cwc-analytics-engineering",
      "description": "Rotate a Fivetran or connector-source API key stored via the fivetran-keychain-secrets skill, for scheduled rotation or an emergency (suspected leak/exposure). Use when the user asks to rotate, refresh, or regenerate a Fivetran secret, or reports a key may have been exposed. Trigger on \"rotate the key\", \"regenerate the secret\", \"the fivetran key leaked\", \"emergency rotation\". This skill prints a checklist; it does not perform the rotation itself -- see the Hard constraint section for why.",
      "summary": "Rotate a Fivetran or connector-source API key stored via the fivetran-keychain-secrets skill, for scheduled rotation or an emergency (suspected leak/exposure).",
      "gated": 0,
      "source_path": "plugins/cwc-analytics-engineering/skills/fivetran-key-rotation/SKILL.md",
      "created_at": "2026-07-10 18:13:13",
      "cite_as": "https://subagentskills.com/api/skills/skl_fivetran_key_rotation"
    },
    {
      "id": "skl_fivetran_keychain_secrets",
      "name": "fivetran-keychain-secrets",
      "plugin": "cwc-analytics-engineering",
      "description": "Store Fivetran/connector-source API keys in the macOS login Keychain instead of plaintext files or Claude's own context, following the same \"encrypted at rest, never touched by the untrusted process\" pattern .coworkers-analytics uses for its own credentials (encryption.key + .oauth-tokens/*.enc). Use when the user wants to set up, store, or rotate a Fivetran API key or a connector source credential (Cloudflare API token, GitHub PAT, etc). Trigger on \"store the fivetran key\", \"keychain\", \"set up fivetran secrets\", \"rotate the api key\". Do NOT use this skill to type, echo, grep for, or otherwise handle the plaintext secret value yourself in any tool call -- see the Hard constraint section.",
      "summary": "Store Fivetran/connector-source API keys in the macOS login Keychain instead of plaintext files or Claude's own context, following the same \"encrypted at rest, never touched by the untrusted process\" pattern .coworkers-analytics uses for its own credentials (encryption.key + .oauth-tokens/*.enc).",
      "gated": 0,
      "source_path": "plugins/cwc-analytics-engineering/skills/fivetran-keychain-secrets/SKILL.md",
      "created_at": "2026-07-10 18:13:13",
      "cite_as": "https://subagentskills.com/api/skills/skl_fivetran_keychain_secrets"
    },
    {
      "id": "skl_network_analytics",
      "name": "network-analytics",
      "plugin": "cwc-analytics-engineering",
      "description": "Visualize and track the network metrics that cwc-hardware-engineering's network-capture skill records — reads the SAME network-event JSONL / SQLite fact-dim star schema (the shared contract) and produces polars rollups + a deterministic inline SVG dashboard. `uv run netviz rollup --jsonl <p>` (latency percentiles by resource_type, bytes by host, totals — as JSON), `uv run netviz svg --jsonl <p>` (byte-identical SVG in the house server-side-SVG style). Use when the user asks to visualize / chart / analyze / track captured network data, see p50/p95 latency, top talkers by bytes, or a request-type breakdown. Trigger on \"visualize network\", \"network dashboard\", \"latency percentiles\", \"bytes by host\", \"analyze captured requests\", \"network chart\". Do NOT use to CAPTURE data (cwc-hardware-engineering's network-capture writes what this reads) or for Cloudflare cache analytics (analytics-playbook owns subagentcache.com).",
      "summary": "Visualize and track the network metrics that cwc-hardware-engineering's network-capture skill records — reads the SAME network-event JSONL / SQLite fact-dim star schema (the shared contract) and produces polars rollups + a deterministic inline SVG dashboard.",
      "gated": 0,
      "source_path": "plugins/cwc-analytics-engineering/skills/network-analytics/SKILL.md",
      "created_at": "2026-07-10 18:13:13",
      "cite_as": "https://subagentskills.com/api/skills/skl_network_analytics"
    }
  ]
}