Analytics Product
sickn33/agentic-awesome-skills
Analytics de produto — PostHog, Mixpanel, eventos, funnels, cohorts, retencao, north star metric, OKRs e dashboards de produto.
Classify every analytical request (anything about data, metrics, trends, segments, funnels, revenue, retention, experiments, or "why did X change") into complexity levels L1-L5 and route it before…
$ npx skills add ai-analyst-lab/ai-analyst --skill question-router -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ai-analyst-lab/ai-analyst question-router --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ai-analyst-lab/ai-analyst.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/question-router .claude/skills/question-router && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "question-router" agent skill from https://github.com/ai-analyst-lab/ai-analyst/tree/main/.claude/skills/question-router into .claude/skills/question-router/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "question-router", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ai-analyst-lab/ai-analyst/tree/main/.claude/skills/question-routerType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ai-analyst-lab/ai-analyst --skill question-router -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ai-analyst-lab/ai-analyst question-router --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ai-analyst-lab/ai-analyst.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/question-router .agents/skills/question-router && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "question-router" agent skill from https://github.com/ai-analyst-lab/ai-analyst/tree/main/.claude/skills/question-router into .agents/skills/question-router/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "question-router", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ai-analyst-lab/ai-analyst --skill question-router -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ai-analyst-lab/ai-analyst question-router --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ai-analyst-lab/ai-analyst.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/question-router .cursor/skills/question-router && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "question-router" agent skill from https://github.com/ai-analyst-lab/ai-analyst/tree/main/.claude/skills/question-router into .cursor/skills/question-router/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "question-router", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ai-analyst-lab/ai-analyst.git --path .claude/skills/question-router--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ai-analyst-lab/ai-analyst --skill question-router -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ai-analyst-lab/ai-analyst question-router --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ai-analyst-lab/ai-analyst.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/question-router .gemini/skills/question-router && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "question-router" agent skill from https://github.com/ai-analyst-lab/ai-analyst/tree/main/.claude/skills/question-router into .gemini/skills/question-router/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "question-router", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ai-analyst-lab/ai-analyst question-routerInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ai-analyst-lab/ai-analyst --skill question-router -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ai-analyst-lab/ai-analyst.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/question-router .github/skills/question-router && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "question-router" agent skill from https://github.com/ai-analyst-lab/ai-analyst/tree/main/.claude/skills/question-router into .github/skills/question-router/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "question-router", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ai-analyst-lab/ai-analyst --skill question-router -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ai-analyst-lab/ai-analyst question-router --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ai-analyst-lab/ai-analyst.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/question-router .opencode/skills/question-router && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "question-router" agent skill from https://github.com/ai-analyst-lab/ai-analyst/tree/main/.claude/skills/question-router into .opencode/skills/question-router/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "question-router", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
question-routerClassify every analytical request (anything about data, metrics, trends, segments, funnels, revenue, retention, experiments, or "why did X change") into complexity levels L1-L5 and route it before…
Question Router is an agent skill from ai-analyst-lab/ai-analyst. Classify every analytical request (anything about data, metrics, trends, segments, funnels, revenue, retention, experiments, or "why did X change") into complexity levels L1-L5 and route it before any analytical workflow starts, including follow-ups mid-analysis and chart requests. Simple lookups get a direct answer; investigations get the depth they need. Run this first even when the question looks simple.
Its SKILL.md is about 4.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: AI Product Analyst — Claude Code-powered data analysis toolkit. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 52c0744. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Question Router loads about 4.1k tokens when it runs. Until then it costs about 107 tokens; SKILL.md has 2,040 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from ai-analyst-lab/ai-analyst at commit 52c0744, republished under its MIT licence (© ai-analyst-lab). 2,040 words, ~4,125 tokens.
.claude/skills/question-router/SKILL.md (or your agent's skills folder).Classify incoming user questions into complexity levels (L1-L5) and route them to the appropriate response path.
Pattern: User wants a specific number or fact from the data. Examples:
Response path: Query the data directly. Return the answer with source citation (table, column, filter). No agents needed.
Pattern: User wants to compare two things or see a breakdown. Examples:
Response path: Query + quick chart. Use chart_helpers directly.
Apply Visualization Patterns skill. No full pipeline.
Pattern: User has a specific analytical question requiring multiple steps. Examples:
Response path: Subset of the pipeline — Frame → Explore → Analyze → Validate → Present findings. Skip storyboard/deck unless requested. Use 3-5 agents.
Pattern: User needs root cause analysis, opportunity sizing, or experiment design. Examples:
Response path: Full pipeline minus deck. Frame → Hypothesize → Explore → Analyze → Root Cause → Validate → Size → Present findings. Use 6-10 agents.
Pattern: User wants a complete analysis with a polished slide deck. Examples:
/run-pipelineResponse path: Complete 18-step pipeline. All agents, full storyboard, charts, narrative, and Marp deck.
Before running the full classification workflow, check if the question matches an obvious L1 pattern. If YES, skip to L1 execution immediately. If NO or UNCERTAIN, proceed to Step 0.
Trigger phrases for fast-path L1:
Do NOT fast-path if:
Why fast-path matters: L1 questions don't benefit from the full classification overhead. The user wants a quick answer, not a classification report. Fast-path saves ~40 seconds and ~7-9k tokens for simple lookups.
Output format for fast-path L1:
If you use the fast-path, you're done — don't proceed to Step 0 or beyond.
Enrichment steps — never block routing. If any sub-step fails, skip it silently. IMPORTANT: Only report pre-flight findings if they actually find something. Silent skip if nothing found.
Feedback check — If the message is a correction or feedback with no
analytical question, hand it to the log-correction skill and skip routing.
Entity disambiguation — If the entity index is loaded (from bootstrap):
resolve_entity(query_text, entity_index) from
helpers/knowledge/entity_resolver.py.format_disambiguation(matches) and set
{{RESOLVED_ENTITIES}} for downstream agents.Corrections check — Read .knowledge/corrections/index.yaml.
total_corrections > 0 for the active dataset, set
{{CORRECTION_COUNT}} so analysis agents check the correction log
before writing SQL (e.g., known join pitfalls, filter requirements).Dataset detection — Before classifying, check whether the question references a dataset other than the currently active one.
.knowledge/datasets/ to get all known dataset IDs and display names./switch-dataset {id})"Archaeology note — The Query Archaeology skill provides SQL pattern context (prior queries, reusable CTEs) to analysis agents when available. No action needed here — just acknowledge it flows downstream automatically.
After pre-flight completes, proceed to Step 1.
Extract:
Classify by the strongest signal present, in this order: /run-pipeline or
"deck / presentation / slides" → L5; "why / investigate / root cause", sizing or
opportunity, experiment or A/B test → L4; "analyze / what's happening with", or a
question with several sub-questions → L3; "compare / by {dimension} / breakdown /
split" → L2; a single number → L1. A "quick" or "just" qualifier drops one
level. When two levels are equally supported, take the lower one (prefer the
faster response).
If .knowledge/user/profile.md exists, read the user's preferences:
Pace mode is orthogonal to complexity level. Level decides which agents run; pace decides how visible the machinery is. Any level can run in any mode.
| Mode | Behavior | Best For |
|---|---|---|
| guided | Announce each phase. Run it. Pause. Wait for /continue (or any affirmative reply) before the next phase. | Demos, teaching, first-time users, high-stakes analyses where oversight matters |
| narrated | Announce each phase, run it, announce the result, proceed immediately to the next phase. End-to-end but machinery is visible. | Normal use — the user wants to follow the reasoning but not block the flow |
| autopilot | Silent end-to-end. No phase banners. Final output only. | Expert users, tight iteration loops, mid-analysis follow-ups |
Default when no signal is clear: narrated. Never default to guided (blocks the
user) or autopilot (hides the work). Narrated is the failure-safe middle ground.
Read these from the user's message and session context. Pick guided on
teaching or pacing language ("walk me through", "teach me", "step by step",
"slow down", "one step at a time") or a technical_level: beginner profile.
Pick autopilot on "just run it / silent / don't narrate", a terse task-like
prompt ("conversion by device last week"), a mid-analysis follow-up ("now break
by country"), or an advanced profile in a session that has already run several
analyses. Otherwise, including a bare /run-pipeline, pick narrated. A
/pace choice persisted this session overrides all of these (see below).
On every router run, read working/session_state.yaml. If pace_mode is set,
use it as the starting mode regardless of auto-detected signals — an
explicit user choice beats heuristics.
The /pace skill writes this key. On session resume (/resume-pipeline), the
persisted mode is honored.
/pace guided | /pace narrated | /pace autopilot — switch modes/continue — in guided mode, proceed past the current pause point/skip {phase} — skip the named upcoming phase (e.g., /skip validation)/explain — during a guided pause, expand on the output of the phase that
just completed before continuing/abort — stop the current analysis, discard in-progress work (preserve
working/ artifacts for inspection)For L1-L2: Execute immediately. No confirmation needed. Streamlined output:
For L3-L5: Brief the user on the plan AND the pace BEFORE executing:
I'd classify this as a **[Level] — [Label]**.
**Pace: {mode}** ({one-line rationale — e.g., "detected teaching signals",
"default for L3+", "persisted from earlier `/pace` command"})
- guided → I'll pause after each phase and wait for `/continue`.
- narrated → I'll announce each phase and run end-to-end.
- autopilot → I'll run silently and show you the final deliverable.
**Plan:**
1. [Phase name] — [one-line purpose]
2. [Phase name] — [one-line purpose]
...
Reply to proceed, or:
- `/pace {other_mode}` to change how I surface the work
- Adjust the scope in your own words ("skip validation", "go deeper on X")Include any relevant pre-flight findings (dataset mismatch, corrections available, resolved entities) in this confirmation message.
The user can:
/pace guided|narrated|autopilot → re-brief with new paceWhen routed to L3+, the Question Router hands off to the appropriate agents by setting the entry point in the Default Workflow:
| Level | Entry Point | Exit Point | Validation Tier |
|---|---|---|---|
| L1 | Direct query | Answer inline | Tier 1 only (always-on) |
| L2 | Direct query + chart | Answer inline | Tier 1 only (always-on) |
| L3 | Step 1 (Frame) | Step 7 (Validate) — present findings inline | Tier 1 always + Tier 2 offered (CP 2.1) |
| L4 | Step 1 (Frame) | Step 8 (Size) — present findings inline | Tier 2 default (CP 2.1 menu) |
| L5 | Step 1 (Frame) | Step 18 (Close the Loop) — full deck | Tier 2 default, Tier 3 available (CP 2.1 menu) |
After delivering results at any level, offer 2-3 relevant next actions based on what was just completed. Match suggestions to the level and findings.
After L1/L2 results:
After L3 findings:
After L4 investigation:
After L5 deck delivery:
/archive)"/export)"Always tailor suggestions to the actual findings — reference specific metrics, segments, or anomalies discovered. Generic suggestions ("want to know more?") are not helpful.
working/ artifacts untouched./pace X takes effect at the next phase
boundary, never mid-phase. Tell the user which phase it applies from./pace argument: Echo the valid modes and ask which they want;
do not silently fall back.working/session_state.yaml write fails: Honor the requested mode for
the current session in memory. Warn the user: "Pace set to X for this
session but I couldn't persist it — /pace X again after resume." Never
let a persistence failure block the analysis.Every time a skill or agent begins executing inside an L3+ analysis, emit a phase banner so the user can see the machinery. This is the entire point of narrated and guided modes.
Opening banner:
▶ Phase {n}/{N}: {Skill or Agent Name}
Why: {one-line reason this phase is firing now}
Input: {brief summary — not a dump — of what's being fed in}Closing banner:
✓ {Phase name} complete — {one-line result summary}In guided mode, append to the closing banner:
Reply to proceed, or: /explain (expand on this phase), /skip (skip next),
/pace {mode} (change pace), /abort (stop).On failure:
✗ {Phase name} failed — {reason}.
Options: retry (reply "retry"), skip (reply "skip"), abort (/abort).Mode-specific rules:
| Mode | Opening banner | Work | Closing banner | Pause? |
|---|---|---|---|---|
| guided | ✓ | ✓ | ✓ + prompt | yes |
| narrated | ✓ | ✓ | ✓ | no |
| autopilot | — | ✓ | — | no |
© ai-analyst-lab, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/question-router of ai-analyst-lab/ai-analyst.
Open the folder on GitHubat commit 52c0744
Question Router next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Question Router this skillai-analyst-lab/ai-analyst | 304 | — | ~4.1k | Automated safety check: Pass | MIT | |
| Analytics Productsickn33/agentic-awesome-skills | 47k | 2 repos | ~2.8k | Automated safety check: Pass | MIT | |
| Analytics Trackingalirezarezvani/claude-skills | 28k | 1 repos | ~3.8k | Automated safety check: Pass | MIT | |
| Product Metrics Dashboard Designphuryn/pm-skills | 27k | — | ~1.3k | Automated safety check: Pass | MIT | |
| Analyticsgetsentry/sentry | 46k | — | ~2.5k | Automated safety check: Pass | Custom licence | |
| North Star Metricphuryn/pm-skills | 27k | — | ~1k | Automated safety check: Pass | MIT |
sickn33/agentic-awesome-skills
Analytics de produto — PostHog, Mixpanel, eventos, funnels, cohorts, retencao, north star metric, OKRs e dashboards de produto.
alirezarezvani/claude-skills
Set up, audit, and debug analytics tracking implementation — GA4, Google Tag Manager, event taxonomy, conversion tracking, and data quality.
phuryn/pm-skills
Designs a product metrics dashboard: a North Star and input metrics, a definition table with data sources, chart types and alert thresholds, and a screen layout.
getsentry/sentry
Instrument and discover analytics events in Sentry's frontend UI.
phuryn/pm-skills
Define a North Star Metric and 3-5 supporting input metrics that form a metrics constellation.
PostHog/posthog
Diagnose why a product metric changed (dropped, spiked, or plateaued) by orchestrating breakdowns, actors, paths, lifecycle, retention, and annotations queries.
ai-analyst-lab/ai-analyst
Never present a metric or number in isolation; anchor every number to a comparison (prior period, benchmark, or another segment) or state that none is available.
ai-analyst-lab/ai-analyst
Retrieve proven SQL patterns, table cheatsheets, and join patterns from .knowledge/query-archaeology/ so past work gets reused.
ai-analyst-lab/ai-analyst
Save completed analyses to the knowledge system's analysis archive for future reference.
ai-analyst-lab/ai-analyst
Verify Google Workspace MCP authentication at the start of any session that needs Google APIs (Docs, Slides, Drive).
ai-analyst-lab/ai-analyst
Causal inference toolkit for when experiments are not possible: estimate treatment effects from observational data with assumption checks and mandatory caveats.
ai-analyst-lab/ai-analyst
Standardized workflow for uploading local chart PNGs to Google Drive and making them available for insertion into Google Docs and Slides.
Classify every analytical request (anything about data, metrics, trends, segments, funnels, revenue, retention, experiments, or "why did X change") into complexity levels L1-L5 and route it before…. Question Router is an agent skill from ai-analyst-lab/ai-analyst. Classify every analytical request (anything about data, metrics, trends, segments, funnels, revenue, retention, experiments, or "why did X change") into complexity levels L1-L5 and route it before any analytical workflow starts, including follow-ups mid-analysis and chart requests.
Run `npx skills add ai-analyst-lab/ai-analyst --skill question-router -a claude-code`. Or copy the skill folder (.claude/skills/question-router in ai-analyst-lab/ai-analyst) into .claude/skills/question-router in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ai-analyst-lab/ai-analyst --skill question-router -a codex`. Or copy the skill folder (.claude/skills/question-router in ai-analyst-lab/ai-analyst) into .agents/skills/question-router in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ai-analyst-lab/ai-analyst --skill question-router -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/question-router, .gemini/skills/question-router, .github/skills/question-router and .opencode/skills/question-router in your project.
SKILL.md names no scripts, command-line tools or credentials: Question Router is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Question Router is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.1k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Question Router: Analytics Product (sickn33/agentic-awesome-skills, 47k stars), Analytics Tracking (alirezarezvani/claude-skills, 28k stars), Product Metrics Dashboard Design (phuryn/pm-skills, 27k stars) and Analytics (getsentry/sentry, 46k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ai-analyst-lab (a GitHub organization) maintains it in ai-analyst-lab/ai-analyst, which has 304 GitHub stars. The repository holds 43 skills in this directory. The repository was last updated on September 30, 2026.
Source: ai-analyst-lab/ai-analyst on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.