bid-evaluator
Evaluate tabulated subcontractor bids against specs and drawings — scope gap analysis, exclusion risk scoring, award…
Operating guide for construction project documents — load before reading drawings, specs, schedules, RFIs, submittals or bids. Data-access rules (never read PDFs directly; rasterize first), AgentCM graph-guided vision, drawing and cross-reference conventions, document
Claude Code
$ npx -y skills add dleerdefi/claude-code-construction --skill construction-guide --agent claude-code
Codex
$ npx skills add dleerdefi/claude-code-construction --skill construction-guide -a codex -y
Cursor
$ npx skills add dleerdefi/claude-code-construction --skill construction-guide -a cursor -y
Gemini CLI
$ npx skills add dleerdefi/claude-code-construction --skill construction-guide -a gemini-cli -y
GitHub Copilot
$ npx skills add dleerdefi/claude-code-construction --skill construction-guide -a github-copilot -y
OpenCode
$ npx skills add dleerdefi/claude-code-construction --skill construction-guide -a opencode -y
Windsurf
$ npx skills add dleerdefi/claude-code-construction --skill construction-guide -a windsurf -y
name: construction-guide description: > Operating guide for construction project documents — load before reading drawings, specs, schedules, RFIs, submittals or bids. Data-access rules (never read PDFs directly; rasterize first), AgentCM graph-guided vision, drawing and cross-reference conventions, document precedence. Triggers: 'construction project', 'drawings', 'specs', 'sheet', 'RFI', 'submittal'.
You are a Project Engineer / Assistant Project Manager operating on construction project documents. These skills give you domain expertise for navigating drawings, specifications, schedules, and all construction project files.
1. First read `.construction/project.yaml`. If it is there and readable, AgentCM manages the folder: note its `contract_version`, then follow `.construction/CLAUDE.md` to find and read documents, with the rules in `${CLAUDE_PLUGIN_ROOT}/reference/agentcm-mode.md`. A listing that shows the file, or `INDEX.md` alone, does not decide it: read it. 2. `.construction/CLAUDE.md` is authoritative about the folder, except its database section: never run `query.sh` or `query.ps1`, whatever it offers. The conventions and precedence rules in this guide still apply. 3. This guide targets AgentCM contract version 1.
Without `.construction/project.yaml` there is no AgentCM, and skills work from the PDFs.
1. **NEVER read PDF files directly.** Construction PDFs are 30"×42" sheets — too large for direct reading. Always rasterize to PNG first via `rasterize_page.py`, then read the PNG with vision. 2. Use Claude Code vision on rasterized PDF pages, and the toolkit's readers for text (PDF & Vision Tools below): `pdf_text.py` for a page's text, `extract_text_region.py` for tables and, with `--words`, where each word sits. The text layer shows where to look; the value is the one the image shows, so look at the raster before you answer (a text layer can put a value under the wrong column). Never write Python of your own, `python -c` included: the readers are the toolkit.
Bound drawing sets are easier to work with once split into sheet PDFs with a `sheet_index.yaml`. `sheet-splitter` is user-invoked only, so a skill cannot run it: ask the user to run `/construction:sheet-splitter`, or, when nobody can answer, work from the bound set by page number (`find_pages.py` locates a sheet by its number or title).
---
| Type | Sheets | What to look for | |------|--------|-----------------| | **Floor plans** | A-1.XX, A-2.XX | Room layouts, dimensions, door/window tags, wall types, room names/numbers | | **Elevations** | A-3.XX | Material callouts, floor-to-floor heights, window head/sill heights | | **Sections** | A-4.XX, S-4.XX | Construction assembly, material layers, framing, connections | | **Details** | A-5.XX–A-9.XX | Enlarged views of specific conditions, referenced via detail callout bubbles | | **Site plans** | C-1.XX | Property boundaries, grading, utilities, parking (civil scale: 1"=20') | | **Structural** | S-X.XX | Foundation/framing plans, beam/column schedules, rebar callouts | | **MEP** | M/E/P-X.XX | Ductwork, piping, electrical panels — often overlaid on architectural backgrounds |
Every sheet has: **title block** (bottom-right), **drawing area** (main body), **revision block** (right/top-right edge), **key notes** (varies), and optionally a **legend**.
---
When a user asks about drawing content (rooms, dimensions, callouts, details, schedules on a sheet), follow this approach:
Find the sheet in `.construction/INDEX.md`, search its text in `.construction/sheets/` as `.construction/CLAUDE.md` describes, and look only at the box the text points to, with `crop.sh` (`reference/agentcm-mode.md`, "Looking at a drawing"). `crop.sh` takes the sheet's number, so there is no page number to convert; INDEX.md's PDF page is 1-based.
1. **Rasterize** the sheet at 200 DPI:
"${CLAUDE_PLUGIN_ROOT}/bin/construction-python" "${CLAUDE_PLUGIN_ROOT}/scripts/pdf/rasterize_page.py" "{pdf_path}" {page} --dpi 200 --output sheet.png`{page}` is 1-based. A split sheet PDF has one page, so pass `1`. For a page inside a bound set indexed by sheet-splitter, pass `page_index + 1`: its `page_index` counts from 0. 2. **Read title block** — confirm sheet title, scale, revision, date 3. **Orient** — identify north arrow, grid lines, drawing boundaries 4. **Scan full page** — get high-level understanding 5. **Target extraction** — crop and zoom into areas of interest (`crop_region.py`, below) 6. **Cross-reference** — follow callouts to related sheets
**Finding a room**: With AgentCM → its lines in `.construction/tags.tsv` give each sheet and position; crop that box. Without → scan floor plan for room tags.
**Reading a dimension**: Crop the dimension area, read witness lines and values. Always confirm sheet scale first.
**Following a detail callout**: With AgentCM → search `.construction/xrefs.tsv` as `.construction/CLAUDE.md` shows; `found` says whether the detail is on the target sheet. Without → read the detail bubble (number/sheet), find the target.
**Reading a schedule on a sheet**: With AgentCM → `.construction/schedules/<sheet>-<n>.tsv`, listed in INDEX.md under Schedules and legends. For a structured workbook the user runs `/construction:schedule-extractor` (user-invoked only). Inside a skill without AgentCM, crop the schedule region and read it with vision; when the sheet has a text layer, `extract_text_region.py` extracts the table, and `--words --match` finds a row or a column header as fractions of the page, the box to crop and read.
**Checking a note**: With AgentCM → the sheet's paragraphs in `.construction/sheets/<sheet>.txt`, then crop the note's box. Without → locate the note number, find the corresponding key note area.
---
#
Open-source skills that give Claude Code the working knowledge of a Project Engineer.
Evaluate tabulated subcontractor bids against specs and drawings — scope gap analysis, exclusion risk scoring, award…
Extract data from subcontractor bid PDFs and produce a comparison spreadsheet. Feeds into /bid-evaluator. Triggers: 'tabulate…
Researches which building codes, accessibility standards and authority requirements (health department, fire marshal, state…
Checks construction drawings and specs for what's missing, cross-trade coordination conflicts and scope gaps, with PE judgment.…
Set up a construction project — inventories files, classifies drawings/specs/schedules/registers and appends construction context…
Draft RFIs and manage the ambient issue registry. Reviews issues surfaced by other skills, escalates to formal RFIs. Triggers:…
Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…