gmal-scope-builder/backend
DJP a79529470e Fix header detection: distinguish header text from data values
Problem: Header detection picked data rows (with Yes/No/numbers) as headers
because they had more filled cells than the actual header row (which had
merged cells with gaps). Result: data values became column labels, deep
extraction failed.

Fix:
- Header values must be text-like (not numbers, Yes/No, 0/1, ü, x, -)
- Only consecutive header rows count - stop scanning at first data row
- Multi-row headers combined (row 1 + row 2 both contribute)
- Tested against Wella Job Routes 2: correctly identifies row 2 as header
  with "Buckets | Categories | Top 10 deliverables | Tier A | Tier B | Tier C"

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 16:15:00 -04:00
..
alembic Initial commit - GMAL Scope Builder 2026-03-27 17:35:14 -04:00
app Fix header detection: distinguish header text from data values 2026-04-12 16:15:00 -04:00
alembic.ini Initial commit - GMAL Scope Builder 2026-03-27 17:35:14 -04:00
Dockerfile Initial commit - GMAL Scope Builder 2026-03-27 17:35:14 -04:00
requirements.txt Add Azure SSO + production deployment config 2026-03-28 18:51:18 +00:00
start.sh Add Azure SSO + production deployment config 2026-03-28 18:51:18 +00:00