Problem: Complex client Excel files (30+ columns, merged cells, Q&A columns,
tier data) produced zero assets because the extraction was a dumb pipe dump
that lost all column context.
Fix:
- Smart Excel extraction: detects header rows, labels each value with its
column name, skips empty sheets, handles merged cells. Claude now sees
"Top 10 deliverables: Toolbox presentation deck | Tier A: Yes | 1"
instead of "Toolbox | Base | Toolbox presentation deck | ü' | Yes | 1"
- Two extraction modes on Upload tab:
- Normal: fast single-pass extraction (~$0.05)
- Deep Extraction: two-pass AI analysis (~$0.15-0.30)
Pass 1: Claude analyzes the spreadsheet structure
Pass 2: Claude extracts assets using the structural understanding
- Upload endpoint accepts ?mode=normal|deep query parameter
- Background parse shows "Deep extraction: analyzing structure (Pass 1 of 2)"
- Tested against both Wella files - header-aware extraction produces
clear labelled output
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Doc parser now extracts tier labels (Tier A, A, Gold, etc.) per asset
- Matching uses tier to find the correct GMAL complexity variant:
- Claude matches to the GMAL family (asset type)
- Post-match lookup: (asset_name + target_complexity_level) finds exact variant
- e.g. "Banner - Tier A" with A=Complex → finds Complex variant by asset_name query
- Tier hint passed to Claude prompt for better matching
- No blind expansion - only the tier-appropriate GMAL is matched
- Expand to Tiers button still available for when client doesn't specify tiers
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Upload now shows live stage progress (uploading -> extracting -> AI parsing -> done)
- Fix match group collapse: proper React state instead of DOM manipulation
- Replace pre-filter with full GMAL catalog sent to Claude (~3k tokens, <$0.01)
- FTS and keyword matching missed too many semantic matches
- Claude now sees all 243 assets and uses semantic understanding
- Improved system prompt with terminology bridges for better scoring
- Per-project AI cost tracking persisted to DB
- Parallel matching with cancel support
- Auto-select matches >= 80%, YOLO button for rest
- Debug panel for AI call inspection
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Dockerized web app (FastAPI + React + PostgreSQL) for scoping client ratecards
against the GMAL master asset database. Features:
- GMAL data ingestion from Excel (390 assets, 120 roles, 5 model types)
- AI-powered document parsing and asset extraction (Claude Opus 4.6)
- AI matching engine with parallel batching, confidence scoring, caveats
- Ratecard builder with hours x volume calculation
- Excel and PDF export
- GMAL browser and inline editor
- AI cost tracking per project (persisted to DB)
- Debug panel for AI call inspection
- Dark theme UI with gold (#FFC407) accent
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>