Use this checklist to manually verify all integration requirements are met.
- Backend is running (
make devor manual start) - Frontend is running (
npm run dev) - Services are healthy (PostgreSQL, Qdrant, Redis via docker-compose)
- Environment variables are set:
- Backend:
OPENAI_API_KEYinbackend/.env - Frontend: API URL configured in
app/.env.local
- Backend:
- Run:
curl http://localhost:8000/tokens/defaults - Response includes all 4 categories (colors, typography, spacing, borderRadius)
- Colors use semantic names (primary, secondary, accent, destructive, muted, background, foreground, border)
- Typography includes font scale (fontSizeXs through fontSize4xl)
- Spacing includes scale (xs, sm, md, lg, xl, 2xl, 3xl)
- BorderRadius includes scale (sm, md, lg, xl, full)
- Upload a design system screenshot
- Response includes
tokensobject with all 4 categories - Response includes
confidencescores - Response includes
metadatawith filename and image info - Confidence scores are numeric values between 0 and 1
- Test with invalid file type → returns 400 error
- Test with >10MB file → returns 400 error
- Authenticate with valid Figma PAT
- Extract from Figma file with published styles
- Response includes all 4 token categories
- Style names mapped to semantic tokens correctly
- Test invalid PAT → returns authentication error
- Test invalid URL → returns appropriate error
- Navigate to
/extract - Screenshot tab is selected by default
- Upload a design system screenshot (drag-and-drop or file picker)
- Progress indicator appears during extraction
- All 4 token categories appear after extraction:
- Colors section with semantic names
- Typography section with font scale
- Spacing section with scale values
- BorderRadius section with visual previews
- Semantic color names are correctly mapped:
- Primary color identified
- Secondary color identified
- Accent color identified
- Destructive/error color identified
- Confidence scores flow to UI:
- Badges visible on token fields
- Badge colors match confidence level (see TASK 13.6)
- Navigate to
/extract - Switch to Figma tab
- Enter valid Figma Personal Access Token
- Authentication succeeds
- Enter Figma file URL
- Click Extract button
- All 4 token categories appear
- Keyword matching works for semantic tokens:
- "Primary/Blue" →
colors.primary - "Brand/Main" →
colors.primary - "Error/Red" →
colors.destructive - "Heading/Large" →
typography.fontSize3xlor similar
- "Primary/Blue" →
- Test various naming conventions:
- Slash notation: "Primary/Blue"
- Dash notation: "primary-blue"
- Space notation: "Primary Blue"
- After extraction, find a color field (e.g., primary)
- Change the hex value
- Color preview updates immediately
- Confidence badge remains visible
- Change persists when switching between categories
- Find BorderRadius section
- Change a value (e.g., "md" from "6px" to "8px")
- Visual preview box updates with new border radius
- Try different values:
- Small values (2px, 4px)
- Large values (16px, 24px)
- Full rounded (9999px or 50%)
- Change a font size value
- Change font family (select from dropdown or enter custom)
- Change font weight
- Changes reflect immediately
- Confidence badges remain visible during editing
- Click Export button
- Select JSON format
- Download file
- Open JSON file and verify:
- All 4 categories present (colors, typography, spacing, borderRadius)
- Semantic color names preserved
- Font scale included (fontSizeXs through fontSize4xl)
- Spacing scale complete
- BorderRadius scale complete
- Structure matches backend
DesignTokensmodel
- Select CSS format
- Download file
- Open CSS file and verify:
-
:rootselector present - Variables use semantic naming:
--color-primary,--color-secondary, etc.--font-size-xsthrough--font-size-4xl--spacing-xsthrough--spacing-3xl--border-radius-smthrough--border-radius-full
-
- Select Tailwind config format
- Download file
- Verify borderRadius section included in config
- Verify all token categories properly formatted for Tailwind
- Try uploading PDF file → Shows error message
- Try uploading 20MB image → Shows error message
- Error messages are user-friendly (not technical stack traces)
- Disconnect backend, try extraction → Shows appropriate error
- Shows retry option or clear next steps
- Network timeout handled gracefully
- If backend returns incomplete data, UI handles gracefully
- Shows warning for missing categories
- Doesn't crash or show blank page
- High confidence (>0.9) shows green badge
- Medium confidence (0.7-0.9) shows yellow badge
- Low confidence (<0.7) shows red badge
- Test with extracted tokens that have various confidence scores
- Verify each badge color matches its confidence value
- Hover or inspect badges to see exact confidence percentage
- Tokens with null confidence handled gracefully
- Tokens with missing confidence don't crash UI
- Tokens with confidence = 0 or 1 display correctly
- Upload design system screenshot
- Verify response includes:
-
colorsobject with semantic fields -
typographyobject with font scale -
spacingobject with scale values -
borderRadiusobject with scale values
-
- Each category has confidence scores
- No category is empty or null
- Connect to Figma file
- Extract tokens
- Verify semantic tokens returned:
- Colors mapped to primary/secondary/accent/etc.
- Typography includes font families and sizes
- Spacing scale extracted
- BorderRadius values extracted
- Keyword matching functional (see TASK 12.3)
After extraction, verify TokenEditor shows:
- Semantic color fields visible
- Color pickers functional
- Hex validation works
- Confidence badges visible
- Font family dropdown
- Font size fields (xs through 4xl)
- Font weight selectors
- Line height fields
- All values editable
- Scale fields (xs through 3xl)
- Visual preview of spacing
- Validation for 4px multiples
- Scale fields (sm through full)
- Visual preview boxes showing rounded corners
- Preview updates on value change
- Open app in incognito/private window
- Modal appears automatically
- Modal shows "Welcome to ComponentForge!" title
- Three workflow cards visible:
- Design System Screenshot
- Component Mockups
- Figma File
- Each card shows icon, title, description, and example text
- Skip button visible
- Help text visible: "You can always access this guide from the Help menu"
- After completing or skipping onboarding, refresh page
- Modal does NOT appear
- Close browser and reopen → Modal still doesn't appear
- Only appears after clearing localStorage
- Click "Design System Screenshot" card
- Navigates to
/extractpage - Modal closes
- Preference saved (verify in localStorage:
componentforge-onboarding) - Subsequent visits don't show modal
- Clear localStorage, reload to show modal
- Click "Component Mockups" card
- Navigates to
/extractpage - Modal closes
- Preference saved
- Clear localStorage, reload to show modal
- Click "Figma File" card
- Navigates to
/extractpage - Modal closes
- Preference saved
- Clear localStorage, reload to show modal
- Click "Skip for now" button
- Modal closes
- Stays on current page (doesn't navigate)
-
hasSeenOnboarding: truesaved to localStorage
- Navigate to
/extract - Upload design system screenshot
- Wait for extraction to complete
- Verify all 4 categories appear
- Edit a color value
- Edit a borderRadius value
- Click Export
- Select JSON format
- Download and verify file contains edits
- File includes all 4 categories with correct values
- Navigate to
/extract - Switch to Figma tab
- Enter Figma PAT
- Authenticate
- Enter Figma file URL
- Click Extract
- Verify semantic token mapping
- Verify all 4 categories present
- Edit a typography value
- Export as Tailwind config
- Verify exported config is valid and includes all categories
- Upload/extract design system with 50+ tokens
- Extraction completes in <10 seconds
- UI remains responsive during extraction
- All tokens render correctly
- No lag when editing tokens
- 12.1: API endpoints verified ✓
- 12.2: Screenshot extraction E2E ✓
- 12.3: Figma extraction E2E ✓
- 12.4: Token editing flow ✓
- 12.5: Export functionality ✓
- 12.6: Error handling ✓
- 12.7: Confidence score integration ✓
- 12.8: Complete integration flows ✓
- 13.1: Screenshot extraction all categories ✓
- 13.2: Figma extraction semantic tokens ✓
- 13.3: TokenEditor displays all categories ✓
- 13.4: Onboarding modal first visit ✓
- 13.5: Workflow selection ✓
- 13.6: Confidence badge colors ✓
Date Tested: _____________
Tester: _____________
Environment: Local / Staging / Production
Overall Status: ☐ Pass ☐ Pass with minor issues ☐ Fail