# MindMachine - Task List

## 1. Product Definition
- [ ] Review and approve `REQUIREMENTS.md`
- [ ] Confirm target platform for version 1
- [ ] Confirm MVP scope
- [ ] Decide final built-in presets for v1
- [ ] Confirm safety language and disclaimer wording
- [ ] Decide whether version 1 is Android-only

## 2. UX / Product Design
- [ ] Create user flow diagram
- [ ] Define onboarding flow
- [ ] Define safety warning flow
- [ ] Define preset selection screen
- [ ] Define session setup screen
- [ ] Define active session screen
- [ ] Define completion screen
- [ ] Define simple settings screen
- [ ] Define cardboard-holder guidance content

## 3. Technical Planning
- [ ] Choose app architecture
- [ ] Define project module/package structure
- [ ] Select audio generation approach
- [ ] Select visual rendering approach
- [ ] Define timing/synchronization strategy
- [ ] Define persistence model for presets/settings
- [ ] Define interruption handling strategy

## 4. Project Setup
- [ ] Create project repository
- [ ] Initialize native mobile project
- [ ] Configure formatting/linting
- [ ] Configure unit test framework
- [ ] Configure UI/integration test foundation
- [ ] Create initial README

## 5. Core Domain Models
- [ ] Implement `SessionPreset`
- [ ] Implement `SessionConfig`
- [ ] Implement `SessionState`
- [ ] Implement `AudioConfig`
- [ ] Implement `VisualConfig`
- [ ] Implement safety acknowledgment state

## 6. Session Engine
- [ ] Implement session timer/orchestrator
- [ ] Implement start session flow
- [ ] Implement pause/resume logic
- [ ] Implement stop logic
- [ ] Implement completion behavior
- [ ] Add tests for timing and session transitions

## 7. Audio Engine
- [ ] Implement stereo tone generation
- [ ] Implement binaural beat configuration
- [ ] Implement audio lifecycle management
- [ ] Handle headphone/output changes
- [ ] Handle audio interruptions safely
- [ ] Add tests for config and lifecycle behavior

## 8. Visual Engine
- [ ] Implement full-screen rendering surface
- [ ] Implement flash pattern
- [ ] Implement pulse/fade pattern
- [ ] Implement alternating pattern option
- [ ] Connect pattern timing to session state
- [ ] Add tests for visual timing logic where practical

## 9. Safety Features
- [ ] Implement first-run safety acknowledgment
- [ ] Block session start until warnings are acknowledged
- [ ] Add seizure / photo-sensitivity warning text
- [ ] Add headphone requirement warning
- [ ] Add runtime stop/pause behavior for unsafe output changes
- [ ] Add tests for safety guardrails

## 10. UI Implementation
- [ ] Implement onboarding screen
- [ ] Implement home/preset list screen
- [ ] Implement session setup screen
- [ ] Implement active session screen
- [ ] Implement completion screen
- [ ] Implement settings screen
- [ ] Ensure controls are large and clear

## 11. Presets and Settings
- [ ] Add Relax preset
- [ ] Add Focus preset
- [ ] Add Sleep Prep preset
- [ ] Add custom session editor (if in v1)
- [ ] Persist recent settings
- [ ] Validate user-entered parameter ranges

## 12. Holder Guidance / Documentation
- [ ] Write concise holder-building instructions
- [ ] Add fit and comfort guidance
- [ ] Add safe positioning guidance
- [ ] Add end-user usage instructions
- [ ] Review for clarity and brevity

## 13. Testing
- [ ] Unit test session state transitions
- [ ] Unit test preset validation
- [ ] Unit test safety rules
- [ ] Integration test session start/stop
- [ ] Integration test interruption handling
- [ ] UI test onboarding and preset selection
- [ ] UI test active session controls
- [ ] Manual test with real stereo headphones

## 14. Pre-Release Review
- [ ] Review wording for medical/safety compliance
- [ ] Review usability in low-light conditions
- [ ] Review comfort assumptions around phone holder
- [ ] Review battery/heat impact during longer sessions
- [ ] Review failure modes and recovery behavior

## 15. Nice-to-Have After MVP
- [ ] Ambient sound mixing
- [ ] Printable holder template
- [ ] More advanced visual patterns
- [ ] Guided voice sessions
- [ ] Session history
- [ ] Expanded preset library
