---
title: Hermes-COO operating folder
created: 2026-05-26
updated: 2026-05-26
type: system
status: draft
drafted-by: claude-code-coo
related:
  - "[[CLAUDE]]"
  - "[[findings-2026-05-26]]"
  - "[[Hermes-as-COO-Architecture-2026-05-03]]"
  - "[[Multi-Hermes-Strategy-2026-05-06]]"
  - "[[Multi-Hermes-Rollout-Phase0-3-2026-05-07]]"
---

# Hermes-COO

This folder is the operating home of the `hermes-coo` agent profile already running on the Sydney VPS (live since 2026-05-07 per `Multi-Hermes-Rollout-Phase0-3-2026-05-07`). All state, persona, skills, inbox/outbox, and audit history live here.

## What this folder is for

- **CLAUDE.md** — the operating manual + identity (SOUL) for `hermes-coo`. Read first.
- **Inbox.md** — append-only request queue. Rocky / Cowork / CC drop requests here; COO polls every 5 min.
- **Outbox.md** — append-only surface where COO writes things Rocky needs to see (deduped into `HQQueue.md` weekly).
- **state.json** — single source of truth for COO runtime state (last tick, active dispatches, daily budget remaining, lock holders).
- **safety-rails.md** — the 10 blocked classes. Anything that smells like one of these is refused and surfaced to Telegram.
- **goals.md** — Rocky's 1-3 standing goals (he writes; COO reads every pulse).
- **goals-template.md** — empty template to copy into `goals.md`.
- **Pulse-{YYYY-MM-DD}.md** — daily pulses (comeback-protocol format), one per day.
- **dispatch-log.ndjson** — per-tick classify+route+execute trace.
- **findings-2026-05-26.md** — comprehensive audit synthesising 5 parallel agent reports (RateRight state, hibernated fleet archaeology, Hermes power-use research, RateRight platform code audit, opsman+skills audit).
- **skills/coo-*** — the COO skill bundle. Curator's protected list should include `coo-*`.
- **templates/** — request, pulse, dispatch, escalation scaffolds.
- **_Archive/** — closed requests, retired pulses (no deletions per hard rule).

## What COO is NOT for

- **Not the LFCS site assistant** — that's the `default` Hermes profile (the foreman). It stays alive, has its own SOUL.md at `/root/.hermes/SOUL.md` on the VPS. COO never edits LFCS job folders or LFCS Airtable.
- **Not a single-channel notifier** — there's already a Telegram bot (`@opsman_lfcs_bot`) for LFCS-foreman work. COO gets its own bot (`@hq_coo_bot`) so the two-agent-one-chat problem stays solved.
- **Not the Kanban dispatcher** — Hermes v0.12+ ships that natively (`/root/.hermes/kanban.db`). COO uses Kanban as the dispatch primitive, doesn't reinvent it.

## Boot sequence — every COO session, in order

1. `_System/CLAUDE.md` (the AI Team Protocol — lane rules, write protocol, append-only rule, hard rules)
2. `_System/COO/CLAUDE.md` (this folder's operating manual — persona + scope + authority)
3. `_System/COO/safety-rails.md` (blocked classes)
4. `_System/COO/goals.md` (current standing goals)
5. `_System/COO/state.json` (runtime state)
6. `_System/COO/Inbox.md` (request queue — bottom-up, oldest unresolved first)
7. `_System/HQQueue.md` (strategic queue Rocky watches)
8. Last 14 days of `01_Daily/*.md`
9. `_Brain/_Log.md` for the project the request relates to (one of `10_RateRight`, `11_OpsMan_LFCS`, `12_SiteOps`, `20_Personal`, `30_Goals`)

Read in parallel. Don't lecture about reading.

## Cron schedule — proposed

Run these from the VPS as `hermes` profile `coo` (`hermes --profile coo cron create ...`). Times in Sydney TZ (UTC+10 / UTC+11 DST).

| Cron | Schedule | Skill | Delivery |
|---|---|---|---|
| `coo-am-pulse` | `45 5 * * *` (5:45 AM) | `coo-pulse` | `telegram:7377499346` |
| `coo-eod-pulse` | `30 18 * * *` (6:30 PM, in The Window) | `coo-pulse` | `telegram:7377499346` |
| `coo-weekly-review` | `0 19 * * 0` (Sunday 7 PM) | `coo-pulse --mode weekly` | `telegram:7377499346` + vault append |
| `coo-inbox-poll` | `*/5 * * * *` (every 5 min) | `coo-inbox-poll` | local + escalate on demand |
| `coo-hunt-watchdog` | `*/30 * * * *` (every 30 min) | `coo-hunt-watch` (no-agent script) | `telegram:7377499346` only if scrapers down |
| `coo-vault-silence` | `0 9 * * *` (9 AM) | `coo-comeback` only if `_Log.md` no writes >3 days | `telegram:7377499346` |
| `coo-self-audit` | `0 2 * * *` (2 AM nightly) | `coo-self-audit` (Rivet's 5-question protocol) | vault append only |

**Pacing override:** start with `coo-eod-pulse` and `coo-inbox-poll` only. Add the AM pulse after the EOD format is tuned (probably week 2). Watchdog + silence detector go on week 3 once whitelist authority is signed off.

## Deployment steps (Rocky-confirm before each)

### Phase 0 — wire identity (Rocky, 5 min)
- Fill `goals.md` from `goals-template.md` (1-3 goals max, each with target + date + measurement source)
- Flip `30_Goals/Active.md` status from `draft-awaiting-rocky-review` to `live` (it's been draft 24 days; this is the live source of truth that COO needs to boot from)

### Phase 1 — stage SOUL + skills (me, 30 min)
- Push this folder to git → auto-sync to VPS
- On VPS: `cp -r /home/ccuser/rateright-growth/HQ-Vault/_System/COO/* /root/.hermes-coo/` (or symlink — decide based on profile expectations)
- Verify `/root/.hermes-coo/SOUL.md` symlinks to this folder's CLAUDE.md (or copy)
- `hermes --profile coo doctor` — should report all skills loaded

### Phase 2 — create COO Telegram bot (Rocky, 5 min)
- Talk to @BotFather → create `@hq_coo_bot`
- Send `/setdescription` → "Rocky's COO. Daily pulses + escalations. Read-only inbound."
- Get bot token, paste to `/root/.hermes-coo/.env` as `TELEGRAM_BOT_TOKEN`
- `hermes --profile coo gateway restart`
- Confirm `/start` works on the new bot

### Phase 3 — first manual pulse (me + Rocky, 15 min in Window)
- `hermes --profile coo cron run coo-pulse` — fires immediately
- Read the pulse on Telegram. Tune format if needed (edit `coo-pulse/SKILL.md`)
- Repeat until Rocky says "ship it"

### Phase 4 — flip on EOD cron (Rocky, 1 min)
- `hermes --profile coo cron activate coo-eod-pulse`
- Watch for 5 days. If signal:noise is good, add AM + Sunday.

### Phase 5 — whitelist authority (Rocky, gated by trust)
- See `CLAUDE.md` § Authority. Start with greylist only. Whitelist actions get enabled per-action by Rocky after he sees the dry-run version a few times.

## File-write discipline

This folder follows the AI Team Protocol (`_System/CLAUDE.md`):

- All COO daily-note appends go to `01_Daily/{today}.md` under `## HH:MM — hermes-coo — short title`.
- All COO project-log appends go to the relevant `_Brain/_Log.md` (cross-project COO entries go to `_System/_Log.md` if one exists, else inline in the daily note).
- All COO autonomous activity goes to `_AgentLog/hermes-coo-{YYYY-MM-DD}.md` in the relevant project lane.
- All skill executions emit one event to `_System/AgentLog/events.ndjson` via `scripts/log-event.sh`.
- Commit prefix: `hermes-coo: {summary}`.

## Hard rules — never violated

- Never edit per-project content files (job folders, RFI registers, bid prep docs). COO observes; lane workers (`hermes-opsman`, `hermes-rr`, `hermes-siteops`) write.
- Never send outbound human-facing messages. Drafts to Gmail Drafts OK; Send is always Rocky-gated.
- Never delete anything. `_Archive/` only.
- Never re-enable SMS. Hard no.
- Never change Airtable schema (create/alter table/field). Schema lane is `claude-code-coo` only.
- Never edit `vault/` (off-limits CC-VPS vault — different operator). HQ-Vault is the COO's vault.
- Never invent data. If a measurement source is unreachable, the pulse says "no data — {what would unblock}".

## Related vault docs

- `[[Hermes-as-COO-Architecture-2026-05-03]]` — original COO architecture draft
- `[[Multi-Hermes-Strategy-2026-05-06]]` — 6-profile rollout plan
- `[[Multi-Hermes-Rollout-Phase0-3-2026-05-07]]` — what's actually live on VPS
- `[[hermes-2026-04-30-self-audit]]` — Hermes capability inventory (v0.11 era)
- `[[hermes-skill-audit-2026-05-01]]` — Hermes skill catalog
- `[[Hunt-Approval-Bottleneck]]` — definitive root-cause for hunt failure (scrapers extract 0 contacts, not "approval bottleneck")
- `[[Truth-Audit-2026-05-02]]` — site-down emergency + Supabase/Stripe reality check
