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,506 +0,0 @@
|
|
|
1
|
-
# Merge Coordination
|
|
2
|
-
|
|
3
|
-
Coordinate merging of multiple parallel features.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Overview
|
|
8
|
-
|
|
9
|
-
Merge coordination ensures:
|
|
10
|
-
- Correct merge order based on dependencies
|
|
11
|
-
- Conflict resolution before merge
|
|
12
|
-
- Smooth integration of parallel features
|
|
13
|
-
- Minimal disruption to main branch
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
## Merge Order Determination
|
|
18
|
-
|
|
19
|
-
### Automatic Order Calculation
|
|
20
|
-
|
|
21
|
-
```typescript
|
|
22
|
-
// Calculate optimal merge order
|
|
23
|
-
function calculateMergeOrder(features: Feature[]): MergeOrder[] {
|
|
24
|
-
const order: MergeOrder[] = [];
|
|
25
|
-
const merged = new Set<string>();
|
|
26
|
-
|
|
27
|
-
while (merged.size < features.length) {
|
|
28
|
-
// Find features with all dependencies merged
|
|
29
|
-
const ready = features.filter(f =>
|
|
30
|
-
!merged.has(f.id) &&
|
|
31
|
-
f.depends_on.every(dep => merged.has(dep.feature))
|
|
32
|
-
);
|
|
33
|
-
|
|
34
|
-
if (ready.length === 0 && merged.size < features.length) {
|
|
35
|
-
throw new Error('Circular dependency detected');
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// Sort by priority, then by completion date
|
|
39
|
-
ready.sort((a, b) => {
|
|
40
|
-
if (a.priority !== b.priority) {
|
|
41
|
-
return priorityValue(b.priority) - priorityValue(a.priority);
|
|
42
|
-
}
|
|
43
|
-
return new Date(a.completed_at) - new Date(b.completed_at);
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
for (const feature of ready) {
|
|
47
|
-
order.push({
|
|
48
|
-
feature: feature.id,
|
|
49
|
-
position: order.length + 1,
|
|
50
|
-
dependencies: feature.depends_on.map(d => d.feature),
|
|
51
|
-
conflicts: detectConflicts(feature, features),
|
|
52
|
-
});
|
|
53
|
-
merged.add(feature.id);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
return order;
|
|
58
|
-
}
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
### Merge Order Output
|
|
62
|
-
|
|
63
|
-
```yaml
|
|
64
|
-
merge_order:
|
|
65
|
-
generated: "2024-01-15T14:00:00Z"
|
|
66
|
-
base_branch: "develop"
|
|
67
|
-
|
|
68
|
-
order:
|
|
69
|
-
- position: 1
|
|
70
|
-
feature: "feature-user-auth"
|
|
71
|
-
branch: "feature/user-auth"
|
|
72
|
-
reason: "No dependencies"
|
|
73
|
-
conflicts: []
|
|
74
|
-
estimated_merge_time: "15 minutes"
|
|
75
|
-
pre_merge_checks:
|
|
76
|
-
- "All tests passing"
|
|
77
|
-
- "Code review approved"
|
|
78
|
-
|
|
79
|
-
- position: 2
|
|
80
|
-
feature: "feature-dashboard"
|
|
81
|
-
branch: "feature/dashboard"
|
|
82
|
-
reason: "Depends on user-auth"
|
|
83
|
-
conflicts:
|
|
84
|
-
- file: "src/lib/api.ts"
|
|
85
|
-
type: "minor"
|
|
86
|
-
resolution: "auto-mergeable"
|
|
87
|
-
estimated_merge_time: "30 minutes"
|
|
88
|
-
pre_merge_checks:
|
|
89
|
-
- "Rebase after user-auth merge"
|
|
90
|
-
- "Resolve api.ts conflict"
|
|
91
|
-
|
|
92
|
-
- position: 3
|
|
93
|
-
feature: "feature-notifications"
|
|
94
|
-
branch: "feature/notifications"
|
|
95
|
-
reason: "Depends on dashboard"
|
|
96
|
-
conflicts: []
|
|
97
|
-
estimated_merge_time: "15 minutes"
|
|
98
|
-
|
|
99
|
-
total_estimated_time: "1 hour"
|
|
100
|
-
recommended_window: "Low traffic period"
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
---
|
|
104
|
-
|
|
105
|
-
## Conflict Pre-Check
|
|
106
|
-
|
|
107
|
-
### Before Merge
|
|
108
|
-
|
|
109
|
-
```bash
|
|
110
|
-
#!/bin/bash
|
|
111
|
-
# scripts/pre-merge-check.sh
|
|
112
|
-
|
|
113
|
-
FEATURE_BRANCH=$1
|
|
114
|
-
BASE_BRANCH=${2:-develop}
|
|
115
|
-
|
|
116
|
-
echo "=== Pre-Merge Conflict Check ==="
|
|
117
|
-
echo "Feature: $FEATURE_BRANCH"
|
|
118
|
-
echo "Base: $BASE_BRANCH"
|
|
119
|
-
echo ""
|
|
120
|
-
|
|
121
|
-
# Fetch latest
|
|
122
|
-
git fetch origin
|
|
123
|
-
|
|
124
|
-
# Check if branch exists
|
|
125
|
-
if ! git show-ref --verify --quiet refs/remotes/origin/$FEATURE_BRANCH; then
|
|
126
|
-
echo "❌ Branch not found: $FEATURE_BRANCH"
|
|
127
|
-
exit 1
|
|
128
|
-
fi
|
|
129
|
-
|
|
130
|
-
# Simulate merge
|
|
131
|
-
echo "Checking for conflicts..."
|
|
132
|
-
git checkout -B merge-test origin/$BASE_BRANCH
|
|
133
|
-
MERGE_RESULT=$(git merge --no-commit --no-ff origin/$FEATURE_BRANCH 2>&1)
|
|
134
|
-
|
|
135
|
-
if echo "$MERGE_RESULT" | grep -q "CONFLICT"; then
|
|
136
|
-
echo "⚠️ CONFLICTS DETECTED:"
|
|
137
|
-
echo ""
|
|
138
|
-
git diff --name-only --diff-filter=U
|
|
139
|
-
echo ""
|
|
140
|
-
echo "Resolution required before merge."
|
|
141
|
-
git merge --abort
|
|
142
|
-
git checkout -
|
|
143
|
-
exit 1
|
|
144
|
-
else
|
|
145
|
-
echo "✅ No conflicts detected"
|
|
146
|
-
git merge --abort
|
|
147
|
-
git checkout -
|
|
148
|
-
fi
|
|
149
|
-
|
|
150
|
-
# Check for outdated branch
|
|
151
|
-
BEHIND=$(git rev-list --count origin/$FEATURE_BRANCH..origin/$BASE_BRANCH)
|
|
152
|
-
if [ "$BEHIND" -gt 0 ]; then
|
|
153
|
-
echo "⚠️ Branch is $BEHIND commits behind $BASE_BRANCH"
|
|
154
|
-
echo " Consider rebasing before merge"
|
|
155
|
-
fi
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
### Conflict Report
|
|
159
|
-
|
|
160
|
-
```markdown
|
|
161
|
-
# Merge Conflict Report
|
|
162
|
-
|
|
163
|
-
## Feature: feature-dashboard
|
|
164
|
-
## Target: develop
|
|
165
|
-
|
|
166
|
-
### Conflicts Found: 2
|
|
167
|
-
|
|
168
|
-
#### 1. src/lib/api.ts
|
|
169
|
-
|
|
170
|
-
**Type:** Content conflict
|
|
171
|
-
**Sections:**
|
|
172
|
-
- Lines 45-60: Error handling
|
|
173
|
-
- Lines 120-130: Request interceptor
|
|
174
|
-
|
|
175
|
-
**Changes in feature-dashboard:**
|
|
176
|
-
```typescript
|
|
177
|
-
// Added new error type
|
|
178
|
-
if (error.response?.status === 403) {
|
|
179
|
-
return handleForbidden(error);
|
|
180
|
-
}
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
**Changes in develop (from user-auth):**
|
|
184
|
-
```typescript
|
|
185
|
-
// Added auth error handling
|
|
186
|
-
if (error.response?.status === 401) {
|
|
187
|
-
return handleUnauthorized(error);
|
|
188
|
-
}
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
**Resolution:** Manual merge required - both changes needed
|
|
192
|
-
|
|
193
|
-
#### 2. src/types/index.ts
|
|
194
|
-
|
|
195
|
-
**Type:** Addition conflict
|
|
196
|
-
**Both branches:** Added new types at same location
|
|
197
|
-
|
|
198
|
-
**Resolution:** Auto-mergeable - combine both additions
|
|
199
|
-
|
|
200
|
-
### Recommended Actions
|
|
201
|
-
|
|
202
|
-
1. Checkout feature-dashboard
|
|
203
|
-
2. Rebase onto latest develop
|
|
204
|
-
3. Resolve conflicts manually
|
|
205
|
-
4. Run tests
|
|
206
|
-
5. Push rebased branch
|
|
207
|
-
6. Proceed with merge
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
---
|
|
211
|
-
|
|
212
|
-
## Merge Workflow
|
|
213
|
-
|
|
214
|
-
### Standard Merge Process
|
|
215
|
-
|
|
216
|
-
```yaml
|
|
217
|
-
merge_workflow:
|
|
218
|
-
phases:
|
|
219
|
-
pre_merge:
|
|
220
|
-
- name: "Conflict Check"
|
|
221
|
-
command: "pa:merge-check [feature]"
|
|
222
|
-
required: true
|
|
223
|
-
|
|
224
|
-
- name: "Test Verification"
|
|
225
|
-
command: "npm test"
|
|
226
|
-
required: true
|
|
227
|
-
|
|
228
|
-
- name: "Code Review"
|
|
229
|
-
check: "PR approved"
|
|
230
|
-
required: true
|
|
231
|
-
|
|
232
|
-
- name: "Rebase if needed"
|
|
233
|
-
condition: "behind_base > 5"
|
|
234
|
-
command: "git rebase develop"
|
|
235
|
-
|
|
236
|
-
merge:
|
|
237
|
-
- name: "Create Merge PR"
|
|
238
|
-
command: "gh pr create --base develop"
|
|
239
|
-
|
|
240
|
-
- name: "Squash or Merge"
|
|
241
|
-
strategy: "squash" # squash | merge | rebase
|
|
242
|
-
|
|
243
|
-
- name: "Delete Feature Branch"
|
|
244
|
-
command: "git push origin --delete [branch]"
|
|
245
|
-
|
|
246
|
-
post_merge:
|
|
247
|
-
- name: "Notify Dependent Features"
|
|
248
|
-
action: "Update dependency status"
|
|
249
|
-
|
|
250
|
-
- name: "Trigger Dependent Rebases"
|
|
251
|
-
action: "Notify to rebase"
|
|
252
|
-
|
|
253
|
-
- name: "Update Tracking"
|
|
254
|
-
action: "Mark feature as merged"
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
### Automated Merge Script
|
|
258
|
-
|
|
259
|
-
```bash
|
|
260
|
-
#!/bin/bash
|
|
261
|
-
# scripts/merge-feature.sh
|
|
262
|
-
|
|
263
|
-
set -e
|
|
264
|
-
|
|
265
|
-
FEATURE=$1
|
|
266
|
-
BASE=${2:-develop}
|
|
267
|
-
|
|
268
|
-
echo "╔══════════════════════════════════════════════════╗"
|
|
269
|
-
echo "║ Merging Feature ║"
|
|
270
|
-
echo "╚══════════════════════════════════════════════════╝"
|
|
271
|
-
echo ""
|
|
272
|
-
echo "Feature: $FEATURE"
|
|
273
|
-
echo "Base: $BASE"
|
|
274
|
-
echo ""
|
|
275
|
-
|
|
276
|
-
# Step 1: Pre-merge checks
|
|
277
|
-
echo "Step 1: Running pre-merge checks..."
|
|
278
|
-
./scripts/pre-merge-check.sh "feature/$FEATURE" "$BASE"
|
|
279
|
-
|
|
280
|
-
# Step 2: Update feature branch
|
|
281
|
-
echo ""
|
|
282
|
-
echo "Step 2: Updating feature branch..."
|
|
283
|
-
git checkout "feature/$FEATURE"
|
|
284
|
-
git pull origin "feature/$FEATURE"
|
|
285
|
-
git rebase "origin/$BASE"
|
|
286
|
-
|
|
287
|
-
# Step 3: Run tests
|
|
288
|
-
echo ""
|
|
289
|
-
echo "Step 3: Running tests..."
|
|
290
|
-
npm test
|
|
291
|
-
|
|
292
|
-
# Step 4: Merge
|
|
293
|
-
echo ""
|
|
294
|
-
echo "Step 4: Merging..."
|
|
295
|
-
git checkout "$BASE"
|
|
296
|
-
git pull origin "$BASE"
|
|
297
|
-
git merge --squash "feature/$FEATURE"
|
|
298
|
-
git commit -m "feat: merge feature/$FEATURE
|
|
299
|
-
|
|
300
|
-
Merged feature: $FEATURE
|
|
301
|
-
"
|
|
302
|
-
|
|
303
|
-
# Step 5: Push
|
|
304
|
-
echo ""
|
|
305
|
-
echo "Step 5: Pushing..."
|
|
306
|
-
git push origin "$BASE"
|
|
307
|
-
|
|
308
|
-
# Step 6: Cleanup
|
|
309
|
-
echo ""
|
|
310
|
-
echo "Step 6: Cleanup..."
|
|
311
|
-
git push origin --delete "feature/$FEATURE"
|
|
312
|
-
|
|
313
|
-
# Step 7: Update tracking
|
|
314
|
-
echo ""
|
|
315
|
-
echo "Step 7: Updating tracking..."
|
|
316
|
-
# Update feature status to merged
|
|
317
|
-
|
|
318
|
-
echo ""
|
|
319
|
-
echo "✅ Feature merged successfully!"
|
|
320
|
-
```
|
|
321
|
-
|
|
322
|
-
---
|
|
323
|
-
|
|
324
|
-
## Batch Merge Coordination
|
|
325
|
-
|
|
326
|
-
When merging multiple features:
|
|
327
|
-
|
|
328
|
-
```yaml
|
|
329
|
-
batch_merge:
|
|
330
|
-
features:
|
|
331
|
-
- "feature-user-auth"
|
|
332
|
-
- "feature-dashboard"
|
|
333
|
-
- "feature-notifications"
|
|
334
|
-
|
|
335
|
-
strategy: "sequential" # sequential | parallel-test
|
|
336
|
-
|
|
337
|
-
sequential_process:
|
|
338
|
-
- merge: "feature-user-auth"
|
|
339
|
-
then:
|
|
340
|
-
- rebase: "feature-dashboard"
|
|
341
|
-
- rebase: "feature-notifications"
|
|
342
|
-
|
|
343
|
-
- merge: "feature-dashboard"
|
|
344
|
-
then:
|
|
345
|
-
- rebase: "feature-notifications"
|
|
346
|
-
|
|
347
|
-
- merge: "feature-notifications"
|
|
348
|
-
|
|
349
|
-
checkpoints:
|
|
350
|
-
after_each_merge:
|
|
351
|
-
- run_tests: true
|
|
352
|
-
- check_build: true
|
|
353
|
-
- verify_deployment: false
|
|
354
|
-
|
|
355
|
-
rollback_on_failure:
|
|
356
|
-
enabled: true
|
|
357
|
-
strategy: "revert_all"
|
|
358
|
-
```
|
|
359
|
-
|
|
360
|
-
### Batch Merge Visualization
|
|
361
|
-
|
|
362
|
-
```
|
|
363
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
364
|
-
│ Batch Merge Progress │
|
|
365
|
-
├─────────────────────────────────────────────────────────────┤
|
|
366
|
-
│ │
|
|
367
|
-
│ ┌─────────────────┐ ┌─────────────────┐ │
|
|
368
|
-
│ │ user-auth │────▶│ MERGED ✅ │ │
|
|
369
|
-
│ │ │ │ 14:30 │ │
|
|
370
|
-
│ └─────────────────┘ └─────────────────┘ │
|
|
371
|
-
│ │ │
|
|
372
|
-
│ ▼ trigger rebase │
|
|
373
|
-
│ ┌─────────────────┐ ┌─────────────────┐ │
|
|
374
|
-
│ │ dashboard │────▶│ MERGING 🔄 │ │
|
|
375
|
-
│ │ (rebased) │ │ 14:35 │ │
|
|
376
|
-
│ └─────────────────┘ └─────────────────┘ │
|
|
377
|
-
│ │ │
|
|
378
|
-
│ ▼ waiting │
|
|
379
|
-
│ ┌─────────────────┐ ┌─────────────────┐ │
|
|
380
|
-
│ │ notifications │────▶│ PENDING ⏳ │ │
|
|
381
|
-
│ │ (queued) │ │ │ │
|
|
382
|
-
│ └─────────────────┘ └─────────────────┘ │
|
|
383
|
-
│ │
|
|
384
|
-
│ Progress: 1/3 merged │
|
|
385
|
-
│ Estimated completion: 14:50 │
|
|
386
|
-
│ │
|
|
387
|
-
└─────────────────────────────────────────────────────────────┘
|
|
388
|
-
```
|
|
389
|
-
|
|
390
|
-
---
|
|
391
|
-
|
|
392
|
-
## Merge Notifications
|
|
393
|
-
|
|
394
|
-
```yaml
|
|
395
|
-
notifications:
|
|
396
|
-
pre_merge:
|
|
397
|
-
recipients: ["feature_owner", "team"]
|
|
398
|
-
message: "🔀 Preparing to merge {{feature}} to {{base}}"
|
|
399
|
-
|
|
400
|
-
merge_started:
|
|
401
|
-
recipients: ["team"]
|
|
402
|
-
message: "🔄 Merging {{feature}} to {{base}}..."
|
|
403
|
-
|
|
404
|
-
merge_complete:
|
|
405
|
-
recipients: ["feature_owner", "dependent_owners", "team"]
|
|
406
|
-
message: |
|
|
407
|
-
✅ {{feature}} merged successfully!
|
|
408
|
-
|
|
409
|
-
Next in queue: {{next_feature}}
|
|
410
|
-
Dependent features notified to rebase.
|
|
411
|
-
|
|
412
|
-
merge_failed:
|
|
413
|
-
recipients: ["feature_owner", "team_lead"]
|
|
414
|
-
priority: "high"
|
|
415
|
-
message: |
|
|
416
|
-
❌ Merge failed for {{feature}}
|
|
417
|
-
|
|
418
|
-
Error: {{error}}
|
|
419
|
-
Action required: {{resolution}}
|
|
420
|
-
|
|
421
|
-
rebase_required:
|
|
422
|
-
recipients: ["dependent_feature_owners"]
|
|
423
|
-
message: |
|
|
424
|
-
🔄 {{merged_feature}} has been merged.
|
|
425
|
-
|
|
426
|
-
Your feature {{your_feature}} needs to rebase.
|
|
427
|
-
Command: git rebase origin/develop
|
|
428
|
-
```
|
|
429
|
-
|
|
430
|
-
---
|
|
431
|
-
|
|
432
|
-
## Merge Schedule
|
|
433
|
-
|
|
434
|
-
```yaml
|
|
435
|
-
merge_schedule:
|
|
436
|
-
# Preferred merge windows
|
|
437
|
-
preferred_windows:
|
|
438
|
-
- day: "weekday"
|
|
439
|
-
time: "10:00-12:00"
|
|
440
|
-
reason: "Team available for issues"
|
|
441
|
-
|
|
442
|
-
- day: "weekday"
|
|
443
|
-
time: "14:00-16:00"
|
|
444
|
-
reason: "After lunch, before EOD"
|
|
445
|
-
|
|
446
|
-
# Avoid these times
|
|
447
|
-
blackout_periods:
|
|
448
|
-
- day: "friday"
|
|
449
|
-
time: "16:00-24:00"
|
|
450
|
-
reason: "Weekend approaching"
|
|
451
|
-
|
|
452
|
-
- day: "weekend"
|
|
453
|
-
reason: "Limited support"
|
|
454
|
-
|
|
455
|
-
# Auto-schedule based on readiness
|
|
456
|
-
auto_schedule:
|
|
457
|
-
enabled: true
|
|
458
|
-
check_interval: "1h"
|
|
459
|
-
notify_before: "30m"
|
|
460
|
-
```
|
|
461
|
-
|
|
462
|
-
---
|
|
463
|
-
|
|
464
|
-
## Configuration
|
|
465
|
-
|
|
466
|
-
```yaml
|
|
467
|
-
# proagents.config.yaml
|
|
468
|
-
|
|
469
|
-
merge:
|
|
470
|
-
coordination:
|
|
471
|
-
enabled: true
|
|
472
|
-
|
|
473
|
-
strategy:
|
|
474
|
-
default: "squash" # squash | merge | rebase
|
|
475
|
-
delete_branch_after: true
|
|
476
|
-
|
|
477
|
-
checks:
|
|
478
|
-
require_tests: true
|
|
479
|
-
require_review: true
|
|
480
|
-
require_rebase: true
|
|
481
|
-
|
|
482
|
-
batch:
|
|
483
|
-
enabled: true
|
|
484
|
-
max_concurrent: 1 # Sequential for safety
|
|
485
|
-
|
|
486
|
-
notifications:
|
|
487
|
-
slack_channel: "#merges"
|
|
488
|
-
notify_on: ["start", "complete", "fail"]
|
|
489
|
-
|
|
490
|
-
schedule:
|
|
491
|
-
auto_schedule: true
|
|
492
|
-
respect_blackout: true
|
|
493
|
-
```
|
|
494
|
-
|
|
495
|
-
---
|
|
496
|
-
|
|
497
|
-
## Commands
|
|
498
|
-
|
|
499
|
-
| Command | Description |
|
|
500
|
-
|---------|-------------|
|
|
501
|
-
| `pa:merge-order` | View recommended merge order |
|
|
502
|
-
| `pa:merge-check [feature]` | Pre-merge conflict check |
|
|
503
|
-
| `pa:merge [feature]` | Start merge process |
|
|
504
|
-
| `pa:merge-batch` | Merge all ready features |
|
|
505
|
-
| `pa:merge-status` | View merge progress |
|
|
506
|
-
| `pa:merge-schedule` | View/set merge schedule |
|