Development Workflow
This guide covers the development process, planning strategies, and workflow best practices for Waldur HomePort.
Philosophy
Core Beliefs
- Incremental progress over big bangs - Small changes that compile and pass tests
 - Learning from existing code - Study and plan before implementing
 - Pragmatic over dogmatic - Adapt to project reality
 - Clear intent over clever code - Be boring and obvious
 
Simplicity Means
- Single responsibility per function/class
 - Avoid premature abstractions
 - No clever tricks - choose the boring solution
 - If you need to explain it, it's too complex
 
Process
1. Planning & Staging
Break complex work into 3-5 stages. Document in IMPLEMENTATION_PLAN.md:
1 2 3 4 5  |  | 
- Update status as you progress
 - Remove file when all stages are done
 
2. Implementation Flow
- Understand - Study existing patterns in codebase
 - Test - Write test first (red)
 - Implement - Minimal code to pass (green)
 - Refactor - Clean up with tests passing
 - Commit - With clear message linking to plan
 
3. When Stuck (After 3 Attempts)
CRITICAL: Maximum 3 attempts per issue, then STOP.
- Document what failed:
 - What you tried
 - Specific error messages
 - 
Why you think it failed
 - 
Research alternatives:
 - Find 2-3 similar implementations
 - 
Note different approaches used
 - 
Question fundamentals:
 - Is this the right abstraction level?
 - Can this be split into smaller problems?
 - 
Is there a simpler approach entirely?
 - 
Try different angle:
 - Different library/framework feature?
 - Different architectural pattern?
 - Remove abstraction instead of adding?
 
Decision Framework
When multiple valid approaches exist, choose based on:
- Testability - Can I easily test this?
 - Readability - Will someone understand this in 6 months?
 - Consistency - Does this match project patterns?
 - Simplicity - Is this the simplest solution that works?
 - Reversibility - How hard to change later?
 
Project Integration
Learning the Codebase
- Find 3 similar features/components
 - Identify common patterns and conventions
 - Use same libraries/utilities when possible
 - Follow existing test patterns
 
Important Reminders
NEVER:
- Use 
--no-verifyto bypass commit hooks - Disable tests instead of fixing them
 - Commit code that doesn't compile
 - Make assumptions - verify with existing code
 
ALWAYS:
- Commit working code incrementally
 - Update plan documentation as you go
 - Learn from existing implementations
 - Stop after 3 failed attempts and reassess