CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview
This is an AI multi-agent system called "Staff" that simulates a tech startup organization with different specialized AI agents (CEO, Product Manager, Engineers, etc.). The system integrates multiple LLM providers and implements a comprehensive task management workflow with Git-based operations.
Core Architecture
- Multi-Agent System: Different AI agents with specialized roles (CEO, PM, Backend Engineer, Frontend Engineer, etc.)
- Task Management: Git-based task tracking system with automated PR creation
- LLM Integration: Unified interface supporting multiple providers (OpenAI, xAI, Claude, Gemini, local models)
- Agent Workflow: Agents fetch tasks → process with LLM → create solutions → submit PRs
Key Components
/server/ - Go backend with core agent infrastructure
agent/ - Agent system that processes tasks autonomously using LLMsllm/ - Unified LLM provider interface and factory systemtm/ - Task management interfaces and typesgit/ - Git operations for PR creation and repository managementcmd/ - CLI commands and main entry point
/operations/ - Company operational structure
agents/ - Agent role definitions and system promptstasks/ - Task files and examples
Development Commands
Building and Running
# Build the application
cd server && go build -o staff ./cmd/main.go
# Run with specific commands
./staff [command] [args]
# Run tests
go test ./server/...
# Run specific package tests
go test ./server/agent/...
go test ./server/llm/...
go test ./server/tm/...
Common Development Tasks
# Format code
go fmt ./...
# Check for linting issues
go vet ./...
# Update dependencies
go mod tidy
# View available commands
./staff --help
Agent System Architecture
Agent Lifecycle
- Configuration: Each agent has a unique name, role, Git credentials, LLM provider, and system prompt
- Task Processing Loop: Continuously fetches assigned tasks from task manager
- LLM Integration: Sends task descriptions to configured LLM for solutions
- Git Operations: Creates branch, commits solution, pushes PR
- Task Completion: Marks task as completed in task management system
Agent Configuration
- Each agent requires unique name, role, Git credentials, working directory
- LLM configuration includes provider type, model, API credentials
- System prompts define agent behavior and expertise area
- Task manager integration for fetching and updating tasks
Task Management
- Tasks have states: todo → in_progress → completed → archived
- Task priorities: low, medium, high
- Git-based task tracking with markdown files
- Automated PR creation for task solutions
LLM Provider System
Supported Providers
- OpenAI (GPT models)
- xAI (Grok models)
- Claude (Anthropic)
- Gemini (Google)
- Local models
Provider Interface
All providers implement the same interface:
ChatCompletion() - Main chat completion endpointCreateEmbeddings() - Text embedding generationClose() - Resource cleanup
Configuration
Each provider requires:
- API key and base URL
- Timeout and retry settings
- Provider-specific extra parameters
File Structure Patterns
Agent Definitions
- Agent system prompts stored in
/operations/agents/{role}/system.md - Each agent has detailed role definition and behavioral guidelines
Task Files
- Task templates in
/operations/tasks/ - Format:
task-{timestamp}-{id}.md - Include task metadata, description, and assignment info
Solution PRs
- Agents create branches:
task/{task-id}-{clean-title} - Solutions formatted as markdown with task metadata
- Automated commit messages and PR descriptions
Key Dependencies
Go Modules
github.com/spf13/cobra - CLI frameworkgithub.com/google/uuid - UUID generationgithub.com/stretchr/testify - Testing frameworkgolang.org/x/text - Text processinggopkg.in/yaml.v3 - YAML parsing
Development Dependencies
- Go 1.24.4+ required
- Git for version control and PR operations
- Access to LLM provider APIs (OpenAI, etc.)
Testing Strategy
Test Coverage
- Unit tests for all major components
- Agent configuration validation
- LLM provider interface compliance
- Task management operations
- Git operations and branch creation
Test Execution
# Run all tests
go test ./server/...
# Run with coverage
go test -cover ./server/...
# Run specific test suites
go test ./server/agent/ -v
go test ./server/llm/ -v
go test ./server/tm/ -v
Security Considerations
- API keys managed through environment variables
- No hardcoded credentials in codebase
- Git operations use configured user credentials
- LLM responses processed but not executed directly
Integration Points
External Systems
- Git repositories for task management and code storage
- LLM provider APIs for agent intelligence
- Task management systems (GitHub Projects, Asana, Jira)
Internal Communication
- Agents communicate through task management system
- PR review process for human oversight
- Automated task assignment and completion tracking