Domain 7: Developer Productivity & Operational Enablement
7% of examConfigure Claude tools and environments for teams
Key Points
- CLAUDE.md is memory/instructions; settings.json is deterministic configuration (permissions, hooks, MCP, env vars, model selection).
- Project memory is hierarchical: enterprise/system, user (~/.claude), project (./CLAUDE.md), and subdirectory levels.
- Project-level CLAUDE.md is committed to the repo so the whole team shares conventions and context.
- Tool allow/deny lists, hooks, environment, model selection, and MCP servers all live in settings.json.
- Configure common integrations once as shared MCP servers (build-once, reuse-across-the-team) rather than per-developer.
- Distribute team-wide Skills via repos, plugins, or enterprise managed settings so know-how is shared, not reinvented.
Decision Rules
When: Permissions or tool allow/deny rules are found in CLAUDE.md
→Move them to settings.json -- CLAUDE.md is instructions/memory, not enforcement.
When: Team-wide conventions live only in individual developers' personal ~/.claude config
→Move them to the committed project-level CLAUDE.md so every developer receives them.
When: Multiple developers need the same integration (internal API, data source)
→Configure it once as a shared MCP server rather than each developer configuring it individually.
✗ Anti-Patterns to Reject
- Putting permissions or guardrails in CLAUDE.md instead of settings.json.
- Configuring the same integration per-developer instead of as a shared MCP server, fragmenting tooling and multiplying maintenance.
Improve developer workflows with AI-assisted tooling
Key Points
- Best-practice workflow: gather-context, plan, act, verify -- not a single unsupervised step.
- Keep context lean at each stage to avoid context rot degrading output quality.
- The verify stage (tests, build, review) is what makes AI-assisted speed safe, not optional overhead.
- The Agent SDK enables building custom internal agents for CI/CD checks, codebase modernization, and repetitive engineering tasks.
- Headless/non-interactive modes let Claude Code run inside scripts and CI pipelines without a human at the keyboard.
- Custom slash commands and automation (e.g., GitHub integration) standardize common team tasks.
Decision Rules
When: Structuring an AI-assisted workflow
→Follow gather-context, plan, act, verify -- don't skip the verify step for speed.
When: A workflow needs to run in CI or on a schedule without a human present
→Use headless/non-interactive mode.
When: A team needs custom automation beyond the interactive tool (CI/CD checks, codebase modernization)
→Build it with the Agent SDK.
✗ Anti-Patterns to Reject
- Equating 'AI-assisted' with 'unsupervised' -- running an agent fully unsupervised on production as a 'productivity win.'
- Removing the verify step or over-loading context instead of keeping it lean at each stage.
Support debugging and operational issue resolution
Key Points
- Isolate a failure to transport, integration/parsing code, retrieval, or model output before applying any fix.
- Trace request/response pairs, tool calls, retrieval hits, stop_reason, and token usage back to the earliest deviation, not just the final symptom.
- Truncated output usually means stop_reason: max_tokens -- raise max_tokens, don't assume a quality or security issue.
- Model version mismatches and late-session context bloat are operational root causes distinct from prompt or code bugs.
- Feed confirmed fixes back into evals and monitoring so the same issue is caught automatically next time.
Decision Rules
When: Output is truncated
→Check for stop_reason: max_tokens and raise the limit -- don't assume prompt-injection, a compliance violation, or capability bloat.
When: A response is wrong
→Isolate which layer failed (transport, integration/parsing code, retrieval, model output) before changing any code or prompts.
When: A root cause and fix are confirmed
→Feed them back into the eval suite and monitoring dashboards to prevent recurrence.
✗ Anti-Patterns to Reject
- Patching the prompt when the bug is actually in integration/parsing code (or vice versa), fixing nothing and masking the real defect.
- Assuming a security or quality issue when the actual cause is a simple stop_reason: max_tokens truncation.