diff --git a/MVP_README.md b/MVP_README.md
new file mode 100644
index 0000000..a88f8e4
--- /dev/null
+++ b/MVP_README.md
@@ -0,0 +1,195 @@
+# Staff MVP - AI Multi-Agent Development System
+
+## Quick Start (5 minutes)
+
+Staff MVP is a lean AI multi-agent system where specialized AI agents autonomously handle development tasks and create GitHub pull requests. 
+
+### 1. Prerequisites
+
+- **Go 1.21+** installed
+- **OpenAI API key** (get one at [platform.openai.com](https://platform.openai.com))
+- **GitHub personal access token** with repo permissions
+
+### 2. Setup
+
+```bash
+# Clone and setup
+git clone <your-repo>
+cd staff
+./setup.sh
+
+# Configure (edit with your API keys)
+cp config.example.yaml config.yaml
+nano config.yaml
+```
+
+### 3. Configuration
+
+Edit `config.yaml` with your credentials:
+
+```yaml
+openai:
+  api_key: "sk-your-openai-key-here"
+  
+github:
+  token: "ghp_your-github-token-here"
+  owner: "your-github-username"
+  repo: "your-repo-name"
+```
+
+Or use environment variables:
+```bash
+export OPENAI_API_KEY="sk-your-openai-key-here"
+export GITHUB_TOKEN="ghp_your-github-token-here"
+```
+
+### 4. Usage
+
+```bash
+cd server
+
+# Create a task
+./staff create-task "Add user authentication system" --priority high --agent backend-engineer
+
+# Start an agent to process tasks
+./staff start-agent backend-engineer
+
+# List all tasks
+./staff list-tasks
+
+# Check agent status
+./staff list-agents
+```
+
+## How It Works
+
+1. **Create Tasks**: You create development tasks with descriptions and assign them to specialized agents
+2. **Agent Processing**: Agents fetch their assigned tasks and process them using OpenAI GPT-4
+3. **GitHub Integration**: Completed tasks automatically create pull requests in your repository
+4. **Human Review**: You review and merge the PRs like any normal development workflow
+
+## Available Agents
+
+- **CEO**: Strategic decisions and business direction
+- **Product Manager**: Requirements, user stories, specifications  
+- **Backend Engineer**: Server-side code, APIs, databases
+- **Frontend Engineer**: UI/UX, client-side applications
+
+## Task Workflow
+
+```
+Create Task → Assign to Agent → Agent Processes → Creates PR → Human Review → Merge
+```
+
+Tasks are stored as markdown files in the `tasks/` directory and use Git for version control.
+
+## Commands
+
+```bash
+# Task Management
+./staff create-task <description> [--priority high|medium|low] [--agent <agent-name>]
+./staff list-tasks [--status pending|in_progress|completed]
+./staff assign-task <task-id> <agent-name>
+
+# Agent Management  
+./staff start-agent <agent-name> [--loop] [--interval 30s]
+./staff list-agents
+./staff stop-agent <agent-name>
+
+# Utilities
+./staff config-check
+./staff --help
+```
+
+## Project Structure
+
+```
+├── config.yaml              # Main configuration
+├── tasks/                   # Task storage (Git-tracked)
+│   ├── task-001.md         # Individual tasks
+│   └── completed/          # Completed tasks
+├── operations/
+│   └── agents/             # Agent system prompts
+│       ├── ceo/
+│       ├── product-manager/
+│       ├── backend-engineer/
+│       └── frontend-engineer/
+└── server/                 # Go backend
+    ├── cmd/                # CLI commands
+    ├── config/             # Configuration system
+    ├── agent/              # Agent processing logic
+    ├── llm/                # LLM integration
+    └── git/                # Git/GitHub operations
+```
+
+## Example Task
+
+```markdown
+# Task: Add User Authentication
+
+**ID**: task-001  
+**Priority**: high  
+**Agent**: backend-engineer  
+**Status**: pending
+
+## Description
+Implement a complete user authentication system with:
+- User registration and login
+- JWT token-based authentication
+- Password hashing and validation
+- Basic user profile management
+
+## Acceptance Criteria
+- [ ] Users can register with email/password
+- [ ] Users can login and receive JWT token
+- [ ] Protected routes require valid token
+- [ ] Passwords are securely hashed
+- [ ] Basic user profile endpoints
+```
+
+## GitHub Integration
+
+When agents complete tasks, they automatically:
+
+1. Create a new branch: `task/001-add-user-authentication`
+2. Commit their solution with detailed commit message
+3. Create a pull request with:
+   - Task description and solution summary
+   - List of files changed
+   - Agent identification
+
+## Limitations (MVP)
+
+- Single user only (no user management)
+- Manual task assignment
+- No PR comment handling
+- No self-learning or improvement
+- OpenAI only (no other LLM providers yet)
+
+## Troubleshooting
+
+**"API key required" error**: 
+- Check your `config.yaml` has the correct OpenAI API key
+- Or set `OPENAI_API_KEY` environment variable
+
+**"GitHub token invalid" error**:
+- Ensure your GitHub token has `repo` permissions
+- Check the owner/repo settings in config
+
+**Build errors**:
+- Ensure Go 1.21+ is installed: `go version`
+- Run `go mod tidy` in the server directory
+
+## Next Steps
+
+This MVP can be extended with:
+- Multi-user support and authentication
+- Additional LLM providers (Claude, Gemini)
+- PR comment handling and iteration
+- Agent learning and improvement
+- Web UI for task management
+- Integration with project management tools
+
+---
+
+**Built with ❤️ using Go + OpenAI + GitHub**
\ No newline at end of file
