Did you trust the free model this morning? Or did you trust a disk you do not own?
I keep hearing the same five claims. They sound calm inside a busy chat. Those five claims are not real architecture.
This FAQ busts each claim with commands. Every myth should map to printed evidence. Keep the output beside the patch.
I will not recap latency myths here. I will not recap lockfile myths here. I will not recap git-author myths here.
The remaining gap is still painfully simple. You borrowed a machine without an inventory.
How to read each myth
Use one boring loop. Do not improvise a second loop.
- Read the claim developers keep repeating.
- Run the evidence command on that box.
- Replace the claim with the printed line.
Do not debate the assistant transcript. Debate a receipt file you can grep. A free model does not define a computer.
Why a receipt at all
Chat text is not a host inventory. Folder captions are not inodes either.
I needed one cheap place to rehearse receipts. MonkeyCode offers free model access and a free server option. Disclosure: This article was prepared as part of MonkeyCode's product outreach.
If you need a rehearsal room, that option is enough. The receipt script still runs on any Unix host.
I am not naming model SKUs here. I am not publishing timed benchmarks either. I am not promising disk lifetime or quotas.
Those marketing numbers go stale fast. A local receipt does not. Treat every snippet as a template until you run it.
Myth 1: The free model is obvious, so skip the id
The claim
"It is the free one. Everyone knows which."
Do you still know after three tabs? Do you know after one silent retry?
Why it spreads
Free sounds like a single obvious SKU. Chat UIs often hide the real field. People compare runs that never shared an id.
Evidence you can collect
Write the id before the first prompt. Do not recover it from memory later.
# template: paste from the UI, never from vibes
: "${MODEL_ID:=UNSET}"
echo "model_id=${MODEL_ID}" >> receipt.env
date -u +"%Y-%m-%dT%H:%M:%SZ" >> receipt.env
If MODEL_ID stays UNSET, you have no experiment. You only have a story about price.
Corrected mental model
Free is a billing label, not an identifier. Pin the field before you judge the diff. Refuse comparisons that lack that field.
Myth 2: The working directory is my laptop repo
The claim
"The agent is already in the project. Relax."
Which clone is that sentence describing? Which dirty tree sits under it?
Why it spreads
The UI shows a friendly folder name. Humans read that caption as $HOME. Borrowed servers reuse names without mercy.
Evidence you can collect
pwd
ls -ld .
git rev-parse --show-toplevel 2>/dev/null || echo "NO_GIT_ROOT"
git rev-parse HEAD 2>/dev/null || echo "NO_HEAD"
git status --porcelain | wc -l
If pwd is not the path you expected, stop. Do not apply the patch on faith.
Corrected mental model
The chat caption is only a label. pwd is the actual location. No HEAD means no claim about GitHub.
Myth 3: A green build on the free box ports home
The claim
"It compiled there. It will compile here."
Same compiler? Same libc? Same Node major?
Why it spreads
Green is addictive during a late session. One success feels like a full matrix. A free server is still one cell.
Evidence you can collect
uname -a
command -v python3 && python3 -V
command -v node && node -v
command -v go && go env GOOS GOARCH
cc -dumpmachine 2>/dev/null || true
Copy those lines into receipt.md immediately. Compare them to your laptop later. Do not paste only "build passed."
Corrected mental model
Green means that box, that PATH, that moment. Portability is a second experiment. Schedule it before you merge.
Myth 4: Free means the box cannot reach the network
The claim
"Scratch box, no egress, so secrets are fine."
Who stated that rule in writing? Did you print the proxy variables?
Why it spreads
"Free sandbox" sounds sealed by default. The word sandbox is doing extra work. Sealed is a policy you have not read.
Evidence you can collect
Do not scan other people. Print local belief only.
env | grep -E '^(HTTP|HTTPS|NO)_PROXY=' || echo "NO_PROXY_VARS"
# If you test egress, curl a URL you own.
# Template only; leave MY_HEALTHCHECK_URL empty until it is yours.
# curl -sS -o /dev/null -w "%{http_code}\n" "$MY_HEALTHCHECK_URL"
If you cannot state the egress rule, stop. Keep secrets off that disk.
Corrected mental model
Unknown network is not a firewall. It is a gap in the receipt. Borrowed disk plus unknown egress is a leak.
Myth 5: Closing the tab kills the job and wipes the disk
The claim
"I closed the chat. Nothing remains."
Process lifetime is not UI lifetime. Disk lifetime is not a browser tab.
Why it spreads
Web apps trained us badly here. Close the tab, session gone. Remote compute never signed that contract.
The opposite myth is also false. Do not assume the disk lives forever. Unknown lifetime cuts both ways.
Evidence you can collect
echo "pid=$$"
ps -o pid,etime,cmd -p $$
# after a reconnect, ask again
pgrep -af your-job-name || echo "NO_JOB"
ls -ld /tmp "$PWD"
Record start time, pid, and reconnect facts. If you cannot prove death, skip secrets. If you cannot prove retention, skip backups.
Corrected mental model
UI close is a client event only. It is not SIGTERM on the box. Treat lifetime as unknown on purpose. Design for restart and for loss.
The receipt script
One file beats five myths. Keep the file small.
Save this as scripts/run-receipt.sh. Mark it executable after you save.
#!/usr/bin/env bash
# Template receipt. Unexecuted until you run it.
set -euo pipefail
out="${1:-receipt.md}"
{
echo "# run receipt"
echo
echo "- utc: $(date -u +"%Y-%m-%dT%H:%M:%SZ")"
echo "- host: $(hostname)"
echo "- user: $(id -un)"
echo "- uid: $(id -u)"
echo "- pwd: $(pwd)"
echo "- pid: $$"
echo "- model_id: ${MODEL_ID:-UNSET}"
echo "- uname: $(uname -a)"
echo "- python: $(python3 -V 2>&1 || echo missing)"
echo "- node: $(node -v 2>&1 || echo missing)"
echo "- git_root: $(git rev-parse --show-toplevel 2>/dev/null || echo none)"
echo "- git_head: $(git rev-parse HEAD 2>/dev/null || echo none)"
echo "- dirty_paths: $(git status --porcelain 2>/dev/null | wc -l | tr -d ' ')"
echo "- proxy_vars:"
env | grep -E '^(HTTP|HTTPS|NO)_PROXY=' || echo " (none)"
} > "$out"
echo "wrote $out"
Run it like this on the borrowed box.
chmod +x scripts/run-receipt.sh
MODEL_ID="paste-from-ui" ./scripts/run-receipt.sh
cat receipt.md
Commit a redacted receipt with the patch. Keep machine facts. Drop secret values.
Decision table
Ask one question before you paste code. Should this task touch a borrowed free server?
| Situation | Borrowed free server? | Why |
|---|---|---|
| Scratch prompt, no secrets | Yes, with a receipt | Cost stays low if you record the box |
.env with production tokens |
No | Disk ownership is still unknown |
| Need bit-identical local reproduce | Not as the only cell | One green build is not a matrix |
| Cannot state egress rules | No for credentials | Unknown network is not a firewall |
| Job cannot be restarted | No | Lifetime is unknown both ways |
| Teaching juniors about agents | Yes, if they keep receipts | The lesson is the inventory |
If two rows conflict, choose the stricter No. Write that No on the receipt.
Limitations
This receipt is not attestation. It is a text file you wrote.
A process can lie to you. A wrapper can rewrite uname. You get operational honesty, not cryptography.
The script does not freeze container images. It does not pin apt packages. It does not prove model weights. It records the id the UI showed.
I do not know your vendor retention story. You also do not, without a contract. Do not turn this FAQ into a compliance stamp.
Who should not use this approach
Skip the free-box path if any item matches.
- You handle regulated data today.
- You cannot redact a receipt safely.
- You need a signed wipe SLA.
- You cannot name the model field.
- You will paste
.env"just once."
Use a laptop you own instead. Or use a cluster with paper. This FAQ will not save a secret you already typed.
What to do on Monday
Pick one agent task, not ten. Generate receipt.md before the prompt.
Then prompt. Then patch. Then compare toolchains at home.
If model_id is UNSET, throw the run away. If pwd surprises you, throw the run away.
That is the whole method, short on purpose. Which myth did you repeat last week?
Top comments (0)