Your first xVC session in 30 minutes
-
AI Assistant Access
- Claude (via claude.ai or API)
- Alternative: GPT-4, Gemini Pro
- Minimum: 100k context window recommended
-
Development Environment
- Terminal/Command line
- Git (version 2.0+)
- Text editor (VS Code, Vim, etc.)
- Your language toolchain (compiler/interpreter)
-
Mindset
- Clear project vision
- Commitment to principles
- Patience for partnership building
For your first xVC project, language choice matters immensely. Start with:
-
JavaScript/TypeScript (Recommended for beginners)
- Highest LLM fluency
- Clearest echoes from the cave
- Focus on patterns, not syntax fights
-
Go (Excellent choice)
- Strong LLM support
- Clean, simple syntax
- Great for backend services
-
Java (If you prefer JVM)
- Massive training data
- Enterprise patterns well understood
- Excellent tooling
Avoid for first project: C, C++, Rust, or niche languages. See Language Choice Guide for why.
# Create project directory
mkdir my-first-evc-project
cd my-first-evc-project
# Initialize git
git init
# Create basic structure
mkdir -p src docs tests
touch README.md CLAUDE.md .gitignore
# Initial commit
git add .
git commit -m "Initial project structure"Create CLAUDE.md with your project vision:
# Project Vision
We are building a task management CLI tool in Go with these principles:
1. **Single Source of Truth**: No duplicate implementations
2. **Test-Driven**: Tests before implementation
3. **Clean Architecture**: Clear separation of concerns
4. **Zero External Dependencies**: Pure Go stdlib only
5. **Comprehensive Logging**: Every decision visible
## Core Features
- Add/remove/list tasks
- Mark tasks complete
- Save/load from JSON file
- Simple and fast
## Quality Standards
- 100% test coverage
- Zero linter warnings
- Proper error handling
- Clear documentationStart your AI session with this prompt:
I'm starting a new project using Extreme Vibe Coding (xVC).
Project: Task management CLI tool
Language: Go
Principles: Single source of truth, test-driven, clean architecture, zero dependencies
Please read the vision in CLAUDE.md and then:
1. Create a comprehensive test file for the core Task struct
2. Implement the Task type to pass all tests
3. Add proper logging throughout
4. Ensure clean, idiomatic Go code
Start with the test file first.
After the first file, reinforce patterns:
Excellent. Now following the same patterns:
1. Create tests for TaskList class
2. Implement TaskList with the same quality standards
3. Maintain our single source of truth principle
After each successful component:
# Review changes
git status
git diff
# Stage and commit
git add .
git commit -m "Add Task class with comprehensive tests"
# Continue patternAlways start with clear, written vision. The AI can't read your mind.
First interactions set the tone. Be explicit about standards.
Build component by component, committing working code frequently.
Regularly remind about core principles - they guide decisions.
Review generated code against your standards before committing.
"Build me a complete task management system"
"Create a Task class with these specific attributes..."
"Make it good"
"Follow Go conventions, handle all errors, 100% test coverage"
*Commits whatever is generated*
"Good start. Now add error handling for edge cases..."
- Start with vision/principles
- Show example code for patterns
- Reference previous decisions
- Maintain consistency
Structure: [Role] + [Context] + [Task] + [Constraints]
Example: "As a Go expert, following our test-driven approach
and zero-dependency principle, create a JSON persistence layer
for TaskList with comprehensive error handling."
- After 2-3 hours of intense coding: Even with cognitive resonance, sustained focus has limits. Quality starts degrading subtly before you notice it consciously.
- When patterns start degrading: If the system starts suggesting generic solutions or ignoring established conventions, context saturation has occurred. A break resets the cognitive state.
- Before major architectural decisions: Let your subconscious process complex decisions. The best architectural insights often come during walks, not during coding.
- When you feel frustrated: Frustration is a signal that cognitive alignment has broken down. Pushing through frustration teaches the pattern reflector that frustration is normal.
- ✅ 5+ clean commits: Each commit represents a complete thought—not just "progress" but "completion of a logical unit." This rhythm indicates healthy development flow.
- ✅ Working, tested code: Not just code that compiles, but code that demonstrably works and has tests proving it. Quality is built in, not bolted on.
- ✅ Consistent code style: The system has learned your preferences and applies them uniformly. Variable names, function structure, and error handling feel like they came from one mind.
- ✅ Clear git history: Reading your commits tells the story of the session. Future you (or your team) can understand the reasoning behind each change.
- ✅ Pattern reflector following patterns: The system anticipates your next request and suggests solutions aligned with your established approach without constant correction.
- ❌ No commits after 1 hour: If you can't find anything worth committing in an hour, you're either working at too high a level or spinning your wheels. Break the problem down smaller.
- ❌ Degrading code quality: Later functions are sloppier than earlier ones. Variable names become generic. Error handling gets skipped. This indicates context window saturation.
- ❌ Ignoring principles: When "just this once" exceptions start appearing, principle erosion has begun. These exceptions compound quickly and undermine the entire methodology.
- ❌ Circular discussions: Repeating the same conversation about approaches indicates cognitive misalignment. Stop, clarify the context, and re-establish patterns.
- ❌ Frustration building: Both yours and the system's responses show signs of struggle. Take a break before this becomes a learned pattern.
- Document learnings in CLAUDE.md
- Identify what patterns worked
- Note where guidance was needed
- Plan next session goals
- Session 2: Add persistence layer
- Session 3: Create CLI interface
- Session 4: Add advanced features
- Session 5: Polish and optimize
Before Starting:
- [ ] Clear project vision
- [ ] Development environment ready
- [ ] Git initialized
- [ ] 2-hour time block
During Session:
- [ ] Start with tests/design
- [ ] Commit every feature
- [ ] Reinforce principles
- [ ] Maintain standards
After Session:
- [ ] Review git log
- [ ] Document learnings
- [ ] Plan next session
- [ ] Push to remote$ git log --oneline
f5d9328 Add CLI interface with argument parsing
a8c3421 Add JSON persistence for TaskList
9b2d445 Implement TaskList with filtering capabilities
c7e4332 Add Task class with comprehensive tests
2341233 Initial project structure
$ go test ./...
ok taskmanager/task 0.005s
ok taskmanager/persistence 0.003s
PASS
$ golangci-lint run
No issues found!Your first xVC session should focus on:
- Establishing clear patterns
- Building working code incrementally
- Maintaining high standards
- Creating sustainable momentum
Remember: The goal isn't speed on day 1—it's establishing a partnership that will accelerate development for months to come.
"The first session sets the tone for the entire project. Invest in getting it right."