proagents 1.6.17 → 1.6.19
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/.proagents/AGENTS.md +2 -0
- package/.proagents/AI_INSTRUCTIONS.md +13 -0
- package/.proagents/ANTIGRAVITY.md +2 -0
- package/.proagents/BOLT.md +2 -0
- package/.proagents/CHATGPT.md +2 -0
- package/.proagents/CLAUDE.md +2 -0
- package/.proagents/GEMINI.md +2 -0
- package/.proagents/GROQ.md +2 -0
- package/.proagents/KIRO.md +2 -0
- package/.proagents/LOVABLE.md +2 -0
- package/.proagents/PROAGENTS.md +2 -0
- package/.proagents/REPLIT.md +2 -0
- package/.proagents/prompts/00-project-setup.md +878 -0
- package/.proagents/prompts/04-planning.md +38 -0
- package/.proagents/prompts/12-rnd.md +957 -0
- package/.proagents/workflow-modes/entry-modes.md +27 -0
- package/.proagents/worklog/_context.template.md +47 -0
- package/COMMANDS.md +654 -0
- package/README.md +16 -24
- 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,263 +0,0 @@
|
|
|
1
|
-
# Feature Flags
|
|
2
|
-
|
|
3
|
-
Control feature rollouts, A/B testing, and kill switches.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Overview
|
|
8
|
-
|
|
9
|
-
Feature flags enable safe deployments by decoupling code deployment from feature release.
|
|
10
|
-
|
|
11
|
-
## Documentation
|
|
12
|
-
|
|
13
|
-
| Document | Description |
|
|
14
|
-
|----------|-------------|
|
|
15
|
-
| [Flag Configuration](./configuration.md) | Setting up feature flags |
|
|
16
|
-
| [Rollout Strategies](./rollout-strategies.md) | Gradual rollout patterns |
|
|
17
|
-
| [A/B Testing](./ab-testing.md) | Experimentation with flags |
|
|
18
|
-
| [Kill Switches](./kill-switches.md) | Emergency flag controls |
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## Quick Start
|
|
23
|
-
|
|
24
|
-
### Define a Flag
|
|
25
|
-
|
|
26
|
-
```yaml
|
|
27
|
-
# proagents.config.yaml
|
|
28
|
-
feature_flags:
|
|
29
|
-
flags:
|
|
30
|
-
new_checkout_flow:
|
|
31
|
-
description: "New checkout experience"
|
|
32
|
-
default: false
|
|
33
|
-
|
|
34
|
-
# Rollout configuration
|
|
35
|
-
rollout:
|
|
36
|
-
type: "percentage"
|
|
37
|
-
value: 25 # 25% of users
|
|
38
|
-
|
|
39
|
-
# Environment overrides
|
|
40
|
-
environments:
|
|
41
|
-
development: true
|
|
42
|
-
staging: true
|
|
43
|
-
production: false
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
### Use in Code
|
|
47
|
-
|
|
48
|
-
```typescript
|
|
49
|
-
import { useFeatureFlag } from '@proagents/flags';
|
|
50
|
-
|
|
51
|
-
function CheckoutPage() {
|
|
52
|
-
const newCheckout = useFeatureFlag('new_checkout_flow');
|
|
53
|
-
|
|
54
|
-
if (newCheckout) {
|
|
55
|
-
return <NewCheckoutFlow />;
|
|
56
|
-
}
|
|
57
|
-
return <LegacyCheckout />;
|
|
58
|
-
}
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
---
|
|
62
|
-
|
|
63
|
-
## Flag Types
|
|
64
|
-
|
|
65
|
-
### Boolean Flags
|
|
66
|
-
|
|
67
|
-
```yaml
|
|
68
|
-
feature_flags:
|
|
69
|
-
flags:
|
|
70
|
-
dark_mode:
|
|
71
|
-
type: "boolean"
|
|
72
|
-
default: false
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
### Percentage Rollout
|
|
76
|
-
|
|
77
|
-
```yaml
|
|
78
|
-
feature_flags:
|
|
79
|
-
flags:
|
|
80
|
-
new_feature:
|
|
81
|
-
type: "percentage"
|
|
82
|
-
rollout:
|
|
83
|
-
value: 50 # 50% of users
|
|
84
|
-
sticky: true # Same user always gets same value
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
### User Targeting
|
|
88
|
-
|
|
89
|
-
```yaml
|
|
90
|
-
feature_flags:
|
|
91
|
-
flags:
|
|
92
|
-
beta_feature:
|
|
93
|
-
type: "targeted"
|
|
94
|
-
targets:
|
|
95
|
-
# Specific users
|
|
96
|
-
users:
|
|
97
|
-
- "user-123"
|
|
98
|
-
- "user-456"
|
|
99
|
-
|
|
100
|
-
# User attributes
|
|
101
|
-
attributes:
|
|
102
|
-
- key: "plan"
|
|
103
|
-
value: "enterprise"
|
|
104
|
-
- key: "country"
|
|
105
|
-
value: ["US", "CA"]
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
### Scheduled Flags
|
|
109
|
-
|
|
110
|
-
```yaml
|
|
111
|
-
feature_flags:
|
|
112
|
-
flags:
|
|
113
|
-
holiday_theme:
|
|
114
|
-
type: "scheduled"
|
|
115
|
-
schedule:
|
|
116
|
-
start: "2024-12-20T00:00:00Z"
|
|
117
|
-
end: "2024-12-26T23:59:59Z"
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
---
|
|
121
|
-
|
|
122
|
-
## Rollout Strategies
|
|
123
|
-
|
|
124
|
-
### Canary Release
|
|
125
|
-
|
|
126
|
-
```yaml
|
|
127
|
-
feature_flags:
|
|
128
|
-
flags:
|
|
129
|
-
new_api:
|
|
130
|
-
rollout:
|
|
131
|
-
strategy: "canary"
|
|
132
|
-
stages:
|
|
133
|
-
- percentage: 1
|
|
134
|
-
duration: "1h"
|
|
135
|
-
- percentage: 10
|
|
136
|
-
duration: "4h"
|
|
137
|
-
- percentage: 50
|
|
138
|
-
duration: "1d"
|
|
139
|
-
- percentage: 100
|
|
140
|
-
|
|
141
|
-
# Auto-rollback on errors
|
|
142
|
-
rollback:
|
|
143
|
-
error_threshold: 5 # percent
|
|
144
|
-
auto_rollback: true
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
### Ring Deployment
|
|
148
|
-
|
|
149
|
-
```yaml
|
|
150
|
-
feature_flags:
|
|
151
|
-
flags:
|
|
152
|
-
infrastructure_change:
|
|
153
|
-
rollout:
|
|
154
|
-
strategy: "ring"
|
|
155
|
-
rings:
|
|
156
|
-
- name: "internal"
|
|
157
|
-
targets: ["@employees"]
|
|
158
|
-
- name: "beta"
|
|
159
|
-
targets: ["@beta_users"]
|
|
160
|
-
- name: "early_adopters"
|
|
161
|
-
percentage: 10
|
|
162
|
-
- name: "general"
|
|
163
|
-
percentage: 100
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
---
|
|
167
|
-
|
|
168
|
-
## Commands
|
|
169
|
-
|
|
170
|
-
```bash
|
|
171
|
-
# List all flags
|
|
172
|
-
proagents flags list
|
|
173
|
-
|
|
174
|
-
# Check flag status
|
|
175
|
-
proagents flags status new_checkout_flow
|
|
176
|
-
|
|
177
|
-
# Enable flag
|
|
178
|
-
proagents flags enable new_checkout_flow --env production
|
|
179
|
-
|
|
180
|
-
# Disable flag (kill switch)
|
|
181
|
-
proagents flags disable new_checkout_flow --env production
|
|
182
|
-
|
|
183
|
-
# Set rollout percentage
|
|
184
|
-
proagents flags rollout new_checkout_flow 50
|
|
185
|
-
|
|
186
|
-
# View flag history
|
|
187
|
-
proagents flags history new_checkout_flow
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
---
|
|
191
|
-
|
|
192
|
-
## Dashboard
|
|
193
|
-
|
|
194
|
-
```
|
|
195
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
196
|
-
│ Feature Flags │
|
|
197
|
-
├─────────────────────────────────────────────────────────────┤
|
|
198
|
-
│ │
|
|
199
|
-
│ Active Flags: 12 │
|
|
200
|
-
│ │
|
|
201
|
-
│ Flag Dev Staging Prod Rollout │
|
|
202
|
-
│ ───────────────────────────────────────────────────────── │
|
|
203
|
-
│ new_checkout_flow ✅ ✅ 🔄 25% │
|
|
204
|
-
│ dark_mode ✅ ✅ ✅ 100% │
|
|
205
|
-
│ beta_dashboard ✅ ✅ ❌ 0% │
|
|
206
|
-
│ experimental_api ✅ ❌ ❌ 0% │
|
|
207
|
-
│ │
|
|
208
|
-
│ Recent Changes: │
|
|
209
|
-
│ • new_checkout_flow: 10% → 25% (2h ago) │
|
|
210
|
-
│ • dark_mode: enabled in prod (1d ago) │
|
|
211
|
-
│ │
|
|
212
|
-
└─────────────────────────────────────────────────────────────┘
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
---
|
|
216
|
-
|
|
217
|
-
## Kill Switch
|
|
218
|
-
|
|
219
|
-
### Emergency Disable
|
|
220
|
-
|
|
221
|
-
```bash
|
|
222
|
-
# Immediate disable
|
|
223
|
-
proagents flags kill new_checkout_flow
|
|
224
|
-
|
|
225
|
-
# With notification
|
|
226
|
-
proagents flags kill new_checkout_flow \
|
|
227
|
-
--notify "#incidents" \
|
|
228
|
-
--reason "Performance issues detected"
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
### Auto-Kill Rules
|
|
232
|
-
|
|
233
|
-
```yaml
|
|
234
|
-
feature_flags:
|
|
235
|
-
flags:
|
|
236
|
-
new_feature:
|
|
237
|
-
kill_switch:
|
|
238
|
-
enabled: true
|
|
239
|
-
|
|
240
|
-
triggers:
|
|
241
|
-
- metric: "error_rate"
|
|
242
|
-
threshold: 5 # percent
|
|
243
|
-
|
|
244
|
-
- metric: "latency_p99"
|
|
245
|
-
threshold: 3000 # ms
|
|
246
|
-
|
|
247
|
-
- metric: "user_complaints"
|
|
248
|
-
threshold: 10
|
|
249
|
-
window: "1h"
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
---
|
|
253
|
-
|
|
254
|
-
## Best Practices
|
|
255
|
-
|
|
256
|
-
1. **Name Clearly**: `new_checkout_flow` not `flag_123`
|
|
257
|
-
2. **Set Defaults**: Always have a safe default
|
|
258
|
-
3. **Clean Up**: Remove flags after full rollout
|
|
259
|
-
4. **Document Purpose**: Explain what each flag controls
|
|
260
|
-
5. **Monitor Impact**: Track metrics per flag state
|
|
261
|
-
6. **Have Kill Switches**: Always be able to disable quickly
|
|
262
|
-
7. **Test Both States**: Test with flag on AND off
|
|
263
|
-
8. **Limit Active Flags**: Too many creates complexity
|
|
@@ -1,413 +0,0 @@
|
|
|
1
|
-
# A/B Testing
|
|
2
|
-
|
|
3
|
-
Statistical experimentation with feature flags.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Experiment Setup
|
|
8
|
-
|
|
9
|
-
### Basic A/B Test
|
|
10
|
-
|
|
11
|
-
```yaml
|
|
12
|
-
feature_flags:
|
|
13
|
-
experiments:
|
|
14
|
-
checkout_button_color:
|
|
15
|
-
description: "Test impact of checkout button color on conversion"
|
|
16
|
-
type: "ab_test"
|
|
17
|
-
|
|
18
|
-
# Variations
|
|
19
|
-
variations:
|
|
20
|
-
- name: "control"
|
|
21
|
-
value: "blue"
|
|
22
|
-
weight: 50
|
|
23
|
-
|
|
24
|
-
- name: "treatment"
|
|
25
|
-
value: "green"
|
|
26
|
-
weight: 50
|
|
27
|
-
|
|
28
|
-
# Target metrics
|
|
29
|
-
primary_metric: "checkout_conversion_rate"
|
|
30
|
-
secondary_metrics:
|
|
31
|
-
- "time_to_checkout"
|
|
32
|
-
- "cart_abandonment_rate"
|
|
33
|
-
|
|
34
|
-
# Traffic allocation
|
|
35
|
-
allocation:
|
|
36
|
-
percentage: 100 # 100% of eligible users
|
|
37
|
-
sticky: true # Consistent experience
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
### Multi-Variant Test
|
|
41
|
-
|
|
42
|
-
```yaml
|
|
43
|
-
feature_flags:
|
|
44
|
-
experiments:
|
|
45
|
-
pricing_page_layout:
|
|
46
|
-
type: "multivariate"
|
|
47
|
-
|
|
48
|
-
variations:
|
|
49
|
-
- name: "control"
|
|
50
|
-
value: { layout: "standard", cta: "Subscribe" }
|
|
51
|
-
weight: 25
|
|
52
|
-
|
|
53
|
-
- name: "variant_a"
|
|
54
|
-
value: { layout: "comparison", cta: "Subscribe" }
|
|
55
|
-
weight: 25
|
|
56
|
-
|
|
57
|
-
- name: "variant_b"
|
|
58
|
-
value: { layout: "standard", cta: "Start Free Trial" }
|
|
59
|
-
weight: 25
|
|
60
|
-
|
|
61
|
-
- name: "variant_c"
|
|
62
|
-
value: { layout: "comparison", cta: "Start Free Trial" }
|
|
63
|
-
weight: 25
|
|
64
|
-
|
|
65
|
-
primary_metric: "plan_selection_rate"
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
---
|
|
69
|
-
|
|
70
|
-
## Statistical Configuration
|
|
71
|
-
|
|
72
|
-
### Sample Size Calculation
|
|
73
|
-
|
|
74
|
-
```yaml
|
|
75
|
-
feature_flags:
|
|
76
|
-
experiments:
|
|
77
|
-
new_onboarding:
|
|
78
|
-
statistics:
|
|
79
|
-
# Minimum detectable effect
|
|
80
|
-
mde: 5% # Detect 5% improvement
|
|
81
|
-
|
|
82
|
-
# Statistical significance
|
|
83
|
-
significance_level: 0.05 # 95% confidence
|
|
84
|
-
|
|
85
|
-
# Statistical power
|
|
86
|
-
power: 0.8 # 80% power
|
|
87
|
-
|
|
88
|
-
# Baseline conversion
|
|
89
|
-
baseline_rate: 10%
|
|
90
|
-
|
|
91
|
-
# Calculated sample size
|
|
92
|
-
# (automatically computed or manually set)
|
|
93
|
-
min_sample_per_variation: 3150
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
### Analysis Method
|
|
97
|
-
|
|
98
|
-
```yaml
|
|
99
|
-
feature_flags:
|
|
100
|
-
experiments:
|
|
101
|
-
checkout_flow:
|
|
102
|
-
statistics:
|
|
103
|
-
# Analysis method
|
|
104
|
-
method: "frequentist" # or "bayesian"
|
|
105
|
-
|
|
106
|
-
# Frequentist settings
|
|
107
|
-
frequentist:
|
|
108
|
-
test_type: "two_tailed"
|
|
109
|
-
correction: "bonferroni" # For multiple comparisons
|
|
110
|
-
|
|
111
|
-
# Bayesian settings
|
|
112
|
-
bayesian:
|
|
113
|
-
prior: "uniform"
|
|
114
|
-
credible_interval: 0.95
|
|
115
|
-
rope: [-0.01, 0.01] # Region of practical equivalence
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
### Sequential Testing
|
|
119
|
-
|
|
120
|
-
```yaml
|
|
121
|
-
feature_flags:
|
|
122
|
-
experiments:
|
|
123
|
-
landing_page:
|
|
124
|
-
statistics:
|
|
125
|
-
# Allow early stopping
|
|
126
|
-
sequential_testing:
|
|
127
|
-
enabled: true
|
|
128
|
-
method: "always_valid_inference"
|
|
129
|
-
|
|
130
|
-
# Peek schedule
|
|
131
|
-
analysis_schedule: "daily"
|
|
132
|
-
|
|
133
|
-
# Early stopping rules
|
|
134
|
-
stop_for_winner:
|
|
135
|
-
confidence: 0.99
|
|
136
|
-
min_runtime: "7d"
|
|
137
|
-
|
|
138
|
-
stop_for_futility:
|
|
139
|
-
probability_to_beat_baseline: 0.05
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
---
|
|
143
|
-
|
|
144
|
-
## Metric Configuration
|
|
145
|
-
|
|
146
|
-
### Primary Metrics
|
|
147
|
-
|
|
148
|
-
```yaml
|
|
149
|
-
feature_flags:
|
|
150
|
-
experiments:
|
|
151
|
-
new_feature:
|
|
152
|
-
metrics:
|
|
153
|
-
primary:
|
|
154
|
-
name: "conversion_rate"
|
|
155
|
-
type: "proportion"
|
|
156
|
-
numerator: "completed_signups"
|
|
157
|
-
denominator: "landing_page_views"
|
|
158
|
-
|
|
159
|
-
# Guardrails
|
|
160
|
-
guardrails:
|
|
161
|
-
min_improvement: -5% # Don't ship if worse than -5%
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
### Secondary Metrics
|
|
165
|
-
|
|
166
|
-
```yaml
|
|
167
|
-
feature_flags:
|
|
168
|
-
experiments:
|
|
169
|
-
new_feature:
|
|
170
|
-
metrics:
|
|
171
|
-
secondary:
|
|
172
|
-
- name: "revenue_per_user"
|
|
173
|
-
type: "mean"
|
|
174
|
-
metric: "total_revenue"
|
|
175
|
-
per: "user"
|
|
176
|
-
|
|
177
|
-
- name: "session_duration"
|
|
178
|
-
type: "mean"
|
|
179
|
-
metric: "session_length_seconds"
|
|
180
|
-
|
|
181
|
-
- name: "feature_adoption"
|
|
182
|
-
type: "proportion"
|
|
183
|
-
event: "feature_used"
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
### Guardrail Metrics
|
|
187
|
-
|
|
188
|
-
```yaml
|
|
189
|
-
feature_flags:
|
|
190
|
-
experiments:
|
|
191
|
-
new_feature:
|
|
192
|
-
metrics:
|
|
193
|
-
guardrails:
|
|
194
|
-
- name: "error_rate"
|
|
195
|
-
type: "proportion"
|
|
196
|
-
threshold: "+1%" # Don't increase errors by more than 1%
|
|
197
|
-
action: "stop_experiment"
|
|
198
|
-
|
|
199
|
-
- name: "page_load_time"
|
|
200
|
-
type: "mean"
|
|
201
|
-
threshold: "+500ms"
|
|
202
|
-
action: "alert"
|
|
203
|
-
|
|
204
|
-
- name: "crash_rate"
|
|
205
|
-
type: "proportion"
|
|
206
|
-
threshold: "+0.1%"
|
|
207
|
-
action: "stop_experiment"
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
---
|
|
211
|
-
|
|
212
|
-
## Targeting & Segmentation
|
|
213
|
-
|
|
214
|
-
### User Segments
|
|
215
|
-
|
|
216
|
-
```yaml
|
|
217
|
-
feature_flags:
|
|
218
|
-
experiments:
|
|
219
|
-
premium_feature:
|
|
220
|
-
targeting:
|
|
221
|
-
# Include segments
|
|
222
|
-
include:
|
|
223
|
-
- segment: "paying_users"
|
|
224
|
-
- segment: "active_last_30d"
|
|
225
|
-
|
|
226
|
-
# Exclude segments
|
|
227
|
-
exclude:
|
|
228
|
-
- segment: "internal_users"
|
|
229
|
-
- segment: "api_only_users"
|
|
230
|
-
|
|
231
|
-
# Geographic targeting
|
|
232
|
-
geo:
|
|
233
|
-
include: ["US", "CA", "UK"]
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
### Segment Analysis
|
|
237
|
-
|
|
238
|
-
```yaml
|
|
239
|
-
feature_flags:
|
|
240
|
-
experiments:
|
|
241
|
-
new_feature:
|
|
242
|
-
analysis:
|
|
243
|
-
segments:
|
|
244
|
-
- name: "plan_type"
|
|
245
|
-
values: ["free", "pro", "enterprise"]
|
|
246
|
-
|
|
247
|
-
- name: "platform"
|
|
248
|
-
values: ["web", "ios", "android"]
|
|
249
|
-
|
|
250
|
-
- name: "cohort"
|
|
251
|
-
values: ["new_users", "existing_users"]
|
|
252
|
-
|
|
253
|
-
# Interaction effects
|
|
254
|
-
interactions:
|
|
255
|
-
enabled: true
|
|
256
|
-
max_depth: 2
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
---
|
|
260
|
-
|
|
261
|
-
## Experiment Lifecycle
|
|
262
|
-
|
|
263
|
-
### State Machine
|
|
264
|
-
|
|
265
|
-
```yaml
|
|
266
|
-
feature_flags:
|
|
267
|
-
experiments:
|
|
268
|
-
lifecycle:
|
|
269
|
-
states:
|
|
270
|
-
draft:
|
|
271
|
-
transitions: ["review"]
|
|
272
|
-
|
|
273
|
-
review:
|
|
274
|
-
transitions: ["approved", "rejected"]
|
|
275
|
-
requires: ["data_scientist_approval"]
|
|
276
|
-
|
|
277
|
-
approved:
|
|
278
|
-
transitions: ["running"]
|
|
279
|
-
auto_start: false
|
|
280
|
-
|
|
281
|
-
running:
|
|
282
|
-
transitions: ["paused", "stopped", "completed"]
|
|
283
|
-
|
|
284
|
-
paused:
|
|
285
|
-
transitions: ["running", "stopped"]
|
|
286
|
-
|
|
287
|
-
stopped:
|
|
288
|
-
transitions: []
|
|
289
|
-
reason_required: true
|
|
290
|
-
|
|
291
|
-
completed:
|
|
292
|
-
transitions: ["archived"]
|
|
293
|
-
requires: ["results_documented"]
|
|
294
|
-
```
|
|
295
|
-
|
|
296
|
-
### Duration Limits
|
|
297
|
-
|
|
298
|
-
```yaml
|
|
299
|
-
feature_flags:
|
|
300
|
-
experiments:
|
|
301
|
-
new_feature:
|
|
302
|
-
duration:
|
|
303
|
-
# Minimum runtime
|
|
304
|
-
min: "7d"
|
|
305
|
-
|
|
306
|
-
# Maximum runtime
|
|
307
|
-
max: "30d"
|
|
308
|
-
|
|
309
|
-
# Auto-stop on max
|
|
310
|
-
auto_stop_on_max: true
|
|
311
|
-
|
|
312
|
-
# Warning before max
|
|
313
|
-
warn_before_max: "3d"
|
|
314
|
-
```
|
|
315
|
-
|
|
316
|
-
---
|
|
317
|
-
|
|
318
|
-
## Results & Reporting
|
|
319
|
-
|
|
320
|
-
### Results Dashboard
|
|
321
|
-
|
|
322
|
-
```yaml
|
|
323
|
-
feature_flags:
|
|
324
|
-
experiments:
|
|
325
|
-
reporting:
|
|
326
|
-
dashboard:
|
|
327
|
-
sections:
|
|
328
|
-
- name: "Summary"
|
|
329
|
-
metrics: ["primary_metric", "confidence"]
|
|
330
|
-
|
|
331
|
-
- name: "Variations"
|
|
332
|
-
show: ["conversion_rate", "sample_size", "ci_95"]
|
|
333
|
-
|
|
334
|
-
- name: "Trends"
|
|
335
|
-
charts: ["daily_conversion", "cumulative_lift"]
|
|
336
|
-
|
|
337
|
-
- name: "Segments"
|
|
338
|
-
breakdown: ["platform", "plan_type"]
|
|
339
|
-
```
|
|
340
|
-
|
|
341
|
-
### Report Template
|
|
342
|
-
|
|
343
|
-
```markdown
|
|
344
|
-
## Experiment Report: {{experiment_name}}
|
|
345
|
-
|
|
346
|
-
**Duration:** {{start_date}} - {{end_date}}
|
|
347
|
-
**Total Users:** {{total_users}}
|
|
348
|
-
**Status:** {{status}}
|
|
349
|
-
|
|
350
|
-
### Summary
|
|
351
|
-
{{primary_metric}} for treatment vs control:
|
|
352
|
-
- **Lift:** {{lift}}% ({{ci_lower}}% to {{ci_upper}}%)
|
|
353
|
-
- **Statistical Significance:** {{p_value}}
|
|
354
|
-
- **Confidence:** {{confidence}}%
|
|
355
|
-
|
|
356
|
-
### Recommendation
|
|
357
|
-
{{recommendation}}
|
|
358
|
-
|
|
359
|
-
### Variation Performance
|
|
360
|
-
| Variation | Users | Conversions | Rate | vs Control |
|
|
361
|
-
|-----------|-------|-------------|------|------------|
|
|
362
|
-
{{#each variations}}
|
|
363
|
-
| {{name}} | {{users}} | {{conversions}} | {{rate}}% | {{lift}}% |
|
|
364
|
-
{{/each}}
|
|
365
|
-
|
|
366
|
-
### Segment Analysis
|
|
367
|
-
{{segment_analysis}}
|
|
368
|
-
|
|
369
|
-
### Next Steps
|
|
370
|
-
{{next_steps}}
|
|
371
|
-
```
|
|
372
|
-
|
|
373
|
-
---
|
|
374
|
-
|
|
375
|
-
## Commands
|
|
376
|
-
|
|
377
|
-
```bash
|
|
378
|
-
# Create experiment
|
|
379
|
-
proagents experiment create checkout_button --type ab
|
|
380
|
-
|
|
381
|
-
# Start experiment
|
|
382
|
-
proagents experiment start checkout_button
|
|
383
|
-
|
|
384
|
-
# Check status
|
|
385
|
-
proagents experiment status checkout_button
|
|
386
|
-
|
|
387
|
-
# View results
|
|
388
|
-
proagents experiment results checkout_button
|
|
389
|
-
|
|
390
|
-
# Pause experiment
|
|
391
|
-
proagents experiment pause checkout_button
|
|
392
|
-
|
|
393
|
-
# Stop experiment
|
|
394
|
-
proagents experiment stop checkout_button --reason "Reached significance"
|
|
395
|
-
|
|
396
|
-
# Ship winning variation
|
|
397
|
-
proagents experiment ship checkout_button --variation treatment
|
|
398
|
-
|
|
399
|
-
# Generate report
|
|
400
|
-
proagents experiment report checkout_button --format pdf
|
|
401
|
-
```
|
|
402
|
-
|
|
403
|
-
---
|
|
404
|
-
|
|
405
|
-
## Best Practices
|
|
406
|
-
|
|
407
|
-
1. **Hypothesis First**: Define what you're testing and why
|
|
408
|
-
2. **One Change**: Test one thing at a time
|
|
409
|
-
3. **Sufficient Power**: Calculate sample size before starting
|
|
410
|
-
4. **Run to Completion**: Don't peek and stop early
|
|
411
|
-
5. **Guard Rails**: Always monitor guardrail metrics
|
|
412
|
-
6. **Document Results**: Record learnings regardless of outcome
|
|
413
|
-
7. **Follow Up**: Ship or iterate based on results
|