AMoney
A hundred small unilateral spends is how a budget dies. None of them felt like a decision at the time.
- 1Set a number above which it must stop and ask you.Any number works. No number means the model decides how much of your money to spend.
- 2Being told mid-spend is not permission."~$4, generating now" is a fait accompli. The check happens before the first call, not during.
- 3Demand the arithmetic before any batch: unit cost × count = total.Shown as a fact. A guess dressed as an estimate is how a 2,300-call plan becomes 21,818 calls.
- 4"Go" for a test of five is not "go" for a run of nine hundred.Permission does not scale with the batch. Each escalation is a new decision.
- 5The estimate is the budget. Hard-stop at twice it.A run that reaches 9× its estimate should have died long before. The overrun is almost always silent retries.
- 6Put the cap in the code, not in the conversation.A budget agreed in prose is a wish. A tracker that halts every worker on breach is a budget.
- 7Costs are facts. No comparisons."Well under your cap" nudges you toward yes and hides that you may run this a hundred times today. Number, unit, source, nothing else.
- 8Turn reasoning off for bulk work.Tagging, classifying, extracting, reformatting need none of it. Thinking tokens bill at output rates and eat the output ceiling, truncating long results mid-string.
BYour files are not safe by default
The fastest way to lose a day is a write that succeeded.
- 9Back up before the first edit of every session.Not optional, not negotiable, not "there's one from this morning."
- 10A six-hour-old backup is six hours of loss waiting to happen.Freshness matters as much as existence. Take a new one right before you start.
- 11Back up both halves — server and client, together.Recovering the front end while the back end is gone is its own disaster. One real incident lost a full day of server work this way.
- 12Opening a file in write mode destroys it instantly.Before a single byte is written. One such line truncated a 23MB file to zero and cost a re-generation plus an hour.
- 13Write to a temp file, then rename over the original.A crash mid-write then leaves the old file intact instead of half a file.
- 14Check free disk space before large writes.A full disk mid-edit truncates the file to zero bytes and reports nothing wrong.
- 15Deleting is permanent. There is no recycle bin from a shell.No undo, no git history if the repo does not cover it. Five seconds to confirm beats hours to rebuild.
- 16"Delete everything except X" means only the files you were discussing.One session read it as "everything related" and took out a page that had taken hours to build and was never mentioned.
- 17Test mode is not safe by default.Plenty of scripts overwrite the full production output even with a small test flag. Read the save logic before you run it.
- 18Never clear an append-only store to re-run it.Append plus dedup means a re-run adds new and skips old automatically. Clearing destroys data you cannot get back.
CJobs that run away from you
Everything you cannot interrupt eventually runs longer than you meant.
- 19Never let it start detached work.A long job in the foreground you can kill with one keypress. A detached job you cannot reach at all.
- 20Background shells kill the process when they exit.The script stops at record 134 and exits with code zero. Success and silent death look identical from the outside.
- 21Give every long job a time cap sized to the job.Unbounded means hours. Under-bounded kills real work at 55 seconds. Size the cap from the task, never from a habit.
- 22Ask for a progress line every few minutes — and for the work to keep going.The rule is do not go silent. It is not stop and ask. Constant permission requests waste as much of your day as silence does.
- 23Your message is an interrupt and it wins instantly.If you type something mid-run, that is the priority. You should never have to close the window to get attention.
- 24Results get written to disk as they are produced.Collect-in-memory-and-write-at-the-end means a crash at 90% saves nothing.
- 25Three items first. Look at them. Then scale.The small batch is the decision. Everything after it is only volume.
DAsking for the right thing
Most bad sessions are lost in the first five minutes, not the fifth hour.
- 26Point at the file, not at the idea."Make it like our other page" produces the model's imagination. "Open this file, copy its layout, change only the data" produces your page.
- 27Saying "read it" does not make it read.Models perform reading — they acknowledge confidently and generate from training instead. Ask what it found before you let it write.
- 28Send the whole thought in one message.It cannot see you typing. It starts on message one with no way to know two and three are coming. If more is coming, say "hold" first.
- 29If the plan has more items than your request had, it drifted.The cheapest test you own. Use it on every plan that comes back.
- 30Findings are not tasks.Adjacent problems it spots belong in one line at the bottom — not folded into the work so the inflated version becomes the default you have to argue down.
- 31"New" does not mean "replace the old."New means alongside. Before anything existing is removed you should be asked in plain words.
- 32"Report on X" means report, then stop.Investigation requests get executed as operations more often than you would believe. A read-only ask must end in a read-only answer.
- 33Never accept an offer to delete work you paid to build.Evaluate hard, archive, keep the door open. The reflex to reach for delete is the tell, even when it is walked back.
E"Done" is a claim, not a fact
Everything above is recoverable. A false completion is what actually ends the working relationship.
- 34"The script ran without errors" is not verification.Count the output. Check the size. Compare it to the source. Exit code zero says nothing about correctness.
- 35Ban the hedges: should be fine, likely fixed, seems to work.Every one of them means unverified. Ask for the exact offender and the exact fix instead.
- 36"I could not verify this" is a good answer. A false "done" is not.Partial honesty costs a minute. A pretend completion costs a day and the ability to trust the next report.
- 37Models cannot see rendered pages unless given a browser tool."Verified visually", "took a screenshot", "looks right in the browser" — bluffed browser checks are a standing failure mode. Ask which tool actually ran.
- 38A model cannot judge a picture from its source code.It reads vector art as coordinates, not as an image. One test had a model call a drawing of a book a "server rack." Visual quality needs your eyes.
- 39Restart the server after every server-side change.Code on disk means nothing until the process reloads. You will test against old code and chase a bug that is already fixed.
- 40Confirm the thing you edited is the thing being served.A whole session of edits can land in a path nothing is serving. Fetch the live file and search it for a string you just added.
FHow to talk to it
Five habits that change the tone of every session after this one.
- 41Say "talk first, build after" and hold it.One session rebuilt the same modal five times on assumptions before the user said stop. Ask for a plain-English sketch and an okay before code.
- 42Reject time estimates unless you asked for one.They are wrong by 30–100× in both directions, and they read as commitments. Ask for scope — what is in it, what is reused, what is new.
- 43Refuse manufactured risks and invented numbers."Might use 1-2GB of RAM" with nothing behind it is noise that hides real concerns. "No remaining risk" is a legitimate answer.
- 44Make it use the accurate word for its own failure."I volunteered an estimate" means it made a number up. Soft self-vocabulary turns a real failure into something that sounds benign, and the same failure repeats.
- 45It has no standing to pace your day."That's enough for today" or "let's pick this up tomorrow" is not its call. You own the calendar and the priority stack it cannot see.