---
title: LFCS Skill Catalog — README
created: 2026-05-03
created_by: claude-code-coo (Phase 1 build per LFCS Bid System plan)
status: live
related:
  - "[[LFCS-Bid-System-Plan-2026-05-03]]"
  - "[[chat-bootstrap/SKILL]]"
  - "[[_Log]]"
---

# LFCS Skill Catalog

Canonical source of truth for all LFCS skills. Version-controlled in vault. Discoverable by all surfaces:
- **cowork-lfcs (desktop Cowork project)** — reads directly from this folder.
- **Hermes (VPS daemon)** — rsyncs into `~/.hermes/skills/lfcs-*/` on cron (one-way, idempotent).
- **Claude Code CLI (dispatched executor)** — invoked via `claude -p` with paths into this folder.

## Naming convention

`lfcs-{verb}-{noun}` (matches existing Hermes catalog).

## SKILL.md template

Every skill follows the chat-bootstrap pattern at `chat-bootstrap/SKILL.md`:

```
# SKILL — {name}
## Purpose
## Trigger
## Behaviour
## Files to read (in order)
## Airtable behaviour
## Output format
## Hard rules
```

Optional sub-sections per skill: `## Inputs`, `## Outputs`, `## Dependencies`, `## Test fixture`, `## Failure modes`.

### `## Airtable behaviour` — mandatory as of 2026-05-04

Every skill must declare its Airtable touchpoints explicitly. Format:

```
## Airtable behaviour
- **Reads:** <which tables/records this skill queries before doing work>
- **Writes:** <which tables/records this skill upserts AFTER vault markdown is committed>
- **Idempotency:** <how the skill handles re-runs (search by primary field, then update or create)>
```

Skills with no Airtable touchpoints write `Reads: none` / `Writes: none` — the section is still required so the relationship is explicit, not silent. All writes are routed through the `lfcs-airtable-sync` adapter skill (single source of write logic).

## Regression fixture — non-negotiable

**Every new or modified skill MUST be tested against `Jobs/Upcoming/2602 - Dec Projects - Munmorah Bridge/`** before going live. The 2602 outputs (`00-brief.md`, `00-Bid-Prep.md`, `Drawing-Index.md`, `Pre-Call-Questions-2026-05-05.md`, `Inclusions-Exclusions.md`) are the canonical golden-output regression set, scaffolded by HQ on 2026-05-03 evening as the proof-of-concept for the entire bid-system workflow.

A new skill must either reproduce or improve on what those outputs contain when run on the same 2602 inputs. Any regression (less detail, missing tags, broken cross-references) blocks deployment.

This rule survives 2602 going to award/loss — keep the folder as a frozen fixture even after the bid closes.

## Catalog change log

Append-only changes tracked in `_Log.md`. Format:

```
- YYYY-MM-DD HH:MM — {agent} — {skill} v{N} — {change} — reason: {one-liner}
```

## Maintenance

Per LFCS Bid System plan (Section 8 + 10): 30-min monthly audit on the first weekend of each month. Cross-reference each SKILL.md against:
- Current vault structure (folder-spec.md)
- Current chat-bootstrap pattern
- Linked dependency files (rate-card.md, element-taxonomy.md)
- Last-touched date in `_Log.md`

Flag any skill silent for 90+ days. Bigger refactors (model upgrades, schema migrations) batched quarterly.

## Lane reminder

| Surface | Authoring rights | Read rights |
|---|---|---|
| cowork-hq | strategic + cross-project skills only (this catalog is LFCS-scoped) | full |
| cowork-lfcs | full authoring | full |
| Claude Code CLI | dispatched edits via Rocky-approved task | full |
| Hermes (autonomous) | NEVER author skills | full read for invocation |

Per AI Team Protocol: append to `_Log.md` for every skill change. Daily note + project `_Log.md` get the session-level entry per the standard write protocol.
