Project Setup

SkillFiles & storage

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'.

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the Project Setup skill

What this skill tells your AI

The instructions your AI receives, as published by dleerdefi/claude-code-construction in skills/project-setup/SKILL.md and read by ahel’s review.

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 (read query_command from .construction/database.yaml): {query_command} -c "SELECT (SELECT COUNT(*) FROM sheets WHERE project_id = '{id}') AS sheets, (SELECT COUNT(*) FROM rooms WHERE project_id = '{id}') AS rooms, (SELECT COUNT(*) FROM graph_elements ge JOIN sheets s ON s.id = ge.sheet_id WHERE s.project_id = '{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 TypeDetection Pattern
Drawing setsPDFs in drawings/, plans/, or root with discipline prefixes (A-, S-, M-, E-, P-, C-, L-). PDFs > 2MB with keywords: "plan", "drawing", "bid set", "dwg".
SpecificationsFolders named Specifications/, specs/, 02 - Specifications/. PDFs with "project manual", "spec", "volume". CSI section number patterns in filenames.
SchedulesExcel/CSV files with "schedule", "CPM", "lookahead", "milestone" in name.
Submittal logExcel files with "submittal" in name, typically in Submittals/ or 06 - Submittals/.
RFI logExcel files with "RFI" in name, typically in RFIs/ or logs folder.
Change ordersExcel/PDF files with "change order", "CO", "PCO" in name.
OtherCorrespondence, 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:

ConditionRecommendation
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:

## 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 .construction/ directory — that's AgentCM's job
  • Does not replace /init — /init creates the base CLAUDE.md, this skill enriches it

Scripts

This skill does not execute any external scripts.

Signals

GitHub stars
43
Forks
13
Last commit
Oct 2026
Advanced
Item type
skill
Key
project-setup-dleerdefi
Source
github.com/dleerdefi/claude-code-construction