owflow 0.5.0 → 0.7.0

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 (195) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +448 -261
  3. package/dist/agents/bottleneck-analyzer.md +332 -329
  4. package/dist/agents/code-quality-pragmatist.md +353 -354
  5. package/dist/agents/code-reviewer.md +238 -239
  6. package/dist/agents/codebase-analysis-reporter.md +245 -246
  7. package/dist/agents/docs-operator.md +22 -23
  8. package/dist/agents/e2e-test-verifier.md +447 -448
  9. package/dist/agents/gap-analyzer.md +501 -502
  10. package/dist/agents/implementation-completeness-checker.md +219 -220
  11. package/dist/agents/implementation-planner.md +308 -309
  12. package/dist/agents/information-gatherer.md +690 -691
  13. package/dist/agents/production-readiness-checker.md +278 -279
  14. package/dist/agents/project-analyzer.md +403 -403
  15. package/dist/agents/reality-assessor.md +365 -366
  16. package/dist/agents/research-planner.md +449 -450
  17. package/dist/agents/research-synthesizer.md +402 -403
  18. package/dist/agents/solution-brainstormer.md +256 -257
  19. package/dist/agents/solution-designer.md +371 -372
  20. package/dist/agents/spec-auditor.md +297 -298
  21. package/dist/agents/specification-creator.md +333 -334
  22. package/dist/agents/task-classifier.md +449 -450
  23. package/dist/agents/task-group-implementer.md +283 -284
  24. package/dist/agents/test-suite-runner.md +194 -195
  25. package/dist/agents/user-docs-generator.md +508 -509
  26. package/dist/commands/reviews-code.md +90 -90
  27. package/dist/commands/reviews-pragmatic.md +99 -99
  28. package/dist/commands/reviews-production-readiness.md +113 -113
  29. package/dist/commands/reviews-reality-check.md +110 -110
  30. package/dist/commands/reviews-spec-audit.md +114 -114
  31. package/dist/commands/work.md +280 -280
  32. package/dist/configuration/agents-config.d.ts +2 -0
  33. package/dist/configuration/agents-config.js +8 -44
  34. package/dist/configuration/commands-config.d.ts +23 -0
  35. package/dist/configuration/commands-config.js +17 -17
  36. package/dist/configuration/skills-config.d.ts +2 -0
  37. package/dist/configuration/skills-config.js +3 -3
  38. package/dist/hooks/hooks-diagnostics.d.ts +3 -0
  39. package/dist/hooks/hooks-diagnostics.js +21 -0
  40. package/dist/hooks/hooks-persistence.d.ts +17 -0
  41. package/dist/hooks/hooks-persistence.js +207 -0
  42. package/dist/hooks/hooks-registry.d.ts +6 -0
  43. package/dist/hooks/hooks-registry.js +104 -0
  44. package/dist/hooks/hooks-wrapper.d.ts +25 -0
  45. package/dist/hooks/hooks-wrapper.js +318 -0
  46. package/dist/hooks/internal/before-tool.d.ts +6 -0
  47. package/dist/hooks/internal/before-tool.js +13 -0
  48. package/dist/hooks/internal/session-compaction.d.ts +9 -0
  49. package/dist/hooks/{session-compaction.js → internal/session-compaction.js} +9 -7
  50. package/dist/hooks/runtime/circuit-breaker.d.ts +23 -0
  51. package/dist/hooks/runtime/circuit-breaker.js +39 -0
  52. package/dist/hooks/runtime/failure-policy.d.ts +15 -0
  53. package/dist/hooks/runtime/failure-policy.js +49 -0
  54. package/dist/hooks/runtime/process-executor.d.ts +33 -0
  55. package/dist/hooks/runtime/process-executor.js +147 -0
  56. package/dist/hooks/runtime/status-recorder.d.ts +27 -0
  57. package/dist/hooks/runtime/status-recorder.js +111 -0
  58. package/dist/index.d.ts +7 -0
  59. package/dist/index.js +111 -40
  60. package/dist/skills/agents-md-generator/SKILL.md +223 -223
  61. package/dist/skills/codebase-analyzer/SKILL.md +162 -162
  62. package/dist/skills/codebase-analyzer/references/code-analysis.md +63 -63
  63. package/dist/skills/codebase-analyzer/references/combined.md +31 -31
  64. package/dist/skills/codebase-analyzer/references/context-discovery.md +63 -63
  65. package/dist/skills/codebase-analyzer/references/file-discovery.md +51 -51
  66. package/dist/skills/codebase-analyzer/references/migration-target.md +23 -23
  67. package/dist/skills/codebase-analyzer/references/pattern-mining.md +22 -22
  68. package/dist/skills/dev-analyze/SKILL.md +115 -115
  69. package/dist/skills/dev-bugfix/SKILL.md +452 -452
  70. package/dist/skills/dev-finalize/SKILL.md +118 -118
  71. package/dist/skills/dev-implement/SKILL.md +167 -167
  72. package/dist/skills/dev-plan/SKILL.md +147 -147
  73. package/dist/skills/dev-spec/SKILL.md +182 -182
  74. package/dist/skills/dev-tdd-red/SKILL.md +94 -94
  75. package/dist/skills/dev-verify/SKILL.md +153 -153
  76. package/dist/skills/development/SKILL.md +260 -260
  77. package/dist/skills/diagrams-mermaid/SKILL.md +183 -159
  78. package/dist/skills/diagrams-mermaid/references/reference.md +220 -148
  79. package/dist/skills/docs-manager/SKILL.md +379 -379
  80. package/dist/skills/docs-manager/docs/INDEX.md +199 -199
  81. package/dist/skills/docs-manager/docs/standards/backend/api.md +25 -25
  82. package/dist/skills/docs-manager/docs/standards/backend/migrations.md +22 -22
  83. package/dist/skills/docs-manager/docs/standards/backend/models.md +25 -25
  84. package/dist/skills/docs-manager/docs/standards/backend/queries.md +22 -22
  85. package/dist/skills/docs-manager/docs/standards/frontend/accessibility.md +25 -25
  86. package/dist/skills/docs-manager/docs/standards/frontend/components.md +28 -28
  87. package/dist/skills/docs-manager/docs/standards/frontend/css.md +16 -16
  88. package/dist/skills/docs-manager/docs/standards/frontend/responsive.md +28 -28
  89. package/dist/skills/docs-manager/docs/standards/global/coding-style.md +25 -25
  90. package/dist/skills/docs-manager/docs/standards/global/commenting.md +10 -10
  91. package/dist/skills/docs-manager/docs/standards/global/conventions.md +31 -31
  92. package/dist/skills/docs-manager/docs/standards/global/error-handling.md +22 -22
  93. package/dist/skills/docs-manager/docs/standards/global/minimal-implementation.md +22 -22
  94. package/dist/skills/docs-manager/docs/standards/global/validation.md +28 -28
  95. package/dist/skills/docs-manager/docs/standards/testing/test-writing.md +25 -25
  96. package/dist/skills/docs-manager/references/agents-md-template.md +29 -29
  97. package/dist/skills/docs-manager/references/index-md-template.md +73 -73
  98. package/dist/skills/flow-init/SKILL.md +234 -234
  99. package/dist/skills/flow-init/references/architecture-template.md +45 -45
  100. package/dist/skills/flow-init/references/roadmap-templates.md +93 -93
  101. package/dist/skills/flow-init/references/tech-stack-template.md +70 -70
  102. package/dist/skills/flow-init/references/vision-templates.md +75 -75
  103. package/dist/skills/goal-development/SKILL.md +96 -96
  104. package/dist/skills/goal-migration/SKILL.md +114 -114
  105. package/dist/skills/goal-performance/SKILL.md +126 -0
  106. package/dist/skills/goal-research/SKILL.md +118 -118
  107. package/dist/skills/html-renderer/SKILL.md +173 -173
  108. package/dist/skills/html-renderer/references/index.html +318 -318
  109. package/dist/skills/html-renderer/references/styles.css +388 -388
  110. package/dist/skills/html-renderer/references/tokens.json +104 -104
  111. package/dist/skills/implementation-plan-executor/SKILL.md +378 -378
  112. package/dist/skills/implementation-verifier/SKILL.md +307 -307
  113. package/dist/skills/migration/SKILL.md +268 -268
  114. package/dist/skills/migration-analyze/SKILL.md +126 -126
  115. package/dist/skills/migration-finalize/SKILL.md +161 -161
  116. package/dist/skills/migration-fix/SKILL.md +155 -155
  117. package/dist/skills/migration-implement/SKILL.md +131 -131
  118. package/dist/skills/migration-plan/SKILL.md +131 -131
  119. package/dist/skills/migration-spec/SKILL.md +135 -135
  120. package/dist/skills/migration-spec/references/migration-strategies.md +430 -430
  121. package/dist/skills/migration-target/SKILL.md +134 -134
  122. package/dist/skills/migration-target/references/migration-types.md +489 -489
  123. package/dist/skills/migration-verify/SKILL.md +184 -184
  124. package/dist/skills/orchestrator-framework/SKILL.md +65 -65
  125. package/dist/skills/orchestrator-framework/references/command-namespacing.md +7 -7
  126. package/dist/skills/orchestrator-framework/references/confirm-or-revise-exception.md +20 -20
  127. package/dist/skills/orchestrator-framework/references/delegation-rules.md +54 -54
  128. package/dist/skills/orchestrator-framework/references/dispatcher-handoff.md +27 -27
  129. package/dist/skills/orchestrator-framework/references/fix-loop-contract.md +65 -65
  130. package/dist/skills/orchestrator-framework/references/gate-contract.md +122 -117
  131. package/dist/skills/orchestrator-framework/references/orchestrator-creation-checklist.md +51 -51
  132. package/dist/skills/orchestrator-framework/references/orchestrator-patterns.md +235 -235
  133. package/dist/skills/performance/SKILL.md +267 -437
  134. package/dist/skills/performance-analyze/SKILL.md +129 -0
  135. package/dist/skills/{performance → performance-analyze}/references/performance-optimization-guide.md +271 -365
  136. package/dist/skills/performance-finalize/SKILL.md +117 -0
  137. package/dist/skills/performance-implement/SKILL.md +114 -0
  138. package/dist/skills/performance-plan/SKILL.md +112 -0
  139. package/dist/skills/performance-spec/SKILL.md +145 -0
  140. package/dist/skills/performance-verify/SKILL.md +164 -0
  141. package/dist/skills/research/SKILL.md +249 -249
  142. package/dist/skills/research-brainstorm/SKILL.md +120 -120
  143. package/dist/skills/research-brainstorm/references/brainstorming-techniques.md +84 -84
  144. package/dist/skills/research-converge/SKILL.md +130 -130
  145. package/dist/skills/research-design/SKILL.md +146 -146
  146. package/dist/skills/research-design/references/design-techniques.md +40 -40
  147. package/dist/skills/research-finalize/SKILL.md +125 -125
  148. package/dist/skills/research-fork/SKILL.md +190 -190
  149. package/dist/skills/research-gather/SKILL.md +133 -133
  150. package/dist/skills/research-plan/SKILL.md +141 -141
  151. package/dist/skills/research-plan/references/research-methodologies.md +710 -710
  152. package/dist/skills/research-quick/SKILL.md +139 -139
  153. package/dist/skills/research-synthesize/SKILL.md +127 -127
  154. package/dist/skills/rule-reviewer/SKILL.md +334 -334
  155. package/dist/skills/standards-discover/SKILL.md +260 -260
  156. package/dist/skills/standards-discover/references/aggregation-strategy.md +76 -76
  157. package/dist/skills/standards-discover/references/code-pattern-prompt.md +68 -68
  158. package/dist/skills/standards-discover/references/config-analyzer-prompt.md +67 -67
  159. package/dist/skills/standards-discover/references/docs-extractor-prompt.md +65 -65
  160. package/dist/skills/standards-discover/references/external-analyzer-prompt.md +75 -75
  161. package/dist/skills/standards-update/SKILL.md +207 -207
  162. package/dist/templates/orchestrator-state-base.yml +17 -17
  163. package/dist/templates/orchestrator-state-development.yml +95 -95
  164. package/dist/templates/orchestrator-state-migration.yml +95 -95
  165. package/dist/templates/orchestrator-state-performance.yml +64 -53
  166. package/dist/templates/orchestrator-state-research.yml +67 -67
  167. package/dist/tools/fork_task.d.ts +17 -0
  168. package/dist/tools/fork_task.js +21 -11
  169. package/dist/tools/verify_template.d.ts +11 -0
  170. package/dist/tools/verify_template.js +32 -17
  171. package/dist/tui/hooks-dialogs.d.ts +20 -0
  172. package/dist/tui/hooks-dialogs.js +181 -0
  173. package/dist/tui/hooks-presenter.d.ts +15 -0
  174. package/dist/tui/hooks-presenter.js +70 -0
  175. package/dist/tui/hooks-sidebar.d.ts +10 -0
  176. package/dist/tui/hooks-sidebar.js +104 -0
  177. package/dist/tui/primitives.d.ts +21 -0
  178. package/dist/tui/primitives.js +47 -0
  179. package/dist/tui.d.ts +12 -0
  180. package/dist/tui.js +129 -0
  181. package/dist/types/hook-types.d.ts +125 -0
  182. package/dist/types/hook-types.js +76 -0
  183. package/dist/types/opencode-types.d.ts +13 -0
  184. package/dist/utils/file-util.d.ts +2 -0
  185. package/dist/utils/file-util.js +6 -6
  186. package/dist/utils/fork-task.d.ts +27 -0
  187. package/dist/utils/fork-task.js +18 -23
  188. package/dist/utils/plugin-info.d.ts +3 -0
  189. package/dist/utils/plugin-info.js +8 -10
  190. package/dist/utils/workflow-paths.d.ts +17 -0
  191. package/dist/utils/workflow-paths.js +18 -0
  192. package/dist/utils/yaml-structure.d.ts +7 -0
  193. package/dist/utils/yaml-structure.js +7 -11
  194. package/package.json +68 -48
  195. package/dist/hooks/before-tool.js +0 -19
@@ -1,489 +1,489 @@
1
- # Migration Types Reference
2
-
3
- > **Design Documentation**: This file serves as **design documentation** for developers and Agents implementing migration workflows. It provides guidance for identifying migration types and adapting workflows accordingly.
4
-
5
- **Purpose:** Pattern guide for the three migration types: Code, Data, and Architecture
6
-
7
- This reference provides characteristics, detection patterns, and workflow adaptations for each migration type supported by the migration workflow.
8
-
9
- ---
10
-
11
- ## Table of Contents
12
-
13
- 1. [Overview](#overview)
14
- 2. [Code Migration](#code-migration)
15
- 3. [Data Migration](#data-migration)
16
- 4. [Architecture Migration](#architecture-migration)
17
- 5. [General Migration](#general-migration)
18
- 6. [Type Detection Algorithm](#type-detection-algorithm)
19
-
20
- ---
21
-
22
- ## Overview
23
-
24
- Migration types classify migrations based on **what** is being changed:
25
-
26
- | Type | Focus | Examples | Risk Profile |
27
- | ---------------- | ---------------------------- | ----------------------------------------- | ------------ |
28
- | **Code** | Language, framework, library | Vue 2→3, Python 2→3, Express→Fastify | Medium |
29
- | **Data** | Database, storage, schema | MySQL→PostgreSQL, MongoDB→DynamoDB | High |
30
- | **Architecture** | Patterns, structure | REST→GraphQL, Monolith→Microservices | High |
31
- | **General** | Mixed or unclear | Complex refactoring with multiple aspects | Variable |
32
-
33
- ### Why Type Matters
34
-
35
- Different types require different:
36
-
37
- - **Risk assessments**: Data migrations are highest risk (data loss potential)
38
- - **Verification approaches**: Data needs integrity checks, code needs functional tests
39
- - **Rollback strategies**: Data rollback more complex than code rollback
40
- - **Tools and techniques**: Database tools for data, test suites for code
41
-
42
- ---
43
-
44
- ## Code Migration
45
-
46
- ### Definition
47
-
48
- **What**: Changing programming language, framework, library, or major version with breaking changes
49
-
50
- **Characteristics**:
51
-
52
- - Source code modifications (syntax, APIs, patterns)
53
- - Dependency updates (package.json, requirements.txt, pom.xml)
54
- - No data transformation (data structures unchanged or minimal changes)
55
- - Primarily affects developers (users may not notice if functionality same)
56
-
57
- ### Examples
58
-
59
- **Framework Migrations**:
60
-
61
- - Vue 2 → Vue 3 (composition API, breaking changes)
62
- - Angular 8 → Angular 15 (modules to standalone components)
63
- - React Class Components → Hooks
64
- - Express 4 → Express 5
65
-
66
- **Language Migrations**:
67
-
68
- - Python 2 → Python 3 (print statements, unicode)
69
- - JavaScript → TypeScript (type annotations)
70
- - Java 8 → Java 17 (new syntax, APIs)
71
-
72
- **Library Migrations**:
73
-
74
- - Moment.js → Day.js (date handling library change)
75
- - Axios → Fetch API (HTTP client change)
76
- - Lodash → Native JavaScript (utility functions)
77
-
78
- ### Detection Keywords
79
-
80
- **Primary Indicators**:
81
-
82
- - Framework/library names: React, Vue, Angular, Express, Flask, Django, Spring, Rails
83
- - Version terms: "upgrade", "migrate from X to Y", "move to version N"
84
- - Language names: Python, Java, JavaScript, TypeScript, Go, Rust
85
-
86
- **Example Descriptions**:
87
-
88
- - "Migrate from Vue 2 to Vue 3" → Code migration (framework)
89
- - "Upgrade Express to v5" → Code migration (major version)
90
- - "Convert JavaScript to TypeScript" → Code migration (language)
91
-
92
- ### Workflow Adaptations
93
-
94
- **`migration-analyze` (Current State Analysis)**:
95
-
96
- - Focus: Locate all source files using old framework/library
97
- - Analyze: Dependency tree, API usage patterns, deprecated features used
98
-
99
- **`migration-target` (Target State Planning)**:
100
-
101
- - Focus: Breaking changes between versions, API equivalents
102
- - Output: Breaking changes list, API migration map
103
-
104
- **`migration-spec` (Specification)**:
105
-
106
- - Include: Compatibility shim requirements (if needed)
107
- - Rollback: Simple (revert code via git)
108
-
109
- **`migration-implement` (Execution)**:
110
-
111
- - Strategy: Incremental (by module/component)
112
- - Testing: Functional tests per module
113
-
114
- **`migration-verify` (Verification)**:
115
-
116
- - Focus: Functional equivalence (behavior unchanged)
117
- - Tests: Full test suite, manual testing of critical flows
118
-
119
- ### Risk Profile
120
-
121
- **Medium Risk**:
122
-
123
- - **Risk**: Breaking changes causing bugs, build failures
124
- - **Mitigation**: Comprehensive test coverage, incremental migration
125
- - **Rollback**: Relatively easy (git revert)
126
-
127
- ---
128
-
129
- ## Data Migration
130
-
131
- ### Definition
132
-
133
- **What**: Changing database platform, storage system, or schema structure
134
-
135
- **Characteristics**:
136
-
137
- - Data transformation (format, structure, relationships)
138
- - Schema changes (tables, columns, indexes, constraints)
139
- - Data integrity critical (no data loss tolerated)
140
- - Often requires dual-run (old and new databases running in parallel)
141
-
142
- ### Examples
143
-
144
- **Platform Migrations**:
145
-
146
- - MySQL → PostgreSQL (SQL database change)
147
- - MongoDB → DynamoDB (document to key-value)
148
- - Redis → Memcached (caching layer change)
149
- - On-premise DB → Cloud DB (AWS RDS, Azure SQL)
150
-
151
- **Schema Migrations**:
152
-
153
- - Normalize database (split tables, add relationships)
154
- - Denormalize for performance (merge tables)
155
- - Add partitioning/sharding
156
-
157
- **Storage Migrations**:
158
-
159
- - Local files → S3 (file storage migration)
160
- - S3 → GCS (cloud provider change)
161
- - SQL → NoSQL (data model change)
162
-
163
- ### Detection Keywords
164
-
165
- **Primary Indicators**:
166
-
167
- - Database names: MySQL, PostgreSQL, MongoDB, Redis, DynamoDB, Cassandra, Oracle
168
- - Data terms: "schema change", "data migration", "database migration", "move data"
169
- - Storage terms: "S3", "blob storage", "file migration"
170
-
171
- **Example Descriptions**:
172
-
173
- - "Migrate database from MySQL to PostgreSQL" → Data migration (platform)
174
- - "Move from MongoDB to DynamoDB" → Data migration (NoSQL change)
175
- - "Migrate schema to normalized structure" → Data migration (schema)
176
-
177
- ### Workflow Adaptations
178
-
179
- **`migration-analyze` (Current State Analysis)**:
180
-
181
- - Focus: Database schema, row counts, data volume, stored procedures
182
- - Analyze: Data relationships, foreign keys, indexes, constraints
183
-
184
- **`migration-target` (Target State Planning)**:
185
-
186
- - Focus: Data transformation requirements, data mapping (old → new schema)
187
- - Output: Data transformation specification, estimated migration time
188
-
189
- **`migration-spec` (Specification)**:
190
-
191
- - Include: Data validation procedures, integrity checks, rollback procedures
192
- - Rollback: Complex (requires backup/restore strategies)
193
- - Dual-Run: Often required (zero-downtime)
194
-
195
- **`migration-implement` (Execution)**:
196
-
197
- - Strategy: Incremental + Dual-Run (high confidence in strategy choice)
198
- - Testing: Data integrity checks after each batch
199
-
200
- **`migration-verify` (Verification)**:
201
-
202
- - Focus: Data integrity (100% row count match, checksums, data validation)
203
- - Tests: Full test suite + data integrity tests + performance benchmarks
204
- - Critical: If data integrity fails, HALT (don't auto-fix, prompt user)
205
-
206
- ### Risk Profile
207
-
208
- **High Risk**:
209
-
210
- - **Risk**: Data loss, data corruption, downtime
211
- - **Mitigation**: Backups before migration, dual-run, incremental batches, 100% data validation
212
- - **Rollback**: Complex (restore from backup, may lose data written during migration)
213
-
214
- **Special Requirements**:
215
-
216
- - **Backup**: Full backup before starting (non-negotiable)
217
- - **Data Validation**: 100% row count match, checksums, business rule validation
218
- - **Dual-Run**: Strongly recommended (old and new databases in parallel)
219
- - **Monitoring**: Data synchronization lag, replication errors
220
- - **Testing**: More verification attempts (max 3 instead of 2 for auto-fix)
221
-
222
- ---
223
-
224
- ## Architecture Migration
225
-
226
- ### Definition
227
-
228
- **What**: Changing fundamental system structure, communication patterns, or architectural style
229
-
230
- **Characteristics**:
231
-
232
- - System-wide changes (affects multiple components/services)
233
- - Changes how components interact (APIs, communication patterns)
234
- - May affect both code and data (comprehensive migration)
235
- - Often requires gradual transition (old and new coexist)
236
-
237
- ### Examples
238
-
239
- **API Style Migrations**:
240
-
241
- - REST API → GraphQL (query language change)
242
- - SOAP → REST (API pattern modernization)
243
- - RPC → REST (communication pattern change)
244
-
245
- **Architecture Pattern Migrations**:
246
-
247
- - Monolith → Microservices (decomposition)
248
- - Microservices → Monolith (consolidation)
249
- - MVC → Component-Based (frontend architecture change)
250
- - Layered → Hexagonal (backend architecture change)
251
-
252
- **Infrastructure Migrations**:
253
-
254
- - On-Premise → Cloud (infrastructure change)
255
- - Single Server → Distributed (scalability)
256
- - Synchronous → Event-Driven (async patterns)
257
-
258
- ### Detection Keywords
259
-
260
- **Primary Indicators**:
261
-
262
- - Pattern names: REST, GraphQL, gRPC, SOAP, RPC
263
- - Architecture styles: Monolith, Microservices, Serverless, Event-Driven, Hexagonal
264
- - Refactoring terms: "refactor to", "change architecture", "restructure"
265
-
266
- **Example Descriptions**:
267
-
268
- - "Refactor REST API to GraphQL" → Architecture migration (API style)
269
- - "Migrate monolith to microservices" → Architecture migration (decomposition)
270
- - "Change from MVC to component-based architecture" → Architecture migration (pattern)
271
-
272
- ### Workflow Adaptations
273
-
274
- **`migration-analyze` (Current State Analysis)**:
275
-
276
- - Focus: System components, communication patterns, dependencies between components
277
- - Analyze: Coupling/cohesion, service boundaries, data flow
278
-
279
- **`migration-target` (Target State Planning)**:
280
-
281
- - Focus: New architecture structure, component boundaries, communication patterns
282
- - Output: Architecture diagram, component mapping (old → new)
283
-
284
- **`migration-spec` (Specification)**:
285
-
286
- - Include: Strangler fig pattern (if applicable), component interaction diagrams
287
- - Rollback: Moderate to complex (depends on dual-run feasibility)
288
- - Dual-Run: Often required (old and new architectures in parallel)
289
-
290
- **`migration-implement` (Execution)**:
291
-
292
- - Strategy: Incremental (by component/service) + Dual-Run (if possible)
293
- - Testing: Integration tests, end-to-end tests, performance tests
294
-
295
- **`migration-verify` (Verification)**:
296
-
297
- - Focus: System-level behavior (end-to-end flows work), performance comparison
298
- - Tests: Full test suite + integration tests + E2E tests
299
-
300
- ### Risk Profile
301
-
302
- **High Risk**:
303
-
304
- - **Risk**: System-wide breakage, performance degradation, complex rollback
305
- - **Mitigation**: Strangler fig pattern, incremental component migration, dual-run
306
- - **Rollback**: Moderate to complex (depends on how well old/new coexist)
307
-
308
- **Special Patterns**:
309
-
310
- - **Strangler Fig**: Gradually replace old system with new (route traffic to new incrementally)
311
- - **Branch by Abstraction**: Create abstraction layer, switch implementations behind it
312
- - **Parallel Run**: Run old and new architectures in parallel, compare results
313
-
314
- ---
315
-
316
- ## General Migration
317
-
318
- ### Definition
319
-
320
- **What**: Migrations that don't fit cleanly into Code/Data/Architecture, or mix multiple types
321
-
322
- **Characteristics**:
323
-
324
- - Ambiguous description ("modernize", "refactor" without specifics)
325
- - Multiple aspects (code + data + architecture)
326
- - Catch-all for unclear migrations
327
-
328
- ### Examples
329
-
330
- - "Modernize legacy system" (unclear scope)
331
- - "Refactor application for scalability" (multiple aspects)
332
- - "Migrate to cloud" (infrastructure + code + data)
333
-
334
- ### Workflow Adaptations
335
-
336
- **`migration-analyze` → `migration-target` (Analysis + Target Planning)**:
337
-
338
- - Spend extra time clarifying scope
339
- - Prompt user to specify what's changing (code, data, architecture, or all)
340
- - May reclassify after analysis
341
-
342
- **General Approach**:
343
-
344
- - Use conservative defaults (high risk, incremental + rollback + dual-run)
345
- - Prompt user more frequently for decisions
346
- - Extra verification steps
347
-
348
- ---
349
-
350
- ## Type Detection Algorithm
351
-
352
- ### Overview
353
-
354
- Migration type detection uses keyword matching with confidence scoring.
355
-
356
- ### Algorithm Pattern
357
-
358
- **Input**: `"Migrate from Vue 2 to Vue 3"`
359
-
360
- **Steps**:
361
-
362
- 1. **Extract Keywords**: `["migrate", "Vue", "2", "3"]`
363
- 2. **Match Against Patterns**:
364
- - Code: `["Vue"]` → 1 match
365
- - Data: `[]` → 0 matches
366
- - Architecture: `[]` → 0 matches
367
- 3. **Calculate Scores**:
368
- - Code: 1 match → 100% confidence (only category with matches)
369
- - Data: 0 matches → 0%
370
- - Architecture: 0 matches → 0%
371
- 4. **Select Type**: Code (highest score)
372
- 5. **Confirm with User** (interactive mode): "Detected migration type: Code. Correct? [Y/n]"
373
-
374
- ### Keyword Categories
375
-
376
- **Code Migration Keywords**:
377
-
378
- ```
379
- Frameworks: React, Vue, Angular, Express, Flask, Django, Rails, Spring, Laravel
380
- Languages: Python, Java, JavaScript, TypeScript, Go, Rust, C++, C#, Ruby, PHP
381
- Terms: "upgrade", "migrate from X to Y", "version", "framework migration"
382
- ```
383
-
384
- **Data Migration Keywords**:
385
-
386
- ```
387
- Databases: MySQL, PostgreSQL, MongoDB, Redis, DynamoDB, Cassandra, Oracle, SQL Server
388
- Terms: "database", "schema", "data migration", "move data", "storage", "S3", "blob"
389
- ```
390
-
391
- **Architecture Migration Keywords**:
392
-
393
- ```
394
- Patterns: REST, GraphQL, gRPC, SOAP, Monolith, Microservices, Serverless, Event-Driven
395
- Terms: "refactor to", "architecture", "pattern", "system design", "restructure"
396
- ```
397
-
398
- ### Ambiguity Handling
399
-
400
- **Multiple Matches** (e.g., "Migrate MySQL database to PostgreSQL and refactor to microservices"):
401
-
402
- - Scores: Code=0, Data=2 ("MySQL", "PostgreSQL"), Architecture=1 ("microservices")
403
- - Primary Type: Data (highest score)
404
- - Classification: Data + Architecture (mixed)
405
- - Prompt user: "Detected primary type: Data. Also includes architecture changes. Proceed as data migration? [Y/n/specify]"
406
-
407
- **No Clear Matches** (e.g., "Modernize application"):
408
-
409
- - Scores: Code=0, Data=0, Architecture=0
410
- - Classification: General
411
- - Prompt user: "Unable to detect migration type. Please specify: [Code/Data/Architecture/Mixed]"
412
-
413
- ### Confidence Levels
414
-
415
- | Score | Confidence | Action |
416
- | ---------------------------------- | ---------- | ----------------------------------- |
417
- | Single category with matches | 100% | Auto-detect, confirm in interactive |
418
- | Primary category (>50% of matches) | 70-90% | Auto-detect, prompt to confirm |
419
- | Tied categories | 50% | Prompt user to choose |
420
- | No matches | 0% | Classify as General, prompt user |
421
-
422
- ---
423
-
424
- ## Web Research Requirements by Type
425
-
426
- External research runs inline in `migration-target` — the `gap-analyzer` agent performs the gap inventory only and has no web access. The level of research depends on migration type, and the outcome is recorded in `external_research.*` (including `performed: false` when skipped).
427
-
428
- | Migration Type | External Research | Query Focus | Priority Sources |
429
- | -------------------------- | ----------------- | ------------------------------------------------- | ------------------------------------------------- |
430
- | **Code** (Version Upgrade) | **Required** | Migration guides, breaking changes, API changes | Official docs, release notes, upgrade guides |
431
- | **Code** (Library Swap) | **Required** | Comparison guides, migration paths, compatibility | Official docs, community migration stories |
432
- | **Data** (Platform Change) | **Recommended** | Compatibility, data transformation, tooling | Official docs, DBA resources, cloud provider docs |
433
- | **Data** (Schema Change) | **Optional** | Best practices only | Internal docs preferred |
434
- | **Architecture** | **Recommended** | Pattern implementation, migration strategies | Architecture blogs, official docs |
435
- | **General** | **Optional** | Clarification research | N/A |
436
-
437
- ### When to Skip External Research
438
-
439
- - Pure internal refactoring (no external technology change)
440
- - Schema changes within same database platform
441
- - Minor version upgrades (patch versions only)
442
- - When offline mode required
443
- - User explicitly requests `--no-web-research`
444
-
445
- ### Research Depth by Complexity
446
-
447
- | Complexity | Research Depth | Queries | Focus |
448
- | ------------------------- | -------------- | ------- | ------------------------------------------------ |
449
- | Simple (<10 files) | Essential | 2-3 | Official migration guide only |
450
- | Moderate (10-30 files) | Essential | 2-3 | Migration guide + breaking changes |
451
- | Complex (>30 files) | Expanded | 4-6 | Guide + breaking changes + community experiences |
452
- | Data migration (any size) | Expanded | 4-6 | Guide + compatibility + data transformation |
453
-
454
- ### Example Research Queries
455
-
456
- **Code Migration (Vue 2 → Vue 3)**:
457
-
458
- - Primary: "Vue 2 to Vue 3 migration guide"
459
- - Secondary: "Vue 3 breaking changes 2024"
460
- - Expanded: "Vue 3 composition API migration examples"
461
-
462
- **Data Migration (MySQL → PostgreSQL)**:
463
-
464
- - Primary: "MySQL to PostgreSQL migration guide"
465
- - Secondary: "PostgreSQL migration tools 2024"
466
- - Expanded: "MySQL PostgreSQL syntax differences"
467
-
468
- **Architecture Migration (REST → GraphQL)**:
469
-
470
- - Primary: "REST to GraphQL migration guide"
471
- - Secondary: "GraphQL migration best practices"
472
- - Expanded: "REST GraphQL coexistence patterns"
473
-
474
- ---
475
-
476
- ## Summary
477
-
478
- **Key Takeaways**:
479
-
480
- 1. **Code**: Focus on functional equivalence, incremental migration, medium risk
481
- 2. **Data**: Focus on data integrity, dual-run often required, high risk
482
- 3. **Architecture**: Focus on system-level behavior, strangler fig pattern, high risk
483
- 4. **General**: Conservative defaults, extra clarification with user
484
-
485
- **Read by**:
486
-
487
- - `migration-target`: type detection algorithm (with confidence scoring), type-specific gap analysis, external research requirements
488
- - `migration-analyze`: type-specific analysis focus
489
- - `migration-verify`: type-specific verification requirements
1
+ # Migration Types Reference
2
+
3
+ > **Design Documentation**: This file serves as **design documentation** for developers and Agents implementing migration workflows. It provides guidance for identifying migration types and adapting workflows accordingly.
4
+
5
+ **Purpose:** Pattern guide for the three migration types: Code, Data, and Architecture
6
+
7
+ This reference provides characteristics, detection patterns, and workflow adaptations for each migration type supported by the migration workflow.
8
+
9
+ ---
10
+
11
+ ## Table of Contents
12
+
13
+ 1. [Overview](#overview)
14
+ 2. [Code Migration](#code-migration)
15
+ 3. [Data Migration](#data-migration)
16
+ 4. [Architecture Migration](#architecture-migration)
17
+ 5. [General Migration](#general-migration)
18
+ 6. [Type Detection Algorithm](#type-detection-algorithm)
19
+
20
+ ---
21
+
22
+ ## Overview
23
+
24
+ Migration types classify migrations based on **what** is being changed:
25
+
26
+ | Type | Focus | Examples | Risk Profile |
27
+ | ---------------- | ---------------------------- | ----------------------------------------- | ------------ |
28
+ | **Code** | Language, framework, library | Vue 2→3, Python 2→3, Express→Fastify | Medium |
29
+ | **Data** | Database, storage, schema | MySQL→PostgreSQL, MongoDB→DynamoDB | High |
30
+ | **Architecture** | Patterns, structure | REST→GraphQL, Monolith→Microservices | High |
31
+ | **General** | Mixed or unclear | Complex refactoring with multiple aspects | Variable |
32
+
33
+ ### Why Type Matters
34
+
35
+ Different types require different:
36
+
37
+ - **Risk assessments**: Data migrations are highest risk (data loss potential)
38
+ - **Verification approaches**: Data needs integrity checks, code needs functional tests
39
+ - **Rollback strategies**: Data rollback more complex than code rollback
40
+ - **Tools and techniques**: Database tools for data, test suites for code
41
+
42
+ ---
43
+
44
+ ## Code Migration
45
+
46
+ ### Definition
47
+
48
+ **What**: Changing programming language, framework, library, or major version with breaking changes
49
+
50
+ **Characteristics**:
51
+
52
+ - Source code modifications (syntax, APIs, patterns)
53
+ - Dependency updates (package.json, requirements.txt, pom.xml)
54
+ - No data transformation (data structures unchanged or minimal changes)
55
+ - Primarily affects developers (users may not notice if functionality same)
56
+
57
+ ### Examples
58
+
59
+ **Framework Migrations**:
60
+
61
+ - Vue 2 → Vue 3 (composition API, breaking changes)
62
+ - Angular 8 → Angular 15 (modules to standalone components)
63
+ - React Class Components → Hooks
64
+ - Express 4 → Express 5
65
+
66
+ **Language Migrations**:
67
+
68
+ - Python 2 → Python 3 (print statements, unicode)
69
+ - JavaScript → TypeScript (type annotations)
70
+ - Java 8 → Java 17 (new syntax, APIs)
71
+
72
+ **Library Migrations**:
73
+
74
+ - Moment.js → Day.js (date handling library change)
75
+ - Axios → Fetch API (HTTP client change)
76
+ - Lodash → Native JavaScript (utility functions)
77
+
78
+ ### Detection Keywords
79
+
80
+ **Primary Indicators**:
81
+
82
+ - Framework/library names: React, Vue, Angular, Express, Flask, Django, Spring, Rails
83
+ - Version terms: "upgrade", "migrate from X to Y", "move to version N"
84
+ - Language names: Python, Java, JavaScript, TypeScript, Go, Rust
85
+
86
+ **Example Descriptions**:
87
+
88
+ - "Migrate from Vue 2 to Vue 3" → Code migration (framework)
89
+ - "Upgrade Express to v5" → Code migration (major version)
90
+ - "Convert JavaScript to TypeScript" → Code migration (language)
91
+
92
+ ### Workflow Adaptations
93
+
94
+ **`migration-analyze` (Current State Analysis)**:
95
+
96
+ - Focus: Locate all source files using old framework/library
97
+ - Analyze: Dependency tree, API usage patterns, deprecated features used
98
+
99
+ **`migration-target` (Target State Planning)**:
100
+
101
+ - Focus: Breaking changes between versions, API equivalents
102
+ - Output: Breaking changes list, API migration map
103
+
104
+ **`migration-spec` (Specification)**:
105
+
106
+ - Include: Compatibility shim requirements (if needed)
107
+ - Rollback: Simple (revert code via git)
108
+
109
+ **`migration-implement` (Execution)**:
110
+
111
+ - Strategy: Incremental (by module/component)
112
+ - Testing: Functional tests per module
113
+
114
+ **`migration-verify` (Verification)**:
115
+
116
+ - Focus: Functional equivalence (behavior unchanged)
117
+ - Tests: Full test suite, manual testing of critical flows
118
+
119
+ ### Risk Profile
120
+
121
+ **Medium Risk**:
122
+
123
+ - **Risk**: Breaking changes causing bugs, build failures
124
+ - **Mitigation**: Comprehensive test coverage, incremental migration
125
+ - **Rollback**: Relatively easy (git revert)
126
+
127
+ ---
128
+
129
+ ## Data Migration
130
+
131
+ ### Definition
132
+
133
+ **What**: Changing database platform, storage system, or schema structure
134
+
135
+ **Characteristics**:
136
+
137
+ - Data transformation (format, structure, relationships)
138
+ - Schema changes (tables, columns, indexes, constraints)
139
+ - Data integrity critical (no data loss tolerated)
140
+ - Often requires dual-run (old and new databases running in parallel)
141
+
142
+ ### Examples
143
+
144
+ **Platform Migrations**:
145
+
146
+ - MySQL → PostgreSQL (SQL database change)
147
+ - MongoDB → DynamoDB (document to key-value)
148
+ - Redis → Memcached (caching layer change)
149
+ - On-premise DB → Cloud DB (AWS RDS, Azure SQL)
150
+
151
+ **Schema Migrations**:
152
+
153
+ - Normalize database (split tables, add relationships)
154
+ - Denormalize for performance (merge tables)
155
+ - Add partitioning/sharding
156
+
157
+ **Storage Migrations**:
158
+
159
+ - Local files → S3 (file storage migration)
160
+ - S3 → GCS (cloud provider change)
161
+ - SQL → NoSQL (data model change)
162
+
163
+ ### Detection Keywords
164
+
165
+ **Primary Indicators**:
166
+
167
+ - Database names: MySQL, PostgreSQL, MongoDB, Redis, DynamoDB, Cassandra, Oracle
168
+ - Data terms: "schema change", "data migration", "database migration", "move data"
169
+ - Storage terms: "S3", "blob storage", "file migration"
170
+
171
+ **Example Descriptions**:
172
+
173
+ - "Migrate database from MySQL to PostgreSQL" → Data migration (platform)
174
+ - "Move from MongoDB to DynamoDB" → Data migration (NoSQL change)
175
+ - "Migrate schema to normalized structure" → Data migration (schema)
176
+
177
+ ### Workflow Adaptations
178
+
179
+ **`migration-analyze` (Current State Analysis)**:
180
+
181
+ - Focus: Database schema, row counts, data volume, stored procedures
182
+ - Analyze: Data relationships, foreign keys, indexes, constraints
183
+
184
+ **`migration-target` (Target State Planning)**:
185
+
186
+ - Focus: Data transformation requirements, data mapping (old → new schema)
187
+ - Output: Data transformation specification, estimated migration time
188
+
189
+ **`migration-spec` (Specification)**:
190
+
191
+ - Include: Data validation procedures, integrity checks, rollback procedures
192
+ - Rollback: Complex (requires backup/restore strategies)
193
+ - Dual-Run: Often required (zero-downtime)
194
+
195
+ **`migration-implement` (Execution)**:
196
+
197
+ - Strategy: Incremental + Dual-Run (high confidence in strategy choice)
198
+ - Testing: Data integrity checks after each batch
199
+
200
+ **`migration-verify` (Verification)**:
201
+
202
+ - Focus: Data integrity (100% row count match, checksums, data validation)
203
+ - Tests: Full test suite + data integrity tests + performance benchmarks
204
+ - Critical: If data integrity fails, HALT (don't auto-fix, prompt user)
205
+
206
+ ### Risk Profile
207
+
208
+ **High Risk**:
209
+
210
+ - **Risk**: Data loss, data corruption, downtime
211
+ - **Mitigation**: Backups before migration, dual-run, incremental batches, 100% data validation
212
+ - **Rollback**: Complex (restore from backup, may lose data written during migration)
213
+
214
+ **Special Requirements**:
215
+
216
+ - **Backup**: Full backup before starting (non-negotiable)
217
+ - **Data Validation**: 100% row count match, checksums, business rule validation
218
+ - **Dual-Run**: Strongly recommended (old and new databases in parallel)
219
+ - **Monitoring**: Data synchronization lag, replication errors
220
+ - **Testing**: More verification attempts (max 3 instead of 2 for auto-fix)
221
+
222
+ ---
223
+
224
+ ## Architecture Migration
225
+
226
+ ### Definition
227
+
228
+ **What**: Changing fundamental system structure, communication patterns, or architectural style
229
+
230
+ **Characteristics**:
231
+
232
+ - System-wide changes (affects multiple components/services)
233
+ - Changes how components interact (APIs, communication patterns)
234
+ - May affect both code and data (comprehensive migration)
235
+ - Often requires gradual transition (old and new coexist)
236
+
237
+ ### Examples
238
+
239
+ **API Style Migrations**:
240
+
241
+ - REST API → GraphQL (query language change)
242
+ - SOAP → REST (API pattern modernization)
243
+ - RPC → REST (communication pattern change)
244
+
245
+ **Architecture Pattern Migrations**:
246
+
247
+ - Monolith → Microservices (decomposition)
248
+ - Microservices → Monolith (consolidation)
249
+ - MVC → Component-Based (frontend architecture change)
250
+ - Layered → Hexagonal (backend architecture change)
251
+
252
+ **Infrastructure Migrations**:
253
+
254
+ - On-Premise → Cloud (infrastructure change)
255
+ - Single Server → Distributed (scalability)
256
+ - Synchronous → Event-Driven (async patterns)
257
+
258
+ ### Detection Keywords
259
+
260
+ **Primary Indicators**:
261
+
262
+ - Pattern names: REST, GraphQL, gRPC, SOAP, RPC
263
+ - Architecture styles: Monolith, Microservices, Serverless, Event-Driven, Hexagonal
264
+ - Refactoring terms: "refactor to", "change architecture", "restructure"
265
+
266
+ **Example Descriptions**:
267
+
268
+ - "Refactor REST API to GraphQL" → Architecture migration (API style)
269
+ - "Migrate monolith to microservices" → Architecture migration (decomposition)
270
+ - "Change from MVC to component-based architecture" → Architecture migration (pattern)
271
+
272
+ ### Workflow Adaptations
273
+
274
+ **`migration-analyze` (Current State Analysis)**:
275
+
276
+ - Focus: System components, communication patterns, dependencies between components
277
+ - Analyze: Coupling/cohesion, service boundaries, data flow
278
+
279
+ **`migration-target` (Target State Planning)**:
280
+
281
+ - Focus: New architecture structure, component boundaries, communication patterns
282
+ - Output: Architecture diagram, component mapping (old → new)
283
+
284
+ **`migration-spec` (Specification)**:
285
+
286
+ - Include: Strangler fig pattern (if applicable), component interaction diagrams
287
+ - Rollback: Moderate to complex (depends on dual-run feasibility)
288
+ - Dual-Run: Often required (old and new architectures in parallel)
289
+
290
+ **`migration-implement` (Execution)**:
291
+
292
+ - Strategy: Incremental (by component/service) + Dual-Run (if possible)
293
+ - Testing: Integration tests, end-to-end tests, performance tests
294
+
295
+ **`migration-verify` (Verification)**:
296
+
297
+ - Focus: System-level behavior (end-to-end flows work), performance comparison
298
+ - Tests: Full test suite + integration tests + E2E tests
299
+
300
+ ### Risk Profile
301
+
302
+ **High Risk**:
303
+
304
+ - **Risk**: System-wide breakage, performance degradation, complex rollback
305
+ - **Mitigation**: Strangler fig pattern, incremental component migration, dual-run
306
+ - **Rollback**: Moderate to complex (depends on how well old/new coexist)
307
+
308
+ **Special Patterns**:
309
+
310
+ - **Strangler Fig**: Gradually replace old system with new (route traffic to new incrementally)
311
+ - **Branch by Abstraction**: Create abstraction layer, switch implementations behind it
312
+ - **Parallel Run**: Run old and new architectures in parallel, compare results
313
+
314
+ ---
315
+
316
+ ## General Migration
317
+
318
+ ### Definition
319
+
320
+ **What**: Migrations that don't fit cleanly into Code/Data/Architecture, or mix multiple types
321
+
322
+ **Characteristics**:
323
+
324
+ - Ambiguous description ("modernize", "refactor" without specifics)
325
+ - Multiple aspects (code + data + architecture)
326
+ - Catch-all for unclear migrations
327
+
328
+ ### Examples
329
+
330
+ - "Modernize legacy system" (unclear scope)
331
+ - "Refactor application for scalability" (multiple aspects)
332
+ - "Migrate to cloud" (infrastructure + code + data)
333
+
334
+ ### Workflow Adaptations
335
+
336
+ **`migration-analyze` → `migration-target` (Analysis + Target Planning)**:
337
+
338
+ - Spend extra time clarifying scope
339
+ - Prompt user to specify what's changing (code, data, architecture, or all)
340
+ - May reclassify after analysis
341
+
342
+ **General Approach**:
343
+
344
+ - Use conservative defaults (high risk, incremental + rollback + dual-run)
345
+ - Prompt user more frequently for decisions
346
+ - Extra verification steps
347
+
348
+ ---
349
+
350
+ ## Type Detection Algorithm
351
+
352
+ ### Overview
353
+
354
+ Migration type detection uses keyword matching with confidence scoring.
355
+
356
+ ### Algorithm Pattern
357
+
358
+ **Input**: `"Migrate from Vue 2 to Vue 3"`
359
+
360
+ **Steps**:
361
+
362
+ 1. **Extract Keywords**: `["migrate", "Vue", "2", "3"]`
363
+ 2. **Match Against Patterns**:
364
+ - Code: `["Vue"]` → 1 match
365
+ - Data: `[]` → 0 matches
366
+ - Architecture: `[]` → 0 matches
367
+ 3. **Calculate Scores**:
368
+ - Code: 1 match → 100% confidence (only category with matches)
369
+ - Data: 0 matches → 0%
370
+ - Architecture: 0 matches → 0%
371
+ 4. **Select Type**: Code (highest score)
372
+ 5. **Confirm with User** (interactive mode): "Detected migration type: Code. Correct? [Y/n]"
373
+
374
+ ### Keyword Categories
375
+
376
+ **Code Migration Keywords**:
377
+
378
+ ```
379
+ Frameworks: React, Vue, Angular, Express, Flask, Django, Rails, Spring, Laravel
380
+ Languages: Python, Java, JavaScript, TypeScript, Go, Rust, C++, C#, Ruby, PHP
381
+ Terms: "upgrade", "migrate from X to Y", "version", "framework migration"
382
+ ```
383
+
384
+ **Data Migration Keywords**:
385
+
386
+ ```
387
+ Databases: MySQL, PostgreSQL, MongoDB, Redis, DynamoDB, Cassandra, Oracle, SQL Server
388
+ Terms: "database", "schema", "data migration", "move data", "storage", "S3", "blob"
389
+ ```
390
+
391
+ **Architecture Migration Keywords**:
392
+
393
+ ```
394
+ Patterns: REST, GraphQL, gRPC, SOAP, Monolith, Microservices, Serverless, Event-Driven
395
+ Terms: "refactor to", "architecture", "pattern", "system design", "restructure"
396
+ ```
397
+
398
+ ### Ambiguity Handling
399
+
400
+ **Multiple Matches** (e.g., "Migrate MySQL database to PostgreSQL and refactor to microservices"):
401
+
402
+ - Scores: Code=0, Data=2 ("MySQL", "PostgreSQL"), Architecture=1 ("microservices")
403
+ - Primary Type: Data (highest score)
404
+ - Classification: Data + Architecture (mixed)
405
+ - Prompt user: "Detected primary type: Data. Also includes architecture changes. Proceed as data migration? [Y/n/specify]"
406
+
407
+ **No Clear Matches** (e.g., "Modernize application"):
408
+
409
+ - Scores: Code=0, Data=0, Architecture=0
410
+ - Classification: General
411
+ - Prompt user: "Unable to detect migration type. Please specify: [Code/Data/Architecture/Mixed]"
412
+
413
+ ### Confidence Levels
414
+
415
+ | Score | Confidence | Action |
416
+ | ---------------------------------- | ---------- | ----------------------------------- |
417
+ | Single category with matches | 100% | Auto-detect, confirm in interactive |
418
+ | Primary category (>50% of matches) | 70-90% | Auto-detect, prompt to confirm |
419
+ | Tied categories | 50% | Prompt user to choose |
420
+ | No matches | 0% | Classify as General, prompt user |
421
+
422
+ ---
423
+
424
+ ## Web Research Requirements by Type
425
+
426
+ External research runs inline in `migration-target` — the `gap-analyzer` agent performs the gap inventory only and has no web access. The level of research depends on migration type, and the outcome is recorded in `external_research.*` (including `performed: false` when skipped).
427
+
428
+ | Migration Type | External Research | Query Focus | Priority Sources |
429
+ | -------------------------- | ----------------- | ------------------------------------------------- | ------------------------------------------------- |
430
+ | **Code** (Version Upgrade) | **Required** | Migration guides, breaking changes, API changes | Official docs, release notes, upgrade guides |
431
+ | **Code** (Library Swap) | **Required** | Comparison guides, migration paths, compatibility | Official docs, community migration stories |
432
+ | **Data** (Platform Change) | **Recommended** | Compatibility, data transformation, tooling | Official docs, DBA resources, cloud provider docs |
433
+ | **Data** (Schema Change) | **Optional** | Best practices only | Internal docs preferred |
434
+ | **Architecture** | **Recommended** | Pattern implementation, migration strategies | Architecture blogs, official docs |
435
+ | **General** | **Optional** | Clarification research | N/A |
436
+
437
+ ### When to Skip External Research
438
+
439
+ - Pure internal refactoring (no external technology change)
440
+ - Schema changes within same database platform
441
+ - Minor version upgrades (patch versions only)
442
+ - When offline mode required
443
+ - User explicitly requests `--no-web-research`
444
+
445
+ ### Research Depth by Complexity
446
+
447
+ | Complexity | Research Depth | Queries | Focus |
448
+ | ------------------------- | -------------- | ------- | ------------------------------------------------ |
449
+ | Simple (<10 files) | Essential | 2-3 | Official migration guide only |
450
+ | Moderate (10-30 files) | Essential | 2-3 | Migration guide + breaking changes |
451
+ | Complex (>30 files) | Expanded | 4-6 | Guide + breaking changes + community experiences |
452
+ | Data migration (any size) | Expanded | 4-6 | Guide + compatibility + data transformation |
453
+
454
+ ### Example Research Queries
455
+
456
+ **Code Migration (Vue 2 → Vue 3)**:
457
+
458
+ - Primary: "Vue 2 to Vue 3 migration guide"
459
+ - Secondary: "Vue 3 breaking changes 2024"
460
+ - Expanded: "Vue 3 composition API migration examples"
461
+
462
+ **Data Migration (MySQL → PostgreSQL)**:
463
+
464
+ - Primary: "MySQL to PostgreSQL migration guide"
465
+ - Secondary: "PostgreSQL migration tools 2024"
466
+ - Expanded: "MySQL PostgreSQL syntax differences"
467
+
468
+ **Architecture Migration (REST → GraphQL)**:
469
+
470
+ - Primary: "REST to GraphQL migration guide"
471
+ - Secondary: "GraphQL migration best practices"
472
+ - Expanded: "REST GraphQL coexistence patterns"
473
+
474
+ ---
475
+
476
+ ## Summary
477
+
478
+ **Key Takeaways**:
479
+
480
+ 1. **Code**: Focus on functional equivalence, incremental migration, medium risk
481
+ 2. **Data**: Focus on data integrity, dual-run often required, high risk
482
+ 3. **Architecture**: Focus on system-level behavior, strangler fig pattern, high risk
483
+ 4. **General**: Conservative defaults, extra clarification with user
484
+
485
+ **Read by**:
486
+
487
+ - `migration-target`: type detection algorithm (with confidence scoring), type-specific gap analysis, external research requirements
488
+ - `migration-analyze`: type-specific analysis focus
489
+ - `migration-verify`: type-specific verification requirements