Overview

In AI-powered IDEs (like Cursor, Windsurf, etc.), there are typically three interaction modes. Understanding when to use each can significantly improve your workflow efficiency.

Three Modes Comparison

ModePurposeWhat AI DoesBest For
CraftCreate/BuildGenerates code, makes file changes directlyQuick implementation, routine tasks
PlanThink firstAnalyzes → Explains plan → Then implementsComplex features, architectural changes
AskQuery onlyAnswers questions, explains conceptsLearning, debugging, clarifications

Detailed Breakdown

🔨 Craft Mode

Definition: Action-oriented mode where AI directly writes or modifies code.

Characteristics:

  • “Just do it” approach
  • AI directly writes/modifies code
  • Fast, action-oriented
  • Minimal explanation, maximum action

Example usage:

1
"Craft a function to validate email addresses"

What AI will do: Immediately generate the code and insert it into your file.

Best for:

  • Simple, well-defined tasks
  • Routine code generation
  • When you know exactly what you want
  • Quick fixes and small additions

📋 Plan Mode

Definition: Analytical mode where AI thinks through the approach before implementing.

Characteristics:

  • “Think before you act” approach
  • AI first explains its reasoning and plan
  • You can review/approve before implementation
  • More transparent decision-making

Example usage:

1
"Plan how to add user authentication to this app"

What AI will do:

  1. Analyze existing codebase
  2. Propose a plan with steps
  3. Explain trade-offs
  4. Then implement (usually after your confirmation)

Best for:

  • Complex features requiring multiple changes
  • Architectural decisions
  • Refactoring existing code
  • When you need to understand the approach
  • Cross-file modifications

❓ Ask Mode

Definition: Information-only mode where AI explains without modifying files.

Characteristics:

  • “Information only” approach
  • AI explains, doesn’t modify files
  • Safe for learning and exploration
  • No side effects on your codebase

Example usage:

1
"Ask: What does this regex pattern do?"

What AI will do: Explain the concept or answer the question without touching any code.

Best for:

  • Learning new concepts
  • Understanding existing code
  • Debugging logic issues
  • Clarifying how things work
  • Exploring options before committing to changes

Quick Memory Trick

  • Craft = Create (动手做) 🔨
  • Plan = Ponder (先思考) 📋
  • Ask = Answer (只回答) ❓

When to Use Each Mode

Simple task → Craft

1
2
3
"I need a sorting function"
"Add a loading spinner to this component"
"Create a helper function to format dates"

Complex task → Plan

1
2
3
"I need to refactor the entire auth system"
"Plan the migration from REST to GraphQL"
"Design a caching strategy for this API"

Curious/Learning → Ask

1
2
3
"What's the difference between useEffect and useLayoutEffect?"
"Why is this code causing a memory leak?"
"Explain how the dependency injection works here"

Practical Workflow Tips

1. Start with Ask

When facing a new codebase or unfamiliar technology:

1
2
Ask → "What's the architecture of this project?"
Ask → "How does the state management work here?"

2. Move to Plan

For anything that touches multiple files or has architectural impact:

1
2
Plan → "How should I implement user roles?"
Plan → "What's the best way to handle API errors?"

3. Use Craft for execution

Once you understand the approach:

1
Craft → "Now implement the solution we discussed"

4. Iterate

1
2
3
4
Craft → "Add error handling to this function"
Ask → "Why might this fail in production?"
Plan → "How can we make this more robust?"
Craft → "Implement the improvements"

Common Mistakes

MistakeBetter Approach
Using Craft for complex refactoringUse Plan first to understand the impact
Using Plan for simple tasksUse Craft for faster results
Using Ask when you need code changesUse Craft or Plan depending on complexity
Not using Ask enoughStart with Ask to understand before acting

Pronunciation


  • IDE - Integrated Development Environment
  • codebase - the complete body of source code
  • refactor - restructure existing code without changing behavior
  • implementation - the realization of a plan or design in code
  • architectural - relating to the fundamental structure of a system