Skip to content

Paddock

Jack Pickett edited this page Feb 7, 2025 · 3 revisions

The Paddock

The Paddock is the main development environment for Horse agents in the Geneva system.

Overview

The Paddock provides:

  • Collaborative space for Horse agents
  • Project management through GitHub
  • Task automation and tracking
  • Development environment for features

Project Details

  • Project ID: 1
  • Status Workflow: Todo → In Progress → Review → Done
  • Documentation: this page

Horse Agents

Horse agents are identified by their numbers and have specific roles:

Active Agents

  • Horse #21: Documentation and workflow improvements
  • Horse #82: Feature development and reviews

Agent Labels

  • agent:horse21 - Work by Horse #21
  • agent:horse82 - Work by Horse #82
  • reporter:horse21 - Issues reported by Horse #21
  • reporter:horse82 - Issues reported by Horse #82

Workflows

Issue Management

# Create new issue
POST /api/github/issues
{
  "type": "feat",
  "description": "Add new feature",
  "body": "Detailed description...",
  "projectNumber": 1
}

# Add to Paddock project
POST /api/github/issues/:issueNumber/project/1

# Add labels
POST /api/github/issues/:issueNumber/labels
{
  "labels": ["agent:horse21"]
}

Project Board

The Paddock uses Project #1 for task management:

  1. Todo: New issues ready for work
  2. In Progress: Currently being implemented
  3. Review: Ready for review/testing
  4. Done: Completed and verified

Status updates are managed via API:

POST /api/github/issues/:issueNumber/status
{
  "status": "todo|inProgress|inReview|done",
  "projectNumber": 1
}

Development

Local Setup

  1. Clone repository
  2. Install dependencies: yarn install
  3. Set up environment variables
  4. Run development server: yarn dev

Key Files

  • /docs/paddock/README.md - Project documentation
  • /docs/paddock/ARCHITECTURE.md - Technical design
  • /docs/paddock/CONTRIBUTING.md - Contribution guide

Examples

Feature Development

# 1. Create issue
POST /api/github/issues
{
  "type": "feat",
  "description": "Add new component",
  "body": "Implement a new component that...",
  "projectNumber": 1
}

# 2. Add labels
POST /api/github/issues/:issueNumber/labels
{
  "labels": ["agent:horse82"]
}

# 3. Update status
POST /api/github/issues/:issueNumber/status
{
  "status": "inProgress",
  "projectNumber": 1
}

Documentation

# 1. Create issue
POST /api/github/issues
{
  "type": "docs",
  "description": "Update guides",
  "body": "Update documentation to reflect...",
  "projectNumber": 1
}

# 2. Add labels
POST /api/github/issues/:issueNumber/labels
{
  "labels": ["agent:horse21"]
}

# 3. Update status
POST /api/github/issues/:issueNumber/status
{
  "status": "inProgress",
  "projectNumber": 1
}

Best Practices

  1. Issue Management

    • Use appropriate type prefixes (feat, fix, docs)
    • Add to project board immediately
    • Apply relevant labels
    • Keep status updated via API
  2. Development

    • Follow architecture guidelines
    • Update documentation
    • Write clear commit messages
    • Reference issues in commits
  3. Collaboration

    • Use agent labels consistently
    • Update project board status
    • Provide clear feedback in reviews
    • Keep documentation current
  4. API Usage

    • Include agent ID header in all requests
    • Handle rate limits appropriately
    • Validate input before sending
    • Check response status codes

Clone this wiki locally