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.
- package/LICENSE +21 -21
- package/README.md +448 -261
- package/dist/agents/bottleneck-analyzer.md +332 -329
- package/dist/agents/code-quality-pragmatist.md +353 -354
- package/dist/agents/code-reviewer.md +238 -239
- package/dist/agents/codebase-analysis-reporter.md +245 -246
- package/dist/agents/docs-operator.md +22 -23
- package/dist/agents/e2e-test-verifier.md +447 -448
- package/dist/agents/gap-analyzer.md +501 -502
- package/dist/agents/implementation-completeness-checker.md +219 -220
- package/dist/agents/implementation-planner.md +308 -309
- package/dist/agents/information-gatherer.md +690 -691
- package/dist/agents/production-readiness-checker.md +278 -279
- package/dist/agents/project-analyzer.md +403 -403
- package/dist/agents/reality-assessor.md +365 -366
- package/dist/agents/research-planner.md +449 -450
- package/dist/agents/research-synthesizer.md +402 -403
- package/dist/agents/solution-brainstormer.md +256 -257
- package/dist/agents/solution-designer.md +371 -372
- package/dist/agents/spec-auditor.md +297 -298
- package/dist/agents/specification-creator.md +333 -334
- package/dist/agents/task-classifier.md +449 -450
- package/dist/agents/task-group-implementer.md +283 -284
- package/dist/agents/test-suite-runner.md +194 -195
- package/dist/agents/user-docs-generator.md +508 -509
- package/dist/commands/reviews-code.md +90 -90
- package/dist/commands/reviews-pragmatic.md +99 -99
- package/dist/commands/reviews-production-readiness.md +113 -113
- package/dist/commands/reviews-reality-check.md +110 -110
- package/dist/commands/reviews-spec-audit.md +114 -114
- package/dist/commands/work.md +280 -280
- package/dist/configuration/agents-config.d.ts +2 -0
- package/dist/configuration/agents-config.js +8 -44
- package/dist/configuration/commands-config.d.ts +23 -0
- package/dist/configuration/commands-config.js +17 -17
- package/dist/configuration/skills-config.d.ts +2 -0
- package/dist/configuration/skills-config.js +3 -3
- package/dist/hooks/hooks-diagnostics.d.ts +3 -0
- package/dist/hooks/hooks-diagnostics.js +21 -0
- package/dist/hooks/hooks-persistence.d.ts +17 -0
- package/dist/hooks/hooks-persistence.js +207 -0
- package/dist/hooks/hooks-registry.d.ts +6 -0
- package/dist/hooks/hooks-registry.js +104 -0
- package/dist/hooks/hooks-wrapper.d.ts +25 -0
- package/dist/hooks/hooks-wrapper.js +318 -0
- package/dist/hooks/internal/before-tool.d.ts +6 -0
- package/dist/hooks/internal/before-tool.js +13 -0
- package/dist/hooks/internal/session-compaction.d.ts +9 -0
- package/dist/hooks/{session-compaction.js → internal/session-compaction.js} +9 -7
- package/dist/hooks/runtime/circuit-breaker.d.ts +23 -0
- package/dist/hooks/runtime/circuit-breaker.js +39 -0
- package/dist/hooks/runtime/failure-policy.d.ts +15 -0
- package/dist/hooks/runtime/failure-policy.js +49 -0
- package/dist/hooks/runtime/process-executor.d.ts +33 -0
- package/dist/hooks/runtime/process-executor.js +147 -0
- package/dist/hooks/runtime/status-recorder.d.ts +27 -0
- package/dist/hooks/runtime/status-recorder.js +111 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +111 -40
- package/dist/skills/agents-md-generator/SKILL.md +223 -223
- package/dist/skills/codebase-analyzer/SKILL.md +162 -162
- package/dist/skills/codebase-analyzer/references/code-analysis.md +63 -63
- package/dist/skills/codebase-analyzer/references/combined.md +31 -31
- package/dist/skills/codebase-analyzer/references/context-discovery.md +63 -63
- package/dist/skills/codebase-analyzer/references/file-discovery.md +51 -51
- package/dist/skills/codebase-analyzer/references/migration-target.md +23 -23
- package/dist/skills/codebase-analyzer/references/pattern-mining.md +22 -22
- package/dist/skills/dev-analyze/SKILL.md +115 -115
- package/dist/skills/dev-bugfix/SKILL.md +452 -452
- package/dist/skills/dev-finalize/SKILL.md +118 -118
- package/dist/skills/dev-implement/SKILL.md +167 -167
- package/dist/skills/dev-plan/SKILL.md +147 -147
- package/dist/skills/dev-spec/SKILL.md +182 -182
- package/dist/skills/dev-tdd-red/SKILL.md +94 -94
- package/dist/skills/dev-verify/SKILL.md +153 -153
- package/dist/skills/development/SKILL.md +260 -260
- package/dist/skills/diagrams-mermaid/SKILL.md +183 -159
- package/dist/skills/diagrams-mermaid/references/reference.md +220 -148
- package/dist/skills/docs-manager/SKILL.md +379 -379
- package/dist/skills/docs-manager/docs/INDEX.md +199 -199
- package/dist/skills/docs-manager/docs/standards/backend/api.md +25 -25
- package/dist/skills/docs-manager/docs/standards/backend/migrations.md +22 -22
- package/dist/skills/docs-manager/docs/standards/backend/models.md +25 -25
- package/dist/skills/docs-manager/docs/standards/backend/queries.md +22 -22
- package/dist/skills/docs-manager/docs/standards/frontend/accessibility.md +25 -25
- package/dist/skills/docs-manager/docs/standards/frontend/components.md +28 -28
- package/dist/skills/docs-manager/docs/standards/frontend/css.md +16 -16
- package/dist/skills/docs-manager/docs/standards/frontend/responsive.md +28 -28
- package/dist/skills/docs-manager/docs/standards/global/coding-style.md +25 -25
- package/dist/skills/docs-manager/docs/standards/global/commenting.md +10 -10
- package/dist/skills/docs-manager/docs/standards/global/conventions.md +31 -31
- package/dist/skills/docs-manager/docs/standards/global/error-handling.md +22 -22
- package/dist/skills/docs-manager/docs/standards/global/minimal-implementation.md +22 -22
- package/dist/skills/docs-manager/docs/standards/global/validation.md +28 -28
- package/dist/skills/docs-manager/docs/standards/testing/test-writing.md +25 -25
- package/dist/skills/docs-manager/references/agents-md-template.md +29 -29
- package/dist/skills/docs-manager/references/index-md-template.md +73 -73
- package/dist/skills/flow-init/SKILL.md +234 -234
- package/dist/skills/flow-init/references/architecture-template.md +45 -45
- package/dist/skills/flow-init/references/roadmap-templates.md +93 -93
- package/dist/skills/flow-init/references/tech-stack-template.md +70 -70
- package/dist/skills/flow-init/references/vision-templates.md +75 -75
- package/dist/skills/goal-development/SKILL.md +96 -96
- package/dist/skills/goal-migration/SKILL.md +114 -114
- package/dist/skills/goal-performance/SKILL.md +126 -0
- package/dist/skills/goal-research/SKILL.md +118 -118
- package/dist/skills/html-renderer/SKILL.md +173 -173
- package/dist/skills/html-renderer/references/index.html +318 -318
- package/dist/skills/html-renderer/references/styles.css +388 -388
- package/dist/skills/html-renderer/references/tokens.json +104 -104
- package/dist/skills/implementation-plan-executor/SKILL.md +378 -378
- package/dist/skills/implementation-verifier/SKILL.md +307 -307
- package/dist/skills/migration/SKILL.md +268 -268
- package/dist/skills/migration-analyze/SKILL.md +126 -126
- package/dist/skills/migration-finalize/SKILL.md +161 -161
- package/dist/skills/migration-fix/SKILL.md +155 -155
- package/dist/skills/migration-implement/SKILL.md +131 -131
- package/dist/skills/migration-plan/SKILL.md +131 -131
- package/dist/skills/migration-spec/SKILL.md +135 -135
- package/dist/skills/migration-spec/references/migration-strategies.md +430 -430
- package/dist/skills/migration-target/SKILL.md +134 -134
- package/dist/skills/migration-target/references/migration-types.md +489 -489
- package/dist/skills/migration-verify/SKILL.md +184 -184
- package/dist/skills/orchestrator-framework/SKILL.md +65 -65
- package/dist/skills/orchestrator-framework/references/command-namespacing.md +7 -7
- package/dist/skills/orchestrator-framework/references/confirm-or-revise-exception.md +20 -20
- package/dist/skills/orchestrator-framework/references/delegation-rules.md +54 -54
- package/dist/skills/orchestrator-framework/references/dispatcher-handoff.md +27 -27
- package/dist/skills/orchestrator-framework/references/fix-loop-contract.md +65 -65
- package/dist/skills/orchestrator-framework/references/gate-contract.md +122 -117
- package/dist/skills/orchestrator-framework/references/orchestrator-creation-checklist.md +51 -51
- package/dist/skills/orchestrator-framework/references/orchestrator-patterns.md +235 -235
- package/dist/skills/performance/SKILL.md +267 -437
- package/dist/skills/performance-analyze/SKILL.md +129 -0
- package/dist/skills/{performance → performance-analyze}/references/performance-optimization-guide.md +271 -365
- package/dist/skills/performance-finalize/SKILL.md +117 -0
- package/dist/skills/performance-implement/SKILL.md +114 -0
- package/dist/skills/performance-plan/SKILL.md +112 -0
- package/dist/skills/performance-spec/SKILL.md +145 -0
- package/dist/skills/performance-verify/SKILL.md +164 -0
- package/dist/skills/research/SKILL.md +249 -249
- package/dist/skills/research-brainstorm/SKILL.md +120 -120
- package/dist/skills/research-brainstorm/references/brainstorming-techniques.md +84 -84
- package/dist/skills/research-converge/SKILL.md +130 -130
- package/dist/skills/research-design/SKILL.md +146 -146
- package/dist/skills/research-design/references/design-techniques.md +40 -40
- package/dist/skills/research-finalize/SKILL.md +125 -125
- package/dist/skills/research-fork/SKILL.md +190 -190
- package/dist/skills/research-gather/SKILL.md +133 -133
- package/dist/skills/research-plan/SKILL.md +141 -141
- package/dist/skills/research-plan/references/research-methodologies.md +710 -710
- package/dist/skills/research-quick/SKILL.md +139 -139
- package/dist/skills/research-synthesize/SKILL.md +127 -127
- package/dist/skills/rule-reviewer/SKILL.md +334 -334
- package/dist/skills/standards-discover/SKILL.md +260 -260
- package/dist/skills/standards-discover/references/aggregation-strategy.md +76 -76
- package/dist/skills/standards-discover/references/code-pattern-prompt.md +68 -68
- package/dist/skills/standards-discover/references/config-analyzer-prompt.md +67 -67
- package/dist/skills/standards-discover/references/docs-extractor-prompt.md +65 -65
- package/dist/skills/standards-discover/references/external-analyzer-prompt.md +75 -75
- package/dist/skills/standards-update/SKILL.md +207 -207
- package/dist/templates/orchestrator-state-base.yml +17 -17
- package/dist/templates/orchestrator-state-development.yml +95 -95
- package/dist/templates/orchestrator-state-migration.yml +95 -95
- package/dist/templates/orchestrator-state-performance.yml +64 -53
- package/dist/templates/orchestrator-state-research.yml +67 -67
- package/dist/tools/fork_task.d.ts +17 -0
- package/dist/tools/fork_task.js +21 -11
- package/dist/tools/verify_template.d.ts +11 -0
- package/dist/tools/verify_template.js +32 -17
- package/dist/tui/hooks-dialogs.d.ts +20 -0
- package/dist/tui/hooks-dialogs.js +181 -0
- package/dist/tui/hooks-presenter.d.ts +15 -0
- package/dist/tui/hooks-presenter.js +70 -0
- package/dist/tui/hooks-sidebar.d.ts +10 -0
- package/dist/tui/hooks-sidebar.js +104 -0
- package/dist/tui/primitives.d.ts +21 -0
- package/dist/tui/primitives.js +47 -0
- package/dist/tui.d.ts +12 -0
- package/dist/tui.js +129 -0
- package/dist/types/hook-types.d.ts +125 -0
- package/dist/types/hook-types.js +76 -0
- package/dist/types/opencode-types.d.ts +13 -0
- package/dist/utils/file-util.d.ts +2 -0
- package/dist/utils/file-util.js +6 -6
- package/dist/utils/fork-task.d.ts +27 -0
- package/dist/utils/fork-task.js +18 -23
- package/dist/utils/plugin-info.d.ts +3 -0
- package/dist/utils/plugin-info.js +8 -10
- package/dist/utils/workflow-paths.d.ts +17 -0
- package/dist/utils/workflow-paths.js +18 -0
- package/dist/utils/yaml-structure.d.ts +7 -0
- package/dist/utils/yaml-structure.js +7 -11
- package/package.json +68 -48
- 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
|