---
name: foil-management
description: FOIL — Focus, Operational status, Issues, Log. Daily status board for cross-agent visibility. Read at session start, update through the day, morning digest via Telegram. Replaces informal "what's happening" queries.
version: 1.0.0
category: ops
tags: [daily-status, vault, cross-agent, hermes, opsman]
metadata:
  hermes:
    requires_toolsets: [terminal, telegram]
    config:
      - key: foil.vault_root
        description: Root of the HQ vault — parent of the project FOIL folders.
        default: "/home/ccuser/rateright-growth/HQ-Vault"
      - key: foil.projects
        description: List of project slugs that each have a FOIL.md (11_OpsMan_LFCS, 10_RateRight, 12_SiteOps, 20_Personal).
        default: ["11_OpsMan_LFCS", "10_RateRight", "12_SiteOps", "20_Personal"]
recurrence: daily — morning digest at 8am AEST
---

# FOIL Management

FOIL = Focus, Operational status, Issues, Log. A daily status board that lives in the vault so every agent (Hermes, OpsMan, Claude Code sessions) can see what's active without asking Rocky.

## Trigger

- **Session start:** read the relevant FOIL before doing any work
- **Morning cron (8am AEST):** send digest of all FOIL files to Rocky via Telegram
- **Rocky says "update FOIL" / "log" / "what's happening":** capture and update
- **Mode switch detected:** update FOIL when Rocky changes context (site → office → personal)

## Boot sequence — read FOIL first

Before any meaningful work, read the relevant project's FOIL.md:

```
{foil.vault_root}/{project}/FOIL.md
```

If the file doesn't exist, create it from the template below.

## Mode detection

Rocky's current context is detected from trigger words in his messages:

| Trigger word(s) | Mode | What to log |
|---|---|---|
| "site", "on site", "site manager" | `site` | Field work, superintendents, physical progress, deliveries |
| "office", "project manager", "pricing", "admin" | `office` | Bids, RFIs, variations, Liam coordination, spreadsheet work |
| "personal", "home", "family", "sauna" | `personal` | Non-work items, house, youth, health, social |
| No trigger | `office` | Default — assume LFCS work unless context says otherwise |

Mode labels go in the FOIL under `## Mode:` so it's always clear what's active.

## FOIL.md template

```markdown
# {PROJECT} FOIL — {YYYY-MM-DD}

## Mode
[site | office | personal]

## Focus
What Rocky is working on right now — one line.

## Active work
- Bullet list of current tasks, jobs, or activities
- Include time spent if known (e.g. "~2hrs CloudCode work")

## Blockers
- Anything stopping progress
- Include who's responsible if known

## Skills to check
- List any LFCS skills that ran or need testing
- e.g. boq-parse — tested / not tested this week

## Just Done
- What was completed in this session
- Include duration if known

## Next
- What comes after current activity
- Include timing if known (e.g. "7pm: site visit with Liam")

## Evening / Tomorrow
- Planned activities for later today or next day
```

## Daily capture workflow

1. Rocky voices what he's doing → I capture into the relevant FOIL under `Active work` or `Just Done`
2. If a blocker is hit → log under `Blockers` with what would unblock it
3. If a skill runs → note under `Skills to check` with `ok/fail/warn`
4. At session end → append a timestamped entry to `01_Daily/YYYY-MM-DD.md`
5. Commit vault changes with `hermes: FOIL update {YYYY-MM-DD}`

## Morning digest (8am AEST cron)

**CRITICAL: Send as inline Telegram text only — NEVER as a .md attachment or file.**

Rocky cannot read .md files in Telegram on his phone. The digest must be plain text pasted directly into the chat, max ~6 lines per project section. No attachments, no tables, no markdown bullets.

If the digest is too long for one message, send LFCS section first, then RateRight, then Personal — as separate messages. Never compress into an attached file.

Format each section:

```
LFCS — {today}
Mode: {mode} | Focus: {one line}
Active: {active work — 1-2 items max}
Blockers: {blockers or "none"}
Next: {next activity with time if known}
```

Plain sentences only. No bullet characters, no dashes as list markers. Max 6 lines per project.

## Crew SSH access (for laptop dispatch)

When Rocky opens the laptop, Hermes can SSH in directly to queue tasks:

```bash
ssh -i /root/.ssh/id_hermes_ed25519 mclou@laptop-cd8df7fs "<command>"
```

User is `mclou` (Windows Administrator), NOT `root`. `tailscale ssh` does NOT work on Windows — use plain SSH via hostname.

See `chief-of-staff/references/ssh-access.md` for the full access map.

## Vault path conventions

- LFCS: `HQ-Vault/11_OpsMan_LFCS/FOIL.md`
- RateRight: `HQ-Vault/10_RateRight/FOIL.md` (create if missing)
- SiteOps: `HQ-Vault/12_SiteOps/FOIL.md` (create if missing)
- Personal: `HQ-Vault/20_Personal/FOIL.md` (create if missing)
- Daily notes: `HQ-Vault/01_Daily/YYYY-MM-DD.md`

## Crew SSH access for laptop dispatch

Hermes can SSH into Rocky's laptop to dispatch Claude Code tasks. See `chief-of-staff/references/laptop-dispatch.md` for the full reference. Summary:

```bash
ssh -i /root/.ssh/id_hermes_ed25519 mclou@laptop-cd8df7fs "<command>"
```
- User: `mclou` (Windows Administrator, NOT root)
- Use hostname `laptop-cd8df7fs`, not IP `100.108.207.15`
- `tailscale ssh` does NOT work on Windows
- For Claude Code work: run from VPS (API key is set there), not laptop

## Morning digest (8am AEST cron)

**CRITICAL: Send as inline Telegram text only — NEVER as a .md attachment or file.**

Rocky cannot read .md files in Telegram on his phone. The digest must be plain text pasted directly into the chat, max ~6 lines per project section. No attachments, no tables, no markdown bullets.

If the digest is too long for one message, send LFCS section first, then RateRight, then Personal — as separate messages. Never compress into an attached file.

Format each section:

```
LFCS — {today}
Mode: {mode} | Focus: {one line}
Active: {active work — 1-2 items max}
Blockers: {blockers or "none"}
Next: {next activity with time if known}
```

Plain sentences only. No bullet characters, no dashes as list markers. Max 6 lines per project.

## Response style

Rocky prefers bulleted, tight responses — not paragraphs of explanation. Log in bullets; confirm in 1–2 lines.

## Pitfalls

1. **FOIL file missing** — create from template immediately, don't skip. Empty FOIL is worse than no FOIL.
2. **Mode not updated** — if Rocky is clearly in a different mode than the FOIL shows, update the `## Mode:` line and note the switch.
3. **Personal FOIL neglected** — Rocky's personal life (house move, family, health) matters to him and gets logged. Create `20_Personal/FOIL.md` if it doesn't exist.
4. **Morning digest too long** — max 6 lines per project section. If there's too much content, summarise harder rather than cut.