---
name: lfcs-eod-summary
description: Generate end-of-day summary for the active LFCS job(s). On-demand version of the 17:00 cron.
version: 0.1.0
metadata:
  hermes:
    tags: [lfcs, construction, eod, summary, reporting]
    category: domain
    requires_toolsets: [terminal]
    config:
      - key: lfcs.jobs_root
        description: Root directory holding active LFCS job folders.
        default: "/home/ccuser/opsman-work/Jobs/Ongoing Jobs"
---

# LFCS EOD Summary

## When to use

Rocky says: "EOD summary", "today's summary", "wrap up", or `/lfcs-eod-summary`.
Also runs at 17:00 daily via cron.

## Procedure

For each active job — check BOTH `lfcs.jobs_root/Ongoing Jobs/` AND `lfcs.jobs_root/Upcoming/` (jobs with `start_date` within ±7 days are active; also check jobs manually flagged as active). A job in `Upcoming/` that has started site work is still active — do not skip it.

1. Read today's diary file: `<job>/07 - Site Documents/07d - Daily Diary/YYYY-MM-DD.md`. If missing → flag "no diary entries today" but still continue.
2. Read `<job>/Job-Tracker.md` — count today's hours rows added, materials rows added, costs running total.
3. Run docket check (see `lfcs-docket-check` skill).
4. Read `<job>/06 - Correspondence/06b - RFIs/_REGISTER.md` — count Cat A still pending.
5. Read `<job>/04 - Programme and Scheduling/programme-24wk.md` — what's planned for tomorrow.

## Output format

Tight 5-7 line summary per job. Example:

```
🔧 EOD 2026-04-30 — 01-2275 Hornsby:
• Diary: 1 entry, 3 photos
• Hours: Tomek 8.0h, Filip 8.0h, Rocky 6.0h (total $1,624)
• Materials in: 30 sheets formply, SL72 mesh starter pack
• Docket: ⚠ NOT YET — sign before leaving site
• Tomorrow: Stair forming Day 2; pump confirmed for Friday
• RFIs: 4 Cat A still pending (sub-base, pump, mix, induction)
```

## Pitfalls

- Don't repeat info Rocky already saw earlier today. Just deltas.
- On the cron-fired version (17:00 daily): if no activity at all, reply with one line ("No site activity today. Pre-mob day.") rather than a long empty template.
- Leverage the docket-check skill — don't reimplement.
- If multiple ongoing jobs, summarise each separately, separated by blank line.

## Verification

After replying:
1. Reply ≤ 7 lines per active job. If longer, trim before sending.
2. Each numeric in the summary (hours, $) must trace back to a specific row in `Job-Tracker.md` — if you canʼt cite the row, mark "(unverified)" rather than guess.
3. Cron-fired version: confirm the trigger fired at ~17:00 Sydney time by checking `~/.hermes/cron/` last-run log; if late by >30 min, append a note to today's diary.
