Commit graph

4 commits

Author SHA1 Message Date
DJP
714ab98388 Normal + Deep Extraction modes for complex client files
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>
2026-04-10 09:46:04 -04:00
DJP
3cb1973f57 Fix tier matching: use client tier to pick correct complexity variant
- 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>
2026-04-09 15:17:20 -04:00
DJP
26d3435be0 Improve matching, upload UX, collapse fix, full catalog approach
- 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>
2026-03-27 19:22:08 -04:00
DJP
e18976fdb2 Initial commit - GMAL Scope Builder
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>
2026-03-27 17:35:14 -04:00