Business logic changed
How many accounts activated last month?
accounts.status = 'active' 2,431 accounts activated last month.
first_deployment.status = 'succeeded' 1,847 accounts activated last month.
Schemas change, definitions move, and nobody updates the context your agents read. Cassis catches the drift, drafts the fix, and proves it against evals. Each fix goes to the person who owns the definition, and your agents only read what your team has approved.
Not on the data team? Send them this page
How many accounts activated last month?
accounts.status = 'active' 2,431 accounts activated last month.
first_deployment.status = 'succeeded' 1,847 accounts activated last month.
MEDIAN(deployments.duration) 3 context references affected
01/06 · Listing maintenance issues
02/06 · Drafting the metric proposal
description: > Accounts whose first successful production deployment occurred in the requested period. Internal accounts excluded. display_name: Activated accounts domain_path: product/activation expression: COUNT(DISTINCT "ACCOUNT_ID") filters: '"IS_INTERNAL" = FALSE' name: activated_accounts synonyms: - activated accounts - activated customers table_name: FIRST_DEPLOYMENT table_schema: PRODUCT unit: accounts
03/06 · Validating the context files
04/06 · Testing against the eval suite
05/06 · Pushing the review branch
06/06 · Opening the GitHub pull request
description: > Accounts whose first successful production deployment occurred in the requested period. Internal accounts excluded. display_name: Activated accounts domain_path: product/activation expression: COUNT(DISTINCT "ACCOUNT_ID") filters: '"IS_INTERNAL" = FALSE' name: activated_accounts synonyms: - activated accounts - activated customers table_name: FIRST_DEPLOYMENT table_schema: PRODUCT unit: accounts
“In one summer, I built the context for our analytics agent on Alan's 6,900-table warehouse, on my own. Using Cassis tools in Claude, I automatically draft each domain from our existing data assets, run checks and evals, review the PR, make the decisions, and move on to the next domain.”
As the context runtime for your analytics agents, Cassis records a gap each time an agent has to guess: no governed definition, two plausible signals, a clarifying question.
It also diffs every schema and dbt change against the context that references it. Your definitions are imported, not redefined.
When nothing your team approved covers a question, the agent says so and asks instead of guessing.
Cassis structures your context as a Markdown and YAML file tree following Google's Open Knowledge Format.
Use the CLI and MCP from your preferred development environment to inspect detected issues, review and test proposed fixes, and publish approved context through your existing Git workflow.
acme-data wants to merge 1 commit into main from cassis/activated-accounts
Evidence: 6 observed conversations · Proposal only
The repository above is a specimen. Browse a real context repo on GitHub, CI gates included.
The context lives in your Git repository, not inside a warehouse or one assistant. Every agent you run reads it through Cassis over MCP, so they all get the same approved version, and a gap exposed by any agent's question comes back to your team.
Connect Cassis to your Git repository and install the Cassis CLI. Then give it your schema: a scoped read-only warehouse connection, or a DDL dump if you would rather not connect one yet.
Run the bootstrap from your coding agent. Cassis writes the first context tree to your repository from your schema, dbt project, BI exports, query history, and docs.
Connect Claude Code or any MCP-compatible agent. Cassis can answer questions, generate SQL, or return only the context the calling agent needs.
List detected issues from your development environment, apply and test proposed fixes, then merge the approved pull request to publish a new context version.
Cassis uses your schema, dbt project, documentation, and questions. Your warehouse or existing agent executes the generated SQL. Row data stays in your environment. Evals score by SQL equivalence review.
Cassis executes generated SQL through a dedicated read-only role. Access is limited to the datasets your agents use, with no warehouse writes. Evals execute the generated and expected SQL and compare result rows.
Hosted on AWS in Paris, in the eu-west-3 region.
A Cassis-managed private deployment in your own cloud environment.
Cassis manages Anthropic inference through Amazon Bedrock.
Use your Amazon Bedrock or Google Vertex AI account.
Connecting your own warehouse starts with a conversation. One domain's schema is enough, as a read-only connection string or a DDL dump. Talk to us.
Bring one domain and we'll go through it with you: what your agent would get wrong today, which definitions your team has never settled, and what keeping them current takes.
We compare eight LLMs on analytics questions to choose our agent’s model, measuring answer quality, reasoning effort, cost and the effect of our harness.
How a tree of business domains makes analytics context easier to debug, maintain, and retrieve without overloading the agent.
Your schema, dbt, query logs and docs already hold much of the context an analytics agent needs. Here's how to recover it without inventing what isn't there.