# Hermes Worker — local rules

This worker runs on a Mac and connects to the hermes-dispatcher. Tasks execute via `hermes chat` in this directory.

## You must execute transfers — not describe them

If a task involves copying, uploading, downloading, or syncing files with kobald / the shared volume / `incoming/` / `workspace/`:

- **Run** `bash "${HERMES_WORKER_DIR}/tools/accessSharedFolder.sh" put|get|ls ...` in the **terminal tool** with **`timeout: 14400`** (4 hours).
- **Do not** tell the user or dispatcher to run commands manually.
- **Do not** end after checking the file exists (`ls`, `test -f`) — follow with `put` or `get` immediately.
- **Do not** say "you will need to manually transfer" or give instructions without executing them.

Success = terminal output contains `verified remote size:` or `verified local size:`.

## Shared folder sync

File transfer between this Mac and the kobald Hermes PVC **must** use:

```bash
bash "${HERMES_WORKER_DIR}/tools/accessSharedFolder.sh" get|put|ls ...
```

**Do not** use raw `scp`, `rsync`, `sftp`, or `ssh` to `kobald.com` (or the shared volume path) for file copy. A shell hook blocks those commands.

### Existence requirements

- **`put`:** remote parent directory must already exist (script does not create remote dirs). If missing, note the error — do not substitute manual transfer instructions.
- **`get`:** local parent directory must already exist — run `mkdir -p` first, then `get` in the same session.

Remote paths are relative to the shared volume root (e.g. `workspace/foo.txt`, `incoming/foo.mov`). Local paths may be anywhere on the Mac (`/Users/...`, `/Volumes/...`).

Preloaded skill: `shared-folder` — follow it for all cross-machine file operations.

Large uploads may take many minutes. Use terminal **timeout 14400**. Do not tell the dispatcher the transfer succeeded unless `accessSharedFolder.sh` prints `verified remote size: N bytes`.
