---
name: siteops-induction-pack
description: Assemble site induction pack from templates + crew + contractor info. Outputs a single markdown file with white-card check, SWMS sign-on, site-specific brief, contact card, emergency procedure.
status: live
created: 2026-05-06
created_by: claude-code-opsman
user_invocable: true
related:
  - "[[../_README]]"
  - "[[../_Log]]"
---

# SKILL — siteops-induction-pack

## Purpose

When LFCS arrives at a new site, every crew member needs to be inducted before tools-on. The induction pack bundles: (a) head contractor's site-specific induction document, (b) LFCS internal SWMS sign-on, (c) white card / red card / EWP ticket sighting record, (d) contact card, (e) emergency procedure summary. Currently assembled inline per site — this skill codifies the assembly so it's identical every time.

## Trigger

- "Build induction pack for [site] [crew]"
- "Induction pack [job#]"
- "Set up site induction for [crew names]"

## Inputs

- **Site name / job number** — required (e.g. "2602 Munmorah Bridge")
- **Head contractor name** — required (drives which HC induction template gets pulled)
- **Crew list** — required (names + role + ticket numbers if known)
- **Site address + emergency contacts** — optional (skill resolves from job folder if missing)

## Behaviour

1. Resolve job folder (glob `Jobs/Upcoming/<job>*` or `Jobs/Ongoing Jobs/<job>*`).
2. Read `00-brief.md` for site address, contact numbers, head-contractor identity.
3. Read `05 - Safety/05c - Inductions/_inductions-checklist.md` (create from template if missing).
4. For each crew member:
   - White card sighted? (yes/date/no)
   - Red card sighted? (if applicable)
   - EWP / forklift / first aid tickets noted
   - Site-specific induction date (TBD until inducted)
5. Assemble pack as single markdown file at:
   ```
   Jobs/<status>/<job>/05 - Safety/05c - Inductions/Induction-Pack-{YYYY-MM-DD}.md
   ```
6. Final step: emit log-event:
   ```bash
   bash scripts/log-event.sh "<agent-id>" "skill_run" "siteops-induction-pack" "ok" "<job> pack for <N> crew"
   ```

## Output format

```markdown
# Site Induction Pack — <Job> <Site>

**Date:** YYYY-MM-DD
**Head contractor:** <HC name>
**Site address:** <full address>
**Site supervisor (HC):** <name + mobile>
**LFCS contact (Rocky):** Michael McLoughlin — 04XX XXX XXX
**Emergency:** 000 (police/fire/ambulance) | Site emergency assembly: <location from HC brief>

## Crew on this site

| Name | Role | White card | Red card | Other tickets | Site induction date |
|---|---|---|---|---|---|
| <Name> | <role> | <number/date> | - | <e.g. EWP, FA, forklift> | <YYYY-MM-DD or TBD> |

## SWMS — sign-on

Each crew member must read and sign the relevant LFCS SWMS (Safe Work Method Statement) before starting.

| Name | SWMS title | Read date | Signature on file? |
|---|---|---|---|
| <Name> | <SWMS title — e.g. "Formwork Stripping"> | YYYY-MM-DD | yes/no |

## Site-specific induction (HC) — sighted by

| Name | Inducted by (HC rep) | Date |
|---|---|---|
| <Name> | <HC supervisor> | YYYY-MM-DD |

## Site emergency procedure (from HC brief)

- Emergency assembly point: <location>
- First aid kit location: <location>
- Nearest hospital: <name + address>
- Site phone: <number if separate from supervisor>

## LFCS daily routine reminders

- Toolbox talk: at start of shift, topic recorded in `05b - JSAs/_toolbox-talks.md`
- Pre-start checks: scaffold, formwork, plant — sign off in daily diary
- Incident? STOP work. Notify HC supervisor + Rocky immediately.
```

## Hard rules

- **Never claim white card sighted if not.** If a crew member can't produce a card, mark `not sighted — pending` and DO NOT include them in the inducted list. Working without white card on commercial sites is illegal.
- **Don't fabricate contact numbers.** If 00-brief.md is missing emergency contacts, mark `TBC — get from HC supervisor day 1` and surface to Rocky.
- **Append-only on `_inductions-checklist.md`** per AI Team Protocol.
- **Read-before-edit:** even template files — re-read each invocation.
- **Source of truth:** if HC has provided their own induction template, USE IT verbatim — don't substitute a generic one. Pack still wraps it with LFCS-internal sections.

## Dependencies

- Job's `00-brief.md` (site context)
- `05c - Inductions/_inductions-checklist.md` (per-job induction register — create if missing)
- LFCS SWMS library (TBD — currently per-job ad-hoc; future improvement: shared library at `lfcs-standards/SWMS/`)

## Failure modes

| Failure | Detection | Recovery |
|---|---|---|
| Job folder not found | Glob match returns 0 | Abort, ask user to specify or scaffold first via `lfcs-job-scaffold` |
| 00-brief.md missing site address | Pre-check field | Ask Rocky, write `TBC` literal otherwise |
| HC-specific induction template not in folder | Pre-check `05c` for HC PDFs | Note in pack: "HC induction document not yet received — request from <HC contact>" |
| Crew member has no ticket on file | Per-row check | Mark `not sighted — pending`; do not block pack generation |
| Output file already exists | Pre-check destination | Ask: "Regenerate or merge?" — never silently overwrite |

## Idempotency

Running on same job + same date overwrites with confirmation. Running on same job + new date creates a new dated pack (versioned trail — induction packs do drift as crew rotates).
