added Agents, Commands, and Hooks subsections to TIPS AND TRICKS
Reorganized tips into dedicated extension-point sections (Agents 4, Commands 3, Hooks 5) by moving scattered tips from Prompting, Skills, Workflows, and Workflows Advanced. Added 8 new tips sourced from Boris and Thariq. Reordered as CLAUDE.md → Agents → Commands → Skills → Hooks → Workflows. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# claude-code-best-practice
|
||||
practice makes claude perfect
|
||||
|
||||
-white?style=flat&labelColor=555) <a href="https://github.com/shanraisshan/claude-code-best-practice/stargazers"><img src="https://img.shields.io/github/stars/shanraisshan/claude-code-best-practice?style=flat&label=%E2%98%85&labelColor=555&color=white" alt="GitHub Stars"></a><br>
|
||||
-white?style=flat&labelColor=555) <a href="https://github.com/shanraisshan/claude-code-best-practice/stargazers"><img src="https://img.shields.io/github/stars/shanraisshan/claude-code-best-practice?style=flat&label=%E2%98%85&labelColor=555&color=white" alt="GitHub Stars"></a><br>
|
||||
|
||||
[](best-practice/) [](implementation/) [](orchestration-workflow/orchestration-workflow.md) [](#-tips-and-tricks) <br>
|
||||
<img src="a.svg" height="14"> = Agents · <img src="c.svg" height="14"> = Commands · <img src="s.svg" height="14"> = Skills
|
||||
@@ -111,11 +111,10 @@ All major workflows converge on the same architectural pattern: **Research → P
|
||||
|
||||

|
||||
|
||||
■ **Prompting (4)**
|
||||
■ **Prompting (3)**
|
||||
- challenge Claude — "grill me on these changes and don't make a PR until I pass your test." or "prove to me this works" and have Claude diff between main and your branch 🚫👶 [](https://x.com/bcherny/status/2017742752566632544)
|
||||
- after a mediocre fix — "knowing everything you know now, scrap this and implement the elegant solution" 🚫👶 [](https://x.com/bcherny/status/2017742752566632544)
|
||||
- Claude fixes most bugs by itself — paste the bug, say "fix", don't micromanage how 🚫👶 [](https://x.com/bcherny/status/2017742750473720121)
|
||||
- say "use subagents" to throw more compute at a problem — offload tasks to keep your main context clean and focused 🚫👶 [](https://x.com/bcherny/status/2017742755737555434)
|
||||
|
||||
■ **Planning/Specs (6)**
|
||||
- always start with [plan mode](https://code.claude.com/docs/en/common-workflows) [](https://x.com/bcherny/status/2007179845336527000)
|
||||
@@ -125,16 +124,27 @@ All major workflows converge on the same architectural pattern: **Research → P
|
||||
- write detailed specs and reduce ambiguity before handing work off — the more specific you are, the better the output [](https://x.com/bcherny/status/2017742752566632544)
|
||||
- prototype > PRD — build 20-30 versions instead of writing specs, the cost of building is low so take many shots [](https://youtu.be/julbw1JuAz0?t=3630) [](https://youtu.be/julbw1JuAz0?t=3630)
|
||||
|
||||
■ **CLAUDE.md (6)**
|
||||
■ **CLAUDE.md (7)**
|
||||
- [CLAUDE.md](https://code.claude.com/docs/en/memory) should target under [200 lines](https://code.claude.com/docs/en/memory#write-effective-instructions) per file. [60 lines in humanlayer](https://www.humanlayer.dev/blog/writing-a-good-claude-md) ([still not 100% guaranteed](https://www.reddit.com/r/ClaudeCode/comments/1qn9pb9/claudemd_says_must_use_agent_claude_ignores_it_80/)). [](https://x.com/bcherny/status/2007179840848597422) [](https://www.humanlayer.dev/blog/writing-a-good-claude-md)
|
||||
- wrap domain-specific CLAUDE.md rules in [\<important if="..."\> tags](https://www.hlyr.dev/blog/stop-claude-from-ignoring-your-claude-md) to stop Claude from ignoring them as files grow longer [](https://www.hlyr.dev/blog/stop-claude-from-ignoring-your-claude-md)
|
||||
- use [multiple CLAUDE.md](best-practice/claude-memory.md) for monorepos — ancestor + descendant loading
|
||||
- use [.claude/rules/](https://code.claude.com/docs/en/memory#organize-rules-with-clauderules) to split large instructions
|
||||
- [memory.md](https://code.claude.com/docs/en/memory), constitution.md does not guarantee anything
|
||||
- any developer should be able to launch Claude, say "run the tests" and it works on the first try — if it doesn't, your CLAUDE.md is missing essential setup/build/test commands [](https://x.com/dexhorthy/status/2034713765401551053)
|
||||
- keep codebases clean and finish migrations — partially migrated frameworks confuse models that might pick the wrong pattern [](https://youtu.be/julbw1JuAz0?t=1112) [](https://youtu.be/julbw1JuAz0?t=1112)
|
||||
|
||||
■ <img src="s.svg" height="14"> **Skills (10)**
|
||||
- have feature specific [sub-agents](https://code.claude.com/docs/en/sub-agents) (extra context) with [skills](https://code.claude.com/docs/en/skills) (progressive disclosure) instead of general qa, backend engineer. [](https://x.com/bcherny/status/2007179850139000872)
|
||||
<img src="a.svg" height="14"> **Agents (4)**
|
||||
- have feature specific [sub-agents](https://code.claude.com/docs/en/sub-agents) (extra context) with [skills](https://code.claude.com/docs/en/skills) (progressive disclosure) instead of general qa, backend engineer [](https://x.com/bcherny/status/2007179850139000872)
|
||||
- say "use subagents" to throw more compute at a problem — offload tasks to keep your main context clean and focused 🚫👶 [](https://x.com/bcherny/status/2017742755737555434)
|
||||
- [agent teams with tmux](https://code.claude.com/docs/en/agent-teams) and [git worktrees](https://x.com/bcherny/status/2025007393290272904) for parallel development
|
||||
- use [test time compute](https://code.claude.com/docs/en/sub-agents) — separate context windows make results better; one agent can cause bugs and another (same model) can find them [](https://x.com/bcherny/status/2031151689219321886)
|
||||
|
||||
<img src="c.svg" height="14"> **Commands (3)**
|
||||
- use [commands](https://code.claude.com/docs/en/slash-commands) for your workflows instead of [sub-agents](https://code.claude.com/docs/en/sub-agents) [](https://x.com/bcherny/status/2007179847949500714)
|
||||
- use [slash commands](https://code.claude.com/docs/en/slash-commands) for every "inner loop" workflow you do many times a day — saves repeated prompting, commands live in `.claude/commands/` and are checked into git [](https://x.com/bcherny/status/2007179847949500714)
|
||||
- if you do something more than once a day, turn it into a [skill](https://code.claude.com/docs/en/skills) or [command](https://code.claude.com/docs/en/slash-commands) — build `/techdebt`, context-dump, or analytics commands [](https://x.com/bcherny/status/2017742748984742078)
|
||||
|
||||
<img src="s.svg" height="14"> **Skills (9)**
|
||||
- use [context: fork](https://code.claude.com/docs/en/skills) to run a skill in an isolated subagent — main context only sees the final result, not intermediate tool calls. The agent field lets you set the subagent type [](https://x.com/lydiahallie/status/2033603164398883042)
|
||||
- use [skills in subfolders](reports/claude-skills-for-larger-mono-repos.md) for monorepos
|
||||
- skills are folders, not files — use references/, scripts/, examples/ subdirectories for [progressive disclosure](https://code.claude.com/docs/en/skills) [](https://x.com/trq212/status/2033949937936085378)
|
||||
@@ -145,8 +155,14 @@ All major workflows converge on the same architectural pattern: **Research → P
|
||||
- include scripts and libraries in skills so Claude composes rather than reconstructs boilerplate [](https://x.com/trq212/status/2033949937936085378)
|
||||
- embed `` !`command` `` in SKILL.md to inject dynamic shell output into the prompt — Claude runs it on invocation and the model only sees the result [](https://x.com/lydiahallie/status/2034337963820327017)
|
||||
|
||||
■ **Workflows (9)**
|
||||
- use [commands](https://code.claude.com/docs/en/slash-commands) for your workflows instead of [sub-agents](https://code.claude.com/docs/en/sub-agents) [](https://x.com/bcherny/status/2007179847949500714)
|
||||
■ **Hooks (5)**
|
||||
- use [on-demand hooks](https://code.claude.com/docs/en/skills) in skills — /careful blocks destructive commands, /freeze blocks edits outside a directory [](https://x.com/trq212/status/2033949937936085378)
|
||||
- [measure skill usage](https://code.claude.com/docs/en/skills) with a PreToolUse hook to find popular or undertriggering skills [](https://x.com/trq212/status/2033949937936085378)
|
||||
- use a [PostToolUse hook](https://code.claude.com/docs/en/hooks) to auto-format code — Claude generates well-formatted code, the hook handles the last 10% to avoid CI failures [](https://x.com/bcherny/status/2007179852047335529)
|
||||
- route [permission requests](https://code.claude.com/docs/en/hooks) to Opus via a hook — let it scan for attacks and auto-approve safe ones 🚫👶 [](https://x.com/bcherny/status/2017742755737555434)
|
||||
- use a [Stop hook](https://code.claude.com/docs/en/hooks) to nudge Claude to keep going or verify its work at the end of a turn [](https://x.com/bcherny/status/2021701059253874861)
|
||||
|
||||
■ **Workflows (8)**
|
||||
- avoid agent dumb zone, do manual [/compact](https://code.claude.com/docs/en/interactive-mode) at max 50%. Use [/clear](https://code.claude.com/docs/en/cli-reference) to reset context mid-session if switching to a new task
|
||||
- vanilla cc is better than any workflows with smaller tasks
|
||||
- use [/model](https://code.claude.com/docs/en/model-config) to select model and reasoning, [/context](https://code.claude.com/docs/en/interactive-mode) to see context usage, [/usage](https://code.claude.com/docs/en/costs) to check plan limits, [/extra-usage](https://code.claude.com/docs/en/interactive-mode) to configure overflow billing, [/config](https://code.claude.com/docs/en/settings) to configure settings — use Opus for plan mode and Sonnet for code to get the best of both [](https://x.com/_catwu/status/1955694117264261609)
|
||||
@@ -156,19 +172,16 @@ All major workflows converge on the same architectural pattern: **Research → P
|
||||
- use [Esc Esc or /rewind](https://code.claude.com/docs/en/checkpointing) to undo when Claude goes off-track instead of trying to fix it in the same context
|
||||
- commit often — try to commit at least once per hour, as soon as task is completed, commit.
|
||||
|
||||
■ **Workflows Advanced (10)**
|
||||
■ **Workflows Advanced (7)**
|
||||
- use ASCII diagrams a lot to understand your architecture [](https://x.com/bcherny/status/2017742759218794768)
|
||||
- [agent teams with tmux](https://code.claude.com/docs/en/agent-teams) and [git worktrees](https://x.com/bcherny/status/2025007393290272904) for parallel development
|
||||
- use [/loop](https://code.claude.com/docs/en/scheduled-tasks) for recurring monitoring — poll deployments, babysit PRs, check builds (runs up to 3 days)
|
||||
- use [Ralph Wiggum plugin](https://github.com/shanraisshan/novel-llm-26) for long-running autonomous tasks [](https://x.com/bcherny/status/2007179858435281082)
|
||||
- [/permissions](https://code.claude.com/docs/en/permissions) with wildcard syntax (Bash(npm run *), Edit(/docs/**)) instead of dangerously-skip-permissions [](https://x.com/bcherny/status/2007179854077407667)
|
||||
- [/sandbox](https://code.claude.com/docs/en/sandboxing) to reduce permission prompts with file and network isolation — 84% reduction internally [](https://x.com/bcherny/status/2021700506465579443) [](https://creatoreconomy.so/p/inside-claude-code-how-an-ai-native-actually-works-cat-wu)
|
||||
- tag [@claude](https://github.com/apps/claude) on a coworker's PR to auto-generate lint rules for recurring review feedback — automate yourself out of code review 🚫👶 [](https://youtu.be/julbw1JuAz0?t=2715) [](https://youtu.be/julbw1JuAz0?t=2715)
|
||||
- use [on-demand hooks](https://code.claude.com/docs/en/skills) in skills — /careful blocks destructive commands, /freeze blocks edits outside a directory [](https://x.com/trq212/status/2033949937936085378)
|
||||
- invest in [product verification](https://code.claude.com/docs/en/skills) skills (signup-flow-driver, checkout-verifier) — worth spending a week to perfect [](https://x.com/trq212/status/2033949937936085378)
|
||||
- [measure skill usage](https://code.claude.com/docs/en/skills) with a PreToolUse hook to find popular or undertriggering skills [](https://x.com/trq212/status/2033949937936085378)
|
||||
|
||||
■ **Debugging (6)**
|
||||
■ **Debugging (7)**
|
||||
- make it a habit to take screenshots and share with Claude whenever you are stuck with any issue
|
||||
- use mcp ([Claude in Chrome](https://code.claude.com/docs/en/chrome), [Playwright](https://github.com/microsoft/playwright-mcp), [Chrome DevTools](https://developer.chrome.com/blog/chrome-devtools-mcp)) to let claude see chrome console logs on its own
|
||||
- always ask claude to run the terminal (you want to see logs of) as a background task for better debugging
|
||||
|
||||
Reference in New Issue
Block a user