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 @@
{"normalized_assertions": [{"assertion_id": "A23.01#11", "original_value": "CLASS A", "normalized_value": "A", "normalized_unit": null, "normalized_attribute": "fire_rating_class", "normalization_notes": "Normalized from 'CLASS A'.", "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": "24", "normalized_unit": "inches", "normalized_attribute": "width", "normalization_notes": "Parsed from '24\" X 24\"' in source text.", "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": "24", "normalized_unit": "inches", "normalized_attribute": "height", "normalization_notes": "Parsed from '24\" X 24\"' in source text.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A23.01#13", "original_value": "CPT1", "normalized_value": "CPT-1", "normalized_unit": null, "normalized_attribute": "finish_floor_type", "normalization_notes": "Standardized tag format from 'CPT1' (source 'CPT 1').", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A23.01#14", "original_value": "CPT1", "normalized_value": "CPT-1", "normalized_unit": null, "normalized_attribute": "finish_floor_type", "normalization_notes": "Standardized tag format from 'CPT1' (source 'CPT 1').", "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": "2", "normalized_unit": null, "normalized_attribute": "polished_concrete_grade", "normalization_notes": "Parsed from 'Grade 2 (Medium Exposed)'.", "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": "1", "normalized_unit": null, "normalized_attribute": "polished_concrete_class", "normalization_notes": "Parsed from 'Class 1 (Matte) Finish'.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A23.01#16", "original_value": "0.50", "normalized_value": "0.50", "normalized_unit": "SCOF", "normalized_attribute": "slip_resistance_scof_min", "normalization_notes": "Unit from source text 'STATIC COEFFICIENT OF FRICTION (SCOF)'. Source specifies 'no less than', so this is a minimum value.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "A23.01#17", "original_value": "PC1", "normalized_value": "PC-1", "normalized_unit": null, "normalized_attribute": "finish_floor_type", "normalization_notes": "Standardized tag format from 'PC1' (source 'PC 1').", "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": "G11.01", "normalized_unit": null, "normalized_attribute": "sheet_reference", "normalization_notes": "Extracted from note.", "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": "general_note", "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "low"}, {"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": "general_note", "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "low"}, {"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": "general_note", "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "low"}, {"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": "3/A92.01", "normalized_unit": null, "normalized_attribute": "detail_reference", "normalization_notes": "Extracted from note.", "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": "general_note", "normalization_notes": null, "source_text_preserved": tLine truncated