Initial commit: Conflict Checker

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>
This commit is contained in:
woogiandClaude Opus 4.8 committed 2026-07-03 00:22:02 +00:00
commit 1d248a8808
262 files changed
+8209

No files matched your search

@@ -0,0 +1 @@
{"issues": [{"issue_id": "CBI-001", "source_stage": "constructability", "category": "other", "severity": "critical", "confidence": "high", "location": "Electrical Panel 'L' and Water Heater EWH-1", "disciplines": ["Plumbing", "Electrical"], "sheets": ["P01.01", "E01.02"], "description": "The plumbing fixture schedule specifies a 480V, 3-phase electric water heater (EWH-1). The electrical one-line diagram and schedules show the 'WATER HEATING' load is served from Panel 'L', which is fed by Panel 'H', with a voltage of 208Y/120V. The specified equipment is incompatible with the provided power source. This will result in ordering the wrong equipment or requiring significant electrical redesign and rework.", "evidence": [{"discipline": "Plumbing", "sheet": "P01.01", "source_text": "EHW-1 ... VOLTS 480 PHASE 3", "asserted_value": "480V, 3-Phase"}, {"discipline": "Electrical", "sheet": "E01.02", "source_text": "PANEL SCHEDULE 'H', VOLTS: 208Y/120... CKT 1,2,3 DESCRIPTION: PNL 'L'", "asserted_value": "Panel L is 208Y/120V"}, {"discipline": "Electrical", "sheet": "E01.02", "source_text": "PANEL SCHEDULE 'L', VOLTS: 208Y/120... CKT 1,2,3 DESCRIPTION: WATER HEATING", "asserted_value": "Water Heater is on a 208Y/120V panel"}], "recommended_resolution": "Coordinate electrical and plumbing drawings to ensure the specified water heater voltage matches the provided power circuit voltage.", "code_reference": null}, {"issue_id": "CBI-002", "source_stage": "constructability", "category": "access_clearance", "severity": "critical", "confidence": "high", "location": "Above ceiling in Lounge and Corridor", "disciplines": ["Electrical", "Plumbing", "Architectural"], "sheets": ["E02.01", "P02.02", "A23.01"], "description": "Both the electrical Transformer (Keynote 7, E02.01) and the 30-gallon water heater (EWH-1, Keynote 1, P02.02) are specified to be suspended above the ceiling. The notes require access (e.g., 'ABOVE ACCESSIBLE CEILING' for the transformer). However, the architectural finish plan (A23.01) shows a hard-lid gypsum board ceiling (C1) in the Lounge area where these units may be located. Installing heavy equipment above a non-accessible hard-lid ceiling makes future service or replacement impossible without demolishing the ceiling.", "evidence": [{"discipline": "Electrical", "sheet": "E02.01", "source_text": "7 TRANSFORMER TO BE SUSPENDED FROM STRUCTURE AT HIGH LEVEL ABOVE ACCESSIBLE CEILING.", "asserted_value": "Transformer requires accessible ceiling"}, {"discipline": "Plumbing", "sheet": "P02.02", "source_text": "KEYED NOTE: 1 EWH-1 ABOVE CEILING SUSPENDED AS HIGH AS POSSIBLE IN CEILING PLENUM.", "asserted_value": "Water heater suspended above ceiling"}, {"discipline": "Architectural", "sheet": "A23.01", "source_text": "FINISH LEGEND: CEILING TYPES: C1, FINISH: GYPSUM BOARD CEILING... LOCATION: ...LOUNGE", "asserted_value": "Lounge has a GWB hard-lid ceiling"}], "recommended_resolution": "Relocate suspended equipment to be above an accessible ceiling (e.g., acoustic tile in corridor/restrooms) or specify access panels in the hard-lid ceiling of sufficient size for equipment replacement. Confirm locations on all disciplined drawings.", "code_reference": null}, {"issue_id": "CBI-003", "source_stage": "constructability", "category": "support_anchorage", "severity": "critical", "confidence": "high", "location": "Above ceiling in Lounge area", "disciplines": ["Electrical", "Plumbing"], "sheets": ["E05.02", "P03.01"], "description": "Details for suspending the electrical transformer and water heater delegate the structural design of the supports. The electrical detail (5/E05.02) states 'Verify support sizing and designed with project structural engineer prior to assembly.' The plumbing detail (4/P03.01) simply shows unistrut and threaded rods. The structural design for supporting heavy, suspended equipment cannot be delegated to the field. This poses a significant life-safety and buildability risk. The drawings must include a fully engineered support design, including member sizes, connections to the building structure, and load calculations, coordinated with the structural engineer of record.", "evidence": [{"discipline": "Electrical", "sheet": "E05.02", "source_text": "VERIFY SUPPORT SIZING AND DESIGNED WITH PROJECT STRUCTURAL ENGINEER PRIOR TO ASSEMBLY.", "asserted_value": "Delegation of structural support design for transformer"}, {"discipline": "Plumbing", "sheet": "P03.01", "source_text": "DETAIL 4 - EWH-1 ABOVE CEILING DETAIL: 2\" UNISTRUT SUPPORT. 1/2\" ALL THREADED RODS...", "asserted_value": "Generic, non-engineered support shown for water heater"}], "recommended_resolution": "Provide engineered structural details for the suspension of the transformer and water heater, signed and sealed by the structural engineer. Details must show connection to the building structure and specify all components.", "code_reference": null}, {"issue_id": "CBI-004", "source_stage": "constructability", "category": "detail_gap", "sLine truncated