Skip to content

Lab 3.1: Deep Thought

Module: 3.1 - Extended Thinking | ← SlidesDuration: 30 minutes Sample Project: hackathon-starter

Learning Objectives

By the end of this lab, you will be able to:

  • Understand that extended thinking is enabled by default
  • Control thinking depth with Option+T/Alt+T and effort levels
  • Formulate questions that benefit from deep analysis
  • Compare thinking-on vs thinking-off responses
  • Apply insights to technical decision-making

What is Extended Thinking?

Extended Thinking gives Claude more time to reason through complex problems. Use it for:

  • Architectural decisions
  • Migration strategies
  • Complex debugging
  • Trade-off analysis

Controlling Thinking Depth

Extended thinking is enabled by default. You control the depth:

ControlHowEffect
Option+T / Alt+TKeyboard shortcutToggle thinking on/off for the session
Effort level in /modelSlash commandlow / medium / high — controls thinking depth
CLAUDE_CODE_EFFORT_LEVELEnvironment variableSet effort for scripts/CI
Ctrl+OKeyboard shortcutToggle verbose mode to see thinking

Note: Keywords like "think", "ultrathink" are deprecated (Jan 2026). They are treated as regular prompt text and do not control thinking.

Token Usage

Higher effort levels consume more tokens. Lower the effort level in /model or toggle thinking off with Option+T / Alt+T for simple tasks.

Setup

bash
# Navigate to the sample project
cd sample-projects/hackathon-starter

# Start Claude Code
claude

Tasks

Task 1: Formulate a Complex Question (5 min)

Think of a question that requires deep analysis.

Good questions for extended thinking:

CategoryExample
Architecture"Should we migrate from MongoDB to PostgreSQL?"
Migration"How should we upgrade from Express 4 to Express 5?"
Design"What's the best authentication strategy for a multi-tenant app?"
Performance"Why is our API slow and how can we optimize it?"
Security"What security vulnerabilities might exist in our auth flow?"

Pick a question relevant to the hackathon-starter project.

Success criteria:

  • [ ] Question is complex (not a simple lookup)
  • [ ] Question has trade-offs to consider
  • [ ] Question is relevant to the codebase

Task 2: Ask with Extended Thinking (10 min)

Ensure thinking is enabled (it's on by default), then ask your complex question.

Step 1: Verify thinking is on

Press Option+T (macOS) / Alt+T (Windows/Linux) if you need to toggle thinking on. Enable verbose mode with Ctrl+O so you can watch Claude reason.

Step 2: Ask your question

Should this application migrate from Passport.js to a custom JWT-based authentication system?

Consider:
- Security implications
- Development effort
- Maintainability
- Scalability for future features

Prompt tips — add context for better results:

[Your complex question]

Consider:
- Trade-offs between options
- Risks and mitigations
- Implementation complexity
- Long-term maintainability

Observe:

  • Can you see Claude's thinking in verbose mode (gray italic text)?
  • How long does Claude take to respond?
  • How detailed is the analysis?
  • Are trade-offs presented?

Success criteria:

  • [ ] Thinking is enabled (default state)
  • [ ] Verbose mode on (Ctrl+O) to observe reasoning
  • [ ] Received detailed analysis
  • [ ] Multiple perspectives considered

Task 3: Compare with Thinking Off (10 min)

Now toggle thinking off and ask the same question.

Step 1: Press Option+T / Alt+T to turn thinking off.

Step 2: Ask the same question:

Should this application migrate from Passport.js to a custom JWT-based authentication system?

Step 3: Toggle thinking back on (Option+T / Alt+T) when done.

Compare:

AspectThinking On (default)Thinking Off
Depth of analysis
Trade-offs listed
Risks identified
Actionability
Response time

Success criteria:

  • [ ] Both responses received
  • [ ] Differences identified
  • [ ] Understand when thinking adds value vs overhead

Task 4: Apply Insights (5 min)

Use the extended thinking analysis to make a decision.

Questions to answer:

  1. What decision would you make based on the analysis?
  2. What follow-up questions do you have?
  3. What would you need to validate before proceeding?

Document your decision:

markdown
## Decision: [Topic]

### Analysis Summary
[Key points from extended thinking response]

### Decision
[What we decided and why]

### Next Steps
1. [Action item]
2. [Action item]
3. [Action item]

### Risks to Monitor
- [Risk 1]
- [Risk 2]

Success criteria:

  • [ ] Decision documented
  • [ ] Reasoning explained
  • [ ] Next steps identified

When to Use Extended Thinking

Use extended thinking for:

  • Architecture and design decisions
  • Migration planning
  • Complex debugging
  • Security analysis
  • Performance optimization strategy

Don't use for:

  • Simple code generation
  • Documentation
  • Straightforward refactoring
  • Quick lookups

Tips for Better Questions

  1. Provide context - "Given our current tech stack of..."
  2. List constraints - "We have 2 developers and 3 months"
  3. Ask for trade-offs - "What are the pros and cons?"
  4. Request specifics - "Include concrete examples"

Example Extended Thinking Questions

With thinking enabled (the default), try these prompts:

We're experiencing slow API response times (>500ms). Analyze the hackathon-starter codebase and identify potential bottlenecks. Consider database queries, middleware, and async patterns.
Our team is debating whether to add TypeScript to this JavaScript project. Given the codebase size and our 6-month timeline, what's your recommendation? List trade-offs.
What would be the impact of switching from Express sessions to JWT tokens? Consider security, scalability, and implementation effort.

Deliverables

At the end of this lab, you should have:

  1. A complex technical question formulated
  2. Extended thinking response received and analyzed
  3. Comparison with standard response
  4. Documented decision based on the analysis

Next Steps

After completing this lab, move on to Lab 3.3: Workflow Automation.

Claude for Coders Training Course