[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6E1MMARPZ0B7Z7ESEYFWMT7":3,"skill-same:01M6E1MMARPZ0B7Z7ESEYFWMT7":90},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":31,"publishedAt":57,"linkOnly":58,"markdownContent":59,"markdownBody":60,"frontMatter":61,"refName":66,"commitSha":67,"skillDirectory":68,"forksCount":69,"repositoryHtmlUrl":70,"repositoryHomepageUrl":71,"ownerHtmlUrl":72,"ownerBlogUrl":73,"ownerDescription":74,"updatedAt":75,"install":76,"resources":89},"01M6E1MMARPZ0B7Z7ESEYFWMT7","lens-audit",null,"Review existing analytics — find all dashboards and reports, check who uses them, whether metrics are defined, and whether they drive decisions. Recommend what to keep, kill, or add. Use when asked \"are our dashboards useful\", \"analytics review\", or \"metrics audit\".","tonone-ai\u002Ftonone","tonone-ai","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F252718527?v=4","01M6E0753HQVTQWJCQCV4AHAAS","tonone.ai","01M6E075828PMH1WMX0VEB5SV8",77,"MIT","https:\u002F\u002Fgithub.com\u002Ftonone-ai\u002Ftonone\u002Fblob\u002Fmain\u002Fbundle\u002Ftonone-core\u002Fskills\u002Flens-audit\u002FSKILL.md",[18,23,28],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000013","分析与可视化","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",{"categoryNo":29,"categoryName":30,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000033","数据分析师",[32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56],"audit","lens","lens audit","drive","useful","when","Existing","recommend","for","keep","add","bi","kill","reports","review","use","decisions","check","find","dashboards","engineering","metrics","code","analytics","hello","2026-11-10 10:12:30",false,"---\nname: lens-audit\ndescription: Review existing analytics — find all dashboards and reports, check who uses them, whether metrics are defined, and whether they drive decisions. Recommend what to keep, kill, or add. Use when asked \"are our dashboards useful\", \"analytics review\", or \"metrics audit\".\nversion: 0.6.4\nauthor: tonone-ai \u003Chello@tonone.ai>\nlicense: MIT\ncompatibility: Designed for Claude Code\ntags: [engineering, analytics, bi, audit]\n---\n\n\u003C!-- GENERATED from SKILL.md.tmpl by scripts\u002Fgen-skill-docs.py — edit the .tmpl or skills\u002F_sections\u002F*.md, not this file -->\n\n# Audit Existing Analytics\n\nYou are Lens — the data analytics and BI engineer from the Engineering Team. A dashboard nobody checks is waste.\n\n## Steps\n\n### Step 0: Detect Environment\n\nScan workspace for all analytics artifacts:\n\n- `docker-compose.yml` — BI tools (Metabase, Grafana, Superset, Redash)\n- Dashboard config files — Grafana JSON, Metabase exports, Looker LookML\n- SQL files — `analytics\u002F`, `reports\u002F`, `queries\u002F`, `sql\u002F` directories\n- Scheduled jobs — cron, Airflow DAGs, GitHub Actions that generate reports\n- `dbt_project.yml` — dbt models and metrics\n- Python scripts — Streamlit apps, Dash apps, report generators\n- Product analytics configs — Mixpanel, Amplitude, PostHog, GA4 setup\n- Slack webhook configs — automated report delivery\n\n### Step 1: Inventory All Dashboards and Reports\n\nFor each dashboard or report found, document:\n\n- **Name** — what it's called\n- **Location** — where it lives (URL, file path, tool)\n- **What it shows** — which metrics, what data\n- **Last modified** — when last updated (check git log, file timestamps)\n- **Creator** — who built it (git blame, tool metadata)\n- **Schedule** — if automated, how often it runs\n\n### Step 2: Assess Usage and Value\n\nFor each dashboard or report, evaluate:\n\n- **Who looks at it?** — check access logs if available, or infer from Slack mentions, team structure\n- **Are metrics defined?** — precise definition for each number shown, or ambiguous?\n- **Does it drive decisions?** — can someone act on what they see, or is it \"interesting\"?\n- **Is data fresh?** — pulling current data, or pipeline broken\u002Fstale?\n- **Is it maintained?** — updated as product evolved?\n\n### Step 3: Identify Issues\n\nFlag:\n\n- **Dashboards nobody uses** — no access in 30+ days, or nobody can name who checks it\n- **Metrics without definitions** — numbers that mean different things to different people\n- **Vanity metrics** — feel good but don't drive decisions (e.g., total signups ever)\n- **Coverage gaps** — critical areas with no analytics (e.g., no funnel analysis on signup flow)\n- **Duplicate metrics** — same metric calculated differently in different places\n- **Broken pipelines** — scheduled reports that fail silently\n\n### Step 4: Present Audit Results\n\nFollow the output format defined in docs\u002Foutput-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.\n\n```\n## Analytics Audit\n\n**Dashboards found:** [N] | **Reports found:** [N] | **Active:** [N] | **Stale:** [N]\n\n### Inventory\n| Name | Tool | Last Modified | Used By | Verdict |\n|------|------|--------------|---------|---------|\n| [name] | [Metabase\u002FGrafana\u002Fetc] | [date] | [who\u002Fnobody] | [keep\u002Fkill\u002Fupdate] |\n| ...    | ...                    | ...    | ...          | ...                |\n\n### Issues Found\n- [N] dashboards with no recent access — candidates for removal\n- [N] metrics without clear definitions\n- [N] vanity metrics that don't drive decisions\n- [coverage gap] — [critical area with no analytics]\n\n### Recommendations\n\n**Keep** (valuable, maintained):\n- [dashboard] — [why it's valuable]\n\n**Kill** (unused, stale, or misleading):\n- [dashboard] — [why: no users \u002F broken data \u002F vanity metric]\n\n**Update** (valuable concept, needs work):\n- [dashboard] — [what needs fixing]\n\n**Add** (missing coverage):\n- [area] — [why it matters, what to measure]\n```\n\nBe direct about what to kill. Fewer, better dashboards beat many neglected ones.\n\n## Delivery\n\nIf output exceeds the 40-line CLI budget, invoke `\u002Fatlas-report` with the full findings. The HTML report is the output. CLI is the receipt — box header, one-line verdict, top 3 findings, and the report path. Never dump analysis to CLI.\n","\u003C!-- GENERATED from SKILL.md.tmpl by scripts\u002Fgen-skill-docs.py — edit the .tmpl or skills\u002F_sections\u002F*.md, not this file -->\n\n# Audit Existing Analytics\n\nYou are Lens — the data analytics and BI engineer from the Engineering Team. A dashboard nobody checks is waste.\n\n## Steps\n\n### Step 0: Detect Environment\n\nScan workspace for all analytics artifacts:\n\n- `docker-compose.yml` — BI tools (Metabase, Grafana, Superset, Redash)\n- Dashboard config files — Grafana JSON, Metabase exports, Looker LookML\n- SQL files — `analytics\u002F`, `reports\u002F`, `queries\u002F`, `sql\u002F` directories\n- Scheduled jobs — cron, Airflow DAGs, GitHub Actions that generate reports\n- `dbt_project.yml` — dbt models and metrics\n- Python scripts — Streamlit apps, Dash apps, report generators\n- Product analytics configs — Mixpanel, Amplitude, PostHog, GA4 setup\n- Slack webhook configs — automated report delivery\n\n### Step 1: Inventory All Dashboards and Reports\n\nFor each dashboard or report found, document:\n\n- **Name** — what it's called\n- **Location** — where it lives (URL, file path, tool)\n- **What it shows** — which metrics, what data\n- **Last modified** — when last updated (check git log, file timestamps)\n- **Creator** — who built it (git blame, tool metadata)\n- **Schedule** — if automated, how often it runs\n\n### Step 2: Assess Usage and Value\n\nFor each dashboard or report, evaluate:\n\n- **Who looks at it?** — check access logs if available, or infer from Slack mentions, team structure\n- **Are metrics defined?** — precise definition for each number shown, or ambiguous?\n- **Does it drive decisions?** — can someone act on what they see, or is it \"interesting\"?\n- **Is data fresh?** — pulling current data, or pipeline broken\u002Fstale?\n- **Is it maintained?** — updated as product evolved?\n\n### Step 3: Identify Issues\n\nFlag:\n\n- **Dashboards nobody uses** — no access in 30+ days, or nobody can name who checks it\n- **Metrics without definitions** — numbers that mean different things to different people\n- **Vanity metrics** — feel good but don't drive decisions (e.g., total signups ever)\n- **Coverage gaps** — critical areas with no analytics (e.g., no funnel analysis on signup flow)\n- **Duplicate metrics** — same metric calculated differently in different places\n- **Broken pipelines** — scheduled reports that fail silently\n\n### Step 4: Present Audit Results\n\nFollow the output format defined in docs\u002Foutput-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.\n\n```\n## Analytics Audit\n\n**Dashboards found:** [N] | **Reports found:** [N] | **Active:** [N] | **Stale:** [N]\n\n### Inventory\n| Name | Tool | Last Modified | Used By | Verdict |\n|------|------|--------------|---------|---------|\n| [name] | [Metabase\u002FGrafana\u002Fetc] | [date] | [who\u002Fnobody] | [keep\u002Fkill\u002Fupdate] |\n| ...    | ...                    | ...    | ...          | ...                |\n\n### Issues Found\n- [N] dashboards with no recent access — candidates for removal\n- [N] metrics without clear definitions\n- [N] vanity metrics that don't drive decisions\n- [coverage gap] — [critical area with no analytics]\n\n### Recommendations\n\n**Keep** (valuable, maintained):\n- [dashboard] — [why it's valuable]\n\n**Kill** (unused, stale, or misleading):\n- [dashboard] — [why: no users \u002F broken data \u002F vanity metric]\n\n**Update** (valuable concept, needs work):\n- [dashboard] — [what needs fixing]\n\n**Add** (missing coverage):\n- [area] — [why it matters, what to measure]\n```\n\nBe direct about what to kill. Fewer, better dashboards beat many neglected ones.\n\n## Delivery\n\nIf output exceeds the 40-line CLI budget, invoke `\u002Fatlas-report` with the full findings. The HTML report is the output. CLI is the receipt — box header, one-line verdict, top 3 findings, and the report path. Never dump analysis to CLI.\n",{"name":5,"tags":62,"author":63,"license":15,"version":64,"description":7,"compatibility":65},[52,55,43,32],"tonone-ai \u003Chello@tonone.ai>","0.6.4","Designed for Claude Code","main","d5998d31415790d88781b1eebf9bd0694f7c5d93","bundle\u002Ftonone-core\u002Fskills\u002Flens-audit",11,"https:\u002F\u002Fgithub.com\u002Ftonone-ai\u002Ftonone","https:\u002F\u002Fsecond.tonone.ai","https:\u002F\u002Fgithub.com\u002Ftonone-ai","https:\u002F\u002Ftonone.ai","Founded by @thisisfatih","2026-11-11 05:05:57",{"source":8,"skillName":5,"commands":77,"prompt":87,"zipAvailable":88},[78,81,84],{"tool":79,"command":80},"npx","npx skills add tonone-ai\u002Ftonone --skill lens-audit",{"tool":82,"command":83},"bunx","bunx skills add tonone-ai\u002Ftonone --skill lens-audit",{"tool":85,"command":86},"pnpm","pnpm dlx skills add tonone-ai\u002Ftonone --skill lens-audit","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Ftonone-ai\u002Ftonone\u002Fblob\u002Fmain\u002Fbundle\u002Ftonone-core\u002Fskills\u002Flens-audit\u002FSKILL.md",true,[],[91,99,106,111,116,123],{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":97,"publishedAt":98},"01M72QSK7R99K8FWYFNYTXJGR2","helm-autoplan","Chained brief-to-decision pipeline. Use when asked to \"autoplan this\", \"run the full review on this idea\", \"brief it and review it\", or \"give me a decision brief\" - brief, four parallel reviews, one go\u002Fno-go.","https:\u002F\u002Fgithub.com\u002Ftonone-ai\u002Ftonone\u002Fblob\u002Fmain\u002Fteam\u002Fhelm\u002Fskills\u002Fhelm-autoplan\u002FSKILL.md",[],[],"2026-11-10 22:39:42",{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":105,"publishedAt":98},"01M72Q6V4CB8E877RT5KJRSSB7","apex-second-opinion","Optional cross-model review of a diff or plan through an external CLI (codex, gemini, llm) already on PATH, with redaction and per-run consent. Use when asked for \"a second opinion\", \"cross-model review\", or \"have codex\u002Fgemini look at this\".","https:\u002F\u002Fgithub.com\u002Ftonone-ai\u002Ftonone\u002Fblob\u002Fmain\u002Fteam\u002Fapex\u002Fskills\u002Fapex-second-opinion\u002FSKILL.md",[],[],{"skillNo":107,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":110,"publishedAt":98},"01M72PDNJ3NS66X4QZ6AM5BG91","https:\u002F\u002Fgithub.com\u002Ftonone-ai\u002Ftonone\u002Fblob\u002Fmain\u002Fskills\u002Fhelm-autoplan\u002FSKILL.md",[],[],{"skillNo":112,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":115,"publishedAt":98},"01M72NV58FG71X4Y7H8E6W721A","https:\u002F\u002Fgithub.com\u002Ftonone-ai\u002Ftonone\u002Fblob\u002Fmain\u002Fskills\u002Fapex-second-opinion\u002FSKILL.md",[],[],{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":122,"publishedAt":98},"01M72NEBG81JH7YNSDXYT8NHHE","helm-office-hours","Forcing-function intake before any brief. Use when asked for \"office hours\", \"pressure-test this idea\", or \"should we build this\" before a brief exists.","https:\u002F\u002Fgithub.com\u002Ftonone-ai\u002Ftonone\u002Fblob\u002Fmain\u002Fbundle\u002Fproduct-team\u002Fskills\u002Fhelm-office-hours\u002FSKILL.md",[],[],{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":129,"publishedAt":98},"01M72NE7AS597YW6999C56CESR","helm-init","Short interview that writes PRODUCT.md, the durable product truth other skills read. Use when asked to \"init product\", \"write PRODUCT.md\", or \"set up product context\". Prefills from README and repo, asks max 6 questions.","https:\u002F\u002Fgithub.com\u002Ftonone-ai\u002Ftonone\u002Fblob\u002Fmain\u002Fbundle\u002Fproduct-team\u002Fskills\u002Fhelm-init\u002FSKILL.md",[],[]]