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": "A51.01#16", "original_value": "33\"-36\"", "normalized_value": "33-36", "normalized_unit": "inches", "normalized_attribute": null, "normalization_notes": "Value is a range.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A51.01#17", "original_value": "17\"-19\"", "normalized_value": "17-19", "normalized_unit": "inches", "normalized_attribute": null, "normalization_notes": "Value is a range.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A51.01#18", "original_value": "7\"-9\"", "normalized_value": "7-9", "normalized_unit": "inches", "normalized_attribute": null, "normalization_notes": "Value is a range.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A51.01#19", "original_value": "3'-6\"", "normalized_value": "42", "normalized_unit": "inches", "normalized_attribute": null, "normalization_notes": "Source text includes 'MIN.'.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A51.01#20", "original_value": "3'-4\"", "normalized_value": "40", "normalized_unit": "inches", "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "M01.01#0", "original_value": "ROOFTOP A/C UNIT", "normalized_value": "ROOFTOP A/C UNIT", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is already in a standard format.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "M01.01#1", "original_value": "CARRIER", "normalized_value": "Carrier", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Normalized to title case.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "M01.01#2", "original_value": "50FE-M07", "normalized_value": "50FE-M07", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is already in a standard format.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "M01.01#3", "original_value": "711", "normalized_value": "711", "normalized_unit": "LBS", "normalized_attribute": null, "normalization_notes": "Unit 'LBS' from source text context.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "M01.01#4", "original_value": "2100", "normalized_value": "2100", "normalized_unit": "CFM", "normalized_attribute": null, "normalization_notes": "Unit 'CFM' from source text context.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "M01.01#5", "original_value": "3.0", "normalized_value": "3.0", "normalized_unit": "HP", "normalized_attribute": null, "normalization_notes": "Unit 'HP' from source text context.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "M01.01#6", "original_value": "6.0", "normalized_value": "6.0", "normalized_unit": "Tons", "normalized_attribute": null, "normalization_notes": "Unit 'TONS' from source text context, normalized to 'Tons'.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "M01.01#7", "original_value": "10.6", "normalized_value": "10.6", "normalized_unit": "kW", "normalized_attribute": null, "normalization_notes": "Unit 'ELEC KW' from source text context, normalized to 'kW'.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "M01.01#8", "original_value": "460", "normalized_value": "460", "normalized_unit": "V", "normalized_attribute": null, "normalization_notes": "Unit 'VOLT' from source text context, normalized to 'V'.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "M01.01#9", "original_value": "3", "normalized_value": "3", "normalized_unit": "phase", "normalized_attribute": null, "normalization_notes": "Unit 'PH' from source text context, normalized to 'phase'.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "M01.01#10", "original_value": "24", "normalized_value": "24", "normalized_unit": "A", "normalized_attribute": null, "normalization_notes": "Unit 'A' (Amps) inferred from attribute 'MCA' (Minimum Circuit Ampacity).", "source_text_preserved": true, "normalization_confidence": "medium"}, {"assertion_id": "M01.01#11", "original_value": "25", "normalized_value": "25", "normalized_unit": "A", "normalized_attribute": null, "normalization_notes": "Unit 'A' (Amps) inferred from attribute 'MOCP' (Maximum Overcurrent Protection).", "source_text_preserved": true, "normalization_confidence": "medium"}, {"assertion_id": "M01.01#12", "original_value": "11.2 EER - 15.5 IEER", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Composite value with multiple ratings (EER, IEER). Not safe to normalize into a single value.", "source_text_preserved":Line truncated