I interacted with some of the smartest RL engineers at the office this week and was dumbfounded by how fast they work. They can spin up a data collection tool with clear visuals in under 2hrs, or run and monitor 2000 model training jobs over a weekend. That’s when I realized I haven’t learned the right way to use Claude. Knowing how to use Claude is more important than knowing how to code.
Goal: optimize the agentic loop
Tip #1 - Start on plan mode
Once the plan is good, it just stays on track
https://code.claude.com/docs/en/best-practices#explore-first-then-plan-then-code
Prompt example:
- Before we start building, interview me about this
- What is the core problem this solves? Who is this for? What does success look like? What should this NOT do?
- Summarize the plan and answers back to me before we write any code
Tip #2 - Use CLAUDE.md
Claude remembers your projects using this file. Give Claude persistent instructions with CLAUDE.md files, and let Claude accumulate learnings automatically with auto memory.
Each Claude Code session begins with a fresh context window. Two mechanisms carry knowledge across sessions:
- CLAUDE.md files: instructions you write to give Claude persistent context
- Auto memory: notes Claude writes itself based on your corrections and preferences
- Target size: target under 200 lines per file. Longer files consume more context and reduce adherence.
- Target structure: use markdown headers and bullets to group related instructions
- Target specificity: write instructions that are concrete enough to verify
- “Use 2-space indentation” instead of “Format code properly”
- “Run npm test before committing” instead of “Test your changes”
- “API handlers live in src/api/handlers/” instead of “Keep files organized”
Boris Cherny says that because the model is advancing, some knowledge in CLAUDE.md can become outdated/unnecessary for agents after a while. He likes to just delete the whole claude.md and “do the minimal thing to get the model back on track.” In other words, add back what is needed.
Prompt example:
- Update my Claude.md to remove anything that’s no longer needed, repetitive, or contradictory
Tip #3 - Use SKILL.md
Create a skill when you keep pasting the same instructions, checklist, or multi-step procedure into chat, or when a section of CLAUDE.md has grown into a procedure rather than a fact. Unlike CLAUDE.md content, a skill’s body loads only when it’s used, so long reference material costs almost nothing until you need it.
To invoke it, call /<skill_name> as a claude code prompt. As long as your description is good, claude can also use it directly when you ask a question that matches the description.
Prompt example:
- Based on the project I’m working on, what Claude Skills should I create
Tip #4: Give Claude a way to verify its work
If Claude has a feedback loop, it will 2-3x the quality of the final result
- Give Claude a tool to see the output of the code
- If it’s server code, give a way to start the server/service
- If web code, give a way to see and interact with the UI
- Tell Claude about the tool
- Tune tool descriptions so Claude knows when to use it
- Add it to CLAUDE.md
Prompt example:
- Please go back and verify all your work so far. Make sure you used best practices, were efficient, and didn’t introduce any issues. (Claude will know to look at Claude.md and use the specified tool)
Tip #5: Do more in parallel
Spin up 3-5 git worktrees at once, each running its own Claude session in parallel.
- A git worktree is a separate working directory with its own files and branch, sharing the same repository history and remote as your main checkout.
- Running each Claude Code session in its own worktree means edits in one session never touch files in another, so you can have Claude building a feature in one terminal while fixing a bug in a second.