claude-autopm 2.7.0 → 2.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +307 -56
- package/autopm/.claude/.env +158 -0
- package/autopm/.claude/settings.local.json +9 -0
- package/bin/autopm.js +11 -2
- package/bin/commands/epic.js +23 -3
- package/bin/commands/plugin.js +395 -0
- package/bin/commands/team.js +184 -10
- package/install/install.js +223 -4
- package/lib/cli/commands/issue.js +360 -20
- package/lib/plugins/PluginManager.js +1328 -0
- package/lib/plugins/PluginManager.old.js +400 -0
- package/lib/providers/AzureDevOpsProvider.js +575 -0
- package/lib/providers/GitHubProvider.js +475 -0
- package/lib/services/EpicService.js +1092 -3
- package/lib/services/IssueService.js +991 -0
- package/package.json +9 -1
- package/scripts/publish-plugins.sh +166 -0
- package/autopm/.claude/agents/cloud/README.md +0 -55
- package/autopm/.claude/agents/cloud/aws-cloud-architect.md +0 -521
- package/autopm/.claude/agents/cloud/azure-cloud-architect.md +0 -436
- package/autopm/.claude/agents/cloud/gcp-cloud-architect.md +0 -385
- package/autopm/.claude/agents/cloud/gcp-cloud-functions-engineer.md +0 -306
- package/autopm/.claude/agents/cloud/gemini-api-expert.md +0 -880
- package/autopm/.claude/agents/cloud/kubernetes-orchestrator.md +0 -566
- package/autopm/.claude/agents/cloud/openai-python-expert.md +0 -1087
- package/autopm/.claude/agents/cloud/terraform-infrastructure-expert.md +0 -454
- package/autopm/.claude/agents/core/agent-manager.md +0 -296
- package/autopm/.claude/agents/core/code-analyzer.md +0 -131
- package/autopm/.claude/agents/core/file-analyzer.md +0 -162
- package/autopm/.claude/agents/core/test-runner.md +0 -200
- package/autopm/.claude/agents/data/airflow-orchestration-expert.md +0 -52
- package/autopm/.claude/agents/data/kedro-pipeline-expert.md +0 -50
- package/autopm/.claude/agents/data/langgraph-workflow-expert.md +0 -520
- package/autopm/.claude/agents/databases/README.md +0 -50
- package/autopm/.claude/agents/databases/bigquery-expert.md +0 -392
- package/autopm/.claude/agents/databases/cosmosdb-expert.md +0 -368
- package/autopm/.claude/agents/databases/mongodb-expert.md +0 -398
- package/autopm/.claude/agents/databases/postgresql-expert.md +0 -321
- package/autopm/.claude/agents/databases/redis-expert.md +0 -52
- package/autopm/.claude/agents/devops/README.md +0 -52
- package/autopm/.claude/agents/devops/azure-devops-specialist.md +0 -308
- package/autopm/.claude/agents/devops/docker-containerization-expert.md +0 -298
- package/autopm/.claude/agents/devops/github-operations-specialist.md +0 -335
- package/autopm/.claude/agents/devops/mcp-context-manager.md +0 -319
- package/autopm/.claude/agents/devops/observability-engineer.md +0 -574
- package/autopm/.claude/agents/devops/ssh-operations-expert.md +0 -1093
- package/autopm/.claude/agents/devops/traefik-proxy-expert.md +0 -444
- package/autopm/.claude/agents/frameworks/README.md +0 -64
- package/autopm/.claude/agents/frameworks/e2e-test-engineer.md +0 -360
- package/autopm/.claude/agents/frameworks/nats-messaging-expert.md +0 -254
- package/autopm/.claude/agents/frameworks/react-frontend-engineer.md +0 -217
- package/autopm/.claude/agents/frameworks/react-ui-expert.md +0 -226
- package/autopm/.claude/agents/frameworks/tailwindcss-expert.md +0 -770
- package/autopm/.claude/agents/frameworks/ux-design-expert.md +0 -244
- package/autopm/.claude/agents/integration/message-queue-engineer.md +0 -794
- package/autopm/.claude/agents/languages/README.md +0 -50
- package/autopm/.claude/agents/languages/bash-scripting-expert.md +0 -541
- package/autopm/.claude/agents/languages/javascript-frontend-engineer.md +0 -197
- package/autopm/.claude/agents/languages/nodejs-backend-engineer.md +0 -226
- package/autopm/.claude/agents/languages/python-backend-engineer.md +0 -214
- package/autopm/.claude/agents/languages/python-backend-expert.md +0 -289
- package/autopm/.claude/agents/testing/frontend-testing-engineer.md +0 -395
- package/autopm/.claude/commands/ai/langgraph-workflow.md +0 -65
- package/autopm/.claude/commands/ai/openai-chat.md +0 -65
- package/autopm/.claude/commands/azure/COMMANDS.md +0 -107
- package/autopm/.claude/commands/azure/COMMAND_MAPPING.md +0 -252
- package/autopm/.claude/commands/azure/INTEGRATION_FIX.md +0 -103
- package/autopm/.claude/commands/azure/README.md +0 -246
- package/autopm/.claude/commands/azure/active-work.md +0 -198
- package/autopm/.claude/commands/azure/aliases.md +0 -143
- package/autopm/.claude/commands/azure/blocked-items.md +0 -287
- package/autopm/.claude/commands/azure/clean.md +0 -93
- package/autopm/.claude/commands/azure/docs-query.md +0 -48
- package/autopm/.claude/commands/azure/feature-decompose.md +0 -380
- package/autopm/.claude/commands/azure/feature-list.md +0 -61
- package/autopm/.claude/commands/azure/feature-new.md +0 -115
- package/autopm/.claude/commands/azure/feature-show.md +0 -205
- package/autopm/.claude/commands/azure/feature-start.md +0 -130
- package/autopm/.claude/commands/azure/fix-integration-example.md +0 -93
- package/autopm/.claude/commands/azure/help.md +0 -150
- package/autopm/.claude/commands/azure/import-us.md +0 -269
- package/autopm/.claude/commands/azure/init.md +0 -211
- package/autopm/.claude/commands/azure/next-task.md +0 -262
- package/autopm/.claude/commands/azure/search.md +0 -160
- package/autopm/.claude/commands/azure/sprint-status.md +0 -235
- package/autopm/.claude/commands/azure/standup.md +0 -260
- package/autopm/.claude/commands/azure/sync-all.md +0 -99
- package/autopm/.claude/commands/azure/task-analyze.md +0 -186
- package/autopm/.claude/commands/azure/task-close.md +0 -329
- package/autopm/.claude/commands/azure/task-edit.md +0 -145
- package/autopm/.claude/commands/azure/task-list.md +0 -263
- package/autopm/.claude/commands/azure/task-new.md +0 -84
- package/autopm/.claude/commands/azure/task-reopen.md +0 -79
- package/autopm/.claude/commands/azure/task-show.md +0 -126
- package/autopm/.claude/commands/azure/task-start.md +0 -301
- package/autopm/.claude/commands/azure/task-status.md +0 -65
- package/autopm/.claude/commands/azure/task-sync.md +0 -67
- package/autopm/.claude/commands/azure/us-edit.md +0 -164
- package/autopm/.claude/commands/azure/us-list.md +0 -202
- package/autopm/.claude/commands/azure/us-new.md +0 -265
- package/autopm/.claude/commands/azure/us-parse.md +0 -253
- package/autopm/.claude/commands/azure/us-show.md +0 -188
- package/autopm/.claude/commands/azure/us-status.md +0 -320
- package/autopm/.claude/commands/azure/validate.md +0 -86
- package/autopm/.claude/commands/azure/work-item-sync.md +0 -47
- package/autopm/.claude/commands/cloud/infra-deploy.md +0 -38
- package/autopm/.claude/commands/github/workflow-create.md +0 -42
- package/autopm/.claude/commands/infrastructure/ssh-security.md +0 -65
- package/autopm/.claude/commands/infrastructure/traefik-setup.md +0 -65
- package/autopm/.claude/commands/kubernetes/deploy.md +0 -37
- package/autopm/.claude/commands/playwright/test-scaffold.md +0 -38
- package/autopm/.claude/commands/pm/blocked.md +0 -28
- package/autopm/.claude/commands/pm/clean.md +0 -119
- package/autopm/.claude/commands/pm/context-create.md +0 -136
- package/autopm/.claude/commands/pm/context-prime.md +0 -170
- package/autopm/.claude/commands/pm/context-update.md +0 -292
- package/autopm/.claude/commands/pm/context.md +0 -28
- package/autopm/.claude/commands/pm/epic-close.md +0 -86
- package/autopm/.claude/commands/pm/epic-decompose.md +0 -370
- package/autopm/.claude/commands/pm/epic-edit.md +0 -83
- package/autopm/.claude/commands/pm/epic-list.md +0 -30
- package/autopm/.claude/commands/pm/epic-merge.md +0 -222
- package/autopm/.claude/commands/pm/epic-oneshot.md +0 -119
- package/autopm/.claude/commands/pm/epic-refresh.md +0 -119
- package/autopm/.claude/commands/pm/epic-show.md +0 -28
- package/autopm/.claude/commands/pm/epic-split.md +0 -120
- package/autopm/.claude/commands/pm/epic-start.md +0 -195
- package/autopm/.claude/commands/pm/epic-status.md +0 -28
- package/autopm/.claude/commands/pm/epic-sync-modular.md +0 -338
- package/autopm/.claude/commands/pm/epic-sync-original.md +0 -473
- package/autopm/.claude/commands/pm/epic-sync.md +0 -486
- package/autopm/.claude/commands/pm/help.md +0 -28
- package/autopm/.claude/commands/pm/import.md +0 -115
- package/autopm/.claude/commands/pm/in-progress.md +0 -28
- package/autopm/.claude/commands/pm/init.md +0 -28
- package/autopm/.claude/commands/pm/issue-analyze.md +0 -202
- package/autopm/.claude/commands/pm/issue-close.md +0 -119
- package/autopm/.claude/commands/pm/issue-edit.md +0 -93
- package/autopm/.claude/commands/pm/issue-reopen.md +0 -87
- package/autopm/.claude/commands/pm/issue-show.md +0 -41
- package/autopm/.claude/commands/pm/issue-start.md +0 -234
- package/autopm/.claude/commands/pm/issue-status.md +0 -95
- package/autopm/.claude/commands/pm/issue-sync.md +0 -411
- package/autopm/.claude/commands/pm/next.md +0 -28
- package/autopm/.claude/commands/pm/prd-edit.md +0 -82
- package/autopm/.claude/commands/pm/prd-list.md +0 -28
- package/autopm/.claude/commands/pm/prd-new.md +0 -55
- package/autopm/.claude/commands/pm/prd-parse.md +0 -42
- package/autopm/.claude/commands/pm/prd-status.md +0 -28
- package/autopm/.claude/commands/pm/search.md +0 -28
- package/autopm/.claude/commands/pm/standup.md +0 -28
- package/autopm/.claude/commands/pm/status.md +0 -28
- package/autopm/.claude/commands/pm/sync.md +0 -99
- package/autopm/.claude/commands/pm/test-reference-update.md +0 -151
- package/autopm/.claude/commands/pm/validate.md +0 -28
- package/autopm/.claude/commands/pm/what-next.md +0 -28
- package/autopm/.claude/commands/python/api-scaffold.md +0 -50
- package/autopm/.claude/commands/python/docs-query.md +0 -48
- package/autopm/.claude/commands/react/app-scaffold.md +0 -50
- package/autopm/.claude/commands/testing/prime.md +0 -314
- package/autopm/.claude/commands/testing/run.md +0 -125
- package/autopm/.claude/commands/ui/bootstrap-scaffold.md +0 -65
- package/autopm/.claude/commands/ui/tailwind-system.md +0 -64
- package/autopm/.claude/rules/ai-integration-patterns.md +0 -219
- package/autopm/.claude/rules/ci-cd-kubernetes-strategy.md +0 -25
- package/autopm/.claude/rules/database-management-strategy.md +0 -17
- package/autopm/.claude/rules/database-pipeline.md +0 -94
- package/autopm/.claude/rules/devops-troubleshooting-playbook.md +0 -450
- package/autopm/.claude/rules/docker-first-development.md +0 -404
- package/autopm/.claude/rules/infrastructure-pipeline.md +0 -128
- package/autopm/.claude/rules/performance-guidelines.md +0 -403
- package/autopm/.claude/rules/ui-development-standards.md +0 -281
- package/autopm/.claude/rules/ui-framework-rules.md +0 -151
- package/autopm/.claude/rules/ux-design-rules.md +0 -209
- package/autopm/.claude/rules/visual-testing.md +0 -223
- package/autopm/.claude/scripts/azure/README.md +0 -192
- package/autopm/.claude/scripts/azure/active-work.js +0 -524
- package/autopm/.claude/scripts/azure/active-work.sh +0 -20
- package/autopm/.claude/scripts/azure/blocked.js +0 -520
- package/autopm/.claude/scripts/azure/blocked.sh +0 -20
- package/autopm/.claude/scripts/azure/daily.js +0 -533
- package/autopm/.claude/scripts/azure/daily.sh +0 -20
- package/autopm/.claude/scripts/azure/dashboard.js +0 -970
- package/autopm/.claude/scripts/azure/dashboard.sh +0 -20
- package/autopm/.claude/scripts/azure/feature-list.js +0 -254
- package/autopm/.claude/scripts/azure/feature-list.sh +0 -20
- package/autopm/.claude/scripts/azure/feature-show.js +0 -7
- package/autopm/.claude/scripts/azure/feature-show.sh +0 -20
- package/autopm/.claude/scripts/azure/feature-status.js +0 -604
- package/autopm/.claude/scripts/azure/feature-status.sh +0 -20
- package/autopm/.claude/scripts/azure/help.js +0 -342
- package/autopm/.claude/scripts/azure/help.sh +0 -20
- package/autopm/.claude/scripts/azure/next-task.js +0 -508
- package/autopm/.claude/scripts/azure/next-task.sh +0 -20
- package/autopm/.claude/scripts/azure/search.js +0 -469
- package/autopm/.claude/scripts/azure/search.sh +0 -20
- package/autopm/.claude/scripts/azure/setup.js +0 -745
- package/autopm/.claude/scripts/azure/setup.sh +0 -20
- package/autopm/.claude/scripts/azure/sprint-report.js +0 -1012
- package/autopm/.claude/scripts/azure/sprint-report.sh +0 -20
- package/autopm/.claude/scripts/azure/sync.js +0 -563
- package/autopm/.claude/scripts/azure/sync.sh +0 -20
- package/autopm/.claude/scripts/azure/us-list.js +0 -210
- package/autopm/.claude/scripts/azure/us-list.sh +0 -20
- package/autopm/.claude/scripts/azure/us-status.js +0 -238
- package/autopm/.claude/scripts/azure/us-status.sh +0 -20
- package/autopm/.claude/scripts/azure/validate.js +0 -626
- package/autopm/.claude/scripts/azure/validate.sh +0 -20
- package/autopm/.claude/scripts/azure/wrapper-template.sh +0 -20
- package/autopm/.claude/scripts/github/dependency-tracker.js +0 -554
- package/autopm/.claude/scripts/github/dependency-validator.js +0 -545
- package/autopm/.claude/scripts/github/dependency-visualizer.js +0 -477
- package/autopm/.claude/scripts/pm/analytics.js +0 -425
- package/autopm/.claude/scripts/pm/blocked.js +0 -164
- package/autopm/.claude/scripts/pm/blocked.sh +0 -78
- package/autopm/.claude/scripts/pm/clean.js +0 -464
- package/autopm/.claude/scripts/pm/context-create.js +0 -216
- package/autopm/.claude/scripts/pm/context-prime.js +0 -335
- package/autopm/.claude/scripts/pm/context-update.js +0 -344
- package/autopm/.claude/scripts/pm/context.js +0 -338
- package/autopm/.claude/scripts/pm/epic-close.js +0 -347
- package/autopm/.claude/scripts/pm/epic-edit.js +0 -382
- package/autopm/.claude/scripts/pm/epic-list.js +0 -273
- package/autopm/.claude/scripts/pm/epic-list.sh +0 -109
- package/autopm/.claude/scripts/pm/epic-show.js +0 -291
- package/autopm/.claude/scripts/pm/epic-show.sh +0 -105
- package/autopm/.claude/scripts/pm/epic-split.js +0 -522
- package/autopm/.claude/scripts/pm/epic-start/epic-start.js +0 -183
- package/autopm/.claude/scripts/pm/epic-start/epic-start.sh +0 -94
- package/autopm/.claude/scripts/pm/epic-status.js +0 -291
- package/autopm/.claude/scripts/pm/epic-status.sh +0 -104
- package/autopm/.claude/scripts/pm/epic-sync/README.md +0 -208
- package/autopm/.claude/scripts/pm/epic-sync/create-epic-issue.sh +0 -77
- package/autopm/.claude/scripts/pm/epic-sync/create-task-issues.sh +0 -86
- package/autopm/.claude/scripts/pm/epic-sync/update-epic-file.sh +0 -79
- package/autopm/.claude/scripts/pm/epic-sync/update-references.sh +0 -89
- package/autopm/.claude/scripts/pm/epic-sync.sh +0 -137
- package/autopm/.claude/scripts/pm/help.js +0 -92
- package/autopm/.claude/scripts/pm/help.sh +0 -90
- package/autopm/.claude/scripts/pm/in-progress.js +0 -178
- package/autopm/.claude/scripts/pm/in-progress.sh +0 -93
- package/autopm/.claude/scripts/pm/init.js +0 -321
- package/autopm/.claude/scripts/pm/init.sh +0 -178
- package/autopm/.claude/scripts/pm/issue-close.js +0 -232
- package/autopm/.claude/scripts/pm/issue-edit.js +0 -310
- package/autopm/.claude/scripts/pm/issue-show.js +0 -272
- package/autopm/.claude/scripts/pm/issue-start.js +0 -181
- package/autopm/.claude/scripts/pm/issue-sync/format-comment.sh +0 -468
- package/autopm/.claude/scripts/pm/issue-sync/gather-updates.sh +0 -460
- package/autopm/.claude/scripts/pm/issue-sync/post-comment.sh +0 -330
- package/autopm/.claude/scripts/pm/issue-sync/preflight-validation.sh +0 -348
- package/autopm/.claude/scripts/pm/issue-sync/update-frontmatter.sh +0 -387
- package/autopm/.claude/scripts/pm/lib/README.md +0 -85
- package/autopm/.claude/scripts/pm/lib/epic-discovery.js +0 -119
- package/autopm/.claude/scripts/pm/lib/logger.js +0 -78
- package/autopm/.claude/scripts/pm/next.js +0 -189
- package/autopm/.claude/scripts/pm/next.sh +0 -72
- package/autopm/.claude/scripts/pm/optimize.js +0 -407
- package/autopm/.claude/scripts/pm/pr-create.js +0 -337
- package/autopm/.claude/scripts/pm/pr-list.js +0 -257
- package/autopm/.claude/scripts/pm/prd-list.js +0 -242
- package/autopm/.claude/scripts/pm/prd-list.sh +0 -103
- package/autopm/.claude/scripts/pm/prd-new.js +0 -684
- package/autopm/.claude/scripts/pm/prd-parse.js +0 -547
- package/autopm/.claude/scripts/pm/prd-status.js +0 -152
- package/autopm/.claude/scripts/pm/prd-status.sh +0 -63
- package/autopm/.claude/scripts/pm/release.js +0 -460
- package/autopm/.claude/scripts/pm/search.js +0 -192
- package/autopm/.claude/scripts/pm/search.sh +0 -89
- package/autopm/.claude/scripts/pm/standup.js +0 -362
- package/autopm/.claude/scripts/pm/standup.sh +0 -95
- package/autopm/.claude/scripts/pm/status.js +0 -148
- package/autopm/.claude/scripts/pm/status.sh +0 -59
- package/autopm/.claude/scripts/pm/sync-batch.js +0 -337
- package/autopm/.claude/scripts/pm/sync.js +0 -343
- package/autopm/.claude/scripts/pm/template-list.js +0 -141
- package/autopm/.claude/scripts/pm/template-new.js +0 -366
- package/autopm/.claude/scripts/pm/validate.js +0 -274
- package/autopm/.claude/scripts/pm/validate.sh +0 -106
- package/autopm/.claude/scripts/pm/what-next.js +0 -660
- package/bin/node/azure-feature-show.js +0 -7
|
@@ -1,403 +0,0 @@
|
|
|
1
|
-
# ⚡ Performance Guidelines & Optimization
|
|
2
|
-
|
|
3
|
-
> **Performance is a feature. Slow is broken.**
|
|
4
|
-
|
|
5
|
-
## Performance Targets
|
|
6
|
-
|
|
7
|
-
### 🌐 Web Performance Metrics
|
|
8
|
-
|
|
9
|
-
#### Core Web Vitals
|
|
10
|
-
|
|
11
|
-
- **LCP (Largest Contentful Paint)**: < 2.5s
|
|
12
|
-
- **FID (First Input Delay)**: < 100ms
|
|
13
|
-
- **CLS (Cumulative Layout Shift)**: < 0.1
|
|
14
|
-
- **FCP (First Contentful Paint)**: < 1.5s
|
|
15
|
-
- **TTI (Time to Interactive)**: < 5s
|
|
16
|
-
- **TBT (Total Blocking Time)**: < 300ms
|
|
17
|
-
|
|
18
|
-
#### Page Load Targets
|
|
19
|
-
|
|
20
|
-
- **3G Network**: < 3 seconds
|
|
21
|
-
- **4G Network**: < 1.5 seconds
|
|
22
|
-
- **Broadband**: < 1 second
|
|
23
|
-
- **Repeat Visit**: < 500ms (with cache)
|
|
24
|
-
|
|
25
|
-
### 🔧 API Performance Targets
|
|
26
|
-
|
|
27
|
-
| Operation Type | Target | Maximum |
|
|
28
|
-
|---------------|--------|----------|
|
|
29
|
-
| Simple Query | < 50ms | 100ms |
|
|
30
|
-
| Complex Query | < 200ms | 500ms |
|
|
31
|
-
| Search | < 300ms | 1s |
|
|
32
|
-
| File Upload | < 1s/MB | 2s/MB |
|
|
33
|
-
| Batch Operation | < 5s | 10s |
|
|
34
|
-
| Real-time Updates | < 100ms | 200ms |
|
|
35
|
-
|
|
36
|
-
### 🗄️ Database Performance
|
|
37
|
-
|
|
38
|
-
| Query Type | Target | Action if Exceeded |
|
|
39
|
-
|-----------|--------|--------------------|
|
|
40
|
-
| Indexed SELECT | < 10ms | Add index |
|
|
41
|
-
| Complex JOIN | < 50ms | Optimize query |
|
|
42
|
-
| Full Table Scan | < 100ms | Add index/partition |
|
|
43
|
-
| Write Operation | < 20ms | Check locks |
|
|
44
|
-
| Transaction | < 100ms | Break down |
|
|
45
|
-
|
|
46
|
-
## Frontend Performance Optimization
|
|
47
|
-
|
|
48
|
-
### 📦 Bundle Size Budgets
|
|
49
|
-
|
|
50
|
-
```javascript
|
|
51
|
-
// Maximum bundle sizes
|
|
52
|
-
const budgets = {
|
|
53
|
-
javascript: {
|
|
54
|
-
initial: 200, // KB (gzipped)
|
|
55
|
-
lazy: 300, // KB (gzipped)
|
|
56
|
-
},
|
|
57
|
-
css: {
|
|
58
|
-
initial: 50, // KB (gzipped)
|
|
59
|
-
lazy: 100, // KB (gzipped)
|
|
60
|
-
},
|
|
61
|
-
images: {
|
|
62
|
-
hero: 200, // KB
|
|
63
|
-
thumbnail: 20, // KB
|
|
64
|
-
icon: 5, // KB
|
|
65
|
-
},
|
|
66
|
-
total: {
|
|
67
|
-
initial: 500, // KB (all assets)
|
|
68
|
-
full: 2000, // KB (entire app)
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
### 🎯 Optimization Checklist
|
|
74
|
-
|
|
75
|
-
#### Code Optimization
|
|
76
|
-
|
|
77
|
-
- [ ] Code splitting implemented
|
|
78
|
-
- [ ] Lazy loading for routes
|
|
79
|
-
- [ ] Tree shaking enabled
|
|
80
|
-
- [ ] Dead code eliminated
|
|
81
|
-
- [ ] Minification enabled
|
|
82
|
-
- [ ] Compression (gzip/brotli)
|
|
83
|
-
- [ ] Source maps in production
|
|
84
|
-
|
|
85
|
-
#### Asset Optimization
|
|
86
|
-
|
|
87
|
-
- [ ] Images optimized (WebP with fallback)
|
|
88
|
-
- [ ] Responsive images (srcset)
|
|
89
|
-
- [ ] Lazy loading images
|
|
90
|
-
- [ ] SVG optimization
|
|
91
|
-
- [ ] Font subsetting
|
|
92
|
-
- [ ] Critical CSS inlined
|
|
93
|
-
- [ ] Unused CSS removed
|
|
94
|
-
|
|
95
|
-
#### Caching Strategy
|
|
96
|
-
|
|
97
|
-
- [ ] Service Worker implemented
|
|
98
|
-
- [ ] Cache headers configured
|
|
99
|
-
- [ ] CDN for static assets
|
|
100
|
-
- [ ] Browser cache utilized
|
|
101
|
-
- [ ] API response caching
|
|
102
|
-
- [ ] Database query caching
|
|
103
|
-
|
|
104
|
-
#### Runtime Performance
|
|
105
|
-
|
|
106
|
-
- [ ] Virtual scrolling for long lists
|
|
107
|
-
- [ ] Debounced search inputs
|
|
108
|
-
- [ ] Throttled scroll handlers
|
|
109
|
-
- [ ] Web Workers for heavy computation
|
|
110
|
-
- [ ] RequestAnimationFrame for animations
|
|
111
|
-
- [ ] Avoid layout thrashing
|
|
112
|
-
|
|
113
|
-
### 📊 Performance Monitoring
|
|
114
|
-
|
|
115
|
-
```javascript
|
|
116
|
-
// Performance monitoring setup
|
|
117
|
-
const perfObserver = new PerformanceObserver((list) => {
|
|
118
|
-
for (const entry of list.getEntries()) {
|
|
119
|
-
// Log to analytics
|
|
120
|
-
analytics.track('performance', {
|
|
121
|
-
metric: entry.name,
|
|
122
|
-
value: entry.value,
|
|
123
|
-
page: window.location.pathname
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
});
|
|
127
|
-
|
|
128
|
-
// Observe all performance metrics
|
|
129
|
-
perfObserver.observe({
|
|
130
|
-
entryTypes: ['navigation', 'resource', 'paint', 'measure']
|
|
131
|
-
});
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
## Backend Performance Optimization
|
|
135
|
-
|
|
136
|
-
### 🔄 API Optimization
|
|
137
|
-
|
|
138
|
-
#### Response Time Optimization
|
|
139
|
-
|
|
140
|
-
- [ ] Database connection pooling
|
|
141
|
-
- [ ] Query optimization (EXPLAIN ANALYZE)
|
|
142
|
-
- [ ] Proper indexing strategy
|
|
143
|
-
- [ ] N+1 query prevention
|
|
144
|
-
- [ ] Pagination implemented
|
|
145
|
-
- [ ] Response compression
|
|
146
|
-
- [ ] Field filtering (GraphQL/sparse fieldsets)
|
|
147
|
-
|
|
148
|
-
#### Caching Layers
|
|
149
|
-
|
|
150
|
-
```python
|
|
151
|
-
# Caching hierarchy
|
|
152
|
-
1. Browser Cache → 0ms
|
|
153
|
-
2. CDN Edge Cache → 10-50ms
|
|
154
|
-
3. Redis/Memcached → 1-5ms
|
|
155
|
-
4. Application Cache → 0.1ms
|
|
156
|
-
5. Database Cache → 5-10ms
|
|
157
|
-
6. Database Query → 10-100ms
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
#### Concurrency & Scaling
|
|
161
|
-
|
|
162
|
-
- [ ] Async/await for I/O operations
|
|
163
|
-
- [ ] Worker threads for CPU-intensive tasks
|
|
164
|
-
- [ ] Queue for background jobs
|
|
165
|
-
- [ ] Rate limiting per endpoint
|
|
166
|
-
- [ ] Circuit breakers for external services
|
|
167
|
-
- [ ] Load balancing configured
|
|
168
|
-
- [ ] Auto-scaling policies
|
|
169
|
-
|
|
170
|
-
### 📈 Database Optimization
|
|
171
|
-
|
|
172
|
-
#### Query Optimization
|
|
173
|
-
|
|
174
|
-
```sql
|
|
175
|
-
-- Before optimization
|
|
176
|
-
SELECT * FROM orders o
|
|
177
|
-
JOIN users u ON o.user_id = u.id
|
|
178
|
-
WHERE u.country = 'US';
|
|
179
|
-
|
|
180
|
-
-- After optimization
|
|
181
|
-
SELECT o.id, o.total, u.name
|
|
182
|
-
FROM orders o
|
|
183
|
-
JOIN users u ON o.user_id = u.id
|
|
184
|
-
WHERE u.country = 'US'
|
|
185
|
-
AND o.created_at > NOW() - INTERVAL '30 days'
|
|
186
|
-
LIMIT 100;
|
|
187
|
-
|
|
188
|
-
-- With proper indexes
|
|
189
|
-
CREATE INDEX idx_users_country ON users(country);
|
|
190
|
-
CREATE INDEX idx_orders_user_created ON orders(user_id, created_at DESC);
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
#### Index Strategy
|
|
194
|
-
|
|
195
|
-
- [ ] Primary keys on all tables
|
|
196
|
-
- [ ] Foreign key indexes
|
|
197
|
-
- [ ] Composite indexes for common queries
|
|
198
|
-
- [ ] Covering indexes for read-heavy queries
|
|
199
|
-
- [ ] Partial indexes for filtered queries
|
|
200
|
-
- [ ] Monitor index usage
|
|
201
|
-
|
|
202
|
-
## Performance Testing
|
|
203
|
-
|
|
204
|
-
### 🧪 Load Testing
|
|
205
|
-
|
|
206
|
-
```javascript
|
|
207
|
-
// Performance test scenarios
|
|
208
|
-
const scenarios = {
|
|
209
|
-
baseline: {
|
|
210
|
-
users: 100,
|
|
211
|
-
duration: '5m',
|
|
212
|
-
rampUp: '30s'
|
|
213
|
-
},
|
|
214
|
-
stress: {
|
|
215
|
-
users: 1000,
|
|
216
|
-
duration: '15m',
|
|
217
|
-
rampUp: '2m'
|
|
218
|
-
},
|
|
219
|
-
spike: {
|
|
220
|
-
users: 5000,
|
|
221
|
-
duration: '10m',
|
|
222
|
-
rampUp: '10s'
|
|
223
|
-
},
|
|
224
|
-
endurance: {
|
|
225
|
-
users: 500,
|
|
226
|
-
duration: '2h',
|
|
227
|
-
rampUp: '5m'
|
|
228
|
-
}
|
|
229
|
-
};
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
### 📏 Performance Benchmarks
|
|
233
|
-
|
|
234
|
-
| Metric | Excellent | Good | Needs Work | Unacceptable |
|
|
235
|
-
|--------|-----------|------|------------|---------------|
|
|
236
|
-
| Page Load | < 1s | < 2s | < 3s | > 3s |
|
|
237
|
-
| API Response | < 100ms | < 300ms | < 1s | > 1s |
|
|
238
|
-
| Database Query | < 10ms | < 50ms | < 200ms | > 200ms |
|
|
239
|
-
| CPU Usage | < 40% | < 60% | < 80% | > 80% |
|
|
240
|
-
| Memory Usage | < 50% | < 70% | < 85% | > 85% |
|
|
241
|
-
| Error Rate | < 0.1% | < 1% | < 5% | > 5% |
|
|
242
|
-
|
|
243
|
-
## Performance Monitoring Tools
|
|
244
|
-
|
|
245
|
-
### Frontend Monitoring
|
|
246
|
-
|
|
247
|
-
```javascript
|
|
248
|
-
// Real User Monitoring (RUM)
|
|
249
|
-
- Google Analytics / GA4
|
|
250
|
-
- New Relic Browser
|
|
251
|
-
- Datadog RUM
|
|
252
|
-
- Sentry Performance
|
|
253
|
-
|
|
254
|
-
// Synthetic Monitoring
|
|
255
|
-
- Lighthouse CI
|
|
256
|
-
- WebPageTest
|
|
257
|
-
- GTmetrix
|
|
258
|
-
- SpeedCurve
|
|
259
|
-
```
|
|
260
|
-
|
|
261
|
-
### Backend Monitoring
|
|
262
|
-
|
|
263
|
-
```yaml
|
|
264
|
-
# APM Tools
|
|
265
|
-
- New Relic APM
|
|
266
|
-
- Datadog APM
|
|
267
|
-
- AppDynamics
|
|
268
|
-
- Elastic APM
|
|
269
|
-
|
|
270
|
-
# Custom Metrics
|
|
271
|
-
- Prometheus + Grafana
|
|
272
|
-
- StatsD
|
|
273
|
-
- CloudWatch (AWS)
|
|
274
|
-
- Application Insights (Azure)
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
## Performance Budget Enforcement
|
|
278
|
-
|
|
279
|
-
### CI/CD Integration
|
|
280
|
-
|
|
281
|
-
```yaml
|
|
282
|
-
# Performance gates in pipeline
|
|
283
|
-
performance-check:
|
|
284
|
-
stage: test
|
|
285
|
-
script:
|
|
286
|
-
- lighthouse ci --budget=./budget.json
|
|
287
|
-
- bundlesize --max-size 200KB
|
|
288
|
-
- npm run test:performance
|
|
289
|
-
rules:
|
|
290
|
-
fail_on:
|
|
291
|
-
- lcp > 2500
|
|
292
|
-
- fid > 100
|
|
293
|
-
- cls > 0.1
|
|
294
|
-
- bundle_size > budget
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
### Performance Reviews
|
|
298
|
-
|
|
299
|
-
#### Weekly Checks
|
|
300
|
-
|
|
301
|
-
- [ ] Core Web Vitals trends
|
|
302
|
-
- [ ] API response times
|
|
303
|
-
- [ ] Error rates
|
|
304
|
-
- [ ] Database slow query log
|
|
305
|
-
|
|
306
|
-
#### Monthly Analysis
|
|
307
|
-
|
|
308
|
-
- [ ] Performance regression analysis
|
|
309
|
-
- [ ] User impact assessment
|
|
310
|
-
- [ ] Infrastructure cost vs performance
|
|
311
|
-
- [ ] Optimization opportunities
|
|
312
|
-
|
|
313
|
-
## Quick Performance Wins
|
|
314
|
-
|
|
315
|
-
### Immediate Improvements
|
|
316
|
-
|
|
317
|
-
```bash
|
|
318
|
-
# Frontend
|
|
319
|
-
✅ Enable compression (gzip/brotli)
|
|
320
|
-
✅ Add Cache-Control headers
|
|
321
|
-
✅ Optimize images (WebP, lazy load)
|
|
322
|
-
✅ Minify CSS/JS
|
|
323
|
-
✅ Remove unused dependencies
|
|
324
|
-
|
|
325
|
-
# Backend
|
|
326
|
-
✅ Add database indexes
|
|
327
|
-
✅ Enable query caching
|
|
328
|
-
✅ Implement pagination
|
|
329
|
-
✅ Use connection pooling
|
|
330
|
-
✅ Add Redis caching
|
|
331
|
-
|
|
332
|
-
# Infrastructure
|
|
333
|
-
✅ Enable CDN
|
|
334
|
-
✅ Configure auto-scaling
|
|
335
|
-
✅ Optimize container size
|
|
336
|
-
✅ Use HTTP/2
|
|
337
|
-
✅ Enable keep-alive
|
|
338
|
-
```
|
|
339
|
-
|
|
340
|
-
## Performance Anti-Patterns
|
|
341
|
-
|
|
342
|
-
### Things to Avoid
|
|
343
|
-
|
|
344
|
-
```javascript
|
|
345
|
-
// ❌ DON'T DO THIS
|
|
346
|
-
- Synchronous API calls in loops
|
|
347
|
-
- Unbounded queries (SELECT * without LIMIT)
|
|
348
|
-
- Large DOM manipulations
|
|
349
|
-
- Inline styles/scripts
|
|
350
|
-
- Blocking resources in <head>
|
|
351
|
-
- Memory leaks (event listeners, timers)
|
|
352
|
-
- N+1 database queries
|
|
353
|
-
- Premature optimization
|
|
354
|
-
|
|
355
|
-
// ✅ DO THIS INSTEAD
|
|
356
|
-
- Batch API calls
|
|
357
|
-
- Paginate large datasets
|
|
358
|
-
- Virtual DOM / React
|
|
359
|
-
- External stylesheets
|
|
360
|
-
- Async/defer scripts
|
|
361
|
-
- Cleanup in useEffect/componentWillUnmount
|
|
362
|
-
- Eager loading with includes
|
|
363
|
-
- Measure first, optimize second
|
|
364
|
-
```
|
|
365
|
-
|
|
366
|
-
## Performance Culture
|
|
367
|
-
|
|
368
|
-
### Team Responsibilities
|
|
369
|
-
|
|
370
|
-
#### Developers
|
|
371
|
-
|
|
372
|
-
- Write performant code
|
|
373
|
-
- Test performance locally
|
|
374
|
-
- Monitor PR impact
|
|
375
|
-
|
|
376
|
-
#### DevOps
|
|
377
|
-
|
|
378
|
-
- Infrastructure optimization
|
|
379
|
-
- Monitoring setup
|
|
380
|
-
- Scaling policies
|
|
381
|
-
|
|
382
|
-
#### Product
|
|
383
|
-
|
|
384
|
-
- Define performance requirements
|
|
385
|
-
- Prioritize performance work
|
|
386
|
-
- Balance features vs speed
|
|
387
|
-
|
|
388
|
-
### Performance Reviews
|
|
389
|
-
|
|
390
|
-
- Include performance in code reviews
|
|
391
|
-
- Regular performance audits
|
|
392
|
-
- Performance retrospectives
|
|
393
|
-
- Celebrate performance wins
|
|
394
|
-
|
|
395
|
-
## Remember
|
|
396
|
-
|
|
397
|
-
**Every millisecond counts.**
|
|
398
|
-
|
|
399
|
-
- 100ms delay → 1% drop in sales
|
|
400
|
-
- 1 second delay → 7% reduction in conversions
|
|
401
|
-
- 3 seconds load → 53% mobile users leave
|
|
402
|
-
|
|
403
|
-
**Performance is not a one-time task—it's a continuous process.**
|
|
@@ -1,281 +0,0 @@
|
|
|
1
|
-
# UI Development Standards Rule
|
|
2
|
-
|
|
3
|
-
> **PURPOSE**: Mandatory standards for consistent UI/UX development across projects.
|
|
4
|
-
|
|
5
|
-
## CRITICAL UI FRAMEWORK SELECTION
|
|
6
|
-
|
|
7
|
-
### 1. FRAMEWORK DECISION MATRIX
|
|
8
|
-
|
|
9
|
-
**Bootstrap** - Use `react-ui-expert` (framework=bootstrap):
|
|
10
|
-
|
|
11
|
-
- Rapid prototyping and MVP development
|
|
12
|
-
- Component-heavy applications (dashboards, admin panels)
|
|
13
|
-
- Team prefers pre-built components
|
|
14
|
-
- Consistent enterprise-grade design needed
|
|
15
|
-
- Less custom design requirements
|
|
16
|
-
|
|
17
|
-
**TailwindCSS** - Use `tailwindcss-expert`:
|
|
18
|
-
|
|
19
|
-
- Custom design systems and unique branding
|
|
20
|
-
- High-performance applications (smaller bundle sizes)
|
|
21
|
-
- Design flexibility and utility-first approach needed
|
|
22
|
-
- Developer team comfortable with utility classes
|
|
23
|
-
- Modern, cutting-edge UI requirements
|
|
24
|
-
|
|
25
|
-
**Selection Criteria**:
|
|
26
|
-
|
|
27
|
-
```
|
|
28
|
-
IF (rapid_development && pre_built_components) → Bootstrap
|
|
29
|
-
IF (custom_design && performance_critical) → TailwindCSS
|
|
30
|
-
IF (design_system_needed) → TailwindCSS
|
|
31
|
-
IF (enterprise_consistency) → Bootstrap
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
### 2. RESPONSIVE DESIGN REQUIREMENTS
|
|
35
|
-
|
|
36
|
-
**MANDATORY Responsive Breakpoints**:
|
|
37
|
-
|
|
38
|
-
- Mobile First: Design for mobile, enhance for desktop
|
|
39
|
-
- Breakpoints: 576px (sm), 768px (md), 992px (lg), 1200px (xl), 1400px (xxl)
|
|
40
|
-
- Touch-friendly: Minimum 44px touch targets
|
|
41
|
-
- Readable text: Minimum 16px font size on mobile
|
|
42
|
-
|
|
43
|
-
**Testing Requirements**:
|
|
44
|
-
|
|
45
|
-
- Test on actual devices, not just browser dev tools
|
|
46
|
-
- Validate touch interactions on mobile devices
|
|
47
|
-
- Ensure content reflows properly at all breakpoints
|
|
48
|
-
- Test landscape and portrait orientations
|
|
49
|
-
|
|
50
|
-
### 3. ACCESSIBILITY STANDARDS (WCAG 2.1 AA)
|
|
51
|
-
|
|
52
|
-
**MANDATORY Accessibility Features**:
|
|
53
|
-
|
|
54
|
-
- Semantic HTML structure (headings h1-h6 hierarchy)
|
|
55
|
-
- Alt text for all images and meaningful graphics
|
|
56
|
-
- Proper form labels and error messages
|
|
57
|
-
- Keyboard navigation support
|
|
58
|
-
- Color contrast ratio ≥ 4.5:1 for normal text
|
|
59
|
-
- Focus indicators visible and high contrast
|
|
60
|
-
|
|
61
|
-
**Implementation Requirements**:
|
|
62
|
-
|
|
63
|
-
```html
|
|
64
|
-
<!-- ALWAYS include proper ARIA labels -->
|
|
65
|
-
<button aria-label="Close modal" aria-expanded="false">×</button>
|
|
66
|
-
|
|
67
|
-
<!-- ALWAYS use semantic HTML -->
|
|
68
|
-
<nav role="navigation">
|
|
69
|
-
<ul>
|
|
70
|
-
<li><a href="#section1">Section 1</a></li>
|
|
71
|
-
</ul>
|
|
72
|
-
</nav>
|
|
73
|
-
|
|
74
|
-
<!-- ALWAYS provide alternative text -->
|
|
75
|
-
<img src="chart.png" alt="Sales increased 25% in Q3 2024">
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
### 4. PERFORMANCE STANDARDS
|
|
79
|
-
|
|
80
|
-
**Bootstrap Projects**:
|
|
81
|
-
|
|
82
|
-
- Bundle size limit: < 300KB (CSS + JS gzipped)
|
|
83
|
-
- Custom builds: Include only required components
|
|
84
|
-
- Optimize images: WebP format with fallbacks
|
|
85
|
-
- Minimize DOM depth: < 15 levels deep
|
|
86
|
-
|
|
87
|
-
**TailwindCSS Projects**:
|
|
88
|
-
|
|
89
|
-
- PurgeCSS enabled: Remove unused utilities
|
|
90
|
-
- Bundle size limit: < 50KB (CSS gzipped)
|
|
91
|
-
- JIT mode enabled for development
|
|
92
|
-
- Production builds must be optimized
|
|
93
|
-
|
|
94
|
-
**Performance Metrics** (REQUIRED):
|
|
95
|
-
|
|
96
|
-
- First Contentful Paint (FCP) < 1.5s
|
|
97
|
-
- Largest Contentful Paint (LCP) < 2.5s
|
|
98
|
-
- Cumulative Layout Shift (CLS) < 0.1
|
|
99
|
-
- Time to Interactive (TTI) < 3.5s
|
|
100
|
-
|
|
101
|
-
### 5. BROWSER COMPATIBILITY REQUIREMENTS
|
|
102
|
-
|
|
103
|
-
**Supported Browsers** (MINIMUM):
|
|
104
|
-
|
|
105
|
-
- Chrome/Edge: Last 2 versions
|
|
106
|
-
- Firefox: Last 2 versions
|
|
107
|
-
- Safari: Last 2 versions
|
|
108
|
-
- Mobile Safari (iOS): Last 2 versions
|
|
109
|
-
- Chrome Mobile (Android): Last 2 versions
|
|
110
|
-
|
|
111
|
-
**Fallback Strategies**:
|
|
112
|
-
|
|
113
|
-
- Progressive enhancement approach
|
|
114
|
-
- Graceful degradation for unsupported features
|
|
115
|
-
- Polyfills for critical missing features
|
|
116
|
-
- Alternative layouts for older browsers
|
|
117
|
-
|
|
118
|
-
### 6. COMPONENT ARCHITECTURE STANDARDS
|
|
119
|
-
|
|
120
|
-
**Bootstrap Components**:
|
|
121
|
-
|
|
122
|
-
```html
|
|
123
|
-
<!-- ALWAYS use consistent class patterns -->
|
|
124
|
-
<div class="card h-100 shadow-sm">
|
|
125
|
-
<div class="card-header d-flex justify-content-between align-items-center">
|
|
126
|
-
<h5 class="card-title mb-0">Title</h5>
|
|
127
|
-
<button class="btn btn-sm btn-outline-secondary">Action</button>
|
|
128
|
-
</div>
|
|
129
|
-
<div class="card-body">
|
|
130
|
-
<p class="card-text">Content</p>
|
|
131
|
-
</div>
|
|
132
|
-
</div>
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
**TailwindCSS Components**:
|
|
136
|
-
|
|
137
|
-
```html
|
|
138
|
-
<!-- ALWAYS extract component patterns -->
|
|
139
|
-
<div class="bg-white rounded-lg shadow-md p-6 hover:shadow-lg transition-shadow">
|
|
140
|
-
<div class="flex justify-between items-center mb-4">
|
|
141
|
-
<h3 class="text-lg font-semibold text-gray-900">Title</h3>
|
|
142
|
-
<button class="px-3 py-1 text-sm bg-blue-100 text-blue-700 rounded-full hover:bg-blue-200">
|
|
143
|
-
Action
|
|
144
|
-
</button>
|
|
145
|
-
</div>
|
|
146
|
-
<p class="text-gray-600">Content</p>
|
|
147
|
-
</div>
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
### 7. FORM VALIDATION STANDARDS
|
|
151
|
-
|
|
152
|
-
**Client-Side Validation** (MANDATORY):
|
|
153
|
-
|
|
154
|
-
- Real-time validation feedback
|
|
155
|
-
- Clear error messages
|
|
156
|
-
- Visual error indicators
|
|
157
|
-
- Success confirmation states
|
|
158
|
-
|
|
159
|
-
**Implementation Pattern**:
|
|
160
|
-
|
|
161
|
-
```html
|
|
162
|
-
<!-- Bootstrap form validation -->
|
|
163
|
-
<form class="needs-validation" novalidate>
|
|
164
|
-
<div class="mb-3">
|
|
165
|
-
<label for="email" class="form-label">Email</label>
|
|
166
|
-
<input type="email" class="form-control" id="email" required>
|
|
167
|
-
<div class="invalid-feedback">Please provide a valid email.</div>
|
|
168
|
-
<div class="valid-feedback">Looks good!</div>
|
|
169
|
-
</div>
|
|
170
|
-
</form>
|
|
171
|
-
|
|
172
|
-
<!-- TailwindCSS form validation -->
|
|
173
|
-
<form>
|
|
174
|
-
<div class="mb-4">
|
|
175
|
-
<label class="block text-sm font-medium text-gray-700 mb-2">Email</label>
|
|
176
|
-
<input
|
|
177
|
-
type="email"
|
|
178
|
-
class="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
|
|
179
|
-
required
|
|
180
|
-
>
|
|
181
|
-
<p class="mt-1 text-sm text-red-600 hidden">Please provide a valid email.</p>
|
|
182
|
-
</div>
|
|
183
|
-
</form>
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
### 8. DARK MODE IMPLEMENTATION
|
|
187
|
-
|
|
188
|
-
**TailwindCSS Dark Mode**:
|
|
189
|
-
|
|
190
|
-
```html
|
|
191
|
-
<!-- ALWAYS support dark mode with TailwindCSS -->
|
|
192
|
-
<div class="bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100">
|
|
193
|
-
<h1 class="text-2xl font-bold text-gray-900 dark:text-white">Title</h1>
|
|
194
|
-
<p class="text-gray-600 dark:text-gray-300">Content</p>
|
|
195
|
-
</div>
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
**Bootstrap Dark Mode**:
|
|
199
|
-
|
|
200
|
-
```html
|
|
201
|
-
<!-- Use Bootstrap 5.3+ dark mode support -->
|
|
202
|
-
<html data-bs-theme="dark">
|
|
203
|
-
<div class="card">
|
|
204
|
-
<div class="card-body">
|
|
205
|
-
<h5 class="card-title">Dark Mode Card</h5>
|
|
206
|
-
</div>
|
|
207
|
-
</div>
|
|
208
|
-
</html>
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
### 9. TESTING REQUIREMENTS
|
|
212
|
-
|
|
213
|
-
**Visual Testing** (MANDATORY):
|
|
214
|
-
|
|
215
|
-
- Screenshot testing across breakpoints
|
|
216
|
-
- Cross-browser visual comparison
|
|
217
|
-
- Accessibility audit with tools (axe, WAVE)
|
|
218
|
-
- Color contrast validation
|
|
219
|
-
|
|
220
|
-
**Functional Testing**:
|
|
221
|
-
|
|
222
|
-
- Form submission and validation
|
|
223
|
-
- Interactive component behavior
|
|
224
|
-
- Navigation and routing
|
|
225
|
-
- Mobile touch interactions
|
|
226
|
-
|
|
227
|
-
**Performance Testing**:
|
|
228
|
-
|
|
229
|
-
- Bundle size monitoring
|
|
230
|
-
- Load time measurement
|
|
231
|
-
- Core Web Vitals tracking
|
|
232
|
-
- Lighthouse audit scores ≥ 90
|
|
233
|
-
|
|
234
|
-
### 10. CODE ORGANIZATION STANDARDS
|
|
235
|
-
|
|
236
|
-
**File Structure**:
|
|
237
|
-
|
|
238
|
-
```
|
|
239
|
-
src/
|
|
240
|
-
├── styles/
|
|
241
|
-
│ ├── bootstrap/ # Bootstrap customizations
|
|
242
|
-
│ │ ├── variables.scss # Custom variables
|
|
243
|
-
│ │ └── custom.scss # Custom components
|
|
244
|
-
│ └── tailwind/ # TailwindCSS customizations
|
|
245
|
-
│ ├── config.js # Tailwind configuration
|
|
246
|
-
│ └── components/ # Component patterns
|
|
247
|
-
├── components/ # Reusable UI components
|
|
248
|
-
└── assets/ # Images, fonts, icons
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
**Code Quality**:
|
|
252
|
-
|
|
253
|
-
- Consistent indentation (2 spaces)
|
|
254
|
-
- Meaningful class names and comments
|
|
255
|
-
- Component reusability and modularity
|
|
256
|
-
- Documentation for complex components
|
|
257
|
-
|
|
258
|
-
## VIOLATIONS AND ENFORCEMENT
|
|
259
|
-
|
|
260
|
-
**CRITICAL VIOLATIONS** (Block deployment):
|
|
261
|
-
|
|
262
|
-
- Missing responsive design implementation
|
|
263
|
-
- Accessibility violations (WCAG 2.1 AA failures)
|
|
264
|
-
- Bundle size exceeds limits
|
|
265
|
-
- No fallback for unsupported browsers
|
|
266
|
-
|
|
267
|
-
**MAJOR VIOLATIONS** (Require fixes):
|
|
268
|
-
|
|
269
|
-
- Inconsistent design patterns
|
|
270
|
-
- Missing form validation
|
|
271
|
-
- No dark mode support (for TailwindCSS projects)
|
|
272
|
-
- Performance metrics below thresholds
|
|
273
|
-
|
|
274
|
-
**MINOR VIOLATIONS** (Address in next iteration):
|
|
275
|
-
|
|
276
|
-
- Suboptimal component organization
|
|
277
|
-
- Missing hover/focus states
|
|
278
|
-
- Incomplete documentation
|
|
279
|
-
- Non-semantic HTML usage
|
|
280
|
-
|
|
281
|
-
These standards ensure consistent, accessible, and performant UI development across all projects.
|