Skip to content
Back to skills

Project Setup

ASecurity

Set up a construction project — inventories files, classifies drawings/specs/schedules/registers, detects AgentCM mode, appends construction context to CLAUDE.md. Triggers: 'set up project', 'construction setup', 'classify documents'.

  • 43 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 26, 2026
devopsdatabase

Works with

  • claude code

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 5, 2026

npx -y skills add dleerdefi/claude-code-construction --skill project-setup --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Project Setup?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Project Setup
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/dleerdefi-project-setup/badge)](https://www.skillsdirectory.com/skills/dleerdefi-project-setup)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: project-setup
description: >
  Set up a construction project — inventories files, classifies
  drawings/specs/schedules/registers, detects AgentCM mode, appends
  construction context to CLAUDE.md. Triggers: 'set up project',
  'construction setup', 'classify documents'.
argument-hint: "[project-directory]"
disable-model-invocation: true
---

# Project Setup

Set up a construction project directory for use with Claude Code construction skills. This skill inventories all files, classifies construction document types, and appends construction-specific context to the project's CLAUDE.md.

Run this **after** `/init` has created the base CLAUDE.md.

## Pipeline Position
```
/init (built-in) → THIS SKILL → /spec-splitter, /sheet-splitter → /submittal-log-generator
```
Runs once per project. Identifies which Builder skills should run next.

## Workflow

```
Project Setup Progress:
- [ ] Step 1: Detect operational mode
- [ ] Step 2: Inventory and classify files
- [ ] Step 3: Present summary and recommend next actions
- [ ] Step 4: Amend project CLAUDE.md
```

### Step 1: Detect Operational Mode

Check for AgentCM: `.construction/project.yaml` at the project root.

**If present (AgentCM mode):**
1. Read `.construction/CLAUDE.md` for project navigation context
2. Query database for entity counts (take `project_id` from `.construction/database.yaml`):
   `sh .construction/query.sh "SELECT (SELECT COUNT(*) FROM sheets WHERE project_id = '{project_id}') AS sheets, (SELECT COUNT(*) FROM rooms WHERE project_id = '{project_id}') AS rooms, (SELECT COUNT(*) FROM graph_elements ge JOIN sheets s ON s.id = ge.sheet_id WHERE s.project_id = '{project_id}') AS elements"`
   Fallback: read `.construction/graph/graph_summary.yaml` if database unavailable
3. Read `.construction/index/sheet_index.yaml` for drawing inventory
4. Skip to Step 3 with instant summary — no file scanning needed

**If absent (Flat File mode):**
Continue to Step 2.

### Step 2: Inventory and Classify Files

Scan the project directory. No vision calls — use filename and folder pattern matching only.

**Classification rules:**

| Document Type | Detection Pattern |
|---|---|
| **Drawing sets** | PDFs in `drawings/`, `plans/`, or root with discipline prefixes (A-, S-, M-, E-, P-, C-, L-). PDFs > 2MB with keywords: "plan", "drawing", "bid set", "dwg". |
| **Specifications** | Folders named `Specifications/`, `specs/`, `02 - Specifications/`. PDFs with "project manual", "spec", "volume". CSI section number patterns in filenames. |
| **Schedules** | Excel/CSV files with "schedule", "CPM", "lookahead", "milestone" in name. |
| **Submittal log** | Excel files with "submittal" in name, typically in `Submittals/` or `06 - Submittals/`. |
| **RFI log** | Excel files with "RFI" in name, typically in `RFIs/` or logs folder. |
| **Change orders** | Excel/PDF files with "change order", "CO", "PCO" in name. |
| **Other** | Correspondence, photos, reports, geotechnical, environmental. |

**Also check for existing indexes:**
- `sheet_index.yaml` → drawings already indexed
- `spec_index.yaml` → specs already split
- `.construction/skills/spec_text/manifest.json` → spec text already extracted (an older version's `.construction/spec_text/` counts too: move it to `.construction/skills/spec_text/`)

### Step 3: Present Summary and Recommend Next Actions

Report what was found:

```
## Project Summary
- Drawing sets: {count} PDFs ({disciplines found})
- Specifications: {bound manual / split sections / not found}
- Schedules: {list}
- Registers: {RFI log, submittal log, CO log — found or not found}
- Other: {count} files

## Recommended Next Actions
```

**Recommendations by mode:**

| Condition | Recommendation |
|---|---|
| Bound spec manual found, not yet split | "Run `/spec-splitter` to split the project manual into individual sections and extract searchable text." |
| Bound drawing set found, flat file mode | "Run `/sheet-splitter` to split the drawing set into individual sheet PDFs and identify sheet numbers." |
| Bound drawing set found, AgentCM mode | "Split sheets via the AgentCM UI for zero-vision-cost splitting using labeled OCR data." |
| Specs already split but no text extracted | "Run `/spec-splitter` — specs are split but text extraction hasn't been done yet." |
| Submittal log needed | "Run `/submittal-log-generator` after spec text is available." |
| Specs split and text extracted | "Would you like to generate a submittal log from the specification sections? Run `/submittal-log-generator`." |

### Step 4: Amend Project CLAUDE.md

Append construction-specific context to the **project root's CLAUDE.md** (the file created by `/init`). Do NOT modify any file inside the construction plugin.

**Append format:**

```markdown
## Construction Project Context

### Document Locations
- Drawing set: {path} ({N} sheets, disciplines: {list})
- Specifications: {path} ({N} sections or "bound manual, not yet split")
- Schedule: {path or "not found"}
- RFI log: {path or "not found"}
- Submittal log: {path or "not found"}

### Status
- Operational mode: {AgentCM / Flat File}
- Sheets indexed: {yes/no}
- Specs split: {yes/no}
- Spec text extracted: {yes/no}

### Working With These Documents
- Load the `construction:construction-guide` skill before reading drawings, specs or other project documents.
- Never read construction PDFs directly; rasterize pages to PNG first (see the guide).
```

Only append — never overwrite existing CLAUDE.md content.

### What This Skill Does NOT Do

- **Does not split PDFs** — recommends `/spec-splitter` and `/sheet-splitter` instead
- **Does not use vision** — all classification is filename/folder pattern matching
- **Does not create AgentCM's `.construction/project.yaml` or its data tree** — that's AgentCM's job (the plugin's own `.construction/skills/` is created by the skills that write there)
- **Does not replace /init** — `/init` creates the base CLAUDE.md, this skill enriches it

---

## Scripts

This skill does not execute any external scripts.

Files in this skill

  • SKILL.md5.4 KB
  • agents/openai.yaml300 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.