agentleFS
honeydew-aihoneydew-ai/honeydew-ai-coding-agents-plugins/skills/query-debugging/SKILL.md

query-debugging

Skill43 starsChanged 7 months agoApache-2.0View on GitHub

Use when the user wants to review or inspect past query executions in Honeydew — what ran, from which client (BI tools, SQL interface, MCP, deep analysis), the semantic definition or compiled SQL behind a run, who ran it and when — and to debug failures. Uses the list_query_history MCP tool. For running new queries or analysis use the query skill.

The file

We split this skill into the rules it gives an agent

3 rules. About 0 are common, 1 is distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Keep include_yaml / include_sql off for the initial scan.

    line 36
  2. Distinctive:

    Isolate an internal error (minimal reproduction): when the error is generic ("internal error"/compilation crash) and names no field, bisect:

    line 46
  3. Very specific:

    Use get_sql_from_fields between rounds to watch the offending SQL fragment appear or disappear with the culprit field.

    line 53

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Overview

Honeydew records every query executed through the semantic layer — MCP tools, BI tools over the SQL/XMLA interfaces (Tableau, Power BI, …), scheduled jobs, and deep analysis. Use list_query_history (from the honeydew MCP server) to see what ran, who ran it, from which client, and how, and to drill into any run's semantic definition or compiled SQL. Debugging failures is one use, not the only one.

Reach for this skill on questions like:

  • "What ran against this domain today, and from which clients?"
  • "Which BI tool queried this model, and what did it send?"
  • "Show me the queries my last deep analysis generated."
  • "Why did my query fail? Show me its SQL."

For running a new query, use the query skill. This skill inspects queries that already ran.

The tool's description and parameter schema cover the exact arguments and response fields; this skill covers what they can't — when to reach for it, how to read the results, and the workflows.


Prerequisites

Query history is scoped to the session's workspace — check with get_session_workspace_and_branch, and set one via the workspace-branch skill if needed. Non-admin callers see only their own queries; admins see all and can filter by user_in.


Reading the Results

  • client — where the query came from (Tableau, Power BI, MCP, …); how you tell a dashboard's query from an MCP or deep-analysis run.
  • original SQL vs. compiled SQL — SQL-interface clients (Tableau, Power BI) carry the original SQL the client sent, before compilation; the compiled warehouse SQL comes from include_sql. Clients that submit a semantic field list (MCP, deep analysis) have no original SQL.
  • semantic definition — include_yaml returns the attributes/metrics/filters the run resolved to — what you reproduce or alter a query from.
  • app link — always show it so the user can open the query in Honeydew.

Keep include_yaml / include_sql off for the initial scan; enable them only on the run you're drilling into. Deep analysis lands here too — each initiate_analysis step runs semantic-layer queries, so this is where you inspect what an analysis actually computed per step.


Workflows

Review / audit: list the relevant slice (by domain, client, user, or time window) and read client, owner, status, and timestamps. Add include_yaml / include_sql on a specific run to reproduce or explain it.

Debug a failure: list with status_in="FAILED", read the error message, then re-list that query with include_yaml=true to see the fields that failed (add include_sql=true for warehouse-side errors — permissions, missing table). Reproduce with get_data_from_fields from the YAML and fix (see the query and filtering skills), then report what failed, the app link, and the fix.

Isolate an internal error (minimal reproduction): when the error is generic ("internal error"/compilation crash) and names no field, bisect:

  1. Pull the failed query's YAML (include_yaml=true) and rebuild it verbatim as an ad-hoc get_data_from_fields call. Confirm it still errors — if not, the cause is environmental (branch, data, transient), not the query.
  2. Drop attributes/metrics/filters and re-run, halving the field set each round; keep whichever half still errors.
  3. Converge to the smallest failing query. The field whose removal clears the error — or the minimal combination that only fails together — is the culprit.
  4. Report that minimal field list plus its compiled SQL — far more actionable than the original wide query.

Use get_sql_from_fields between rounds to watch the offending SQL fragment appear or disappear with the culprit field.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.