owflow 0.1.3 β 0.1.5
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/README.md +169 -169
- package/dist/agents/e2e-test-verifier.md +1 -1
- package/dist/commands/diagrams-mermaid.md +37 -0
- package/dist/commands/html-renderer.md +37 -0
- package/dist/commands/quick-plan.md +9 -9
- package/dist/skills/development/SKILL.md +15 -0
- package/dist/skills/diagrams-mermaid/SKILL.md +156 -0
- package/dist/skills/diagrams-mermaid/references/reference.md +148 -0
- package/dist/skills/docs-manager/SKILL.md +10 -10
- package/dist/skills/flow-init/SKILL.md +15 -0
- package/dist/skills/html-renderer/SKILL.md +159 -0
- package/dist/skills/html-renderer/references/index.html +318 -0
- package/dist/skills/html-renderer/references/styles.css +388 -0
- package/dist/skills/html-renderer/references/tokens.json +104 -0
- package/dist/skills/migration/SKILL.md +12 -0
- package/dist/skills/migration/references/migration-strategies.md +65 -32
- package/dist/skills/migration/references/migration-types.md +80 -27
- package/dist/skills/performance/SKILL.md +12 -0
- package/dist/skills/quick-bugfix/SKILL.md +4 -4
- package/dist/skills/research/SKILL.md +8 -0
- package/dist/skills/standards-discover/references/docs-extractor-prompt.md +1 -1
- package/package.json +1 -1
- /package/dist/skills/docs-manager/references/{claude-md-template.md β agents-md-template.md} +0 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
{
|
|
2
|
+
"meta": {
|
|
3
|
+
"name": "html-renderer-tokens",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"description": "Global visual tokens for markdown to HTML rendering."
|
|
6
|
+
},
|
|
7
|
+
"colors": {
|
|
8
|
+
"primary": "#cc785c",
|
|
9
|
+
"primaryActive": "#a9583e",
|
|
10
|
+
"primaryDisabled": "#e6dfd8",
|
|
11
|
+
"ink": "#141413",
|
|
12
|
+
"body": "#3d3d3a",
|
|
13
|
+
"bodyStrong": "#252523",
|
|
14
|
+
"muted": "#6c6a64",
|
|
15
|
+
"mutedSoft": "#8e8b82",
|
|
16
|
+
"hairline": "#e6dfd8",
|
|
17
|
+
"hairlineSoft": "#ebe6df",
|
|
18
|
+
"canvas": "#faf9f5",
|
|
19
|
+
"surfaceSoft": "#f5f0e8",
|
|
20
|
+
"surfaceCard": "#efe9de",
|
|
21
|
+
"surfaceCreamStrong": "#e8e0d2",
|
|
22
|
+
"surfaceDark": "#181715",
|
|
23
|
+
"surfaceDarkElevated": "#252320",
|
|
24
|
+
"surfaceDarkSoft": "#1f1e1b",
|
|
25
|
+
"onPrimary": "#ffffff",
|
|
26
|
+
"onDark": "#faf9f5",
|
|
27
|
+
"onDarkSoft": "#a09d96",
|
|
28
|
+
"accentTeal": "#5db8a6",
|
|
29
|
+
"accentAmber": "#e8a55a",
|
|
30
|
+
"success": "#5db872",
|
|
31
|
+
"warning": "#d4a017",
|
|
32
|
+
"error": "#c64545"
|
|
33
|
+
},
|
|
34
|
+
"spacing": {
|
|
35
|
+
"xxs": "4px",
|
|
36
|
+
"xs": "8px",
|
|
37
|
+
"sm": "12px",
|
|
38
|
+
"md": "16px",
|
|
39
|
+
"lg": "24px",
|
|
40
|
+
"xl": "32px",
|
|
41
|
+
"xxl": "48px",
|
|
42
|
+
"section": "96px"
|
|
43
|
+
},
|
|
44
|
+
"radius": {
|
|
45
|
+
"xs": "4px",
|
|
46
|
+
"sm": "6px",
|
|
47
|
+
"md": "8px",
|
|
48
|
+
"lg": "12px",
|
|
49
|
+
"xl": "16px",
|
|
50
|
+
"pill": "9999px",
|
|
51
|
+
"full": "9999px"
|
|
52
|
+
},
|
|
53
|
+
"typography": {
|
|
54
|
+
"displayXl": {
|
|
55
|
+
"fontFamily": "\"Copernicus\", \"Tiempos Headline\", \"Cormorant Garamond\", \"EB Garamond\", Georgia, serif",
|
|
56
|
+
"fontSize": "64px",
|
|
57
|
+
"fontWeight": 400,
|
|
58
|
+
"lineHeight": 1.05,
|
|
59
|
+
"letterSpacing": "-1.5px"
|
|
60
|
+
},
|
|
61
|
+
"displayLg": {
|
|
62
|
+
"fontFamily": "\"Copernicus\", \"Tiempos Headline\", \"Cormorant Garamond\", \"EB Garamond\", Georgia, serif",
|
|
63
|
+
"fontSize": "48px",
|
|
64
|
+
"fontWeight": 400,
|
|
65
|
+
"lineHeight": 1.1,
|
|
66
|
+
"letterSpacing": "-1px"
|
|
67
|
+
},
|
|
68
|
+
"displayMd": {
|
|
69
|
+
"fontFamily": "\"Copernicus\", \"Tiempos Headline\", \"Cormorant Garamond\", \"EB Garamond\", Georgia, serif",
|
|
70
|
+
"fontSize": "36px",
|
|
71
|
+
"fontWeight": 400,
|
|
72
|
+
"lineHeight": 1.15,
|
|
73
|
+
"letterSpacing": "-0.5px"
|
|
74
|
+
},
|
|
75
|
+
"titleMd": {
|
|
76
|
+
"fontFamily": "\"StyreneB\", \"Styrene B\", Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif",
|
|
77
|
+
"fontSize": "18px",
|
|
78
|
+
"fontWeight": 500,
|
|
79
|
+
"lineHeight": 1.4,
|
|
80
|
+
"letterSpacing": "0"
|
|
81
|
+
},
|
|
82
|
+
"bodyMd": {
|
|
83
|
+
"fontFamily": "\"StyreneB\", \"Styrene B\", Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif",
|
|
84
|
+
"fontSize": "16px",
|
|
85
|
+
"fontWeight": 400,
|
|
86
|
+
"lineHeight": 1.55,
|
|
87
|
+
"letterSpacing": "0"
|
|
88
|
+
},
|
|
89
|
+
"bodySm": {
|
|
90
|
+
"fontFamily": "\"StyreneB\", \"Styrene B\", Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif",
|
|
91
|
+
"fontSize": "14px",
|
|
92
|
+
"fontWeight": 400,
|
|
93
|
+
"lineHeight": 1.55,
|
|
94
|
+
"letterSpacing": "0"
|
|
95
|
+
},
|
|
96
|
+
"code": {
|
|
97
|
+
"fontFamily": "\"JetBrains Mono\", ui-monospace, monospace",
|
|
98
|
+
"fontSize": "14px",
|
|
99
|
+
"fontWeight": 400,
|
|
100
|
+
"lineHeight": 1.6,
|
|
101
|
+
"letterSpacing": "0"
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
@@ -150,6 +150,12 @@ question - Display executive summary before asking. Extract from gap analysis: c
|
|
|
150
150
|
**Output**: `analysis/requirements.md`, `implementation/spec.md`, `analysis/rollback-plan.md`, optionally `analysis/dual-run-plan.md`
|
|
151
151
|
**State**: Update `rollback_plan_created`, `dual_run_configured`
|
|
152
152
|
|
|
153
|
+
**Part C β Diagram Refinement (Skill, content-preserving)**:
|
|
154
|
+
|
|
155
|
+
4. Invoke Skill tool: `diagrams-mermaid` to refine `implementation/spec.md`
|
|
156
|
+
5. Add migration-focused visuals (target architecture and transition/compatibility flow) as supplements, not replacements for strategy prose.
|
|
157
|
+
6. If minimum context is missing, record open gaps instead of inventing systems, protocols, or migration paths.
|
|
158
|
+
|
|
153
159
|
β Pause
|
|
154
160
|
|
|
155
161
|
question - Display executive summary before asking. Read `implementation/spec.md` and extract: migration strategy chosen, scope boundaries, rollback approach, breaking changes identified, key constraints. Format as brief overview then "Continue to implementation planning?"
|
|
@@ -167,6 +173,12 @@ question - Display executive summary before asking. Read `implementation/spec.md
|
|
|
167
173
|
|
|
168
174
|
**Context to pass to subagent**: task_path, task_type (migration), migration_type, task_description, phase_summaries (current_state_analysis, gap_analysis, specification)
|
|
169
175
|
|
|
176
|
+
**Post-plan diagram refinement (Skill, content-preserving)**:
|
|
177
|
+
|
|
178
|
+
- Invoke Skill tool: `diagrams-mermaid` for `implementation/implementation-plan.md`
|
|
179
|
+
- Add one migration execution/state flow with rollback checkpoints.
|
|
180
|
+
- Preserve written task steps and rollback details as source of truth.
|
|
181
|
+
|
|
170
182
|
β Pause
|
|
171
183
|
|
|
172
184
|
question - Display executive summary before asking. Read `implementation/implementation-plan.md` and extract: number of task groups, total steps, rollback steps included, key dependencies, execution sequence. Format as brief overview then "Continue to execute migration?"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Migration Strategies Reference
|
|
2
2
|
|
|
3
|
-
> **Design Documentation**: This file serves as **design documentation** for developers and
|
|
3
|
+
> **Design Documentation**: This file serves as **design documentation** for developers and Agents implementing migration workflows. It provides conceptual patterns and decision frameworks for selecting and executing migration strategies.
|
|
4
4
|
|
|
5
5
|
**Purpose:** Pattern guide for migration execution strategies (incremental, rollback, dual-run)
|
|
6
6
|
|
|
@@ -23,11 +23,11 @@ This reference provides decision criteria and implementation patterns for the th
|
|
|
23
23
|
|
|
24
24
|
Migration strategies define **how** to execute the transition from current to target state. The migration orchestrator supports three core strategies, which can be combined:
|
|
25
25
|
|
|
26
|
-
| Strategy
|
|
27
|
-
|
|
28
|
-
| **Incremental** | Migrate piece-by-piece with checkpoints | Low-Medium
|
|
29
|
-
| **Rollback**
|
|
30
|
-
| **Dual-Run**
|
|
26
|
+
| Strategy | Purpose | Risk Level | Use When |
|
|
27
|
+
| --------------- | --------------------------------------- | ----------- | -------------------------------------------- |
|
|
28
|
+
| **Incremental** | Migrate piece-by-piece with checkpoints | Low-Medium | Large migrations, complex changes |
|
|
29
|
+
| **Rollback** | Plan undo procedures for each phase | Medium | Critical systems, data migrations |
|
|
30
|
+
| **Dual-Run** | Run old and new systems in parallel | Medium-High | Zero-downtime requirements, data sync needed |
|
|
31
31
|
|
|
32
32
|
### Key Principles
|
|
33
33
|
|
|
@@ -45,6 +45,7 @@ Migration strategies define **how** to execute the transition from current to ta
|
|
|
45
45
|
**Definition**: Break migration into smaller phases, complete one phase fully before starting next
|
|
46
46
|
|
|
47
47
|
**Pattern**:
|
|
48
|
+
|
|
48
49
|
```
|
|
49
50
|
Current State β Phase 1 β Verify β Phase 2 β Verify β Phase 3 β Verify β Target State
|
|
50
51
|
β β β
|
|
@@ -54,12 +55,14 @@ Current State β Phase 1 β Verify β Phase 2 β Verify β Phase 3 β Veri
|
|
|
54
55
|
### When to Use
|
|
55
56
|
|
|
56
57
|
**Strong Indicators**:
|
|
58
|
+
|
|
57
59
|
- Large migration scope (>50 files, >5,000 lines affected)
|
|
58
60
|
- Multiple independent subsystems to migrate
|
|
59
61
|
- Complex breaking changes requiring staged adaptation
|
|
60
62
|
- Team needs to learn new technology during migration
|
|
61
63
|
|
|
62
64
|
**Avoid If**:
|
|
65
|
+
|
|
63
66
|
- Small, isolated change (<10 files)
|
|
64
67
|
- Tight deadline requiring fast completion
|
|
65
68
|
- No logical breakpoints in migration
|
|
@@ -67,12 +70,14 @@ Current State β Phase 1 β Verify β Phase 2 β Verify β Phase 3 β Veri
|
|
|
67
70
|
### Implementation Pattern
|
|
68
71
|
|
|
69
72
|
**Phase Definition**:
|
|
73
|
+
|
|
70
74
|
1. **Identify Natural Boundaries**: Modules, layers, features that can migrate independently
|
|
71
75
|
2. **Define Dependencies**: Which phases must complete before others
|
|
72
76
|
3. **Set Verification Criteria**: How to validate each phase succeeded
|
|
73
77
|
4. **Plan Checkpoints**: Git tags, deployment points, rollback triggers
|
|
74
78
|
|
|
75
79
|
**Example - Framework Migration (Vue 2 β Vue 3)**:
|
|
80
|
+
|
|
76
81
|
```
|
|
77
82
|
Phase 1: Core dependencies (package.json, build config)
|
|
78
83
|
β Verify: App still builds and runs
|
|
@@ -87,8 +92,10 @@ Phase 5: Cleanup (remove compatibility shims)
|
|
|
87
92
|
```
|
|
88
93
|
|
|
89
94
|
**Task Group Structure**:
|
|
95
|
+
|
|
90
96
|
```markdown
|
|
91
97
|
### Task Group 1: Phase 1 - Core Dependencies
|
|
98
|
+
|
|
92
99
|
- [ ] 1.1 Write tests for compatibility layer
|
|
93
100
|
- [ ] 1.2 Upgrade core packages
|
|
94
101
|
- [ ] 1.3 Update build configuration
|
|
@@ -96,6 +103,7 @@ Phase 5: Cleanup (remove compatibility shims)
|
|
|
96
103
|
- [ ] 1.5 Run Phase 1 checkpoint tests
|
|
97
104
|
|
|
98
105
|
### Task Group 2: Phase 2 - Shared Components
|
|
106
|
+
|
|
99
107
|
[continues with next phase after Phase 1 verified]
|
|
100
108
|
```
|
|
101
109
|
|
|
@@ -121,6 +129,7 @@ Phase 5: Cleanup (remove compatibility shims)
|
|
|
121
129
|
**Definition**: Document undo procedures for each migration phase before executing
|
|
122
130
|
|
|
123
131
|
**Pattern**:
|
|
132
|
+
|
|
124
133
|
```
|
|
125
134
|
Before Phase 1: Define rollback procedure
|
|
126
135
|
Execute Phase 1
|
|
@@ -131,6 +140,7 @@ If success: Continue to Phase 2
|
|
|
131
140
|
### When to Use
|
|
132
141
|
|
|
133
142
|
**Strong Indicators**:
|
|
143
|
+
|
|
134
144
|
- Production systems (downtime is costly)
|
|
135
145
|
- Data migrations (data loss risk)
|
|
136
146
|
- Critical business functionality
|
|
@@ -138,6 +148,7 @@ If success: Continue to Phase 2
|
|
|
138
148
|
- First-time migration (learning experience)
|
|
139
149
|
|
|
140
150
|
**Always Use For**:
|
|
151
|
+
|
|
141
152
|
- Data migrations (required)
|
|
142
153
|
- Production deployments (required)
|
|
143
154
|
- Architecture migrations affecting multiple systems
|
|
@@ -145,36 +156,42 @@ If success: Continue to Phase 2
|
|
|
145
156
|
### Implementation Pattern
|
|
146
157
|
|
|
147
158
|
**Rollback Plan Structure** (`planning/rollback-plan.md`):
|
|
159
|
+
|
|
148
160
|
```markdown
|
|
149
161
|
# Rollback Plan: [Migration Name]
|
|
150
162
|
|
|
151
163
|
## Rollback Overview
|
|
164
|
+
|
|
152
165
|
- **Rollback Complexity**: Simple | Moderate | Complex
|
|
153
166
|
- **Data Loss Risk**: None | Minimal | Moderate | High
|
|
154
167
|
- **Rollback Time Estimate**: [minutes/hours]
|
|
155
168
|
|
|
156
169
|
## Phase 1: [Phase Name] Rollback
|
|
170
|
+
|
|
157
171
|
**Trigger**: [What indicates rollback needed]
|
|
158
172
|
**Procedure**:
|
|
173
|
+
|
|
159
174
|
1. [Undo step 1]
|
|
160
175
|
2. [Undo step 2]
|
|
161
|
-
**Verification**: [How to verify rollback succeeded]
|
|
162
|
-
**Data Recovery**: [How to restore data if modified]
|
|
176
|
+
**Verification**: [How to verify rollback succeeded]
|
|
177
|
+
**Data Recovery**: [How to restore data if modified]
|
|
163
178
|
|
|
164
179
|
## Phase 2: [Phase Name] Rollback
|
|
180
|
+
|
|
165
181
|
[Same structure for each phase]
|
|
166
182
|
```
|
|
167
183
|
|
|
168
184
|
**Rollback Categories**:
|
|
169
185
|
|
|
170
|
-
| Category
|
|
171
|
-
|
|
172
|
-
| **Code Rollback**
|
|
173
|
-
| **Data Rollback**
|
|
174
|
-
| **Config Rollback**
|
|
175
|
-
| **Infrastructure Rollback** | Platform migration
|
|
186
|
+
| Category | Example | Procedure |
|
|
187
|
+
| --------------------------- | ------------------- | ------------------------------------------- |
|
|
188
|
+
| **Code Rollback** | Framework upgrade | `git revert [commit]`, redeploy |
|
|
189
|
+
| **Data Rollback** | Schema migration | Restore from backup, revert migrations |
|
|
190
|
+
| **Config Rollback** | Environment changes | Restore old config files, restart |
|
|
191
|
+
| **Infrastructure Rollback** | Platform migration | Switch DNS back, restore old infrastructure |
|
|
176
192
|
|
|
177
193
|
**Rollback Testing Strategy**:
|
|
194
|
+
|
|
178
195
|
- **Non-Destructive Test**: Test rollback in non-prod first
|
|
179
196
|
- **Documented Steps**: Exact commands/procedures
|
|
180
197
|
- **Validation Criteria**: How to verify rollback succeeded
|
|
@@ -202,6 +219,7 @@ If success: Continue to Phase 2
|
|
|
202
219
|
**Definition**: Run old and new systems in parallel, gradually shift traffic from old to new
|
|
203
220
|
|
|
204
221
|
**Pattern**:
|
|
222
|
+
|
|
205
223
|
```
|
|
206
224
|
Old System (100% traffic) β Dual-Run (Old + New in parallel) β New System (100% traffic)
|
|
207
225
|
β
|
|
@@ -213,6 +231,7 @@ Old System (100% traffic) β Dual-Run (Old + New in parallel) β New System (1
|
|
|
213
231
|
### When to Use
|
|
214
232
|
|
|
215
233
|
**Strong Indicators**:
|
|
234
|
+
|
|
216
235
|
- Zero-downtime requirement (24/7 systems)
|
|
217
236
|
- Data migration with live writes during migration
|
|
218
237
|
- Need to compare old vs new behavior in production
|
|
@@ -220,6 +239,7 @@ Old System (100% traffic) β Dual-Run (Old + New in parallel) β New System (1
|
|
|
220
239
|
- Regulatory requirement for parallel validation
|
|
221
240
|
|
|
222
241
|
**Avoid If**:
|
|
242
|
+
|
|
223
243
|
- Systems can't coexist (e.g., Vue 2 and Vue 3 in same app)
|
|
224
244
|
- Data synchronization too complex
|
|
225
245
|
- Cost of running both systems prohibitive
|
|
@@ -230,44 +250,52 @@ Old System (100% traffic) β Dual-Run (Old + New in parallel) β New System (1
|
|
|
230
250
|
**Dual-Run Phases**:
|
|
231
251
|
|
|
232
252
|
**Phase 1: Setup Dual Environment**
|
|
253
|
+
|
|
233
254
|
- Deploy new system alongside old
|
|
234
255
|
- Configure routing/load balancer for split traffic
|
|
235
256
|
- Set up data synchronization mechanism
|
|
236
257
|
|
|
237
258
|
**Phase 2: Shadow Mode** (new system receives traffic but doesn't affect users)
|
|
259
|
+
|
|
238
260
|
- 100% traffic to old system
|
|
239
261
|
- Duplicate writes to new system (shadow)
|
|
240
262
|
- Compare old vs new results
|
|
241
263
|
- Identify discrepancies, fix new system
|
|
242
264
|
|
|
243
265
|
**Phase 3: Gradual Cutover**
|
|
266
|
+
|
|
244
267
|
- 10% traffic β new system (monitor closely)
|
|
245
268
|
- 50% traffic β new system (A/B test)
|
|
246
269
|
- 100% traffic β new system (full cutover)
|
|
247
270
|
|
|
248
271
|
**Phase 4: Old System Decommission**
|
|
272
|
+
|
|
249
273
|
- Keep old system running for 7-30 days (rollback safety net)
|
|
250
274
|
- After validation period, decommission old system
|
|
251
275
|
|
|
252
276
|
**Dual-Run Plan Structure** (`planning/dual-run-plan.md`):
|
|
277
|
+
|
|
253
278
|
```markdown
|
|
254
279
|
# Dual-Run Plan: [Migration Name]
|
|
255
280
|
|
|
256
281
|
## Synchronization Strategy
|
|
282
|
+
|
|
257
283
|
**Sync Direction**: Old β New | Bidirectional | New β Old
|
|
258
284
|
**Sync Mechanism**: [Database replication | Message queue | API calls]
|
|
259
285
|
**Sync Frequency**: [Real-time | Batch every X minutes]
|
|
260
286
|
**Conflict Resolution**: [Last-write-wins | Manual resolution | Application logic]
|
|
261
287
|
|
|
262
288
|
## Cutover Plan
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
|
266
|
-
|
|
|
267
|
-
|
|
|
268
|
-
|
|
|
289
|
+
|
|
290
|
+
| Phase | Old Traffic % | New Traffic % | Duration | Success Criteria |
|
|
291
|
+
| ------ | ------------- | ------------- | -------- | ------------------------------ |
|
|
292
|
+
| Shadow | 100% | 0% (shadow) | 3-7 days | No errors in new system |
|
|
293
|
+
| Pilot | 90% | 10% | 3-7 days | Error rate <0.1% in new |
|
|
294
|
+
| Ramp | 50% | 50% | 3-7 days | Performance metrics equivalent |
|
|
295
|
+
| Full | 0% | 100% | - | All users migrated |
|
|
269
296
|
|
|
270
297
|
## Monitoring
|
|
298
|
+
|
|
271
299
|
- **Key Metrics**: [Response time, error rate, data consistency]
|
|
272
300
|
- **Alerting**: [Thresholds that trigger rollback]
|
|
273
301
|
- **Comparison Dashboards**: [Old vs new side-by-side]
|
|
@@ -275,12 +303,12 @@ Old System (100% traffic) β Dual-Run (Old + New in parallel) β New System (1
|
|
|
275
303
|
|
|
276
304
|
**Data Synchronization Patterns**:
|
|
277
305
|
|
|
278
|
-
| Pattern
|
|
279
|
-
|
|
280
|
-
| **Write-Through**
|
|
281
|
-
| **Replication**
|
|
282
|
-
| **Event Streaming**
|
|
283
|
-
| **Dual-Write + Reconciliation** | Write to both, periodic reconciliation job
|
|
306
|
+
| Pattern | Description | Use When |
|
|
307
|
+
| ------------------------------- | ---------------------------------------------- | ----------------------------------------------- |
|
|
308
|
+
| **Write-Through** | Writes go to both old and new | Gradual migration, data validation |
|
|
309
|
+
| **Replication** | Database-level replication (one-way) | Read-heavy systems, database migrations |
|
|
310
|
+
| **Event Streaming** | Publish changes to message queue, both consume | Event-driven architectures |
|
|
311
|
+
| **Dual-Write + Reconciliation** | Write to both, periodic reconciliation job | Complex data models, conflict resolution needed |
|
|
284
312
|
|
|
285
313
|
### Benefits
|
|
286
314
|
|
|
@@ -333,17 +361,20 @@ START: What's the migration scope?
|
|
|
333
361
|
### Common Combinations
|
|
334
362
|
|
|
335
363
|
**Incremental + Rollback** (Most Common):
|
|
364
|
+
|
|
336
365
|
- Break into phases (Incremental)
|
|
337
366
|
- Document rollback for each phase (Rollback)
|
|
338
367
|
- Use for: Most medium-large migrations
|
|
339
368
|
|
|
340
369
|
**Incremental + Rollback + Dual-Run** (Maximum Safety):
|
|
370
|
+
|
|
341
371
|
- Break into phases (Incremental)
|
|
342
372
|
- Document rollback (Rollback)
|
|
343
373
|
- Run old/new in parallel (Dual-Run)
|
|
344
374
|
- Use for: Critical systems, data migrations, zero-downtime requirements
|
|
345
375
|
|
|
346
376
|
**Example - Database Migration (MySQL β PostgreSQL)**:
|
|
377
|
+
|
|
347
378
|
```
|
|
348
379
|
Strategy: Incremental + Rollback + Dual-Run
|
|
349
380
|
|
|
@@ -370,12 +401,12 @@ Phase 5: Decommission MySQL
|
|
|
370
401
|
|
|
371
402
|
### Strategy Complexity Matrix
|
|
372
403
|
|
|
373
|
-
| Combination
|
|
374
|
-
|
|
375
|
-
| Incremental only
|
|
376
|
-
| Incremental + Rollback
|
|
377
|
-
| Incremental + Dual-Run
|
|
378
|
-
| Incremental + Rollback + Dual-Run | Very High
|
|
404
|
+
| Combination | Complexity | Duration Overhead | Risk Reduction |
|
|
405
|
+
| --------------------------------- | ---------- | ----------------- | -------------- |
|
|
406
|
+
| Incremental only | Low | +20-40% | Medium |
|
|
407
|
+
| Incremental + Rollback | Medium | +30-50% | High |
|
|
408
|
+
| Incremental + Dual-Run | High | +50-80% | High |
|
|
409
|
+
| Incremental + Rollback + Dual-Run | Very High | +80-120% | Very High |
|
|
379
410
|
|
|
380
411
|
**Guidance**: Choose simplest strategy that adequately mitigates your risks. Over-engineering increases complexity without proportional benefit.
|
|
381
412
|
|
|
@@ -384,6 +415,7 @@ Phase 5: Decommission MySQL
|
|
|
384
415
|
## Summary
|
|
385
416
|
|
|
386
417
|
**Key Takeaways**:
|
|
418
|
+
|
|
387
419
|
1. **Incremental** = Lower risk through phased execution
|
|
388
420
|
2. **Rollback** = Safety net for critical systems
|
|
389
421
|
3. **Dual-Run** = Zero downtime for live systems
|
|
@@ -391,6 +423,7 @@ Phase 5: Decommission MySQL
|
|
|
391
423
|
5. **Document procedures** before executing migration
|
|
392
424
|
|
|
393
425
|
**References in SKILL.md**:
|
|
426
|
+
|
|
394
427
|
- Phase 2 (Specification): Select migration strategy
|
|
395
428
|
- Phase 3 (Planning): Structure implementation plan by strategy
|
|
396
429
|
- Phase 4 (Execution): Execute according to selected strategy
|