Tools | Description |
|---|---|
data_profiling | Profiles only cataloged data sets. Reveals structure, column statistics, null rates, patterns, and value distributions. This tool does not accept file inputs. Call data_quality_cleansing if the user uploads a file. Pass the user prompt verbatim. Correct routing requires the full prompt. |
data_quality_analysis | Analyzes data quality rule execution results and score metrics to identify trends, quality issues, and root causes across data assets. Use this tool when the user wants to evaluate rule outcomes, review data quality scores, or investigate poor data quality scores. Pass the user prompt verbatim. Correct routing requires the full prompt. |
data_quality_cleansing | Detects and resolves data quality issues, such as nulls, format inconsistencies, and standardization gaps, and generates cleansing code or mapplets. Handles file-based profiling for user uploads. Pass the user prompt verbatim. Correct routing requires the full prompt. |
data_quality_rule_generation | Automatically creates, tests, and persists data quality rules from specifications, data sets, or detected data issues. Use this tool to automatically create new data quality rules. Pass the user prompt verbatim. Correct routing requires the full prompt. |
data_quality_rule_recommendation | Recommends and applies existing data quality rules to a data asset based on metadata, usage context, and critical data elements. Use this tool to discover applicable rules for an asset or reduce manual rule selection effort. Pass the user prompt verbatim. Correct routing requires the full prompt. |
get_skill_execution_updates | Returns a slice of a live output stream. Everything in items[] is finished, user-facing text that CLAIRE already produced. Render it to the user before calling this tool again. Do not accumulate items across polls and write one summary at the end. The user is waiting on each slice. A correct final answer delivered all at once is still wrong. ## Loop Call this after invoking a skill with `deferred: true` that returned status: "IN_PROGRESS".
First call: message_id and conversation_id come from context in the initial response; cursor is "0". An empty items[] is normal. If items[] is empty, poll again. render_note is present only when there is output to emit. Do not call other tools between polls unless the user asks something new. ## Rendering contract (mandatory) Render in arrival order. Never summarize, paraphrase, translate, reorder, omit, restructure, rename, or truncate a frame. REASONING_TRACE Verbatim, prefixed "CLAIRE reasoning:" EXECUTION_INSIGHT Verbatim, prefixed "Step:" TOKEN Buffer payload.content between the enclosing STREAM_STATUS STARTED and COMPLETED. Emit the concatenated text as one block on COMPLETED. Never emit individual fragments. A run may span polls. Keep the buffer across calls. STREAM_STATUS. Not rendered; drives the TOKEN flush. HUMAN_PROBE. Verbatim. Stop polling and wait for the user's reply. PLAN. Plan text verbatim, then list suggestedPrompts. ARTIFACT. Render each entry of payload.data[] by viewType: GridView. Markdown table with every column in schema_definitions and every row in items. Use each column's label as the header unchanged. Do not drop columns that look internal, do not shorten cell values, do not split one grid into multiple tables, do not add columns. BlockText The text content only. Strip HTML tags and custom elements such as <infa-grid>; render any text they wrap. If a frame is only markup with no text, render nothing for it. PropertiesView Key/value list TreeView Indented tree GraphView source -> target list DataExploreResult SQL in a code block, then rows AnalyticsView Metric list This list is not exhaustive. For any viewType not listed, render the payload's content faithfully in the closest matching plain-markdown form, preserving every field and value. Never skip an unknown viewType, and never describe an artifact instead of rendering it. Skip only frames whose text is exactly the control marker {"type":"END_OF_ANSWER"}, and BlockText frames that contain no text after markup is stripped. Nothing else is skippable. ## Semantics Stateless — each call is an independent read of the event stream; two clients using the same (conversation_id, message_id) get independent views. Resumable — re-poll with `cursor: "0"` to replay from the beginning after a crash. The server owns cursor advancement; the client passes back the last pagination.cursor unchanged. |
request_upload_url | Generates a one-time PUT URL for uploading a file into a CLAIRE conversation, for use with the profiling and cleansing tools. Call request_upload_url first, then upload the file with the returned curl command. If conversation_id is omitted, a new conversation is created. The URL expires in 5 minutes and is used only once. On HTTP 401 from the PUT URL, call this tool again to create a fresh URL and retry. |