proagents 1.6.16 → 1.6.18
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/.claude/settings.local.json +169 -0
- package/COMMANDS.md +595 -0
- package/README.md +22 -64
- package/bin/proagents.js +0 -2
- package/lib/commands/init.js +4 -174
- package/package.json +2 -7
- package/.proagents/ai-models/README.md +0 -141
- package/.proagents/ai-models/cost-management.md +0 -362
- package/.proagents/ai-models/fallbacks.md +0 -342
- package/.proagents/ai-models/model-config.md +0 -318
- package/.proagents/ai-models/task-routing.md +0 -503
- package/.proagents/ai-training/README.md +0 -155
- package/.proagents/ai-training/continuous-learning.md +0 -413
- package/.proagents/ai-training/domain-knowledge.md +0 -378
- package/.proagents/ai-training/pattern-learning.md +0 -455
- package/.proagents/ai-training/training-data.md +0 -337
- package/.proagents/ai-training/user-preferences.md +0 -346
- package/.proagents/approval-workflows/README.md +0 -146
- package/.proagents/approval-workflows/approval-config.md +0 -332
- package/.proagents/approval-workflows/approval-stages.md +0 -503
- package/.proagents/approval-workflows/emergency-bypass.md +0 -351
- package/.proagents/approval-workflows/examples.md +0 -859
- package/.proagents/approval-workflows/notifications.md +0 -320
- package/.proagents/compliance/README.md +0 -206
- package/.proagents/compliance/access-control.md +0 -310
- package/.proagents/compliance/audit-logging.md +0 -444
- package/.proagents/compliance/compliance-frameworks.md +0 -429
- package/.proagents/compliance/reports.md +0 -491
- package/.proagents/compliance/retention-policies.md +0 -454
- package/.proagents/config-versioning/README.md +0 -120
- package/.proagents/config-versioning/changelog.md +0 -300
- package/.proagents/config-versioning/rollback.md +0 -283
- package/.proagents/config-versioning/versioning.md +0 -330
- package/.proagents/contract-testing/README.md +0 -223
- package/.proagents/contract-testing/contract-testing.md +0 -614
- package/.proagents/contract-testing/pact-integration.md +0 -507
- package/.proagents/contract-testing/schema-validation.md +0 -565
- package/.proagents/dependency-management/README.md +0 -140
- package/.proagents/dependency-management/automation.md +0 -363
- package/.proagents/dependency-management/compatibility.md +0 -319
- package/.proagents/dependency-management/security-scanning.md +0 -413
- package/.proagents/dependency-management/update-policies.md +0 -374
- package/.proagents/disaster-recovery/README.md +0 -247
- package/.proagents/disaster-recovery/automation.md +0 -366
- package/.proagents/disaster-recovery/backup-recovery.md +0 -571
- package/.proagents/disaster-recovery/incident-response.md +0 -565
- package/.proagents/disaster-recovery/rollback-procedures.md +0 -499
- package/.proagents/disaster-recovery/runbooks.md +0 -603
- package/.proagents/disaster-recovery/scenarios.md +0 -892
- package/.proagents/disaster-recovery/testing.md +0 -438
- package/.proagents/environments/README.md +0 -244
- package/.proagents/environments/configuration.md +0 -437
- package/.proagents/environments/promotion.md +0 -434
- package/.proagents/environments/setup.md +0 -420
- package/.proagents/examples/README.md +0 -55
- package/.proagents/examples/backend-nodejs/README.md +0 -188
- package/.proagents/examples/backend-nodejs/complete-conversation.md +0 -601
- package/.proagents/examples/backend-nodejs/proagents.config.yaml +0 -415
- package/.proagents/examples/backend-nodejs/workflow-example.md +0 -909
- package/.proagents/examples/fullstack-nextjs/README.md +0 -155
- package/.proagents/examples/fullstack-nextjs/complete-conversation.md +0 -604
- package/.proagents/examples/fullstack-nextjs/proagents.config.yaml +0 -287
- package/.proagents/examples/fullstack-nextjs/workflow-example.md +0 -553
- package/.proagents/examples/mobile-react-native/README.md +0 -171
- package/.proagents/examples/mobile-react-native/complete-conversation.md +0 -825
- package/.proagents/examples/mobile-react-native/proagents.config.yaml +0 -330
- package/.proagents/examples/mobile-react-native/workflow-example.md +0 -723
- package/.proagents/examples/web-frontend-react/README.md +0 -125
- package/.proagents/examples/web-frontend-react/complete-conversation.md +0 -556
- package/.proagents/examples/web-frontend-react/proagents.config.yaml +0 -183
- package/.proagents/examples/web-frontend-react/workflow-example.md +0 -603
- package/.proagents/existing-projects/README.md +0 -65
- package/.proagents/existing-projects/challenges.md +0 -861
- package/.proagents/existing-projects/coexistence-mode.md +0 -483
- package/.proagents/existing-projects/compatibility-assessment.md +0 -541
- package/.proagents/existing-projects/gradual-adoption.md +0 -515
- package/.proagents/existing-projects/migration-strategies.md +0 -788
- package/.proagents/existing-projects/pattern-reconciliation.md +0 -489
- package/.proagents/existing-projects/team-onboarding.md +0 -617
- package/.proagents/existing-projects/technical-debt-handling.md +0 -644
- package/.proagents/feature-flags/README.md +0 -263
- package/.proagents/feature-flags/ab-testing.md +0 -413
- package/.proagents/feature-flags/configuration.md +0 -420
- package/.proagents/feature-flags/kill-switches.md +0 -444
- package/.proagents/feature-flags/rollout-strategies.md +0 -392
- package/.proagents/history.log +0 -12
- package/.proagents/i18n/README.md +0 -133
- package/.proagents/i18n/extraction.md +0 -433
- package/.proagents/i18n/tms-integration.md +0 -332
- package/.proagents/i18n/translation-workflow.md +0 -413
- package/.proagents/i18n/validation.md +0 -355
- package/.proagents/logging/README.md +0 -276
- package/.proagents/logging/aggregation.md +0 -475
- package/.proagents/logging/log-levels.md +0 -376
- package/.proagents/logging/sensitive-data.md +0 -423
- package/.proagents/logging/structured-logging.md +0 -406
- package/.proagents/metrics/README.md +0 -69
- package/.proagents/metrics/code-quality-kpis.md +0 -461
- package/.proagents/metrics/deployment-metrics.md +0 -517
- package/.proagents/metrics/developer-productivity.md +0 -368
- package/.proagents/metrics/learning-effectiveness.md +0 -478
- package/.proagents/migrations/README.md +0 -77
- package/.proagents/migrations/from-claude-projects.md +0 -313
- package/.proagents/migrations/from-cursor-rules.md +0 -345
- package/.proagents/migrations/from-custom-workflows.md +0 -410
- package/.proagents/monitoring/README.md +0 -308
- package/.proagents/monitoring/alerting.md +0 -449
- package/.proagents/monitoring/dashboards.md +0 -454
- package/.proagents/monitoring/health-checks.md +0 -436
- package/.proagents/monitoring/metrics.md +0 -434
- package/.proagents/multi-project/README.md +0 -170
- package/.proagents/multi-project/coordinated-deploy.md +0 -510
- package/.proagents/multi-project/cross-project-deps.md +0 -395
- package/.proagents/multi-project/unified-changelog.md +0 -477
- package/.proagents/multi-project/walkthroughs/monorepo-setup.md +0 -787
- package/.proagents/multi-project/workspace-config.md +0 -408
- package/.proagents/notifications/README.md +0 -151
- package/.proagents/notifications/channels.md +0 -457
- package/.proagents/notifications/preferences.md +0 -415
- package/.proagents/notifications/routing.md +0 -449
- package/.proagents/notifications/scheduling.md +0 -425
- package/.proagents/notifications/templates.md +0 -446
- package/.proagents/offline-mode/README.md +0 -145
- package/.proagents/offline-mode/caching.md +0 -344
- package/.proagents/offline-mode/offline-operations.md +0 -312
- package/.proagents/offline-mode/queue-specifications.md +0 -679
- package/.proagents/offline-mode/sync.md +0 -475
- package/.proagents/parallel-features/README.md +0 -85
- package/.proagents/parallel-features/conflict-detection.md +0 -226
- package/.proagents/parallel-features/dependency-management.md +0 -392
- package/.proagents/parallel-features/merge-coordination.md +0 -506
- package/.proagents/parallel-features/tracking-system.md +0 -416
- package/.proagents/performance/README.md +0 -59
- package/.proagents/performance/bundle-analysis.md +0 -375
- package/.proagents/performance/load-testing.md +0 -563
- package/.proagents/performance/runtime-metrics.md +0 -489
- package/.proagents/performance/web-vitals.md +0 -425
- package/.proagents/plugins/README.md +0 -139
- package/.proagents/plugins/creating-plugins.md +0 -504
- package/.proagents/plugins/plugin-api.md +0 -467
- package/.proagents/plugins/plugin-registry.md +0 -276
- package/.proagents/reporting/README.md +0 -158
- package/.proagents/reporting/dashboards.md +0 -366
- package/.proagents/reporting/exports.md +0 -524
- package/.proagents/reporting/quality-metrics.md +0 -385
- package/.proagents/reporting/templates/README.md +0 -56
- package/.proagents/reporting/templates/dashboard-config.json +0 -187
- package/.proagents/reporting/templates/metrics-queries.md +0 -427
- package/.proagents/reporting/templates/react-dashboard.tsx +0 -544
- package/.proagents/reporting/templates/widgets.md +0 -451
- package/.proagents/reporting/velocity-metrics.md +0 -340
- package/.proagents/reverse-engineering/README.md +0 -151
- package/.proagents/reverse-engineering/architecture-extraction.md +0 -325
- package/.proagents/reverse-engineering/code-analysis.md +0 -377
- package/.proagents/reverse-engineering/dependency-mapping.md +0 -567
- package/.proagents/reverse-engineering/diagram-generation.md +0 -586
- package/.proagents/reverse-engineering/documentation-generation.md +0 -468
- package/.proagents/reverse-engineering/pattern-detection.md +0 -569
- package/.proagents/reverse-engineering/quality-assessment.md +0 -733
- package/.proagents/secrets/README.md +0 -278
- package/.proagents/secrets/access-control.md +0 -443
- package/.proagents/secrets/rotation.md +0 -403
- package/.proagents/secrets/scanning.md +0 -487
- package/.proagents/secrets/storage.md +0 -394
- package/.proagents/webhooks/README.md +0 -126
- package/.proagents/webhooks/endpoints.md +0 -298
- package/.proagents/webhooks/events.md +0 -316
- package/.proagents/webhooks/payloads.md +0 -325
- package/.proagents/webhooks/reliability.md +0 -363
- package/.proagents/webhooks/security.md +0 -380
|
@@ -1,425 +0,0 @@
|
|
|
1
|
-
# Web Vitals Performance Guide
|
|
2
|
-
|
|
3
|
-
Monitor and optimize Core Web Vitals for better user experience.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Core Web Vitals
|
|
8
|
-
|
|
9
|
-
### LCP - Largest Contentful Paint
|
|
10
|
-
|
|
11
|
-
**What:** Time until largest content element is visible
|
|
12
|
-
**Target:** < 2.5 seconds
|
|
13
|
-
**Measures:** Loading performance
|
|
14
|
-
|
|
15
|
-
### FID - First Input Delay
|
|
16
|
-
|
|
17
|
-
**What:** Time from first interaction to browser response
|
|
18
|
-
**Target:** < 100 milliseconds
|
|
19
|
-
**Measures:** Interactivity
|
|
20
|
-
|
|
21
|
-
### CLS - Cumulative Layout Shift
|
|
22
|
-
|
|
23
|
-
**What:** Visual stability (unexpected layout shifts)
|
|
24
|
-
**Target:** < 0.1
|
|
25
|
-
**Measures:** Visual stability
|
|
26
|
-
|
|
27
|
-
---
|
|
28
|
-
|
|
29
|
-
## Measuring Web Vitals
|
|
30
|
-
|
|
31
|
-
### Using web-vitals Library
|
|
32
|
-
|
|
33
|
-
```javascript
|
|
34
|
-
// Install
|
|
35
|
-
npm install web-vitals
|
|
36
|
-
|
|
37
|
-
// Usage
|
|
38
|
-
import { getCLS, getFID, getLCP, getFCP, getTTFB } from 'web-vitals';
|
|
39
|
-
|
|
40
|
-
function sendToAnalytics(metric) {
|
|
41
|
-
console.log(metric);
|
|
42
|
-
// Send to analytics service
|
|
43
|
-
analytics.track('Web Vitals', {
|
|
44
|
-
name: metric.name,
|
|
45
|
-
value: metric.value,
|
|
46
|
-
rating: metric.rating, // 'good', 'needs-improvement', 'poor'
|
|
47
|
-
id: metric.id,
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
getCLS(sendToAnalytics);
|
|
52
|
-
getFID(sendToAnalytics);
|
|
53
|
-
getLCP(sendToAnalytics);
|
|
54
|
-
getFCP(sendToAnalytics);
|
|
55
|
-
getTTFB(sendToAnalytics);
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
### React Integration
|
|
59
|
-
|
|
60
|
-
```javascript
|
|
61
|
-
// In React app
|
|
62
|
-
import { useEffect } from 'react';
|
|
63
|
-
import { getCLS, getFID, getLCP } from 'web-vitals';
|
|
64
|
-
|
|
65
|
-
function App() {
|
|
66
|
-
useEffect(() => {
|
|
67
|
-
getCLS(console.log);
|
|
68
|
-
getFID(console.log);
|
|
69
|
-
getLCP(console.log);
|
|
70
|
-
}, []);
|
|
71
|
-
|
|
72
|
-
return <MainApp />;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
// Or in reportWebVitals.js (Create React App)
|
|
76
|
-
const reportWebVitals = (onPerfEntry) => {
|
|
77
|
-
if (onPerfEntry && onPerfEntry instanceof Function) {
|
|
78
|
-
import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
|
|
79
|
-
getCLS(onPerfEntry);
|
|
80
|
-
getFID(onPerfEntry);
|
|
81
|
-
getFCP(onPerfEntry);
|
|
82
|
-
getLCP(onPerfEntry);
|
|
83
|
-
getTTFB(onPerfEntry);
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
### Lighthouse
|
|
90
|
-
|
|
91
|
-
```bash
|
|
92
|
-
# CLI
|
|
93
|
-
npm install -g lighthouse
|
|
94
|
-
lighthouse https://example.com --output html --output-path report.html
|
|
95
|
-
|
|
96
|
-
# Chrome DevTools
|
|
97
|
-
1. Open DevTools (F12)
|
|
98
|
-
2. Go to Lighthouse tab
|
|
99
|
-
3. Click "Generate report"
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
---
|
|
103
|
-
|
|
104
|
-
## Optimizing LCP
|
|
105
|
-
|
|
106
|
-
### Common LCP Elements
|
|
107
|
-
|
|
108
|
-
- `<img>` elements
|
|
109
|
-
- `<video>` poster images
|
|
110
|
-
- Elements with background-image
|
|
111
|
-
- Block-level text elements
|
|
112
|
-
|
|
113
|
-
### Optimization Techniques
|
|
114
|
-
|
|
115
|
-
#### 1. Optimize Images
|
|
116
|
-
|
|
117
|
-
```html
|
|
118
|
-
<!-- Use modern formats -->
|
|
119
|
-
<picture>
|
|
120
|
-
<source srcset="image.avif" type="image/avif">
|
|
121
|
-
<source srcset="image.webp" type="image/webp">
|
|
122
|
-
<img src="image.jpg" alt="...">
|
|
123
|
-
</picture>
|
|
124
|
-
|
|
125
|
-
<!-- Responsive images -->
|
|
126
|
-
<img
|
|
127
|
-
srcset="small.jpg 300w,
|
|
128
|
-
medium.jpg 600w,
|
|
129
|
-
large.jpg 1200w"
|
|
130
|
-
sizes="(max-width: 600px) 300px,
|
|
131
|
-
(max-width: 1200px) 600px,
|
|
132
|
-
1200px"
|
|
133
|
-
src="medium.jpg"
|
|
134
|
-
alt="..."
|
|
135
|
-
>
|
|
136
|
-
|
|
137
|
-
<!-- Preload LCP image -->
|
|
138
|
-
<link rel="preload" as="image" href="hero-image.webp">
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
#### 2. Optimize Server Response
|
|
142
|
-
|
|
143
|
-
```javascript
|
|
144
|
-
// Enable caching
|
|
145
|
-
app.use((req, res, next) => {
|
|
146
|
-
res.setHeader('Cache-Control', 'public, max-age=31536000');
|
|
147
|
-
next();
|
|
148
|
-
});
|
|
149
|
-
|
|
150
|
-
// Use CDN
|
|
151
|
-
// Configure CDN for static assets
|
|
152
|
-
|
|
153
|
-
// Enable compression
|
|
154
|
-
const compression = require('compression');
|
|
155
|
-
app.use(compression());
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
#### 3. Preload Critical Resources
|
|
159
|
-
|
|
160
|
-
```html
|
|
161
|
-
<head>
|
|
162
|
-
<!-- Preload critical CSS -->
|
|
163
|
-
<link rel="preload" href="critical.css" as="style">
|
|
164
|
-
|
|
165
|
-
<!-- Preload fonts -->
|
|
166
|
-
<link rel="preload" href="font.woff2" as="font" type="font/woff2" crossorigin>
|
|
167
|
-
|
|
168
|
-
<!-- Preconnect to origins -->
|
|
169
|
-
<link rel="preconnect" href="https://api.example.com">
|
|
170
|
-
<link rel="dns-prefetch" href="https://cdn.example.com">
|
|
171
|
-
</head>
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
---
|
|
175
|
-
|
|
176
|
-
## Optimizing FID
|
|
177
|
-
|
|
178
|
-
### Optimization Techniques
|
|
179
|
-
|
|
180
|
-
#### 1. Break Up Long Tasks
|
|
181
|
-
|
|
182
|
-
```javascript
|
|
183
|
-
// BAD: Long blocking task
|
|
184
|
-
function processData(data) {
|
|
185
|
-
// 1000ms of work
|
|
186
|
-
data.forEach(item => heavyComputation(item));
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
// GOOD: Break into chunks
|
|
190
|
-
async function processData(data) {
|
|
191
|
-
const chunks = chunkArray(data, 100);
|
|
192
|
-
|
|
193
|
-
for (const chunk of chunks) {
|
|
194
|
-
chunk.forEach(item => heavyComputation(item));
|
|
195
|
-
// Yield to main thread
|
|
196
|
-
await new Promise(resolve => setTimeout(resolve, 0));
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
#### 2. Use Web Workers
|
|
202
|
-
|
|
203
|
-
```javascript
|
|
204
|
-
// Heavy computation in worker
|
|
205
|
-
const worker = new Worker('worker.js');
|
|
206
|
-
|
|
207
|
-
worker.postMessage({ data: largeDataSet });
|
|
208
|
-
worker.onmessage = (event) => {
|
|
209
|
-
console.log('Processed:', event.data);
|
|
210
|
-
};
|
|
211
|
-
|
|
212
|
-
// worker.js
|
|
213
|
-
self.onmessage = (event) => {
|
|
214
|
-
const result = heavyComputation(event.data);
|
|
215
|
-
self.postMessage(result);
|
|
216
|
-
};
|
|
217
|
-
```
|
|
218
|
-
|
|
219
|
-
#### 3. Defer Non-Critical JavaScript
|
|
220
|
-
|
|
221
|
-
```html
|
|
222
|
-
<!-- Defer non-critical scripts -->
|
|
223
|
-
<script src="analytics.js" defer></script>
|
|
224
|
-
<script src="non-critical.js" defer></script>
|
|
225
|
-
|
|
226
|
-
<!-- Async for independent scripts -->
|
|
227
|
-
<script src="independent.js" async></script>
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
#### 4. Lazy Load Components
|
|
231
|
-
|
|
232
|
-
```javascript
|
|
233
|
-
// React
|
|
234
|
-
const HeavyComponent = React.lazy(() => import('./HeavyComponent'));
|
|
235
|
-
|
|
236
|
-
function App() {
|
|
237
|
-
return (
|
|
238
|
-
<Suspense fallback={<Loading />}>
|
|
239
|
-
<HeavyComponent />
|
|
240
|
-
</Suspense>
|
|
241
|
-
);
|
|
242
|
-
}
|
|
243
|
-
```
|
|
244
|
-
|
|
245
|
-
---
|
|
246
|
-
|
|
247
|
-
## Optimizing CLS
|
|
248
|
-
|
|
249
|
-
### Common Causes
|
|
250
|
-
|
|
251
|
-
1. Images without dimensions
|
|
252
|
-
2. Ads/embeds without reserved space
|
|
253
|
-
3. Dynamically injected content
|
|
254
|
-
4. Web fonts causing FOIT/FOUT
|
|
255
|
-
|
|
256
|
-
### Optimization Techniques
|
|
257
|
-
|
|
258
|
-
#### 1. Always Set Image Dimensions
|
|
259
|
-
|
|
260
|
-
```html
|
|
261
|
-
<!-- Always specify width and height -->
|
|
262
|
-
<img src="image.jpg" width="800" height="600" alt="...">
|
|
263
|
-
|
|
264
|
-
<!-- Or use aspect-ratio -->
|
|
265
|
-
<style>
|
|
266
|
-
.image-container {
|
|
267
|
-
aspect-ratio: 16 / 9;
|
|
268
|
-
}
|
|
269
|
-
</style>
|
|
270
|
-
```
|
|
271
|
-
|
|
272
|
-
#### 2. Reserve Space for Dynamic Content
|
|
273
|
-
|
|
274
|
-
```css
|
|
275
|
-
/* Reserve space for ads */
|
|
276
|
-
.ad-container {
|
|
277
|
-
min-height: 250px;
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
/* Skeleton for loading content */
|
|
281
|
-
.skeleton {
|
|
282
|
-
min-height: 200px;
|
|
283
|
-
background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
|
|
284
|
-
background-size: 200% 100%;
|
|
285
|
-
animation: loading 1.5s infinite;
|
|
286
|
-
}
|
|
287
|
-
```
|
|
288
|
-
|
|
289
|
-
#### 3. Optimize Font Loading
|
|
290
|
-
|
|
291
|
-
```css
|
|
292
|
-
/* Use font-display */
|
|
293
|
-
@font-face {
|
|
294
|
-
font-family: 'CustomFont';
|
|
295
|
-
src: url('font.woff2') format('woff2');
|
|
296
|
-
font-display: swap;
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
/* Or use optional for non-critical fonts */
|
|
300
|
-
@font-face {
|
|
301
|
-
font-family: 'NiceToHave';
|
|
302
|
-
src: url('font.woff2') format('woff2');
|
|
303
|
-
font-display: optional;
|
|
304
|
-
}
|
|
305
|
-
```
|
|
306
|
-
|
|
307
|
-
```html
|
|
308
|
-
<!-- Preload critical fonts -->
|
|
309
|
-
<link rel="preload" href="font.woff2" as="font" type="font/woff2" crossorigin>
|
|
310
|
-
```
|
|
311
|
-
|
|
312
|
-
#### 4. Avoid Inserting Content Above Existing
|
|
313
|
-
|
|
314
|
-
```javascript
|
|
315
|
-
// BAD: Insert at top
|
|
316
|
-
container.prepend(newElement);
|
|
317
|
-
|
|
318
|
-
// GOOD: Insert below fold or with reserved space
|
|
319
|
-
reservedSpace.appendChild(newElement);
|
|
320
|
-
```
|
|
321
|
-
|
|
322
|
-
---
|
|
323
|
-
|
|
324
|
-
## Performance Budget
|
|
325
|
-
|
|
326
|
-
```javascript
|
|
327
|
-
// performance-budget.json
|
|
328
|
-
{
|
|
329
|
-
"budgets": [
|
|
330
|
-
{
|
|
331
|
-
"resourceSizes": [
|
|
332
|
-
{ "resourceType": "script", "budget": 150 },
|
|
333
|
-
{ "resourceType": "image", "budget": 300 },
|
|
334
|
-
{ "resourceType": "stylesheet", "budget": 50 },
|
|
335
|
-
{ "resourceType": "total", "budget": 500 }
|
|
336
|
-
],
|
|
337
|
-
"timings": [
|
|
338
|
-
{ "metric": "largest-contentful-paint", "budget": 2500 },
|
|
339
|
-
{ "metric": "first-input-delay", "budget": 100 },
|
|
340
|
-
{ "metric": "cumulative-layout-shift", "budget": 0.1 },
|
|
341
|
-
{ "metric": "time-to-interactive", "budget": 3500 }
|
|
342
|
-
]
|
|
343
|
-
}
|
|
344
|
-
]
|
|
345
|
-
}
|
|
346
|
-
```
|
|
347
|
-
|
|
348
|
-
---
|
|
349
|
-
|
|
350
|
-
## Monitoring Dashboard
|
|
351
|
-
|
|
352
|
-
```markdown
|
|
353
|
-
# Web Vitals Dashboard
|
|
354
|
-
|
|
355
|
-
## Current Performance
|
|
356
|
-
|
|
357
|
-
| Metric | P75 Value | Target | Status |
|
|
358
|
-
|--------|-----------|--------|--------|
|
|
359
|
-
| LCP | 2.1s | < 2.5s | ✅ Good |
|
|
360
|
-
| FID | 80ms | < 100ms | ✅ Good |
|
|
361
|
-
| CLS | 0.15 | < 0.1 | ⚠️ Needs Improvement |
|
|
362
|
-
| FCP | 1.5s | < 1.8s | ✅ Good |
|
|
363
|
-
| TTFB | 300ms | < 600ms | ✅ Good |
|
|
364
|
-
|
|
365
|
-
## Trends (Last 30 Days)
|
|
366
|
-
|
|
367
|
-
LCP: ████████░░ Improved 15%
|
|
368
|
-
FID: ██████████ Stable
|
|
369
|
-
CLS: ██████░░░░ Degraded 5%
|
|
370
|
-
|
|
371
|
-
## Top Issues
|
|
372
|
-
|
|
373
|
-
1. CLS on product pages (0.2)
|
|
374
|
-
- Cause: Images without dimensions
|
|
375
|
-
- Fix: Add width/height attributes
|
|
376
|
-
|
|
377
|
-
2. LCP on homepage (2.8s)
|
|
378
|
-
- Cause: Large hero image
|
|
379
|
-
- Fix: Optimize and preload image
|
|
380
|
-
```
|
|
381
|
-
|
|
382
|
-
---
|
|
383
|
-
|
|
384
|
-
## CI/CD Integration
|
|
385
|
-
|
|
386
|
-
```yaml
|
|
387
|
-
# .github/workflows/performance.yml
|
|
388
|
-
name: Performance Check
|
|
389
|
-
|
|
390
|
-
on: pull_request
|
|
391
|
-
|
|
392
|
-
jobs:
|
|
393
|
-
lighthouse:
|
|
394
|
-
runs-on: ubuntu-latest
|
|
395
|
-
steps:
|
|
396
|
-
- uses: actions/checkout@v3
|
|
397
|
-
|
|
398
|
-
- name: Run Lighthouse
|
|
399
|
-
uses: treosh/lighthouse-ci-action@v9
|
|
400
|
-
with:
|
|
401
|
-
urls: |
|
|
402
|
-
https://example.com/
|
|
403
|
-
https://example.com/products
|
|
404
|
-
budgetPath: ./performance-budget.json
|
|
405
|
-
uploadArtifacts: true
|
|
406
|
-
|
|
407
|
-
- name: Check Web Vitals
|
|
408
|
-
run: |
|
|
409
|
-
if [ "$LCP" -gt 2500 ]; then
|
|
410
|
-
echo "LCP exceeds budget"
|
|
411
|
-
exit 1
|
|
412
|
-
fi
|
|
413
|
-
```
|
|
414
|
-
|
|
415
|
-
---
|
|
416
|
-
|
|
417
|
-
## Commands
|
|
418
|
-
|
|
419
|
-
| Command | Description |
|
|
420
|
-
|---------|-------------|
|
|
421
|
-
| `pa:perf-vitals` | Check Web Vitals |
|
|
422
|
-
| `pa:perf-lcp` | Analyze LCP |
|
|
423
|
-
| `pa:perf-cls` | Analyze CLS |
|
|
424
|
-
| `pa:perf-fid` | Analyze FID |
|
|
425
|
-
| `pa:perf-report` | Generate performance report |
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
# Plugin System
|
|
2
|
-
|
|
3
|
-
Extend ProAgents with custom plugins and integrations.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Overview
|
|
8
|
-
|
|
9
|
-
ProAgents supports a plugin architecture that allows you to:
|
|
10
|
-
|
|
11
|
-
- Add custom workflow phases
|
|
12
|
-
- Integrate with external tools
|
|
13
|
-
- Create custom commands
|
|
14
|
-
- Add new code generators
|
|
15
|
-
- Implement custom validators
|
|
16
|
-
- Extend reporting capabilities
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## Quick Start
|
|
21
|
-
|
|
22
|
-
### Install a Plugin
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
# From npm
|
|
26
|
-
proagents plugin install @proagents/plugin-jira
|
|
27
|
-
|
|
28
|
-
# From GitHub
|
|
29
|
-
proagents plugin install github:user/proagents-plugin-custom
|
|
30
|
-
|
|
31
|
-
# From local path
|
|
32
|
-
proagents plugin install ./my-plugin
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
### Enable Plugin
|
|
36
|
-
|
|
37
|
-
```yaml
|
|
38
|
-
# proagents.config.yaml
|
|
39
|
-
plugins:
|
|
40
|
-
enabled:
|
|
41
|
-
- "@proagents/plugin-jira"
|
|
42
|
-
- "@proagents/plugin-slack"
|
|
43
|
-
- "./custom-plugins/my-plugin"
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## Available Official Plugins
|
|
49
|
-
|
|
50
|
-
| Plugin | Description |
|
|
51
|
-
|--------|-------------|
|
|
52
|
-
| `@proagents/plugin-jira` | Jira integration |
|
|
53
|
-
| `@proagents/plugin-slack` | Slack notifications |
|
|
54
|
-
| `@proagents/plugin-github` | GitHub Actions integration |
|
|
55
|
-
| `@proagents/plugin-sentry` | Sentry error tracking |
|
|
56
|
-
| `@proagents/plugin-datadog` | Datadog monitoring |
|
|
57
|
-
| `@proagents/plugin-sonarqube` | SonarQube code quality |
|
|
58
|
-
|
|
59
|
-
---
|
|
60
|
-
|
|
61
|
-
## Plugin Types
|
|
62
|
-
|
|
63
|
-
### Workflow Plugins
|
|
64
|
-
Extend or modify workflow phases.
|
|
65
|
-
|
|
66
|
-
### Integration Plugins
|
|
67
|
-
Connect with external services.
|
|
68
|
-
|
|
69
|
-
### Generator Plugins
|
|
70
|
-
Add code generation capabilities.
|
|
71
|
-
|
|
72
|
-
### Validator Plugins
|
|
73
|
-
Add custom validation rules.
|
|
74
|
-
|
|
75
|
-
### Reporter Plugins
|
|
76
|
-
Add custom report formats.
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
## Documentation
|
|
81
|
-
|
|
82
|
-
- [Plugin API](./plugin-api.md) - Complete API reference
|
|
83
|
-
- [Creating Plugins](./creating-plugins.md) - Build your own plugins
|
|
84
|
-
- [Plugin Registry](./plugin-registry.md) - Browse available plugins
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
## Configuration
|
|
89
|
-
|
|
90
|
-
```yaml
|
|
91
|
-
# proagents.config.yaml
|
|
92
|
-
plugins:
|
|
93
|
-
# Enabled plugins
|
|
94
|
-
enabled:
|
|
95
|
-
- "@proagents/plugin-jira"
|
|
96
|
-
- "@proagents/plugin-slack"
|
|
97
|
-
|
|
98
|
-
# Plugin-specific configuration
|
|
99
|
-
config:
|
|
100
|
-
"@proagents/plugin-jira":
|
|
101
|
-
baseUrl: "https://company.atlassian.net"
|
|
102
|
-
projectKey: "PROJ"
|
|
103
|
-
|
|
104
|
-
"@proagents/plugin-slack":
|
|
105
|
-
webhookUrl: "${SLACK_WEBHOOK_URL}"
|
|
106
|
-
channel: "#development"
|
|
107
|
-
|
|
108
|
-
# Plugin directories
|
|
109
|
-
directories:
|
|
110
|
-
- "./plugins"
|
|
111
|
-
- "~/.proagents/plugins"
|
|
112
|
-
|
|
113
|
-
# Auto-update settings
|
|
114
|
-
autoUpdate: false
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
---
|
|
118
|
-
|
|
119
|
-
## Commands
|
|
120
|
-
|
|
121
|
-
```bash
|
|
122
|
-
# List installed plugins
|
|
123
|
-
proagents plugin list
|
|
124
|
-
|
|
125
|
-
# Install a plugin
|
|
126
|
-
proagents plugin install <plugin-name>
|
|
127
|
-
|
|
128
|
-
# Remove a plugin
|
|
129
|
-
proagents plugin remove <plugin-name>
|
|
130
|
-
|
|
131
|
-
# Update plugins
|
|
132
|
-
proagents plugin update
|
|
133
|
-
|
|
134
|
-
# Create new plugin
|
|
135
|
-
proagents plugin create my-plugin
|
|
136
|
-
|
|
137
|
-
# Validate plugin
|
|
138
|
-
proagents plugin validate ./my-plugin
|
|
139
|
-
```
|