The Agentic Engineering Playbook
Engineers no longer write code — they design environments where agents do. A practical guide to agent legibility, automated invariants, and treating AI as first-class teammates.
Agent output quality is set less by the model than by the harness around it: project guides, permissions, context strategy, configuration, and feedback loops.
Guides below cover the full path from first setup to multi-agent fleets, each backed by production use. Release-by-release analysis of the tools themselves lives in the version trackers.
The job shifts from writing code to designing the environment agents write it in. Legibility, automated invariants, and review discipline decide output quality more than any prompt.
Engineers no longer write code — they design environments where agents do. A practical guide to agent legibility, automated invariants, and treating AI as first-class teammates.
A concise CLAUDE.md, scoped permissions, and slash-command automation cut more friction than a model upgrade. The exact files and settings:
Claude Code, the terminal-native, agentic coding assistant, gets exponentially more useful when you give it a concise project guide (CLAUDE.md), set sensible permissions & environment via settings.json, and automate routine actions with slash-command files. This guide packs all three into copy-ready snippets: stack-specific CLAUDE.md templates, a JIRA-driven custom workflow, permission hygiene tips, and a reflection command that continuously sharpens your guide.
I've been using the official schema from Anthropic for Claude Code settings, but one thing was missing: autocomplete for environment variables. So I built an improved schema with 50+ env vars, inline documentation, and full IntelliSense support. Plus, I'm launching a new 'Extras' section for downloadable productivity tools.
Sessions degrade before the token limit — quality drops around 70-75% capacity. Compaction has dials; most engineers never touch them.
Context window mismanagement is the number one productivity killer in Claude Code. This guide shows you how to recognize context degradation, why it happens around 70-75% capacity, and the exact strategies top engineers use to maintain peak Claude Code performance throughout long coding sessions.
Control when Claude Code compacts your conversation history. Covers the ~83% cap bug, recommended values by use case, related compaction env vars, and troubleshooting. The definitive guide to CLAUDE_AUTOCOMPACT_PCT_OVERRIDE.
Claude Code ships hundreds of environment variables; most never reach the docs. The full reference, plus fixes for the common proxy and Bedrock failures.
The definitive reference for every Claude Code environment variable — 500+ vars organized by category. API keys, model overrides, Bedrock/Vertex/Foundry setup, feature flags, context compaction, agent teams, MCP, plugins, enterprise proxy, OTEL, and more. Includes the fix for the Bedrock eager_input_streaming 400 error.
CLAUDE_CODE_ATTRIBUTION_HEADER controls the x-anthropic-billing-header in Claude Code API requests. Setting it to 0 fixes Bedrock 400 errors and broken prompt caching with proxies like claude-code-router and liteLLM. Plus: the critical difference between this env var and git attribution settings.
Re-approving npm test hundreds of times a week is deletable friction. Scan session history once, apply a safe allowlist globally.
Open-source CLI that scans all your Claude Code sessions, groups safe commands with AI, and applies them globally — so you stop re-approving npm test, git add, and pnpm build every session.
Debug flags, log directories, and undocumented switches show what the agent actually did — not what it reported.
Claude Code versions 2.0.22 through 2.0.25 had nasty bugs. Instead of waiting for a fix, I dug into the source code and found powerful undocumented environment variables for debugging, autocompaction, and log control.
One well-harnessed agent is table stakes. Parallel fleets compound the leverage and introduce failure modes single sessions never hit.
Gas Town is Steve Yegge's toolkit for running multiple AI coding agents in parallel. I tried it. Here's what happened: the Mayor, the polecats, the freaky feeling, and 20+ tasks on a $100 Claude plan.
Agents fix what they can observe. Crash reports, test output, and production telemetry belong inside the loop, not in a dashboard the agent never sees.
crashpull is a zero-dependency CLI that pipes Firebase Crashlytics into your terminal and AI agents. List crashes, read stack traces, resolve — all from npx.
The environment built around a coding agent: project guides like CLAUDE.md, permission allowlists, environment variables, a context management strategy, and the feedback loops — tests, linters, crash reports — that let the agent verify its own work. Harness quality, not model choice, separates reliable agent output from unpredictable output.
Context quality drops before the technical token limit — noticeably around 70-75% capacity. System prompts and accumulated conversation consume the budget, and each compaction dilutes earlier context. One task per context, deliberate /clear and /compact usage, and tuned compaction thresholds keep sessions sharp.
Build and test commands, tech stack constraints, coding conventions, and project rules the agent cannot infer from code. Every line costs context in every session — keep it concise and split details into referenced docs the agent loads on demand.
permissions.allow patterns in settings.json — global in ~/.claude/settings.json, per-project in .claude/settings.json. Tools exist that scan session history and propose a safe allowlist in bulk instead of hand-writing patterns.
They work, but they are internals: any release can change or remove them without notice. Use them for debugging and tuning, track releases if one becomes load-bearing, and prefer documented settings when an equivalent exists.
We test the tools so you don't have to. Browse the full blog or get in touch to talk about your team's setup.