Added critical section on using local common platform packages instead of Gitea registry:
- .pnpmfile.cjs configuration for local package resolution
- .npmrc configuration (remove repo-level GITEA_NPM_TOKEN)
- Environment variables (BYTELYST_PACKAGE_SOURCE)
- Verification commands to confirm local resolution
- Benefits of local package resolution (faster dev, offline, no registry dependency)
- Updated Phase 1 roadmap to include local package setup
This ensures other products follow the same approach of using local common-plat packages by default instead of pulling from Gitea registry.
Expanded from testing-focused guide to comprehensive UX implementation guide covering all UX work from last 2 days:
Part 1: Common Platform UI Integration
- Product Adapter Pattern with type-safe extensions
- Centralized import point for all UI components
- Product-specific variants without modifying common platform
Part 2: Design Token Usage
- CSS variable integration patterns
- Component token patterns
- Token migration checklist
Part 3: Component Normalization
- Badge normalization (commit: 94ce743)
- Alert banner unification (commit: d4846b7)
- Table controls standardization
- Control normalization pattern with 5-step process
Part 4: Accessibility Improvements
- Keyboard navigation patterns (commits: 3c52593, a65d726)
- ARIA labels for buttons, status indicators, forms
- Focus indicators and focus order
Part 5: Responsive Design
- Shell breakpoints (commit: c51544a)
- Viewport matrix testing
- Mobile-first patterns
Part 6: Testing Infrastructure
- Playwright setup (commit: 8db23bd)
- Test suite structure (commit: 79f0021)
- Test runner with server lifecycle (commits: df7c57e, a572293, 2bd38e1)
- AI-friendly report generation
- Storybook setup
Part 7: Cipher Design System Integration
- Design principles: hierarchy, spacing, typography, color, accessibility
- Component patterns: cards, buttons, alerts
- WCAG AA compliance
Part 8: Implementation Roadmap
- 10-week phased approach
- Clear verification commands at each phase
- Commit references for specific patterns
Part 9: Verification Commands
- UI audit, type checking, build verification
- Test execution commands
- Storybook commands
Part 10: Troubleshooting
- Common issues and solutions
- Playwright, design tokens, component imports
Part 11: Best Practices
- Component development, code organization
- Testing strategy, documentation
Part 12: References
- Common platform, Cipher design system, testing tools
This guide enables other products to replicate the exact same UX implementation approach with 40+ commits of UX work documented.
Created detailed documentation for UX testing infrastructure that can be replicated across all ByteLyst products:
- Complete Playwright setup instructions
- Test suite structure and patterns
- Test runner script with server lifecycle management
- AI-friendly report generation
- Common platform UI integration
- Design token usage patterns
- Cipher design system integration
- Step-by-step implementation guide
- Troubleshooting and best practices
- CI integration examples
This guide enables other products to follow the exact same steps for UX testing
using common platform packages, design tokens, and Cipher design system principles.
- Created e2e/alert-positioning.spec.ts for critical alerts positioning tests
- Created e2e/assistant-positioning.spec.ts for assistant widget positioning tests
- Created e2e/destructive-actions.spec.ts for destructive actions confirmation tests
- Created e2e/feedback.spec.ts for save/delete/update feedback tests
- Created e2e/page-states.spec.ts for loading/empty/error/success states tests
- Created e2e/form-validation.spec.ts for form validation tests
- Created e2e/keyboard-navigation.spec.ts for keyboard navigation tests
- Created scripts/tests/run-e2e.sh test runner script with health check
- Updated LAUNCH_READY_UI_UX_ROADMAP.md checklist - all items complete
- All testing infrastructure complete (CI integration replaced with local test runner)
- Installed Playwright and Storybook packages
- Created playwright.config.ts with viewport matrix and browser configurations
- Installed Playwright chromium browser
- Created e2e/viewport-matrix.spec.ts for viewport matrix testing
- Created e2e/horizontal-overflow.spec.ts for horizontal overflow testing
- Added test scripts to package.json (test:e2e, test:e2e:ui, test:e2e:viewport, test:e2e:overflow)
- Updated LAUNCH_READY_UI_UX_ROADMAP.md checklist with testing infrastructure status
- PR 1: Package Source and Install Stability - Verified
- Local product install works without Gitea npm auth
- Common-platform packages don't surprise local installs with private registry assumptions
- PR 2: Common Platform Foundation - Verified
- Design tokens follow clear primitive, alias, semantic, typography, and effects structure
- Shared primitives cover required components
- Common platform UI can be reused by another product without trading-specific assumptions
- PR 3: Product Adapter And Shell - Verified
- Desktop, tablet, and phone navigation follow the shell contract
- Right panel behaves correctly across responsive breakpoints
- AlertBanner components are inline within content
- ChatControl assistant widget uses createPortal with fixed positioning
- Add note about signal-status, rule-status, route-fallback-status, trading-sidebar-avatar-status
- These are intentional app-shell and component-level layouts, not dense operational table visual language
- Audit remains clean: 0 findings across all categories
- Updated PRODUCTION_GRADE_UX_REMEDIATION_ROADMAP.md with final completion status
- Moved PRODUCTION_GRADE_UX_REMEDIATION_ROADMAP.md to docs/completed/
- Updated LAUNCH_READY_UI_UX_ROADMAP.md checklist with completed work
- All one-off visual language replaced with shared Badge components
- Audit baseline clean: 0 findings across all categories
- Replace .stat-chip with Badge in PresetMarketplace, BacktestTab, MembershipTab
- Replace .saved-setup-id-chip with Badge in SimpleView
- Replace .screener-sector-chip with Badge in ScreenerView
- Replace .health-pill with Badge in TradeProfileManager
- Remove CSS definitions for one-off classes from index.css
- All components now use shared Badge from product adapter
- Verify: audit:ui (0 findings), audit:ui:strict (0 findings), typecheck, build