# Timmy Operations — What Runs the Workforce

## ACTIVE SYSTEM: Hermes + timmy-config sidecar
- **Harness:** Hermes
- **Config repo:** Timmy_Foundation/timmy-config
- **Workspace repo:** Timmy_Foundation/timmy-home
- **Orchestration:** Huey + SQLite via `timmy-config/orchestration.py` and `timmy-config/tasks.py`
- **Target repos:** Timmy_Foundation/the-nexus, Timmy_Foundation/timmy-home, Timmy_Foundation/timmy-config
- **Training data home:** `~/.timmy/training-data/`

## DEPRECATED — DO NOT RESTORE
- bash loops (claude-loop.sh, gemini-loop.sh, timmy-orchestrator.sh)
- workforce-manager.py (bash version)
- nexus-merge-bot.sh
- agent-loop.sh
- `deploy.sh --restart-loops`

These crash-loop and produce zero work. They were restored by mistake
on 2026-03-25 causing a regression. The Hermes + timmy-config sidecar
replaces them.

The scripts in `timmy-config/bin/` are live utility scripts for the sidecar.
What is dead is the old always-on bash loop model.

## How to check what's running
```bash
# Hermes gateway / API should be up
lsof -iTCP:8642 -sTCP:LISTEN

# Sessions should be landing in ~/.hermes/sessions
ls -lt ~/.hermes/sessions | head

# DPO exports should not lag far behind new sessions
~/.hermes/bin/pipeline-freshness.sh

# Should be EMPTY (no bash loops)
ps aux | grep -E "claude-loop|gemini-loop|timmy-orchestrator" | grep -v grep
```

## Cron Jobs (Hermes built-in)
- Health Monitor: every 5m, haiku (not opus!)
- DPO export / training support jobs: explicit model, explicit task, no hidden defaults
- All crons MUST specify model explicitly. Never inherit default.

## Proof Standard
- visual changes require screenshot proof
- keep screenshots and binary media out of Gitea backup unless explicitly required
- CLI/verifiable changes must reference the exact command output, log path, or observable state proving the claim
- see `CONTRIBUTING.md` for the merge gate
