---
pageType: source
id: source.robotics-team-agent
title: robotics-team-agent
sourceType: local-file
sourcePath: /home/topher/.openclaw/workspace-crash-bot/projects/robotics-team-agent.md
ingestedAt: 2026-05-02T21:20:34.979Z
updatedAt: 2026-05-02T21:20:34.979Z
status: active
growth: seed
---

# robotics-team-agent

## Source
- Type: `local-file`
- Path: `/home/topher/.openclaw/workspace-crash-bot/projects/robotics-team-agent.md`
- Bytes: 3361
- Updated: 2026-05-02T21:20:34.979Z

## Content
````text
# Robotics Team Agent

**Status:** ✅ Complete
**Completed:** 2026-04-15

> This project is done. The Gitea server is set up, mirrors are running, and the architecture is in place. Keeping this file for reference.

## Original Context
- **User:** Considering a dedicated OpenClaw instance OR a new isolated agent
- **Context:** Losing programming coach next year; user is build/mechanical

## Team Details
- **Grade levels:** 9-12
- **Language:** Java
- **Libraries:** YAGSL (swerve), PhotonVision (vision)
- **Current sensors:** AprilTags (considering expansion to object detection)
- **Hardware:** RobotRIO now, moving to Pi-based next year

## Requirements for Team Agent
1. **Isolation** — Separate from "brewery side" (main household)
2. **GitHub access** — Separate repo for team code
3. **Google Drive** — For team documents/resources
4. **Capabilities:**
   - Code audits
   - Java/WPILib/YAGSL code review
   - Teaching/debugging for students
   - PhotonVision integration help

## Model Recommendation
- Ollama cloud (qwen2.5-coder:14b for code review, or 7b for speed)
- Or local on Pi: qwen2.5-coder:7b

## Notes
- Students should learn, not just get answers — guide them to solutions
- Seniors can mentor younger students
- Useful for explaining PID, state machines, odometry, vision pipelines

## Decision Pending
- Dedicated instance vs. add new agent to existing OpenClaw
- Not yet implemented

## Alternative Git Hosts (school blocks github.com specifically)
- [x] **Gitea** — Self-hosted on CasaOS server ✓

## Gitea Setup - Complete (2026-03-12)

### External Access
- **URL:** http://2890.duckdns.org:3002
- **Port:** 3002 (TCP, port forwarded)
- **DDNS:** 2890.duckdns.org → 174.206.100.116
- **Status:** ✅ Externally accessible
- **User:** TopherSlater

### Mirrored Repos (from GitHub)
| Repo | URL | Status |
|------|-----|--------|
| YAGSL | `http://2890.duckdns.org:3002/TopherSlater/YAGSL` | ✅ |
| photonvision | `http://2890.duckdns.org:3002/TopherSlater/photonvision` | ✅ |
| allwpilib | `http://2890.duckdns.org:3002/TopherSlater/allwpilib` | ✅ |

### Mirror Method
```bash
# Clone bare, push branches+tags only (skip PR refs)
git clone --bare https://github.com/ORG/REPO.git REPO-mirror
cd REPO-mirror
git remote set-url origin https://USER:TOKEN@localhost:3002/USER/REPO.git
git push --all origin
git push --tags origin
```

### Auto-Sync Script
- **Location:** `/opt/gitea-mirrors/sync.sh` (on CasaOS server)
- **Auth:** Gitea token embedded (no password prompts)
- **Cron:** `*/30 * * * * /opt/gitea-mirrors/sync.sh` (every 30 min)
- **Status:** ✅ Tested and working

### Architecture
- **Home server** runs Gitea + syncs with GitHub
  - Pulls libraries (YAGSL, PhotonLib, etc.) from GitHub
  - Pushes team code to GitHub for outside mentors
- **Students** pull/push only from local Gitea (never touch GitHub)
- **Outside mentors** access via Gitea directly

### TODO
- [ ] Test student access from school network
- [ ] Create team code repo in Gitea
- [ ] Verify mirrors sync properly over time
- [ ] Configure team repo access
- [ ] Mirror YAGSL + dependencies from GitHub to Gitea
  - YAGSL
  - PhotonLib
  - WPILib (via vendor JSON - check if still needed)
  - Other key dependencies
- [ ] Ensure Gradle is available locally (WPILib distribution or standalone)
- [ ] Test build from school network

````

## Notes
<!-- openclaw:human:start -->
<!-- openclaw:human:end -->

## Related
<!-- openclaw:wiki:related:start -->
### Referenced By

- [README](sources/readme.md)
<!-- openclaw:wiki:related:end -->
