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,444 +0,0 @@
|
|
|
1
|
-
# Kill Switches
|
|
2
|
-
|
|
3
|
-
Emergency controls for instantly disabling features.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## What Are Kill Switches?
|
|
8
|
-
|
|
9
|
-
Kill switches are feature flags designed for emergency use. They allow instant disabling of features without code deployment.
|
|
10
|
-
|
|
11
|
-
| Regular Flag | Kill Switch |
|
|
12
|
-
|--------------|-------------|
|
|
13
|
-
| Gradual rollout | Instant toggle |
|
|
14
|
-
| A/B testing | Emergency only |
|
|
15
|
-
| User targeting | All-or-nothing |
|
|
16
|
-
| Complex rules | Simple on/off |
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## Kill Switch Configuration
|
|
21
|
-
|
|
22
|
-
### Basic Definition
|
|
23
|
-
|
|
24
|
-
```yaml
|
|
25
|
-
# proagents.config.yaml
|
|
26
|
-
feature_flags:
|
|
27
|
-
kill_switches:
|
|
28
|
-
# Payment processing
|
|
29
|
-
payments_enabled:
|
|
30
|
-
description: "Master switch for all payment processing"
|
|
31
|
-
default: true
|
|
32
|
-
critical: true
|
|
33
|
-
notify_on_change: ["#payments", "oncall"]
|
|
34
|
-
|
|
35
|
-
# External integrations
|
|
36
|
-
third_party_api_enabled:
|
|
37
|
-
description: "Toggle external API integrations"
|
|
38
|
-
default: true
|
|
39
|
-
dependencies:
|
|
40
|
-
- "analytics_enabled"
|
|
41
|
-
- "notifications_enabled"
|
|
42
|
-
|
|
43
|
-
# Feature-specific
|
|
44
|
-
ai_features_enabled:
|
|
45
|
-
description: "All AI/ML powered features"
|
|
46
|
-
default: true
|
|
47
|
-
fallback_behavior: "graceful_degradation"
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
### Hierarchical Kill Switches
|
|
51
|
-
|
|
52
|
-
```yaml
|
|
53
|
-
feature_flags:
|
|
54
|
-
kill_switches:
|
|
55
|
-
# Master switches
|
|
56
|
-
master:
|
|
57
|
-
api_enabled:
|
|
58
|
-
description: "Master API switch"
|
|
59
|
-
affects: ["*"]
|
|
60
|
-
|
|
61
|
-
frontend_features:
|
|
62
|
-
description: "All frontend features"
|
|
63
|
-
affects: ["ui/*"]
|
|
64
|
-
|
|
65
|
-
# Module-level switches
|
|
66
|
-
modules:
|
|
67
|
-
checkout:
|
|
68
|
-
enabled: true
|
|
69
|
-
parent: "api_enabled"
|
|
70
|
-
affects: ["checkout/*"]
|
|
71
|
-
|
|
72
|
-
user_profiles:
|
|
73
|
-
enabled: true
|
|
74
|
-
parent: "api_enabled"
|
|
75
|
-
affects: ["profiles/*"]
|
|
76
|
-
|
|
77
|
-
# Feature-level switches
|
|
78
|
-
features:
|
|
79
|
-
express_checkout:
|
|
80
|
-
enabled: true
|
|
81
|
-
parent: "checkout"
|
|
82
|
-
|
|
83
|
-
profile_avatars:
|
|
84
|
-
enabled: true
|
|
85
|
-
parent: "user_profiles"
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
---
|
|
89
|
-
|
|
90
|
-
## Emergency Response
|
|
91
|
-
|
|
92
|
-
### Automatic Kill Switch Triggers
|
|
93
|
-
|
|
94
|
-
```yaml
|
|
95
|
-
feature_flags:
|
|
96
|
-
kill_switches:
|
|
97
|
-
automation:
|
|
98
|
-
triggers:
|
|
99
|
-
# Error rate trigger
|
|
100
|
-
- name: "high_error_rate"
|
|
101
|
-
condition: "error_rate > 5%"
|
|
102
|
-
window: "5m"
|
|
103
|
-
kill_switch: "affected_feature_enabled"
|
|
104
|
-
action: "disable"
|
|
105
|
-
notify: ["#incidents", "oncall"]
|
|
106
|
-
|
|
107
|
-
# Latency trigger
|
|
108
|
-
- name: "high_latency"
|
|
109
|
-
condition: "p99_latency > 5000ms"
|
|
110
|
-
window: "10m"
|
|
111
|
-
kill_switch: "slow_feature_enabled"
|
|
112
|
-
action: "disable"
|
|
113
|
-
|
|
114
|
-
# External dependency failure
|
|
115
|
-
- name: "external_api_down"
|
|
116
|
-
condition: "external_api_success_rate < 50%"
|
|
117
|
-
window: "2m"
|
|
118
|
-
kill_switch: "external_integration_enabled"
|
|
119
|
-
action: "disable"
|
|
120
|
-
|
|
121
|
-
# Resource exhaustion
|
|
122
|
-
- name: "memory_critical"
|
|
123
|
-
condition: "memory_usage > 95%"
|
|
124
|
-
kill_switch: "memory_intensive_features"
|
|
125
|
-
action: "disable"
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
### Manual Emergency Response
|
|
129
|
-
|
|
130
|
-
```yaml
|
|
131
|
-
feature_flags:
|
|
132
|
-
kill_switches:
|
|
133
|
-
emergency:
|
|
134
|
-
# Quick access
|
|
135
|
-
hotkeys:
|
|
136
|
-
enabled: true
|
|
137
|
-
confirm_required: true
|
|
138
|
-
|
|
139
|
-
# Predefined emergency actions
|
|
140
|
-
runbooks:
|
|
141
|
-
- name: "payment_outage"
|
|
142
|
-
switches:
|
|
143
|
-
- "payments_enabled: false"
|
|
144
|
-
- "checkout_enabled: false"
|
|
145
|
-
notify: ["#payments", "#support", "oncall"]
|
|
146
|
-
escalate_to: ["payments-team-lead"]
|
|
147
|
-
|
|
148
|
-
- name: "security_incident"
|
|
149
|
-
switches:
|
|
150
|
-
- "user_registration: false"
|
|
151
|
-
- "password_reset: false"
|
|
152
|
-
- "api_tokens_enabled: false"
|
|
153
|
-
notify: ["#security", "#incidents"]
|
|
154
|
-
escalate_to: ["security-team", "cto"]
|
|
155
|
-
|
|
156
|
-
- name: "ddos_response"
|
|
157
|
-
switches:
|
|
158
|
-
- "public_api_enabled: false"
|
|
159
|
-
- "rate_limiting: aggressive"
|
|
160
|
-
notify: ["#infrastructure"]
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
---
|
|
164
|
-
|
|
165
|
-
## Graceful Degradation
|
|
166
|
-
|
|
167
|
-
### Fallback Behavior
|
|
168
|
-
|
|
169
|
-
```yaml
|
|
170
|
-
feature_flags:
|
|
171
|
-
kill_switches:
|
|
172
|
-
graceful_degradation:
|
|
173
|
-
ai_recommendations:
|
|
174
|
-
when_disabled:
|
|
175
|
-
behavior: "fallback"
|
|
176
|
-
fallback: "popular_items"
|
|
177
|
-
user_message: "Recommendations temporarily unavailable"
|
|
178
|
-
|
|
179
|
-
real_time_notifications:
|
|
180
|
-
when_disabled:
|
|
181
|
-
behavior: "queue"
|
|
182
|
-
queue_duration: "1h"
|
|
183
|
-
user_message: null # Silent degradation
|
|
184
|
-
|
|
185
|
-
file_uploads:
|
|
186
|
-
when_disabled:
|
|
187
|
-
behavior: "reject"
|
|
188
|
-
http_status: 503
|
|
189
|
-
user_message: "File uploads temporarily disabled"
|
|
190
|
-
retry_after: "300"
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
### Dependency Handling
|
|
194
|
-
|
|
195
|
-
```yaml
|
|
196
|
-
feature_flags:
|
|
197
|
-
kill_switches:
|
|
198
|
-
dependencies:
|
|
199
|
-
# When parent is disabled, all children are disabled
|
|
200
|
-
cascade:
|
|
201
|
-
payments_enabled:
|
|
202
|
-
children:
|
|
203
|
-
- "subscription_billing"
|
|
204
|
-
- "one_time_payments"
|
|
205
|
-
- "refund_processing"
|
|
206
|
-
|
|
207
|
-
# Graceful degradation chain
|
|
208
|
-
degradation_chain:
|
|
209
|
-
- if_disabled: "real_time_sync"
|
|
210
|
-
fallback_to: "polling_sync"
|
|
211
|
-
- if_disabled: "polling_sync"
|
|
212
|
-
fallback_to: "manual_refresh"
|
|
213
|
-
- if_disabled: "manual_refresh"
|
|
214
|
-
show_error: true
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
---
|
|
218
|
-
|
|
219
|
-
## Access Control
|
|
220
|
-
|
|
221
|
-
### Who Can Flip Kill Switches?
|
|
222
|
-
|
|
223
|
-
```yaml
|
|
224
|
-
feature_flags:
|
|
225
|
-
kill_switches:
|
|
226
|
-
access:
|
|
227
|
-
# Role-based access
|
|
228
|
-
roles:
|
|
229
|
-
# Critical switches
|
|
230
|
-
critical:
|
|
231
|
-
allowed: ["sre", "tech-lead", "admin"]
|
|
232
|
-
require_reason: true
|
|
233
|
-
require_approval: false # Emergency use
|
|
234
|
-
|
|
235
|
-
# Standard switches
|
|
236
|
-
standard:
|
|
237
|
-
allowed: ["developer", "sre", "tech-lead", "admin"]
|
|
238
|
-
require_reason: true
|
|
239
|
-
|
|
240
|
-
# Low-risk switches
|
|
241
|
-
low_risk:
|
|
242
|
-
allowed: ["*"]
|
|
243
|
-
require_reason: false
|
|
244
|
-
|
|
245
|
-
# Specific switch overrides
|
|
246
|
-
overrides:
|
|
247
|
-
master_api_switch:
|
|
248
|
-
allowed: ["sre", "cto"]
|
|
249
|
-
require_approval_from: ["cto"]
|
|
250
|
-
except_during: "declared_incident"
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
### Audit Trail
|
|
254
|
-
|
|
255
|
-
```yaml
|
|
256
|
-
feature_flags:
|
|
257
|
-
kill_switches:
|
|
258
|
-
audit:
|
|
259
|
-
# Log all changes
|
|
260
|
-
log_all_changes: true
|
|
261
|
-
|
|
262
|
-
# Required fields
|
|
263
|
-
required_fields:
|
|
264
|
-
- "reason"
|
|
265
|
-
- "expected_duration"
|
|
266
|
-
- "incident_ticket" # Optional but encouraged
|
|
267
|
-
|
|
268
|
-
# Retention
|
|
269
|
-
retention: "2 years"
|
|
270
|
-
|
|
271
|
-
# Notifications
|
|
272
|
-
notify_on_change:
|
|
273
|
-
channels: ["#kill-switches", "#incidents"]
|
|
274
|
-
include: ["who", "what", "when", "reason"]
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
---
|
|
278
|
-
|
|
279
|
-
## Recovery Procedures
|
|
280
|
-
|
|
281
|
-
### Re-enabling Features
|
|
282
|
-
|
|
283
|
-
```yaml
|
|
284
|
-
feature_flags:
|
|
285
|
-
kill_switches:
|
|
286
|
-
recovery:
|
|
287
|
-
# Gradual re-enable
|
|
288
|
-
gradual_recovery:
|
|
289
|
-
enabled: true
|
|
290
|
-
phases:
|
|
291
|
-
- percentage: 10
|
|
292
|
-
duration: "5m"
|
|
293
|
-
verify: ["error_rate < 1%"]
|
|
294
|
-
|
|
295
|
-
- percentage: 50
|
|
296
|
-
duration: "10m"
|
|
297
|
-
verify: ["error_rate < 0.5%"]
|
|
298
|
-
|
|
299
|
-
- percentage: 100
|
|
300
|
-
verify: ["all_health_checks_pass"]
|
|
301
|
-
|
|
302
|
-
# Health checks before re-enable
|
|
303
|
-
pre_enable_checks:
|
|
304
|
-
- "root_cause_identified"
|
|
305
|
-
- "fix_deployed"
|
|
306
|
-
- "staging_verified"
|
|
307
|
-
- "oncall_approval"
|
|
308
|
-
|
|
309
|
-
# Post-enable monitoring
|
|
310
|
-
post_enable:
|
|
311
|
-
duration: "30m"
|
|
312
|
-
alert_sensitivity: "high"
|
|
313
|
-
auto_disable_on_regression: true
|
|
314
|
-
```
|
|
315
|
-
|
|
316
|
-
### Post-Incident Review
|
|
317
|
-
|
|
318
|
-
```yaml
|
|
319
|
-
feature_flags:
|
|
320
|
-
kill_switches:
|
|
321
|
-
post_incident:
|
|
322
|
-
# Required documentation
|
|
323
|
-
required:
|
|
324
|
-
- "incident_timeline"
|
|
325
|
-
- "root_cause"
|
|
326
|
-
- "resolution_steps"
|
|
327
|
-
- "prevention_measures"
|
|
328
|
-
|
|
329
|
-
# Template
|
|
330
|
-
template: |
|
|
331
|
-
## Kill Switch Activation Report
|
|
332
|
-
|
|
333
|
-
**Switch:** {{switch_name}}
|
|
334
|
-
**Activated:** {{activation_time}}
|
|
335
|
-
**Duration:** {{duration}}
|
|
336
|
-
**Activated By:** {{user}}
|
|
337
|
-
|
|
338
|
-
### Reason
|
|
339
|
-
{{reason}}
|
|
340
|
-
|
|
341
|
-
### Impact
|
|
342
|
-
{{impact_description}}
|
|
343
|
-
|
|
344
|
-
### Root Cause
|
|
345
|
-
{{root_cause}}
|
|
346
|
-
|
|
347
|
-
### Prevention
|
|
348
|
-
{{prevention_measures}}
|
|
349
|
-
```
|
|
350
|
-
|
|
351
|
-
---
|
|
352
|
-
|
|
353
|
-
## Monitoring & Alerting
|
|
354
|
-
|
|
355
|
-
### Kill Switch Dashboard
|
|
356
|
-
|
|
357
|
-
```yaml
|
|
358
|
-
feature_flags:
|
|
359
|
-
kill_switches:
|
|
360
|
-
dashboard:
|
|
361
|
-
# Current status
|
|
362
|
-
status_panel:
|
|
363
|
-
show: ["all_kill_switches"]
|
|
364
|
-
highlight: ["disabled_switches"]
|
|
365
|
-
|
|
366
|
-
# Recent activity
|
|
367
|
-
activity:
|
|
368
|
-
show_last: "24h"
|
|
369
|
-
columns: ["switch", "action", "user", "time", "reason"]
|
|
370
|
-
|
|
371
|
-
# Health metrics
|
|
372
|
-
metrics:
|
|
373
|
-
- "switches_currently_disabled"
|
|
374
|
-
- "activations_last_24h"
|
|
375
|
-
- "avg_disable_duration"
|
|
376
|
-
```
|
|
377
|
-
|
|
378
|
-
### Alerts
|
|
379
|
-
|
|
380
|
-
```yaml
|
|
381
|
-
feature_flags:
|
|
382
|
-
kill_switches:
|
|
383
|
-
alerts:
|
|
384
|
-
# Switch activated
|
|
385
|
-
on_disable:
|
|
386
|
-
critical:
|
|
387
|
-
notify: ["pagerduty", "#incidents"]
|
|
388
|
-
message: "CRITICAL: Kill switch {{name}} DISABLED"
|
|
389
|
-
standard:
|
|
390
|
-
notify: ["#alerts"]
|
|
391
|
-
|
|
392
|
-
# Switch re-enabled
|
|
393
|
-
on_enable:
|
|
394
|
-
notify: ["#alerts"]
|
|
395
|
-
message: "Kill switch {{name}} re-enabled after {{duration}}"
|
|
396
|
-
|
|
397
|
-
# Long duration alert
|
|
398
|
-
prolonged_disable:
|
|
399
|
-
threshold: "1h"
|
|
400
|
-
notify: ["#incidents", "engineering-manager"]
|
|
401
|
-
message: "Kill switch {{name}} disabled for {{duration}}"
|
|
402
|
-
```
|
|
403
|
-
|
|
404
|
-
---
|
|
405
|
-
|
|
406
|
-
## Commands
|
|
407
|
-
|
|
408
|
-
```bash
|
|
409
|
-
# List all kill switches
|
|
410
|
-
proagents killswitch list
|
|
411
|
-
|
|
412
|
-
# Check status
|
|
413
|
-
proagents killswitch status payments_enabled
|
|
414
|
-
|
|
415
|
-
# Disable (emergency)
|
|
416
|
-
proagents killswitch disable payments_enabled --reason "Payment provider outage"
|
|
417
|
-
|
|
418
|
-
# Enable
|
|
419
|
-
proagents killswitch enable payments_enabled --verify
|
|
420
|
-
|
|
421
|
-
# Gradual re-enable
|
|
422
|
-
proagents killswitch enable payments_enabled --gradual
|
|
423
|
-
|
|
424
|
-
# View history
|
|
425
|
-
proagents killswitch history payments_enabled --last 30d
|
|
426
|
-
|
|
427
|
-
# Run emergency runbook
|
|
428
|
-
proagents killswitch runbook payment_outage
|
|
429
|
-
|
|
430
|
-
# Test kill switch (dry run)
|
|
431
|
-
proagents killswitch test payments_enabled --dry-run
|
|
432
|
-
```
|
|
433
|
-
|
|
434
|
-
---
|
|
435
|
-
|
|
436
|
-
## Best Practices
|
|
437
|
-
|
|
438
|
-
1. **Test Regularly**: Verify kill switches work before you need them
|
|
439
|
-
2. **Document Dependencies**: Know what breaks when you flip a switch
|
|
440
|
-
3. **Graceful Degradation**: Always have fallback behavior defined
|
|
441
|
-
4. **Access Control**: Limit who can flip critical switches
|
|
442
|
-
5. **Audit Everything**: Log all kill switch activity
|
|
443
|
-
6. **Quick Recovery**: Plan how to re-enable safely
|
|
444
|
-
7. **Communicate**: Notify stakeholders when switches change
|