---
name: lfcs-rfi-status
description: List open RFIs across active LFCS jobs, sorted by priority and days pending.
version: 0.1.0
metadata:
  hermes:
    tags: [lfcs, construction, rfi, communication]
    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 RFI Status

## When to use

Rocky says: "RFI status", "open RFIs", "what's pending from [client]", "what to chase", or `/lfcs-rfi-status [job]`.

## Procedure

1. For each ongoing job (or the named one), read `<job>/06 - Correspondence/06b - RFIs/_REGISTER.md`.
2. Filter rows where `Status` is `Pending`, `Sent`, or `Drafted` (any non-resolved state).
3. Group by category (A = mobilisation blockers, B = scope clarification, C = commercial).
4. For each row, calculate days pending = today's date - `Date out` (if Sent) or `today` if still TBD.
5. Sort: Cat A blockers first (most urgent), then by days pending (oldest first).

## Output format

```
🔧 01-2275 Hornsby — 12 RFIs pending

🚨 Cat A (mobilisation blockers): 4
  A1 — Sub-base certification (sent 2 days ago, no reply)
  A3 — Pump booking (sent 2 days, no reply)
  A6 — Connolly joint delivery (TBD, not yet sent)
  A8 — HammerTech induction times (sent 2 days, no reply)

🟡 Cat B (scope): 6 — see register
🟢 Cat C (commercial): 2 — see register

Action: chase A1, A3, A8 with Hasibul today.
```

## Pitfalls

- Don't list every Cat B/C item — just the count + "see register". Cat A is the only one that needs full bullet listing.
- "Days pending" should always be calculable; if Date out is TBD, say "not yet sent" rather than computing 0.
- If 0 RFIs pending → reply: "🟢 All RFIs resolved. Nothing to chase."

## Verification

After replying:
1. Days-pending arithmetic: pick any one row at random and recompute manually. If off by >1 day, abort and re-parse Date-out fields.
2. Cat A count in the headline must equal the number of bullets listed; mismatch = abort.
3. If "0 pending" reported, double-check `Status` column accepted only `Resolved` / `Closed` — typos like `Done` or `Replied` should still count as resolved; if uncertain, list them as "pending review".
