Files
2025-11-29 17:56:35 +08:00

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