Migration Engineering
Plan and execute safe migrations across system boundaries. A migration is any
change that moves data, schemas, interfaces, infrastructure, or services from a
current state to a target state while preserving correctness, availability, and
recoverability during the transition.
This skill owns the cross-system migration method — compatibility design,
staging, reconciliation, cutover, recovery, and deprecation. It does not own the
implementation details of any single technology or subsystem; those belong to
specialist skills.
When to use
Load this skill when the task involves:
| Trigger |
Example |
| A schema change that must not break existing readers or writers |
"Add a non-nullable column to a high-traffic table with zero downtime" |
| A data migration between stores or representations |
"Migrate user profiles from Postgres to a dedicated service with its own database" |
| An API version migration with a deprecation window |
"Move consumers from v1 REST to v2 GraphQL over six months" |
| An infrastructure or service migration |
"Shift a workload from self-hosted VMs to a managed platform across regions" |
| A cross-system change requiring dual-running and reconciliation |
"Replace the legacy billing engine with a new one while keeping both in sync" |
| Planning cutover, rollback, or irreversible steps for a migration |
"Define the recovery strategy for the warehouse schema migration" |
When not to use
- Single-technology quick fixes — if the change is confined to one system
with no compatibility window, no dual-running, and no cross-system coordination,
use the relevant specialist skill directly (e.g., data-engineering
for a simple DDL change, api-design-and-evolution
for a single-endpoint deprecation).
- Tool-specific how-to guides — this skill provides the method, not
vendor-specific instructions. It does not prescribe one migration technology, one
database engine, one API gateway, or one infrastructure platform.
- Migrations without a system boundary — in-place refactors, code rewrites
that don't cross a data or interface boundary, or single-service configuration
changes are not migration-engineering scope.
- Guaranteeing rollback — this skill does not claim rollback is always possible.
Some migrations include steps that are irreversible; the method requires
identifying those steps explicitly and planning acceptance, communication, and
contingency rather than implying a false safety net.
Migration type classification
Migrations differ materially in their compatibility, correctness, and recovery
characteristics. Classify the migration before selecting patterns.
Schema migration
A change to a database schema, message format, or serialization contract.
Compatibility: forward compatibility (old readers tolerate new writers) and
backward compatibility (new readers tolerate old writers) are the central design
constraints. Correctness: verified by dual-reading or shadow-traffic
comparison — the new schema must produce equivalent results for the same input.
Rollback: possible if the schema change is purely additive (expand phase);
destructive changes (drop column, rename, change type) require a multi-step
expand/contract sequence with a compatibility window where both old and new
schemas coexist before the old is removed.
Data migration
Movement or transformation of data between stores, representations, or
ownership boundaries. Compatibility: the old and new data representations
must coexist during the transition; consumers may read from either or both.
The backfill strategy (full, incremental, or streaming) determines how long
the dual-read window lasts. Correctness: requires reconciliation — a
record-level or aggregate comparison between source and target to verify
completeness and accuracy before cutover. Rollback: depends on whether the
old store remains writable and current during the transition. If the old store
is kept in sync (dual-write), rollback is reversing the cutover. If the old
store was dropped or made read-only, rollback requires restore from backup.
API migration
A change to the contract between a provider and its consumers — versioning,
protocol, schema, or endpoint topology. Compatibility: defined by the
provider's compatibility policy (e.g., "additive changes are backward-compatible;
removals require a deprecation window"). The compatibility window is measured
in consumer migration time — how long consumers need to move from the old
interface to the new one. Correctness: verified by consumer-side testing,
shadow-traffic replay, and error-rate comparison between old and new interfaces.
Rollback: the old interface must remain available and supported throughout
the deprecation window; rolling back means reverting the deprecation notice
and keeping the old interface live. Once the old interface is removed, rollback
requires deploying it again — a restore or redeploy path, not a simple reversal.
Infrastructure and service migration
Moving workloads, services, or infrastructure between environments, platforms,
or ownership domains. Compatibility: network, identity, and data-plane
continuity must be maintained. DNS, certificates, service discovery, and
security boundaries are the primary compatibility surface. Correctness:
verified by traffic shifting, canary deployment, and service-level objective
(SLO) monitoring during the transition. Rollback: depends on the migration
topology. Lift-and-shift with the old environment preserved is reversible;
in-place replacement without a preserved old environment may be irreversible
or require a full redeploy (roll-forward/restore).
Core workflow
1. Classify and scope the migration
Determine which migration type(s) apply. A real-world migration often combines
types — for example, a service extraction includes both a data migration and an
API migration. Document:
- The current state, target state, and system boundary being crossed.
- The migration type(s) and their compatibility requirements.
- Which systems, teams, and consumers are affected.
2. Design the expand/contract sequence
The expand/contract pattern is the foundational safe-migration primitive:
- Expand — add the new interface, schema, or system while the old one
continues to serve. Both old and new coexist. This phase is
backward-compatible: existing consumers are unaffected.
- Compatibility window — a defined period (duration or condition) during
which both old and new are available. Consumers, replicas, and dependent
systems are migrated to the new interface during this window. The window
must have an explicit end condition — a date, a metric threshold (e.g.,
"zero traffic on old endpoint for 7 days"), or an event (e.g., "all
registered consumers confirmed migration").
- Dual-running or parallel operation — for data and service migrations,
both systems operate concurrently. Writes may be dual-written; reads may be
dual-read with comparison. The dual-running period provides the evidence
needed for the cutover decision.
- Contract — remove the old interface, schema, or system after the
compatibility window closes and verification confirms the new system is
correct and complete. The contract phase may include data cleanup, code
removal, and decommissioning.
Not every migration uses all four phases. A simple additive schema change may
use only expand (phase 1) — the old schema keeps working, the new column is
added, and no contract phase is needed. A complex service extraction uses all
four.
3. Plan the backfill and reconciliation
For data migrations, design the backfill strategy:
- Full backfill — copy all existing data from source to target in a
single or batched operation before enabling dual-writes.
- Incremental backfill — copy data in pages or segments; useful for
large datasets where a full backfill would exceed the available window.
- Streaming backfill — capture changes from the source via change-data-
capture (CDC) or event log and apply them to the target continuously.
Reconciliation — how source and target are verified to match:
| Reconciliation dimension |
Description |
| Completeness |
Every record in the source exists in the target (row count, key-space coverage). |
| Accuracy |
For a sample or full population, field-level values match within tolerance. |
| Timeliness |
The target lag behind the source is within the defined threshold. |
| Consistency |
Related records (e.g., orders and line items) are consistent in the target. |
Reconciliation runs continuously during the compatibility window and must pass
before cutover. A reconciliation failure is a stop condition — the cutover
must not proceed.
4. Design the cutover
The cutover is the point where the new system becomes the source of truth.
Design for:
- Cutover procedure — the exact sequence of operations, automated where
possible, with pre-conditions and post-conditions.
- Cutover window — the expected duration, the acceptable downtime (if any),
and the communication plan.
- Interruption points — where the cutover can be paused or reversed.
A cutover that has no interruption points is a risk to flag explicitly.
- Observability during cutover — what metrics, logs, and alerts confirm
the cutover is proceeding correctly, and what signals trigger abort.
5. Define recovery paths
Every migration step has a recovery classification. Use exactly these four
categories — never conflate them:
| Recovery path |
Definition |
When it applies |
| Rollback |
Reverse to the prior state by undoing the change. |
Additive schema changes, feature-flag-controlled code paths, dual-write data migrations where the old store is still current. |
| Roll-forward |
Fix forward in the new state — the old state is no longer reachable, but a fix can be deployed to the new system. |
Bugs discovered after cutover where the old system has been decommissioned; configuration errors in the new system that can be corrected without reverting. |
| Restore |
Restore the prior state from a backup or snapshot. |
The old system was taken offline and cannot be simply re-enabled; a backup exists and a restore procedure is tested. |
| Irreversible |
Reversal is impossible — the change cannot be undone at any level. The migration plan must include acceptance criteria, explicit stakeholder communication, and a contingency plan (e.g., "if the migration fails, we will rebuild from the source of truth" or "we accept data loss within this bounded scope"). |
Destructive operations with no backup, physical hardware decommissioning, cryptographic key rotation where old keys are destroyed, third-party data exports with no recall mechanism. |
Irreversible steps require explicit acknowledgment before execution. The
migration plan must distinguish "we have chosen not to build a reversal path"
from "reversal is physically impossible." Both require acceptance, communication,
and contingency — never silent assumption.
6. Plan deprecation and cleanup
After cutover is complete and verified:
- Deprecation window — how long the old system remains available in
read-only or degraded mode before removal.
- Consumer migration tracking — which consumers still depend on the old
interface, and when they are expected to migrate.
- Cleanup — removal of old schemas, code paths, feature flags,
configuration, credentials, and infrastructure.
- Communication — notifications to consumers, stakeholders, and operators
at each stage: compatibility window opens, cutover scheduled, cutover
complete, deprecation window closing, old system removed.
7. Verify and close
Before declaring the migration complete:
- Correctness evidence — reconciliation reports, consumer verification,
error-rate comparisons, SLO compliance data.
- Observability confirmation — migration-specific dashboards and alerts
show the expected post-migration steady state.
- Recovery verification — rollback, roll-forward, or restore procedures
were tested (where applicable); irreversible steps were acknowledged.
- Owner sign-off — the accountable owner for each phase confirms completion.
Structured planning fields
Every migration plan must address these fields. They may appear as checklist
items, template fields, table columns, or labeled section headers — not only
as prose.
Reconciliation
| Field |
Question to answer |
| Strategy |
Full, incremental, or streaming reconciliation? |
| Frequency |
Continuous, hourly, daily, or pre-cutover only? |
| Coverage |
All records or a statistical sample? |
| Tolerance |
What divergence is acceptable? |
| Failure action |
Stop, alert, or automatically re-reconcile? |
Correctness evidence
| Field |
Question to answer |
| Comparison method |
Dual-read, shadow-traffic, consumer-side test, or synthetic validation? |
| Pass criteria |
What measurements confirm correctness (e.g., "100% record match," "error rate < 0.01%," "p95 latency within 10% of baseline")? |
| Evidence artifact |
Where is the evidence recorded (dashboard link, test report, reconciliation log)? |
Observability
| Field |
Question to answer |
| Progress metrics |
Bytes migrated, records processed, consumers cut over? |
| Anomaly signals |
Error-rate spikes, latency degradation, reconciliation drift? |
| Dashboards and alerts |
Where are migration-specific metrics visible, and who is on-call? |
Customer impact
| Field |
Question to answer |
| Visible change |
What does the customer experience during each phase? |
| Downtime |
Is any downtime expected, and how is it communicated? |
| Performance |
Could latency, throughput, or error rates change during the migration? |
| Support |
How are customer issues triaged and escalated during the migration window? |
Ownership
| Field |
Question to answer |
| Migration lead |
Who owns the overall migration plan and its execution? |
| Phase owners |
Who is accountable for expand, dual-running, cutover, deprecation, and cleanup? |
| Communication owner |
Who owns stakeholder and consumer notifications? |
| Escalation path |
Who is the decision-maker if the migration must be paused, rolled back, or abandoned? |
Loading guide
Load references and templates on demand — do not load everything at once.
| File |
Load when |
| references/discovery-brief.md |
You need to understand how migration concepts map across sibling skills and where this skill's boundaries are |
| references/compatibility-patterns.md |
Designing forward/backward compatibility for a specific migration type |
| references/recovery-classification.md |
Classifying recovery paths (rollback, roll-forward, restore, irreversible) for a concrete migration step |
| templates/migration-plan.md |
Producing a complete migration plan with all structured fields |
| templates/compatibility-matrix.md |
Building a compatibility matrix for a multi-consumer migration |
| templates/reconciliation-plan.md |
Designing a reconciliation strategy for a data migration |
| templates/cutover-and-recovery-record.md |
Recording cutover procedures, recovery paths, and irreversible-step acknowledgments |
Specialist routing
Migration engineering composes domain specialists — it never duplicates their
methodology. Route implementation details to the skill that owns the subsystem.
| Migration concern |
Route to |
| API contract design, versioning policy, deprecation mechanics |
api-design-and-evolution |
| Database schema evolution, ETL/ELT pipeline design, backfill operations |
data-engineering |
| Infrastructure provisioning, service networking, secret management during migration |
platform-engineering |
| Release sequencing, progressive delivery, canary rollout, artifact promotion |
release-engineering |
| SLO definition, error budgets, operational readiness, incident response during migration |
site-reliability-engineering |
| Work breakdown, dependency mapping, critical path, ownership assignment |
implementation-planning |
| Threat modeling, security review of migration surface, auth boundary changes |
secure-software-engineering |
| Test strategy, regression coverage, verification gates during migration |
qa-methodology |
| Verification verdicts, evidence standards, boundary testing |
verification-methodology |
Routing to same-wave and future skills
Migration evidence — reconciliation reports, cutover records, recovery-path
classifications, and deprecation tracking — feeds production-readiness
assessments. The production-readiness skill consumes migration plans as evidence
that a service is ready for production operation.
The production-excellence bundle composes migration-engineering alongside
production-readiness, resilience-and-recovery, capacity-and-cost-engineering,
incident-learning, and privacy-engineering. Migration-engineering contributes
the safe-change dimension to the production-excellence lifecycle.
Routing to product-lifecycle skills
When a migration is triggered by a feature retirement or product sunset,
coordinate with product-lifecycle-learning for the retirement decision
record, deprecation timeline, and customer-treatment plan.
1---2name: migration-engineering3description: Plan and execute safe cross-system migrations — schema, data, API, infrastructure, and service — with compatibility windows, dual-running, backfills, reconciliation, cutover, deprecation, and cleanup. Covers expand/contract, reversible and irreversible recovery paths, migration observability, correctness evidence, ownership, and customer impact. Do not use for single-technology quick fixes, tool-specific how-to guides, or migrations whose scope does not cross a system boundary; do not prescribe one migration technology or claim rollback is always possible.4license: MIT5---6
7# Migration Engineering
8
9Plan and execute safe migrations across system boundaries. A migration is any
10change that moves data, schemas, interfaces, infrastructure, or services from a
11current state to a target state while preserving correctness, availability, and
12recoverability during the transition.
13
14This skill owns the **cross-system migration method** — compatibility design,
15staging, reconciliation, cutover, recovery, and deprecation. It does not own the
16implementation details of any single technology or subsystem; those belong to
17specialist skills.
18
19## When to use
20
21Load this skill when the task involves:
22
23| Trigger | Example |
24|---|---|
25| A schema change that must not break existing readers or writers | "Add a non-nullable column to a high-traffic table with zero downtime" |
26| A data migration between stores or representations | "Migrate user profiles from Postgres to a dedicated service with its own database" |
27| An API version migration with a deprecation window | "Move consumers from v1 REST to v2 GraphQL over six months" |
28| An infrastructure or service migration | "Shift a workload from self-hosted VMs to a managed platform across regions" |
29| A cross-system change requiring dual-running and reconciliation | "Replace the legacy billing engine with a new one while keeping both in sync" |
30| Planning cutover, rollback, or irreversible steps for a migration | "Define the recovery strategy for the warehouse schema migration" |
31
32## When not to use
33
34- **Single-technology quick fixes** — if the change is confined to one system
35 with no compatibility window, no dual-running, and no cross-system coordination,
36 use the relevant specialist skill directly (e.g., [data-engineering](../data-engineering/SKILL.md)
37 for a simple DDL change, [api-design-and-evolution](../api-design-and-evolution/SKILL.md)
38 for a single-endpoint deprecation).
39- **Tool-specific how-to guides** — this skill provides the method, not
40 vendor-specific instructions. It does not prescribe one migration technology, one
41 database engine, one API gateway, or one infrastructure platform.
42- **Migrations without a system boundary** — in-place refactors, code rewrites
43 that don't cross a data or interface boundary, or single-service configuration
44 changes are not migration-engineering scope.
45- **Guaranteeing rollback** — this skill does not claim rollback is always possible.
46 Some migrations include steps that are irreversible; the method requires
47 identifying those steps explicitly and planning acceptance, communication, and
48 contingency rather than implying a false safety net.
49
50## Migration type classification
51
52Migrations differ materially in their compatibility, correctness, and recovery
53characteristics. Classify the migration before selecting patterns.
54
55### Schema migration
56
57A change to a database schema, message format, or serialization contract.
58**Compatibility:** forward compatibility (old readers tolerate new writers) and
59backward compatibility (new readers tolerate old writers) are the central design
60constraints. **Correctness:** verified by dual-reading or shadow-traffic
61comparison — the new schema must produce equivalent results for the same input.
62**Rollback:** possible if the schema change is purely additive (expand phase);
63destructive changes (drop column, rename, change type) require a multi-step
64expand/contract sequence with a compatibility window where both old and new
65schemas coexist before the old is removed.
66
67### Data migration
68
69Movement or transformation of data between stores, representations, or
70ownership boundaries. **Compatibility:** the old and new data representations
71must coexist during the transition; consumers may read from either or both.
72The backfill strategy (full, incremental, or streaming) determines how long
73the dual-read window lasts. **Correctness:** requires reconciliation — a
74record-level or aggregate comparison between source and target to verify
75completeness and accuracy before cutover. **Rollback:** depends on whether the
76old store remains writable and current during the transition. If the old store
77is kept in sync (dual-write), rollback is reversing the cutover. If the old
78store was dropped or made read-only, rollback requires restore from backup.
79
80### API migration
81
82A change to the contract between a provider and its consumers — versioning,
83protocol, schema, or endpoint topology. **Compatibility:** defined by the
84provider's compatibility policy (e.g., "additive changes are backward-compatible;
85removals require a deprecation window"). The compatibility window is measured
86in consumer migration time — how long consumers need to move from the old
87interface to the new one. **Correctness:** verified by consumer-side testing,
88shadow-traffic replay, and error-rate comparison between old and new interfaces.
89**Rollback:** the old interface must remain available and supported throughout
90the deprecation window; rolling back means reverting the deprecation notice
91and keeping the old interface live. Once the old interface is removed, rollback
92requires deploying it again — a restore or redeploy path, not a simple reversal.
93
94### Infrastructure and service migration
95
96Moving workloads, services, or infrastructure between environments, platforms,
97or ownership domains. **Compatibility:** network, identity, and data-plane
98continuity must be maintained. DNS, certificates, service discovery, and
99security boundaries are the primary compatibility surface. **Correctness:**
100verified by traffic shifting, canary deployment, and service-level objective
101(SLO) monitoring during the transition. **Rollback:** depends on the migration
102topology. Lift-and-shift with the old environment preserved is reversible;
103in-place replacement without a preserved old environment may be irreversible
104or require a full redeploy (roll-forward/restore).
105
106## Core workflow
107
108### 1. Classify and scope the migration
109
110Determine which migration type(s) apply. A real-world migration often combines
111types — for example, a service extraction includes both a data migration and an
112API migration. Document:
113- The current state, target state, and system boundary being crossed.
114- The migration type(s) and their compatibility requirements.
115- Which systems, teams, and consumers are affected.
116
117### 2. Design the expand/contract sequence
118
119The **expand/contract pattern** is the foundational safe-migration primitive:
120
1211. **Expand** — add the new interface, schema, or system while the old one
122 continues to serve. Both old and new coexist. This phase is
123 backward-compatible: existing consumers are unaffected.
1242. **Compatibility window** — a defined period (duration or condition) during
125 which both old and new are available. Consumers, replicas, and dependent
126 systems are migrated to the new interface during this window. The window
127 must have an explicit end condition — a date, a metric threshold (e.g.,
128 "zero traffic on old endpoint for 7 days"), or an event (e.g., "all
129 registered consumers confirmed migration").
1303. **Dual-running or parallel operation** — for data and service migrations,
131 both systems operate concurrently. Writes may be dual-written; reads may be
132 dual-read with comparison. The dual-running period provides the evidence
133 needed for the cutover decision.
1344. **Contract** — remove the old interface, schema, or system after the
135 compatibility window closes and verification confirms the new system is
136 correct and complete. The contract phase may include data cleanup, code
137 removal, and decommissioning.
138
139Not every migration uses all four phases. A simple additive schema change may
140use only expand (phase 1) — the old schema keeps working, the new column is
141added, and no contract phase is needed. A complex service extraction uses all
142four.
143
144### 3. Plan the backfill and reconciliation
145
146For data migrations, design the backfill strategy:
147
148- **Full backfill** — copy all existing data from source to target in a
149 single or batched operation before enabling dual-writes.
150- **Incremental backfill** — copy data in pages or segments; useful for
151 large datasets where a full backfill would exceed the available window.
152- **Streaming backfill** — capture changes from the source via change-data-
153 capture (CDC) or event log and apply them to the target continuously.
154
155**Reconciliation** — how source and target are verified to match:
156
157| Reconciliation dimension | Description |
158|---|---|
159| **Completeness** | Every record in the source exists in the target (row count, key-space coverage). |
160| **Accuracy** | For a sample or full population, field-level values match within tolerance. |
161| **Timeliness** | The target lag behind the source is within the defined threshold. |
162| **Consistency** | Related records (e.g., orders and line items) are consistent in the target. |
163
164Reconciliation runs continuously during the compatibility window and must pass
165before cutover. A reconciliation failure is a **stop condition** — the cutover
166must not proceed.
167
168### 4. Design the cutover
169
170The cutover is the point where the new system becomes the source of truth.
171Design for:
172
173- **Cutover procedure** — the exact sequence of operations, automated where
174 possible, with pre-conditions and post-conditions.
175- **Cutover window** — the expected duration, the acceptable downtime (if any),
176 and the communication plan.
177- **Interruption points** — where the cutover can be paused or reversed.
178 A cutover that has no interruption points is a risk to flag explicitly.
179- **Observability during cutover** — what metrics, logs, and alerts confirm
180 the cutover is proceeding correctly, and what signals trigger abort.
181
182### 5. Define recovery paths
183
184Every migration step has a recovery classification. Use exactly these four
185categories — never conflate them:
186
187| Recovery path | Definition | When it applies |
188|---|---|---|
189| **Rollback** | Reverse to the prior state by undoing the change. | Additive schema changes, feature-flag-controlled code paths, dual-write data migrations where the old store is still current. |
190| **Roll-forward** | Fix forward in the new state — the old state is no longer reachable, but a fix can be deployed to the new system. | Bugs discovered after cutover where the old system has been decommissioned; configuration errors in the new system that can be corrected without reverting. |
191| **Restore** | Restore the prior state from a backup or snapshot. | The old system was taken offline and cannot be simply re-enabled; a backup exists and a restore procedure is tested. |
192| **Irreversible** | Reversal is impossible — the change cannot be undone at any level. The migration plan must include acceptance criteria, explicit stakeholder communication, and a contingency plan (e.g., "if the migration fails, we will rebuild from the source of truth" or "we accept data loss within this bounded scope"). | Destructive operations with no backup, physical hardware decommissioning, cryptographic key rotation where old keys are destroyed, third-party data exports with no recall mechanism. |
193
194**Irreversible steps require explicit acknowledgment before execution.** The
195migration plan must distinguish "we have chosen not to build a reversal path"
196from "reversal is physically impossible." Both require acceptance, communication,
197and contingency — never silent assumption.
198
199### 6. Plan deprecation and cleanup
200
201After cutover is complete and verified:
202
203- **Deprecation window** — how long the old system remains available in
204 read-only or degraded mode before removal.
205- **Consumer migration tracking** — which consumers still depend on the old
206 interface, and when they are expected to migrate.
207- **Cleanup** — removal of old schemas, code paths, feature flags,
208 configuration, credentials, and infrastructure.
209- **Communication** — notifications to consumers, stakeholders, and operators
210 at each stage: compatibility window opens, cutover scheduled, cutover
211 complete, deprecation window closing, old system removed.
212
213### 7. Verify and close
214
215Before declaring the migration complete:
216
217- **Correctness evidence** — reconciliation reports, consumer verification,
218 error-rate comparisons, SLO compliance data.
219- **Observability confirmation** — migration-specific dashboards and alerts
220 show the expected post-migration steady state.
221- **Recovery verification** — rollback, roll-forward, or restore procedures
222 were tested (where applicable); irreversible steps were acknowledged.
223- **Owner sign-off** — the accountable owner for each phase confirms completion.
224
225## Structured planning fields
226
227Every migration plan must address these fields. They may appear as checklist
228items, template fields, table columns, or labeled section headers — not only
229as prose.
230
231### Reconciliation
232
233| Field | Question to answer |
234|---|---|
235| Strategy | Full, incremental, or streaming reconciliation? |
236| Frequency | Continuous, hourly, daily, or pre-cutover only? |
237| Coverage | All records or a statistical sample? |
238| Tolerance | What divergence is acceptable? |
239| Failure action | Stop, alert, or automatically re-reconcile? |
240
241### Correctness evidence
242
243| Field | Question to answer |
244|---|---|
245| Comparison method | Dual-read, shadow-traffic, consumer-side test, or synthetic validation? |
246| Pass criteria | What measurements confirm correctness (e.g., "100% record match," "error rate < 0.01%," "p95 latency within 10% of baseline")? |
247| Evidence artifact | Where is the evidence recorded (dashboard link, test report, reconciliation log)? |
248
249### Observability
250
251| Field | Question to answer |
252|---|---|
253| Progress metrics | Bytes migrated, records processed, consumers cut over? |
254| Anomaly signals | Error-rate spikes, latency degradation, reconciliation drift? |
255| Dashboards and alerts | Where are migration-specific metrics visible, and who is on-call? |
256
257### Customer impact
258
259| Field | Question to answer |
260|---|---|
261| Visible change | What does the customer experience during each phase? |
262| Downtime | Is any downtime expected, and how is it communicated? |
263| Performance | Could latency, throughput, or error rates change during the migration? |
264| Support | How are customer issues triaged and escalated during the migration window? |
265
266### Ownership
267
268| Field | Question to answer |
269|---|---|
270| Migration lead | Who owns the overall migration plan and its execution? |
271| Phase owners | Who is accountable for expand, dual-running, cutover, deprecation, and cleanup? |
272| Communication owner | Who owns stakeholder and consumer notifications? |
273| Escalation path | Who is the decision-maker if the migration must be paused, rolled back, or abandoned? |
274
275## Loading guide
276
277Load references and templates on demand — do not load everything at once.
278
279| File | Load when |
280|---|---|
281| [references/discovery-brief.md](references/discovery-brief.md) | You need to understand how migration concepts map across sibling skills and where this skill's boundaries are |
282| [references/compatibility-patterns.md](references/compatibility-patterns.md) | Designing forward/backward compatibility for a specific migration type |
283| [references/recovery-classification.md](references/recovery-classification.md) | Classifying recovery paths (rollback, roll-forward, restore, irreversible) for a concrete migration step |
284| [templates/migration-plan.md](templates/migration-plan.md) | Producing a complete migration plan with all structured fields |
285| [templates/compatibility-matrix.md](templates/compatibility-matrix.md) | Building a compatibility matrix for a multi-consumer migration |
286| [templates/reconciliation-plan.md](templates/reconciliation-plan.md) | Designing a reconciliation strategy for a data migration |
287| [templates/cutover-and-recovery-record.md](templates/cutover-and-recovery-record.md) | Recording cutover procedures, recovery paths, and irreversible-step acknowledgments |
288
289## Specialist routing
290
291Migration engineering composes domain specialists — it never duplicates their
292methodology. Route implementation details to the skill that owns the subsystem.
293
294| Migration concern | Route to |
295|---|---|
296| API contract design, versioning policy, deprecation mechanics | [api-design-and-evolution](../api-design-and-evolution/SKILL.md) |
297| Database schema evolution, ETL/ELT pipeline design, backfill operations | [data-engineering](../data-engineering/SKILL.md) |
298| Infrastructure provisioning, service networking, secret management during migration | [platform-engineering](../platform-engineering/SKILL.md) |
299| Release sequencing, progressive delivery, canary rollout, artifact promotion | [release-engineering](../release-engineering/SKILL.md) |
300| SLO definition, error budgets, operational readiness, incident response during migration | [site-reliability-engineering](../site-reliability-engineering/SKILL.md) |
301| Work breakdown, dependency mapping, critical path, ownership assignment | [implementation-planning](../implementation-planning/SKILL.md) |
302| Threat modeling, security review of migration surface, auth boundary changes | [secure-software-engineering](../secure-software-engineering/SKILL.md) |
303| Test strategy, regression coverage, verification gates during migration | [qa-methodology](../qa-methodology/SKILL.md) |
304| Verification verdicts, evidence standards, boundary testing | [verification-methodology](../verification-methodology/SKILL.md) |
305
306### Routing to same-wave and future skills
307
308Migration evidence — reconciliation reports, cutover records, recovery-path
309classifications, and deprecation tracking — feeds **production-readiness**
310assessments. The production-readiness skill consumes migration plans as evidence
311that a service is ready for production operation.
312
313The **production-excellence** bundle composes migration-engineering alongside
314production-readiness, resilience-and-recovery, capacity-and-cost-engineering,
315incident-learning, and privacy-engineering. Migration-engineering contributes
316the safe-change dimension to the production-excellence lifecycle.
317
318### Routing to product-lifecycle skills
319
320When a migration is triggered by a feature retirement or product sunset,
321coordinate with **product-lifecycle-learning** for the retirement decision
322record, deprecation timeline, and customer-treatment plan.