From team-of-agents
Use when analysing data files (CSV, JSON, Excel), writing SQL queries, identifying trends and patterns, building dashboards or charts, summarising metrics, validating data quality, or turning raw data into actionable insights for decision-making.
npx claudepluginhub pranav8494/team-of-agentsThis skill uses the workspace's default tool permissions.
```
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
Guides code writing, review, and refactoring with Karpathy-inspired rules to avoid overcomplication, ensure simplicity, surgical changes, and verifiable success criteria.
Share bugs, ideas, or general feedback.
Define the question before touching the data. A poorly defined question produces misleading
analysis regardless of how clean the data is. Sanity-check every result before presenting —
if the number looks surprising, it is probably wrong.
Use this table to determine what to produce for each task type:
| User asks for | What to produce |
|---|---|
| Data analysis / insight | Question framing checklist completed → data quality check → annotated SQL or Python → findings report in Situation / Finding / Evidence / Implication / Recommendation structure |
| SQL query | Query with explicit column selection, CTE-structured for readability, inline comments on joins and filters, anti-pattern check applied before delivery |
| Data quality audit | Data quality check table (nulls, duplicates, date gaps, unexpected values, join cardinality, referential integrity) with findings and recommended fixes per issue |
| Dashboard / chart design | Chart selection rationale per metric (using selection table below) + chart specs or code; no pie charts for comparison |
| A/B test analysis | Pre-analysis checklist (sample size, randomisation, metric definition) + correct statistical test selection + result with confidence interval + practical significance assessment |
| Trend / time-series analysis | Rolling averages, YoY/MoM comparison, anomaly flags, and explicit statement of whether the trend is statistically meaningful |
| Cohort analysis | Cohort definition, retention curves or comparison table, interpretation of behavioural differences across cohorts |
| Funnel analysis | Step-by-step conversion rates, drop-off identification with absolute and relative figures, hypothesis for top drop-off point |
| Metric definition | Metric name, formula, unit of analysis, time period, numerator/denominator, known data quality caveats, leading/lagging classification |
Before writing a single line of SQL or code:
A poorly specified question produces misleading analysis. Restate the business question in analytical terms and confirm alignment before proceeding.
| Check | What to look for | Fix |
|---|---|---|
| Null rate | Unexpected high % of nulls in key columns | Clarify whether nulls are structural or a pipeline bug |
| Duplicate rows | COUNT(*) vs COUNT(DISTINCT id) | Identify source of duplication; deduplicate with ROW_NUMBER() |
| Date range gaps | Missing dates in a time series | Investigate pipeline; fill with zeroes or flag |
| Unexpected values | Values outside expected domain (negative prices, future dates) | Filter with justification; document |
| Join explosion | Row count after join > row count before | Check join cardinality; add DISTINCT or aggregate first |
| Referential integrity | IDs in fact table with no match in dimension table | Identify orphaned rows; decide whether to exclude or report |
Always profile data shape (COUNT, MIN, MAX, AVG, null counts) before writing the main analysis query.
| Anti-pattern | Problem | Fix |
|---|---|---|
SELECT * in production queries | Returns unnecessary columns; breaks on schema changes | Select only the columns you need |
| Filtering after joining | Joins a full table then discards most rows | Filter in a subquery or CTE before joining |
| Implicit join in WHERE clause | Hard to read; easy to accidentally produce a cartesian product | Use explicit JOIN ... ON |
| Correlated subquery in SELECT | Executes once per row — extremely slow on large tables | Rewrite as a lateral join or pre-aggregated CTE |
COUNT(DISTINCT) without checking cardinality | May return misleading results on high-cardinality columns | Profile cardinality first; consider HLL approximation for very large sets |
Window function without PARTITION BY when needed | Computes aggregation over the entire dataset | Add correct PARTITION BY clause |
| Hardcoded date literals | Breaks as time passes | Use relative expressions (CURRENT_DATE - INTERVAL '30 days') |
| Analysis type | Question it answers | Key technique |
|---|---|---|
| Descriptive | What happened? What does the data look like? | Summary stats, distributions, histograms |
| Diagnostic | Why did a metric change? | Segment decomposition, contribution analysis, drill-down |
| Trend / time-series | Is this improving or degrading over time? | Rolling averages, YoY/MoM comparison, anomaly detection |
| Cohort analysis | How do different user cohorts behave over time? | Retention curves, cohort comparison tables |
| Funnel analysis | Where are users dropping off in a flow? | Step-by-step conversion rates, drop-off identification |
| A/B test | Does this change improve the metric? | t-test, Mann-Whitney, confidence intervals, practical significance |
| Situation | Correct test | Watch out for |
|---|---|---|
| Two-sample mean comparison | t-test (normal distribution) or Mann-Whitney (non-normal) | Small sample sizes inflate false positive rate |
| Proportions comparison (conversion rates) | z-test for proportions or chi-square | Low event counts make results unreliable |
| Multiple metrics simultaneously | Bonferroni correction or FDR adjustment | Inflated Type I error if testing many metrics |
| Non-stationary time series | Use differencing before testing | Spurious correlations from shared trends |
Critical distinctions:
Correlation ≠ causation. Identify and flag confounding variables. Simpson's Paradox: an aggregate trend can reverse when data is segmented.
| Question | Chart type | Avoid |
|---|---|---|
| Comparison across categories | Bar chart (horizontal for many categories) | 3D bar charts, pie charts |
| Trend over time | Line chart | Bar chart for continuous time series |
| Distribution shape | Histogram, box plot | Average only (hides distribution) |
| Two-variable relationship | Scatter plot | Line chart for non-sequential data |
| Part-to-whole | Stacked bar, treemap | Pie chart (hard to compare slices) |
| Funnel drop-off | Funnel chart, horizontal bar | Pie chart |
| Geographic distribution | Choropleth map | Table with country names only |
Never use pie charts for comparison — human perception cannot accurately compare arc lengths. Use a bar chart.
Structure every analysis report as:
Lead with the insight, not the methodology. The SQL and Python go in an appendix.
Qualify uncertainty honestly:
End every response with a confidence signal on its own line:
CONFIDENCE: [High|Medium|Low] — [one-line reason]
If the task is outside this skill's scope or you lack the information needed to proceed, return this instead of a confidence signal:
BLOCKED: [reason] — [what information would unblock this]
Do not guess or produce low-quality output to avoid returning BLOCKED. A precise BLOCKED is more useful than a low-confidence guess.