proagents 1.6.17 → 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 +13 -23
- 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,146 +0,0 @@
|
|
|
1
|
-
# Approval Workflows
|
|
2
|
-
|
|
3
|
-
Multi-level approval chains for features, releases, and deployments.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Overview
|
|
8
|
-
|
|
9
|
-
Configure approval requirements for different stages of your development workflow.
|
|
10
|
-
|
|
11
|
-
```
|
|
12
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
13
|
-
│ Approval Workflow │
|
|
14
|
-
├─────────────────────────────────────────────────────────────┤
|
|
15
|
-
│ │
|
|
16
|
-
│ Feature Complete │
|
|
17
|
-
│ │ │
|
|
18
|
-
│ ▼ │
|
|
19
|
-
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
|
20
|
-
│ │ Tech Lead │──►│ Product │──►│ Deploy │ │
|
|
21
|
-
│ │ Review │ │ Review │ │ Approval │ │
|
|
22
|
-
│ └─────────────┘ └─────────────┘ └─────────────┘ │
|
|
23
|
-
│ │ │ │ │
|
|
24
|
-
│ ▼ ▼ ▼ │
|
|
25
|
-
│ [Approved] [Approved] [Approved] │
|
|
26
|
-
│ │ │ │ │
|
|
27
|
-
│ └──────────────────┴──────────────────┘ │
|
|
28
|
-
│ │ │
|
|
29
|
-
│ ▼ │
|
|
30
|
-
│ ┌───────────┐ │
|
|
31
|
-
│ │ Deploy │ │
|
|
32
|
-
│ └───────────┘ │
|
|
33
|
-
│ │
|
|
34
|
-
└─────────────────────────────────────────────────────────────┘
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
## Quick Start
|
|
40
|
-
|
|
41
|
-
### Enable Approvals
|
|
42
|
-
|
|
43
|
-
```yaml
|
|
44
|
-
# proagents.config.yaml
|
|
45
|
-
|
|
46
|
-
approvals:
|
|
47
|
-
enabled: true
|
|
48
|
-
|
|
49
|
-
feature_approval:
|
|
50
|
-
required: true
|
|
51
|
-
approvers: ["@team/tech-leads"]
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
### Request Approval
|
|
55
|
-
|
|
56
|
-
```bash
|
|
57
|
-
# Request approval for current feature
|
|
58
|
-
proagents approval request
|
|
59
|
-
|
|
60
|
-
# Check approval status
|
|
61
|
-
proagents approval status
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
---
|
|
65
|
-
|
|
66
|
-
## Features
|
|
67
|
-
|
|
68
|
-
| Feature | Description |
|
|
69
|
-
|---------|-------------|
|
|
70
|
-
| **Multi-Level** | Chain multiple approval stages |
|
|
71
|
-
| **Role-Based** | Assign approvers by role |
|
|
72
|
-
| **Conditional** | Different rules for different changes |
|
|
73
|
-
| **Emergency Bypass** | Override for critical situations |
|
|
74
|
-
| **Audit Trail** | Full history of approvals |
|
|
75
|
-
| **Notifications** | Alert approvers automatically |
|
|
76
|
-
|
|
77
|
-
---
|
|
78
|
-
|
|
79
|
-
## Documentation Files
|
|
80
|
-
|
|
81
|
-
| File | Description |
|
|
82
|
-
|------|-------------|
|
|
83
|
-
| [approval-config.md](./approval-config.md) | Configuration options |
|
|
84
|
-
| [approval-stages.md](./approval-stages.md) | Stage definitions |
|
|
85
|
-
| [emergency-bypass.md](./emergency-bypass.md) | Emergency procedures |
|
|
86
|
-
| [notifications.md](./notifications.md) | Approval notifications |
|
|
87
|
-
|
|
88
|
-
---
|
|
89
|
-
|
|
90
|
-
## Configuration
|
|
91
|
-
|
|
92
|
-
```yaml
|
|
93
|
-
# proagents.config.yaml
|
|
94
|
-
|
|
95
|
-
approvals:
|
|
96
|
-
enabled: true
|
|
97
|
-
|
|
98
|
-
# Feature approval
|
|
99
|
-
feature_approval:
|
|
100
|
-
stages:
|
|
101
|
-
- name: "tech_review"
|
|
102
|
-
approvers: ["@team/tech-leads"]
|
|
103
|
-
required: true
|
|
104
|
-
|
|
105
|
-
- name: "product_review"
|
|
106
|
-
approvers: ["@team/product"]
|
|
107
|
-
required: false
|
|
108
|
-
|
|
109
|
-
# Deployment approval
|
|
110
|
-
deployment_approval:
|
|
111
|
-
staging:
|
|
112
|
-
required: false
|
|
113
|
-
|
|
114
|
-
production:
|
|
115
|
-
required: true
|
|
116
|
-
approvers:
|
|
117
|
-
- "@team/tech-leads"
|
|
118
|
-
- "@team/devops"
|
|
119
|
-
min_approvals: 2
|
|
120
|
-
|
|
121
|
-
# Notifications
|
|
122
|
-
notifications:
|
|
123
|
-
on_request: true
|
|
124
|
-
on_approval: true
|
|
125
|
-
on_rejection: true
|
|
126
|
-
channels: ["slack:#approvals"]
|
|
127
|
-
|
|
128
|
-
# Timeouts
|
|
129
|
-
timeouts:
|
|
130
|
-
default: "48h"
|
|
131
|
-
escalate_after: "24h"
|
|
132
|
-
escalate_to: "@team/managers"
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
---
|
|
136
|
-
|
|
137
|
-
## Commands
|
|
138
|
-
|
|
139
|
-
| Command | Description |
|
|
140
|
-
|---------|-------------|
|
|
141
|
-
| `proagents approval request` | Request approval |
|
|
142
|
-
| `proagents approval status` | Check status |
|
|
143
|
-
| `proagents approval approve` | Approve request |
|
|
144
|
-
| `proagents approval reject` | Reject request |
|
|
145
|
-
| `proagents approval bypass` | Emergency bypass |
|
|
146
|
-
| `proagents approval history` | View history |
|
|
@@ -1,332 +0,0 @@
|
|
|
1
|
-
# Approval Configuration
|
|
2
|
-
|
|
3
|
-
Configure approval workflows, stages, and requirements.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Basic Configuration
|
|
8
|
-
|
|
9
|
-
### Enable Approvals
|
|
10
|
-
|
|
11
|
-
```yaml
|
|
12
|
-
approvals:
|
|
13
|
-
enabled: true
|
|
14
|
-
|
|
15
|
-
# Global settings
|
|
16
|
-
settings:
|
|
17
|
-
allow_self_approval: false
|
|
18
|
-
require_different_approver: true
|
|
19
|
-
approval_valid_for: "7d" # Re-approve after 7 days
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
### Approval Levels
|
|
23
|
-
|
|
24
|
-
```yaml
|
|
25
|
-
approvals:
|
|
26
|
-
levels:
|
|
27
|
-
# Level 1: Peer review
|
|
28
|
-
peer:
|
|
29
|
-
approvers: ["@team/developers"]
|
|
30
|
-
min_approvals: 1
|
|
31
|
-
|
|
32
|
-
# Level 2: Tech lead
|
|
33
|
-
tech_lead:
|
|
34
|
-
approvers: ["@team/tech-leads"]
|
|
35
|
-
min_approvals: 1
|
|
36
|
-
|
|
37
|
-
# Level 3: Manager
|
|
38
|
-
manager:
|
|
39
|
-
approvers: ["@team/managers"]
|
|
40
|
-
min_approvals: 1
|
|
41
|
-
|
|
42
|
-
# Level 4: Executive
|
|
43
|
-
executive:
|
|
44
|
-
approvers: ["@team/executives"]
|
|
45
|
-
min_approvals: 1
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
---
|
|
49
|
-
|
|
50
|
-
## Context-Based Approvals
|
|
51
|
-
|
|
52
|
-
### By Change Type
|
|
53
|
-
|
|
54
|
-
```yaml
|
|
55
|
-
approvals:
|
|
56
|
-
by_change_type:
|
|
57
|
-
# Feature additions
|
|
58
|
-
feature:
|
|
59
|
-
required: true
|
|
60
|
-
levels: ["peer", "tech_lead"]
|
|
61
|
-
|
|
62
|
-
# Bug fixes
|
|
63
|
-
bug_fix:
|
|
64
|
-
required: true
|
|
65
|
-
levels: ["peer"]
|
|
66
|
-
|
|
67
|
-
# Hotfixes
|
|
68
|
-
hotfix:
|
|
69
|
-
required: true
|
|
70
|
-
levels: ["tech_lead"]
|
|
71
|
-
expedited: true
|
|
72
|
-
|
|
73
|
-
# Refactoring
|
|
74
|
-
refactor:
|
|
75
|
-
required: true
|
|
76
|
-
levels: ["peer", "tech_lead"]
|
|
77
|
-
|
|
78
|
-
# Documentation
|
|
79
|
-
documentation:
|
|
80
|
-
required: false
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
### By Risk Level
|
|
84
|
-
|
|
85
|
-
```yaml
|
|
86
|
-
approvals:
|
|
87
|
-
by_risk:
|
|
88
|
-
low:
|
|
89
|
-
levels: ["peer"]
|
|
90
|
-
min_approvals: 1
|
|
91
|
-
|
|
92
|
-
medium:
|
|
93
|
-
levels: ["peer", "tech_lead"]
|
|
94
|
-
min_approvals: 2
|
|
95
|
-
|
|
96
|
-
high:
|
|
97
|
-
levels: ["peer", "tech_lead", "manager"]
|
|
98
|
-
min_approvals: 3
|
|
99
|
-
|
|
100
|
-
critical:
|
|
101
|
-
levels: ["tech_lead", "manager", "executive"]
|
|
102
|
-
min_approvals: 3
|
|
103
|
-
require_all_levels: true
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
### By Affected Area
|
|
107
|
-
|
|
108
|
-
```yaml
|
|
109
|
-
approvals:
|
|
110
|
-
by_area:
|
|
111
|
-
# Security-sensitive code
|
|
112
|
-
"src/auth/**":
|
|
113
|
-
levels: ["security_team", "tech_lead"]
|
|
114
|
-
required: true
|
|
115
|
-
|
|
116
|
-
# Payment processing
|
|
117
|
-
"src/payments/**":
|
|
118
|
-
levels: ["tech_lead", "compliance"]
|
|
119
|
-
required: true
|
|
120
|
-
|
|
121
|
-
# Database migrations
|
|
122
|
-
"migrations/**":
|
|
123
|
-
levels: ["dba", "tech_lead"]
|
|
124
|
-
required: true
|
|
125
|
-
|
|
126
|
-
# Infrastructure
|
|
127
|
-
"infrastructure/**":
|
|
128
|
-
levels: ["devops", "tech_lead"]
|
|
129
|
-
required: true
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
---
|
|
133
|
-
|
|
134
|
-
## Deployment Approvals
|
|
135
|
-
|
|
136
|
-
### Environment-Based
|
|
137
|
-
|
|
138
|
-
```yaml
|
|
139
|
-
approvals:
|
|
140
|
-
deployment:
|
|
141
|
-
development:
|
|
142
|
-
required: false
|
|
143
|
-
|
|
144
|
-
staging:
|
|
145
|
-
required: true
|
|
146
|
-
levels: ["peer"]
|
|
147
|
-
auto_approve_after: "2h" # Auto-approve if no response
|
|
148
|
-
|
|
149
|
-
production:
|
|
150
|
-
required: true
|
|
151
|
-
levels: ["tech_lead", "devops"]
|
|
152
|
-
min_approvals: 2
|
|
153
|
-
business_hours_only: true
|
|
154
|
-
blackout_windows:
|
|
155
|
-
- "friday 17:00 - monday 09:00"
|
|
156
|
-
- "december 20 - january 3"
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
### Deployment Gates
|
|
160
|
-
|
|
161
|
-
```yaml
|
|
162
|
-
approvals:
|
|
163
|
-
deployment:
|
|
164
|
-
gates:
|
|
165
|
-
# Before staging
|
|
166
|
-
pre_staging:
|
|
167
|
-
checks:
|
|
168
|
-
- "all_tests_pass"
|
|
169
|
-
- "security_scan_clean"
|
|
170
|
-
approvals: []
|
|
171
|
-
|
|
172
|
-
# Before production
|
|
173
|
-
pre_production:
|
|
174
|
-
checks:
|
|
175
|
-
- "staging_verified"
|
|
176
|
-
- "performance_ok"
|
|
177
|
-
approvals:
|
|
178
|
-
- level: "tech_lead"
|
|
179
|
-
- level: "devops"
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
---
|
|
183
|
-
|
|
184
|
-
## Approver Configuration
|
|
185
|
-
|
|
186
|
-
### Define Approvers
|
|
187
|
-
|
|
188
|
-
```yaml
|
|
189
|
-
approvals:
|
|
190
|
-
approvers:
|
|
191
|
-
# By role
|
|
192
|
-
roles:
|
|
193
|
-
tech_lead:
|
|
194
|
-
users: ["alice", "bob"]
|
|
195
|
-
slack_group: "@tech-leads"
|
|
196
|
-
|
|
197
|
-
security_team:
|
|
198
|
-
users: ["charlie", "diana"]
|
|
199
|
-
slack_group: "@security"
|
|
200
|
-
|
|
201
|
-
devops:
|
|
202
|
-
users: ["eve", "frank"]
|
|
203
|
-
slack_group: "@devops"
|
|
204
|
-
|
|
205
|
-
# By team
|
|
206
|
-
teams:
|
|
207
|
-
frontend:
|
|
208
|
-
leads: ["alice"]
|
|
209
|
-
members: ["george", "helen"]
|
|
210
|
-
|
|
211
|
-
backend:
|
|
212
|
-
leads: ["bob"]
|
|
213
|
-
members: ["ivan", "julia"]
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
### Approver Rules
|
|
217
|
-
|
|
218
|
-
```yaml
|
|
219
|
-
approvals:
|
|
220
|
-
approver_rules:
|
|
221
|
-
# Cannot approve own changes
|
|
222
|
-
no_self_approval: true
|
|
223
|
-
|
|
224
|
-
# Different approver for each level
|
|
225
|
-
unique_approvers: true
|
|
226
|
-
|
|
227
|
-
# Fallback if primary unavailable
|
|
228
|
-
fallback:
|
|
229
|
-
enabled: true
|
|
230
|
-
after: "4h"
|
|
231
|
-
fallback_to: "manager"
|
|
232
|
-
|
|
233
|
-
# Delegation
|
|
234
|
-
delegation:
|
|
235
|
-
enabled: true
|
|
236
|
-
max_duration: "14d"
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
---
|
|
240
|
-
|
|
241
|
-
## Conditional Approvals
|
|
242
|
-
|
|
243
|
-
### Smart Approval Rules
|
|
244
|
-
|
|
245
|
-
```yaml
|
|
246
|
-
approvals:
|
|
247
|
-
conditions:
|
|
248
|
-
# Skip approval for small changes
|
|
249
|
-
- name: "small_change"
|
|
250
|
-
condition: "files_changed <= 3 AND lines_changed <= 50"
|
|
251
|
-
action: "skip_peer_review"
|
|
252
|
-
|
|
253
|
-
# Extra approval for large changes
|
|
254
|
-
- name: "large_change"
|
|
255
|
-
condition: "files_changed > 20 OR lines_changed > 500"
|
|
256
|
-
action: "require_manager_approval"
|
|
257
|
-
|
|
258
|
-
# Security review for auth changes
|
|
259
|
-
- name: "security_sensitive"
|
|
260
|
-
condition: "path_matches('**/auth/**') OR path_matches('**/security/**')"
|
|
261
|
-
action: "require_security_review"
|
|
262
|
-
|
|
263
|
-
# DBA review for schema changes
|
|
264
|
-
- name: "database_change"
|
|
265
|
-
condition: "path_matches('**/migrations/**')"
|
|
266
|
-
action: "require_dba_approval"
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
---
|
|
270
|
-
|
|
271
|
-
## Approval Expiration
|
|
272
|
-
|
|
273
|
-
```yaml
|
|
274
|
-
approvals:
|
|
275
|
-
expiration:
|
|
276
|
-
# Approval valid duration
|
|
277
|
-
valid_for: "7d"
|
|
278
|
-
|
|
279
|
-
# Re-approval triggers
|
|
280
|
-
require_reapproval_on:
|
|
281
|
-
- "new_commits"
|
|
282
|
-
- "base_branch_update"
|
|
283
|
-
- "scope_change"
|
|
284
|
-
|
|
285
|
-
# Grace period
|
|
286
|
-
grace_period: "1h" # Don't invalidate for commits within 1h
|
|
287
|
-
```
|
|
288
|
-
|
|
289
|
-
---
|
|
290
|
-
|
|
291
|
-
## Notifications
|
|
292
|
-
|
|
293
|
-
```yaml
|
|
294
|
-
approvals:
|
|
295
|
-
notifications:
|
|
296
|
-
# Request submitted
|
|
297
|
-
on_request:
|
|
298
|
-
channels: ["slack:#approvals"]
|
|
299
|
-
mention_approvers: true
|
|
300
|
-
template: |
|
|
301
|
-
*Approval Requested*
|
|
302
|
-
Feature: {{feature_name}}
|
|
303
|
-
Requested by: {{requester}}
|
|
304
|
-
Approvers needed: {{approvers}}
|
|
305
|
-
|
|
306
|
-
# Reminder
|
|
307
|
-
reminder:
|
|
308
|
-
after: ["4h", "24h"]
|
|
309
|
-
channels: ["slack:#approvals", "email"]
|
|
310
|
-
|
|
311
|
-
# Approved
|
|
312
|
-
on_approval:
|
|
313
|
-
channels: ["slack:#approvals"]
|
|
314
|
-
notify_requester: true
|
|
315
|
-
|
|
316
|
-
# Rejected
|
|
317
|
-
on_rejection:
|
|
318
|
-
channels: ["slack:#approvals"]
|
|
319
|
-
notify_requester: true
|
|
320
|
-
require_reason: true
|
|
321
|
-
```
|
|
322
|
-
|
|
323
|
-
---
|
|
324
|
-
|
|
325
|
-
## Best Practices
|
|
326
|
-
|
|
327
|
-
1. **Keep Levels Minimal**: Don't over-complicate approval chains
|
|
328
|
-
2. **Set Timeouts**: Avoid blocking on unresponsive approvers
|
|
329
|
-
3. **Enable Fallbacks**: Always have backup approvers
|
|
330
|
-
4. **Document Requirements**: Make approval criteria clear
|
|
331
|
-
5. **Automate Where Possible**: Use conditions to skip unnecessary approvals
|
|
332
|
-
6. **Audit Regularly**: Review approval history for process improvement
|