Daily Workflow
The optimal routine for a productive development session
PDF editions Β· Guide v3.44.1 Β· Updated
The interaction loop
Every Claude Code session follows this pattern:
1. DESCRIBE β Explain what you want2. ANALYZE β Claude explores the codebase3. PROPOSE β Claude proposes a diff4. REVIEW β Read and evaluate5. DECIDE β Accept / Reject / Modify6. VERIFY β Run the tests7. COMMIT β Save (optional)Claude proposes, you decide. Never skip the review step, even on changes that seem obvious.
Session start
Before typing the first request:
- Verify CLAUDE.md is loaded: ask βWhatβs the test command for this project?β and see if Claude answers with the configured command
- Set a clear intention: one single objective per session
- Start with
/planif the task touches multiple files
cd your-projectclaude# Check with /status or a question about the project configDuring the session
Review the diff at each step: do not let Claude chain multiple changes without intermediate validation. On significant modifications, ask explicitly:
You: Show me what you changed before continuingContext management (personal reminders, not quality thresholds):
| Context | Action |
|---|---|
| 0-50% | Work freely |
| 50-75% | Be selective about open files |
| 75%+ | /compact now |
| 90%+ | Save decisions, then compact or hand off as needed |
Anti-Pattern: Vibe coding
Letting Claude iterate unsupervised across multiple files, then discovering problems an hour later. The end-of-session diff becomes unreadable and rolling back is costly.
Concrete countermeasures:
- Validate after each modified file, not after an entire batch
- Run tests after each significant change
- Commit regularly to have clean rollback points
End of session
Before closing:
# Check the repo stategit diff --stat
# Commit if everything is cleangit commit -m "feat: short description"If important decisions were made during the session (architecture choices, adopted conventions), note them in CLAUDE.md so the next session starts from the right context. Sessions do not transfer implicit decisions on their own.
Effective prompt format
WHAT: Fix the timeout bug on loginWHERE: src/auth/session.tsHOW: Increase expiry from 1h to 24hVERIFY: Login persists after browser refreshThis framework avoids ambiguities and reduces clarification back-and-forth.