diff --git a/!/tags/boris-cherny.svg b/!/tags/boris-cherny.svg
index df06046..3042436 100644
--- a/!/tags/boris-cherny.svg
+++ b/!/tags/boris-cherny.svg
@@ -1,17 +1,20 @@
-
diff --git a/!/tags/boris-team.svg b/!/tags/boris-team.svg
index f542c14..c36ac95 100644
--- a/!/tags/boris-team.svg
+++ b/!/tags/boris-team.svg
@@ -1,17 +1,21 @@
-
+Boris Cherny + Team
-
+
-
-
+
+
+
+
+
+
- Boris Cherny + Team
+ Boris Cherny + Team
diff --git a/!/tags/community.svg b/!/tags/community.svg
index f5a6e7a..36b81f9 100644
--- a/!/tags/community.svg
+++ b/!/tags/community.svg
@@ -8,7 +8,7 @@
-
+
diff --git a/!/tags/orchestration-workflow-hd.svg b/!/tags/orchestration-workflow-hd.svg
index a98d97d..3e81abc 100644
--- a/!/tags/orchestration-workflow-hd.svg
+++ b/!/tags/orchestration-workflow-hd.svg
@@ -22,7 +22,7 @@
-
+
diff --git a/!/tags/orchestration-workflow.svg b/!/tags/orchestration-workflow.svg
index 22696e3..fd261de 100644
--- a/!/tags/orchestration-workflow.svg
+++ b/!/tags/orchestration-workflow.svg
@@ -8,7 +8,7 @@
-
+
diff --git a/!/tags/thariq.svg b/!/tags/thariq.svg
new file mode 100644
index 0000000..df1d9fe
--- /dev/null
+++ b/!/tags/thariq.svg
@@ -0,0 +1,20 @@
+
+ Thariq
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Thariq
+
+
diff --git a/.claude/agents/presentation-curator.md b/.claude/agents/presentation-curator.md
index 1fb0397..25c6125 100644
--- a/.claude/agents/presentation-curator.md
+++ b/.claude/agents/presentation-curator.md
@@ -1,7 +1,18 @@
---
name: presentation-curator
description: PROACTIVELY use this agent whenever the user wants to update, modify, or fix the presentation slides, structure, styling, or weights
-tools: Read, Write, Edit, Grep, Glob
+allowedTools:
+ - "Bash(*)"
+ - "Read"
+ - "Write"
+ - "Edit"
+ - "Glob"
+ - "Grep"
+ - "WebFetch(*)"
+ - "WebSearch(*)"
+ - "Agent"
+ - "NotebookEdit"
+ - "mcp__*"
model: sonnet
color: magenta
skills:
diff --git a/.claude/agents/time-agent.md b/.claude/agents/time-agent.md
index d4f308b..e483ea8 100644
--- a/.claude/agents/time-agent.md
+++ b/.claude/agents/time-agent.md
@@ -1,7 +1,18 @@
---
name: time-agent
description: Use this agent to display the current time in Pakistan Standard Time (PKT, UTC+5).
-tools: Bash
+allowedTools:
+ - "Bash(*)"
+ - "Read"
+ - "Write"
+ - "Edit"
+ - "Glob"
+ - "Grep"
+ - "WebFetch(*)"
+ - "WebSearch(*)"
+ - "Agent"
+ - "NotebookEdit"
+ - "mcp__*"
model: haiku
maxTurns: 3
---
diff --git a/.claude/agents/weather-agent.md b/.claude/agents/weather-agent.md
index 175dfe2..74b9f11 100644
--- a/.claude/agents/weather-agent.md
+++ b/.claude/agents/weather-agent.md
@@ -1,7 +1,18 @@
---
name: weather-agent
description: Use this agent PROACTIVELY when you need to fetch weather data for Dubai, UAE. This agent fetches real-time temperature from Open-Meteo using its preloaded weather-fetcher skill.
-tools: WebFetch, Read, Write, Edit
+allowedTools:
+ - "Bash(*)"
+ - "Read"
+ - "Write"
+ - "Edit"
+ - "Glob"
+ - "Grep"
+ - "WebFetch(*)"
+ - "WebSearch(*)"
+ - "Agent"
+ - "NotebookEdit"
+ - "mcp__*"
model: sonnet
color: green
maxTurns: 5
diff --git a/.claude/agents/workflows/best-practice/workflow-claude-commands-agent.md b/.claude/agents/workflows/best-practice/workflow-claude-commands-agent.md
index 16efd37..7766265 100644
--- a/.claude/agents/workflows/best-practice/workflow-claude-commands-agent.md
+++ b/.claude/agents/workflows/best-practice/workflow-claude-commands-agent.md
@@ -3,6 +3,18 @@ name: workflow-claude-commands-agent
description: Research agent that fetches Claude Code docs, reads the local commands report, and analyzes drift
model: opus
color: green
+allowedTools:
+ - "Bash(*)"
+ - "Read"
+ - "Write"
+ - "Edit"
+ - "Glob"
+ - "Grep"
+ - "WebFetch(*)"
+ - "WebSearch(*)"
+ - "Agent"
+ - "NotebookEdit"
+ - "mcp__*"
---
# Workflow Changelog — Commands Research Agent
diff --git a/.claude/agents/workflows/best-practice/workflow-claude-settings-agent.md b/.claude/agents/workflows/best-practice/workflow-claude-settings-agent.md
index 068f7e8..cb2e9f8 100644
--- a/.claude/agents/workflows/best-practice/workflow-claude-settings-agent.md
+++ b/.claude/agents/workflows/best-practice/workflow-claude-settings-agent.md
@@ -3,6 +3,18 @@ name: workflow-claude-settings-agent
description: Research agent that fetches Claude Code docs, reads the local settings report, and analyzes drift
model: opus
color: yellow
+allowedTools:
+ - "Bash(*)"
+ - "Read"
+ - "Write"
+ - "Edit"
+ - "Glob"
+ - "Grep"
+ - "WebFetch(*)"
+ - "WebSearch(*)"
+ - "Agent"
+ - "NotebookEdit"
+ - "mcp__*"
---
# Workflow Changelog — Settings Research Agent
diff --git a/.claude/agents/workflows/best-practice/workflow-claude-skills-agent.md b/.claude/agents/workflows/best-practice/workflow-claude-skills-agent.md
index dbc775c..5d9cbce 100644
--- a/.claude/agents/workflows/best-practice/workflow-claude-skills-agent.md
+++ b/.claude/agents/workflows/best-practice/workflow-claude-skills-agent.md
@@ -3,6 +3,18 @@ name: workflow-claude-skills-agent
description: Research agent that fetches Claude Code docs, reads the local skills report, and analyzes drift
model: opus
color: magenta
+allowedTools:
+ - "Bash(*)"
+ - "Read"
+ - "Write"
+ - "Edit"
+ - "Glob"
+ - "Grep"
+ - "WebFetch(*)"
+ - "WebSearch(*)"
+ - "Agent"
+ - "NotebookEdit"
+ - "mcp__*"
---
# Workflow Changelog — Skills Research Agent
diff --git a/.claude/agents/workflows/best-practice/workflow-claude-subagents-agent.md b/.claude/agents/workflows/best-practice/workflow-claude-subagents-agent.md
index de963bd..49b91cd 100644
--- a/.claude/agents/workflows/best-practice/workflow-claude-subagents-agent.md
+++ b/.claude/agents/workflows/best-practice/workflow-claude-subagents-agent.md
@@ -3,6 +3,18 @@ name: workflow-claude-subagents-agent
description: Research agent that fetches Claude Code docs, reads the local subagents report, and analyzes drift
model: opus
color: blue
+allowedTools:
+ - "Bash(*)"
+ - "Read"
+ - "Write"
+ - "Edit"
+ - "Glob"
+ - "Grep"
+ - "WebFetch(*)"
+ - "WebSearch(*)"
+ - "Agent"
+ - "NotebookEdit"
+ - "mcp__*"
---
# Workflow Changelog — Subagents Research Agent
diff --git a/.claude/agents/workflows/best-practice/workflow-concepts-agent.md b/.claude/agents/workflows/best-practice/workflow-concepts-agent.md
index 907eaed..1eee4c4 100644
--- a/.claude/agents/workflows/best-practice/workflow-concepts-agent.md
+++ b/.claude/agents/workflows/best-practice/workflow-concepts-agent.md
@@ -3,6 +3,18 @@ name: workflow-concepts-agent
description: Research agent that fetches Claude Code docs and changelog, reads the local README CONCEPTS section, and analyzes drift
model: opus
color: green
+allowedTools:
+ - "Bash(*)"
+ - "Read"
+ - "Write"
+ - "Edit"
+ - "Glob"
+ - "Grep"
+ - "WebFetch(*)"
+ - "WebSearch(*)"
+ - "Agent"
+ - "NotebookEdit"
+ - "mcp__*"
---
# Workflow Changelog — Concepts Research Agent
diff --git a/README.md b/README.md
index bf00a85..b6b8891 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
# claude-code-best-practice
practice makes claude perfect
-
+
[](best-practice/) *Click on this badge to show the latest best practice*
[](implementation/) *Click on this badge to show implementation in this repo*
@@ -95,42 +95,42 @@ claude

■ **Prompting (4)**
-- 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)
+- 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 (5)**
-- always start with [plan mode](https://code.claude.com/docs/en/common-workflows) [](https://x.com/bcherny/status/2007179845336527000)
-- start with a minimal spec or prompt and ask Claude to interview you using [AskUserQuestion](https://code.claude.com/docs/en/cli-reference) tool, then make a new session to execute the spec [](https://x.com/trq212/status/2005315275026260309)
+- always start with [plan mode](https://code.claude.com/docs/en/common-workflows) [](https://x.com/bcherny/status/2007179845336527000)
+- start with a minimal spec or prompt and ask Claude to interview you using [AskUserQuestion](https://code.claude.com/docs/en/cli-reference) tool, then make a new session to execute the spec [](https://x.com/trq212/status/2005315275026260309)
- always make a phase-wise gated plan, with each phase having multiple tests (unit, automation, integration)
-- spin up a second Claude to review your plan as a staff engineer, or use [cross-model](development-workflows/cross-model-workflow/cross-model-workflow.md) for review [](https://x.com/bcherny/status/2017742745365057733)
-- 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)
+- spin up a second Claude to review your plan as a staff engineer, or use [cross-model](development-workflows/cross-model-workflow/cross-model-workflow.md) for review [](https://x.com/bcherny/status/2017742745365057733)
+- 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)
■ **Workflows (12)**
-- [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)
+- [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)
- 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
-- 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)
-- 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)
+- 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)
+- 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)
- [memory.md](https://code.claude.com/docs/en/memory), constitution.md does not guarantee anything
- 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 [skills in subfolders](reports/claude-skills-for-larger-mono-repos.md) for monorepos
- 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
-- always use [thinking mode](https://code.claude.com/docs/en/model-config) true (to see reasoning) and [Output Style](https://code.claude.com/docs/en/output-styles) Explanatory (to see detailed output with ★ Insight boxes) in [/config](https://code.claude.com/docs/en/settings) for better understanding of Claude's decisions [](https://x.com/bcherny/status/2007179838864666847)
+- always use [thinking mode](https://code.claude.com/docs/en/model-config) true (to see reasoning) and [Output Style](https://code.claude.com/docs/en/output-styles) Explanatory (to see detailed output with ★ Insight boxes) in [/config](https://code.claude.com/docs/en/settings) for better understanding of Claude's decisions [](https://x.com/bcherny/status/2007179838864666847)
- use ultrathink keyword in prompts for [high effort reasoning](https://docs.anthropic.com/en/docs/build-with-claude/extended-thinking#tips-and-best-practices)
- [/rename](https://code.claude.com/docs/en/cli-reference) important sessions (e.g. [TODO - refactor task]) and [/resume](https://code.claude.com/docs/en/cli-reference) them later
- 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 (6)**
-- use ASCII diagrams a lot to understand your architecture [](https://x.com/bcherny/status/2017742759218794768)
+- 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 [](https://x.com/bcherny/status/2021700506465579443)
+- 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 [](https://x.com/bcherny/status/2021700506465579443)
■ **Debugging (5)**
- make it a habit to take screenshots and share with Claude whenever you are stuck with any issue
@@ -141,11 +141,11 @@ claude
- use a [cross-model](development-workflows/cross-model-workflow/cross-model-workflow.md) for QA — e.g. [Codex](https://github.com/shanraisshan/codex-cli-best-practice) for plan and implementation review
■ **Utilities (5)**
-- [iTerm](https://iterm2.com/)/[Ghostty](https://ghostty.org/) [](https://x.com/bcherny/status/2017742753971769626)/[tmux](https://github.com/tmux/tmux) terminals instead of IDE ([VS Code](https://code.visualstudio.com/)/[Cursor](https://www.cursor.com/))
+- [iTerm](https://iterm2.com/)/[Ghostty](https://ghostty.org/) [](https://x.com/bcherny/status/2017742753971769626)/[tmux](https://github.com/tmux/tmux) terminals instead of IDE ([VS Code](https://code.visualstudio.com/)/[Cursor](https://www.cursor.com/))
- [Wispr Flow](https://wisprflow.ai) for voice prompting (10x productivity)
- [claude-code-voice-hooks](https://github.com/shanraisshan/claude-code-voice-hooks) for claude feedback
-- [status line](https://github.com/shanraisshan/claude-code-status-line) for context awareness and fast compacting [](https://x.com/bcherny/status/2021700784019452195)
-- explore [settings.json](best-practice/claude-settings.md) features like [Plans Directory](best-practice/claude-settings.md#plans-directory), [Spinner Verbs](best-practice/claude-settings.md#display--ux) for a personalized experience [](https://x.com/bcherny/status/2021701145023197516)
+- [status line](https://github.com/shanraisshan/claude-code-status-line) for context awareness and fast compacting [](https://x.com/bcherny/status/2021700784019452195)
+- explore [settings.json](best-practice/claude-settings.md) features like [Plans Directory](best-practice/claude-settings.md#plans-directory), [Spinner Verbs](best-practice/claude-settings.md#display--ux) for a personalized experience [](https://x.com/bcherny/status/2021701145023197516)
■ **Daily (3)**
- [update](https://code.claude.com/docs/en/setup) Claude Code daily and start your day by reading the [changelog](https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md)
@@ -173,7 +173,7 @@ claude
|[**Code Review**](https://code.claude.com/docs/en/code-review)|[Greptile](https://greptile.com), [CodeRabbit](https://coderabbit.ai), [Devin Review](https://devin.ai), [OpenDiff](https://opendiff.com), [Cursor BugBot](https://bugbot.dev)|
|[**Voice Mode**](https://x.com/trq212/status/2028628570692890800)|[Wispr Flow](https://wisprflow.ai), [SuperWhisper](https://superwhisper.com/)|
|[**Remote Control**](https://code.claude.com/docs/en/remote-control)|[OpenClaw](https://openclaw.ai/)
-|**Cowork**|[OpenAI Operator](https://openai.com/operator), [AgentShadow](https://agentshadow.ai)
+|[**Cowork**](https://claude.com/blog/cowork-research-preview)|[OpenAI Operator](https://openai.com/operator), [AgentShadow](https://agentshadow.ai)
|[**Tasks**](https://x.com/trq212/status/2014480496013803643)|[Beads](https://github.com/steveyegge/beads)
|[**Plan Mode**](https://code.claude.com/docs/en/common-workflows)|[Agent OS](https://github.com/buildermethods/agent-os)|
|[**Skills / Plugins**](https://code.claude.com/docs/en/plugins)|YC AI wrapper startups ([reddit](https://reddit.com/r/ClaudeAI/comments/1r6bh4d/claude_code_skills_are_basically_yc_ai_startup/))|
diff --git a/best-practice/claude-memory.md b/best-practice/claude-memory.md
index 0f95fef..a14765d 100644
--- a/best-practice/claude-memory.md
+++ b/best-practice/claude-memory.md
@@ -24,7 +24,7 @@ A well-structured CLAUDE.md is the single most impactful way to improve Claude C
When working with Claude Code in a monorepo, understanding how CLAUDE.md files are loaded into context is crucial for organizing your project instructions effectively.
-
+
### The Two Loading Mechanisms
diff --git a/orchestration-workflow/orchestration-workflow.svg b/orchestration-workflow/orchestration-workflow.svg
index da3c646..eee6291 100644
--- a/orchestration-workflow/orchestration-workflow.svg
+++ b/orchestration-workflow/orchestration-workflow.svg
@@ -16,7 +16,7 @@
-
+ Commandcommands/weather-orchestrator
diff --git a/reports/llm-day-to-day-degradation.md b/reports/llm-day-to-day-degradation.md
index 5d0311b..d60bc85 100644
--- a/reports/llm-day-to-day-degradation.md
+++ b/reports/llm-day-to-day-degradation.md
@@ -13,8 +13,8 @@ Can a deployed LLM's performance change day-to-day even though the model weights