For your global AGENTS.md/CLAUDE.md files, what tips have you learnt that make a noticeable improvement?
Some of my most noticeable:
1. Internet Timeouts
I noticed LLM agents constantly running commands with timeouts, and the timeouts running out, because they assume my internet connection will be fast enough:
$ node /tmp/plumb-render-browser/node_modules/playwright/cli.js install chromium (timeout 120s)
... (4 earlier lines, ctrl+o to expand)
|■■■■■■■■■■■■■■■■■■■■■■■■ | 30% of 186.8 MiB
|■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 40% of 186.8 MiB
Command timed out after 120 seconds
So, I added:
For timeouts and quick checks, consider the internet speed is about 5Mb/s down, 2Mb/s up.
2. Over-Eager Beaver
I can only assume runtimes/harnesses have something in their system prompts that too eagerly pushes LLMs to continue work. Often, I will just want help debugging or finding something, but the agent will go off and make changes it sees fit.
When solely told to "debug", NEVER fix. When asked "what is the fix", describe it in words only. NEVER implement it, unless explicitly asked to.
On freeCodeCamp, it looks like the surrounding eco-system handles sloppy code.
I think two factors here are worth considering: cost and performance.
For every task, tokens are spent reading the markdown files.
The code / info generated requires human work / revision.
Basically paying to train the next generation of LLMs. I feel a lot of people are throwing everything at the LLM and expecting something worthwhile.
Like, ask it to work on specific snippets of a file or perform a niche task. The narrower the focus, maybe better results, that are comprehensible, actionable, and easier to verify.
Guardrails are good, but they focus on safety or rigid formatting that can strip away the LLM’s “reasoning” ability. Instead of a tightly restrictive system, modular prompting where a large task is broken down into specific micro-tasks.