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
10 KiB
JSON
1 line
10 KiB
JSON
{"issues": [{"issue_id": "QAQC-MS-001", "source_stage": "qaqc", "category": "missing_sheet", "severity": "critical", "confidence": "high", "location": "Entire Drawing Set", "disciplines": ["Structural"], "sheets": [], "description": "The entire Structural (S) series of drawings is missing from the set. Structural plans and details are fundamental for any scope involving new construction or modifications, including supporting new rooftop equipment. Notes on other disciplines' drawings (e.g., E05.02, M03.01) explicitly call for coordination with a structural engineer, but no structural information is provided. This omission makes the set incomplete for bidding, permitting, and construction.", "evidence": [{"discipline": "Electrical", "sheet": "E05.02", "source_text": "VERIFY SUPPORT SIZING AND DESIGNED WITH PROJECT STRUCTURAL ENGINEER PRIOR TO ASSEMBLY.", "asserted_value": "Coordination with structural engineer required"}, {"discipline": "Mechanical", "sheet": "M03.01", "source_text": "ANGLE IRON FRAME ALL AROUND ROOF OPENING RE: STRUCTURAL.", "asserted_value": "Coordination with structural drawings required"}], "recommended_resolution": "Provide the complete Structural drawing set (foundation plans, framing plans, details, general notes) as required for the project scope.", "code_reference": null}, {"issue_id": "QAQC-MS-002", "source_stage": "qaqc", "category": "missing_sheet", "severity": "critical", "confidence": "high", "location": "Architectural Series", "disciplines": ["Architectural"], "sheets": [], "description": "An Architectural Floor Plan, presumed to be numbered A21.01, is missing. The sheet index jumps from General sheets to A22.01 (Reflected Ceiling Plan). A dimensioned floor plan showing partition layout is the primary drawing for a build-out and is essential for all other disciplines to coordinate with. The 'missing_expected_sheets' report notes this logical gap and a failed extraction for the page where it should be.", "evidence": [{"discipline": "Architectural", "sheet": "sheet_index", "source_text": "Missing expected sheet A21.01 based on numbering sequence before A22.01", "asserted_value": "Missing Architectural Floor Plan"}], "recommended_resolution": "Provide the missing main Architectural Floor Plan sheet (A21.01).", "code_reference": null}, {"issue_id": "QAQC-MS-003", "source_stage": "qaqc", "category": "missing_sheet", "severity": "high", "confidence": "high", "location": "Mechanical Series", "disciplines": ["Mechanical"], "sheets": ["M01.01", "M02.02"], "description": "A Mechanical floor plan, presumed to be numbered M02.01, is missing. The drawing set jumps from Mechanical schedules (M01.01) to the Mechanical Roof Plan (M02.02) without providing a plan for the interior ductwork, diffusers, and thermostats. This plan is necessary to understand the HVAC system layout within the tenant space.", "evidence": [{"discipline": "Mechanical", "sheet": "sheet_index", "source_text": "Missing expected sheet M02.01 based on numbering sequence before M02.02", "asserted_value": "Missing Mechanical Floor Plan"}], "recommended_resolution": "Provide the missing Mechanical Floor Plan sheet (M02.01) showing the HVAC layout for the tenant space.", "code_reference": null}, {"issue_id": "QAQC-MS-004", "source_stage": "qaqc", "category": "missing_sheet", "severity": "high", "confidence": "high", "location": "Life Safety", "disciplines": ["Electrical", "Fire Protection"], "sheets": ["E04.01", "A22.01"], "description": "A comprehensive Fire Alarm plan is not provided. While sheet A22.01 shows some notification appliances (strobes), the set lacks a dedicated plan showing the full system, including the Fire Alarm Control Panel (FACP), pull stations, smoke/heat detectors, duct detectors, and associated wiring/riser diagrams as required by NFPA 72. Sheet E04.01 covers 'Special Systems' but appears to focus on data cabling, not life safety. This is a critical omission for life safety review and permit.", "evidence": [{"discipline": "Technology / Low Voltage", "sheet": "E04.01", "source_text": "(2) CAT.6/18\"", "asserted_value": "Sheet E04.01 shows data outlets, not a complete fire alarm system."}, {"discipline": "General", "sheet": "G11.03", "source_text": "TENANT IS REQUIRED TO USE LANDLORD'S FIRE ALARM MONITORING COMPANY TO CONNECT TENANT'S SYSTEM TO LANDLORD'S FIRE ALARM PANEL.", "asserted_value": "A tenant fire alarm system is explicitly required."}], "recommended_resolution": "Provide a complete Fire Alarm plan compliant with NFPA 72 and local AHJ requirements. This may be a separate 'FA' series sheet or integrated into the Electrical 'E' sheets.", "code_reference": "NFPA 72"}, {"issue_id": "QAQC-MSCH-001", "source_stage": "qaqc", "category": "missing_schedule", "severity": "high", "confidence": "high", "location": "Architectural Series", "disciplines": ["Architectural"], "sheets": ["G11.01", "G31.06"], "description": "A Partition Type Legend or Schedule is missing. General Note 25.D on G11.01 bases dimensions 'to the face of sheathing of partition type as scheduled,' but no such schedule exists. Without it, contractors cannot determine the construction, thickness, fire-rating, or acoustic rating of the various walls, making bidding inaccurate and construction impossible. A UL assembly detail like U419 is not a substitute for a project-specific partition schedule referenced on the plans.", "evidence": [{"discipline": "General", "sheet": "G11.01", "source_text": "Dimensions shown on drawings shall be to the face of sheathing of partition type as scheduled, unless otherwise noted.", "asserted_value": "Reference to a partition schedule that does not exist."}], "recommended_resolution": "Provide a Partition Type Legend/Schedule on the architectural drawings, with types clearly tagged on the floor plans. This schedule should define the full assembly (studs, gypsum board layers, insulation, etc.) and ratings (Fire, STC) for each wall type.", "code_reference": null}, {"issue_id": "QAQC-MSCH-002", "source_stage": "qaqc", "category": "missing_schedule", "severity": "critical", "confidence": "high", "location": "Architectural Series", "disciplines": ["Architectural"], "sheets": [], "description": "A Door and Hardware Schedule is missing from the drawing set. There are no door tags on the plans and no schedule defining the type, size, material, fire rating of doors/frames, and the required hardware group for each opening. This information is essential for procurement, cost estimating, and ensuring life safety/egress compliance.", "evidence": [{"discipline": "Architectural", "sheet": "sheet_index", "source_text": "No sheet titled 'Door Schedule' or similar exists.", "asserted_value": "Absence of door schedule sheet"}, {"discipline": "General", "sheet": "G31.04", "source_text": "SECTION 08 11 13 - HOLLOW METAL DOORS AND FRAMES", "asserted_value": "Specification for doors is provided, but with no schedule to indicate which doors or where."}], "recommended_resolution": "Provide a comprehensive Door and Hardware Schedule. Add door tags to all openings on the floor plans to correlate with the schedule. Provide a hardware group schedule or specification Section 08 71 00.", "code_reference": null}, {"issue_id": "QAQC-INFO-001", "source_stage": "qaqc", "category": "missing_information", "severity": "high", "confidence": "high", "location": "A22.01 - REFLECTED CEILING PLAN", "disciplines": ["Architectural", "Mechanical", "Electrical", "Plumbing"], "sheets": ["A22.01", "G11.01"], "description": "Finished ceiling heights are not indicated on the Reflected Ceiling Plan (A22.01) or anywhere else in the set, despite a general note on G11.01 stating that they are. This is critical missing information required by all trades for locating overhead elements like ductwork, piping, conduit, and light fixtures, as well as for constructing partitions.", "evidence": [{"discipline": "General", "sheet": "G11.01", "source_text": "24. CEILING HEIGHTS ARE INDICATED FROM THE FLOOR ELEVATION TO THE FACE OF THE SUSPENDED CEILING SYSTEM OR FACE OF FINISH MATERIAL AS SCHEDULED.", "asserted_value": "Note implies ceiling heights are documented, but they are not."}, {"discipline": "Architectural", "sheet": "A22.01", "source_text": "(no source text for absence)", "asserted_value": "No ceiling height tags are present on the plan."}], "recommended_resolution": "Add ceiling height dimensions or tags (e.g., 9'-0\" AFF) for all rooms and areas on the Reflected Ceiling Plan (A22.01).", "code_reference": null}, {"issue_id": "QAQC-MD-001", "source_stage": "qaqc", "category": "missing_detail", "severity": "medium", "confidence": "high", "location": "A24.01 - FURNITURE/ POWER/ DATA FLOOR PLAN", "disciplines": ["Architectural"], "sheets": ["A24.01"], "description": "Sheet A24.01 contains a note calling out detail '3/A92.01' for a foundation pour back detail where the existing slab is cut. Sheet A92.01 is not included in the drawing set, leaving this construction detail completely undefined. This is necessary information for the contractor.", "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": "3/A92.01"}], "recommended_resolution": "Provide sheet A92.01 with the referenced detail, or re-reference the callout to an existing detail that provides the required information.", "code_reference": null}, {"issue_id": "QAQC-CLAR-001", "source_stage": "qaqc", "category": "clarity", "severity": "medium", "confidence": "high", "location": "A51.01 / TYPICAL RESTROOM LAVATORY DETAIL", "disciplines": ["Architectural", "Plumbing"], "sheets": ["A51.01"], "description": "The typical restroom lavatory detail on sheet A51.01 contains contradictory accessibility clearance information. It has two notes for toe clearance under the sink: '9\" MIN. TOE CLEAR' and '6\" MAX. TOE CLEAR'. These notes are mutually exclusive and create confusion regarding ADA compliance. A single, correct requirement must be specified.", "evidence": [{"discipline": "Architectural", "sheet": "A51.01", "source_text": "9\" MIN. TOE CLEAR", "asserted_value": "9\" MIN"}, {"discipline": "Architectural", "sheet": "A51.01", "source_text": "6\" MAX. TOE CLEAR", "asserted_value": "6\" MAX"}], "recommended_resolution": "Review accessibility standards (e.g., 2012 TAS) and correct the detail on A51.01 to show the single, valid requirement for toe clearance.", "code_reference": "2012 Texas Accessibility Standards"}]} |