bid-evaluator
Evaluate tabulated subcontractor bids against specs and drawings — scope gap analysis, exclusion risk scoring, award…
Expert PE review of a submittal (shop drawings, product data, samples, equipment brochures) against specs, drawings, code questions and trade coordination. Produces findings with both sources, trade routing and a completeness gate. Triggers: 'review submittal', 'review shop
Claude Code
$ npx -y skills add dleerdefi/claude-code-construction --skill submittal-review --agent claude-code
Codex
$ npx skills add dleerdefi/claude-code-construction --skill submittal-review -a codex -y
Cursor
$ npx skills add dleerdefi/claude-code-construction --skill submittal-review -a cursor -y
Gemini CLI
$ npx skills add dleerdefi/claude-code-construction --skill submittal-review -a gemini-cli -y
GitHub Copilot
$ npx skills add dleerdefi/claude-code-construction --skill submittal-review -a github-copilot -y
OpenCode
$ npx skills add dleerdefi/claude-code-construction --skill submittal-review -a opencode -y
Windsurf
$ npx skills add dleerdefi/claude-code-construction --skill submittal-review -a windsurf -y
name: submittal-review description: > Expert PE review of a submittal (shop drawings, product data, samples, equipment brochures) against specs, drawings, code questions and trade coordination. Produces findings with both sources, trade routing and a completeness gate. Triggers: 'review submittal', 'review shop drawings'. argument-hint: "<submittal.pdf> [--section \"12 35 53\"] [--resubmittal-of <review_id>]" disable-model-invocation: true
Review a submittal the way an experienced Project Engineer does, then hand the PE a draft GC review they can trust. The trust comes from four things:
**What it produces:** findings with sources and actions, a suggested GC disposition, routing to the trades that must act and by when, code and authority questions, and what could not be verified. **What it never does:** approve, stamp or send anything. The PE decides the disposition and sends the review.
The procedure is the same for every CSI division. Your knowledge of the trade supplies the checks. `references/review-lens.md` lists what reviews most often skip: package questions, cross-trade handoffs, and code and authority questions.
| Script | Location | Purpose | |---|---|---| | `find_pages.py` | `${CLAUDE_PLUGIN_ROOT}/scripts/pdf/` | Index a large submittal once; find the pages for each element | | `check_review.py` | `${CLAUDE_SKILL_DIR}/scripts/` | Write review records; prove the review is complete | | `export_submittal_review.py` | `${CLAUDE_SKILL_DIR}/scripts/` | Build the Excel review, suggested disposition and markup items | | `annotate_pdf.py` | `${CLAUDE_PLUGIN_ROOT}/scripts/pdf/` | Write review clouds and notes onto a copy of the submittal | | `rasterize_page.py`, `crop_region.py`, `extract_text_region.py` | `${CLAUDE_PLUGIN_ROOT}/scripts/pdf/` | Read submittal and drawing pages | | `pdf_text.py` | `${CLAUDE_PLUGIN_ROOT}/scripts/pdf/` | Text of a submittal file; of a spec page AgentCM did not read, with `--pages` | | `issue_manager.py` | `${CLAUDE_PLUGIN_ROOT}/scripts/` | Log design-team questions as issues for `rfi-drafter` | | `write_finding.py` | `${CLAUDE_PLUGIN_ROOT}/scripts/graph/` | A finding in `.construction/skills/submittal-review/findings/` (both modes) | | `corrections_append.py` | `${CLAUDE_PLUGIN_ROOT}/scripts/` | AgentCM mode: record a correction of AgentCM's data (`reference/agentcm-mode.md`) |
Run every script through `"${CLAUDE_PLUGIN_ROOT}/bin/construction-python"`. Double-quote every path. Do not write custom scripts or inline Python. Write every file in the review folder with the Write tool, and change one with the Edit tool. Never use a shell loop, heredoc, `echo >` or `sed -i`, even for fifteen elements that look alike. Check the files with `check_review.py --review-dir`, which names a file that is not valid JSON with its line and column, never with Python of your own. `construction-python` is always there: never probe for another Python (`python3 - <<…`, `python --version`), even with an empty program.
Load the `construction-guide` skill before reading any project document. Never read construction PDFs directly: rasterize pages first.
Everything for one review lives in `.construction/skills/submittal-review/{review_id}/`, where `review_id` is the submittal number and revision with spaces as hyphens (`12-35-53-001-R0`). Page images, crops and saved text dumps (`pdf_text.py --output`) go there too, never in `/tmp` or any other folder outside the project. The exact formats are in `${CLAUDE_SKILL_DIR}/references/review-data.md`; read it before Step 1.
state.yaml submittal, sections, facility types, jurisdiction, schedule, status pages_N.json page index of submittal file N (find_pages.py) trace.json every element the contract documents require, with every governing reference inventory.json where each element is in the submittal (or that it is missing) review_NN.json per element: each governing reference read, findings, unverifiable items, questions package_review.json the package questions and every cross-document reconciliation findings_NN.json findings compliance.json code and authority questions: open, or researched with a source routing.json each trade that must act: what to send, what is needed back, gate, need-by prior.json resubmittals only: what happened to each prior finding
`state.yaml` carries `status`. On restart, read it and resume at the step after the last completed one.
---
- [ ] 1. Intake - [ ] 6. Package questions and reconciliations - [ ] 2. Trace requirements - [ ] 7. Code questions and routing - [ ] 3. Inventory - [ ] 8. Gate - [ ] 4. Checkpoint - [ ] 9. Report - [ ] 5. Review (fan out per element)
1. **Mode.** `.construction/project.yaml` present → AgentCM mode; otherwise flat file. In AgentCM mode, follow `${CLAUDE_PLUGIN_ROOT}/reference/agentcm-mode.md`: which source wins, what a missing file or an empty search means, which file answers what, drawings through `crop.sh`, and how to record a correction of AgentCM's data. 2. **Submittal.** Locate the package file(s). Read the cover or transmittal for:
3. **Resubmittal.** If the revision is above zero or the user names a prior review, find the prior review directory. Every prior finding must be accounted for in `prior.json` (Step 6). 4. **Prere
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…
Operating guide for construction project documents — load before reading drawings, specs, schedules, RFIs, submittals or bids.…
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…
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…