“where are we?”
assist
General reasoning over your data world — answers questions the specific skills don't cover, explains what's happening, and orients you. Uses the read-only tools to ground every answer.
The catalog
Everything below ships today and runs by asking — no modules to license, no implementation project, no training course. Answers come back with the proof attached; anything that would change your data shows you exactly what happens first and waits for your yes.
“where are we?”
General reasoning over your data world — answers questions the specific skills don't cover, explains what's happening, and orients you. Uses the read-only tools to ground every answer.
“Where do I have a wellhead pressure column?”
Locate datasets/tables that CONTAIN given column names when the user doesn't know which dataset holds them — searches cataloged column metadata first, then connected-source schemas. Returns ranked candidates; never reads data content.
“What were total sales by region last quarter?”
Answer a natural-language question about one or more datasets — aggregations, filters, comparisons, trends, and COUNTS (how many rows / records are in a dataset) — with a verified, show-your-work SQL answer.
“Bring up yesterday's chat”
Bring back a past conversation — 'bring up yesterday's chat', 'open the ILI thread from last week' — by date phrase and/or topic; returns the matching threads to reopen.
“What columns does this dataset have?”
Describe a dataset from catalog METADATA — instantly and for free: what columns does it have, their names and data types, how many rows and columns, its size, where it came from (source connection/table), and its general shape/schema. Use for 'what columns does this dataset have', 'what's the schema', 'how many rows', 'describe this dataset', 'what type is the X column'. (For STATISTICS — distributions, null rates, uniqueness, quality scores — that's profile_dataset, which runs a real scan.)
“Where's my data from MyAppDb?”
List and GROUP the user's DATASETS by their ORIGIN — which source connection / edge device / cloud store / warehouse each dataset came from. Answers \"where's my data from <connection>\", \"what did I import from <connection>\", \"show my edge datasets\", \"list my datasets by source/connection\", \"which datasets came from <connection>\", \"show my datasets grouped by where they came from\". Groups by origin (File Uploads / Databases / Edge Devices / Cloud / Warehouses / NoSQL / API / Pipeline outputs / Kaarvi-generated) using the backend origin taxonomy. (For ONE dataset's columns/schema use describe_dataset; for the connections themselves — health, reconnect — use manage_connections.)
“Actually, undo that”
Undo an applied data fix on the working copy — 'undo that last fix', 'roll back the median imputation on pressure'. Restores the fix's pre-state from its undo snapshot; every OTHER applied fix is preserved. The original dataset is untouched (fixes live on a working copy until promoted).
“Throw the cleanup away”
Throw away the staged cleanup on a dataset — 'discard the cleanup', 'throw those changes away'. Drops the working copy and ALL its applied fixes permanently (stated before you confirm). The original dataset is untouched.
“Promote it — replace the original”
Promote the cleaned working copy — REPLACE the original dataset with the fixed data ('promote it', 'make the cleaned version the real one'). The original is preserved in a backup and can be put back ('put the original back'). Export-as-new is a different act (save_results).
“Put the original back”
Put the original back — restore a PROMOTED dataset from the backup taken at promote time ('put the original back', 'restore the pre-cleanup data'). The restored row count is reconciled exactly against the backup before finalizing. This is a terminal act: the current (promoted) data is retained as a named, inspectable snapshot for the audit trail — there is no one-command reinstate.
“Show me everything I've changed so far”
Show everything changed so far on a dataset's staged cleanup — the original-vs-now diff ('show me everything I've changed', 'what did the cleanup do?'). Read-only; paginated at the SQL level so it stays bounded on any size.
“Show me the result”
Show the data itself, paginated — 'show me the rows', 'let me see the result', 'give me the complete list', 'a full list I can scroll', 'preview page 2'. Working-copy-aware: after a cleanup it shows the FIXED data, and mode='compare' shows original vs cleaned side-by-side with the changed rows marked. Read-only; SQL-paginated so it stays bounded on any size.
“Profile the customers dataset”
Profile a dataset's quality: column stats, null/distinct counts, type inference, and quality score. Use to summarize or assess the health of a table.
“Fix the missing emails in customers”
Detect and fix data quality issues (missing values, duplicates, outliers, type mismatches) on a working copy. Always previews before applying.
“Are there any anomalies in the sensor readings?”
Find statistical outliers in a dataset — z-score, IQR, and MAD (modified z-score), all computed full-scale in the database (all rows) and consensus-ranked: columns flagged by more methods rank first. isolation_forest joins on request (bounded ML, honestly labeled).
“What's the primary key of this table?”
Detect candidate primary keys — single-column AND composite (column combinations) — plus foreign-key relationships in a dataset, with measured uniqueness. Screens on a bounded sample, verifies survivors exactly.
“Validate that order_id is unique”
Run a data validation check (PK integrity, range, freshness, pattern, cross-field, type) and optionally write the results back.
“Re-profile customer_events now”
Refresh a dataset's catalog truth: recompute its metadata and quality statistics (row/column counts, score, factors) when they've gone stale. A governed act — never re-ingests data.
“Undo that re-profile”
Undo a re-profile: put a dataset's catalog numbers (row/column counts, quality score, last-profiled) back to what they were before the last refresh. The governed reverse of reprofile_dataset — restores from the act's receipt, never re-ingests.
“Is the data quality of table 42 improving?”
Answer 'is my data quality improving?' — the quality-score history of a table over its recent reports (overall/completeness/accuracy/consistency), with the direction of travel. Read-only and free.
“Clean this dataset”
One conversational cleaning session — 'clean this dataset': detect the quality issues, show the ranked fix plan, and on your confirm apply the SAFE fixes (imputation, trims, exact-duplicate removal) on a reversible working copy. Risky fixes are listed for individual confirmation via fix_data, never auto-applied.
“What can you do about drift on this table?”
Enumerate what Kaarvi can fix and how — the engine's own fix vocabulary: every issue family, its EXACT strategy names, SAFE/RISKY class, parameter shapes, best-fit hints, and scale notes. Use it before recommending or applying a fix ('what can you do about drift?', 'how can you merge near-duplicate names?'). The full menu also enumerates the pipeline transform vocabulary (declarative ops, node types, trigger kinds, publish/reverse verbs), the governed PII masking actions ('what ways can you mask a phone number?'), and the anomaly-repair families. Read-only registry metadata — free, no data touched.
“Stop watching this dataset”
Turn Kaarvi's standing quality watch on a dataset off or back on — 'stop watching this dataset' / 'stop the standing re-profile on staging_events' ends its periodic re-sense and its quality-trajectory forecast notices; 'watch it again' resumes them. Persistent (survives restarts) and reversible by saying so. Event-driven snapshots from your own actions are unaffected.
“Revoke the key called ci-deploy”
Revoke one of your personal API keys by name ('revoke the CI key') — permanent by design: the platform mints a new key instead of reviving an old one. Creating a key stays in Settings: the secret is shown exactly once there, and a conversation is a persisted record it must never enter. (To just SEE your keys, list_api_keys is the free read.)
“What API keys do I have?”
Show your personal API keys — names, prefixes, expiry, last use, usage counts; never the secret itself. 'What API keys do I have?', 'show my API keys'. Read-only and free — an observation never sits behind a confirm card (honest-action law). (To revoke one, manage_api_keys is the act; to mint one, Settings → API Keys.)
“Automate this”
Move a capability up or down the autonomy ladder — the six rungs (watch, notice, propose, do with approval, do under lease, standing) that govern what Kaarvi may do on its own. 'Automate this', 'do this on your own from now on', 'stop automating fix data', 'retire fix data'. Promotion to an autonomous rung composes a bounded lease first; every move is confirmed, recorded, and reversible. Org defaults are admin-only. (To just SEE the ladder, show_autonomy_map is the read.)
“Show the autonomy map”
Show the autonomy map — where every capability sits on the six-rung ladder (watch, notice, propose, do with approval, do under lease, standing), which leases back the autonomous rungs, and what Kaarvi may do without asking. 'Show the autonomy map', 'what can you do without asking', 'what can you do on your own'. Everyone sees their own map; admins can ask org-wide. Read-only and free. (To MOVE a rung — 'automate this', 'stop automating X' — manage_autonomy is the confirmed act.)
“Mask the salary column on Payroll for analysts”
Set or remove column-masking policies by talking — the column-level RBAC rules the gateway's deny map enforces. Dataset-scoped ('mask salary on Payroll for analysts') or identity-class-scoped ('mask every SSN-classified column org-wide'). Removing a rule is the built-in undo, and every change is audited and takes effect immediately. Org-admin only. (To just SEE the rules, show_column_policies is the free read.)
“What column policies do we have?”
List this organization's column-masking policies — which columns are masked, on which dataset or identity class, for which roles, in which style. 'What column policies do we have?', 'which columns are masked?'. Read-only and free; org-admin only (the rules themselves are governance state). (To set or remove a rule, manage_column_policies is the act.)
“Did the ST2 wave pass its gate?”
Build-truth from the platform's own gate receipts — for free: whether a wave's most recent gate run was green or red and when, per epic or overall. Use for 'did the ST2 wave pass its gate', 'is everything you've built actually running', 'which waves are red', 'build status'.
“Send my reports as reports@acme.com”
Change or clear the From identity Kaarvi's emails use — yours, your organization's (admin), or the platform default (superadmin). 'Send my reports as reports@acme.com', 'clear the org sender'. Changing the identity re-verifies the sender before the next send, and the reply says so. First-time provider/credential setup lives in Settings — secrets never enter a conversation. (To just SEE the sender picture, show_email_senders is the free read.)
“Who do our emails send as?”
Show the From identity Kaarvi's emails use at a scope — yours, your organization's (admin), or the platform default (superadmin) — with its verification state; secrets appear only as presence flags, never values. 'Who do our emails send as?', 'what sender do my reports use?'. Read-only and free. (To change or clear it, manage_email_senders is the act.)
“Does this table contain PII?”
Scan a dataset for personally identifiable information (emails, names, SSNs, phone numbers, addresses) and flag affected columns.
“Classify the sensitivity of these columns”
Classify a dataset's columns by sensitivity / data category using AI (public, internal, confidential, restricted).
“What's the governance status of my data?”
Summarize governance posture: classification coverage, compliance, ownership, and drift — answerable for a dataset or the whole org.
“Is this data GDPR compliant?”
Scan a dataset against compliance frameworks (GDPR, HIPAA, SOC2, PCI, …) and report violations.
“Apply the PII-masking policy to these tables”
Evaluate or enforce a governance policy against datasets, detecting conflicts and blocking violations per the enforcement mode.
“That's not PII, the email_hash column is public”
Correct a column's data classification in conversation ('that's not PII', 'this should be Confidential') — records the correction as governed feedback that recalibrates future automatic classification. The learning loop: your corrections make Kaarvi's classification better over time.
“Classify and tag the customers dataset”
Run automatic sensitivity/PII/PHI classification on a dataset and RECORD the results — tags columns in the governance register and the catalog, which drives column masking for non-privileged users. Preview shows what will be tagged before anything is written.
“Always confirm any changes to fix data with me”
Set a standing ORG governance rule on Kaarvi's autonomy — a boundary that sits ABOVE any lease. 'Always confirm any changes to fix data with me', 'never auto-run cleanups without asking', 'list our standing rules', 'lift that rule'. The rule forces Kaarvi to check with a human before the covered kind of change, even under a standing authorization. Setting or lifting a rule is org-admin only, recorded, and reversible.
“invite jane@acme.com as an admin”
Invite a person by email to join YOUR organization with a role ('invite jane@acme.com as an admin', 'send an invite to bob@acme.com'). Org-admin only. The invite is always scoped to your own org and expires after a set window. Preview shows the email, role, org and expiry before you confirm — nothing is sent until you do.
“make bob@acme.com an admin”
Assign a role to a user in YOUR organization ('make bob@acme.com an admin', 'give jane the user role'). Org-admin only. The user is resolved by email WITHIN your org, and the same privilege ceiling as the console applies — a non-superadmin cannot grant a superadmin/globally-privileged role. Preview shows the user's current roles and the target role before you confirm.
“cap our monthly spend at $5,000”
Set or update your organization's monthly spending cap in dollars ('cap our spend at $5,000 a month', 'set a spending limit'). Billing-admin only. Preview shows the current cap, the new cap and current month usage before you confirm.
“grant the oil_gas pack to Acme Corp”
Grant an entitlement pack (domain/marketplace pack) to an organization ('grant the oil_gas pack to Acme', 'give org 42 the legal pack'). SUPERADMIN only. Preview shows the org, the pack and the org's current packs before you confirm.
“enable SSO for my organization”
Configure your organization's SAML SSO — enable, disable, or update the identity provider settings ('enable SSO', 'update our SAML certificate', 'turn off SSO'). Org-admin only, and available on Team and higher plans. Preview shows the exact config diff with secret values (certificates, private key) masked as *** before you confirm.
“Show me every loop the platform ran last week”
Show the autonomous loops the platform ran — every act with its full trust trail (who authorized it, its bounds, verification, reversibility, what it learned). 'Show me every loop the platform ran last week', 'what did you do on your own this week?'. Everyone sees their own loops; admins can ask org-wide. Read-only and free.
“What has our deployment ever sent the network?”
Show the membrane's two-directional provenance — the trust surface for shared patterns. Outbound: everything your deployment ever contributed to the network (only the SHAPE of a pattern ever travels, never a row of your data), answerable in one turn. Inbound: everything your deployment inherited FROM the network, each with the scrub proof that no other customer's data came with it — 'this came from the network, your data never left, here is the proof'. 'What have we sent the hive?', 'what did we take from the network and is it clean?', 'show our pattern provenance'. Read-only and free.
“Share the churn pattern with the network”
Contribute a pattern to the membrane network — only the SHAPE travels, never a row of your data, and the scrub proof rides along — or withdraw your organization's authorization, which marks everything contributed under it withdrawn. 'Share the churn pattern with the network', 'withdraw our patterns from the membrane'. show_membrane_provenance is the read-back. Org-admin only; the publish door fails shut when closed.
“mask the PII in this dataset”
MASK the sensitive values in a dataset — actually execute it, not just report what is sensitive. Creates a masked working copy you can preview, export (CSV/Excel/JSON/Parquet), save to the catalog, or push to a database. Answers 'mask the PII', 'redact the card numbers', 'apply masking to cvv'.
“prove your unproven skills”
Run a governed proving pass over the skills that lack current proof (unproven, decaying, or broken) — real turns against drill fixtures in a throwaway drill org, under a hard spend cap you set; or mark a zero-fire skill retirement-pending (removal itself is always a reviewed change).
“am I in the right workspace?”
Answer where the user's work lives and who shares it — 'am I in the right workspace?', 'who else from my company is here?', 'is there a workspace for my company?'. Read-only: reports the current workspace by NAME, any pending invitation to join a workspace that has verified the user's email domain, and the colleagues already in the current workspace. Changes nothing.
“join my company's workspace”
Join the workspace your company already has, decline it and keep your own, or leave one you joined ('join my company's workspace', 'start my own workspace instead', 'leave this workspace'). Only offered when that workspace has DNS-VERIFIED your email domain. Free — joining your own company never costs anything. The preview names the workspace, who would see what, and whether an administrator must approve, before anything happens. ALSO the ADMINISTRATOR side of that decision: show who is waiting or has asked to join this workspace ('who is waiting to join?', 'show pending join requests', 'any join requests?'), approve a named person into it ('approve Sruthi', 'let sruthi@acme.com in', 'admit them'), or turn their request down ('reject that request', 'turn down Sruthi', 'deny it'). Use this skill for ANY question about pending workspace join requests or workspace membership approvals.
“push dataset 4 to the customers table in my warehouse connection 2”
Deliver a dataset OUT to an external database/warehouse through a write-capable connector — 'push this to my Postgres', 'write dataset 4 to the sales table in my warehouse', 'export these results to Snowflake', 'push the cleaned working copy to the analytics DB'. Governed: your role's column masks apply to what's written, and only write-capable connectors are allowed. Also the reverse: 'undo that delivery' / 'swap the table back' restores a replace-mode delivery's kept previous generation (action='undo_delivery').
“Pull the orders table from my Postgres connection”
PULL or IMPORT one or more tables — or a whole schema — from a saved database, cloud object storage, or API connection into the catalog; or INGEST an uploaded file. This is the skill for pulling/importing/ingesting/loading source tables, schemas, or FILES/OBJECTS from a connection into the catalog — including files from cloud object storage (Amazon S3, Google Cloud Storage / GCS, Azure Blob): 'pull files from my S3 bucket', 'load the customers.parquet from my GCS connection', 'ingest orders.csv from cloud storage'. Streams to columnar storage, cataloged and versioned. (Not for searching or querying data already in the catalog — this brings NEW source data in.)
“List my connections”
List, test, inspect, and EDIT your data source connections and edge connectors, CONNECT a new data source, and RECONNECT one that has gone offline. Reports overall connection/connector health and status — whether a connector is offline, down, or degraded — plus available databases, schemas, tables, and previews. Say things like 'how are my connections', 'is my connector down', 'check connector health', 'the agent looks offline', or 'reconnect MyAppDb' to bring an offline edge connector back online (returns the install command).
“Find datasets about revenue”
Search the data catalog for datasets and tables by name, description, tags, or AI metadata. For column-name lookups use find_data_by_columns.
“Connect my Postgres at db.acme.com:5432, database sales, user readonly”
CONNECT a brand-new data source from chat — a database, warehouse, or API/SaaS source: 'connect my Postgres at db.acme.com:5432, database sales, user readonly', 'hook up my database', 'add a data source', 'wire up my warehouse', 'connect to my Stripe API'. This is the skill for ESTABLISHING a new connection (not pulling data from one — that's ingest_data, and inspecting/testing an EXISTING connection is manage_connections). Works out the lowest-friction way to reach the source first — direct connect, cloud credentials, a file upload, or a one-click edge connector for an on-prem / behind-the-firewall database — then creates the connection, tests it live, and reports the result. Credentials are encrypted at rest and never repeated back.
“Export this dataset as CSV”
Export a dataset (or a transformation's output — outputs are datasets) as CSV, Excel, JSON, or open Parquet — streamed at any size, at any point in the conversation. Also exports a STAGED working copy (the masked or cleaned copy just produced, before it's saved) when the user says 'the masked copy' or a working_copy_id is known — that ships the changed bytes, never the original. Governed: your role's column masks apply to the file too.
“Keep the refinery feed live and refresh my Production dashboard”
Keep a dataset live conversationally — when its sync applies changes, Kaarvi cascades to dependent pipelines and dashboards. Choose the cadence: a CUSTOM SCHEDULE (hourly, daily, every 15 minutes, or a cron) or REALTIME change capture where the source supports it. Manage the lifecycle: create, pause, resume, suspend, restart, run now, or delete.
“Which of my datasets are kept live?”
LIST the live syncs you have running — which datasets are kept live, their status, and what cascades from them. Pure READ, instant and free: 'which of my datasets are kept live?', 'what live syncs do I have?', 'is anything syncing live right now?'. (To create/pause/resume/delete a live sync, that's manage_live_sync.)
“Join orders with customers and aggregate by month”
Build or run a data transformation pipeline — clean, join, reshape, derive columns, aggregate — over the visual flow canvas / code nodes. Also REFINES an existing draft pipeline in conversation ('change step 3 to a left join', 'fill the empty rows with the average instead') and undoes the last refinement (versioned restore).
“Run this pandas snippet on my data”
Execute custom Python against a dataset in a sandbox and return the result.
“Is there a template for deduplication?”
Suggest relevant prebuilt pipeline templates / recipes for the user's intent.
“publish pipeline 42 as a template for my team”
Publish one of your pipelines as a reusable TEMPLATE your whole organization can find and use — the way to turn work you've already done into shared supply. Unpublish retracts it (the pipeline itself stays yours).
“Re-run my cleaning pipeline whenever new orders land”
Automatically run a pipeline / refresh a dashboard or API whenever a source dataset changes (reactive, debounced) — or disable a standing automation ('stop auto-running that pipeline').
“Email me total sales every Monday at 8am”
Schedule a recurring question, pipeline run, or report delivery on a cron/interval — and manage your standing orders conversationally: list, pause, resume, run now, or delete them. Also composes a NAMED standing SEQUENCE (task_kind='sequence'): 'run the cleanup, then the enrichment, then refresh my dashboard, every morning' — ordered steps, a stated failure policy, paused/resumed by name ('stop the morning sequence').
“Why did last night's run of pipeline 12 fail?”
Answer questions about a pipeline's run history — 'why did last night's run fail?', 'show recent runs for pipeline 12'. Status, duration, rows, trigger and the failure message when there is one. Read-only and free.
“what APIs have I published”
List the OUTBOUND published APIs — pipelines this org has published as live, token-authenticated REST APIs (the Living API estate): each API's name, live/paused state, request and error counts, and its limits. 'what APIs have I published', 'list my published APIs', 'which of my APIs are live', 'is anything still calling my APIs'. This is the published PRODUCT — data flowing OUT to external consumers. It is NOT for inbound API sources or connections (use ingest_data to pull FROM an external API) and NOT for live syncs (list is in manage_live_sync). Read-only and free — names only, never an internal id or token.
“add a webhook https://hooks.example.com/kaarvi to the Sales API and test it”
Manage webhooks on a PUBLISHED API (Living API): add a webhook so an external system is notified whenever the API's data refreshes, test one with a real delivery, toggle one on/off, or remove one. 'add a webhook to the Sales API and test it', 'turn off the reporting webhook', 'remove the reporting webhook from the Sales API'. Names and masked URLs only — never an internal id, never the secret. (To just SEE the webhooks on an API, list_api_webhooks is the read.)
“list the webhooks on the wells API”
List the webhooks registered on a PUBLISHED API (Living API) — the masked target URL and active state of each, so you can see what's notified when the API's data refreshes. 'list the webhooks on the wells API', 'show the webhooks on the Sales API', 'what webhooks does the reporting API have'. Read-only and free — names and masked URLs only, never an internal id, never the secret. (To ADD, test, toggle, or remove a webhook, api_webhooks is the act.)
“Compose a chart of which anomalies fail B31G”
Compose a domain chart you don't have yet from what you want to see — 'compose a chart of which anomalies fail B31G', or a plain question like 'will my pipeline pass inspection?'. I verify the math against its standard and prove it renders faithfully before offering it; you sign before it's added. 'Retire the <name> chart' disables it (never deletes); 'don't compose that' declines for 30 days.
“Build a sales dashboard”
Create a dashboard from a dataset or pipeline — auto-selecting domain-appropriate charts and KPIs, optionally from a natural-language brief.
“Save this dashboard's layout as a template called Board Pack”
Save a dashboard's LAYOUT as a reusable named template ('save this dashboard's layout as a template called Board Pack') — the arrangement only (tile positions and sizes, plus the theme it wears), never the data. Also saves an UPLOADED JSON spec's layout directly (dashboard_spec_id), renames a template, or deletes one. Build on one later with 'build X using the Board Pack template' (build_dashboard's template_name).
“Write a Q3 performance report”
Generate and publish a governed narrative report — every figure slot-filled from a verified query (number-quarantine), with per-claim provenance and per-viewer redaction.
“Publish this pipeline as an API”
Publish a pipeline's output as a live, tokenized REST API (Living API) with caching and analytics — or unpublish it (the token stops working immediately). You can also PAUSE a published API ('pause the API \"Rates\"') — serving stops but the token is KEPT, so 'resume the API' restores existing consumers untouched. And you can also CHANGE a published API's limits conversationally: 'set the Sales API rate limit to 500 per minute' or 'let the wells API return up to 20000 rows per request'.
“Tell me the story of dashboard 12”
Narrate an EXISTING DASHBOARD as a step-by-step data story — 'tell me the story of this dashboard', 'walk me through what my sales dashboard is saying'. AI-generated insights, one step per dashboard widget. Requires a built dashboard; this does NOT narrate a raw dataset — to summarize a dataset, ask a question about it or publish a report.
“Restore dashboard 12 to version 3”
Roll a dashboard back to a prior version — 'restore my sales dashboard to yesterday's version'. Roll-forward semantics: the restore becomes a NEW version, so it is itself restorable. Parity with restore_dataset_version.
“List my dashboards”
List your dashboards, RENAME one, SEND one for review and record the reviewer\'s decision (request_review / approve / request_changes, and withdraw_approval to take a decision back off the record — a dashboard the platform built from a reference is a DRAFT proposal, and approving is what publishes it, signed against the exact version the reviewer saw), share/publish one (get a shareable link), unpublish it, or delete it. Renaming is how a person corrects a name the platform proposed for a dashboard it built (\'call it Q3 Pipeline Health instead\') — reversible by saying the old name back, so it needs no confirmation. Publishing makes a dashboard reachable by a link; unpublishing takes it private again; deleting removes it permanently (the reverse of building one). Describe sets what the dashboard SAYS to viewers: the sub-line under its title (description), a hero heading that shows instead of the name (header_text), and the footer line — 'sub-line: refreshed nightly', 'title the page Q3 Pipeline Health'. edit_widget_text rewords ONE widget on it — title, sub-line, axis label, or its description — addressed by the widget's title or position ('title the third widget Defect depth by mile', 'describe the churn widget as …'); a version snapshot makes it undoable. Also checks dashboards for off-brand color settings (scan_palette_drift — 'are any of my dashboards off-brand?') and brings one on-brand (migrate_palette) with an automatic pre-migration version snapshot, undoable via restore_dashboard_version.
“List my reports”
List your governed reports, publish one (make it live for its permitted viewers), or unpublish it (take it offline). Publishing is blocked while any figure is unverified.
“Email me the Q3 performance report as a PDF every Monday”
Email a published report to org teammates on a recurring schedule (daily/weekly/ monthly), as a PDF, HTML, or Excel workbook — each recipient sees it under their OWN data permissions. List, pause, resume, or cancel your report schedules too.
“Extract a theme from this screenshot”
Derive a dashboard theme (colors + look/feel) from a reference the user shares: an attached image or HTML file, a public URL, or a dashboard they ALREADY have ('make me one that looks like the Ops dashboard' — from_dashboard, no upload needed). Also refines a previously derived candidate ('darker ground'). The result is a CANDIDATE the user can use once, save by name, or (admin) publish org-wide.
“What themes do I have?”
Show the dashboard theme library — the built-in Kaarvi theme, the organization's themes, and the user's personal ones, with the current default marked.
“Save this theme as Sunset”
Manage the dashboard theme library: save a derived candidate under a name, set a personal or organization default, EDIT a saved theme's colors by describing the change ('make the accent a deeper coral', 'darken the page background'), REVERT a theme to how it was before the last change ('put the Brand theme back how it was'), delete a theme (re-binding its dashboards first), publish a theme org-wide, or switch the organization's theme mandate on/off (admin).
“Change this dashboard's theme to Sunset”
Apply a theme to an existing dashboard: a named library theme (live-bound — follows the theme if it changes), a just-derived candidate, a one-time pinned copy, or back to 'default'.
“Where does the revenue column come from?”
Trace where a dataset or column came from — upstream sources and the transformations that produced it. Passive, always available.
“What breaks if I drop the status column?”
Show what breaks downstream if a dataset or column changes — dependent pipelines, dashboards, and APIs. Passive, always available.
“Auto-discover lineage across my warehouse”
Run the AI lineage orchestrator (discovery / impact / quality / governance agents) to auto-detect flows and findings. Charged; runs only when explicitly enabled.
“What breaks if I drop the customer_id column from table 42?”
Column-level blast radius — 'what breaks if I drop/rename column X?' Traverses column lineage downstream (dependents) or upstream (origins) and returns the affected tables/columns with a risk level.
“Is my nightly Sales Enrichment worth what it costs?”
A standing pipeline's monthly value receipt — runs, metered cost (from the metering ledger), rows delivered, failures reversed — with the audit view for governance and the value view for outcomes. 'Is that nightly job worth what it costs?' Read-only and free.
“Where's my churn signal?”
Semantic catalog search: find columns/datasets by MEANING when the user describes a concept rather than an exact name — 'where's my churn signal' finds attrition_flag. Searches the org's column-embedding index (pgvector), falls back to lexical column search when the index has no answer. Read-only, metadata only — never reads data content.
“How does this dataset relate to my other data?”
ML lineage discovery for a dataset: proposes how its columns relate to other datasets in YOUR org (embedding + name + type similarity), each suggestion carrying its evidence scores. Deterministic engine with provenance — not an LLM guess. Read-only on your data.
“Forecast next quarter's revenue”
Forecast a time series (with confidence bands) for a numeric column over a horizon.
“How healthy is this dataset?”
Assess a dataset's overall health and risk — a temporal quality score with a plain-language narrative of what's trending and what to watch.
“Why did completeness drop yesterday?”
Analyze the likely contributing factors behind a data incident or quality drop — correlated changes across datasets. (Contributing factors, not proven causation.)
“Triage the anomalies in my latest ILI run”
Triage an ILI (in-line inspection) pipeline run: run a deterministic B31G / modified-B31G remaining-strength assessment on every metal-loss anomaly, rank them by severity (estimated repair factor, safety factor, depth), and draft a prioritized dig sheet for direct examination. For oil & gas pipeline integrity — corrosion, wall loss, fitness-for-service.
“Generate 1000 fake customers”
Generate synthetic data from a dataset's statistics, a natural-language prompt, or a hybrid of both — with configurable fidelity and column-level access controls (values of columns you're not permitted to see are never reproduced).
“where are my dashboards”
Find the user's saved assets — dashboards, datasets, threads/conversations, transformations, recipes, connections, live syncs, scheduled deliveries, APIs. Answers 'where are my X', 'show my saved/recent X', 'list my Y'.
“open my revenue dashboard”
Open one of the user's saved assets — resolves a dashboard, thread, dataset, transformation, connection, sync, delivery or API the user can see and returns the in-app path to open it. Read-only navigation.
“Reverse that charge”
Reverse a wrong settled charge and restore the funds — 'reverse that charge', 'that charge looks wrong, undo it', 'I was charged twice for the forecast run'. The mind judges the claim against the recent settled charges (coherence, ownership, reversal pattern) and the existing reversal service executes within its own bounds: your org only, settled charges only, once per charge. Free — undoing a wrong charge is always free.
“Add funds”
Add funds — composes a real Stripe checkout link for the dollar amount ('add $50', 'top up $30', 'buy more'). Payment is always confirmed by YOU at checkout — nothing is charged until you complete it there. Free to ask.
“Did my payment go through?”
Report the org's payment state truthfully — account status, current balance, and the most recent top-up ('did my payment go through?', 'what's my payment state?', 'is my account active?'). Read-only and free.
“save this as Q3 Revenue”
Save a fixed dataset to the Smart Catalog as a new, findable, lineage-linked dataset — 'save this as X', 'save the results to the catalog as X', 'keep this working copy as X'. Also saves the rows that FAILED a validation check ('save the failing rows so the team can look') as a new dataset. Materializes with conversation provenance.
“save these fixes as a recipe called Weekly Dedupe”
Save a set of fixes or a pipeline as a reusable, replayable recipe — 'save these fixes as a recipe called Weekly Dedupe', 'turn this working copy into a recipe', 'publish this pipeline as a template'. Captures a working copy's fix chain (replayable to a different dataset version) or an existing pipeline as a named recipe with conversation provenance.
“publish my sales dashboard to the org”
Publish or unpublish one of the user's saved assets — 'publish my sales dashboard to the org', 'make this dataset org-wide', 'set this back to private'. Changes WHO can see the asset (visibility), not the data.
“share this dashboard with the data team so they can view”
Share one of the user's saved assets with a teammate, a team, or the whole org — 'share this dashboard with the data team so they can view', 'give alex@acme.com edit access to Q3 Revenue', 'share this with everyone'. Grants access without changing the asset's base visibility.
“Show my portfolio”
Show the outcome portfolio — every standing outcome the platform quietly maintains (live syncs, scheduled reports, goals, autonomy leases) as one fund-manager view: health, cost this period, an honest value line, autonomy rung, owner. 'Show my portfolio', 'what are you maintaining for me', 'what's running on its own'. Zoom into any position's receipts — the governed loop records behind it. Everyone sees their own positions; admins can ask org-wide. Read-only and free. (To pause or resume a position, manage_portfolio is the confirmed act.)
“Pause the revenue sync”
Pause, resume, or hand off a standing outcome from the portfolio — a live sync or a scheduled report is held in place (nothing deleted, data untouched) and comes back with one word; an outcome can be shared with a named teammate who sees it at their own access level, and un-shared just as easily. 'Pause the revenue sync', 'resume the Monday report', 'share the revenue sync with Maya', 'stop sharing it with Maya'. Operates only on your own positions (org-wide for admins); goals wind down conversationally and leases revoke rather than pause or travel — I'll say so honestly. (To just SEE the portfolio, show_portfolio is the read.)
“What has Kaarvi cost me this month?”
Report this org's LLM spend from the real spend ledger — total USD, tokens, call count and a by-model breakdown over a window ('what has Kaarvi cost me this month?', 'LLM spend last 7 days'). Read-only and free.
“What will it cost to profile my orders data?”
Estimate what an operation WILL cost before you run it — 'what will it cost to profile my orders data?', 'project the cost of a full quality analysis on claims_2024'. Reads the same projection the run itself would use and answers in tokens first (with a dollar estimate). Purely informational and free — nothing runs and nothing is charged.
“rename this conversation to "Q3 GOR investigation"”
Rename a saved conversation — 'rename this conversation to \"Q3 GOR investigation\"', 'call this chat the pipeline review'. Renames the conversation you're in, or a named one ('rename my \"churn\" thread to ...'). Only touches the conversation's name — its messages and results are untouched, and a rename is reversible (rename it back). Preview shows the new name before you confirm.
“draft my outreach emails”
Compose grounded outreach drafts for the decision-makers Verified Outbound has found: one short email each, written from your topic brief and the contact's company facts, verified so every claim traces to your inputs and your postal/unsubscribe block is present. Drafts wait in your queue — NOTHING is sent until you release each one. Suppressed (unsubscribed) addresses are never drafted. Idempotent: re-running drafts only contacts that have none yet. Needs the solution installed and your compliance identity configured.
“Turn weekly revenue cleanup into a skill”
Grow a custom skill from your proven repeat work — 'turn <pipeline> into a skill' publishes a pipeline you keep running as a named skill your whole team can just ask for (the Governor offers this when it senses the repetition). 'Don't turn X into a skill' declines the offer for 30 days; 'retire the X skill' is the soft reverse — it disables the composed skill, never deletes it. Publishing needs the pipeline's owner or an org admin.
“set up my outbound: track Data Quality and Data Governance”
Set up the Verified Outbound solution by talking: track keywords ('track Data Quality and Data Governance'), connect an intent signal source (G2 token, your website's visit feed, your consented lead-form fills, or your own data), your contact enrichment (Apollo or your own contacts), your CRM (Zoho or the Kaarvi-resident funnel), or your email provider (SendGrid or your own SMTP server) — every connection is PROBED for real and the receipt recorded — and read back what's done vs pending ('show my outbound setup'). Arming stays off until every required piece holds a passed probe.
“find my decision makers”
Find the named decision-makers at the companies showing intent in your Verified Outbound signals — through the enrichment source you've connected (your Apollo account, or your own contact data) — and save them. Reveals use your enrichment provider's paid lookups, bounded per run. Idempotent: re-running only fills companies that still need contacts. Needs the solution installed and a probe-proven enrichment source; nothing is sent, this only finds and saves contacts.
“show my outbound funnel”
Show the Verified Outbound lead funnel: every lead by journey stage (new, drafted, released, sent, engaged, replied, suppressed) with its KaarviIQ score and band — hot leads are surging on your tracked keywords right now. 'show my outbound funnel', 'who are my hot leads', 'how many leads are drafted'. Read-only and free — the same view the Library's Verified Outbound section renders. Setup status lives in configure_outbound's show_setup, not here.
“register my MCP server at https://tools.acme.com/mcp as acme-tools”
Manage your organization's custom skills: register an external MCP server so its tools become Kaarvi skills, list registered servers, refresh their tool lists, or disable/enable/remove one. Org admins only.
“publish pipeline 42 as a skill called churn-score”
Publish one of your pipelines as a reusable named skill your whole organization can invoke by asking for it — or list, disable, enable, or remove your published skills.
“what solutions do you have for finance?”
Browse the marketplace's solution catalog — industry professions Kaarvi can install for your organization ('what solutions do you have for finance?', 'tell me about the OEE detective', 'what can you add for my retail team?'). Shows what's installed, each solution's track record for YOUR org (runs, clean rate, streak), and — for admins — what your team keeps asking for that nothing on the shelf serves. Also knows the professional lens Resource packs ('what does the Oil & Gas resource cover?', 'show me what that pack covers') and says how to wear or obtain one.
“install the reconciliation sentinel”
Install a marketplace solution for YOUR organization ('install the recon sentinel', 'get me the stock-out sentinel', 'add the OEE detective for my team'). Org-admin only; free. Preview shows exactly which playbooks your org gains before you confirm; the reply offers the onboarding walkthrough. Undo: uninstall_solution.
“uninstall the recon sentinel”
Uninstall a marketplace solution from YOUR organization ('remove the recon sentinel', 'uninstall the OEE detective'). Org-admin only. Its playbooks stop being available immediately; history and receipts are kept; reinstalling restores it.
“arm autonomy for the recon sentinel”
Arm unattended runs for an installed solution ('run the recon sentinel every morning', 'arm autonomy for the stock-out sentinel'). Org-admin only, and it unlocks with the solution's industry pack — without the pack you get an honest refusal naming it. Unattended runs are read-only and every run re-checks the pack grant.
“disarm the recon sentinel”
Disarm unattended runs for a solution ('stop the recon sentinel's scheduled runs', 'disarm the stock-out sentinel'). Org-admin only; idempotent; takes effect at the next tick.
“release the draft to Pat Lee”
Release ONE queued Verified Outbound draft and SEND it through your connected email provider. Name the recipient or company ('release the draft to Pat Lee'); with a single draft queued you can just say 'release it'. The send refuses if the address has unsubscribed, and a provider failure puts the draft back in the queue. A sent email cannot be unsent — that is exactly why drafts wait for this explicit release.
“pull my intent signals”
Pull the latest keyword-intent signals from every intent source you've connected to Verified Outbound — the companies showing interest in your tracked keywords — and save them. Idempotent: re-running adds only what's new. Needs the solution installed and at least one probe-proven source; nothing is sent, this only gathers signals.
“unsubscribe pat@acme.com from my outreach”
Stop all Verified Outbound email to an address, permanently ('unsubscribe pat@acme.com', 'never email that address again'). Any queued drafts to it are withdrawn, and every future compose and send refuses. This is the safety act behind an unsubscribe request, a bounce, or a personal ask to stop — honoring it is deliberate and permanent.
“When will I run out of storage?”
Forward-looking check on YOUR trajectory — for free: when storage will cross the plan ceiling, when included usage runs out this cycle, and which live syncs are heading toward suspension. The same anticipation engine that raises proactive notices, now askable. Projections from real series only — never a fabricated forecast.
“Brief me”
Your briefing / front door — for free: what needs your attention, what Kaarvi did for you (with receipts), and what's worth automating, ranked. Use for 'brief me', 'what needs my attention', 'what's new', 'catch me up', 'what did you do', 'what's worth automating'.
“Work toward weekly data quality above 95 percent”
Create or cancel standing goals — the objectives Kaarvi advances for you unattended, under your lease and budget. 'Work toward weekly data quality above 95 percent', 'cancel the enrichment goal'. Applying a work-package stays on its review surface, where the full diff is visible. (To SEE goals and work-packages, show_goals is the free read.)
“What goals are running?”
Show your standing goals — the objectives Kaarvi advances for you unattended — and the work-packages they've produced. 'What goals are running?', 'show my work packages'. Read-only and free. (To create or cancel a goal, manage_goals is the act; a package applies from its review surface in Library → Work Packages.)
“change the weekly sales report to daily”
EDIT or ACKNOWLEDGE an EXISTING scheduled report — change how often it runs (its cadence) or who receives it, IN PLACE without recreating it, or release / discard a run that was held for review. 'change the weekly sales report to daily', 'switch the sales report to run daily instead of weekly', 'change who gets the wells report', 'release the held sales report', 'discard the held run', 'approve the held report'. The schedule keeps its identity and history — a cadence change is an edit, never a delete-and- recreate. Names only, never an internal id. This is the EDIT/ACKNOWLEDGE capability ONLY: CREATING a new schedule, or listing / pausing / resuming / running-now / deleting standing orders, is schedule_task, not this. (To just SEE a schedule's run history, schedule_history is the read.)
“show the last 10 runs of the wells report”
Show a SCHEDULED report's recent run history — the status, row count, and timing of its last runs, so you can see how it's been doing. 'show the last 10 runs of the wells report', 'how has the weekly sales report been running', 'run history for the reporting schedule'. Read-only and free — names only, never an internal id. (To CHANGE its cadence/recipients or acknowledge a held run, schedule_ops is the act.)
“How do I teach you my voice?”
Explain how a Kaarvi feature works, step by step — answers 'how do I …', 'how does … work', 'what can you do', and 'help with …' questions about the product itself (voice and the wake word, teaching Kaarvi your accent, staying in conversation, confirmations, quiet mode, solutions, templates, connections, billing, publishing). Grounded in the verified guides registry; free and read-only.
“What happened in my org this week?”
Answer questions about the org's audit/activity log — who did what, when ('what happened in my org this week?', 'who exported data yesterday?'). Admin-only, same gate as the Settings audit tab; org-isolated; read-only and free.
“Enable the governance module for our org”
File a request to enable (or disable) a platform module for this org — 'enable Governance for us'. The request goes to the platform approvers, exactly like the Settings module-request flow. Requires confirmation before filing.
“What are my notification settings?”
Show your current notification preferences — 'what are my notification settings?'. Read-only and free; use manage_notifications to change them.
“Do not disturb until 2pm”
Change how and when Kaarvi reaches you — do-not-disturb, quiet hours, 'only critical', channels and digests. 'Do not disturb until 2pm', 'mute for an hour', 'quiet hours 10pm-7am', 'only show me critical things', 'turn briefings back on', 'email me weekly', 'stop the activity summary'. Also the channel veto: 'never text me', 'don't push, email is fine', 'you can text me again' — and 'you can nudge me about storage again' to re-enable a quieted anticipatory nudge. Asks for confirmation before changing anything; use notification_settings to just look.
“How is the platform doing?”
Diagnose the platform's own scheduled tasks — 'how is the platform doing?', 'why is the lineage discovery job failing?'. Reports each beat job's health (failing/silent/healthy), failure streaks, and real last errors. Superadmin-only, read-only, free.
“What did you learn this week?”
The platform states its own truth from code, receipts, and the growth ledger — 'what did you learn this week?', 'what of you is dormant?', 'state your own completion', 'what are you made of?'. What is built, which capability gates are on (every off gate citing its recorded reason), what grew (templates, skills, ripened memories), and what sits undiscovered. Everyone may ask; depth follows authority. Read-only and free.
“roll the release”
Act on the platform's own release chain: roll forward to the newest verified-green build, re-run the release walk, or roll back to the prior build. The confirmed intent is honored by the release reconciler — targets are always computed from code-truth, never named free-hand.
“act as a data engineer”
Put on, change, or take off a professional lens for this conversation — 'act as a data engineer', 'be my O&G legal advisor', 'put a quality lens on this', 'what lens am I in?', 'back to normal'. The lens shapes how Kaarvi thinks and speaks for this thread until you change it; it never changes what you are allowed to see or do.
“Set up fixtures for the sibling-dismissal drill”
Provision a marker-bound throwaway drill fixture set for platform self-exercise (UAT drills): a throwaway drill org on the reserved .uat-drill.invalid domain (or plain marker users inside your org for sibling drills), token-only drill users (short-lived JWTs, no passwords — ever), an org-wide drill notice, and connections already in a sensed state (dormant / expiring / lapsed / drifted / estate_dormant) so the connection sensors can be drilled without reaching under the platform. 'set up the sibling drill', 'provision a drill org for the membrane test', 'mint drill users'. Org-admin only; free; everything it creates is removable exactly by teardown_drill_fixtures.
“Tear down the drill fixtures”
Remove EVERY marker-bound drill fixture the organ ever created — drill notices, drill users (and their drill-org roles), and throwaway drill orgs on the .uat-drill.invalid domain. Reports deleted counts AND verify-after remaining counts (the proof, not the promise). 'clean up the drill fixtures', 'tear down the drill org', 'remove UAT drill residue'. Org-admin only; free. ActivityLog audit rows are kept — the organ removes fixtures, never the record that they existed.
“show me the pending website update”
See, approve, or reject the pending website copy updates the daily site-refresh drafts, and pause or resume that daily watcher. Decisions share one first-write-wins seam with the owner's one-click email links; an approval is executed to LIVE by the keyless deploy tail.
“archive dataset 4”
Archive OR unarchive a dataset — a reversible soft state that hides it from the active estate while KEEPING all its data ('archive dataset 4', 'move the 2021 sales table to archive', 'unarchive dataset 4', 'restore dataset 7 to active'). Nothing is deleted: storage is retained. Set archive=false to unarchive (status → active). Preview shows exactly what will change before you confirm.
“roll dataset 7 back to version 2”
Roll a dataset back to a prior version — 'roll dataset 7 back to version 2', 'restore version 3 of dataset 12'. Roll-forward semantics: the chosen version's data becomes live under a NEW version number and the state you're leaving stays in history, so a restore is itself reversible. Preview shows exactly what will change before you confirm. NOT the archive toggle — this changes which DATA is live.
“delete dataset 4”
Permanently delete a dataset — a HARD purge that drops the physical table, Parquet, catalog entries, versions and its Asset-Fabric record ('delete dataset 4', 'permanently remove the old imports table'). Ref-count-safe: storage SHARED by a live sibling version or pinned by a dashboard/thread is RETAINED, never dropped. Preview shows exactly which layers will be removed vs. retained before you confirm — destructive.
“run a DSAR for customer jane@example.com”
Run a data-subject erasure request (DSAR / GDPR Art.17 / CCPA 'right to be forgotten') — locate everywhere a subject's PII lives and erase it by redacting the classified columns or purging subject-scoped datasets ('erase all data for this customer', 'run a DSAR for subject X'). Superadmin-only, feature-flag-gated. Preview shows the full erasure plan (which datasets/columns, purge vs redact) before you confirm; the subject reference is only ever shown/stored as a hash.
“archive the conversation "Q3 churn digging"”
Archive OR unarchive a conversation, transformation, recipe, connection, live sync, scheduled report or published API — a reversible soft state that hides it from the active Library shelf while KEEPING everything ('archive the conversation \"Q3 churn\"', 'archive my \"Orders\" live sync', 'unarchive the \"Weekly ops\" report'). Archiving something active also stops it firing. NOT the door for a temporary pause of a served API — that is publish_api's pause. For datasets, use archive_dataset.
“delete the conversation "Old scratch chat"”
Delete a conversation, transformation, recipe, connection, live sync, scheduled report or published API from the Library ('delete the conversation \"Old scratch\"', 'delete my \"Orders\" live sync', 'delete the \"Rates\" API'). Destructive: a conversation's messages are permanently gone; an API's token stops authorizing (consumers break); a scheduled report's recipient list is erased. The reversible alternative is archive_asset. For datasets, use delete_dataset.
“I say 'hey karvee'”
Teach Kaarvi how you actually say its wake word — \"I say 'hey karvee'\" adds your own phrasing as a personal wake alias (validated, max 8); 'take that back' removes exactly that alias; and 'forget what you've learned about my voice' erases your wake telemetry entirely. Everything is yours alone — nothing another user says or hears is touched.
“Profile it, fix what you find, then chart rejects by month and keep it fresh every 30 seconds” is one sentence to Kaarvi. That used to be four tools, three handoffs and a ticket queue — here it’s planned, executed and verified in a single thread, on the record.