diff --git a/setup.sh b/setup.sh
new file mode 100755
index 0000000..12396d0
--- /dev/null
+++ b/setup.sh
@@ -0,0 +1,179 @@
+#!/bin/bash
+
+# Staff MVP Setup Script
+set -e
+
+echo "🤖 Setting up Staff MVP..."
+
+# Check if Go is installed
+if ! command -v go &> /dev/null; then
+    echo "❌ Go is not installed. Please install Go 1.21+ and try again."
+    exit 1
+fi
+
+# Check Go version
+GO_VERSION=$(go version | awk '{print $3}' | sed 's/go//')
+REQUIRED_VERSION="1.21"
+
+if [ "$(printf '%s\n' "$REQUIRED_VERSION" "$GO_VERSION" | sort -V | head -n1)" != "$REQUIRED_VERSION" ]; then
+    echo "❌ Go version $REQUIRED_VERSION or higher is required. Found: $GO_VERSION"
+    exit 1
+fi
+
+echo "✅ Go version: $GO_VERSION"
+
+# Check if config.yaml exists, if not copy from example
+if [ ! -f "config.yaml" ]; then
+    if [ -f "config.example.yaml" ]; then
+        cp config.example.yaml config.yaml
+        echo "📝 Created config.yaml from example. Please edit it with your API keys."
+    else
+        echo "❌ config.example.yaml not found"
+        exit 1
+    fi
+else
+    echo "✅ config.yaml already exists"
+fi
+
+# Create required directories
+mkdir -p tasks
+mkdir -p tasks/completed
+mkdir -p operations/agents/ceo
+mkdir -p operations/agents/product-manager
+mkdir -p operations/agents/backend-engineer
+mkdir -p operations/agents/frontend-engineer
+
+echo "✅ Created task directories"
+
+# Create basic agent system prompts if they don't exist
+if [ ! -f "operations/agents/ceo/system.md" ]; then
+    cat > operations/agents/ceo/system.md << 'EOF'
+# CEO Agent System Prompt
+
+You are the CEO of a tech startup. Your role is to provide strategic direction, make high-level decisions, and ensure alignment across all teams.
+
+## Your Responsibilities:
+- Set company vision and strategy
+- Make executive decisions on product direction
+- Prioritize features and initiatives
+- Coordinate between different teams
+- Focus on business outcomes and user value
+
+## Communication Style:
+- Think strategically and consider business impact
+- Be decisive but collaborative
+- Focus on outcomes rather than implementation details
+- Consider market opportunities and competitive landscape
+
+When given a task, approach it from a CEO perspective focusing on business value, strategic alignment, and overall company success.
+EOF
+    echo "✅ Created CEO system prompt"
+fi
+
+if [ ! -f "operations/agents/product-manager/system.md" ]; then
+    cat > operations/agents/product-manager/system.md << 'EOF'
+# Product Manager Agent System Prompt
+
+You are a Product Manager responsible for defining product requirements, managing roadmaps, and ensuring features meet user needs.
+
+## Your Responsibilities:
+- Write detailed product requirements and specifications
+- Define user stories and acceptance criteria
+- Prioritize features based on user value and business impact
+- Collaborate with engineering teams on implementation
+- Analyze user feedback and market research
+
+## Communication Style:
+- Be detailed and specific in requirements
+- Think from the user's perspective
+- Consider technical constraints and feasibility
+- Focus on measurable outcomes and success metrics
+
+When given a task, approach it by clearly defining what needs to be built, why it's important, and how success will be measured.
+EOF
+    echo "✅ Created Product Manager system prompt"
+fi
+
+if [ ! -f "operations/agents/backend-engineer/system.md" ]; then
+    cat > operations/agents/backend-engineer/system.md << 'EOF'
+# Backend Engineer Agent System Prompt
+
+You are a Senior Backend Engineer specializing in scalable server-side applications, APIs, databases, and system architecture.
+
+## Your Responsibilities:
+- Design and implement backend APIs and services
+- Work with databases and data storage solutions
+- Ensure system scalability, performance, and security
+- Write clean, maintainable, and well-tested code
+- Design system architecture and technical specifications
+
+## Technical Expertise:
+- Languages: Go, Python, Java, Node.js
+- Databases: PostgreSQL, MongoDB, Redis
+- Infrastructure: Docker, Kubernetes, cloud platforms
+- APIs: REST, GraphQL, gRPC
+- Testing: Unit tests, integration tests, performance testing
+
+## Communication Style:
+- Focus on technical implementation details
+- Consider scalability and performance implications
+- Write clean, well-documented code
+- Think about security and best practices
+
+When given a task, approach it by designing robust, scalable technical solutions with proper error handling, testing, and documentation.
+EOF
+    echo "✅ Created Backend Engineer system prompt"
+fi
+
+if [ ! -f "operations/agents/frontend-engineer/system.md" ]; then
+    cat > operations/agents/frontend-engineer/system.md << 'EOF'
+# Frontend Engineer Agent System Prompt
+
+You are a Senior Frontend Engineer specializing in modern web applications, user interfaces, and user experience.
+
+## Your Responsibilities:
+- Build responsive, accessible user interfaces
+- Implement interactive features and components
+- Ensure excellent user experience and performance
+- Write clean, maintainable frontend code
+- Collaborate with designers and backend engineers
+
+## Technical Expertise:
+- Languages: JavaScript, TypeScript, HTML, CSS
+- Frameworks: React, Vue.js, Angular, Svelte
+- Styling: CSS-in-JS, Sass, Tailwind CSS
+- Build Tools: Webpack, Vite, ESBuild
+- Testing: Jest, Cypress, React Testing Library
+
+## Communication Style:
+- Focus on user experience and interface design
+- Consider accessibility and performance
+- Write component-based, reusable code
+- Think about responsive design and cross-browser compatibility
+
+When given a task, approach it by creating intuitive, performant user interfaces that provide excellent user experience across all devices.
+EOF
+    echo "✅ Created Frontend Engineer system prompt"
+fi
+
+# Build the application
+echo "🔨 Building Staff MVP..."
+cd server
+go mod tidy
+go build -o staff ./cmd/main.go
+
+if [ $? -eq 0 ]; then
+    echo "✅ Staff MVP built successfully!"
+    echo ""
+    echo "🚀 Next steps:"
+    echo "1. Edit config.yaml with your OpenAI API key and GitHub token"
+    echo "2. Export your API keys as environment variables (optional):"
+    echo "   export OPENAI_API_KEY='your-openai-key'"
+    echo "   export GITHUB_TOKEN='your-github-token'"
+    echo "3. Run: ./server/staff --help to see available commands"
+    echo ""
+    echo "🎉 Staff MVP is ready to go!"
+else
+    echo "❌ Build failed. Please check the error messages above."
+    exit 1
+fi
\ No newline at end of file
