Use when the user asks to parse, extract, or normalize a roofing contractor's bid or tender submission PDF against a previously-parsed RFP. Captures pricing, scope response, materials, warranty, qualifications, schedule, and technical approach, with page-level evidence citations.
How this skill is triggered — by the user, by Claude, or both
Slash command
/roof-replacement-review:roof-bid-extractThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are extracting a single contractor's bid submission into the `bids[]` schema
You are extracting a single contractor's bid submission into the bids[] schema
in templates/bid_schema.json. The RFP manifest (rfp.json) defines what must
be populated and what values are expected.
This skill does NOT require the RFP manifest. Comparison against the RFP
(mandatory-gate evaluation, warranty-tier match, spec compliance) is performed
by roof-qualification-check and roof-technical-review in the next pipeline
wave. Keeping bid-extract RFP-independent is what lets /roof-review dispatch
roof-rfp-extract and roof-bid-extract in parallel during wave 1.
If you feel you need to check a value against the RFP here, stop — record what
the bid says in extraction_notes and defer the comparison to the downstream
skills.
Cite these when flagging extraction anomalies (to be graduated into red flags later):
fixtures/domain_knowledge/02_roofing_materials_warranties.md — warranty taxonomy (material-only vs NDL), membrane thickness conventions, certified installer programsfixtures/domain_knowledge/04_contractor_qualification.md — WSIB, CGL, bonding, Skilled Trades, WAH evidence expectationsfixtures/domain_knowledge/03_tender_evaluation_methodology.md — typical bid document structure (CCDC 23 §5)Bidder identity. Legal name (important — must match COI named insured), bid bond principal, and any trade names. Flag mismatches.
Pricing.
Scope response.
spec_item, substitute_offered, and the contractor's equivalence justification verbatimMaterials system. Manufacturer + system name, actual membrane thickness (for commercial) or shingle line (for residential), insulation stack including cover board, product data sheet attachments.
Warranty offered.
material_only — manufacturer replaces defective materials; labour and consequential damages are the owner's problem. Typical 10-15 yr.labour_and_material — materials plus contractor labour to re-install covered by the manufacturer, but coverage is capped (e.g., prorated, or a dollar cap equal to original system cost).ndl — no dollar limit on materials replacement; labour may or may not be included; read the exemplar warranty to confirm. If the bid says "NDL" without a system-warranty document attached, treat as ndl (not total_system_ndl).total_system_ndl — the premium tier: no dollar limit on the full assembly (membrane + insulation + flashings + labour to reinstall). Requires certified installer, pre-install drawing review, and manufacturer mid-job inspection. Examples: Soprema Sopra-Garantie Mammouth Platinum, Firestone Red Shield Platinum, Sika Sarnafil 30-yr NDL. If the bid attaches a named system-warranty program meeting these prerequisites, use this value.prorated — coverage declines on a schedule (common on asphalt shingle residential).unclear — if the bid says "25 year" without specifying which of the above, set unclear and raise a red flag later. Do not guess.Qualifications.
Schedule. Mobilization days, work duration, substantial completion target, crew size, occupied-building accommodation plan.
Technical approach. Tear-off staging, weather protection, fall protection, waste disposal, site safety plan attached?
For every non-trivial extracted value, record the page reference in the source PDF in _provenance:
"_provenance": {
"pricing.base_bid_cad": "Form of Tender, page 3",
"warranty_offered.manufacturer_years": "Schedule C, page 11",
"qualifications.wsib_clearance_date": "Appendix A, WSIB Clearance attached"
}
For the warranty_offered field specifically, also populate warranty_offered.evidence_page — the downstream technical review skill uses it directly.
Record in extraction_notes (array on the bid) any:
Write to <rfp-dir>/roof-review-output/manifests/bid_<slug>.json. Return the single bid object — the normalize script will array these together.
extraction_notes for owner follow-upnpx claudepluginhub reggiechan74/021-cre-150 --plugin roof-replacement-reviewProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.