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:
2026-07-03 00:22:02 +00:00
co-authored by Claude Opus 4.8
commit 1d248a8808
262 changed files with 8209 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
# Code / standard reference corpus (Stage 7)
Drop plain-text `.txt` files here. Stage 7 (`code_review.py`) retrieves the most
relevant excerpts and lets the model cite section numbers **only** when they
appear in a retrieved excerpt. An empty corpus is valid — Stage 7 then runs
reasoning-only and cites nothing.
## File naming → standard
The standard is inferred from the filename prefix:
| prefix | standard |
|-----------------|----------|
| `ada*.txt` | ADA |
| `tas*.txt` | TAS |
| `ibc*.txt` | IBC |
| `ifc*.txt` | IFC |
| `iebc*.txt` | IEBC |
| `energy*.txt` | ENERGY |
(Only `.txt` files are loaded; this `README.md` is ignored.)
## Format
Plain text, chunks separated by a blank line. If a chunk begins with a section
number (e.g. `404.2.3 Doors ...`), that number is captured as its section id and
is what the model may cite.
```
404.2.3 Door and Gate Opening Force
Fire doors shall have a minimum opening force allowable by the appropriate
administrative authority. The force for pushing or pulling open ...
405.2 Slope
Ramp runs shall have a running slope not steeper than 1:12.
```
## Licensing note
- **ADA 2010 Standards** and **Texas Accessibility Standards (TAS)** are
government documents and can be included here.
- **IBC / IFC / IECC** are ICC copyrighted works — do **not** paste their text
unless you have a license. Provide your own licensed copy if needed.
File diff suppressed because it is too large Load Diff