bid-evaluator
Evaluate tabulated subcontractor bids against specs and drawings — scope gap analysis, exclusion risk scoring, award…
Generate a complete subcontract from a firm's template, awarded bid, and project specs. Outputs a Word document. Triggers: 'subcontract', 'sub agreement', 'write contract', 'draft subcontract'. Requires awarded bid.
Claude Code
$ npx -y skills add dleerdefi/claude-code-construction --skill subcontract-writer --agent claude-code
Codex
$ npx skills add dleerdefi/claude-code-construction --skill subcontract-writer -a codex -y
Cursor
$ npx skills add dleerdefi/claude-code-construction --skill subcontract-writer -a cursor -y
Gemini CLI
$ npx skills add dleerdefi/claude-code-construction --skill subcontract-writer -a gemini-cli -y
GitHub Copilot
$ npx skills add dleerdefi/claude-code-construction --skill subcontract-writer -a github-copilot -y
OpenCode
$ npx skills add dleerdefi/claude-code-construction --skill subcontract-writer -a opencode -y
Windsurf
$ npx skills add dleerdefi/claude-code-construction --skill subcontract-writer -a windsurf -y
name: subcontract-writer description: > Generate a complete subcontract from a firm's template, awarded bid, and project specs. Outputs a Word document. Triggers: 'subcontract', 'sub agreement', 'write contract', 'draft subcontract'. Requires awarded bid. argument-hint: "<scope_of_work>" disable-model-invocation: true
Generates a complete, execution-ready subcontract agreement from a firm's template, the awarded bid, and project specifications. **You are the intelligence layer** — you read every document, extract all data, generate every article's text, make legal/commercial judgments, and write fully-populated JSON files. The Python formatter is a thin rendering utility that makes no content decisions.
**Output:** Word document (.docx) matching the firm's template structure.
**Dependency:** Requires `python-docx` in the construction Python environment.
**Key principle:** The bid document is the PRIMARY input. It establishes what was priced, at what rates, with what inclusions and exclusions. Specifications inform scope descriptions and technical requirements. The template provides article structure and standard boilerplate.
---
This skill can be invoked directly when the user has an awarded bid and wants to generate a subcontract, or as the final step of the bid pipeline:
/bid-tabulator → /bid-evaluator → user confirms → THIS SKILL
Either way, the awarded bid document (Slot B) is the mandatory input.
Read `.construction/project.yaml` at the project root: present and readable means AgentCM mode (note its `contract_version`), absent means flat-file mode. A listing that shows the file does not decide it: read it.
---
Execute in five sequential phases. Each phase has a defined output that must be completed before the next begins. **Do not skip phases or combine them.** The most common failure mode is attempting Phase 4 (writing) before Phase 3 (validation) is complete.
Subcontract Writer Progress: Phase 1 → Phase 2 → Phase 3 → USER CHECKPOINT → Phase 4 → Phase 5 Triage Extract Validate Confirm data Write Verify
---
Before reading any document substantively, assign each uploaded file to its slot. State the assignments to the user before proceeding.
| Slot | Role | Source | What It Provides | |------|------|--------|-----------------| | A | Template | Subcontract PDF/DOCX | Article structure, boilerplate language, required sections | | B | Awarded bid | Subcontractor bid PDF | **Contract sum, quantities, unit rates, inclusions, exclusions, VE alternates** | | C | Specifications | Spec section PDFs; in AgentCM mode `.construction/specs/<section>.txt` | Scope descriptions, submittal requirements, warranty clauses, installer qualifications | | D | Drawings | Finish schedule, floor plans | Room codes, area takeoffs, scope boundaries |
**Slot B is mandatory.** If missing, stop and output:
I need the awarded subcontractor's bid document before I can generate this subcontract. The bid is the source of truth for the contract sum, quantities, and unit rates. Which file is the awarded bid?
Read Slot A first to understand the required article structure. Note every article heading. Flag any article that requires project-specific content (not just boilerplate) — these become required extraction targets in Phase 2.
If no template is provided, ask: "Do you have a standard subcontract template?" If none available, use AIA A401-style structure as fallback.
---
Run a separate extraction pass for each slot. Write extracted data to `.construction/skills/subcontract-writer/scope_data.json` incrementally. Do not combine slots in a single read.
A text dump is working data: take `pdf_text.py`'s output directly, or, to search it more than once, save it with `--output` under `.construction/skills/subcontract-writer/text/`, never in `/tmp` or any other folder outside the project.
Dump the bid's text first; read TEXT pages from the dump and rasterize VISION pages for vision reading:
"${CLAUDE_PLUGIN_ROOT}/bin/construction-python" "${CLAUDE_PLUGIN_ROOT}/scripts/pdf/pdf_text.py" "{bid.pdf}"Extract every field below. Mark any field not found as `MISSING` — do not infer or estimate.
**Commercial data:**
**Scope data:**
**Verify:** Line item amounts must sum to the total contr
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…