技能创建器
skill-creator
创建、改进和评估自定义技能,把专业流程转化为可重复使用的 AI 能力。
query-debugging【数据与研究】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.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
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:
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.
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.
Tableau, Power BI, MCP, …); how you tell a dashboard's query from an MCP or deep-analysis run.include_sql. Clients that submit a semantic field list (MCP, deep analysis) have no original SQL.include_yaml returns the attributes/metrics/filters the run resolved to — what you reproduce or alter a query from.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.
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:
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.Use get_sql_from_fields between rounds to watch the offending SQL fragment appear or disappear with the culprit field.