Claude Code Daily Briefing - 2026-06-07

Release Summary

VersionDateKey Changes
v2.1.1686/6Bug fixes and reliability improvements
v2.1.1676/6Bug fixes and reliability improvements
v2.1.1666/6fallbackModel, deny globs ("*"), thinking toggle, etc. (covered in detail yesterday)

There’s no new release today (6/7). Late yesterday (6/6) brought v2.1.167 and v2.1.168 back to back, but per the official CHANGELOG both are quiet “Bug fixes and reliability improvements” releases. The week’s substantive change is concentrated in v2.1.166 (fallbackModel, deny globs, the thinking toggle), which we covered in detail yesterday — so today leans on workflow tips and reads.

Full release notes


Developer Workflow Tips

Skills vs Subagents vs CLAUDE.md — sort them by how much context they isolate

Mixing these three up leaves your tool set messy. The cleanest way to tell them apart is how much of your main conversation context the content occupies or pollutes:

The signals to push work to a subagent are clear: (1) the task produces verbose output you don’t need in your main context, (2) you want to restrict its tools or permissions, (3) it’s self-contained and can hand back a summary. Memorize it as: rules that apply every session → CLAUDE.md; workflows you only sometimes need → Skill; work that would bloat your context → Subagent.

Claude Code Docs — Subagents

Beyond static deny rules — decide permissions per call in code with the PreToolUse hook’s permissionDecision

Yesterday’s static permission rules like deny: ["*"] are powerful but hard to use for conditional policies. For something more dynamic, a PreToolUse hook can decide allow/deny/ask per individual call, right before a tool runs. When the hook returns hookSpecificOutput.permissionDecision on stdout, that call is auto-approved, auto-denied, or escalated to a user prompt.

{
  "hookSpecificOutput": {
    "hookEventName": "PreToolUse",
    "permissionDecision": "deny",
    "permissionDecisionReason": "Writes to production DB paths are blocked"
  }
}

For example, “auto-deny if the path/command matches a pattern, auto-approve for safe read commands” — policies that are awkward to express as a static allow/deny list become a shell script. If yesterday’s deny glob is the tool for locking a whole surface in one line, this is the tool for inserting judgment on every call. Follow the official hooks docs for the exact output schema.

Claude Code Docs — Hooks

A slow shell taxes Claude Code — subtract, don’t add

Claude Code runs in your terminal and initializes its Bash shell from your profile (~/.zshrc and friends). A heavy startup config — bloated frameworks like oh-my-zsh, synchronous git prompts — adds latency to that init and to routine command execution. One developer got shell startup down to ~30ms, and the key was removing things, not adding them:

It’s exactly the thesis of today’s “Code is Cheap” read: most optimization is taking something away.

mijndertstuij.nl — Life is Too Short for a Slow Terminal



Interesting Projects & Tools