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.
Files changed (168) hide show
  1. package/.claude/settings.local.json +169 -0
  2. package/COMMANDS.md +595 -0
  3. package/README.md +13 -23
  4. package/package.json +2 -7
  5. package/.proagents/ai-models/README.md +0 -141
  6. package/.proagents/ai-models/cost-management.md +0 -362
  7. package/.proagents/ai-models/fallbacks.md +0 -342
  8. package/.proagents/ai-models/model-config.md +0 -318
  9. package/.proagents/ai-models/task-routing.md +0 -503
  10. package/.proagents/ai-training/README.md +0 -155
  11. package/.proagents/ai-training/continuous-learning.md +0 -413
  12. package/.proagents/ai-training/domain-knowledge.md +0 -378
  13. package/.proagents/ai-training/pattern-learning.md +0 -455
  14. package/.proagents/ai-training/training-data.md +0 -337
  15. package/.proagents/ai-training/user-preferences.md +0 -346
  16. package/.proagents/approval-workflows/README.md +0 -146
  17. package/.proagents/approval-workflows/approval-config.md +0 -332
  18. package/.proagents/approval-workflows/approval-stages.md +0 -503
  19. package/.proagents/approval-workflows/emergency-bypass.md +0 -351
  20. package/.proagents/approval-workflows/examples.md +0 -859
  21. package/.proagents/approval-workflows/notifications.md +0 -320
  22. package/.proagents/compliance/README.md +0 -206
  23. package/.proagents/compliance/access-control.md +0 -310
  24. package/.proagents/compliance/audit-logging.md +0 -444
  25. package/.proagents/compliance/compliance-frameworks.md +0 -429
  26. package/.proagents/compliance/reports.md +0 -491
  27. package/.proagents/compliance/retention-policies.md +0 -454
  28. package/.proagents/config-versioning/README.md +0 -120
  29. package/.proagents/config-versioning/changelog.md +0 -300
  30. package/.proagents/config-versioning/rollback.md +0 -283
  31. package/.proagents/config-versioning/versioning.md +0 -330
  32. package/.proagents/contract-testing/README.md +0 -223
  33. package/.proagents/contract-testing/contract-testing.md +0 -614
  34. package/.proagents/contract-testing/pact-integration.md +0 -507
  35. package/.proagents/contract-testing/schema-validation.md +0 -565
  36. package/.proagents/dependency-management/README.md +0 -140
  37. package/.proagents/dependency-management/automation.md +0 -363
  38. package/.proagents/dependency-management/compatibility.md +0 -319
  39. package/.proagents/dependency-management/security-scanning.md +0 -413
  40. package/.proagents/dependency-management/update-policies.md +0 -374
  41. package/.proagents/disaster-recovery/README.md +0 -247
  42. package/.proagents/disaster-recovery/automation.md +0 -366
  43. package/.proagents/disaster-recovery/backup-recovery.md +0 -571
  44. package/.proagents/disaster-recovery/incident-response.md +0 -565
  45. package/.proagents/disaster-recovery/rollback-procedures.md +0 -499
  46. package/.proagents/disaster-recovery/runbooks.md +0 -603
  47. package/.proagents/disaster-recovery/scenarios.md +0 -892
  48. package/.proagents/disaster-recovery/testing.md +0 -438
  49. package/.proagents/environments/README.md +0 -244
  50. package/.proagents/environments/configuration.md +0 -437
  51. package/.proagents/environments/promotion.md +0 -434
  52. package/.proagents/environments/setup.md +0 -420
  53. package/.proagents/examples/README.md +0 -55
  54. package/.proagents/examples/backend-nodejs/README.md +0 -188
  55. package/.proagents/examples/backend-nodejs/complete-conversation.md +0 -601
  56. package/.proagents/examples/backend-nodejs/proagents.config.yaml +0 -415
  57. package/.proagents/examples/backend-nodejs/workflow-example.md +0 -909
  58. package/.proagents/examples/fullstack-nextjs/README.md +0 -155
  59. package/.proagents/examples/fullstack-nextjs/complete-conversation.md +0 -604
  60. package/.proagents/examples/fullstack-nextjs/proagents.config.yaml +0 -287
  61. package/.proagents/examples/fullstack-nextjs/workflow-example.md +0 -553
  62. package/.proagents/examples/mobile-react-native/README.md +0 -171
  63. package/.proagents/examples/mobile-react-native/complete-conversation.md +0 -825
  64. package/.proagents/examples/mobile-react-native/proagents.config.yaml +0 -330
  65. package/.proagents/examples/mobile-react-native/workflow-example.md +0 -723
  66. package/.proagents/examples/web-frontend-react/README.md +0 -125
  67. package/.proagents/examples/web-frontend-react/complete-conversation.md +0 -556
  68. package/.proagents/examples/web-frontend-react/proagents.config.yaml +0 -183
  69. package/.proagents/examples/web-frontend-react/workflow-example.md +0 -603
  70. package/.proagents/existing-projects/README.md +0 -65
  71. package/.proagents/existing-projects/challenges.md +0 -861
  72. package/.proagents/existing-projects/coexistence-mode.md +0 -483
  73. package/.proagents/existing-projects/compatibility-assessment.md +0 -541
  74. package/.proagents/existing-projects/gradual-adoption.md +0 -515
  75. package/.proagents/existing-projects/migration-strategies.md +0 -788
  76. package/.proagents/existing-projects/pattern-reconciliation.md +0 -489
  77. package/.proagents/existing-projects/team-onboarding.md +0 -617
  78. package/.proagents/existing-projects/technical-debt-handling.md +0 -644
  79. package/.proagents/feature-flags/README.md +0 -263
  80. package/.proagents/feature-flags/ab-testing.md +0 -413
  81. package/.proagents/feature-flags/configuration.md +0 -420
  82. package/.proagents/feature-flags/kill-switches.md +0 -444
  83. package/.proagents/feature-flags/rollout-strategies.md +0 -392
  84. package/.proagents/history.log +0 -12
  85. package/.proagents/i18n/README.md +0 -133
  86. package/.proagents/i18n/extraction.md +0 -433
  87. package/.proagents/i18n/tms-integration.md +0 -332
  88. package/.proagents/i18n/translation-workflow.md +0 -413
  89. package/.proagents/i18n/validation.md +0 -355
  90. package/.proagents/logging/README.md +0 -276
  91. package/.proagents/logging/aggregation.md +0 -475
  92. package/.proagents/logging/log-levels.md +0 -376
  93. package/.proagents/logging/sensitive-data.md +0 -423
  94. package/.proagents/logging/structured-logging.md +0 -406
  95. package/.proagents/metrics/README.md +0 -69
  96. package/.proagents/metrics/code-quality-kpis.md +0 -461
  97. package/.proagents/metrics/deployment-metrics.md +0 -517
  98. package/.proagents/metrics/developer-productivity.md +0 -368
  99. package/.proagents/metrics/learning-effectiveness.md +0 -478
  100. package/.proagents/migrations/README.md +0 -77
  101. package/.proagents/migrations/from-claude-projects.md +0 -313
  102. package/.proagents/migrations/from-cursor-rules.md +0 -345
  103. package/.proagents/migrations/from-custom-workflows.md +0 -410
  104. package/.proagents/monitoring/README.md +0 -308
  105. package/.proagents/monitoring/alerting.md +0 -449
  106. package/.proagents/monitoring/dashboards.md +0 -454
  107. package/.proagents/monitoring/health-checks.md +0 -436
  108. package/.proagents/monitoring/metrics.md +0 -434
  109. package/.proagents/multi-project/README.md +0 -170
  110. package/.proagents/multi-project/coordinated-deploy.md +0 -510
  111. package/.proagents/multi-project/cross-project-deps.md +0 -395
  112. package/.proagents/multi-project/unified-changelog.md +0 -477
  113. package/.proagents/multi-project/walkthroughs/monorepo-setup.md +0 -787
  114. package/.proagents/multi-project/workspace-config.md +0 -408
  115. package/.proagents/notifications/README.md +0 -151
  116. package/.proagents/notifications/channels.md +0 -457
  117. package/.proagents/notifications/preferences.md +0 -415
  118. package/.proagents/notifications/routing.md +0 -449
  119. package/.proagents/notifications/scheduling.md +0 -425
  120. package/.proagents/notifications/templates.md +0 -446
  121. package/.proagents/offline-mode/README.md +0 -145
  122. package/.proagents/offline-mode/caching.md +0 -344
  123. package/.proagents/offline-mode/offline-operations.md +0 -312
  124. package/.proagents/offline-mode/queue-specifications.md +0 -679
  125. package/.proagents/offline-mode/sync.md +0 -475
  126. package/.proagents/parallel-features/README.md +0 -85
  127. package/.proagents/parallel-features/conflict-detection.md +0 -226
  128. package/.proagents/parallel-features/dependency-management.md +0 -392
  129. package/.proagents/parallel-features/merge-coordination.md +0 -506
  130. package/.proagents/parallel-features/tracking-system.md +0 -416
  131. package/.proagents/performance/README.md +0 -59
  132. package/.proagents/performance/bundle-analysis.md +0 -375
  133. package/.proagents/performance/load-testing.md +0 -563
  134. package/.proagents/performance/runtime-metrics.md +0 -489
  135. package/.proagents/performance/web-vitals.md +0 -425
  136. package/.proagents/plugins/README.md +0 -139
  137. package/.proagents/plugins/creating-plugins.md +0 -504
  138. package/.proagents/plugins/plugin-api.md +0 -467
  139. package/.proagents/plugins/plugin-registry.md +0 -276
  140. package/.proagents/reporting/README.md +0 -158
  141. package/.proagents/reporting/dashboards.md +0 -366
  142. package/.proagents/reporting/exports.md +0 -524
  143. package/.proagents/reporting/quality-metrics.md +0 -385
  144. package/.proagents/reporting/templates/README.md +0 -56
  145. package/.proagents/reporting/templates/dashboard-config.json +0 -187
  146. package/.proagents/reporting/templates/metrics-queries.md +0 -427
  147. package/.proagents/reporting/templates/react-dashboard.tsx +0 -544
  148. package/.proagents/reporting/templates/widgets.md +0 -451
  149. package/.proagents/reporting/velocity-metrics.md +0 -340
  150. package/.proagents/reverse-engineering/README.md +0 -151
  151. package/.proagents/reverse-engineering/architecture-extraction.md +0 -325
  152. package/.proagents/reverse-engineering/code-analysis.md +0 -377
  153. package/.proagents/reverse-engineering/dependency-mapping.md +0 -567
  154. package/.proagents/reverse-engineering/diagram-generation.md +0 -586
  155. package/.proagents/reverse-engineering/documentation-generation.md +0 -468
  156. package/.proagents/reverse-engineering/pattern-detection.md +0 -569
  157. package/.proagents/reverse-engineering/quality-assessment.md +0 -733
  158. package/.proagents/secrets/README.md +0 -278
  159. package/.proagents/secrets/access-control.md +0 -443
  160. package/.proagents/secrets/rotation.md +0 -403
  161. package/.proagents/secrets/scanning.md +0 -487
  162. package/.proagents/secrets/storage.md +0 -394
  163. package/.proagents/webhooks/README.md +0 -126
  164. package/.proagents/webhooks/endpoints.md +0 -298
  165. package/.proagents/webhooks/events.md +0 -316
  166. package/.proagents/webhooks/payloads.md +0 -325
  167. package/.proagents/webhooks/reliability.md +0 -363
  168. package/.proagents/webhooks/security.md +0 -380
@@ -1,788 +0,0 @@
1
- # Migration Strategies
2
-
3
- Strategies for migrating different aspects of existing projects to ProAgents standards.
4
-
5
- ---
6
-
7
- ## Overview
8
-
9
- Migration involves:
10
- - Code pattern migrations (legacy → modern)
11
- - Dependency updates
12
- - Test coverage improvement
13
- - Documentation generation
14
- - Process adoption
15
-
16
- This guide covers each migration type with strategies, risks, and step-by-step procedures.
17
-
18
- ---
19
-
20
- ## Migration Types
21
-
22
- ```
23
- ┌─────────────────────────────────────────────────────────────┐
24
- │ Migration Categories │
25
- ├─────────────────────────────────────────────────────────────┤
26
- │ │
27
- │ Code Migrations Process Migrations │
28
- │ ─────────────── ────────────────── │
29
- │ • Class → Functional • Manual → Automated │
30
- │ • Redux → Zustand • Ad-hoc → Structured │
31
- │ • JavaScript → TypeScript • No docs → Documented │
32
- │ • Legacy patterns • No tests → Tested │
33
- │ │
34
- │ Dependency Migrations Infrastructure Migrations │
35
- │ ──────────────────── ───────────────────── │
36
- │ • Outdated → Current • No CI → CI/CD │
37
- │ • Vulnerable → Secure • Manual deploy → Automated │
38
- │ • Major version upgrades • No monitoring → Monitored │
39
- │ │
40
- └─────────────────────────────────────────────────────────────┘
41
- ```
42
-
43
- ---
44
-
45
- ## Strategy Selection
46
-
47
- ### When to Use Each Strategy
48
-
49
- | Strategy | Best For | Risk | Effort | Timeline |
50
- |----------|----------|------|--------|----------|
51
- | Gradual | Large codebases, active development | Low | Medium | Ongoing |
52
- | Opportunistic | Moderate codebases, regular changes | Low | Low | As-needed |
53
- | Dedicated | Critical migrations, clear deadline | Medium | High | Fixed |
54
- | Big Bang | Small codebases, major refactoring | High | High | Short |
55
-
56
- ### Decision Matrix
57
-
58
- ```yaml
59
- migration_decision:
60
- questions:
61
- - question: "How large is the affected codebase?"
62
- options:
63
- small: "< 50 files"
64
- medium: "50-200 files"
65
- large: "> 200 files"
66
-
67
- - question: "How critical is the code?"
68
- options:
69
- low: "Non-critical features"
70
- medium: "Important but not critical"
71
- high: "Core business logic"
72
-
73
- - question: "What's your timeline?"
74
- options:
75
- flexible: "No deadline"
76
- moderate: "Within quarter"
77
- urgent: "Within weeks"
78
-
79
- recommendations:
80
- small_low_flexible: "Big Bang"
81
- small_high_urgent: "Dedicated"
82
- medium_any_any: "Gradual or Opportunistic"
83
- large_any_any: "Gradual"
84
- any_high_any: "Extra testing, staged rollout"
85
- ```
86
-
87
- ---
88
-
89
- ## Strategy 1: Gradual Migration
90
-
91
- Best for large codebases with ongoing development.
92
-
93
- ### Approach
94
-
95
- ```yaml
96
- gradual_migration:
97
- principle: "Migrate code as it's touched"
98
-
99
- process:
100
- 1: "Identify file to modify"
101
- 2: "Check migration status"
102
- 3: "If not migrated, migrate now"
103
- 4: "Add tests for migrated code"
104
- 5: "Verify functionality"
105
- 6: "Commit migration with feature"
106
-
107
- timeline: "Ongoing (6-12 months for full migration)"
108
-
109
- example:
110
- scenario: "Developer modifies UserProfile.tsx"
111
- current_state: "Class component"
112
- action: "Convert to functional while making changes"
113
- ```
114
-
115
- ### Implementation
116
-
117
- ```yaml
118
- gradual_implementation:
119
- setup:
120
- - "Create migration tracking"
121
- - "Define migration criteria"
122
- - "Train team on process"
123
-
124
- tracking:
125
- file: ".proagents/migrations/status.yaml"
126
- content: |
127
- migrations:
128
- class_to_functional:
129
- total_files: 45
130
- migrated: 0
131
- in_progress: 0
132
- remaining: 45
133
-
134
- redux_to_zustand:
135
- total_files: 30
136
- migrated: 0
137
- remaining: 30
138
-
139
- automation:
140
- on_file_open:
141
- - "Check if file needs migration"
142
- - "Suggest migration if applicable"
143
-
144
- on_pr:
145
- - "Check for migration opportunities"
146
- - "Track migration progress"
147
- ```
148
-
149
- ### Progress Tracking
150
-
151
- ```
152
- ┌─────────────────────────────────────────────────────────────┐
153
- │ Gradual Migration Progress │
154
- ├─────────────────────────────────────────────────────────────┤
155
- │ │
156
- │ Class → Functional Components │
157
- │ ████████████░░░░░░░░ 60% (27/45 files) │
158
- │ Estimated completion: 3 months at current pace │
159
- │ │
160
- │ Redux → Zustand │
161
- │ ██████░░░░░░░░░░░░░░ 30% (9/30 files) │
162
- │ Estimated completion: 5 months at current pace │
163
- │ │
164
- │ JavaScript → TypeScript │
165
- │ ████████████████░░░░ 80% (120/150 files) │
166
- │ Estimated completion: 1 month at current pace │
167
- │ │
168
- └─────────────────────────────────────────────────────────────┘
169
- ```
170
-
171
- ---
172
-
173
- ## Strategy 2: Opportunistic Migration
174
-
175
- Best for codebases with regular changes but no dedicated migration time.
176
-
177
- ### Approach
178
-
179
- ```yaml
180
- opportunistic_migration:
181
- principle: "Migrate when opportunity presents"
182
-
183
- triggers:
184
- - "Bug fix in legacy code"
185
- - "Feature addition touching legacy code"
186
- - "Refactoring for other reasons"
187
- - "Code review identifies candidate"
188
-
189
- rules:
190
- must_migrate:
191
- - "Touching file for 3rd time without migrating"
192
- - "Security vulnerability in legacy code"
193
-
194
- should_migrate:
195
- - "Bug fix in legacy code"
196
- - "Adding significant functionality"
197
-
198
- can_skip:
199
- - "Urgent hotfix"
200
- - "Minor text change"
201
- - "Would significantly delay delivery"
202
- ```
203
-
204
- ### Implementation
205
-
206
- ```yaml
207
- opportunistic_implementation:
208
- detection:
209
- on_file_change:
210
- check: "Is this file a migration candidate?"
211
- if_yes: "Show migration suggestion"
212
- track: "How many times file touched without migration"
213
-
214
- suggestion_template: |
215
- 📋 Migration Opportunity Detected
216
-
217
- File: {filename}
218
- Current Pattern: {current_pattern}
219
- Target Pattern: {target_pattern}
220
- Estimated Time: {estimated_time}
221
-
222
- This file has been touched {touch_count} times.
223
- Consider migrating while making this change.
224
-
225
- [Migrate Now] [Migrate Later] [Skip]
226
-
227
- escalation:
228
- after_3_touches: "Strongly recommend migration"
229
- after_5_touches: "Require justification to skip"
230
- ```
231
-
232
- ---
233
-
234
- ## Strategy 3: Dedicated Migration
235
-
236
- Best when you can allocate specific time for migration.
237
-
238
- ### Approach
239
-
240
- ```yaml
241
- dedicated_migration:
242
- principle: "Focused migration effort with dedicated resources"
243
-
244
- structure:
245
- sprint_0:
246
- name: "Planning"
247
- activities:
248
- - "Inventory all migration targets"
249
- - "Prioritize by risk/impact"
250
- - "Create detailed migration plan"
251
- - "Set up testing infrastructure"
252
-
253
- sprints_1_n:
254
- name: "Execution"
255
- activities:
256
- - "Migrate in priority order"
257
- - "Test thoroughly"
258
- - "Code review"
259
- - "Document changes"
260
-
261
- sprint_final:
262
- name: "Verification"
263
- activities:
264
- - "Full regression testing"
265
- - "Performance comparison"
266
- - "Documentation update"
267
- - "Team training if needed"
268
- ```
269
-
270
- ### Sprint Planning
271
-
272
- ```yaml
273
- migration_sprint_plan:
274
- sprint_1:
275
- goal: "Migrate authentication module"
276
- files:
277
- - "src/auth/AuthContext.tsx"
278
- - "src/auth/LoginForm.tsx"
279
- - "src/auth/RegisterForm.tsx"
280
- - "src/auth/authService.ts"
281
- estimated_effort: "3 days"
282
- assigned_to: "dev-1, dev-2"
283
- success_criteria:
284
- - "All files converted to functional"
285
- - "Test coverage > 80%"
286
- - "All existing tests pass"
287
-
288
- sprint_2:
289
- goal: "Migrate user module"
290
- files:
291
- - "src/user/UserProfile.tsx"
292
- - "src/user/UserSettings.tsx"
293
- - "src/user/userService.ts"
294
- estimated_effort: "2 days"
295
- assigned_to: "dev-1"
296
- ```
297
-
298
- ### Risk Mitigation
299
-
300
- ```yaml
301
- dedicated_migration_risks:
302
- risk_1:
303
- name: "Regression bugs"
304
- mitigation:
305
- - "Comprehensive test suite before migration"
306
- - "Side-by-side testing"
307
- - "Feature flags for rollback"
308
-
309
- risk_2:
310
- name: "Timeline overrun"
311
- mitigation:
312
- - "Buffer time in schedule"
313
- - "Priority-based scope cutting"
314
- - "Clear definition of done"
315
-
316
- risk_3:
317
- name: "Team unavailability"
318
- mitigation:
319
- - "Cross-training before sprint"
320
- - "Document decisions and progress"
321
- - "Backup resources identified"
322
- ```
323
-
324
- ---
325
-
326
- ## Strategy 4: Big Bang Migration
327
-
328
- Best for small codebases or when complete rewrite is justified.
329
-
330
- ### Approach
331
-
332
- ```yaml
333
- big_bang_migration:
334
- principle: "Migrate everything at once"
335
-
336
- suitable_when:
337
- - "Small codebase (< 50 files)"
338
- - "Low complexity"
339
- - "Good test coverage exists"
340
- - "Team can pause feature work"
341
- - "Clear deadline requiring full migration"
342
-
343
- NOT_suitable_when:
344
- - "Large codebase"
345
- - "Critical production system"
346
- - "No test coverage"
347
- - "Ongoing feature work"
348
-
349
- process:
350
- 1: "Complete code freeze"
351
- 2: "Full codebase migration"
352
- 3: "Comprehensive testing"
353
- 4: "Staged rollout"
354
- 5: "Resume feature work"
355
- ```
356
-
357
- ### Big Bang Checklist
358
-
359
- ```markdown
360
- ## Big Bang Migration Checklist
361
-
362
- ### Pre-Migration
363
- - [ ] Full codebase backup
364
- - [ ] Test suite runs green
365
- - [ ] Migration plan documented
366
- - [ ] Rollback plan ready
367
- - [ ] Team availability confirmed
368
- - [ ] Stakeholder approval
369
-
370
- ### During Migration
371
- - [ ] Code freeze in effect
372
- - [ ] Progress tracked hourly
373
- - [ ] Issues logged immediately
374
- - [ ] Daily standup
375
-
376
- ### Post-Migration
377
- - [ ] All tests passing
378
- - [ ] Performance benchmarks met
379
- - [ ] Security scan clean
380
- - [ ] Documentation updated
381
- - [ ] Team trained on changes
382
- - [ ] Monitoring in place
383
- ```
384
-
385
- ---
386
-
387
- ## Specific Migration Guides
388
-
389
- ### Class Components → Functional Components
390
-
391
- ```yaml
392
- class_to_functional:
393
- complexity: "Low-Medium"
394
-
395
- automated_conversion:
396
- tool: "react-codemod"
397
- command: "npx react-codemod React-Component-to-Functional"
398
- success_rate: "70%"
399
- manual_review: "Required"
400
-
401
- manual_steps:
402
- 1:
403
- name: "Convert class to function"
404
- before: |
405
- class UserProfile extends React.Component {
406
- state = { user: null };
407
-
408
- componentDidMount() {
409
- this.fetchUser();
410
- }
411
-
412
- render() {
413
- return <div>{this.state.user?.name}</div>;
414
- }
415
- }
416
-
417
- after: |
418
- const UserProfile: FC = () => {
419
- const [user, setUser] = useState<User | null>(null);
420
-
421
- useEffect(() => {
422
- fetchUser();
423
- }, []);
424
-
425
- return <div>{user?.name}</div>;
426
- };
427
-
428
- 2:
429
- name: "Convert lifecycle methods"
430
- mapping:
431
- componentDidMount: "useEffect with []"
432
- componentDidUpdate: "useEffect with deps"
433
- componentWillUnmount: "useEffect cleanup"
434
-
435
- 3:
436
- name: "Convert this.setState"
437
- mapping:
438
- "this.setState({ x })": "setX(value)"
439
- "this.state.x": "x"
440
-
441
- testing:
442
- before_migration: "Ensure tests exist"
443
- after_migration: "Run same tests, should pass"
444
- ```
445
-
446
- ### Redux → Zustand
447
-
448
- ```yaml
449
- redux_to_zustand:
450
- complexity: "Medium"
451
-
452
- migration_steps:
453
- 1:
454
- name: "Create Zustand store"
455
- from: |
456
- // Redux slice
457
- const userSlice = createSlice({
458
- name: 'user',
459
- initialState: { user: null, loading: false },
460
- reducers: {
461
- setUser: (state, action) => {
462
- state.user = action.payload;
463
- },
464
- setLoading: (state, action) => {
465
- state.loading = action.payload;
466
- }
467
- }
468
- });
469
-
470
- to: |
471
- // Zustand store
472
- interface UserStore {
473
- user: User | null;
474
- loading: boolean;
475
- setUser: (user: User) => void;
476
- setLoading: (loading: boolean) => void;
477
- }
478
-
479
- const useUserStore = create<UserStore>((set) => ({
480
- user: null,
481
- loading: false,
482
- setUser: (user) => set({ user }),
483
- setLoading: (loading) => set({ loading }),
484
- }));
485
-
486
- 2:
487
- name: "Update component usage"
488
- from: |
489
- const user = useSelector(state => state.user.user);
490
- const dispatch = useDispatch();
491
- dispatch(setUser(newUser));
492
-
493
- to: |
494
- const user = useUserStore(state => state.user);
495
- const setUser = useUserStore(state => state.setUser);
496
- setUser(newUser);
497
-
498
- 3:
499
- name: "Migrate async actions"
500
- from: "createAsyncThunk"
501
- to: "Regular async functions in store"
502
-
503
- coexistence:
504
- during_migration: |
505
- // Bridge pattern for gradual migration
506
- const useUserBridge = () => {
507
- // Check which store has data
508
- const zustandUser = useUserStore(s => s.user);
509
- const reduxUser = useSelector(s => s.user.user);
510
- return zustandUser || reduxUser;
511
- };
512
- ```
513
-
514
- ### JavaScript → TypeScript
515
-
516
- ```yaml
517
- javascript_to_typescript:
518
- complexity: "Medium-High"
519
-
520
- approach:
521
- 1:
522
- name: "Configure TypeScript"
523
- actions:
524
- - "Add tsconfig.json"
525
- - "Enable allowJs: true"
526
- - "Set strict: false initially"
527
-
528
- 2:
529
- name: "Rename files gradually"
530
- pattern: ".js → .ts, .jsx → .tsx"
531
- order: "Leaf files first, then dependencies"
532
-
533
- 3:
534
- name: "Add types progressively"
535
- stages:
536
- - "Add explicit any where needed"
537
- - "Replace any with proper types"
538
- - "Enable stricter options"
539
-
540
- automated_tools:
541
- - name: "TypeScript's own inference"
542
- usage: "Let TS infer where possible"
543
-
544
- - name: "ts-migrate"
545
- usage: "npx ts-migrate-full ."
546
-
547
- type_extraction:
548
- from_jsdoc: |
549
- /**
550
- * @param {string} name
551
- * @param {number} age
552
- * @returns {User}
553
- */
554
- function createUser(name, age) { }
555
-
556
- to_typescript: |
557
- function createUser(name: string, age: number): User { }
558
-
559
- common_issues:
560
- implicit_any:
561
- solution: "Add types or use type inference"
562
-
563
- missing_types:
564
- solution: "Check @types packages or create custom types"
565
-
566
- third_party_libs:
567
- solution: "Install @types/[package] or declare module"
568
- ```
569
-
570
- ### Dependency Major Version Upgrades
571
-
572
- ```yaml
573
- major_version_upgrade:
574
- complexity: "Variable"
575
-
576
- example_react_17_to_18:
577
- breaking_changes:
578
- - "Automatic batching"
579
- - "Strict mode behavior"
580
- - "Suspense changes"
581
- - "New root API"
582
-
583
- migration_steps:
584
- 1:
585
- name: "Update dependencies"
586
- commands:
587
- - "npm install react@18 react-dom@18"
588
- - "npm install @types/react@18 @types/react-dom@18"
589
-
590
- 2:
591
- name: "Update root render"
592
- before: |
593
- import ReactDOM from 'react-dom';
594
- ReactDOM.render(<App />, document.getElementById('root'));
595
-
596
- after: |
597
- import { createRoot } from 'react-dom/client';
598
- const root = createRoot(document.getElementById('root')!);
599
- root.render(<App />);
600
-
601
- 3:
602
- name: "Address breaking changes"
603
- actions:
604
- - "Test automatic batching impact"
605
- - "Update Suspense usage"
606
- - "Fix strict mode warnings"
607
-
608
- 4:
609
- name: "Test thoroughly"
610
- focus:
611
- - "State update behavior"
612
- - "useEffect timing"
613
- - "Suspense boundaries"
614
- ```
615
-
616
- ---
617
-
618
- ## Migration Testing
619
-
620
- ### Before Migration
621
-
622
- ```yaml
623
- pre_migration_testing:
624
- requirements:
625
- - "All existing tests passing"
626
- - "Baseline performance metrics captured"
627
- - "Behavior snapshot if possible"
628
-
629
- baseline_capture:
630
- tests: "npm test -- --coverage > baseline-coverage.txt"
631
- performance: "lighthouse report saved"
632
- behavior: "E2E tests recording"
633
- ```
634
-
635
- ### During Migration
636
-
637
- ```yaml
638
- during_migration_testing:
639
- continuous:
640
- - "Run tests after each file migration"
641
- - "Check for regressions immediately"
642
-
643
- comparison:
644
- - "Old vs new behavior"
645
- - "Performance comparison"
646
-
647
- isolation:
648
- - "Test migrated code independently"
649
- - "Integration test with non-migrated code"
650
- ```
651
-
652
- ### After Migration
653
-
654
- ```yaml
655
- post_migration_testing:
656
- comprehensive:
657
- - "Full test suite run"
658
- - "E2E tests"
659
- - "Performance benchmarks"
660
-
661
- comparison:
662
- - "Coverage same or better"
663
- - "Performance same or better"
664
- - "No new bugs"
665
-
666
- monitoring:
667
- - "Error tracking after deploy"
668
- - "Performance monitoring"
669
- - "User feedback"
670
- ```
671
-
672
- ---
673
-
674
- ## Rollback Procedures
675
-
676
- ### Quick Rollback
677
-
678
- ```yaml
679
- quick_rollback:
680
- use_when: "Migration causes immediate issues"
681
-
682
- steps:
683
- 1: "Identify the problem"
684
- 2: "Revert commits (git revert)"
685
- 3: "Deploy previous version"
686
- 4: "Verify rollback successful"
687
-
688
- commands: |
689
- # Revert migration commits
690
- git revert <migration-commit-hash>
691
-
692
- # Or reset to pre-migration state
693
- git reset --hard <pre-migration-tag>
694
-
695
- # Deploy
696
- npm run deploy
697
- ```
698
-
699
- ### Partial Rollback
700
-
701
- ```yaml
702
- partial_rollback:
703
- use_when: "Only specific migrations have issues"
704
-
705
- approach:
706
- 1: "Identify problematic files"
707
- 2: "Revert only those files"
708
- 3: "Keep successful migrations"
709
-
710
- commands: |
711
- # Revert specific files
712
- git checkout <pre-migration-commit> -- path/to/problem/file.tsx
713
-
714
- # Commit the revert
715
- git commit -m "Revert: problematic migration for file.tsx"
716
- ```
717
-
718
- ### Feature Flag Rollback
719
-
720
- ```yaml
721
- feature_flag_rollback:
722
- use_when: "Using feature flags for migration"
723
-
724
- setup:
725
- flag_name: "USE_NEW_AUTH_IMPLEMENTATION"
726
- default: false
727
-
728
- code: |
729
- const AuthComponent = () => {
730
- if (featureFlags.USE_NEW_AUTH_IMPLEMENTATION) {
731
- return <NewAuth />;
732
- }
733
- return <LegacyAuth />;
734
- };
735
-
736
- rollback:
737
- action: "Set flag to false"
738
- effect: "Immediate switch to old implementation"
739
- no_deploy_needed: true
740
- ```
741
-
742
- ---
743
-
744
- ## Configuration
745
-
746
- ```yaml
747
- # proagents.config.yaml
748
-
749
- migrations:
750
- tracking:
751
- enabled: true
752
- file: ".proagents/migrations/status.yaml"
753
-
754
- strategy:
755
- default: "gradual"
756
- suggest_on_file_touch: true
757
-
758
- automated:
759
- class_to_functional:
760
- enabled: true
761
- auto_suggest: true
762
-
763
- typescript:
764
- enabled: true
765
- auto_add_types: true
766
-
767
- testing:
768
- require_before_migration: true
769
- require_after_migration: true
770
- coverage_threshold: 80
771
-
772
- rollback:
773
- create_restore_point: true
774
- feature_flags: true
775
- ```
776
-
777
- ---
778
-
779
- ## Commands
780
-
781
- | Command | Description |
782
- |---------|-------------|
783
- | `pa:migrate-status` | View migration progress |
784
- | `pa:migrate-plan [type]` | Create migration plan |
785
- | `pa:migrate-file [path]` | Migrate specific file |
786
- | `pa:migrate-module [name]` | Migrate entire module |
787
- | `pa:migrate-rollback [id]` | Rollback migration |
788
- | `pa:migrate-report` | Generate migration report |