hermes-cron-desk · git:20261023.ef2f2f6 · 2026-10-23 · sha256 8330e99c4a263897
hermes-cron-desk git:20261023.ef2f2f6A
Immutable. This exact content never changes and is served at /api/v1/blob/8330e99c4a263897.
--- name: hermes-cron-desk description: File-bus cron state machine and Hermes profile isolation rules for PumpGrok. Use when installing profiles, running desk_state.py, or deciding which cron may fire. bots: - bot-00-chief - bot-01-scout - bot-02-risk - bot-05-rug - bot-09-journal gates: [] required_tools: - desk.brief required_data: [] permissions: max_side_effect: read network: true filesystem: none --- # Hermes Cron Desk ## L1 - Summary Isolation rules and the file-bus state machine for Hermes cron profiles. Each role runs in its own profile with no shared memory; the only shared writable surface is the desk directory. ## L2 - Method 1. Isolation: each role is `~/.hermes/profiles/<role>/` (its own HERMES_HOME). Memory, sessions, SOUL, cron, and `.env` do not cross roles. Bootstrap uses `hermes profile create <role> --no-skills` and writes `.no-bundled-skills`. Never `--clone` or `--clone-all`. 2. File bus: ``` $PUMPGROK_DESK/ desk.md engagement plus Halt leads/ SCOUT briefs/ RISK proposals/ CHIEF tickets positions/ SNIPER/EXIT/RUG (paper) journal/ append-only incidents/ RUG watch/ RUG ``` Ticket IDs are unique across every folder. Briefs and proposals reuse the lead ID. 3. Commands (pre-flight first, then the ticket verbs): ```bash pumpgrok state status --seat <role> pumpgrok ticket next pumpgrok ticket create --mint <MINT> --ticket <LEAD-ID> --status PENDING_HUMAN ``` 4. Cron owners: scout-discover, risk-audit-open-leads, chief-pickup, rug-watch-paper, chief-journal-rollup. NEVER cron SNIPER or EXIT. NEVER raise engagement from cron. If Halt is true or engagement is not `research` or `paper`, print `[SILENT]`. 5. Telegram: only the chief profile may hold TELEGRAM_BOT_TOKEN. Other profiles notify via bot-chat:chief or files. ## Failure modes - Halt true or engagement outside `research`/`paper`: the job prints `[SILENT]` and does nothing. - Cross-profile leakage (shared env or memory): refuse the run; isolation is load-bearing. - Cron attempting SNIPER/EXIT or an engagement change: refused by the job and by the CLI. ## References - State tool: `pumpgrok state status --seat <role>` (ledger halt state); `pumpgrok ticket list` (pending tickets) - CLI pre-flight: `pumpgrok state status` - Jobs: `hermes/cron/jobs.yaml`; prompts: `hermes/cron/prompts/`