Data and analytics
- When to use it
- For analysts and the people who rely on their numbers: review SQL for the bugs that quietly inflate a figure, and spec dashboards around a decision instead of every chart that was easy to make.
- Covers
- Define and trust the numbers (2)
- Where you decide
- G9 review — measure → review
- G9.1 human — measure → sign-off
- Size
- 7 skills · 1 loop · 2 gates, 2 need a person
npx skilldrop-cli install --pack data-analytics
Installs 7 skills, including core.
Other ways to install
The pack's loops too, each as an invokable skill:
npx skilldrop-cli install --loop --pack data-analytics
In Claude Code, as a plugin (after /plugin marketplace add sananthanarayan/skilldrop):
/plugin install data-analytics@skilldrop
Into Cursor, Kiro or another IDE:
npx skilldrop-cli install --pack data-analytics --ide cursor
Start here: Check a query before its number goes into a report
Paste this into your agent:
Review this Postgres query before it goes into the finance dashboard. One row per region; customers.customer_id is unique and an order has many order_items. Finance reports in New York time. SELECT c.region, SUM(o.amount_usd) AS revenue_usd FROM orders o JOIN customers c ON c.customer_id = o.customer_id JOIN order_items oi ON oi.order_id = o.order_id WHERE o.created_at BETWEEN '2026-09-01' AND '2026-09-30' GROUP BY c.region;
- Before you start
- A SQL query whose number you need to trust, and the database it runs on
- How to tell it worked
- sql-review opens with a verdict, flags the order_items join as multiplying revenue and the BETWEEN as losing 30 September, gives a corrected query with New York boundaries, and lists verification queries to prove the fix.
- If nothing happens
- If the review jumps to indexes before correctness, ask for it by name ("use sql-review"). If it guesses the database, tell it which one: integer division and timezone functions differ between engines.
A typical session
When: A number matters (a board metric, a finance figure, a team KPI) and people either disagree about it or are about to build a dashboard on it.
You bring:
- the metric name and the question it answers
- the SQL or dashboard already computing it, and the tables it reads
- who reads it and what they decide
- the database engine (Postgres, BigQuery, Snowflake, …)
-
- You
- Run it on the query that reports the number, with the engine and what one output row should represent.
- You get
- A verdict and line-by-line findings, each with the wrong result and corrected SQL, plus the full corrected query and verification queries.
- You decide
- Trust the number, or fix the SQL and review again. If the findings turn on what the number should mean (timezone, exclusions), settle that with the metric's owner first.
-
- You
- Give it the audience, the decision and the list of requested charts.
- You get
- A one-page spec: questions in priority order, one chart per question with its metric named and any undefined one flagged as a build blocker, filters, freshness SLA, layout, and a cut list.
-
- You
- Run it on the dashboard spec before sharing it with the BI team.
- You get
- A verdict and severity-tagged findings with a fix for each.
- You decide
- Hand the spec to the builder, or revise it.
You end with: Reviewed SQL whose number you can defend, and a dashboard spec a BI developer can build without guessing.
Loops
- measure — Take a dashboard request to a spec a BI developer can build on numbers people can defend: the decision it serves and one chart per question, every metric defined, the SQL behind each metric reviewed for the bugs that quietly inflate a figure, and the metric owner's sign-off on each definition before anything is built.
spec → review [G9] → sign-off [G9.1]
Compare Data and analytics with another pack
Skills in this pack (2)
- dashboard-spec Spec a dashboard before anyone builds it — the audience and the decision it serves, the questions in priority order, one chart per question with the chart type and why, the defined metric behind each chart, filters, refresh cadence and freshness SLA, and a list of what is deliberately left off, with vanity metrics cut. Use when the user says "spec a dashboard", "what should go on our KPI dashboard", "the BI team needs requirements for a dashboard", "our dashboard has 40 charts and nobody uses it", or "design the exec dashboard". standard
- sql-review Review a SQL query for correctness first and performance second — join fan-out inflating sums, NULL traps in filters and NOT IN, timezone and date-boundary errors, integer division, DISTINCT hiding a bad join, window-frame defaults, implicit casts, non-sargable predicates and missing partition filters — with each finding tied to a line, the wrong number it produces, and corrected SQL for the named dialect. Use when the user pastes a query and asks "is this right", "review my SQL", "why is this number too high", "check this before it goes in the dashboard", or "make this query faster". heavy
Included from core (5)
- brief-intake Turn raw mess — a Slack thread, meeting transcript, Jira ticket, half-written Notion page, email chain, or paragraph of free-form context — into a structured brief that the downstream skill (adr-generator, design-doc, runbook-generator, exec-summary, slide-outliner) can consume without further intake. Use whenever the user has unstructured source material and is about to invoke another skilldrop skill, or when a draft is missing the load-bearing context the next step will need. standard
- context-graph Map the decisions behind a codebase from its ADRs, RFCs and design records — each record's status and date, what supersedes or amends what, which records cite which, the files and folders each decision governs, and with git the commits that implemented it and the commits that changed each decision's code since it was made, and who made them — then answer "why is it like this?" from the record and check the record is still true. Finds supersessions only one side records, current decisions pointing at code that is gone, code that has drifted from its decision, two current decisions governing the same path, and references to records that don't exist. Use when the user asks "why do we use X", "which decisions govern this file or service", "is this ADR still current", "has the code drifted since we decided this", "are our ADRs out of date", "what was decided before I change this", wants a map of the architecture decisions, or is onboarding onto a codebase's history. standard
- council-review Convene a council of distinct senior-engineer personas (Architect, Security, Operator/SRE, Pragmatist, User-Advocate, plus optional bench seats) to deliberate a decision, design, or code change — each takes an independent stance, the genuine disagreements are surfaced as named cruxes, and a Chair issues a reconciled verdict that records dissents and states what would change the decision. The "Claude Council." Use when a choice has real tradeoffs and one reviewer's voice isn't enough: architecture decisions, risky changes before merge, RFC/design scrutiny, "should we adopt X?", rewrite-vs-refactor, or a pre-mortem. heavy
- doc-critique Review an existing document — ADR, design doc, runbook, exec summary, tech-comparison matrix, deck outline, decision log — and produce a structured critique against the same quality bars the skilldrop generators enforce. Categorizes findings by severity (blocker / major / minor / nit), points to the exact section/line, and suggests a concrete fix for each. Use when the user wants a second-pair-of-eyes review before sharing a doc, or has been handed someone else's artifact and wants to know what to push back on. heavy
- output-hygiene Review agent-written text before it ships and strip the machine artifacts it carries — invisible Unicode, non-breaking spaces, homoglyphs, harness-added provenance trailers, trailing chat closers — then flag the prose tells a script cannot catch, each quoted with a rewrite. Use when the user wants to clean up AI-generated output, asks to remove a Claude watermark, attribution footer, or "Generated with" line, wants a draft that does not read as machine-written, or needs a pre-ship hygiene pass on a document, commit message, or pasted chat answer. standard