Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude/project-context.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ c:\Projects\Agent Arena\
- ✅ Test scene created with working controls
- ✅ Core classes verified: SimulationManager, Agent, EventBus, ToolRegistry
- ✅ IPC system implemented (Godot ↔ Python via HTTP/FastAPI)
- ⏳ Next: Create actual benchmark scenes (foraging, crafting_chain, team_capture)
- ✅ Benchmark scenes created (foraging, crafting_chain, team_capture)
- ⏳ Next: Set up Python environment and agent runtime
- ⏳ Next: Integrate LLM backends with agent decision-making

Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -71,3 +71,7 @@ tmp/
# Claude Code (keep project-context.md but ignore local settings)
.claude/settings.local.json
.claude/*.local.*

# GitHub automation scripts (used for setup, not needed in repo)
scripts/create_github_*.bat
scripts/create_github_*.sh
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "external/godot-cpp"]
path = external/godot-cpp
url = https://github.com/godotengine/godot-cpp.git
79 changes: 76 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,27 @@ Thank you for your interest in contributing to Agent Arena! This project bridges

See [docs/quickstart.md](docs/quickstart.md) for initial setup.

### Work Division Strategy

To minimize merge conflicts and maximize parallel development:

**C++/Godot Development**:
- `godot/**/*` - C++ GDExtension code
- `scenes/**/*.tscn` - Godot scenes
- `scripts/**/*.gd` - GDScript files
- Scene balancing and visual improvements

**Python Development**:
- `python/**/*.py` - Agent runtime, backends, tools
- `configs/**/*.yaml` - Configuration files
- `tests/**/*.py` - Python unit tests
- LLM integration and memory systems

**Shared** (coordinate before modifying):
- `README.md`, `docs/**/*.md`
- `.claude/project-context.md`
- `CONTRIBUTING.md` (this file)

### Development Workflow

1. **C++ Module Changes:**
Expand All @@ -57,6 +78,45 @@ See [docs/quickstart.md](docs/quickstart.md) for initial setup.
- Keep examples working
- Add diagrams if helpful

### Branch Strategy

Use feature branches with descriptive names:

```bash
# Create feature branch
git checkout -b feature/llama-cpp-backend

# Make changes and commit
git commit -m "feat(backend): implement llama.cpp integration"

# Push and create PR
git push origin feature/llama-cpp-backend
gh pr create --title "Add llama.cpp backend" --body "..."
```

**Branch naming**:
- `feature/` - New features
- `fix/` - Bug fixes
- `refactor/` - Code refactoring
- `docs/` - Documentation updates
- `test/` - Test additions

### Daily Sync Pattern

**Morning** (async update):
- Post what you're working on today
- Mention any blockers

**Evening**:
- Push changes to your branch
- Tag teammates on PRs needing review
- Update issue status

**Weekly**:
- Integration checkpoint
- Demo progress
- Plan next week's work

## Code Standards

### Python
Expand Down Expand Up @@ -204,9 +264,22 @@ python python/evals/run_eval.py --scene foraging --trials 1

## Communication

- **GitHub Issues**: Bug reports, feature requests
- **GitHub Discussions**: Questions, ideas, general discussion
- **Pull Requests**: Code contributions
- **GitHub Issues**: Bug reports, feature requests, task tracking
- **GitHub Discussions**: Questions, ideas, architecture decisions
- **Pull Requests**: Code contributions and reviews
- **Discord/Slack** (if configured): Quick questions, daily standups

### IPC Protocol Changes

If you need to modify the Godot ↔ Python communication protocol:

1. Update [docs/ipc_protocol.md](docs/ipc_protocol.md)
2. Implement changes on both sides (Godot C++ and Python)
3. Add integration tests
4. Notify team (breaking change)
5. Version the protocol if needed

See [IPC Protocol Documentation](docs/ipc_protocol.md) for message format details.

## Code of Conduct

Expand Down
261 changes: 261 additions & 0 deletions QUICK_START_GITHUB_CLI.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,261 @@
# Quick Start: GitHub CLI for Agent Arena

Quick reference for using GitHub CLI to manage Agent Arena development.

## Setup (One Time)

```bash
# 1. Install GitHub CLI
winget install --id GitHub.cli # Windows

# 2. Authenticate
gh auth login

# 3. Navigate to repo
cd "c:\Projects\Agent Arena"
```

---

## Create Labels & Issues (Automated)

**IMPORTANT: Run these scripts in order!**

### Step 1: Create Labels First

```bash
# Windows
scripts\create_github_labels.bat

# Linux/Mac
bash scripts/create_github_labels.sh
```

This creates all the labels (backend, python, enhancement, etc.) that issues will use.

### Step 2: Create Issues

```bash
# Windows
scripts\create_github_issues.bat

# Linux/Mac
bash scripts/create_github_issues.sh
```

This creates ~10 high-priority issues with the labels you just created.

**Why this order?** Labels must exist before you can assign them to issues!

---

## Manual Issue Creation

### Create Issue

```bash
gh issue create \
--title "Your issue title" \
--label "python,enhancement" \
--assignee @me \
--body "Issue description"
```

### Create Issue for Colleague

```bash
gh issue create \
--title "Setup Python environment" \
--label "python,setup,good-first-issue" \
--assignee colleague-github-username \
--body "Create venv and requirements.txt"
```

---

## Project Board Management

### Create Project Board (Web)

1. Go to: https://github.com/JustInternetAI/AgentArena
2. Click **Projects** → **New project**
3. Choose **Board** template
4. Name: "Agent Arena Development"
5. Note the project number (shows as `#1`, `#2`, etc.)

### Add Issue to Project

```bash
# Replace 1 with your project number, 5 with issue number
gh project item-add 1 \
--owner JustInternetAI \
--url https://github.com/JustInternetAI/AgentArena/issues/5
```

**PowerShell (easier)**:
```powershell
# Add issue #5 to project #1
$url = gh issue view 5 --json url -q .url
gh project item-add 1 --owner JustInternetAI --url $url
```

### Add All Open Issues to Project

**PowerShell**:
```powershell
# Add all open issues to project #1
gh issue list --state open --json number -q '.[].number' | ForEach-Object {
$url = gh issue view $_ --json url -q .url
gh project item-add 1 --owner JustInternetAI --url $url
Write-Host "Added issue #$_"
}
```

**Bash**:
```bash
gh issue list --state open --json number -q '.[].number' | while read num; do
url=$(gh issue view $num --json url -q .url)
gh project item-add 1 --owner JustInternetAI --url $url
echo "Added issue #$num"
done
```

---

## Daily Workflow

### View Your Issues

```bash
# Issues assigned to you
gh issue list --assignee @me

# All open issues
gh issue list --state open

# Python-related issues
gh issue list --label "python"
```

### Update Issue

```bash
# Add label
gh issue edit 5 --add-label "in-progress"

# Assign yourself
gh issue edit 5 --assignee @me

# Close issue
gh issue close 5 --comment "Completed in PR #10"
```

### Create PR

```bash
# From current branch
gh pr create --title "Add vLLM backend" --body "Implements issue #5"

# Draft PR
gh pr create --draft --title "WIP: vLLM backend"
```

---

## Common Commands

| Action | Command |
|--------|---------|
| List issues | `gh issue list` |
| View issue | `gh issue view 5` |
| Create issue | `gh issue create` |
| Edit issue | `gh issue edit 5` |
| Close issue | `gh issue close 5` |
| List PRs | `gh pr list` |
| Create PR | `gh pr create` |
| View PR | `gh pr view 10` |
| Merge PR | `gh pr merge 10 --squash` |
| Open repo in browser | `gh repo view --web` |
| View project | `gh project list --owner JustInternetAI` |

---

## Week 1 Quick Setup

```bash
# 1. Create issues for colleague (Python work)
gh issue create --title "Setup Python environment" \
--label "python,setup,good-first-issue" \
--assignee colleague-username

gh issue create --title "Implement BaseBackend class" \
--label "python,backend,architecture" \
--assignee colleague-username

gh issue create --title "Implement FastAPI IPC server" \
--label "python,ipc,critical" \
--assignee colleague-username

# 2. View created issues
gh issue list

# 3. Create project board (via web)
# Go to: https://github.com/JustInternetAI/AgentArena/projects

# 4. Add issues to board (PowerShell)
1..3 | ForEach-Object {
$url = gh issue view $_ --json url -q .url
gh project item-add 1 --owner JustInternetAI --url $url
}

# 5. Done! View the board
gh project view 1 --owner JustInternetAI --web
```

---

## Tips

1. **Use `--web` flag** to open items in browser:
```bash
gh issue view 5 --web
gh pr view 10 --web
gh repo view --web
```

2. **Use interactive mode** (prompts for input):
```bash
gh issue create # No flags = interactive
gh pr create
```

3. **Get JSON output** for scripting:
```bash
gh issue list --json number,title,state
```

4. **Reference issues in commits**:
```bash
git commit -m "feat: add vLLM backend (#5)"
```

5. **Auto-close issues with PRs**:
```bash
gh pr create --body "Closes #5"
```

---

## Next Steps

✅ Install GitHub CLI
✅ Run `scripts\create_github_issues.bat`
✅ Create project board via web
✅ Add issues to board
✅ Start developing!

**Full documentation**: See [docs/github_cli_guide.md](docs/github_cli_guide.md)

**Backlog items**: See [docs/backlog_items.md](docs/backlog_items.md)

**Issue templates**: See [docs/github_issues.md](docs/github_issues.md)
Loading
Loading