An opinionated guide to Claude Code/Cursor
in London, UK
Warning: Things change so quickly that most of the stuff here is likely outdated. Reach out to me if you want an up-to-date version. That is if I’m still doing code by that time :)
1. Be skeptical and critical
Be skeptical of any agentic development guide or tips you read on the internet — including this one. We’re in a hype cycle and there is a lot of irrelevant noise.
It’s important to experiment and test things yourself. What works for other people might not work for you, and vice versa.
2. Beware of what goes into your global context
One line of bad global instructions => one thousand lines of bad code you have to review.
- For global Cursor Rules or
~/.claude/CLAUDE.md, keep it simple and relevant. Don’t just download “awesome-cursor-rules” from the internet and use them without reviewing first. - If the project you’re working on doesn’t have existing instructions, running
/initin Claude Code (pick the best model) will generate one for you. Review for relevancy and correctness.
3. Have 0 MCP
My stance on MCP is similar to Tools: Code Is All You Need. MCP pollutes the context with tool descriptions that you rarely use.
Instead, instruct the agent to use the equivalent CLI when interacting with your external sources. A simple line such as When interacting with GitHub, use "gh" CLI. It's installed. in the instructions suffices and only takes 14 tokens instead of 62.1k.
4. Disable web search
I treat agents calling “web search” as a sign that I haven’t loaded them with proper context.
5. Context engineering
This is a big topic on its own, but the goal is to pre-populate your agent with relevant context before it starts writing code.
-
Select relevant files. If you already know where the agent should look, tell it to load those files into context.
-
Load context by turning on read-only mode and asking questions. For instance, if you’re on a branch with some commits and want the agent to continue your work, ask:
Use git diff develop..HEAD to understand what has been done in this branch. Be comprehensive.This loads relevant information about the task into context. -
Clear your context often. Once you’re done with a task, it’s better to clear context and start from scratch. LLMs can suffer from Tunnel Vision Syndrome, “where a model’s imperfect initial steps lock it into a suboptimal reasoning path.” - ParaThinker: Native Parallel Thinking as a New Paradigm to Scale…
-
Ramble if you have to. Turn on voice dictation (Superwhisper or WhisprFlow), and ramble to the agent to load its context with relevant information. Explain what you’re trying to do and provide all the bits and pieces.
-
When you need documentation for a framework or a library, go to context7 and copy the plain-text version of the document into the agent. There is an MCP server, but again, don’t use MCP.
6. Close the feedback loop
If the agent can compile and verify your changes by running your program or unit tests, it will be able to correct its errors.
For instance, if you have a unit test in the main app for the feature you’re working on, let the agent know about it. Example prompt:
1Update FlowchartConverter to add edges' labels using a ShapeNotesItem to the middle point of the arrow.
2
3Verify the change by running this snapshot test
4
5 xcodebuild \
6 -scheme "GoodNotes" \
7 -workspace "./GoodNotes.xcworkspace" \
8 -destination "platform=iOS Simulator,name=iPad Pro 11-inch (M4)" test \
9 -testPlan UnitTests \
10 -only-testing:MermaidToNoteItemsSnapshotTests \
11 SWIFT_TREAT_WARNINGS_AS_ERRORS=NO \
12 GCC_TREAT_WARNINGS_AS_ERRORS=NO | xcpretty
7. Have a Makefile
Related to 6, put your common scripts like building, running tests, and code formatting in a Makefile. Most agents will know to read and use it.
8. Build a small playground app to iterate faster
If possible, build a small “example/playground” app to iterate on your code faster. Integrate it into the main codebase once you’re happy with the result.
9. Some Claude Code-specific tips
Here are some tips specific to Claude Code:
-
Use Plan mode with
ultrathinkand the biggest model before starting a task. Switching to Plan mode and the largest model usually yields a better result than one-shotting the query. -
think<think hard<think harder<ultrathinkare special keywords for Anthropic models that allow them to allocate more thinking budget. -
Use parallel background agents to speed up independent tasks. Example prompt:
Check my pending GitHub PRs. For each PR, spawn a subagent to collect all the review comments, then produce a to-do list of what I need to do today, prioritized by importance. -
Symlink AGENTS.md to CLAUDE.md. Claude Code hasn’t picked up the AGENTS.md standard yet. I usually symlink the two files so your instructions get picked up by all editors and agents (Cursor, CC, Codex):
ln -s AGENTS.md CLAUDE.md