Cross-discipline design-contradiction checker for construction drawing sets. Standalone tool broken out from Iron_Bid; a pipeline stage may later fold back into Iron_Bid. Pipeline: PDF->images -> per-sheet assertion extraction -> deterministic clustering by location -> per-cluster reasoning -> report. Includes CLI (cli/run_check.py) and web UI (backend/main.py). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 line
12 KiB
JSON
1 line
12 KiB
JSON
{"issues": [{"issue_id": "qaqc-0001", "source_stage": "qaqc", "category": "missing_sheet", "severity": "critical", "confidence": "high", "location": "Entire Project", "disciplines": ["Structural", "Architectural", "Mechanical", "Electrical"], "sheets": ["M03.01", "E05.02", "A25.01"], "description": "The drawing set is entirely missing the Structural discipline (S-series sheets). Structural drawings are required to specify support for new rooftop units (RTUs), suspended transformers, framing for roof openings, and requirements for any slab penetrations. Multiple notes on Architectural, Mechanical and Electrical sheets refer to coordination with a structural engineer, but no drawings are provided. This is critical for bidding, permitting, and construction.", "evidence": [{"discipline": "System", "sheet": "sheet_index", "source_text": "No sheets with the 'S' discipline prefix are present in the sheet index.", "asserted_value": "Missing Structural Drawings"}, {"discipline": "Electrical", "sheet": "E05.02", "source_text": "VERIFY SUPPORT SIZING AND DESIGNED WITH PROJECT STRUCTURAL ENGINEER PRIOR TO ASSEMBLY.", "asserted_value": "Reference to project structural engineer"}, {"discipline": "Mechanical", "sheet": "M03.01", "source_text": "ANGLE IRON FRAME ALL AROUND ROOF OPENING RE: STRUCTURAL.", "asserted_value": "Reference to structural drawings"}], "recommended_resolution": "Provide a complete set of structural drawings, including foundation plans, framing plans, and all necessary details for the new scope of work. Ensure MEP and Architectural drawings are coordinated with the new structural information.", "code_reference": null}, {"issue_id": "qaqc-0002", "source_stage": "qaqc", "category": "missing_sheet", "severity": "critical", "confidence": "high", "location": "pages 14, 15", "disciplines": ["Architectural", "Mechanical", "Electrical", "Plumbing"], "sheets": [], "description": "Critical architectural plans appear to be missing from the set, corresponding to pages 14 and 15 where file extraction failed. These are expected to be the primary Architectural Dimension/Construction Plan and the Reflected Ceiling Plan (RCP). Without a dimensioned plan, construction layout is impossible. Without an RCP, coordination of lighting, HVAC diffusers, and sprinkler heads is impossible and ceiling heights are undefined.", "evidence": [{"discipline": "Architectural", "sheet": "page-14", "source_text": "Page 14 (extraction failed)", "asserted_value": "Expected to be the Dimension/Construction Plan"}, {"discipline": "Architectural", "sheet": "page-15", "source_text": "Page 15 (extraction failed)", "asserted_value": "Expected to be the Reflected Ceiling Plan"}], "recommended_resolution": "Provide the missing Architectural Dimension Plan and Reflected Ceiling Plan. Ensure all disciplines are coordinated with these new sheets.", "code_reference": null}, {"issue_id": "qaqc-0003", "source_stage": "qaqc", "category": "missing_sheet", "severity": "critical", "confidence": "high", "location": "page 22", "disciplines": ["Mechanical", "Architectural"], "sheets": [], "description": "The Mechanical HVAC floor plan, expected as M02.01, is missing from the set, corresponding to page 22 where extraction failed. The sheet index jumps from Mechanical notes (M01.01) to the Mechanical Roof Plan (M02.02). Without the floor plan showing ductwork layout, diffuser locations, and thermostat locations, the HVAC system cannot be bid, permitted, or constructed.", "evidence": [{"discipline": "Mechanical", "sheet": "page-22", "source_text": "Page 22 (extraction failed)", "asserted_value": "Expected to be the Mechanical Floor Plan"}], "recommended_resolution": "Provide the missing Mechanical Floor Plan M02.01 and ensure it is coordinated with the architectural RCP and lighting plan.", "code_reference": null}, {"issue_id": "qaqc-0004", "source_stage": "qaqc", "category": "missing_schedule", "severity": "critical", "confidence": "high", "location": "Architectural Sheets", "disciplines": ["Architectural"], "sheets": ["G31.04"], "description": "The drawing set lacks a Door and Frame Schedule. Floor plans show new doors, but there is no schedule to define their type, size, material, fire rating, hardware group, or other essential attributes. This information is critical for procurement, accurate bidding, and code compliance.", "evidence": [{"discipline": "System", "sheet": "sheet_index", "source_text": "No sheet with a door schedule is present in the sheet index.", "asserted_value": "Missing Door Schedule"}, {"discipline": "General", "sheet": "G31.04", "source_text": "ANSI A250.8, SEAMLESS, MINIMUM 18 GAGE FACE SHEETS.", "asserted_value": "Specification for hollow metal doors exists, but no schedule applies it to specific locations."}], "recommended_resolution": "Create and issue a complete Door and Frame Schedule, including a hardware schedule/sets. Key all doors on the floor plans to this schedule.", "code_reference": null}, {"issue_id": "qaqc-0005", "source_stage": "qaqc", "category": "missing_information", "severity": "critical", "confidence": "high", "location": "Architectural Plans", "disciplines": ["Architectural"], "sheets": ["G11.03", "G31.06"], "description": "The set lacks a partition type legend and a plan showing where different wall types are to be constructed. Notes on G11.03 require demising partitions to be insulated and extend to the roof deck, and G31.06 provides a UL detail for rated walls, but there is no drawing that defines, typifies, and locates these different wall constructions. This is essential for bidding, material ordering, and correct construction.", "evidence": [{"discipline": "System", "sheet": "sheet_index", "source_text": "No sheet contains a partition type legend.", "asserted_value": "Missing Partition Type Legend"}, {"discipline": "General", "sheet": "G11.03", "source_text": "Tenant shall furnish and install all demising partitions from finished floor slab to roof deck.", "asserted_value": "Requirement for a specific wall type exists with no corresponding visual definition or location plan."}], "recommended_resolution": "Provide a Partition Type Legend detailing all wall assemblies used in the project. Use partition type tags on the dimensioned floor plan to indicate the location of each wall type.", "code_reference": null}, {"issue_id": "qaqc-0006", "source_stage": "qaqc", "category": "missing_information", "severity": "high", "confidence": "high", "location": "A23.01", "disciplines": ["Architectural"], "sheets": ["A23.01", "A51.01"], "description": "The finish information provided on sheet A23.01 is incomplete. The legend is missing specifications (manufacturer, product name, color, etc.) for Paint Tag 'P-1', Wall Base Tag 'WB-1', and Wall Tile Tag 'CT-1'. A full interior finish schedule is typically required. This missing information prevents accurate pricing and procurement.", "evidence": [{"discipline": "Architectural", "sheet": "A23.01", "source_text": "L. WALLS TO BE PAINTED P-1 THROUGHOUT.", "asserted_value": "P-1 is not defined."}, {"discipline": "Architectural", "sheet": "A23.01", "source_text": "M. VINYL BASE WB-1 THROUGHOUT, U.N.O.", "asserted_value": "WB-1 is not defined."}, {"discipline": "Architectural", "sheet": "A51.01", "source_text": "CT-1 TILE WAINSCOT", "asserted_value": "CT-1 is shown on elevations but not defined in any schedule or legend."}], "recommended_resolution": "Complete the Finish Legend or provide a separate tabular Interior Finish Schedule with all required information for all finish tags used on the plans.", "code_reference": null}, {"issue_id": "qaqc-0007", "source_stage": "qaqc", "category": "missing_detail", "severity": "high", "confidence": "high", "location": "A24.01", "disciplines": ["Architectural", "Structural"], "sheets": ["A24.01"], "description": "General Note G on the Furniture/Power/Data Plan (A24.01) refers to detail '3/A92.01' for a 'foundation pour back detail where existing slab is cut'. Sheet A92.01 does not exist in the drawing set. This detail is critical for any work involving slab cuts, such as for under-slab plumbing or electrical, and is necessary for both structural integrity and proper finishing.", "evidence": [{"discipline": "Architectural", "sheet": "A24.01", "source_text": "G. REFER TO DETAIL 3/A92.01 FOR FOUNDATION POUR BACK DETAIL WHERE EXISTING SLAB IS CUT.", "asserted_value": "A non-existent detail is referenced."}], "recommended_resolution": "Provide the referenced detail sheet A92.01 or add the detail to an existing detail sheet and correct the reference on A24.01.", "code_reference": null}, {"issue_id": "qaqc-0008", "source_stage": "qaqc", "category": "missing_detail", "severity": "medium", "confidence": "high", "location": "Architectural Sheets", "disciplines": ["Architectural", "Mechanical", "Electrical"], "sheets": [], "description": "The drawing set lacks comprehensive building sections or full-height wall sections. These are necessary to illustrate the relationship between new partitions, existing structure, ceilings, and the roof deck. This is particularly important for demising walls which are required to extend to the deck and for coordinating vertical MEP runs.", "evidence": [{"discipline": "System", "sheet": "sheet_index", "source_text": "No sheets in the A3x or A4x series, typically used for sections, are present in the sheet index.", "asserted_value": "Missing wall/building section sheets."}], "recommended_resolution": "Provide typical full-height wall sections for standard interior partitions and for demising/rated partitions to clarify construction requirements and facilitate MEP coordination.", "code_reference": null}, {"issue_id": "qaqc-0009", "source_stage": "qaqc", "category": "bid_readiness", "severity": "medium", "confidence": "high", "location": "G01.01", "disciplines": ["General"], "sheets": ["G01.01"], "description": "The cover sheet G01.01 contains placeholder information, including project number '00.000.00', a future issuance date of '2026-06-18', and an issuance status of 'CLIENT REVIEW'. This indicates the set is preliminary and not ready for formal issuance for bid, permit, or construction.", "evidence": [{"discipline": "General", "sheet": "G01.01", "source_text": "Project number 00.000.00", "asserted_value": "00.000.00"}, {"discipline": "General", "sheet": "G01.01", "source_text": "YYYY-MM-DD\n2026-06-18", "asserted_value": "2026-06-18"}], "recommended_resolution": "Update all placeholder information with final, correct data before issuing the drawing set for any formal purpose.", "code_reference": null}, {"issue_id": "qaqc-0010", "source_stage": "qaqc", "category": "missing_sheet", "severity": "medium", "confidence": "medium", "location": "Entire Project", "disciplines": ["Fire Protection", "Architectural", "Mechanical", "Electrical"], "sheets": ["G21.01"], "description": "Although sheet G21.01 states the building is 'fully sprinklered' and G11.03 names a required sprinkler contractor, there are no Fire Protection (FP) plans in the set. While these can be a deferred submittal, a basic coordination plan showing existing and new/relocated head locations is typically required to coordinate with the new ceiling layout and lighting. Its absence creates a coordination risk and ambiguity for bidders.", "evidence": [{"discipline": "System", "sheet": "sheet_index", "source_text": "No sheets with an 'FP' designator are listed in the sheet index.", "asserted_value": "Missing Fire Protection sheets"}], "recommended_resolution": "Clarify if sprinkler drawings are to be design-build/deferred submittal and add a note to the drawings to that effect. If not, or for better coordination, provide at least a basic sprinkler layout plan coordinated with the new reflected ceiling plan.", "code_reference": null}]} |