bid-evaluator
Evaluate tabulated subcontractor bids against specs and drawings — scope gap analysis, exclusion risk scoring, award recommendation. Triggers: 'evaluate bids',…
Draft RFIs and manage the ambient issue registry. Reviews issues surfaced by other skills, escalates to formal RFIs. Triggers: 'draft RFI', 'write RFI', 'drawing conflict', 'review issues', 'issue queue'.
$ npx -y skills add dleerdefi/claude-code-construction --skill rfi-drafter --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/rfi-drafterContext preview
The summary Claude sees to decide when to auto-load this skill.
Draft RFIs and manage the ambient issue registry. Reviews issues surfaced by other skills, escalates to formal RFIs. Triggers: 'draft RFI', 'write RFI', 'drawing conflict', 'review issues', 'issue queue'.
name: rfi-drafter description: > Draft RFIs and manage the ambient issue registry. Reviews issues surfaced by other skills, escalates to formal RFIs. Triggers: 'draft RFI', 'write RFI', 'drawing conflict', 'review issues', 'issue queue'.
Two responsibilities: (1) draft formal RFIs from identified issues, and (2) manage the issue detection registry where potential problems surface during other skill workflows. Detection is ambient. Drafting is user- triggered. No RFI is ever created without explicit user instruction.
**Design**: RIGID output format and quality checks. GUIDED research sequence before drafting. FLEXIBLE across any trade, CSI division, or document conflict type.
Does NOT: autonomously discover issues and write RFIs, send RFIs without user review, or determine whether an issue is actually an error vs. intentional design.
| Script | Location | Purpose | |--------|----------|---------| | `rfi_export.py` | `${CLAUDE_SKILL_DIR}/scripts/rfi_export.py` | Populate firm's .docx template or generate generic RFI | | `issue_manager.py` | `${CLAUDE_SKILL_DIR}/../../scripts/issue_manager.py` | CRUD for issue registry (.construction/issues/) | | `generate_rfi_pdf.py` | `${CLAUDE_SKILL_DIR}/../../scripts/rfi/generate_rfi_pdf.py` | Generate PDF RFI (alternative format) | | `rasterize_page.py` | `${CLAUDE_SKILL_DIR}/../../scripts/pdf/rasterize_page.py` | Rasterize drawing pages for vision reading | | `crop_region.py` | `${CLAUDE_SKILL_DIR}/../../scripts/pdf/crop_region.py` | Crop regions for targeted reading |
Do NOT create custom scripts during execution. All output goes through the scripts above.
---
The user identifies an issue and instructs Claude to draft an RFI. This is the primary workflow — a 30-minute task compressed to minutes.
Before the first RFI, ask the user for their firm's RFI form template. Construction teams have a branded template they use for all official RFIs — the output MUST match their format exactly.
**If .docx template provided:** 1. Read with python-docx to identify field locations (table cells, placeholders like `[PROJECT NAME]`, content controls) 2. Build a field mapping JSON linking each RFI data field to its location in the template 3. Store mapping at `.construction/rfi_template_map.json` 4. Store a SHA-256 hash of the template for change detection
**If PDF template provided:** 1. Rasterize each page at 200 DPI 2. Read with vision to understand field layout and structure 3. Build the mapping JSON from visual analysis 4. Store at `.construction/rfi_template_map.json`
**If no template available:** Fall back to the generic format built into `rfi_export.py`. Inform the user that providing their template is recommended for production RFIs.
On subsequent RFIs, reuse the stored mapping. If the template file hash differs from the stored hash, re-map.
Gather from the user (or from an issue registry record if escalating):
structural, drawing vs spec, etc.)
If the user's description is vague, ask clarifying questions. Never draft from ambiguous input — an RFI that doesn't clearly state the problem wastes everyone's time.
Before drafting, systematically gather evidence. Read `references/research-checklist.md` for the full checklist.
**Minimum research before any RFI:** 1. Read the specific area on the source sheet(s) 2. Check related details/sections for the same condition 3. Check the relevant spec section for requirements 4. Check if general notes address the condition 5. Check addenda and ASIs for superseding changes 6. Check existing RFI log for duplicates (if available)
If AgentCM data is available (`.construction/` exists), query the database for cross-references to the affected area. See `references/research-checklist.md` for concrete query examples.
If research reveals the issue is already resolved (by addendum, ASI, or existing RFI response), inform the user — no RFI needed.
Use the format in `references/rfi-format.md`. Every RFI must include:
Read `references/rfi-format.md` for the full template, field-by-field guidance, and an example RFI.
Before presenting to user, verify against the checklist in `references/quality-checks.md`. Key gates:
Present the draft RFI to the user in conversation. The user may:
**On export**, write the RFI data to a JSON file, then invoke:
# Template mode (preferred — matches firm's format):
python ${CLAUDE_SKILL_DIR}/scripts/rfi_export.py \
--template path/to/firm_rfi_form.docx \
--mapping .construction/rfi_template_map.json \
--data rfi_draft.json \
--output RFI-026.docx
# Generic mode (fallback — no template):
python ${CLAUDE_SKILL_Open-source skills that give Claude Code the working knowledge of a Project Engineer. Split drawings, parse specs, tabulate bids, generate subcontracts, and more — directly from your terminal or IDE.
Evaluate tabulated subcontractor bids against specs and drawings — scope gap analysis, exclusion risk scoring, award recommendation. Triggers: 'evaluate bids',…
Extract data from subcontractor bid PDFs and produce a comparison spreadsheet. Feeds into /bid-evaluator. Triggers: 'tabulate bids', 'bid comparison', 'compare…
Scope-specific code gap analysis — extracts referenced codes from project docs, researches what should apply, surfaces the delta. Triggers: 'code research',…
Construction document review with PE judgment — RFI research, submittal analysis, coordination checking, scope gap detection. Use when reviewing drawings,…
Set up a construction project — inventories files, classifies drawings/specs/schedules/registers, detects AgentCM mode, appends construction context to…
Extract tabular schedule data from construction drawings — door, window, finish, fixture, panel schedules — and output to Excel. Triggers: 'door schedule',…