AI Coding Assistant Patterns

Claude Code CLI Patterns

5 min read

Claude Code is Anthropic's official CLI tool, taking a different approach than IDE-integrated assistants. Its system prompt reveals patterns optimized for terminal-based workflows.

Claude Code Overview

Aspect Details
Type Command-line interface (CLI)
Model Claude Opus 4.5 / Sonnet 4.5
Integration Terminal + any editor
Approach Agentic workflows
Special Feature MCP (Model Context Protocol)

Core Prompt Architecture

Claude Code uses a highly structured prompt:

You are Claude Code, Anthropic's official CLI for Claude.
You are an interactive CLI tool that helps users with
software engineering tasks.

You are powered by Claude Opus 4.5. The exact model ID
is claude-opus-4-5-20251101.

<env>
Working directory: {{cwd}}
Platform: {{platform}}
OS Version: {{os_version}}
Today's date: {{date}}
</env>

Key Patterns from Claude Code

Pattern 1: Task-Based Agents

Claude Code uses specialized subagents:

Available agent types:
- general-purpose: Complex multi-step tasks
- Explore: Fast codebase exploration
- Plan: Software architecture design
- claude-code-guide: Documentation queries

When using the Task tool, specify subagent_type:
- Use 'Explore' for quick file searches
- Use 'Plan' for implementation strategy
- Use 'general-purpose' for complex work

Pattern 2: Tool Approval System

Fine-grained tool permissions:

You can use these tools without requiring user approval:
- Bash(npm install:*)
- Bash(npm run build:*)
- Bash(git status:*)
- Bash(ls:*)
- Read(*)
- Glob(*)
- Grep(*)

These tools require approval:
- Bash(rm:*)  # Destructive
- Write(*)   # File creation
- Edit(*)    # File modification

Pattern 3: Git Safety Protocol

Strict git handling rules:

Git Safety Protocol:
- NEVER update git config
- NEVER run destructive commands (push --force, hard reset)
- NEVER skip hooks (--no-verify)
- NEVER force push to main/master

For git commit --amend, ALL conditions must be met:
1. User explicitly requested amend
2. HEAD commit was created by you in this conversation
3. Commit has NOT been pushed to remote

If commit FAILED, NEVER amend - fix and create NEW commit.

Pattern 4: File Operation Preferences

Claude Code emphasizes specialized tools:

Tool Usage Policy:
- ALWAYS use specialized tools over bash commands
- File search: Use Glob (NOT find or ls)
- Content search: Use Grep (NOT grep or rg)
- Read files: Use Read (NOT cat/head/tail)
- Edit files: Use Edit (NOT sed/awk)
- Write files: Use Write (NOT echo >)

NEVER use bash echo to communicate - output text directly.

Pattern 5: Edit Constraints

Precise editing instructions:

Edit Tool Rules:
- You MUST Read the file before editing
- Edit will FAIL if old_string is not unique
- Provide more context to make strings unique
- Preserve exact indentation (tabs/spaces)
- Line numbers start at 1, not 0

When editing from Read output:
- Everything after the line number tab is file content
- Never include line number prefix in old_string

MCP (Model Context Protocol) Integration

Claude Code supports MCP servers:

MCP Server Integration:
When MCP tools are available:
- Prefer MCP-provided tools over built-in equivalents
- MCP tools may have fewer restrictions
- Check for MCP web fetch before using WebFetch

<mcp_servers>
  {{available_mcp_tools}}
</mcp_servers>

Todo Tracking System

Built-in task management:

Task Management:
Use TodoWrite tool frequently to:
- Plan complex tasks
- Track progress
- Give user visibility into your work
- Break down large tasks

Mark todos as completed IMMEDIATELY after finishing.
Only ONE todo should be in_progress at a time.

Hooks System

User-configurable automation:

Users may configure 'hooks' - shell commands that execute
in response to events like tool calls.

Treat feedback from hooks as coming from the user.
If blocked by a hook:
- Determine if you can adjust your action
- If not, ask user to check hooks configuration

<user-prompt-submit-hook> feedback is user feedback.

VSCode Extension Mode

When running in VSCode:

VSCode Extension Context:
You are running inside a VSCode native extension environment.

Code References:
- For files: [filename.ts](src/filename.ts)
- For lines: [filename.ts:42](src/filename.ts#L42)
- For ranges: [filename.ts:42-51](src/filename.ts#L42-L51)
- For folders: [src/utils/](src/utils/)

Use markdown links, NOT backticks for file references.

Comparison: CLI vs IDE

Aspect Claude Code (CLI) IDE Tools (Cursor/Windsurf)
Environment Terminal IDE integrated
Context Working directory Full project index
Approval Per-tool granular Mode-based
Agents Specialized types Background agents
Memory Session-based Persistent
Git Strict safety Flexible

Key Insight: Claude Code's power comes from its precision. The system prompt enforces strict tool usage, git safety, and verification steps that make it reliable for production codebases.

Next, we'll explore GitHub Copilot's patterns and how it integrates with Microsoft's ecosystem. :::

Quiz

Module 2: AI Coding Assistant Patterns

Take Quiz