<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Phase 1: Platform Engineering on Claude Code Wiki</title><link>http://www.markalston.net/claude-code-wiki/enterprise-rollout/03-phase-1-platform-engineering/</link><description>Recent content in Phase 1: Platform Engineering on Claude Code Wiki</description><generator>Hugo</generator><language>en-us</language><atom:link href="http://www.markalston.net/claude-code-wiki/enterprise-rollout/03-phase-1-platform-engineering/index.xml" rel="self" type="application/rss+xml"/><item><title>Managed Settings and Security Policy</title><link>http://www.markalston.net/claude-code-wiki/enterprise-rollout/03-phase-1-platform-engineering/managed-settings/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://www.markalston.net/claude-code-wiki/enterprise-rollout/03-phase-1-platform-engineering/managed-settings/</guid><description>&lt;h1 id="managed-settings-and-security-policy"&gt;Managed Settings and Security Policy&lt;a class="anchor" href="#managed-settings-and-security-policy"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="overview"&gt;Overview&lt;a class="anchor" href="#overview"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;managed-settings.json&lt;/code&gt; file is the enterprise-level configuration that sits at the top of Claude Code&amp;rsquo;s settings hierarchy and &lt;strong&gt;cannot be overridden by any developer or project-level setting.&lt;/strong&gt; It&amp;rsquo;s deployed to every developer machine via Mobile Device Management (MDM) or configuration management tooling.&lt;/p&gt;
&lt;h2 id="baseline-enterprise-configuration"&gt;Baseline Enterprise Configuration&lt;a class="anchor" href="#baseline-enterprise-configuration"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;env&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;CLAUDE_CODE_USE_BEDROCK&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;1&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;ANTHROPIC_BEDROCK_BASE_URL&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://llm-gateway.internal.corp.com/bedrock&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;CLAUDE_CODE_SKIP_BEDROCK_AUTH&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;1&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;cleanupPeriodDays&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;14&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;permissions&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;disableBypassPermissionsMode&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;disable&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;deny&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Read(**/.env)&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Read(**/.env.*)&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Read(**/secrets/**)&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Read(**/.ssh/**)&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Read(**/credentials*)&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Bash(sudo:*)&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Bash(su:*)&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Bash(curl:*)&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Bash(wget:*)&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Bash(ssh:*)&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Bash(rm -rf:*)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;allowManagedPermissionRulesOnly&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;allowManagedHooksOnly&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;strictKnownMarketplaces&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="key-design-decisions"&gt;Key Design Decisions&lt;a class="anchor" href="#key-design-decisions"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="bedrock-routing-env-section"&gt;Bedrock Routing (env section)&lt;a class="anchor" href="#bedrock-routing-env-section"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CLAUDE_CODE_USE_BEDROCK&lt;/code&gt;: Routes all requests through Bedrock instead of api.anthropic.com&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ANTHROPIC_BEDROCK_BASE_URL&lt;/code&gt;: Points to the internal LLM gateway, not directly to Bedrock&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CLAUDE_CODE_SKIP_BEDROCK_AUTH&lt;/code&gt;: The gateway holds AWS credentials, developers don&amp;rsquo;t need them&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="telemetry-lockdown"&gt;Telemetry Lockdown&lt;a class="anchor" href="#telemetry-lockdown"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC&lt;/code&gt; bundles four flags into one:&lt;/p&gt;</description></item><item><title>Developer Environment Standardization</title><link>http://www.markalston.net/claude-code-wiki/enterprise-rollout/03-phase-1-platform-engineering/developer-environment/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://www.markalston.net/claude-code-wiki/enterprise-rollout/03-phase-1-platform-engineering/developer-environment/</guid><description>&lt;h1 id="developer-environment-standardization"&gt;Developer Environment Standardization&lt;a class="anchor" href="#developer-environment-standardization"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="the-problem"&gt;The Problem&lt;a class="anchor" href="#the-problem"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Without standardization, 500 developers debug 500 different environment configurations. Claude Code needs Node.js 18+, correct environment variables, network connectivity to the LLM gateway, and managed settings in the right filesystem location. Every permutation is a support ticket.&lt;/p&gt;
&lt;h2 id="option-a-managed-devcontainers-recommended-for-vs-codecodespaces-orgs"&gt;Option A: Managed Devcontainers (Recommended for VS Code/Codespaces Orgs)&lt;a class="anchor" href="#option-a-managed-devcontainers-recommended-for-vs-codecodespaces-orgs"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;If the org uses VS Code or GitHub Codespaces, create a standard devcontainer with everything pre-configured.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// .devcontainer/devcontainer.json
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Enterprise Dev Environment&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;image&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;mcr.microsoft.com/devcontainers/base:ubuntu&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;features&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;ghcr.io/devcontainers/features/node:1&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nt"&gt;&amp;#34;version&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;20&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;postCreateCommand&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;npm install -g @anthropic-ai/claude-code&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;containerEnv&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;CLAUDE_CODE_USE_BEDROCK&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;1&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;ANTHROPIC_BEDROCK_BASE_URL&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://llm-gateway.internal.corp.com/bedrock&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;CLAUDE_CODE_SKIP_BEDROCK_AUTH&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;1&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;mounts&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;source=/Library/Application Support/ClaudeCode,target=/etc/claude-code,type=bind,readonly&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Developer opens repo → devcontainer starts → Claude Code just works.&lt;/p&gt;</description></item><item><title>CLAUDE.md Architecture -- Four-Layer Context Hierarchy</title><link>http://www.markalston.net/claude-code-wiki/enterprise-rollout/03-phase-1-platform-engineering/claude-md-architecture/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://www.markalston.net/claude-code-wiki/enterprise-rollout/03-phase-1-platform-engineering/claude-md-architecture/</guid><description>&lt;h1 id="claudemd-architecture--four-layer-context-hierarchy"&gt;CLAUDE.md Architecture &amp;ndash; Four-Layer Context Hierarchy&lt;a class="anchor" href="#claudemd-architecture--four-layer-context-hierarchy"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="the-core-design-problem"&gt;The Core Design Problem&lt;a class="anchor" href="#the-core-design-problem"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Claude Code has a context window of ~200K tokens. Every CLAUDE.md file, every rule, every skill description, every file Claude reads, every conversation turn competes for space. The context window is the scarce resource, and the platform engineer&amp;rsquo;s job is to manage it like memory in a constrained system.&lt;/p&gt;
&lt;p&gt;Unlike human developers who can skim past irrelevant instructions, Claude treats everything in its context with roughly equal attention. Irrelevant instructions don&amp;rsquo;t just waste tokens &amp;ndash; they actively dilute the signal.&lt;/p&gt;</description></item><item><title>Skills vs. Slash Commands vs. Rules -- Decision Framework</title><link>http://www.markalston.net/claude-code-wiki/enterprise-rollout/03-phase-1-platform-engineering/skills-commands-rules-decision-framework/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://www.markalston.net/claude-code-wiki/enterprise-rollout/03-phase-1-platform-engineering/skills-commands-rules-decision-framework/</guid><description>&lt;h1 id="skills-vs-slash-commands-vs-rules--decision-framework"&gt;Skills vs. Slash Commands vs. Rules &amp;ndash; Decision Framework&lt;a class="anchor" href="#skills-vs-slash-commands-vs-rules--decision-framework"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="when-to-use-rules-clauderulesmd"&gt;When to Use Rules (.claude/rules/*.md)&lt;a class="anchor" href="#when-to-use-rules-clauderulesmd"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Use rules when the instruction is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Declarative&lt;/strong&gt; &amp;ndash; &amp;ldquo;when working on X files, follow Y conventions&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automatic&lt;/strong&gt; &amp;ndash; should apply without the developer invoking anything&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;About patterns and constraints&lt;/strong&gt;, not step-by-step procedures&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Path-scopable&lt;/strong&gt; &amp;ndash; different rules for different parts of the codebase&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Examples:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;API endpoint conventions that apply whenever editing API files&lt;/li&gt;
&lt;li&gt;Testing requirements that activate when editing test files&lt;/li&gt;
&lt;li&gt;Security constraints that apply globally&lt;/li&gt;
&lt;li&gt;Framework-specific patterns (React, Go, etc.)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="when-to-use-skills-claudeskills"&gt;When to Use Skills (.claude/skills/)&lt;a class="anchor" href="#when-to-use-skills-claudeskills"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Use skills when the instruction is:&lt;/p&gt;</description></item><item><title>Skills Library Design -- Three-Tier Architecture</title><link>http://www.markalston.net/claude-code-wiki/enterprise-rollout/03-phase-1-platform-engineering/skills-library-design/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://www.markalston.net/claude-code-wiki/enterprise-rollout/03-phase-1-platform-engineering/skills-library-design/</guid><description>&lt;h1 id="skills-library-design--three-tier-architecture"&gt;Skills Library Design &amp;ndash; Three-Tier Architecture&lt;a class="anchor" href="#skills-library-design--three-tier-architecture"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="overview"&gt;Overview&lt;a class="anchor" href="#overview"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Skills are structured workflows Claude can invoke as complete procedures. Each skill needs a SKILL.md file with YAML frontmatter (name, description) and markdown instructions. The name becomes the /slash-command, and the description helps Claude decide when to load it automatically.&lt;/p&gt;
&lt;h2 id="tier-1-organization-skills-global-all-developers"&gt;Tier 1: Organization Skills (Global, All Developers)&lt;a class="anchor" href="#tier-1-organization-skills-global-all-developers"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Distributed via plugin marketplace (internal) or symlink from a shared repo. Installed to &lt;code&gt;~/.claude/skills/&lt;/code&gt; on each developer machine.&lt;/p&gt;</description></item><item><title>Context Budget Worksheet</title><link>http://www.markalston.net/claude-code-wiki/enterprise-rollout/03-phase-1-platform-engineering/context-budget-worksheet/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://www.markalston.net/claude-code-wiki/enterprise-rollout/03-phase-1-platform-engineering/context-budget-worksheet/</guid><description>&lt;h1 id="context-budget-worksheet"&gt;Context Budget Worksheet&lt;a class="anchor" href="#context-budget-worksheet"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="purpose"&gt;Purpose&lt;a class="anchor" href="#purpose"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Before building any CLAUDE.md or skills, do this exercise for each major codebase. It forces discipline about what goes where and prevents context overload.&lt;/p&gt;
&lt;h2 id="the-budget"&gt;The Budget&lt;a class="anchor" href="#the-budget"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Claude Code&amp;rsquo;s context window is approximately 200K tokens. Everything competes for this space: system prompt, CLAUDE.md files, rules, skill descriptions, code files Claude reads, conversation history, and Claude&amp;rsquo;s own reasoning.&lt;/p&gt;
&lt;h2 id="fixed-costs-always-loaded"&gt;Fixed Costs (Always Loaded)&lt;a class="anchor" href="#fixed-costs-always-loaded"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;These load into every session regardless of what the developer is doing.&lt;/p&gt;</description></item><item><title>Common Failure Modes</title><link>http://www.markalston.net/claude-code-wiki/enterprise-rollout/03-phase-1-platform-engineering/failure-modes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://www.markalston.net/claude-code-wiki/enterprise-rollout/03-phase-1-platform-engineering/failure-modes/</guid><description>&lt;h1 id="common-failure-modes"&gt;Common Failure Modes&lt;a class="anchor" href="#common-failure-modes"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Patterns to watch for and coach against during the rollout.&lt;/p&gt;
&lt;h2 id="1-the-encyclopedia-claudemd"&gt;1. The Encyclopedia CLAUDE.md&lt;a class="anchor" href="#1-the-encyclopedia-claudemd"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Symptom:&lt;/strong&gt; A team dumps their entire wiki into CLAUDE.md. 300+ lines of coding standards, architecture descriptions, and process documentation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Effect:&lt;/strong&gt; Claude&amp;rsquo;s responses get slower, less focused, and the context window fills up before any real work happens. Instructions toward the end of a long CLAUDE.md receive less attention than those at the beginning.&lt;/p&gt;</description></item><item><title>What Developers See</title><link>http://www.markalston.net/claude-code-wiki/enterprise-rollout/03-phase-1-platform-engineering/what-developers-see/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://www.markalston.net/claude-code-wiki/enterprise-rollout/03-phase-1-platform-engineering/what-developers-see/</guid><description>&lt;h1 id="what-developers-see"&gt;What Developers See&lt;a class="anchor" href="#what-developers-see"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;This is the page a team lead hands to developers on day one of rollout.&lt;/p&gt;
&lt;h2 id="when-a-deny-rule-fires"&gt;When a Deny Rule Fires&lt;a class="anchor" href="#when-a-deny-rule-fires"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Claude Code shows a notification explaining which policy blocked the action and why. The developer always sees what was blocked. For the full incident response workflow (rephrase, manual workaround, or policy exception), see &lt;a href="http://www.markalston.net/claude-code-wiki/enterprise-rollout/05-phase-3-observability-and-governance/security-controls/#if-a-deny-rule-is-triggered"&gt;Security Controls&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="checking-effective-permissions"&gt;Checking Effective Permissions&lt;a class="anchor" href="#checking-effective-permissions"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Run &lt;code&gt;/permissions&lt;/code&gt; in any Claude Code session to see all active permission rules and their source (managed, project, user). Run &lt;code&gt;/settings&lt;/code&gt; to see the full effective configuration with managed overrides marked.&lt;/p&gt;</description></item></channel></rss>