Files
Conflict_Checker/backend/.llm_cache/91ee4df2c43730a64eaa48f896fad41b4cc76069244a5fb1376bf25b8e60bd0a.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
16 KiB
JSON

[{"assertion_id": "G31.04#9", "original_value": "250", "normalized_value": "250", "normalized_unit": "g/L", "normalized_attribute": "VOC_content_max", "normalization_notes": "VOC content limit. Unit 'grams/liter' inferred from source text.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.04#10", "original_value": "90", "normalized_value": "90", "normalized_unit": "minutes", "normalized_attribute": "fire_rating", "normalization_notes": "Unit 'minutes' inferred from source text.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.04#11", "original_value": "1-hour", "normalized_value": "60", "normalized_unit": "minutes", "normalized_attribute": "fire_rating", "normalization_notes": "Converted '1-hour' to minutes.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.04#12", "original_value": "18", "normalized_value": "18", "normalized_unit": "gauge", "normalized_attribute": "face_sheet_thickness_min", "normalization_notes": "Unit 'gage' inferred from source text.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.04#13", "original_value": "7", "normalized_value": "7", "normalized_unit": "gauge", "normalized_attribute": "hinge_reinforcement_thickness_min", "normalization_notes": "Unit 'gage' inferred from source text.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.04#14", "original_value": "16", "normalized_value": "16", "normalized_unit": "gauge", "normalized_attribute": "lock_reinforcement_thickness_min", "normalization_notes": "Unit 'gage' inferred from source text.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.04#15", "original_value": "14", "normalized_value": "14", "normalized_unit": "gauge", "normalized_attribute": "closer_reinforcement_thickness_min", "normalization_notes": "Unit 'gage' inferred from source text. The note also specifies a length of 20 inches.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.04#16", "original_value": "1-3/4", "normalized_value": "1.75", "normalized_unit": "inches", "normalized_attribute": "door_thickness", "normalization_notes": "Unit 'inch' inferred from source text.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.04#17", "original_value": "1/8 inch at head and each jamb.", "normalized_value": "0.125", "normalized_unit": "inches", "normalized_attribute": "clearance_head", "normalization_notes": "Parsed from a value specifying clearances for multiple locations.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.04#17", "original_value": "1/8 inch at head and each jamb.", "normalized_value": "0.125", "normalized_unit": "inches", "normalized_attribute": "clearance_jamb", "normalization_notes": "Parsed from a value specifying clearances for multiple locations.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.04#18", "original_value": "3/8", "normalized_value": "0.375", "normalized_unit": "inches", "normalized_attribute": "undercut", "normalization_notes": "Unit 'inch' inferred from source text. Applies at sill where no threshold.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.05#0", "original_value": "16", "normalized_value": "16", "normalized_unit": "inches", "normalized_attribute": "stud_spacing_on_center", "normalization_notes": "Unit 'inches on center' inferred from source text.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.05#1", "original_value": "Required for framed openings, wall-mounted cabinets, plumbing fixtures, wall mounted door hardware.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "blocking_requirement", "normalization_notes": "Value is a descriptive list of requirements.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.05#2", "original_value": "Not more than 30 feet apart", "normalized_value": "360", "normalized_unit": "inches", "normalized_attribute": "control_joint_spacing_max", "normalization_notes": "Converted from 30 feet.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.05#3", "original_value": "4", "normalized_value": "4", "normalized_unit": "level", "normalized_attribute": "gypsum_board_finish_level", "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.05#4", "original_value": "2", "normalized_value": "2", "normalized_unit": "level", "normalized_attribute": "gypsum_board_finish_level", "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.05#5", "original_value": "1", "normalized_value": "1", "normalized_unit": "level", "normalized_attribute": "gypsum_board_finish_level", "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.05#6", "original_value": "1/8 in 10 ft", "normalized_value": "0.125", "normalized_unit": "inches", "normalized_attribute": "tolerance_max_variation", "normalization_notes": "Maximum variation component of the '1/8 in 10 ft' tolerance specification.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.05#6", "original_value": "1/8 in 10 ft", "normalized_value": "120", "normalized_unit": "inches", "normalized_attribute": "tolerance_measurement_length", "normalization_notes": "Measurement length component of the '1/8 in 10 ft' tolerance specification, converted from '10 ft'.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.05#7", "original_value": "5/8 inch thick", "normalized_value": "0.625", "normalized_unit": "inches", "normalized_attribute": "material_thickness", "normalization_notes": "Applies to vertical surfaces.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.05#8", "original_value": "5/8", "normalized_value": "0.625", "normalized_unit": "inches", "normalized_attribute": "material_thickness", "normalization_notes": "Applies to ceilings. Unit 'inch' inferred from context.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.05#9", "original_value": "5/8", "normalized_value": "0.625", "normalized_unit": "inches", "normalized_attribute": "material_thickness", "normalization_notes": "Unit 'inch' inferred from source text.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.05#10", "original_value": "min 0.6 SCOF", "normalized_value": "0.6", "normalized_unit": "SCOF", "normalized_attribute": "slip_resistance_min_level", "normalization_notes": "Minimum Static Coefficient of Friction for level surfaces.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.05#11", "original_value": "min 0.42 SCOF", "normalized_value": "0.42", "normalized_unit": "SCOF", "normalized_attribute": "slip_resistance_min_ramp", "normalization_notes": "Minimum Static Coefficient of Friction for ramps.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.05#12", "original_value": "1/2", "normalized_value": "0.5", "normalized_unit": "inches", "normalized_attribute": "material_thickness_min", "normalization_notes": "Unit 'inch' and 'minimum' qualifier inferred from source text for cementitious backer board.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.05#13", "original_value": "Polymer-modified sanded grout (ANSI A118.7)", "normalized_value": "Polymer-modified sanded grout", "normalized_unit": null, "normalized_attribute": "material_type", "normalization_notes": "Standard ANSI A118.7 applies.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.05#14", "original_value": "Waterproof membrane for wet areas", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "material_requirement", "normalization_notes": "Value is a descriptive requirement.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.05#15", "original_value": "1/4 in 10 ft", "normalized_value": "0.25", "normalized_unit": "inches", "normalized_attribute": "substrate_deviation_max", "normalization_notes": "Maximum deviation component of the '1/4 in 10 ft' tolerance specification.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.05#15", "original_value": "1/4 in 10 ft", "normalized_value": "120", "normalized_unit": "inches", "normalized_attribute": "substrate_deviation_measurement_length", "normalization_notes": "Measurement length component of the '1/4 in 10 ft' tolerance specification, converted from '10 ft'.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.06#0", "original_value": "1, 2, 3 or 4", "normalized_value": "1, 2, 3, 4", "normalized_unit": "hours", "normalized_attribute": "wall_rating", "normalization_notes": "Represents multiple possible ratings for nonbearing walls. Unit 'Hr' inferred from source text.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.06#1", "original_value": "Channel shaped, fabricated from min 25 MSG corrosion-protected steel", "normalized_value": "25", "normalized_unit": "MSG", "normalized_attribute": "material_thickness_min", "normalization_notes": "Extracted from descriptive value. MSG stands for Manufacturer's Standard Gauge.", "source_text_preserved": true, "normalization_confidence": "medium"}, {"assertion_id": "G31.06#2", "original_value": "attached to floor and ceiling with fasteners 24 in. OC max", "normalized_value": "24", "normalized_unit": "inches", "normalized_attribute": "fastener_spacing_max_on_center", "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.06#3", "original_value": "24", "normalized_value": "24", "normalized_unit": "inches", "normalized_attribute": "stud_spacing_max_on_center", "normalization_notes": "Unit and qualifier 'max OC' inferred from source text.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.06#4", "original_value": "cut 3/8 to 3/4 in. less than assembly height", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "stud_length", "normalization_notes": "Stud length is relative to assembly height, specified as a range: 3/8-inch to 3/4-inch less.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.06#5", "original_value": "1-5/8", "normalized_value": "1.625", "normalized_unit": "inches", "normalized_attribute": "stud_depth_min", "normalization_notes": "Unit 'inches' and 'Min' qualifier inferred from source text. Applies to 1-hour rating.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.06#6", "original_value": "1 layer, 1/2 in. thick", "normalized_value": "1", "normalized_unit": null, "normalized_attribute": "gypsum_board_layers", "normalization_notes": "Applies to 1-hour rating.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.06#6", "original_value": "1 layer, 1/2 in. thick", "normalized_value": "0.5", "normalized_unit": "inches", "normalized_attribute": "gypsum_board_thickness", "normalization_notes": "Applies to 1-hour rating.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.06#7", "original_value": "1 layer, 5/8 in. thick", "normalized_value": "1", "normalized_unit": null, "normalized_attribute": "gypsum_board_layers", "normalization_notes": "Applies to 1.5-hour rating.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.06#7", "original_value": "1 layer, 5/8 in. thick", "normalized_value": "0.625", "normalized_unit": "inches", "normalized_attribute": "gypsum_board_thickness", "normalization_notes": "Applies to 1.5-hour rating.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.06#8", "original_value": "2 layers, 1/2 in. thick", "normalized_value": "2", "normalized_unit": null, "normalized_attribute": "gypsum_board_layers", "normalization_notes": "Applies to 2-hour rating.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G31.06#8", "original_value": "2 layers, 1/2 in. thick", "normalized_value": "0.5", "normalized_unit": "inches", "normalized_attribute": "gypsum_board_thickness_per_layer", "normalization_notes": "Applies to 2-hour rating.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A11.01#0", "original_value": "7022 ELYSON EXCHANGE WAY CYPRESS, TX 77433", "normalized_value": "7022 Elyson Exchange Way, Cypress, TX 77433", "normalized_unit": null, "normalized_attribute": "project_address", "normalization_notes": "Standardized capitalization and punctuation.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A11.01#1", "original_value": "INTERIOR TENANT BUILD OUT AREA OF WORK IN EXISTING BUILDING C", "normalized_value": "Interior Tenant Build Out Area Of Work In Existing Building C", "normalized_unit": null, "normalized_attribute": "scope_description", "normalization_notes": "Standardized capitalization.", "source_text_preserved": true, "normalization_confidence": "medium"}, {"assertion_id": "A11.01#2", "original_value": "7016 ELYSON EXCHANGE WAY", "normalized_value": "7016 Elyson Exchange Way", "normalized_unit": null, "normalized_attribute": "address", "normalization_notes": "Standardized capitalization. Applies to Building B.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A11.01#3", "original_value": "7022 ELYSON EXCHANGE WAY", "normalized_value": "7022 Elyson Exchange Way", "normalized_unit": null, "normalized_attribute": "address", "normalization_notes": "Standardized capitalization. Applies to Building C.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A11.01#4", "original_value": "7046 ELYSON EXCHANGE WAY", "normalized_value": "7046 Elyson Exchange Way", "normalized_unit": null, "normalized_attribute": "address", "normalization_notes": "Standardized capitalization. Applies to Building D.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A11.01#5", "original_value": "7040 ELYSON EXCHANGE WAY", "normalized_value": "7040 Elyson Exchange Way", "normalized_unit": null, "normalized_attribute": "address", "normalization_notes": "Standardized capitalization. Applies to Building E.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A11.01#6", "original_value": "7034 ELYSON EXCHANGE WAY", "normalized_value": "7034 Elyson Exchange Way", "normalized_unit": null, "normalized_attribute": "address", "normalization_notes": "Standardized capitalization. Applies to Building F.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A11.01#7", "original_value": "7052 ELYSON EXCHANGE WAY", "normalized_value": "7052 Elyson Exchange Way", "normalized_unit": null, "normalized_attribute": "address", "normalization_notes": "Standardized capitalization. Applies to Building G.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A11.01#8", "original_value": "7058 ELYSON EXCHANGE WAY", "normalized_value": "7058 Elyson Exchange Way", "normalized_unit": null, "normalized_attribute": "address", "normalization_notes": "Standardized capitalization. Applies to Building H.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A11.01#9", "original_value": "7064 ELYSON EXCHANGE WAY", "normalized_value": "7064 Elyson Exchange Way", "normalized_unit": null, "normalized_attribute": "address", "normalization_notes": "Standardized capitalization. Applies to Building J.", "source_text_preserved": true, "normalization_confidence": "high"}]