Priya pasted a 40-line Python traceback into three chat boxes, then installed two coding agents because a group chat said “just let it run.” Forty minutes later she had a “fix” that renamed customer_id in one file and left it in six others, a second agent fighting the first on the same branch, and a 12,403-row join sitting in a notebook nobody had re-run. The original error was a missing CSV in /data/raw/. Nobody had listed the folder.
This is Part 2 of Which AI product should I use? You want help coding or building software. That is a different job from writing and questions. A chat window can explain an error. An agent in a folder can change the tree. Mixing those without a review step is how you get two agents and one missing file. Names below (Claude Code, Codex, Gemini CLI / Antigravity, Grok Build) move. Re-check the vendor the week you install.
What you’ll learn
- When a paste in chat is enough, and when you need an agent that can see the repo
- What Claude Code, ChatGPT Codex, Gemini’s coding CLI path, and Grok Build are for, in plain English
- A try-this-first default that does not require four installs
- A first-hour loop: clone, ask, change, check
- The fails that rename a column in one file and ship 12,403 surprise rows
Two jobs people mash together
Job A is language about code: “what does this error mean,” “name this function,” “sketch a SELECT.” You paste a snippet. You copy a suggestion back. The project on disk does not move until you type.
Job B is an agent in a project folder. It lists files, proposes diffs, maybe runs tests. You still have to read the diff. The blast radius is the repo, not a paragraph.
Priya needed Job A for 90 seconds (the CSV path), then maybe Job B to add a existence check. She bought Job B twice and skipped the folder listing. If you only need Job A, stay in the chat box from Part 1. Installing an agent because it sounds more serious is how Friday gets expensive.

Coding surfaces, not slogans

| Surface | Family | Open it if | Do not open it if |
|---|---|---|---|
| Chat window | Any of the four | The change fits in a paste | You have not looked at the other files |
| Claude Code | Anthropic | You will let an agent read a real project | You only needed a paragraph |
| ChatGPT Codex | OpenAI | Your stack is already ChatGPT and you want the coding agent path | You are collecting agents for sport |
| Gemini CLI / Antigravity | You already live in Google’s coding tools (names have shifted; re-check) | You have never opened a terminal and the job is one function | |
| Grok Build | xAI | You already pay for a Grok path that includes Build, and you want a terminal agent | A SuperGrok chat tab would have been enough |
Depth lives in the brand series: Claude Code in the Claude series, Codex in ChatGPT, Gemini coding, Grok Build. This page is the hallway. Confirm current install docs at Anthropic, OpenAI, Google, and x.ai/build.
Rule of thumb: One agent in one repo. Two agents on one branch is not a team. It is a merge conflict generator.
Try this first
AMS default for a person who will actually touch a folder: Claude Code in a clone, not in production, with plan-or-approve behavior turned on if the product offers it. If your company already standardized on Codex or Grok Build, use that. Do not install a second family “to compare” on the same tree.
If you have never opened a terminal, start with Job A in a chat box this week. An agent is not a personality upgrade. It is permission to edit files. Earn that with one small, reviewed change.
First hour: explore, change, check
- Copy the repo or work in a throwaway folder. Do not point an agent at the only copy of payroll scripts.
- Ask it to list the tree and name the file that should own
customer_id. Read the answer. Priya would have seen/data/raw/was empty. - Give one change: “If the CSV is missing, raise a clear error. Do not invent a file.”
- Read the diff. Search for every rename. If it touched six files for a path check, reject it.
- Run the test or the script yourself. The agent’s “all good” is a claim.
A brief you can paste into an agent (or a chat box, if you are still on Job A):
# Goal: fail clearly when the input CSV is missing.
# Repo: toy-orders
# Do not rename columns. Do not invent /data/raw/orders.csv.
# Change only the loader. Show me the diff. Stop after one file.
def load_orders(path):
import pandas as pd
return pd.read_csv(path)
# Current fail: FileNotFoundError with no hint.
# Wanted: a message that names the path and says "export missing, not a join bug."What that code is for: a 6-line loader and a constraint list. If the agent rewrites your join logic to “fix” a missing file, the brief failed in the review, not in the model.
Worked example: 12,403 rows
Toy grain: one row per order line. Priya’s notebook joined orders to customers after an agent “helpfully” dropped a duplicate check. The join came back at 12,403 rows. Yesterday it was 1,188. The extra zeros were a many-to-many from a renamed key that still existed under the old name in dim_customer.sql.
| Check | Before agent | After sloppy agent |
|---|---|---|
| Row count on the join | 1,188 | 12,403 |
| Files touched | 1 (loader) | 7 (loader + models + a random README) |
| Missing CSV | Still missing | Still missing, plus a new column alias |
The coding-agent lesson is the same as the analytics one: count the rows. If you cannot say what one row means, stop. For joins as a skill, the SQL series is the long path. The agent does not replace that.
What “review the diff” looks like
People skip review because the agent’s English is confident. Review is a search, not a vibe. Search the diff for customer_id, for deleted tests, for new network calls, for files you did not name. If the product has a plan mode, use it on anything bigger than a typo. If it wants to run commands, read the command. rm and git push --force are not personality. They are blast radius.
A decent review takes less time than Priya’s 40 minutes of two agents. You are not proving you do not trust machines. You are checking that the missing CSV stayed a missing CSV and did not become a silent empty frame with 12,403 rows. The data quality series is the longer habit; the agent does not retire it.
Chat vs agent, in one more story
If Priya had stayed in a chat box, pasted the traceback, and asked “what file is missing,” she would have had the answer in one screen. The agent was useful only after that: add a check, one file, one test. The group chat that said “just let it run” was selling autonomy as a status symbol. Autonomy is a dial. Watch, then approve batches, then maybe walk away on chores you have seen it do correctly ten times. Walking away on the first night is how keys leak and READMEs get rewritten in a tone you do not use.
Common mistakes
- Two agents, one branch. Pick a family.
- Production checkout as the sandbox. Clone first.
- Accepting a 400-line diff for a missing-file message.
- Pasting API keys into the chat “so it can test.” Use env vars. Rotate if you already pasted.
- Skipping tests because the agent wrote some. Run them.
- Using a coding agent to write the thank-you from Part 1. That is the wrong door.
Install without turning Friday into theater
Install docs change. The shape does not. You install a CLI or a desktop app, you authenticate in a browser, you point it at a folder you can afford to ruin. You do not pipe an install script into production as root because a tweet had a curl one-liner. You do not give the agent your only copy of the warehouse models. You do not store API keys in the repo “for convenience.” If the product wants ANTHROPIC_API_KEY or XAI_API_KEY in the environment, that is an env var on your machine, not a file named secrets.txt next to orders.csv.
Eligibility is a moving SKU. Claude Code, Codex, Gemini’s CLI path, and Grok Build have all been tied to paid plans at various times. If the install says you need Pro, Max, SuperGrok, or Premium Plus, believe the page in front of you, not this paragraph. A failed install is not a reason to paste the whole repo into a chat box. It is a reason to stay on Job A until the account is sorted.
How to practice this week
Take a script you own. Make one tiny, reviewed change with one agent. If you do not have a repo, stay on chat for a week and come back. Next in this chooser: Part 3, files and office work. The decision tree is Part 6.
Quick recap
- Snippets stay in chat. Folder changes need one agent and a diff you read.
- Try Claude Code in a clone unless your house already picked Codex, Gemini’s CLI path, or Grok Build.
- Count the rows. Search the rename. You still ship the commit.
Sources
- Anthropic docs (Claude Code; confirm current install)
- OpenAI platform (Codex / coding agent path; names move)
- Google AI for developers (Gemini CLI / related coding surfaces)
- xAI: Grok Build
- AMS: Claude series (Code tutorial)
- AMS: SQL series (joins and grain, when the agent lies with row counts)
Keep going
Same lessons in your feed
Short diagrams and hooks on Instagram, X, and Facebook.
