386 lines
11 KiB
Markdown
386 lines
11 KiB
Markdown
# Frontend Architect Agent
|
|
|
|
## Overview
|
|
|
|
The Frontend Architect agent is a specialized AI agent designed to help with frontend architecture decisions, component design, performance optimization, and modern frontend development patterns.
|
|
|
|
## When to Use This Agent
|
|
|
|
Invoke this agent when you need:
|
|
|
|
- **Architecture Design**: Component hierarchy, folder structure, state management strategy
|
|
- **Framework Selection**: Choosing between React/Next.js, Vue/Nuxt, or Angular
|
|
- **Performance Optimization**: Code splitting, lazy loading, bundle optimization
|
|
- **Design System Implementation**: Atomic Design, component libraries, theming
|
|
- **Migration Planning**: React Pages → App Router, Vue 2 → Vue 3, JavaScript → TypeScript
|
|
- **Micro-Frontend Architecture**: Module Federation, Single-SPA, independent deployments
|
|
- **Testing Strategy**: Unit, integration, E2E testing setup for frontend
|
|
- **Build Configuration**: Vite, Webpack, Turbopack setup and optimization
|
|
- **SEO & Accessibility**: Server-side rendering, metadata, WCAG compliance
|
|
|
|
## How to Invoke
|
|
|
|
Use the Task tool with `subagent_type`:
|
|
|
|
```typescript
|
|
Task({
|
|
subagent_type: "specweave-frontend:frontend-architect:frontend-architect",
|
|
prompt: "Design a component architecture for a dashboard application with real-time data updates"
|
|
});
|
|
```
|
|
|
|
## Agent Capabilities
|
|
|
|
### 1. Framework Expertise
|
|
|
|
**React Ecosystem**:
|
|
- React 18+ with Concurrent features
|
|
- Next.js 14+ App Router and Server Components
|
|
- State management (Zustand, Redux Toolkit, Jotai, React Query)
|
|
- Custom Hooks patterns
|
|
|
|
**Vue Ecosystem**:
|
|
- Vue 3 Composition API
|
|
- Nuxt 3 with Nitro engine
|
|
- Pinia state management
|
|
- Composables and auto-imports
|
|
|
|
**Angular Ecosystem**:
|
|
- Angular 17+ with standalone components
|
|
- Signals for reactivity
|
|
- RxJS reactive programming
|
|
- NgRx state management
|
|
|
|
### 2. Architecture Patterns
|
|
|
|
- **Atomic Design**: Organize components by complexity (Atoms → Molecules → Organisms → Templates → Pages)
|
|
- **Compound Components**: Flexible component composition
|
|
- **Smart vs Presentational**: Separation of concerns
|
|
- **Micro-Frontends**: Module Federation, Single-SPA
|
|
- **Design Systems**: Token architecture, multi-brand support
|
|
|
|
### 3. Performance Optimization
|
|
|
|
- Code splitting strategies (route-based, component-based)
|
|
- Lazy loading and dynamic imports
|
|
- Bundle optimization (tree shaking, vendor splitting)
|
|
- Image optimization (next/image, responsive images)
|
|
- Core Web Vitals (LCP, FID, CLS)
|
|
- Virtual scrolling for large lists
|
|
|
|
### 4. Build & Tooling
|
|
|
|
- Vite for lightning-fast development
|
|
- Webpack 5 with Module Federation
|
|
- Turbopack (Next.js)
|
|
- TypeScript strict mode configuration
|
|
- ESLint + Prettier + Husky
|
|
|
|
### 5. Testing
|
|
|
|
- Vitest for unit testing
|
|
- React/Vue Testing Library
|
|
- Playwright for E2E
|
|
- MSW for API mocking
|
|
- Storybook for component development
|
|
|
|
### 6. Styling Approaches
|
|
|
|
- CSS-in-JS (styled-components, Emotion, Vanilla Extract)
|
|
- Utility-first (TailwindCSS, UnoCSS)
|
|
- CSS Modules with composition
|
|
- Modern CSS (Variables, Container Queries, Cascade Layers)
|
|
|
|
### 7. SEO & Accessibility
|
|
|
|
- Server-side rendering strategies
|
|
- Metadata API (Next.js)
|
|
- Structured data (JSON-LD)
|
|
- ARIA labels and roles
|
|
- Keyboard navigation
|
|
- WCAG AA/AAA compliance
|
|
|
|
## Common Use Cases
|
|
|
|
### 1. Scaffold New Frontend Project
|
|
|
|
**Prompt**:
|
|
```
|
|
"Set up a Next.js 14 App Router project with TypeScript, TailwindCSS, Zustand for state management, and Playwright for E2E testing"
|
|
```
|
|
|
|
**What the agent provides**:
|
|
- Project structure with best practices
|
|
- Configuration files (tsconfig, eslint, prettier)
|
|
- Base components and layouts
|
|
- Testing infrastructure setup
|
|
- Deployment pipeline configuration
|
|
|
|
### 2. Design Component Architecture
|
|
|
|
**Prompt**:
|
|
```
|
|
"Design a reusable DataTable component with sorting, filtering, pagination, and virtual scrolling for 10,000+ rows"
|
|
```
|
|
|
|
**What the agent provides**:
|
|
- Component hierarchy (Atomic Design)
|
|
- Props interface design
|
|
- State management approach
|
|
- Performance optimization strategy
|
|
- Usage examples and documentation
|
|
|
|
### 3. Optimize Performance
|
|
|
|
**Prompt**:
|
|
```
|
|
"Analyze and optimize a React dashboard application with slow initial load (5s+) and laggy interactions"
|
|
```
|
|
|
|
**What the agent provides**:
|
|
- Performance audit checklist
|
|
- Bundle size analysis approach
|
|
- Code splitting recommendations
|
|
- Lazy loading strategy
|
|
- Caching optimization
|
|
- Monitoring setup (Core Web Vitals)
|
|
|
|
### 4. Implement Design System
|
|
|
|
**Prompt**:
|
|
```
|
|
"Create a design system with support for light/dark themes, 3 brand colors, and consistent spacing/typography across 20+ components"
|
|
```
|
|
|
|
**What the agent provides**:
|
|
- Design token architecture
|
|
- Theme configuration system
|
|
- Base components (atoms, molecules)
|
|
- Storybook setup
|
|
- Documentation guidelines
|
|
|
|
### 5. Migration Strategy
|
|
|
|
**Prompt**:
|
|
```
|
|
"Plan migration from React Pages Router to App Router for a 50+ page e-commerce application"
|
|
```
|
|
|
|
**What the agent provides**:
|
|
- Incremental migration strategy
|
|
- Compatibility analysis
|
|
- Server Components adoption plan
|
|
- Data fetching migration
|
|
- Testing strategy
|
|
- Rollback plan
|
|
|
|
## Example Workflows
|
|
|
|
### Workflow 1: New Feature Development
|
|
|
|
1. **Define Requirements**: Describe the feature and constraints
|
|
2. **Architecture Design**: Agent designs component structure
|
|
3. **Implementation Plan**: Breaking down into tasks
|
|
4. **Code Scaffolding**: Generate initial component templates
|
|
5. **Testing Strategy**: Unit + integration + E2E test plan
|
|
6. **Performance Review**: Ensure Core Web Vitals targets met
|
|
|
|
### Workflow 2: Performance Optimization
|
|
|
|
1. **Current State Analysis**: Measure existing metrics
|
|
2. **Bottleneck Identification**: Bundle size, render performance
|
|
3. **Optimization Plan**: Code splitting, lazy loading, caching
|
|
4. **Implementation**: Apply optimizations
|
|
5. **Measurement**: Compare before/after metrics
|
|
6. **Monitoring**: Set up ongoing tracking
|
|
|
|
### Workflow 3: Design System Creation
|
|
|
|
1. **Audit Existing Components**: Identify patterns and inconsistencies
|
|
2. **Define Design Tokens**: Colors, typography, spacing, shadows
|
|
3. **Create Base Components**: Atoms (Button, Input, Icon)
|
|
4. **Build Composite Components**: Molecules (Form Field, Card)
|
|
5. **Document Usage**: Storybook with examples
|
|
6. **Migration Plan**: Adopt design system across codebase
|
|
|
|
## Input Format
|
|
|
|
The agent expects a clear, specific prompt describing:
|
|
|
|
1. **Context**: What are you building? What framework?
|
|
2. **Requirements**: What features/constraints?
|
|
3. **Goals**: Performance targets, accessibility needs, SEO requirements
|
|
4. **Constraints**: Team size, timeline, existing tech stack
|
|
|
|
**Good prompt**:
|
|
```
|
|
"Design a React dashboard for financial data visualization with:
|
|
- Real-time WebSocket updates
|
|
- 10+ chart types (using D3.js)
|
|
- Responsive design (mobile, tablet, desktop)
|
|
- Dark mode support
|
|
- Target LCP < 2.5s
|
|
- Accessibility WCAG AA compliant
|
|
Existing stack: Next.js 14, TypeScript, TailwindCSS"
|
|
```
|
|
|
|
**Poor prompt**:
|
|
```
|
|
"Make a dashboard"
|
|
```
|
|
|
|
## Output Format
|
|
|
|
The agent provides:
|
|
|
|
1. **Architecture Overview**: High-level structure and decisions
|
|
2. **Component Hierarchy**: Atomic Design breakdown
|
|
3. **Technology Recommendations**: Libraries, tools, patterns
|
|
4. **Implementation Plan**: Step-by-step tasks
|
|
5. **Code Examples**: Scaffolding and patterns
|
|
6. **Testing Strategy**: Unit, integration, E2E approach
|
|
7. **Performance Checklist**: Optimization targets
|
|
8. **Documentation**: Usage guidelines
|
|
|
|
## Best Practices
|
|
|
|
### 1. TypeScript First
|
|
Always use TypeScript with strict mode for type safety.
|
|
|
|
### 2. Component Composition
|
|
Prefer composition over inheritance for flexibility.
|
|
|
|
### 3. Performance Budgets
|
|
Monitor and enforce bundle size limits (e.g., < 200KB initial JS).
|
|
|
|
### 4. Accessibility
|
|
Build with a11y from the start, not as afterthought.
|
|
|
|
### 5. Testing Pyramid
|
|
More unit tests, fewer E2E tests (70% unit, 20% integration, 10% E2E).
|
|
|
|
### 6. Code Splitting
|
|
Split by routes and heavy components for faster initial load.
|
|
|
|
### 7. Progressive Enhancement
|
|
Ensure basic functionality without JavaScript.
|
|
|
|
### 8. Documentation
|
|
Document complex components in Storybook with examples.
|
|
|
|
## Integration with SpecWeave
|
|
|
|
### Use with /specweave:increment
|
|
|
|
When planning a frontend feature increment:
|
|
|
|
```bash
|
|
# 1. Plan increment
|
|
/specweave:increment "Design and implement responsive navigation with mega menu"
|
|
|
|
# 2. Generate architectural plan
|
|
Task({
|
|
subagent_type: "specweave-frontend:frontend-architect:frontend-architect",
|
|
prompt: "Design component architecture for responsive navigation with mega menu supporting 100+ menu items, search, and multi-level dropdowns"
|
|
});
|
|
|
|
# 3. Implement based on architectural plan
|
|
/specweave:do
|
|
```
|
|
|
|
### Use with /specweave:qa
|
|
|
|
After implementation, validate architecture decisions:
|
|
|
|
```bash
|
|
# Run quality assessment
|
|
/specweave:qa 0123
|
|
|
|
# Agent checks:
|
|
# - Component modularity
|
|
# - Performance metrics
|
|
# - Accessibility compliance
|
|
# - Code splitting effectiveness
|
|
# - Bundle size
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### Issue: Agent recommends outdated patterns
|
|
|
|
**Solution**: Specify framework version explicitly in prompt
|
|
```
|
|
"Using Next.js 14 App Router (NOT Pages Router), design..."
|
|
```
|
|
|
|
### Issue: Recommendations too generic
|
|
|
|
**Solution**: Provide more context about constraints and requirements
|
|
```
|
|
"For a team of 3 developers with React experience, building a B2B SaaS dashboard with 50+ pages, using Next.js 14, TypeScript, and TailwindCSS..."
|
|
```
|
|
|
|
### Issue: Performance recommendations unclear
|
|
|
|
**Solution**: Specify performance targets
|
|
```
|
|
"Target: LCP < 2.5s, FID < 100ms, CLS < 0.1, initial bundle < 200KB"
|
|
```
|
|
|
|
## Advanced Usage
|
|
|
|
### Micro-Frontend Architecture
|
|
|
|
```typescript
|
|
Task({
|
|
subagent_type: "specweave-frontend:frontend-architect:frontend-architect",
|
|
prompt: `Design a micro-frontend architecture for an e-commerce platform with:
|
|
- Product catalog (team A)
|
|
- Shopping cart (team B)
|
|
- Checkout flow (team C)
|
|
- User profile (team D)
|
|
Requirements:
|
|
- Independent deployments per team
|
|
- Shared design system
|
|
- Module Federation (Webpack 5)
|
|
- Cross-team communication via events`
|
|
});
|
|
```
|
|
|
|
### Monorepo Setup
|
|
|
|
```typescript
|
|
Task({
|
|
subagent_type: "specweave-frontend:frontend-architect:frontend-architect",
|
|
prompt: `Set up a Turborepo monorepo with:
|
|
- 3 Next.js applications (marketing, dashboard, admin)
|
|
- Shared UI component library (@acme/ui)
|
|
- Shared utilities (@acme/utils)
|
|
- Shared TypeScript config
|
|
- Independent versioning per package
|
|
- Build caching and parallel execution`
|
|
});
|
|
```
|
|
|
|
## Resources
|
|
|
|
- **React Docs**: https://react.dev
|
|
- **Next.js Docs**: https://nextjs.org/docs
|
|
- **Vue Docs**: https://vuejs.org
|
|
- **Angular Docs**: https://angular.io
|
|
- **Patterns.dev**: https://patterns.dev (Modern web patterns)
|
|
- **Web.dev**: https://web.dev (Performance, accessibility)
|
|
|
|
## Version History
|
|
|
|
- **v1.0.0** (2025-01-22): Initial release with React, Vue, Angular expertise
|
|
- **v1.1.0** (TBD): Add Svelte/SvelteKit support
|
|
- **v1.2.0** (TBD): Add mobile framework support (React Native, Flutter)
|
|
|
|
## Support
|
|
|
|
For issues or questions:
|
|
- GitHub Issues: https://github.com/anton-abyzov/specweave/issues
|
|
- Discord: https://discord.gg/specweave
|
|
- Documentation: https://spec-weave.com
|