{"id":77966,"date":"2026-07-28T05:00:02","date_gmt":"2026-07-28T05:00:02","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=77966"},"modified":"2026-07-28T05:00:05","modified_gmt":"2026-07-28T05:00:05","slug":"the-master-guide-to-claude-code-claude-cowork","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/the-master-guide-to-claude-code-claude-cowork\/","title":{"rendered":"The Master Guide to Claude Code &amp; Claude Cowork"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Gold &amp; Diamond Standard Edition \u2014 Verified against official docs as of July 28, 2026<\/h3>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>How this guide was built:<\/strong>&nbsp;Compiled from Anthropic&#8217;s official documentation (code.claude.com\/docs, claude.com\/docs\/cowork, platform.claude.com\/docs), the official Claude Code changelog and weekly &#8220;What&#8217;s New&#8221; digests, and current pricing references \u2014 all fetched live on July 28, 2026. Anthropic ships updates weekly, so treat this as an accurate snapshot, not eternal truth. Canonical sources are linked throughout.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">PART 0 \u2014 THE 30-SECOND MENTAL MODEL<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Claude Code and Claude Cowork are&nbsp;<strong>the same agentic engine wearing two different outfits<\/strong>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Claude Code<\/strong>\u00a0= the engine pointed at\u00a0<em>code<\/em>: terminal, IDE, desktop, web, CI. For developers.<\/li>\n\n\n\n<li><strong>Claude Cowork<\/strong>\u00a0= the engine pointed at\u00a0<em>knowledge work<\/em>: files, documents, spreadsheets, research, browsers. For everyone else (and for developers doing non-code work).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Both share one philosophy:&nbsp;<strong>you delegate outcomes, not keystrokes.<\/strong>&nbsp;You describe what &#8220;done&#8221; looks like, Claude plans, executes across many steps and tools, verifies, and comes back with finished work. The skill you&#8217;re really learning in this guide is&nbsp;<em>delegation engineering<\/em>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">PART 1 \u2014 THE CLAUDE MODEL FAMILY (Deep Dive, July 2026)<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">1.1 The current lineup at a glance<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Model<\/th><th class=\"has-text-align-left\" data-align=\"left\">API string<\/th><th class=\"has-text-align-left\" data-align=\"left\">Tier<\/th><th class=\"has-text-align-left\" data-align=\"left\">Input \/ Output (per 1M tokens)<\/th><th class=\"has-text-align-left\" data-align=\"left\">Context<\/th><th class=\"has-text-align-left\" data-align=\"left\">Best for<\/th><\/tr><\/thead><tbody><tr><td><strong>Claude Fable 5<\/strong><\/td><td><code>claude-fable-5<\/code><\/td><td>Mythos-class frontier<\/td><td>$10 \/ $50<\/td><td>1M<\/td><td>Hardest reasoning &amp; knowledge work<\/td><\/tr><tr><td><strong>Claude Mythos 5<\/strong><\/td><td>(restricted)<\/td><td>Mythos-class<\/td><td>$10 \/ $50<\/td><td>1M<\/td><td>Approved orgs only (no dual-use safeguards)<\/td><\/tr><tr><td><strong>Claude Opus 5<\/strong><\/td><td><code>claude-opus-5<\/code><\/td><td>Flagship (brand new)<\/td><td>$5 \/ $25<\/td><td>1M (default &amp; max), 128K output<\/td><td>Deep reasoning, long-horizon agentic work<\/td><\/tr><tr><td><strong>Claude Opus 4.8<\/strong><\/td><td><code>claude-opus-4-8<\/code><\/td><td>Opus tier<\/td><td>$5 \/ $25<\/td><td>1M<\/td><td>The proven Claude Code workhorse<\/td><\/tr><tr><td><strong>Claude Sonnet 5<\/strong><\/td><td><code>claude-sonnet-5<\/code><\/td><td>Mid-tier flagship<\/td><td>$2 \/ $10 intro until Aug 31, 2026 \u2192 $3 \/ $15<\/td><td>1M<\/td><td>Everyday production, multi-agent, coding<\/td><\/tr><tr><td><strong>Claude Haiku 4.5<\/strong><\/td><td><code>claude-haiku-4-5-20251001<\/code><\/td><td>Fast\/cheap<\/td><td>$1 \/ $5<\/td><td>200K<\/td><td>High-volume, subagents, classification<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Legacy but still callable: Sonnet 4.6, Opus 4.7\/4.6\/4.5, Sonnet 4.5, Opus 4.1\/4. There&#8217;s rarely a reason to use them except compatibility.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Standing API discounts:&nbsp;<strong>prompt caching cuts cache-hit input cost by ~90%<\/strong>, and the&nbsp;<strong>Batch API halves everything<\/strong>&nbsp;for non-urgent workloads. Verify live numbers at platform.claude.com before budgeting.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1.2 Deep profile: each model<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Claude Fable 5 (released June 9, 2026)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The first &#8220;Mythos-class&#8221; model \u2014 a new tier that sits&nbsp;<em>above<\/em>&nbsp;Opus. The most intelligent generally available Claude. Fable 5&nbsp;<strong>always uses extended thinking<\/strong>&nbsp;(it cannot be disabled), which is part of why its output is expensive. Its sibling&nbsp;<strong>Mythos 5<\/strong>&nbsp;is the identical model without dual-use safety measures, available only to approved organizations. Plan access shifted on July 20, 2026: Fable 5 is included on Max plans and premium Team\/Enterprise seats (capped at roughly half of weekly limits), with Pro and standard seats accessing it through usage credits \u2014 check claude.com\/pricing for your plan&#8217;s exact terms.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Use Fable 5 when:<\/strong>&nbsp;the problem is genuinely at the frontier \u2014 novel architecture design, research-grade analysis, gnarly multi-system debugging where cheaper models have already failed, or work where a wrong answer costs far more than $50\/M tokens.&nbsp;<strong>Don&#8217;t use it for:<\/strong>&nbsp;routine coding, drafting, or anything Sonnet handles. At 5x Sonnet&#8217;s output price, habit-driven Fable use is the fastest way to burn budget.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Claude Opus 5 (released late July 2026 \u2014 days old)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A step-change over Opus 4.8, with the largest gains in&nbsp;<strong>deep reasoning, agentic\/long-horizon tasks, and test-time compute scaling<\/strong>. Key specs: 1M-token context window (default&nbsp;<em>and<\/em>&nbsp;maximum \u2014 no smaller variant), 128K max output,&nbsp;<strong>thinking on by default<\/strong>, and a breaking change to when thinking can be disabled. It supports&nbsp;<strong>mid-conversation tool changes<\/strong>&nbsp;(beta header&nbsp;<code>mid-conversation-tool-changes-2026-07-01<\/code>) so agents can swap tools between turns while preserving the prompt cache. A&nbsp;<strong>Fast mode<\/strong>&nbsp;runs at roughly 2.5x speed for about 2x the base price. Because it&#8217;s brand new, check the official &#8220;What&#8217;s new in Claude Opus 5&#8221; page before relying on edge behaviors.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Use Opus 5 when:<\/strong>&nbsp;long autonomous runs, complex multi-file refactors, agent orchestration, or anywhere you&#8217;d have used Opus 4.8 and want the ceiling raised at the same $5\/$25 price.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Claude Opus 4.8 (released late May 2026)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The battle-tested default engine of Claude Code for the past two months. Same $5\/$25 pricing as Opus 5, 1M context, supports fast mode at reduced pricing. Extremely strong at coding and agentic reliability. If Opus 5&#8217;s newness makes you cautious, 4.8 is the stable choice.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Claude Sonnet 5 (released June 30, 2026)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The new production default for Free and Pro plans and the best value in the lineup right now thanks to&nbsp;<strong>introductory pricing of $2\/$10 through August 31, 2026<\/strong>&nbsp;(rising to $3\/$15 on September 1). 1M context. Handles the overwhelming majority of real coding, writing, and agent tasks. This is the model most teams should default to, escalating only on evidence.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Claude Haiku 4.5<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">$1\/$5, 200K context, very fast. The right choice for classification, routing, extraction, summarization at scale, and \u2014 critically for this guide \u2014&nbsp;<strong>as the model for simple subagents<\/strong>&nbsp;inside Claude Code, where it does grunt work at a fifth of Opus prices.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How thinking\/effort works now<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The current generation uses&nbsp;<strong>adaptive reasoning with effort levels<\/strong>&nbsp;(low \u2192 max, with&nbsp;<code>xhigh<\/code>&nbsp;introduced alongside Opus 4.7) instead of fixed thinking-token budgets on newer models. In Claude Code you control this with&nbsp;<code>\/effort<\/code>&nbsp;or inside&nbsp;<code>\/model<\/code>. Older fixed-budget models respect&nbsp;<code>MAX_THINKING_TOKENS<\/code>&nbsp;(e.g.,&nbsp;<code>MAX_THINKING_TOKENS=8000<\/code>). Thinking tokens bill as output tokens \u2014 this is a major, often invisible cost lever (see Part 6).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1.3 The model-routing decision tree<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Is it high-volume, simple, or a subagent chore? \u2192\u00a0<strong>Haiku 4.5<\/strong><\/li>\n\n\n\n<li>Is it normal coding, drafting, analysis, or agent work? \u2192\u00a0<strong>Sonnet 5<\/strong>\u00a0(near-free upgrade during intro pricing)<\/li>\n\n\n\n<li>Is it a long autonomous run, hard refactor, or did Sonnet visibly struggle? \u2192\u00a0<strong>Opus 5<\/strong>\u00a0(or 4.8 for stability)<\/li>\n\n\n\n<li>Did Opus fail, or is this frontier-difficulty knowledge work where quality is everything? \u2192\u00a0<strong>Fable 5<\/strong><\/li>\n\n\n\n<li>Never route\u00a0<em>up<\/em>\u00a0by default; route up on evidence. Never route\u00a0<em>down<\/em>\u00a0mid-task if context continuity matters \u2014 a model switch invalidates the prompt cache and triggers one expensive uncached turn.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">In Claude Code specifically: set your default in&nbsp;<code>\/config<\/code>, switch mid-session with&nbsp;<code>\/model<\/code>, use the&nbsp;<code>opusplan<\/code>&nbsp;alias to plan with Opus and execute with Sonnet, and pin&nbsp;<code>model: haiku<\/code>&nbsp;in subagent configs.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">PART 2 \u2014 CLAUDE CODE: THE COMPLETE PICTURE<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">2.1 What it is<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Claude Code is Anthropic&#8217;s agentic coding tool. It reads your codebase, edits files, runs commands, uses git, browses when allowed, and integrates with your toolchain. Under the hood it runs an&nbsp;<strong>agentic loop<\/strong>: choose tool \u2192 execute \u2192 read result \u2192 decide next step \u2192 repeat until done, with compaction managing long sessions. Safety comes from permission modes, checkpoints, sandboxing, and managed settings. The same loop is exposed programmatically through the&nbsp;<strong>Agent SDK<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2.2 Every surface (and when to use each)<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Surface<\/th><th class=\"has-text-align-left\" data-align=\"left\">What it&#8217;s for<\/th><\/tr><\/thead><tbody><tr><td><strong>Terminal CLI<\/strong><\/td><td>Full-featured core. Scripting, piping, everything.<\/td><\/tr><tr><td><strong>VS Code \/ Cursor extension<\/strong><\/td><td>Inline diffs, @-mentions, plan review, conversation history in-editor.<\/td><\/tr><tr><td><strong>JetBrains plugin<\/strong><\/td><td>IntelliJ\/PyCharm\/WebStorm with interactive diff viewing.<\/td><\/tr><tr><td><strong>Desktop app<\/strong><\/td><td>Parallel sessions with git-worktree isolation, visual diff review, drag-and-drop panes, integrated terminal\/editor, scheduled tasks, computer use, Dispatch from phone, PR monitoring.<\/td><\/tr><tr><td><strong>Web (claude.ai\/code)<\/strong><\/td><td>Cloud sessions in isolated VMs, no local setup, long-running tasks, works from any browser.<\/td><\/tr><tr><td><strong>Mobile app<\/strong><\/td><td>Kick off and monitor cloud sessions; Remote Control of local sessions; push notifications when Claude needs you.<\/td><\/tr><tr><td><strong>Slack (@Claude)<\/strong><\/td><td>Route a bug report from chat, get a PR back.<\/td><\/tr><tr><td><strong>GitHub Actions \/ GitLab CI<\/strong><\/td><td>Automated PR review, issue triage, CI automation.<\/td><\/tr><tr><td><strong>Chrome (beta)<\/strong><\/td><td>Live web-app debugging, console logs, form automation, data extraction.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">All surfaces share the same engine \u2014 your CLAUDE.md, settings, and MCP servers work everywhere. Move work between surfaces:&nbsp;<code>claude --teleport<\/code>&nbsp;pulls a web session into your terminal,&nbsp;<code>claude --cloud<\/code>&nbsp;pushes local work to the cloud,&nbsp;<code>\/desktop<\/code>&nbsp;hands a terminal session to the Desktop app, and&nbsp;<strong>Remote Control<\/strong>&nbsp;continues a local session from your phone.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2.3 Installation (current official methods)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Native install (recommended \u2014 auto-updates):<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">em<\/span>&gt;<\/span># macOS \/ Linux \/ WSL<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">em<\/span>&gt;<\/span>\ncurl -fsSL https:\/\/claude.ai\/install.sh | bash\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">em<\/span>&gt;<\/span># Windows PowerShell<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">em<\/span>&gt;<\/span>\nirm https:\/\/claude.ai\/install.ps1 | iex\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Also available:&nbsp;<code>brew install --cask claude-code<\/code>&nbsp;(or&nbsp;<code>claude-code@latest<\/code>&nbsp;channel),&nbsp;<code>winget install Anthropic.ClaudeCode<\/code>, and apt\/dnf\/apk on Linux. Homebrew and WinGet do&nbsp;<strong>not<\/strong>&nbsp;auto-update. On native Windows, install Git for Windows so Claude gets a Bash tool (otherwise it uses PowerShell). Then:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cd your-project &amp;&amp; claude\n<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">2.4 The one constraint that explains everything: the context window<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nearly every best practice exists because of this:&nbsp;<strong>the context window holds your whole conversation \u2014 every message, every file read, every command output \u2014 and model performance degrades as it fills.<\/strong>&nbsp;A single debugging session can consume tens of thousands of tokens. Manage context and you&#8217;ve mastered 80% of Claude Code. Track it continuously with a custom status line, inspect it with&nbsp;<code>\/context<\/code>, and see Part 6 for the full reduction playbook.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2.5 Permission modes (Shift+Tab cycles them)<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Mode<\/th><th class=\"has-text-align-left\" data-align=\"left\">Behavior<\/th><\/tr><\/thead><tbody><tr><td><strong>Default<\/strong><\/td><td>Asks before file writes, Bash, MCP tools. Safe but click-heavy.<\/td><\/tr><tr><td><strong>Plan mode<\/strong><\/td><td>Read-only exploration and planning. No changes.&nbsp;<code>Ctrl+G<\/code>&nbsp;opens the plan in your editor.<\/td><\/tr><tr><td><strong>acceptEdits<\/strong><\/td><td>Auto-approves file edits (with a prompt before writing files that can run code).<\/td><\/tr><tr><td><strong>Auto mode<\/strong><\/td><td>A separate classifier model reviews every action and blocks only what looks risky \u2014 scope escalation, unknown infrastructure, hostile-content-driven actions. Hands-off execution with a safety net. Available on Pro+, works with Sonnet, on Bedrock\/Vertex\/Foundry too. Configure trusted repos\/domains with the&nbsp;<code>auto-mode<\/code>&nbsp;CLI subcommands; supports hard deny rules.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Fine-grained control:&nbsp;<code>\/permissions<\/code>&nbsp;allowlists specific commands (e.g.,&nbsp;<code>npm run lint<\/code>,&nbsp;<code>git commit<\/code>),&nbsp;<code>--allowedTools \"Edit,Bash(git commit *)\"<\/code>&nbsp;scopes headless runs, deny\/ask rules can match tool&nbsp;<em>parameters<\/em>, and&nbsp;<code>\/sandbox<\/code>&nbsp;enables the&nbsp;<strong>sandboxed Bash tool<\/strong>&nbsp;\u2014 OS-level filesystem and network isolation so Claude works freely inside boundaries you define. For stronger isolation choose dev containers, Docker, or VMs (see the sandbox-environments doc).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2.6 Sessions, checkpoints, and time travel<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Every prompt creates a&nbsp;<strong>checkpoint<\/strong>; Claude snapshots files before each change.&nbsp;<code>Esc<\/code>&nbsp;stops Claude mid-action (context preserved).&nbsp;<code>Esc Esc<\/code>&nbsp;or&nbsp;<code>\/rewind<\/code>&nbsp;opens the rewind menu: restore conversation, code, or both, or&nbsp;<em>summarize from\/up to<\/em>&nbsp;a point (partial compaction). Checkpoints persist across sessions \u2014 but they only track Claude&#8217;s changes; they&#8217;re not a git replacement.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sessions are persistent:&nbsp;<code>claude --continue<\/code>&nbsp;resumes the latest,&nbsp;<code>claude --resume<\/code>&nbsp;shows a picker,&nbsp;<code>\/rename<\/code>&nbsp;names a session (treat sessions like branches:&nbsp;<code>oauth-migration<\/code>),&nbsp;<code>--from-pr<\/code>&nbsp;finds the session that created a PR (you can even paste a PR URL into&nbsp;<code>\/resume<\/code>), and&nbsp;<code>\/rewind<\/code>&nbsp;can resume a conversation from before a&nbsp;<code>\/clear<\/code>. Transcripts are stored locally and searchable across projects with&nbsp;<code>Ctrl+R<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">PART 3 \u2014 THE EXTENSION SYSTEM (CLAUDE.md, Skills, Subagents, Hooks, MCP, Plugins)<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">This is the customization hierarchy. Choosing the&nbsp;<em>right<\/em>&nbsp;mechanism is the difference between a tuned instrument and a bloated mess.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Mechanism<\/th><th class=\"has-text-align-left\" data-align=\"left\">Loads<\/th><th class=\"has-text-align-left\" data-align=\"left\">Use for<\/th><\/tr><\/thead><tbody><tr><td><strong>CLAUDE.md<\/strong><\/td><td>Every session, always<\/td><td>Universal rules only: build commands, style deviations, repo etiquette<\/td><\/tr><tr><td><strong>Auto memory<\/strong><\/td><td>Automatic<\/td><td>Claude saves its own learnings (build quirks, debug insights) across sessions<\/td><\/tr><tr><td><strong>Skills<\/strong><\/td><td>On demand<\/td><td>Domain knowledge &amp; repeatable workflows (<code>\/review-pr<\/code>,&nbsp;<code>\/deploy-staging<\/code>)<\/td><\/tr><tr><td><strong>Subagents<\/strong><\/td><td>When delegated<\/td><td>Isolated-context specialists (research, review) with their own tools\/model<\/td><\/tr><tr><td><strong>Hooks<\/strong><\/td><td>Deterministically, on events<\/td><td>Things that must happen&nbsp;<em>every time<\/em>: format after edit, lint before commit, block writes to&nbsp;<code>migrations\/<\/code><\/td><\/tr><tr><td><strong>MCP servers<\/strong><\/td><td>Configured per project\/user<\/td><td>External tools &amp; data: Jira, Figma, databases, Slack, your own APIs<\/td><\/tr><tr><td><strong>Plugins<\/strong><\/td><td>Installed<\/td><td>Bundles of all of the above, shareable via marketplaces (<code>\/plugin<\/code>)<\/td><\/tr><tr><td><strong>Output styles<\/strong><\/td><td>Selected<\/td><td>Repurpose Claude Code beyond engineering<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">3.1 CLAUDE.md \u2014 write it like code<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Run&nbsp;<code>\/init<\/code>&nbsp;to generate a starter from your codebase, then prune ruthlessly. The official test for every line:&nbsp;<em>&#8220;Would removing this cause Claude to make mistakes?&#8221;<\/em>&nbsp;If not, cut it.&nbsp;<strong>Bloated CLAUDE.md files cause Claude to ignore your actual instructions.<\/strong>&nbsp;Aim for under ~200 lines.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Include: bash commands Claude can&#8217;t guess, style rules that differ from defaults, test-runner preferences, branch\/PR conventions, architectural decisions, required env vars, non-obvious gotchas. Exclude: anything Claude can read from the code, standard conventions, API docs (link instead), file-by-file tours, &#8220;write clean code&#8221; platitudes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Power moves: add emphasis (&#8220;IMPORTANT&#8221;, &#8220;YOU MUST&#8221;) to rules Claude skips; import files with&nbsp;<code>@path\/to\/file<\/code>&nbsp;syntax; add compaction instructions (<code># Compact instructions \u2014 always preserve modified-file list and test commands<\/code>); check it into git so it compounds.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Placement:&nbsp;<code>~\/.claude\/CLAUDE.md<\/code>&nbsp;(all sessions),&nbsp;<code>.\/CLAUDE.md<\/code>&nbsp;(project, shared),&nbsp;<code>.\/CLAUDE.local.md<\/code>&nbsp;(personal, gitignored), parent dirs (monorepo roots), child dirs (pulled in on demand \u2014 the key pattern for large codebases and monorepos).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3.2 Skills<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A directory with a&nbsp;<code>SKILL.md<\/code>&nbsp;in&nbsp;<code>.claude\/skills\/<\/code>. Claude applies them automatically when relevant, or you invoke directly as&nbsp;<code>\/skill-name arguments<\/code>. Two flavors:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">---\nname: api-conventions\ndescription: REST API design conventions <span class=\"hljs-keyword\">for<\/span> our services\n---\n<span class=\"hljs-comment\"># API Conventions<\/span>\n- kebab-<span class=\"hljs-keyword\">case<\/span> URL paths, camelCase JSON, pagination on <span class=\"hljs-keyword\">list<\/span> endpoints, \/v1\/ versioning\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">---\nname: fix-issue\n<span class=\"hljs-attr\">description<\/span>: Fix a GitHub issue\ndisable-model-invocation: <span class=\"hljs-literal\">true<\/span>\n---\nAnalyze and fix GitHub issue: $ARGUMENTS.\n<span class=\"hljs-number\">1.<\/span> <span class=\"hljs-string\">`gh issue view`<\/span> <span class=\"hljs-keyword\">for<\/span> details  <span class=\"hljs-number\">2.<\/span> Understand  <span class=\"hljs-number\">3.<\/span> Search codebase\n<span class=\"hljs-number\">4.<\/span> Implement fix  <span class=\"hljs-number\">5.<\/span> Write &amp; run tests  <span class=\"hljs-number\">6.<\/span> Lint\/typecheck  <span class=\"hljs-number\">7.<\/span> Commit, push, PR\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><code>disable-model-invocation: true<\/code>&nbsp;= manual-only, for workflows with side effects (<code>\/fix-issue 1234<\/code>).&nbsp;<strong>Key cost insight:<\/strong>&nbsp;skills load on demand, so moving specialized instructions out of CLAUDE.md into skills keeps every session&#8217;s base context small.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3.3 Subagents<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Markdown files in&nbsp;<code>.claude\/agents\/<\/code>&nbsp;defining specialists with their own context window, tool allowlist, and model:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">---\nname: security-reviewer\ndescription: Reviews code for security vulnerabilities\ntools: Read, Grep, Glob, Bash\nmodel: opus\n---\nYou are a senior security engineer. Review for injection, authz flaws,\nsecrets in code, insecure data handling. Give line references and fixes.\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Invoke explicitly:&nbsp;<em>&#8220;Use a subagent to review this code for security issues.&#8221;<\/em>&nbsp;Why subagents are the single most powerful context tool: research that would flood your main context happens in a&nbsp;<strong>separate context<\/strong>, and only a summary returns. Since June 2026, subagents can spawn their own subagents. Use&nbsp;<code>model: haiku<\/code>&nbsp;for grunt work.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3.4 Hooks<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Deterministic scripts at lifecycle events (PreToolUse, PostToolUse, Stop, and more \u2014 including async hooks, HTTP hooks, prompt hooks, MCP tool hooks). Unlike CLAUDE.md (advisory), hooks are guaranteed. Let Claude write them:&nbsp;<em>&#8220;Write a hook that runs eslint after every file edit.&#8221;<\/em>&nbsp;Browse configured hooks with&nbsp;<code>\/hooks<\/code>. A killer cost pattern appears in Part 6 (test-output filtering).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3.5 MCP<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>claude mcp add<\/code>&nbsp;connects servers;&nbsp;<code>claude mcp login<\/code>&nbsp;authenticates from the shell;&nbsp;<code>\/mcp<\/code>&nbsp;lists and toggles them. MCP tool definitions are&nbsp;<strong>deferred by default<\/strong>&nbsp;\u2014 only names enter context until a tool is actually used (tool search handles thousand-tool fleets). Still,&nbsp;<strong>prefer CLI tools (<code>gh<\/code>,&nbsp;<code>aws<\/code>,&nbsp;<code>gcloud<\/code>,&nbsp;<code>sentry-cli<\/code>) when they exist<\/strong>&nbsp;\u2014 they add zero per-tool context. Claude learns unknown CLIs from&nbsp;<code>--help<\/code>. Orgs can allowlist\/denylist servers via managed MCP configuration.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3.6 Plugins<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>\/plugin<\/code>&nbsp;opens the marketplace; plugins bundle skills + hooks + subagents + MCP into one install, loadable even from .zip archives and URLs. Two standouts:&nbsp;<strong>code intelligence plugins<\/strong>&nbsp;for typed languages (precise symbol navigation, automatic type-error reporting after edits \u2014 a big token saver) and the&nbsp;<strong>security-guidance plugin<\/strong>&nbsp;(Claude reviews its own diffs for vulnerabilities in-session). Teams can run private marketplaces, declare plugin dependency version constraints, and have Claude Code auto-suggest org plugins by relevance.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">PART 4 \u2014 COMMAND, FLAG &amp; SHORTCUT REFERENCE<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">4.1 Essential slash commands<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Command<\/th><th class=\"has-text-align-left\" data-align=\"left\">What it does<\/th><\/tr><\/thead><tbody><tr><td><code>\/init<\/code><\/td><td>Generate starter CLAUDE.md from your codebase<\/td><\/tr><tr><td><code>\/clear<\/code><\/td><td>Wipe context \u2014 the most important habit in this guide<\/td><\/tr><tr><td><code>\/compact [instructions]<\/code><\/td><td>Summarize history, optionally steering what to keep<\/td><\/tr><tr><td><code>\/rewind<\/code><\/td><td>Restore conversation\/code to a checkpoint, or summarize a range<\/td><\/tr><tr><td><code>\/model<\/code><\/td><td>Switch models mid-session (also lists gateway models)<\/td><\/tr><tr><td><code>\/effort<\/code><\/td><td>Adjust thinking effort level (low \u2192 max)<\/td><\/tr><tr><td><code>\/config<\/code><\/td><td>Set any setting from the prompt; defaults incl. model &amp; thinking<\/td><\/tr><tr><td><code>\/permissions<\/code><\/td><td>Manage allowlists (commands, domains)<\/td><\/tr><tr><td><code>\/sandbox<\/code><\/td><td>Toggle OS-level sandboxed Bash<\/td><\/tr><tr><td><code>\/usage<\/code><\/td><td>Token\/cost stats + plan limit bars + what&#8217;s driving usage (skills, MCP, cache misses)<\/td><\/tr><tr><td><code>\/usage-credits<\/code><\/td><td>Manage or request extra usage beyond plan limits<\/td><\/tr><tr><td><code>\/context<\/code><\/td><td>See exactly what&#8217;s consuming your context window<\/td><\/tr><tr><td><code>\/doctor<\/code>,&nbsp;<code>\/hooks<\/code>,&nbsp;<code>\/mcp<\/code><\/td><td>Debug what actually loaded<\/td><\/tr><tr><td><code>\/resume<\/code>,&nbsp;<code>\/rename<\/code><\/td><td>Session management (paste a PR URL into \/resume!)<\/td><\/tr><tr><td><code>\/goal<\/code><\/td><td>Set a completion condition; an evaluator keeps Claude working until it holds<\/td><\/tr><tr><td><code>\/loop<\/code><\/td><td>Repeat a prompt within a session (polling, reminders)<\/td><\/tr><tr><td><code>\/schedule<\/code><\/td><td>Create cloud Routines from the CLI<\/td><\/tr><tr><td><code>\/code-review<\/code><\/td><td>Fresh-subagent diff review;&nbsp;<code>\/code-review ultra<\/code>&nbsp;= deep multi-agent cloud review<\/td><\/tr><tr><td><code>\/btw<\/code><\/td><td>Side question answered in an overlay that never enters context<\/td><\/tr><tr><td><code>\/cd<\/code><\/td><td>Move the session to a new directory<\/td><\/tr><tr><td><code>\/desktop<\/code><\/td><td>Continue this terminal session in the Desktop app<\/td><\/tr><tr><td><code>\/team-onboarding<\/code><\/td><td>Package your setup for teammates<\/td><\/tr><tr><td><code>\/plugin<\/code><\/td><td>Browse\/install plugins (<code>\/plugin list<\/code>&nbsp;shows installed)<\/td><\/tr><tr><td><code>!command<\/code><\/td><td>Shell mode; Claude responds to the output<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">4.2 Essential CLI flags<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">claude                       <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">em<\/span>&gt;<\/span># interactive session<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">em<\/span>&gt;<\/span>\nclaude -p \"prompt\"           <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">em<\/span>&gt;<\/span># headless\/non-interactive (CI, scripts, pipes)<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">em<\/span>&gt;<\/span>\nclaude -p \"...\" --output-format json          <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">em<\/span>&gt;<\/span># parseable output<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">em<\/span>&gt;<\/span>\nclaude -p \"...\" --output-format stream-json --verbose\nclaude --continue            <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">em<\/span>&gt;<\/span># resume most recent session<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">em<\/span>&gt;<\/span>\nclaude --resume              <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">em<\/span>&gt;<\/span># session picker<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">em<\/span>&gt;<\/span>\nclaude --worktree            <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">em<\/span>&gt;<\/span># isolated git worktree session<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">em<\/span>&gt;<\/span>\nclaude --cloud               <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">em<\/span>&gt;<\/span># push task to Claude Code on the web<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">em<\/span>&gt;<\/span>\nclaude --teleport            <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">em<\/span>&gt;<\/span># pull a web session into your terminal<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">em<\/span>&gt;<\/span>\nclaude --from-pr <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">pr<\/span>&gt;<\/span>        <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">em<\/span>&gt;<\/span># resume the session that made a PR<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">em<\/span>&gt;<\/span>\nclaude --permission-mode auto -p \"fix all lint errors\"\nclaude --allowedTools \"Edit,Bash(git commit *)\" -p \"...\"\nclaude --debug               <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">em<\/span>&gt;<\/span># verbose debugging incl. hook rewrites<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">em<\/span>&gt;<\/span>\nclaude mcp add \/ claude mcp login\nclaude project purge &#91;path]  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">em<\/span>&gt;<\/span># delete all local state for a project<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">em<\/span>&gt;<\/span>\ncat error.log | claude       <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">em<\/span>&gt;<\/span># pipe anything in<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">em<\/span>&gt;<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">4.3 Keyboard<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Esc<\/code>&nbsp;stop mid-action \u00b7&nbsp;<code>Esc Esc<\/code>&nbsp;rewind menu \u00b7&nbsp;<code>Shift+Tab<\/code>&nbsp;cycle permission modes \u00b7&nbsp;<code>Ctrl+G<\/code>&nbsp;edit plan in your editor \u00b7&nbsp;<code>Ctrl+R<\/code>&nbsp;search command history across projects \u00b7&nbsp;<code>@file<\/code>&nbsp;reference files \u00b7 paste\/drag images directly \u00b7 voice dictation (hold-to-record) available in the CLI. Keybindings are customizable via a keybindings file; fullscreen rendering mode gives flicker-free output with mouse support.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">PART 5 \u2014 GOLDEN WORKFLOWS &amp; PROMPTING MASTERY<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">5.1 The #1 principle: give Claude a way to verify its work<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Official guidance, verbatim spirit: give Claude a check it can run \u2014 tests, a build, a screenshot to compare.&nbsp;<em>It&#8217;s the difference between a session you watch and one you walk away from.<\/em><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Without a runnable check, &#8220;looks done&#8221; is Claude&#8217;s only signal and&nbsp;<strong>you<\/strong>&nbsp;become the verification loop. With one, Claude iterates until it passes. Four escalating ways to enforce it:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>In the prompt:<\/strong>\u00a0&#8220;\u2026run the tests after implementing and fix failures.&#8221;<\/li>\n\n\n\n<li><strong>Across the session:<\/strong>\u00a0<code>\/goal<\/code>\u00a0\u2014 an evaluator re-checks the condition after every turn.<\/li>\n\n\n\n<li><strong>Deterministic gate:<\/strong>\u00a0a Stop hook runs your check as a script and blocks the turn from ending until it passes (overridden after 8 consecutive blocks).<\/li>\n\n\n\n<li><strong>Second opinion:<\/strong>\u00a0a verification subagent or dynamic workflow where a fresh model tries to refute the result.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Always ask Claude to&nbsp;<strong>show evidence<\/strong>&nbsp;\u2014 test output, commands run, screenshots \u2014 rather than asserting success.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5.2 Explore \u2192 Plan \u2192 Code \u2192 Commit<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The canonical workflow for anything non-trivial:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Explore<\/strong>\u00a0(plan mode): &#8220;read \/src\/auth and understand how we handle sessions and login.&#8221;<\/li>\n\n\n\n<li><strong>Plan<\/strong>\u00a0(plan mode): &#8220;I want to add Google OAuth. What files change? What&#8217;s the session flow? Create a plan.&#8221; Then\u00a0<code>Ctrl+G<\/code>\u00a0to edit the plan directly.<\/li>\n\n\n\n<li><strong>Implement<\/strong>\u00a0(default mode): &#8220;implement the OAuth flow from your plan. write tests for the callback handler, run the suite, fix failures.&#8221;<\/li>\n\n\n\n<li><strong>Commit:<\/strong>\u00a0&#8220;commit with a descriptive message and open a PR.&#8221;<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Skip planning when you could describe the diff in one sentence \u2014 plan mode adds overhead for typo-fixes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5.3 Prompt engineering: the before\/after patterns (official)<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Technique<\/th><th class=\"has-text-align-left\" data-align=\"left\">Weak<\/th><th class=\"has-text-align-left\" data-align=\"left\">Strong<\/th><\/tr><\/thead><tbody><tr><td>Scope the task<\/td><td>&#8220;add tests for foo.py&#8221;<\/td><td>&#8220;write a test for foo.py covering the logged-out edge case. avoid mocks.&#8221;<\/td><\/tr><tr><td>Point to sources<\/td><td>&#8220;why is this API weird?&#8221;<\/td><td>&#8220;look through ExecutionFactory&#8217;s git history and summarize how its API came to be&#8221;<\/td><\/tr><tr><td>Reference patterns<\/td><td>&#8220;add a calendar widget&#8221;<\/td><td>&#8220;study how existing widgets work \u2014 HotDogWidget.php is a good example \u2014 and follow that pattern to build a calendar widget. no new libraries.&#8221;<\/td><\/tr><tr><td>Describe the symptom<\/td><td>&#8220;fix the login bug&#8221;<\/td><td>&#8220;users report login fails after session timeout. check src\/auth\/, especially token refresh. write a failing test that reproduces it, then fix it.&#8221;<\/td><\/tr><tr><td>Verification criteria<\/td><td>&#8220;implement email validation&#8221;<\/td><td>&#8220;write validateEmail. test cases: user@example.com\u2192true, invalid\u2192false, user@.com\u2192false. run tests after implementing.&#8221;<\/td><\/tr><tr><td>Root cause<\/td><td>&#8220;the build is failing&#8221;<\/td><td>&#8220;build fails with [error]. fix it, verify the build succeeds, address the root cause \u2014 don&#8217;t suppress the error.&#8221;<\/td><\/tr><tr><td>Visual work<\/td><td>&#8220;make the dashboard look better&#8221;<\/td><td>&#8220;[screenshot] implement this design. screenshot your result, compare, list differences, fix them.&#8221;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Vague prompts&nbsp;<em>are<\/em>&nbsp;right for exploration (&#8220;what would you improve in this file?&#8221;).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5.4 The most effective prompt prefixes &amp; templates<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The Interview pattern<\/strong>&nbsp;(official \u2014 best for large features):<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">I want to build &#91;brief description]. Interview me in detail using the\nAskUserQuestion tool. Ask about technical implementation, UI\/UX, edge\ncases, concerns, <span class=\"hljs-keyword\">and<\/span> tradeoffs. Don<span class=\"hljs-string\">'t ask obvious questions \u2014 dig into\nthe hard parts I might not have considered. Keep interviewing until\nwe'<\/span>ve covered everything, then write a complete spec to SPEC.md.\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Then start a&nbsp;<strong>fresh session<\/strong>&nbsp;to execute the spec with clean context.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The Investigation delegate:<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-keyword\">Use<\/span> <span class=\"hljs-title\">subagents<\/span> <span class=\"hljs-title\">to<\/span> <span class=\"hljs-title\">investigate<\/span> <span class=\"hljs-title\">how<\/span> <span class=\"hljs-title\">our<\/span> <span class=\"hljs-title\">authentication<\/span> <span class=\"hljs-title\">system<\/span> <span class=\"hljs-title\">handles<\/span> <span class=\"hljs-title\">token<\/span>\n<span class=\"hljs-title\">refresh<\/span>, <span class=\"hljs-title\">and<\/span> <span class=\"hljs-title\">whether<\/span> <span class=\"hljs-title\">we<\/span> <span class=\"hljs-title\">have<\/span> <span class=\"hljs-title\">existing<\/span> <span class=\"hljs-title\">OAuth<\/span> <span class=\"hljs-title\">utilities<\/span> <span class=\"hljs-title\">I<\/span> <span class=\"hljs-title\">should<\/span> <span class=\"hljs-title\">reuse<\/span>.\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><strong>The Adversarial reviewer:<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">Use<\/span> <span class=\"hljs-selector-tag\">a<\/span> <span class=\"hljs-selector-tag\">subagent<\/span> <span class=\"hljs-selector-tag\">to<\/span> <span class=\"hljs-selector-tag\">review<\/span> <span class=\"hljs-selector-tag\">the<\/span> <span class=\"hljs-selector-tag\">rate<\/span> <span class=\"hljs-selector-tag\">limiter<\/span> <span class=\"hljs-selector-tag\">diff<\/span> <span class=\"hljs-selector-tag\">against<\/span> <span class=\"hljs-selector-tag\">PLAN<\/span><span class=\"hljs-selector-class\">.md<\/span>. <span class=\"hljs-selector-tag\">Check<\/span> <span class=\"hljs-selector-tag\">that<\/span>\n<span class=\"hljs-selector-tag\">every<\/span> <span class=\"hljs-selector-tag\">requirement<\/span> <span class=\"hljs-selector-tag\">is<\/span> <span class=\"hljs-selector-tag\">implemented<\/span>, <span class=\"hljs-selector-tag\">listed<\/span> <span class=\"hljs-selector-tag\">edge<\/span> <span class=\"hljs-selector-tag\">cases<\/span> <span class=\"hljs-selector-tag\">have<\/span> <span class=\"hljs-selector-tag\">tests<\/span>, <span class=\"hljs-selector-tag\">and<\/span> <span class=\"hljs-selector-tag\">nothing<\/span>\n<span class=\"hljs-selector-tag\">outside<\/span> <span class=\"hljs-selector-tag\">scope<\/span> <span class=\"hljs-selector-tag\">changed<\/span>. <span class=\"hljs-selector-tag\">Report<\/span> <span class=\"hljs-selector-tag\">gaps<\/span>, <span class=\"hljs-selector-tag\">not<\/span> <span class=\"hljs-selector-tag\">style<\/span> <span class=\"hljs-selector-tag\">preferences<\/span>.\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">(Warn the reviewer off nitpicks \u2014 reviewers asked to find gaps will find some even in sound work; only correctness findings matter.)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The CLI-learning prefix:<\/strong>&nbsp;<code>Use 'foo-cli --help' to learn the tool, then use it to solve A, B, C.<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The onboarding prompts<\/strong>&nbsp;(no special phrasing needed \u2014 ask like you&#8217;d ask a senior engineer): &#8220;How does logging work?&#8221; \u00b7 &#8220;How do I add a new API endpoint?&#8221; \u00b7 &#8220;What edge cases does CustomerOnboardingFlowImpl handle?&#8221;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5.5 Scaling: parallel Claudes<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Worktrees<\/strong>\u00a0(<code>--worktree<\/code>): parallel CLI sessions in isolated git checkouts.<\/li>\n\n\n\n<li><strong>Desktop app:<\/strong>\u00a0parallel sessions visually, each in its own worktree.<\/li>\n\n\n\n<li><strong>Web:<\/strong>\u00a0cloud sessions in isolated VMs; fire-and-forget from your phone.<\/li>\n\n\n\n<li><strong>Agent view:<\/strong>\u00a0dispatch and monitor many sessions from one screen; see who needs input.<\/li>\n\n\n\n<li><strong>Agent teams:<\/strong>\u00a0multiple coordinated instances with shared tasks, inter-agent messaging, and a lead. Experimental \u2014 enable with\u00a0<code>CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1<\/code>. Costs ~7x a normal session; keep teams small, use Sonnet teammates, shut idle teammates down.<\/li>\n\n\n\n<li><strong>Dynamic workflows:<\/strong>\u00a0Claude writes an orchestration script that fans subagents out over audits, migrations, and cross-checked research \u2014 rerunnable.<\/li>\n\n\n\n<li><strong>Writer\/Reviewer pattern:<\/strong>\u00a0Session A implements; Session B (fresh context, unbiased) reviews; feed the review back to A. Same trick works as test-writer vs. implementer.<\/li>\n\n\n\n<li><strong>Fan-out for migrations:<\/strong>\u00a0have Claude generate the file list, then loop\u00a0<code>claude -p \"Migrate $file\u2026 Return OK or FAIL\" --allowedTools \"Edit,Bash(git commit *)\"<\/code>. Test on 2\u20133 files, refine the prompt, then run at scale.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">5.6 Automation &amp; always-on Claude<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Routines:<\/strong>\u00a0scheduled or event-triggered runs on Anthropic-managed cloud infra (works while your laptop sleeps); trigger on cron, API calls, or GitHub events. Create via\u00a0<code>\/schedule<\/code>, web, or Desktop.<\/li>\n\n\n\n<li><strong>Desktop scheduled tasks:<\/strong>\u00a0recurring runs on\u00a0<em>your<\/em>\u00a0machine with local file\/tool access.<\/li>\n\n\n\n<li><strong>Channels:<\/strong>\u00a0push webhooks, CI results, chat messages\u00a0<em>into<\/em>\u00a0a running session via MCP so Claude reacts while you&#8217;re away.<\/li>\n\n\n\n<li><strong>Deep links:<\/strong>\u00a0<code>claude-cli:\/\/<\/code>\u00a0URLs in runbooks\/alerts open Claude in the right repo with the right prompt.<\/li>\n\n\n\n<li><strong>GitHub Code Review \/ \/autofix-pr:<\/strong>\u00a0automatic multi-agent review on every PR; auto-fix from terminal or cloud.<\/li>\n\n\n\n<li><strong>Ultraplan:<\/strong>\u00a0start a plan in the CLI, draft it on the web, execute remotely or locally.<\/li>\n\n\n\n<li><strong>Computer use (CLI &amp; Desktop):<\/strong>\u00a0Claude opens apps, clicks, types, and sees your screen on macOS \u2014 test native apps and GUI-only tools.<\/li>\n\n\n\n<li><strong>Advisor tool:<\/strong>\u00a0pair your main model with a stronger advisor model consulted at key decision moments \u2014 Sonnet does the work, Opus\/Fable advises.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">PART 6 \u2014 THE COST MASTERY PLAYBOOK<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">6.1 Ground truth on billing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">API\/Console billing is per token. Subscription plans (Pro\/Max\/Team\/Enterprise) include usage within rolling 5-hour and weekly windows shared across chat, Code, and Cowork;&nbsp;<strong>usage credits<\/strong>&nbsp;let you keep working past limits. Enterprise benchmark:&nbsp;<strong>~$13 per developer per active day on average, $150\u2013250\/month, with 90% of users under $30\/day.<\/strong>&nbsp;Budget more for a coding seat than a chat seat \u2014 one debugging session can outconsume a day of chat.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Track:&nbsp;<code>\/usage<\/code>&nbsp;(session tokens, plan bars, and a breakdown attributing usage to skills, subagents, plugins, MCP servers \u2014 flagging long-context or cache-miss behavior at \u226510%),&nbsp;<code>\/context<\/code>, a custom status line, the Console usage page, spend reports &amp; Analytics APIs for orgs, OpenTelemetry export for real-time per-user metrics on any setup, and workspace\/org\/member spend limits to cap it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6.2 Why usage silently climbs (the four traps)<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Long context:<\/strong>\u00a0every message resends the whole conversation \u2014 a one-liner in an all-day session pays for the whole session.<\/li>\n\n\n\n<li><strong>Cache misses:<\/strong>\u00a0return after the cache lifetime (1 hour on subscription; 5 minutes on usage credits\/API) and your next message reprocesses the entire context uncached.<\/li>\n\n\n\n<li><strong>Idle burners:<\/strong>\u00a0scheduled\u00a0<code>\/loop<\/code>\u00a0tasks and active agent teammates keep consuming while you&#8217;re away.<\/li>\n\n\n\n<li><strong>Compaction cost:<\/strong>\u00a0<code>\/compact<\/code>\u00a0<em>reads<\/em>\u00a0everything it summarizes \u2014 compacting a huge context is itself a huge request.\u00a0<strong>When you don&#8217;t need continuity,\u00a0<code>\/clear<\/code>\u00a0costs nothing.<\/strong><\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">6.3 The complete reduction checklist (highest impact first)<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong><code>\/clear<\/code>\u00a0between unrelated tasks.<\/strong>\u00a0The single highest-impact habit.\u00a0<code>\/rename<\/code>\u00a0first so you can\u00a0<code>\/resume<\/code>\u00a0later.<\/li>\n\n\n\n<li><strong>Match the model to the job.<\/strong>\u00a0Sonnet for most work; Opus only for hard problems;\u00a0<code>model: haiku<\/code>\u00a0in subagent configs;\u00a0<code>opusplan<\/code>\u00a0to plan expensive and execute cheap.<\/li>\n\n\n\n<li><strong>Tune thinking.<\/strong>\u00a0Lower\u00a0<code>\/effort<\/code>\u00a0for simple work, disable thinking in\u00a0<code>\/config<\/code>\u00a0where allowed (not on Fable 5), or\u00a0<code>MAX_THINKING_TOKENS=8000<\/code>\u00a0on fixed-budget models. Thinking bills as output tokens \u2014 the expensive kind.<\/li>\n\n\n\n<li><strong>Delegate verbose operations to subagents<\/strong>\u00a0\u2014 test runs, doc fetches, log processing stay in the subagent&#8217;s context; only summaries return.<\/li>\n\n\n\n<li><strong>Prefer CLI tools over MCP; disable unused MCP servers<\/strong>\u00a0(<code>\/mcp<\/code>).<\/li>\n\n\n\n<li><strong>Preprocess with hooks.<\/strong>\u00a0The official flagship example \u2014 a PreToolUse hook that rewrites test commands to return only failures, turning a 10,000-line log into a few hundred tokens:<\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\">#!\/bin\/bash<\/span>\ninput=$(cat); cmd=$(<span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">\"$input\"<\/span> | jq -r <span class=\"hljs-string\">'.tool_input.command'<\/span>)\n<span class=\"hljs-keyword\">if<\/span> &#91;&#91; <span class=\"hljs-string\">\"$cmd\"<\/span> =~ ^(npm test|pytest|go test) ]]; then\n  filtered=<span class=\"hljs-string\">\"$cmd 2&gt;&amp;1 | grep -A 5 -E '(FAIL|ERROR|error:)' | head -100\"<\/span>\n  <span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">\"{\\\"hookSpecificOutput\\\":{\\\"hookEventName\\\":\\\"PreToolUse\\\",\\\"permissionDecision\\\":\\\"allow\\\",\\\"updatedInput\\\":{\\\"command\\\":\\\"$filtered\\\"}}}\"<\/span>\n<span class=\"hljs-keyword\">else<\/span> <span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">\"{}\"<\/span>; fi\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ol start=\"7\" class=\"wp-block-list\">\n<li><strong>Move workflow instructions from CLAUDE.md into skills<\/strong>\u00a0(on-demand loading). Keep CLAUDE.md under ~200 lines.<\/li>\n\n\n\n<li><strong>Install code intelligence plugins<\/strong>\u00a0for typed languages \u2014 one go-to-definition replaces a grep plus several speculative file reads.<\/li>\n\n\n\n<li><strong>Write specific prompts.<\/strong>\u00a0&#8220;Improve this codebase&#8221; triggers broad scanning; &#8220;add input validation to the login function in auth.ts&#8221; doesn&#8217;t.<\/li>\n\n\n\n<li><strong>Plan mode for complex work<\/strong>\u00a0\u2014 wrong-direction rework is the most expensive token sink of all. Course-correct with\u00a0<code>Esc<\/code>\u00a0early; after two failed corrections,\u00a0<code>\/clear<\/code>\u00a0and re-prompt with what you learned.<\/li>\n\n\n\n<li><strong>Custom compaction instructions<\/strong>\u00a0(<code>\/compact Focus on the API changes<\/code>) so summaries keep what matters.<\/li>\n\n\n\n<li><strong><code>\/btw<\/code>\u00a0for side questions<\/strong>\u00a0\u2014 answered in an overlay, never enters context.<\/li>\n\n\n\n<li><strong>On the raw API:<\/strong>\u00a0prompt caching (~90% off cache hits) and the Batch API (50% off everything non-urgent).<\/li>\n\n\n\n<li><strong>Know the cache mechanics:<\/strong>\u00a0model switches trigger one slow uncached turn; CLAUDE.md edits don&#8217;t apply mid-session; check your cache hit rate via the prompt-caching doc guidance.<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">PART 7 \u2014 CLAUDE COWORK: THE COMPLETE PICTURE<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">7.1 What it is<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cowork is Anthropic&#8217;s&nbsp;<strong>agentic workspace<\/strong>&nbsp;\u2014 the same architecture as Claude Code, aimed at knowledge work, no terminal required. Officially:&nbsp;<em>describe a desired outcome, then return later to completed work \u2014 polished documents, organized files, synthesized research, and more.<\/em>&nbsp;It launched as a research preview in January 2026 and is now&nbsp;<strong>generally available to all paying customers (Pro, Team, Enterprise) on Mac and Windows<\/strong>, with remote sessions (beta) making your sessions and files follow your account across desktop, web, and mobile. Chat and Cowork now share one home \u2014 delegating a task starts from the same message box as a conversation.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">7.2 Key capabilities (official)<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Works directly on your computer<\/strong>\u00a0\u2014 reads and writes local files, no manual uploads\/downloads. Execution happens in an isolated virtual-machine environment for safety.<\/li>\n\n\n\n<li><strong>Sub-agent coordination<\/strong>\u00a0\u2014 complex work is split into parallel workstreams automatically.<\/li>\n\n\n\n<li><strong>Professional outputs<\/strong>\u00a0\u2014 Excel spreadsheets with\u00a0<em>working formulas<\/em>\u00a0(VLOOKUP, conditional formatting, multi-tab), PowerPoint decks, formatted Word documents, filled\/merged\/split PDFs \u2014 powered by built-in skills for xlsx, pptx, docx, and pdf.<\/li>\n\n\n\n<li><strong>Claude in Chrome pairing<\/strong>\u00a0\u2014 automate tasks on any website alongside file work.<\/li>\n\n\n\n<li><strong>Long-running tasks<\/strong>\u00a0\u2014 extended autonomous work without conversation timeouts.<\/li>\n\n\n\n<li><strong>Scheduled tasks<\/strong>\u00a0\u2014 on-demand or automatic on a schedule you set.<\/li>\n\n\n\n<li><strong>Projects<\/strong>\u00a0\u2014 persistent, self-contained workspaces with their own files, links, instructions, and memory.<\/li>\n\n\n\n<li><strong>Extensibility<\/strong>\u00a0\u2014 the same stack as everywhere else:\u00a0<strong>Connectors (MCP)<\/strong>,\u00a0<strong>Skills<\/strong>,\u00a0<strong>Plugins<\/strong>\u00a0(official plugins include Asana, Canva, Cloudflare, Figma, GitHub, Google Drive, Jira, Linear, Notion, Sentry, Slack), and\u00a0<strong>Monitoring<\/strong>\u00a0for org-wide usage tracking.<\/li>\n\n\n\n<li><strong>Enterprise controls (new at GA):<\/strong>\u00a0role-based access controls, spend limits and use controls, analytics and visibility dashboards.<\/li>\n\n\n\n<li>Desktop-only for now: live artifacts and plugins that include\u00a0<em>local<\/em>\u00a0MCP servers.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">7.3 Getting started &amp; the golden rules<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Enable via Settings \u2192 the Cowork\/Code tab in Claude Desktop, then grant access to a folder. The community-converged best practice:&nbsp;<strong>start with a dedicated workspace folder<\/strong>&nbsp;(e.g.,&nbsp;<code>~\/Cowork-Workspace\/{input,output}<\/code>), not your entire Documents folder.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The mindset shift that unlocks Cowork \u2014 in Anthropic&#8217;s words,&nbsp;<em>&#8220;it feels much less like a back-and-forth and much more like leaving messages for a coworker&#8221;<\/em>:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Delegate outcomes, not steps.<\/strong>\u00a0Define what &#8220;done&#8221; looks like before you prompt.<\/li>\n\n\n\n<li><strong>Give context and constraints<\/strong>\u00a0\u2014 audience, format, tone, what to exclude.<\/li>\n\n\n\n<li><strong>Batch related work<\/strong>\u00a0into one task to save usage.<\/li>\n\n\n\n<li><strong>Keep backups and monitor<\/strong>\u00a0\u2014 it&#8217;s an agent touching real files; safety is your responsibility. Avoid pointing it at sensitive data while learning. Cowork respects your network egress permissions, but its agentic nature plus internet access carries real risk \u2014 review what it did.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">7.4 A prompt template that consistently works in Cowork<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">Task: &#91;outcome, not procedure \u2014 <span class=\"hljs-string\">\"a client-ready Word report\"<\/span>, not <span class=\"hljs-string\">\"open the files\"<\/span>]\nSource: &#91;folder\/files, e.g. ~\/Cowork-Workspace\/input\/]\nDone means: &#91;format, sections, length, audience, naming, where to save]\nConstraints: &#91;exclude X, don<span class=\"hljs-string\">'t modify originals, cite sources, brand tone]\n<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Worked example (the pattern used in official-adjacent tutorials):<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">This folder contains our <span class=\"hljs-number\">2025<\/span> operating expenses. Analyze the data and\ncreate a Word <span class=\"hljs-built_in\">document<\/span> report covering: total annual spending, breakdown\nby category <span class=\"hljs-keyword\">with<\/span> percentages, the three largest expense categories, and\nmonth-over-month trends. Save it to \/output <span class=\"hljs-keyword\">as<\/span> expenses-report<span class=\"hljs-number\">-2025.<\/span>docx.\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">7.5 High-leverage Cowork workflows<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Files &amp; admin:<\/strong>&nbsp;organize a Downloads folder by&nbsp;<em>content<\/em>&nbsp;(an invoice PDF goes to Accounting, an ebook PDF to Documentation \u2014 it reads, not just sorts by extension); drop receipts in a folder \u2192 formatted expense report; batch-rename, dedupe, archive by rule.&nbsp;<strong>Documents:<\/strong>&nbsp;research synthesis across 20+ mixed files (interviews, surveys, tickets) into themes and action items; meeting notes \u2192 minutes + task lists pushed to Asana\/Linear via plugins; long-report assembly from scattered sources.&nbsp;<strong>Spreadsheets:<\/strong>&nbsp;real Excel models with formulas and formatting, not CSVs that need fixing; cross-file reconciliation; recurring weekly dashboards via scheduled tasks.&nbsp;<strong>Business ops:<\/strong>&nbsp;invoices, quotes, follow-up emails, prospect research \u2014 the documented sweet spot for small businesses.&nbsp;<strong>With Chrome:<\/strong>&nbsp;form filling, portal data extraction, web research feeding directly into local deliverables.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">7.6 Claude Code vs. Cowork \u2014 which do I reach for?<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Situation<\/th><th class=\"has-text-align-left\" data-align=\"left\">Use<\/th><\/tr><\/thead><tbody><tr><td>Anything in a codebase: features, bugs, tests, refactors, PRs, CI<\/td><td><strong>Claude Code<\/strong><\/td><\/tr><tr><td>Documents, spreadsheets, decks, file organization, research synthesis<\/td><td><strong>Cowork<\/strong><\/td><\/tr><tr><td>You live in the terminal \/ need scripting, headless, hooks-level control<\/td><td><strong>Claude Code<\/strong><\/td><\/tr><tr><td>You never want to see a terminal<\/td><td><strong>Cowork<\/strong><\/td><\/tr><tr><td>Browser automation with file deliverables<\/td><td><strong>Cowork + Chrome<\/strong><\/td><\/tr><tr><td>Team chat delegation<\/td><td><strong>Claude Code via @Claude in Slack<\/strong>&nbsp;(code) \/&nbsp;<strong>Claude Tag<\/strong>&nbsp;(general)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">They share plan usage limits, the MCP connector ecosystem, and the skills format \u2014 a skill you write once often serves both.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">PART 8 \u2014 SECURITY, SAFETY &amp; GOVERNANCE ESSENTIALS<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Run agents least-privileged: scoped folders (Cowork) and permission rules\/sandboxing (Code);&nbsp;<code>--allowedTools<\/code>&nbsp;for anything unattended; auto mode&#8217;s classifier plus hard deny rules for hands-off runs; the sandboxed Bash tool, dev containers, Docker, or VMs matched to your threat model. Treat hostile content (web pages, issue text, files) as a prompt-injection surface \u2014 auto mode explicitly screens for hostile-content-driven actions, and Cowork&#8217;s VM isolation plus network egress permissions exist for the same reason. For organizations: managed settings (device- or server-delivered), managed MCP allowlists, approved version ranges, gateways (Claude apps gateway or LiteLLM-style) for central credentials and per-user spend limits, OpenTelemetry for audit-grade visibility, and Zero Data Retention available for qualified Enterprise accounts. Anthropic does not train on Claude for Work data by default \u2014 see the data-usage doc for specifics per plan.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">PART 9 \u2014 COMMON FAILURE PATTERNS (AND THE FIX)<\/h1>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Pattern<\/th><th class=\"has-text-align-left\" data-align=\"left\">Symptom<\/th><th class=\"has-text-align-left\" data-align=\"left\">Fix<\/th><\/tr><\/thead><tbody><tr><td>Kitchen-sink session<\/td><td>One session, five unrelated tasks, degrading quality<\/td><td><code>\/clear<\/code>&nbsp;between tasks, always<\/td><\/tr><tr><td>Correction spiral<\/td><td>Wrong \u2192 correct \u2192 still wrong \u2192 correct\u2026<\/td><td>After two failed corrections,&nbsp;<code>\/clear<\/code>&nbsp;and write a better first prompt using what you learned<\/td><\/tr><tr><td>Bloated CLAUDE.md<\/td><td>Claude ignores your rules<\/td><td>Prune ruthlessly; convert must-happen rules to hooks; move niche knowledge to skills<\/td><\/tr><tr><td>Trust-then-verify gap<\/td><td>Plausible code, broken edge cases<\/td><td>Never prompt without a verification target; demand evidence<\/td><\/tr><tr><td>Infinite exploration<\/td><td>&#8220;Investigate X&#8221; \u2192 300 file reads \u2192 full context<\/td><td>Scope narrowly or delegate to subagents<\/td><\/tr><tr><td>Opus-by-default<\/td><td>Mysteriously high bill<\/td><td>Sonnet default, escalate on evidence<\/td><\/tr><tr><td>Chatbot-mode Cowork<\/td><td>Micro-managed back-and-forth, 10% of value<\/td><td>Delegate outcomes; define &#8220;done&#8221;; step away<\/td><\/tr><tr><td>Reviewer worship<\/td><td>Over-engineering from chasing every review nit<\/td><td>Instruct reviewers: correctness gaps only<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">PART 10 \u2014 CANONICAL RESOURCES<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Claude Code:<\/strong>&nbsp;docs home code.claude.com\/docs\/en\/overview \u00b7 full index code.claude.com\/docs\/llms.txt \u00b7 best practices&nbsp;<code>\/en\/best-practices<\/code>&nbsp;\u00b7 costs&nbsp;<code>\/en\/costs<\/code>&nbsp;\u00b7 changelog&nbsp;<code>\/en\/changelog<\/code>&nbsp;\u00b7 weekly what&#8217;s-new&nbsp;<code>\/en\/whats-new\/<\/code>&nbsp;\u00b7 prompt library&nbsp;<code>\/en\/prompt-library<\/code>&nbsp;\u00b7 glossary&nbsp;<code>\/en\/glossary<\/code>&nbsp;<strong>Cowork:<\/strong>&nbsp;claude.com\/docs\/cowork\/overview \u00b7 Help Center: support.claude.com (&#8220;Get started with Claude Cowork&#8221;)&nbsp;<strong>Models &amp; API:<\/strong>&nbsp;platform.claude.com\/docs (models overview, what&#8217;s-new pages incl. Opus 5) \u00b7 pricing: claude.com\/pricing &amp; platform.claude.com&nbsp;<strong>Product news:<\/strong>&nbsp;anthropic.com\/news<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Compiled July 28, 2026 from official Anthropic documentation and current pricing references. Plan-specific model availability and introductory pricing (notably Sonnet 5&#8217;s $2\/$10 rate ending Aug 31, 2026, and Fable 5&#8217;s July 20 plan changes) are the details most likely to shift \u2014 verify on the official pages above before making budget commitments.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gold &amp; Diamond Standard Edition \u2014 Verified against official docs as of July 28, 2026 How this guide was built:&nbsp;Compiled from Anthropic&#8217;s official documentation (code.claude.com\/docs, claude.com\/docs\/cowork, platform.claude.com\/docs),&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[11138],"tags":[],"class_list":["post-77966","post","type-post","status-publish","format-standard","hentry","category-best-tools"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/77966","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=77966"}],"version-history":[{"count":1,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/77966\/revisions"}],"predecessor-version":[{"id":77967,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/77966\/revisions\/77967"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=77966"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=77966"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=77966"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}