Files
Conflict_Checker/backend/.llm_cache/80dabfb85559619efedb756043ed21d4bad304343429b01a0bea447078f4b849.json
woogiandClaude Opus 4.8 1d248a8808 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>
2026-07-03 00:22:02 +00:00

1 line
19 KiB
JSON

{"normalized_assertions": [{"assertion_id": "E05.01#14", "original_value": "12", "normalized_value": "12", "normalized_unit": "inches", "normalized_attribute": "service_loop", "normalization_notes": "Converted 12\" to inches", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.01#15", "original_value": "Must be supported by wire hanger at each corner, independent of ceiling support system", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "support_requirement", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.01#16", "original_value": "24", "normalized_value": "24", "normalized_unit": "inches", "normalized_attribute": "separation_distance", "normalization_notes": "Converted 24\" to inches", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.02#0", "original_value": "Circuiting to all non dedicated electrical receptacles and switches are required to utilize parallel circuiting by the use of 'pig tails' to each device so that if an outlet is removed or fails electrical continuity the circuit will not be compromised.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "general_note", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.02#1", "original_value": "All electrical wiring must be properly spliced by twisting the wires together and use of approved and listed compression wire nuts for any wiring.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "general_note", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.02#2", "original_value": "Confirm switching requirement with the owner.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "general_note", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.02#3", "original_value": "Emergency lights on this circuit will receive a hot leg which is not routed via the lighting controller so that the emergency ballast has a constant hot to detect power loss.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "general_note", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.02#4", "original_value": "Grounding electrode conductor to ground to 3/4\" x 10' Cu rod or building steel.", "normalized_value": "3/4\" x 10'", "normalized_unit": null, "normalized_attribute": "grounding_electrode", "normalization_notes": "Normalized units in original value", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.02#5", "original_value": "6", "normalized_value": "6", "normalized_unit": "inches", "normalized_attribute": "housekeeping_pad", "normalization_notes": "Converted 6\" to inches", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.02#6", "original_value": "3\" larger than the transformer (6\" at the rear)", "normalized_value": "3\" larger than the transformer (6\" at the rear)", "normalized_unit": null, "normalized_attribute": "clearance_from_equipment", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.02#7", "original_value": "Neoprene vibration isolation pad", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "vibration_isolation", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.02#8", "original_value": "Provide NEC working clearance in front of transformers.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "NEC_working_clearance", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.02#9", "original_value": "Min 1/4", "normalized_value": "1/4", "normalized_unit": "\"", "normalized_attribute": "fastener_size", "normalization_notes": "Assumed unit is inches for fastener size", "source_text_preserved": true, "normalization_confidence": "medium"}, {"assertion_id": "E05.02#10", "original_value": "4", "normalized_value": "4", "normalized_unit": null, "normalized_attribute": "fastener_count", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.02#11", "original_value": "Secure to bottom cord of structure. Provide (2) 1-1/2\" x 1-1/2\" x 3/16\" angled cord to top cord within 6\" of point load. (Typ. for 4).", "normalized_value": "Secure to bottom cord of structure. Provide (2) 1-1/2\" x 1-1/2\" x 3/16\" angled cord to top cord within 6\" of point load. (Typ. for 4).", "normalized_unit": null, "normalized_attribute": "structural_connection", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.02#12", "original_value": "4 spring vibration isolators sized for weight of transformer.", "normalized_value": "4 spring vibration isolators sized for weight of transformer.", "normalized_unit": null, "normalized_attribute": "vibration_isolation", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.02#13", "original_value": "Anvil trapeze assembly model #45/#46", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "equipment_model", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.02#14", "original_value": "Verify support sizing and designed with project structural engineer prior to assembly.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "general_note", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#0", "original_value": "Seal all penetrations through rated walls, floors and ceilings with a UL listed assembly to provide a rating equal to or greater than the rating of the wall, floor or ceiling.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "wall_rating", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#1", "original_value": "Insulate all exposed drain piping and water supply piping beneath A.D.A. compliant lavatories & sinks with fully molded closed cell vinyl insulation kit as manufactured by Truebro, Brocar or McGuire.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "pipe_insulation", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#2", "original_value": "Provide UL fire rated assemblies where pipes penetrate above grade floors. Provide UL fire rated assemblies were pipes penetrate fire rated walls.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "fire_rating_assembly", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#3", "original_value": "Sanitary Waste and Vent (Below Slab Only): Schedule 40 PVC", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "pipe_material_below_slab", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#4", "original_value": "Sanitary Waste and Vent (Above Slab Only): Cast iron pipe and fittings, ASTM A 888 or CISPI 301.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "pipe_material_above_slab", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#5", "original_value": "Domestic Water: Type 'L' copper tubing with wrought copper fittings and 95/5 (tin/antimony) solder joints.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "pipe_material_domestic_water", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#6", "original_value": "480", "normalized_value": "480", "normalized_unit": "volts", "normalized_attribute": "voltage", "normalization_notes": "Converted 'volts' to volts", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#7", "original_value": "3", "normalized_value": "3", "normalized_unit": "phase", "normalized_attribute": "phase", "normalization_notes": "Converted 'phase' to phase", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#8", "original_value": "5", "normalized_value": "5", "normalized_unit": "kW", "normalized_attribute": "power_kW", "normalization_notes": "Converted 'kW' to kW", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#9", "original_value": "30", "normalized_value": "30", "normalized_unit": "gallons", "normalized_attribute": "tank_capacity", "normalization_notes": "Converted 'gallons' to gallons", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#10", "original_value": "Floor Mounted", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "mounting_type", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#11", "original_value": "ADA 17\"H elongated bowl", "normalized_value": "17", "normalized_unit": "inches", "normalized_attribute": "ada_compliant_height", "normalization_notes": "Converted 17\"H to inches", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#12", "original_value": "Flush handle to be on the wide side of the stall.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "flush_handle_location", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#13", "original_value": "Wall Mounted", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "mounting_type", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#14", "original_value": "LF-170 LEONARD THERMOSTATIC MIXING VALVE WITH THE OUTLET TEMPERATURE TO BE SET AT 110F.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "thermostatic_mixing_valve", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#15", "original_value": "LAVATORY (WALL MOUNTED) (A.D.A.)", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "ada_compliant_fixture", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#16", "original_value": "Floor Mounted", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "mounting_type", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#17", "original_value": "Wall Mount Faucet", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "mounting_type", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#18", "original_value": "Self-rimming", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "mounting_type", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#19", "original_value": "SINGLE BOWL SINK (A.D.A)", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "ada_compliant_fixture", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#20", "original_value": "Install automatic pressure drop activated trap primer by PPP products PR-500.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "trap_primer", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#0", "original_value": "INVENTORY", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "room_name", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#1", "original_value": "LOUNGE", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "room_name", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#2", "original_value": "MEN'S RESTROOM", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "room_name", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#3", "original_value": "WOMEN'S ROOM", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "room_name", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#4", "original_value": "MANAGER'S OFFICE", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "room_name", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#5", "original_value": "CLEANING SUPPLIES/STORAGE", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "room_name", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#6", "original_value": "SALES AREA", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "room_name", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#7", "original_value": "EDF-1 is located in WOMEN'S ROOM.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "fixture_location", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#8", "original_value": "WC-1 is located in WOMEN'S ROOM.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "fixture_location", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#9", "original_value": "FD-1 is located in WOMEN'S ROOM.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "fixture_location", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#10", "original_value": "WC-1 is located in MEN'S RESTROOM.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "fixture_location", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#11", "original_value": "L-1 is located in MEN'S RESTROOM.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "fixture_location", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#12", "original_value": "SK-1 is located in LOUNGE.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "fixture_location", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#13", "original_value": "MS-1 is located in CLEANING SUPPLIES/STORAGE.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "fixture_location", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#14", "original_value": "FD-1 is located in CLEANING SUPPLIES/STORAGE.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "fixture_location", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#15", "original_value": "FS-1 is located in CLEANING SUPPLIES/STORAGE.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "fixture_location", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#16", "original_value": "2", "normalized_value": "2", "normalized_unit": "\"", "normalized_attribute": "pipe_size", "normalization_notes": "Converted 2\" to inches", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#17", "original_value": "2", "normalized_value": "2", "normalized_unit": "\"", "normalized_attribute": "pipe_size", "normalization_notes": "Converted 2\" to inches", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#18", "original_value": "2", "normalized_value": "2", "normalized_unit": "\"", "normalized_attribute": "pipe_size", "normalization_notes": "Converted 2\" to inches", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.02#0", "original_value": "INVENTORY", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "room_name", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.02#1", "original_value": "LOUNGE", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "room_name", "normalization_notes": "No numerical or unit conversion needed", "source_text_preserved": true, "normalization_confidence": "high"}]}