Files
magnus919_agent-skills/migration-engineering/references/discovery-brief.md
T
Magnus HedemarkGitHubusername <username>factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
652521a09e feat(migration-engineering): add migration-engineering skill (#222)
* feat(migration-engineering): add migration-engineering skill

Add the migration-engineering skill for safe cross-system migrations:
schema, data, API, infrastructure, and service migrations.

- SKILL.md: expand/contract pattern, compatibility windows, dual-running,
  backfills, reconciliation, cutover, deprecation, and cleanup. Four distinct
  recovery paths (rollback, roll-forward, restore, irreversible). Structured
  planning fields for reconciliation, correctness evidence, observability,
  customer impact, and ownership. Four migration types with detailed
  compatibility/correctness/recovery characteristics. Specialist routing
  to api-design-and-evolution, data-engineering, platform-engineering,
  release-engineering, site-reliability-engineering, implementation-planning,
  secure-software-engineering, qa-methodology, and verification-methodology.
  Prose routing to production-readiness and production-excellence.
- README.md: human-facing overview with all five required sections.
- references/discovery-brief.md: bounded survey of migration-adjacent skills
  and clear ownership boundaries.
- references/compatibility-patterns.md: forward/backward compatibility by type.
- references/recovery-classification.md: four recovery paths with decision tree.
- templates/: migration plan, compatibility matrix, reconciliation plan,
  cutover and recovery record.
- evals/evals.json: 5 output-quality cases covering additive schema change,
  backfill with reconciliation, API version migration, irreversible cutover,
  and reconciliation failure.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

* chore(migration-engineering): update catalogs and routing

Regenerate catalog files and add migration-engineering entries to
root README.md catalog and references/skill-triggers.md.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

---------

Co-authored-by: username <username>
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-08-02 18:16:04 -04:00

216 lines
12 KiB
Markdown

# Discovery Brief — Migration Engineering
## Purpose
This brief surveys existing migration-adjacent material in the agent-skills
catalog, identifies overlaps and gaps, and defines the ownership boundary for
the migration-engineering skill. It answers: **what does this skill own, and
what does it deliberately hand off to others?**
## Existing migration-adjacent material in the catalog
### api-design-and-evolution — API versioning and deprecation
`api-design-and-evolution` covers API compatibility assessment, versioning
policy, deprecation mechanics, and the consumer-impact analysis of interface
changes. Its deprecation-migration-plan template and
evolution-and-deprecation reference define how a single API evolves.
**What migration-engineering adds:** API evolution owns the **single-interface**
change. Migration-engineering owns the **cross-system** migration where the API
change is one component of a larger transition — for example, a service
extraction where the API changes, the data moves, and the infrastructure shifts
simultaneously. Migration-engineering also adds the recovery-path classification
(rollback/roll-forward/restore/irreversible) that API evolution does not address,
and the structured reconciliation and correctness-evidence fields.
**Boundary:** API design owns the contract. Migration engineering owns the plan
that coordinates the contract change with data, infrastructure, and service
changes. When a migration involves only an API version bump with no data movement
or infrastructure change, the api-design-and-evolution deprecation workflow is
sufficient — migration-engineering is not needed.
### data-engineering — schema migration and ETL
`data-engineering` covers database schema evolution (its database-migrations reference),
ETL/ELT pipeline design, data quality monitoring, and backup/recovery. Its
zero-downtime migration patterns, versioned schemas, and test-first migrations
are the authoritative source for database-level changes.
**What migration-engineering adds:** Data engineering owns the **single-store**
schema change. Migration-engineering owns the **cross-store** migration — moving
data between different stores, splitting a monolith database into services, or
migrating ownership of data from one team to another. Migration-engineering also
adds the migration-type classification (distinguishing schema, data, API, and
infrastructure migrations), the expand/contract sequence as a general pattern,
and the structured reconciliation fields that span beyond database-level
comparisons.
**Boundary:** Data engineering owns the DDL, the backfill script, and the
pipeline. Migration engineering owns the migration plan that sequences the DDL
with the API change, the consumer migration, and the cutover. For a
single-database schema change (e.g., add a nullable column), data-engineering's
database-migrations reference covers it directly.
### platform-engineering — infrastructure changes
`platform-engineering` covers infrastructure-as-code, container orchestration,
service networking, and cloud platform operations. Its references on CI/CD
pipelines and infrastructure-as-code define how platform changes are
provisioned and deployed.
**What migration-engineering adds:** Platform engineering owns the **how** of
infrastructure provisioning. Migration-engineering owns the **when and in what
order** — the staging, the compatibility window, the traffic-shifting
procedure, and the rollback decision points. Platform engineering provides the
Terraform module or Helm chart; migration engineering provides the plan that
says "apply this module to the staging environment first, verify SLOs for 48
hours, then promote to production with a 10% canary."
**Boundary:** Platform engineering owns the infrastructure definition and
provisioning tooling. Migration engineering owns the migration plan that
sequences the infrastructure change with other migration components. For a
pure infrastructure change with no data or API component (e.g., upgrading a
Kubernetes cluster version), platform-engineering and release-engineering
together are sufficient.
### release-engineering — rollout and change promotion
`release-engineering` covers progressive delivery (canaries, rings, percentage
rollouts), feature flags, release readiness gates, rollback planning, and
change governance. Its rollout mechanics are the execution engine for
promoting changes through environments.
**What migration-engineering adds:** Release engineering owns the **release
pipeline** — how artifacts move through stages. Migration engineering owns the
**migration staging** — what each stage means for data consistency, consumer
compatibility, and recovery. A release engineer can design a canary deployment;
a migration engineer can design the dual-write period, the reconciliation gate,
and the cutover trigger that the canary deployment gates on.
**Boundary:** Release engineering owns the promotion mechanics. Migration
engineering owns the migration-specific gates and evidence requirements that
feed into those mechanics. For a standard code deployment with no data or
schema migration, release-engineering alone is sufficient.
### site-reliability-engineering — change management
`site-reliability-engineering` covers SLO/SLI frameworks, error budgets,
incident command, and operational change management. Its change-management
practices define how operational risk is assessed and how changes are
monitored in production.
**What migration-engineering adds:** SRE owns the **operational safety** of
change — error budgets, SLO-based gating, and incident response. Migration
engineering owns the **migration-specific risk** — compatibility breaks,
reconciliation failures, and cutover timing. SRE provides the error budget
that gates the migration; migration engineering provides the migration plan
that stays within that budget.
**Boundary:** SRE owns the operational risk framework. Migration engineering
owns the migration risk specific to the cross-system transition. For a change
that is not a migration (no data movement, no interface change, no
infrastructure shift), SRE change management covers it.
### implementation-planning — migration planning
`implementation-planning` produces executable delivery plans for approved
specifications: work breakdown, dependency mapping, critical path, ownership,
sequencing, and rollout strategy. Its templates cover migration staging and
rollback design as part of a broader delivery plan.
**What migration-engineering adds:** Implementation planning owns the
**delivery plan structure** — who does what, in what order, with what
dependencies. Migration engineering owns the **migration-specific content**
that fills that structure — the compatibility matrix, the reconciliation
design, the recovery-path classification, the cutover procedure. An
implementation plan says "Week 3: backfill user profiles"; a migration plan
says *how* to backfill, *how* to reconcile, *what* to do if reconciliation
fails, and *whether* the backfill step is reversible.
**Boundary:** Implementation planning owns the work-breakdown and coordination
structure. Migration engineering owns the migration domain knowledge that
populates the structure. They are complementary, not competing. A migration
plan produced by this skill is a structured input to an implementation plan
produced by implementation-planning.
### product-lifecycle-learning — retirement and sunset
`product-lifecycle-learning` covers feature and product retirement: deprecation,
migration paths for customers, customer treatment during sunset, and retained
reusable learning. Its retirement-lifecycle reference and
sunset-plan template define the retirement decision and communication
lifecycle.
**What migration-engineering adds:** Product-lifecycle-learning owns the
**decision to retire** and the **customer-treatment plan**. Migration
engineering owns the **technical migration** that executes the retirement —
the data export, the API shutdown, the infrastructure decommissioning.
Product-lifecycle-learning says "this feature retires in Q3 and customers
must migrate to the replacement by Q4"; migration engineering says *how* to
migrate the data, *how* to run the old and new in parallel during the
transition, and *how* to verify the migration before shutting down the old
system.
**Boundary:** Product-lifecycle-learning owns the retirement decision and
customer communication. Migration engineering owns the technical execution
of the retirement migration. They are sequential: the retirement decision
triggers the migration plan.
## Ownership boundary
### What migration-engineering OWNS
1. **Migration-type classification** — distinguishing schema, data, API, and
infrastructure/service migrations and their different compatibility,
correctness, and recovery characteristics.
2. **Expand/contract sequencing** — the general pattern of adding the new
alongside the old, maintaining a compatibility window, dual-running,
and contracting by removing the old.
3. **Compatibility window design** — defining the duration, conditions, and
consumer migration tracking for the period when old and new coexist.
4. **Backfill strategy** — selecting full, incremental, or streaming backfill
and sequencing it with dual-writes.
5. **Reconciliation design** — defining how source and target are verified
to match across completeness, accuracy, timeliness, and consistency.
6. **Cutover procedure** — the exact sequence, pre-conditions, observability
signals, and interruption points for switching to the new system.
7. **Recovery-path classification** — distinguishing rollback, roll-forward,
restore, and irreversible steps, and requiring explicit acknowledgment for
irreversible steps.
8. **Deprecation and cleanup** — the timeline and procedure for removing the
old system after migration is verified.
9. **Structured planning fields** — reconciliation, correctness evidence,
observability, customer impact, and ownership as checklist/template items.
10. **Cross-specialist coordination** — routing implementation details to the
domain specialist that owns each subsystem.
### What migration-engineering HANDS OFF
1. **API contract design and versioning policy** → [api-design-and-evolution](../api-design-and-evolution/SKILL.md).
Migration engineering cites the API compatibility policy; it does not define it.
2. **Database DDL, ETL pipeline implementation, backfill script authoring**
[data-engineering](../data-engineering/SKILL.md). Migration engineering
defines the backfill strategy; data engineering implements it.
3. **Infrastructure provisioning, Terraform modules, Helm charts**
[platform-engineering](../platform-engineering/SKILL.md). Migration
engineering defines the staging sequence; platform engineering provisions it.
4. **Release pipeline mechanics, canary configuration, feature flag implementation**
[release-engineering](../release-engineering/SKILL.md). Migration engineering
defines the migration gates; release engineering implements the promotion pipeline.
5. **SLO definition, error budget policy, incident response procedure**
[site-reliability-engineering](../site-reliability-engineering/SKILL.md).
Migration engineering consumes the error budget as a gate; SRE defines it.
6. **Work breakdown, dependency mapping, critical path, ownership assignment**
[implementation-planning](../implementation-planning/SKILL.md). Migration
engineering provides the migration-specific content; implementation planning
structures it into a delivery plan.
7. **Threat modeling, security review of migration surface**
[secure-software-engineering](../secure-software-engineering/SKILL.md).
8. **Retirement decision and customer communication**
[product-lifecycle-learning](../product-lifecycle-learning/SKILL.md). Migration
engineering executes the technical side of a retirement-triggered migration.
9. **Test strategy and verification gate design**
[qa-methodology](../qa-methodology/SKILL.md) and
[verification-methodology](../verification-methodology/SKILL.md).