# Hermes Sidecar Deployment Checklist

Updated: April 4, 2026

This checklist is for the current local-first Timmy stack, not the archived `uni-wizard` deployment path.

## Base Assumptions

- Hermes is already installed and runnable locally.
- `timmy-config` is the sidecar repo applied onto `~/.hermes`.
- `timmy-home` is the workspace repo living under `~/.timmy`.
- Local inference is reachable through the active provider surface Timmy is using.

## Repo Setup

- [ ] Clone `timmy-home` to `~/.timmy`
- [ ] Clone `timmy-config` to `~/.timmy/timmy-config`
- [ ] Confirm both repos are on the intended branch

## Sidecar Deploy

- [ ] Run:
  ```bash
  cd ~/.timmy/timmy-config
  ./deploy.sh
  ```
- [ ] Confirm `~/.hermes/config.yaml` matches the expected overlay
- [ ] Confirm `SOUL.md` and sidecar config are in place

## Hermes Readiness

- [ ] Hermes CLI works from the expected Python environment
- [ ] Gateway is reachable
- [ ] Sessions are being recorded under `~/.hermes/sessions`
- [ ] `model_health.json` updates successfully

## Workflow Tooling

- [ ] `~/.hermes/bin/ops-panel.sh` runs
- [ ] `~/.hermes/bin/ops-gitea.sh` runs
- [ ] `~/.hermes/bin/ops-helpers.sh` can be sourced
- [ ] `~/.hermes/bin/pipeline-freshness.sh` runs
- [ ] `~/.hermes/bin/timmy-dashboard` runs

## Heartbeat and Briefings

- [ ] `~/.timmy/heartbeat/last_tick.json` is updating
- [ ] daily heartbeat logs are being appended
- [ ] morning briefings are being generated if scheduled

## Archive Pipeline

- [ ] `~/.timmy/twitter-archive/PROJECT.md` exists
- [ ] raw archive location is configured locally
- [ ] extraction works without checking raw data into git
- [ ] `checkpoint.json` advances after a batch
- [ ] DPO artifacts land under `~/.timmy/twitter-archive/training/dpo/`
- [ ] `pipeline-freshness.sh` does not show runaway lag

## Gitea Workflow

- [ ] Gitea token is present in a supported token path
- [ ] review queue can be listed
- [ ] unassigned issues can be listed
- [ ] PR creation works from an agent branch

## Final Verification

- [ ] local model smoke test succeeds
- [ ] one archive batch completes successfully
- [ ] one PR can be opened and reviewed
- [ ] no stale loop-era scripts or docs are being treated as active truth

## Rollback

If the sidecar deploy breaks behavior:

```bash
cd ~/.timmy/timmy-config
git status
git log --oneline -5
```

Then:
- restore the previous known-good sidecar commit
- redeploy
- confirm Hermes health, heartbeat, and pipeline freshness again
