# 🤖 Pi Worker

Autonomous agent that runs inside `cr-server-new`, picks up Asana tasks, and performs automated project improvements using the Pi improved agent.

## What It Does

1. **Asana Task Execution**: Polls Asana for tasks in "To Do" or "Pi Worker" sections, executes them using the Pi CLI agent, and reports results back as comments
2. **Autonomous Improvements**: Periodically analyzes the project codebase and makes improvements (code quality, security, docs, testing, performance, type safety)

## Architecture

```
Asana Board ←→ Pi Worker (cr-server-new) ←→ Pi CLI Agent ←→ Codebase
                    ↕
              Health Server (:8787)
```

## Setup

1. Copy `.env.sample` to `.env` and fill in credentials
2. `bun install`
3. `bun run dev` (local) or `bash deploy.sh` (production)

## Configuration

| Variable | Description | Default |
|----------|-------------|---------|
| `ASANA_ACCESS_TOKEN` | Asana personal access token | Required |
| `ASANA_PROJECT_GID` | Project to poll (auto-discovered if empty) | Auto |
| `PI_MODEL` | AI model to use | `claude-sonnet-4-6` |
| `POLL_INTERVAL_SEC` | Asana polling interval | `120` |
| `IMPROVEMENT_INTERVAL_SEC` | Auto-improvement interval | `3600` |

## Asana Board Setup

Create these sections in your Asana project:
- **To Do** — Tasks for Pi Worker to pick up
- **In Progress** — Currently being executed
- **Done** — Completed tasks
- **Pi Worker** (optional) — Dedicated section for Pi Worker tasks

## Health Check

```bash
curl http://localhost:8787/health
```

## Logs

Logs are written to `./logs/pi-worker-YYYY-MM-DD.log` and stdout.
