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 @@
{"sheet_number": "A24.01", "discipline": "Architectural", "sheet_title": "FURNITURE/ POWER/ DATA FLOOR PLAN", "level": null, "scale": "1/4\" = 1'-0\"", "assertions": [{"assertion_id": "A24.01-GN-A", "subject": "General Notes", "category": "note", "attribute": "general_note", "value": "Refer to project general notes on sheet G11.01.", "unit": null, "location_key": {"sheet_number": "A24.01", "grid": null, "room": null, "room_name": null, "level": null, "tag": null, "detail_reference": "G11.01", "plan_zone": null}, "source_text": "A. REFER TO PROJECT GENERAL NOTES ON SHEET G11.01.", "coordination_targets": ["architectural"], "conflict_potential": "medium", "code_review_relevance": "medium", "confidence": "high"}, {"assertion_id": "A24.01-GN-B", "subject": "General Notes", "category": "note", "attribute": "general_note", "value": "Installation of all Cellular Sales / Verizon display fixtures shall be performed by a qualified Cellular Sales / Verizon vendor.", "unit": null, "location_key": {"sheet_number": "A24.01", "grid": null, "room": null, "room_name": null, "level": null, "tag": null, "detail_reference": null, "plan_zone": null}, "source_text": "B. INSTALLATION OF ALL CELLULAR SALES / VERIZON DISPLAY FIXTURES SHALL BE PERFORMED BY A QUALIFIED CELLULAR SALES / VERIZON VENDOR.", "coordination_targets": ["specialty", "owner_standard"], "conflict_potential": "high", "code_review_relevance": "low", "confidence": "high"}, {"assertion_id": "A24.01-GN-C", "subject": "General Notes", "category": "note", "attribute": "general_note", "value": "Contractor must coordinate with Cellular Sales / Verizon for installation date.", "unit": null, "location_key": {"sheet_number": "A24.01", "grid": null, "room": null, "room_name": null, "level": null, "tag": null, "detail_reference": null, "plan_zone": null}, "source_text": "C. CONTRACTOR MUST COORDINATE WITH CELLULAR SALES / VERIZON FOR INSTALLATION DATE.", "coordination_targets": ["specialty", "owner_standard"], "conflict_potential": "high", "code_review_relevance": "low", "confidence": "high"}, {"assertion_id": "A24.01-GN-D", "subject": "General Notes", "category": "note", "attribute": "general_note", "value": "Contractor's electrician must be available during installation to install electrical connections as needed.", "unit": null, "location_key": {"sheet_number": "A24.01", "grid": null, "room": null, "room_name": null, "level": null, "tag": null, "detail_reference": null, "plan_zone": null}, "source_text": "D. CONTRACTOR'S ELECTRICIAN MUST BE AVAILABLE DURING INSTALLATION TO INSTALL ELECTRICAL CONNECTIONS AS NEEDED.", "coordination_targets": ["electrical", "specialty"], "conflict_potential": "high", "code_review_relevance": "low", "confidence": "high"}, {"assertion_id": "A24.01-GN-G", "subject": "General Notes", "category": "note", "attribute": "detail_callout", "value": "Refer to detail 3/A92.01 for foundation pour back detail where existing slab is cut.", "unit": null, "location_key": {"sheet_number": "A24.01", "grid": null, "room": null, "room_name": null, "level": null, "tag": null, "detail_reference": "3/A92.01", "plan_zone": null}, "source_text": "G. REFER TO DETAIL 3/A92.01 FOR FOUNDATION POUR BACK DETAIL WHERE EXISTING SLAB IS CUT.", "coordination_targets": ["structural", "architectural"], "conflict_potential": "high", "code_review_relevance": "medium", "confidence": "high"}, {"assertion_id": "A24.01-NOTE-1", "subject": "Primary Coordination Note", "category": "note", "attribute": "general_note", "value": "Power outlets and data ports shown on this plan is for reference and coordination purposes only. Refer to electrical drawings for all power and data outlet information.", "unit": null, "location_key": {"sheet_number": "A24.01", "grid": null, "room": null, "room_name": null, "level": null, "tag": null, "detail_reference": null, "plan_zone": null}, "source_text": "NOTE: POWER OUTLETS AND DATA PORTS SHOWN ON THIS PLAN IS FOR REFERENCE AND COORDINATION PURPOSES ONLY. REFER TO ELECTRICAL DRAWINGS FOR ALL POWER AND DATA OUTLET INFORMATION.", "coordination_targets": ["electrical", "technology"], "conflict_potential": "high", "code_review_relevance": "low", "confidence": "high"}, {"assertion_id": "A24.01-RN-1", "subject": "Room Name", "category": "room", "attribute": "room_name", "value": "EXISTING FIRE RISER ROOM", "unit": null, "location_key": {"sheet_number": "A24.01", "grid": "A", "room": null, "room_name": "EXISTING FIRE RISER ROOM", "level": null, "tag": null, "detail_reference": null, "plan_zone": null}, "source_text": "EXISTING FIRE RISER ROOM", "coordination_targets": ["fire_protection", "life_safety", "architectural"], "conflict_potential": "medium", "code_review_relevance": "high", "confidence": "high"}, {"assertion_id": "A24.01-RN-2", "subject": "Room Name", "category": "room", "attribute": "room_name", "value": "CORRIDOR", "unit": null, "location_key": {"sheet_number": "A24.01", "grid": "A", "room": null, "room_name": "CORRIDOR", "level": null, "tag": null, Line truncated