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.
Files changed (185) hide show
  1. package/.claude/settings.local.json +169 -0
  2. package/.proagents/AGENTS.md +2 -0
  3. package/.proagents/AI_INSTRUCTIONS.md +13 -0
  4. package/.proagents/ANTIGRAVITY.md +2 -0
  5. package/.proagents/BOLT.md +2 -0
  6. package/.proagents/CHATGPT.md +2 -0
  7. package/.proagents/CLAUDE.md +2 -0
  8. package/.proagents/GEMINI.md +2 -0
  9. package/.proagents/GROQ.md +2 -0
  10. package/.proagents/KIRO.md +2 -0
  11. package/.proagents/LOVABLE.md +2 -0
  12. package/.proagents/PROAGENTS.md +2 -0
  13. package/.proagents/REPLIT.md +2 -0
  14. package/.proagents/prompts/00-project-setup.md +878 -0
  15. package/.proagents/prompts/04-planning.md +38 -0
  16. package/.proagents/prompts/12-rnd.md +957 -0
  17. package/.proagents/workflow-modes/entry-modes.md +27 -0
  18. package/.proagents/worklog/_context.template.md +47 -0
  19. package/COMMANDS.md +654 -0
  20. package/README.md +16 -24
  21. package/package.json +2 -7
  22. package/.proagents/ai-models/README.md +0 -141
  23. package/.proagents/ai-models/cost-management.md +0 -362
  24. package/.proagents/ai-models/fallbacks.md +0 -342
  25. package/.proagents/ai-models/model-config.md +0 -318
  26. package/.proagents/ai-models/task-routing.md +0 -503
  27. package/.proagents/ai-training/README.md +0 -155
  28. package/.proagents/ai-training/continuous-learning.md +0 -413
  29. package/.proagents/ai-training/domain-knowledge.md +0 -378
  30. package/.proagents/ai-training/pattern-learning.md +0 -455
  31. package/.proagents/ai-training/training-data.md +0 -337
  32. package/.proagents/ai-training/user-preferences.md +0 -346
  33. package/.proagents/approval-workflows/README.md +0 -146
  34. package/.proagents/approval-workflows/approval-config.md +0 -332
  35. package/.proagents/approval-workflows/approval-stages.md +0 -503
  36. package/.proagents/approval-workflows/emergency-bypass.md +0 -351
  37. package/.proagents/approval-workflows/examples.md +0 -859
  38. package/.proagents/approval-workflows/notifications.md +0 -320
  39. package/.proagents/compliance/README.md +0 -206
  40. package/.proagents/compliance/access-control.md +0 -310
  41. package/.proagents/compliance/audit-logging.md +0 -444
  42. package/.proagents/compliance/compliance-frameworks.md +0 -429
  43. package/.proagents/compliance/reports.md +0 -491
  44. package/.proagents/compliance/retention-policies.md +0 -454
  45. package/.proagents/config-versioning/README.md +0 -120
  46. package/.proagents/config-versioning/changelog.md +0 -300
  47. package/.proagents/config-versioning/rollback.md +0 -283
  48. package/.proagents/config-versioning/versioning.md +0 -330
  49. package/.proagents/contract-testing/README.md +0 -223
  50. package/.proagents/contract-testing/contract-testing.md +0 -614
  51. package/.proagents/contract-testing/pact-integration.md +0 -507
  52. package/.proagents/contract-testing/schema-validation.md +0 -565
  53. package/.proagents/dependency-management/README.md +0 -140
  54. package/.proagents/dependency-management/automation.md +0 -363
  55. package/.proagents/dependency-management/compatibility.md +0 -319
  56. package/.proagents/dependency-management/security-scanning.md +0 -413
  57. package/.proagents/dependency-management/update-policies.md +0 -374
  58. package/.proagents/disaster-recovery/README.md +0 -247
  59. package/.proagents/disaster-recovery/automation.md +0 -366
  60. package/.proagents/disaster-recovery/backup-recovery.md +0 -571
  61. package/.proagents/disaster-recovery/incident-response.md +0 -565
  62. package/.proagents/disaster-recovery/rollback-procedures.md +0 -499
  63. package/.proagents/disaster-recovery/runbooks.md +0 -603
  64. package/.proagents/disaster-recovery/scenarios.md +0 -892
  65. package/.proagents/disaster-recovery/testing.md +0 -438
  66. package/.proagents/environments/README.md +0 -244
  67. package/.proagents/environments/configuration.md +0 -437
  68. package/.proagents/environments/promotion.md +0 -434
  69. package/.proagents/environments/setup.md +0 -420
  70. package/.proagents/examples/README.md +0 -55
  71. package/.proagents/examples/backend-nodejs/README.md +0 -188
  72. package/.proagents/examples/backend-nodejs/complete-conversation.md +0 -601
  73. package/.proagents/examples/backend-nodejs/proagents.config.yaml +0 -415
  74. package/.proagents/examples/backend-nodejs/workflow-example.md +0 -909
  75. package/.proagents/examples/fullstack-nextjs/README.md +0 -155
  76. package/.proagents/examples/fullstack-nextjs/complete-conversation.md +0 -604
  77. package/.proagents/examples/fullstack-nextjs/proagents.config.yaml +0 -287
  78. package/.proagents/examples/fullstack-nextjs/workflow-example.md +0 -553
  79. package/.proagents/examples/mobile-react-native/README.md +0 -171
  80. package/.proagents/examples/mobile-react-native/complete-conversation.md +0 -825
  81. package/.proagents/examples/mobile-react-native/proagents.config.yaml +0 -330
  82. package/.proagents/examples/mobile-react-native/workflow-example.md +0 -723
  83. package/.proagents/examples/web-frontend-react/README.md +0 -125
  84. package/.proagents/examples/web-frontend-react/complete-conversation.md +0 -556
  85. package/.proagents/examples/web-frontend-react/proagents.config.yaml +0 -183
  86. package/.proagents/examples/web-frontend-react/workflow-example.md +0 -603
  87. package/.proagents/existing-projects/README.md +0 -65
  88. package/.proagents/existing-projects/challenges.md +0 -861
  89. package/.proagents/existing-projects/coexistence-mode.md +0 -483
  90. package/.proagents/existing-projects/compatibility-assessment.md +0 -541
  91. package/.proagents/existing-projects/gradual-adoption.md +0 -515
  92. package/.proagents/existing-projects/migration-strategies.md +0 -788
  93. package/.proagents/existing-projects/pattern-reconciliation.md +0 -489
  94. package/.proagents/existing-projects/team-onboarding.md +0 -617
  95. package/.proagents/existing-projects/technical-debt-handling.md +0 -644
  96. package/.proagents/feature-flags/README.md +0 -263
  97. package/.proagents/feature-flags/ab-testing.md +0 -413
  98. package/.proagents/feature-flags/configuration.md +0 -420
  99. package/.proagents/feature-flags/kill-switches.md +0 -444
  100. package/.proagents/feature-flags/rollout-strategies.md +0 -392
  101. package/.proagents/history.log +0 -12
  102. package/.proagents/i18n/README.md +0 -133
  103. package/.proagents/i18n/extraction.md +0 -433
  104. package/.proagents/i18n/tms-integration.md +0 -332
  105. package/.proagents/i18n/translation-workflow.md +0 -413
  106. package/.proagents/i18n/validation.md +0 -355
  107. package/.proagents/logging/README.md +0 -276
  108. package/.proagents/logging/aggregation.md +0 -475
  109. package/.proagents/logging/log-levels.md +0 -376
  110. package/.proagents/logging/sensitive-data.md +0 -423
  111. package/.proagents/logging/structured-logging.md +0 -406
  112. package/.proagents/metrics/README.md +0 -69
  113. package/.proagents/metrics/code-quality-kpis.md +0 -461
  114. package/.proagents/metrics/deployment-metrics.md +0 -517
  115. package/.proagents/metrics/developer-productivity.md +0 -368
  116. package/.proagents/metrics/learning-effectiveness.md +0 -478
  117. package/.proagents/migrations/README.md +0 -77
  118. package/.proagents/migrations/from-claude-projects.md +0 -313
  119. package/.proagents/migrations/from-cursor-rules.md +0 -345
  120. package/.proagents/migrations/from-custom-workflows.md +0 -410
  121. package/.proagents/monitoring/README.md +0 -308
  122. package/.proagents/monitoring/alerting.md +0 -449
  123. package/.proagents/monitoring/dashboards.md +0 -454
  124. package/.proagents/monitoring/health-checks.md +0 -436
  125. package/.proagents/monitoring/metrics.md +0 -434
  126. package/.proagents/multi-project/README.md +0 -170
  127. package/.proagents/multi-project/coordinated-deploy.md +0 -510
  128. package/.proagents/multi-project/cross-project-deps.md +0 -395
  129. package/.proagents/multi-project/unified-changelog.md +0 -477
  130. package/.proagents/multi-project/walkthroughs/monorepo-setup.md +0 -787
  131. package/.proagents/multi-project/workspace-config.md +0 -408
  132. package/.proagents/notifications/README.md +0 -151
  133. package/.proagents/notifications/channels.md +0 -457
  134. package/.proagents/notifications/preferences.md +0 -415
  135. package/.proagents/notifications/routing.md +0 -449
  136. package/.proagents/notifications/scheduling.md +0 -425
  137. package/.proagents/notifications/templates.md +0 -446
  138. package/.proagents/offline-mode/README.md +0 -145
  139. package/.proagents/offline-mode/caching.md +0 -344
  140. package/.proagents/offline-mode/offline-operations.md +0 -312
  141. package/.proagents/offline-mode/queue-specifications.md +0 -679
  142. package/.proagents/offline-mode/sync.md +0 -475
  143. package/.proagents/parallel-features/README.md +0 -85
  144. package/.proagents/parallel-features/conflict-detection.md +0 -226
  145. package/.proagents/parallel-features/dependency-management.md +0 -392
  146. package/.proagents/parallel-features/merge-coordination.md +0 -506
  147. package/.proagents/parallel-features/tracking-system.md +0 -416
  148. package/.proagents/performance/README.md +0 -59
  149. package/.proagents/performance/bundle-analysis.md +0 -375
  150. package/.proagents/performance/load-testing.md +0 -563
  151. package/.proagents/performance/runtime-metrics.md +0 -489
  152. package/.proagents/performance/web-vitals.md +0 -425
  153. package/.proagents/plugins/README.md +0 -139
  154. package/.proagents/plugins/creating-plugins.md +0 -504
  155. package/.proagents/plugins/plugin-api.md +0 -467
  156. package/.proagents/plugins/plugin-registry.md +0 -276
  157. package/.proagents/reporting/README.md +0 -158
  158. package/.proagents/reporting/dashboards.md +0 -366
  159. package/.proagents/reporting/exports.md +0 -524
  160. package/.proagents/reporting/quality-metrics.md +0 -385
  161. package/.proagents/reporting/templates/README.md +0 -56
  162. package/.proagents/reporting/templates/dashboard-config.json +0 -187
  163. package/.proagents/reporting/templates/metrics-queries.md +0 -427
  164. package/.proagents/reporting/templates/react-dashboard.tsx +0 -544
  165. package/.proagents/reporting/templates/widgets.md +0 -451
  166. package/.proagents/reporting/velocity-metrics.md +0 -340
  167. package/.proagents/reverse-engineering/README.md +0 -151
  168. package/.proagents/reverse-engineering/architecture-extraction.md +0 -325
  169. package/.proagents/reverse-engineering/code-analysis.md +0 -377
  170. package/.proagents/reverse-engineering/dependency-mapping.md +0 -567
  171. package/.proagents/reverse-engineering/diagram-generation.md +0 -586
  172. package/.proagents/reverse-engineering/documentation-generation.md +0 -468
  173. package/.proagents/reverse-engineering/pattern-detection.md +0 -569
  174. package/.proagents/reverse-engineering/quality-assessment.md +0 -733
  175. package/.proagents/secrets/README.md +0 -278
  176. package/.proagents/secrets/access-control.md +0 -443
  177. package/.proagents/secrets/rotation.md +0 -403
  178. package/.proagents/secrets/scanning.md +0 -487
  179. package/.proagents/secrets/storage.md +0 -394
  180. package/.proagents/webhooks/README.md +0 -126
  181. package/.proagents/webhooks/endpoints.md +0 -298
  182. package/.proagents/webhooks/events.md +0 -316
  183. package/.proagents/webhooks/payloads.md +0 -325
  184. package/.proagents/webhooks/reliability.md +0 -363
  185. 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 |