## Description
Implement a user onboarding checklist that guides new users through essential first steps in Nexlog.
## Problem
New users land on an empty dashboard with no guidance on what to do first.
## Onboarding Checklist (6 Steps)
  1. Complete your profile
    - Add display name and avatar
  2. Add your first format
    - Set up a game format (e.g., Modern, Standard)
  3. Add your first archetype
    - Create a deck archetype (e.g., Burn, Control)
  4. Create your first deck
    - Set up a deck to track matches
  5. Record your first match
    - Log a match result
  6. View your analytics
    - Check out your performance stats
## Why This Order?
Steps follow data dependency: Profile, then Format and Archetype (needed for decks), then Deck (needed for matches), then Match (generates analytics data), then Analytics.
## Acceptance Criteria
  • New users see onboarding checklist at top of dashboard
  • Checklist shows 6 steps with titles and descriptions
  • Progress bar shows completion percentage
  • Users can dismiss the checklist
  • Dismissed checklist can be re-enabled in Settings
  • Steps show Skip button if team already has that data
  • Clicking a step navigates to the relevant page
  • Mobile: checklist is collapsible
  • Progress persists across sessions
## Complexity
Large - Backend model, signal handlers, frontend components, Settings integration
## Technical Implementation
Backend Model (OnboardingProgress):
user (OneToOne)
is_dismissed (bool)
profile_completed, profile_completed_at
format_completed, format_completed_at
archetype_completed, archetype_completed_at
deck_completed, deck_completed_at
match_completed, match_completed_at
analytics_completed, analytics_completed_at
completed_at (all steps done)
API Endpoints:
GET /api/v1/users/onboarding/me/
POST /api/v1/users/onboarding/complete-profile/
POST /api/v1/users/onboarding/complete-format/
POST /api/v1/users/onboarding/complete-archetype/
POST /api/v1/users/onboarding/complete-deck/
POST /api/v1/users/onboarding/complete-match/
POST /api/v1/users/onboarding/complete-analytics/
POST /api/v1/users/onboarding/skip-format/
POST /api/v1/users/onboarding/skip-archetype/
POST /api/v1/users/onboarding/dismiss/
POST /api/v1/users/onboarding/reset/
Signal Handlers:
User save -> check profile completion
Format create -> mark format step complete
Archetype create -> mark archetype step complete
Deck create -> mark deck step complete
Match create -> mark match step complete
Frontend Components:
OnboardingChecklist (dashboard widget)
OnboardingStepItem (individual step)
useOnboarding hook (state management)
Settings toggle for re-show
## Design Decisions (Finalized)
Placement: Top of dashboard as full-width card
Auto-complete: Steps show Skip button if team already has that data type
Re-show after dismiss: Toggle in user Settings page
Email reminders: None
Celebration on completion: Tabled for future
Achievements system: Tabled for future
Mobile: Collapsible card, tap to expand
Step click action: Navigate to relevant page
Step content: Title plus short description
Analytics completion: Auto-completes on page visit
Welcome banner: Skip, checklist is sufficient
Empty states: Standard, no onboarding-specific messaging
Timestamps: Not visible to user, stored for analytics only