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
16 KiB
JSON
1 line
16 KiB
JSON
{"normalized_assertions": [{"assertion_id": "A23.01#11", "original_value": "CLASS A", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A23.01#12", "original_value": "Shaw NEXT GEN 2.0, VERIZON STANDARD, 24\" X 24\", ASHLAR STACK PATTERN 50% OFFSET", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A23.01#13", "original_value": "CPT1", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A23.01#14", "original_value": "CPT1", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A23.01#15", "original_value": "Grade 2 (Medium Exposed), with a Class 1 (Matte) Finish", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A23.01#16", "original_value": "0.50", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A23.01#17", "original_value": "PC1", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A24.01#0", "original_value": "Refer to project general notes on sheet G11.01", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A24.01#1", "original_value": "Installation of all Cellular Sales / Verizon display fixtures shall be performed by a qualified Cellular Sales / Verizon vendor.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A24.01#2", "original_value": "Contractor's electrician must be available during installation to install electrical connections as needed.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A24.01#3", "original_value": "Position wall mount power transition boxes on back side of wall for accessibility, especially if transition boxes are behind wall fixtures.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A24.01#4", "original_value": "Refer to detail 3/A92.01 for foundation pour back detail where existing slab is cut.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A24.01#5", "original_value": "Coordinate with tenant for plywood backing for mounting network rack", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A24.01#6", "original_value": "Provide (3) 3\" conduits from network rack to sales ceiling plenum", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A24.01#7", "original_value": "(2) 20A, OUTLETS AT 60\" A.F.F.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A24.01#8", "original_value": "(1) 10 GAUGE GROUND BLOCK WITH GROUND WIRE CONNECTED TO THE PANEL GROUND (REQUIRED FOR WARRANTY)", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A24.01#9", "original_value": "RACK SYSTEM", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A24.01#10", "original_value": "~74", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A24.01#11", "original_value": "EXISTING FIRE RISER ROOM", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A24.01#12", "original_value": "CORRIDOR", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A24.01#13", "original_value": "INVENTORY", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A24.01#14", "original_value": "MEN'S RESTROOM", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A24.01#15", "original_value": "WOMEN'S RESTROOM", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A24.01#16", "original_value": "MANAGER'S OFFICE", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A24.01#17", "original_value": "CLEANING SUPPLIES/STORAGE", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A24.01#18", "original_value": "SALES AREA", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A24.01#19", "original_value": "14'-2 1/8\"", "normalized_value": "14' 2 1/8\"", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Normalized by removing space between feet and inches", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A25.01#0", "original_value": "ROOF PLAN IS FOR REFERENCE ONLY. CONTRACTORS ARE TO VERIFY EXISTING CONDITIONS (DIMENSIONS, CLEARANCES, STRUCTURE TYPE, ETC.) IN THE FIELD.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A25.01#1", "original_value": "CONTRACTOR TO REFER TO MECHANICAL DRAWINGS FOR ALL ROOFTOP UNIT REQUIREMENTS, DETAILS, AND SPECIFICATIONS.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A25.01#2", "original_value": "CONTRACTORS SHALL VERIFY LOCATIONS OF EXISTING SYSTEMS AND OPENINGS; SUCH AS EXISTING RTU'S, ROOF VENTS, HVAC, ROOF ACCESS, AND OTHER PENETRATIONS. VERIFY COORDINATIONS REQUIRED BETWEEN EXISTING PENETRATIONS AND EQUIPMENT WITH NEW.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A25.01#3", "original_value": "REPAIR AND SEAL ROOF IF REQUIRED AROUND ALL NEW PENETRATIONS AND EQUIPMENT, PER MANUFACTURER'S RECOMMENDATIONS.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A25.01#4", "original_value": "2 NEW RTU, PROVIDE NEW MECHANICAL ROOF CURBS AS NECESSARY TO ACCOMODATE NEW RTU. GC TO INSTALL FLASHING PER PER ROOFING MANUFACTURING STANDARDS. GC SHALL COORDINATE ROOF WORK WITH LL REQUIREMENTS TO MAINTAIN EXISTING ROOFING WARRANTY. REFER TO MEP DRAWINGS FOR MORE INFORMATION.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A25.01#5", "original_value": "2", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A25.01#6", "original_value": "6'-9\"", "normalized_value": "6' 9\"", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Normalized by removing space between feet and inches", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A25.01#7", "original_value": "3'-3 1/4\"", "normalized_value": "3' 3 1/4\"", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Normalized by removing space between feet and inches", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A25.01#8", "original_value": "ROOF CURB DETAIL", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A25.01#9", "original_value": "6\" = 1'-0\"", "normalized_value": "6\" = 1' 0\"", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Normalized by removing space between feet and inches", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A25.01#10", "original_value": "Prefabricated Metal Curb", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A25.01#11", "original_value": "2X4 WOOD NAILER", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A25.01#12", "original_value": "12", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A25.01#13", "original_value": "TPO MEMBRANE ADHERED OR MECHANICALLY FASTENED", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A25.01#14", "original_value": "1 1/2", "normalized_value": "1 1/2\"", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Normalized by adding missing inch symbol", "source_text_preserved": true, "normalization_confidence": "medium"}, {"assertion_id": "A25.01#15", "original_value": "WOOD NAILER INSTALLED TO MEET APPLICABLE BUILDING CODES", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A25.01#16", "original_value": "COUNTERFLASHING SKIRT", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A51.01#0", "original_value": "MEN'S RESTROOM", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A51.01#1", "original_value": "103", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A51.01#2", "original_value": "WOMEN'S / RESTROOM", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A51.01#3", "original_value": "102", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "room_number", "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A51.01#4", "original_value": "WC-1", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A51.01#5", "original_value": "WC-1", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A51.01#6", "original_value": "L-1", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A51.01#7", "original_value": "L-1", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A51.01#8", "original_value": "EDF-1", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A51.01#9", "original_value": "G11.02", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A51.01#10", "original_value": "2'-10\"", "normalized_value": "2' 10\"", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Normalized by removing space between feet and inches", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A51.01#11", "original_value": "2'-5\"", "normalized_value": "2' 5\"", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Normalized by removing space between feet and inches", "source_text_preserved": "true", "normalization_confidence": "high"}, {"assertion_id": "A51.01#12", "original_value": "6\"", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A51.01#13", "original_value": "3'-4\"", "normalized_value": "3' 4\"", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Normalized by removing space between feet and inches", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A51.01#14", "original_value": "1'-5\"", "normalized_value": "1' 5\"", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Normalized by removing space between feet and inches", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A51.01#15", "original_value": "4'-0\"", "normalized_value": "4' 0\"", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Normalized by removing space between feet and inches", "source_text_preserved": true, "normalization_confidence": "high"}]} |