Skip to main content
On this page

Analyze Your files

Your agent's brainstorm

Your agent plans, tries and checks a change in your private brainstorm folder, then asks you once before anything leaves it.

Audience
Everyone. Business teams mostly through their agent, data teams also directly.
Prerequisites
  • Your agent connected to the Kater MCP
  • Edit access to a workspace, to apply a change to it

Your brainstorm folder is where your agent works before it asks you anything. It writes a plan, tries the change on a copy, checks the numbers and shows you the result. Then it asks one question. Nothing leaves the folder until you say yes.

The folder

It is connections/<connection>/users/<your email>/brainstorm/, or Yours › brainstorm in Files.

  • Private. Only you, admins and the people you share it with can read it.
  • Free inside. Your agent creates and changes files here without asking.
  • Ask to leave. A query in a workspace, a model change or a schedule waits for your yes.
  • Not versioned. The folder has no History, and nothing outside it reads its files.
  • No rows in files. A note says what ran and its result, never the rows.
In the folderWhat it isOpens as
<topic>.mdA note: the plan, what ran and the answerMarkdown, with View, Edit and Compare
Any .sql fileA scratch file of SQL statementsThe Sandbox
<topic>/workspaces/<name>/A workspace copyThe workspace editor, with Compare and Apply
<topic>/apps/<name>/A draft appIts pages, with Move to my apps
<topic>/pages/*.htmlA pageThe page, drawn
Claude Code's menu in the Kater header: Answered in Claude Code, just now, then Working In with Ad Reporting, Read just now, and Ad Reporting copy, Edited just now, then Follow This Tab, Pause Sharing and Disconnect Claude Code
Your agent’s menu. It read Ad Reporting and changed only its copy.

The loop

Plan, try, check, show, ask, apply. Your agent says one short line before each step, such as “Writing the plan in your brainstorm folder.”

  1. Plan.

    A note for the question, with its goal and what will answer it.

  2. Try.

    Scratch statements, a workspace copy, or a draft page or app.

  3. Check.

    It runs what answers the question. kater compare says whether two answers are the same. Your agent never decides that by reading rows.

  4. Show.

    One line with the answer, then the run, card or page that shows it.

  5. Ask.

    One question: whether to apply it, and where.

  6. Apply.

    Only after your yes. Then your agent compares again and sets the note’s status.

Try a prompt such as “Can ROAS be one measure in Channel Performance Weekly without changing any numbers? Try it safely first.” A typical answer: “ROAS can be one measure. Same numbers in all 6 queries.”

Notes

Each question gets its own note, named for the question, such as brainstorm/promote_roas.md. It opens with a title, a Status line and a Kind line. This is a real note an agent wrote, shortened:

users/<email>/brainstorm/marketing_channel_performance.md
# Marketing Channel Performance project app
Status: applied, workspace copy and app moved to users/yvonne@kater.ai/apps/marketing_channel_performance; all tags draw
Kind: change
## Goal
One app, "Marketing Channel Performance", with three tabs:
1. **Weekly review**: the current Marketing Channel Performance and Forecast deck, unchanged.
2. **Move budget to TikTok**: what happens if budget moves from Google and Meta to TikTok, with total spend unchanged.
3. **Spend scenario**: what the spend-change scenario (15% by default) brings, with flat ROAS and with diminishing returns.
## Log
- `kater compare` original vs copy: 6 existing queries same, 5 added.
- `kater brainstorm show` draft app: all tags draw on all three pages.
- `kater workspace apply --dry-run`: 6 files ready (workspace.sql changed, 5 queries added); compiles with the original.
StatusMeans
openThe work is in progress
answeredThe answer is in the note, with its evidence
appliedThe change was applied after your yes
droppedYou said no

Kind is change for a topic that ends in an apply, or spike for one that asks whether something can work. Only a spike’s pages can show made-up sample rows, each marked Sample data. In Files, the tree marks each topic’s status, and a note shows it beside View, Edit and Compare.

Workspace copies

A copy is a real workspace inside a topic’s folder. Your agent changes the copy, and the original stays as it is.

  1. Copy.

    Any workspace you can read can be copied. The copy keeps the original’s name.

    Terminal window
    kater brainstorm copy connections/snowflake_prod_connection/users/<email>/workspaces/channel_performance_weekly --topic marketing_channel_performance
  2. Change.

    Open the copy in the workspace editor. Its banner says Copy of and the original’s name, when it was copied, and Compare and Apply.

  3. Compare.

    Select Compare. Kater runs each query in the copy and in the original, pairs them by name, and says for each pair: the same, different with the cells that differ, or refused with the reason.

  4. Apply.

    Select Apply. Kater shows each file the copy changed, its diff, and the rows as they are and as they will be. Confirm with Apply and the number of files. Your agent runs kater workspace apply <copy> --dry-run to show you the same thing, and it writes nothing.

  • Who can apply. Only someone who can edit the original.
  • Someone changed the original. A file that changed in the original since the copy is refused, so nobody’s work is overwritten. Make a fresh copy and change that.
  • It does not compile. Nothing is written. Fix the copy and compare again.
  • It stays in the folder. Explore, Add to and the workspace pickers never offer a copy.

Kater writes copied-from.yaml at the copy’s root. It names the original and each file’s revision. Files shows it as a form, with Open the original:

users/<email>/brainstorm/marketing_channel_performance/workspaces/channel_performance_weekly/copied-from.yaml
workspace: connections/snowflake_prod_connection/users/yvonne@kater.ai/workspaces/channel_performance_weekly
copied_at: '2026-10-06T04:57:29Z'
applied_at: '2026-10-06T05:37:24Z'
files:
query_contracts/scenario_baseline.sql:
original: 85209c7506bc0c854e9ed706349cfc8090322923ba1268ea097aad1c5ba4f26d
copy: 85209c7506bc0c854e9ed706349cfc8090322923ba1268ea097aad1c5ba4f26d

Draft apps and pages

Your agent drafts an app, such as a deck or a report, in brainstorm/<topic>/apps/<name>/. It opens in the portal at /sandbox/brainstorm/<connection>/<email>/<topic>/apps/<name>/index.html, with its other pages. Only you and admins can open that address.

When you like it, select Move to my apps, or say yes to your agent. Kater checks the move first and writes nothing until every check passes. No tag can read sample rows, a copy it reads must be applied first, and every query must compile. Then the app moves to your apps/ folder, with you as its owner.

The Sandbox

A scratch file is any .sql file in your brainstorm folder. Use it for a quick answer before you select a workspace. Open it from View › Sandbox in Files, New › Scratch file on Home, or Make something new › Sandbox on Workspaces.

The Sandbox in Files: the Scratchpad list of scratch files, a scratch file with a SELECT statement titled Minimal: EVAL, with ROAS as a MEASURE, its rows for three platforms, and three bar charts
A scratch file, its rows and its chart.
  • Statements. Separate statements with semicolons. The comment above a statement is its title. Run (⌘↵) runs the statement at your cursor, and its menu has Run all statements.
  • Formulas and charts. The rows have the same formula bar and chart as a query.
  • Keep it. Add to saves a statement as a query in a workspace.
  • Warehouse SQL. A statement over warehouse tables needs edit access to the shared models.

Nothing leaves without your yes

Your agent’s kater tool writes only in your brainstorm folder. A change anywhere else, made with kater_apply or a file tool, waits for your yes. Kater’s rules tell your agent to ask first, and your agent app can also ask you to allow each call. Your agent deletes nothing, your own topics included, unless you ask. A change you applied shows in History with Undo, which reverses it as a new change.

The History sidebar after Undo: a new change, Undo: End the spend trend at the last complete month in the data, with Redo, above the original change marked Undone
Undo writes a new change, with Redo.

Next steps