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 @@
[{"assertion_id": "E05.01#14", "original_value": "12", "normalized_value": "12", "normalized_unit": "inches", "normalized_attribute": null, "normalization_notes": "Extracted from source text '12\"'.", "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": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": null}, {"assertion_id": "E05.01#16", "original_value": "24", "normalized_value": "24", "normalized_unit": "inches", "normalized_attribute": null, "normalization_notes": "Extracted from source text '24\"'.", "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": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": null}, {"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": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": null}, {"assertion_id": "E05.02#2", "original_value": "Confirm switching requirement with the owner.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": null}, {"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": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": null}, {"assertion_id": "E05.02#4", "original_value": "Grounding electrode conductor to ground to 3/4\" x 10' Cu rod or building steel.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Complex value with multiple dimensions. Source text has a likely typo '3/4'' which is '3/4\"' in the value.", "source_text_preserved": true, "normalization_confidence": "low"}, {"assertion_id": "E05.02#5", "original_value": "6", "normalized_value": "6", "normalized_unit": "inches", "normalized_attribute": null, "normalization_notes": "Extracted from source text '6\"'.", "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": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is conditional and contains multiple dimensions.", "source_text_preserved": true, "normalization_confidence": "low"}, {"assertion_id": "E05.02#7", "original_value": "Neoprene vibration isolation pad", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": null}, {"assertion_id": "E05.02#8", "original_value": "Provide NEC working clearance in front of transformers.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": null}, {"assertion_id": "E05.02#9", "original_value": "Min 1/4", "normalized_value": "0.25", "normalized_unit": "inches", "normalized_attribute": null, "normalization_notes": "Value is a minimum. Normalized from '1/4\"' in source.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.02#10", "original_value": "4", "normalized_value": "4", "normalized_unit": "count", "normalized_attribute": null, "normalization_notes": "Value represents a quantity.", "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": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Complex value with multiple dimensions and counts.", "source_text_preserved": true, "normalization_confidence": "low"}, {"assertion_id": "E05.02#12", "original_value": "4 spring vibration isolators sized for weight of transformeLine truncated