blob: a88f8e470a4d5faf559c9fcdd2e89abdcea4f5ab [file] [log] [blame] [view]
# 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**