migration-strategy
Skill1 starsChanged 3 months agoMITView on GitHub
Plans how a rewrite or migration preserves behavior through cutover and recovery. Use when a rewrite, migration, or broad preservation-sensitive transformation is about to be planned or implemented and its behavior, cutover, or recovery cannot be established by ordinary review and gates. Skip bounded changes whose diff, behavior, and recovery remain directly reviewable.
2 other projects use a version of this.
Adopted by
Most recently taken up by
- ryukirin/openspec-code-migrationtheir own version, first seen Nov 1, 2026
- Siddharth00/agent-revamp-skillstheir own version, first seen Apr 4, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- Siddharth00/agent-revamp-skills★ 1same name
- ryukirin/openspec-code-migration★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository49 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- working-from-a-ticketSkill
- writing-specsSkill
- clarifying-intentSkill
- dispatching-parallel-agentsSkill
- handoffSkill
- mapping-the-codebaseSkill
- prototypingSkill
- using-git-worktreesSkill
- using-sdlc-skillsSkill
- viewing-artifactsSkill
- writing-skillsSkill
- yagniSkill
- finishing-a-branchSkill
- release-readinessSkill
- architecture-decisionsSkill
- coding-standardsSkill
- data-modelSkill
- reviewing-plansSkill
- system-architectureSkill
- ui-ux-designSkill
- writing-plansSkill
- adding-observabilitySkill
- changing-a-live-schemaSkill
- executing-plansSkill
- rollout-controlsSkill
- subagent-driven-developmentSkill
- test-driven-developmentSkill
- complexity-auditSkill
- containing-an-incidentSkill
- debuggingSkill
- deprecating-an-apiSkill
- diagnosing-a-sessionSkill
- eliminating-correctionsSkill
- large-scale-changesSkill
- post-mortemSkill
- refactor-architectureSkill
- brainstormingSkill
- define-goalsSkill
- feasibility-checkSkill
- scopingSkill
- receiving-code-reviewSkill
- requesting-code-reviewSkill
- reviewing-a-prSkill
- security-auditsSkill
- verification-before-completionSkill
- verification-strategySkill
- visual-ui-verificationSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 0 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 26
Write the facts about the source and the strategy for the transition here.
- Very specific: line 94
Write the contract to .sdlc-skills/designs/{{YYYY-MM-DD}}-{{topic}}-migration.md.
- Very specific: line 125
Ask this and end the turn.
- Very specific: line 126
Only an approved exact version, with the consumers bound to its predecessor reconciled, proceeds to writing-plans.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Migration Strategy
When to use
- The transformation is too broad, too split into parts, too heavy in what it must preserve, or too risky operationally for ordinary feature planning and line-by-line review.
- Classify the change before implementing anything, from evidence of risk,
not from the line count. Answer four questions: can independent people or
checks inspect the result (reviewability); must behavior,
compatibility, data, or operations match (preservation); how many
owners, consumers, platforms, or modes change (breadth); can data,
security, concurrency, resources, cutover, or recovery each fail on its own
(failure surfaces)? If the ordinary route cannot make those surfaces
reviewable and recoverable, hold work on the target until this contract
is approved and
verification-strategy's entry gates have passed. If the answers are uncertain, record the change as pending classification. Classify it again whenever the inputs change. - Skip a bounded change whose behavior and diff can still be reviewed directly; such work stays on its ordinary route.
- Write the facts about the source and the strategy for the transition here.
Send the shape of the target to
system-architecture, the proof toverification-strategy, and the tasks towriting-plans.
Step 1: Establish the ground truth
Open assets/migration-contract.md before the steps below; each step fills
the section of it that the step names.
- Fill
Normative control: the source and target revisions, the scope, and one accountable owner or an approval rule. If the target is not settled, go back tosystem-architecturefirst. - Fill
Source-fact inventoryfrom observable behavior and contracts, not from how the source is built: behavior, contracts, durable data, consumers, platforms and build modes, operational obligations, known deviations. - Classify every fact, in
Preservation and deviation contractor inUnknown contract, as one of: a preserved invariant, an intentional deviation, or an unknown. - For each deviation, attach the approved requirement or decision that owns it. A newly discovered choice goes back to that owner; never settle it here.
- Each unknown blocks until it is proved irrelevant or approved with a compensating gate.
Step 2: Design the transition
- Fill
Transition and translation: the approach (incremental, cutover, or hybrid); the translation rules; which intermediate and mixed-version states are allowed; the compatibility direction; and what happens to unmapped or invalid input. - Fill
Representative trial slice: the riskiest paths at a useful scale, drawn from a stable coverage inventory; a recorded decision for every cell left out (the template'sUncovered cells); the outcome, the expansion decision, and the failure response. Commands and thresholds belong to the assurance matrix. - Fill
Partitions and ownership: a stable inventory of shards and the rules for who owns each. Attempts, owners, heartbeats, transfers, and results go into a ledger (a record kept outside the contract: add to it, never rewrite it), never into the contract.
Step 3: Control what moves underneath you
- Fill
Source evolution during migration: either freeze the source, or run one versioned change-intake contract and an external queue. Every source change after the baseline gets an identity and an exact terminal disposition, with its evidence. - Fill
Mutable live-state catch-upwherever data or work keeps moving: from how the boundary is bound through to the maximum permitted lag and the gate that owns that limit. Every write after the snapshot lands in exactly one terminal disposition, with its evidence. "Probably applied" is not reconciled and blocks cutover. - Fill
Convergence and failure queue: reconcile the external ledgers, and give every skip an approved recorded decision. If one class of failure repeats, pause the affected work, fix the shared rule, and re-audit every impacted shard. - Fill
Pause, abort, cutover, and rollback,Retained artifacts, andDecommission and retained-source retirementbefore anyone needs them: when to pause and when to abort, who holds authority for cutover, the rollback target, the point of no return, the recovery time, and what becomes of the retained source. - Enter decommission only when the retention period has elapsed, live use is provably zero, its gate has passed, and its targets, authority, and recovery are written down. A decommission action that is partial, failed, or failed its validation blocks release and cleanup.
Step 4: Write, challenge, then decide
- Write the contract to
.sdlc-skills/designs/{{YYYY-MM-DD}}-{{topic}}-migration.md. Keep the review state, the decision state, and the execution state outside it. Compute its identity now, as the template says; the challengers bind to this path and this identity. - Fill
assets/migration-challenger.mdwith that path and identity before approval, then dispatch two read-only challengers asdispatching-parallel-agentsStep 2 says, bound to the contract'sIndependent challenge contract: one who knows the source and its domain, and one who owns operations and data. They challenge whether the facts are complete, the mappings and mixed states, the intake path and the partitions, and the trial slice and the recovery plan. - For any role left out, record an accountable skip; the template's
Independent challenge coveragefield says what one carries. Bind each challenge to one exact attempt with a deadline. A required role blocks approval until its current report on this contract identity readsclear. Present the contract:
Migration contract {{path}} version {{identity (per template)}} — {{strategy}} Preserves: {{invariants}}. Trial: {{slice}}. Pause/abort/rollback: {{rules}}. Retirement: {{plan}}. 1. Approve this exact version for planning 2. Request changes 3. Reject the strategy 4. Cancel Recommendation: {{option}} — {{one sentence}}.Ask this and end the turn;
clarifying-intentowns what closes it.- Only an approved exact version, with the consumers bound to its
predecessor reconciled, proceeds to
writing-plans.
Gotchas
- Code review judges the exact version under review against an approved contract. Before approval neither exists, so a challenge sent to code review has nothing to bind to and returns no verdict.
- The trial slice's coverage inventory (Step 2) is only as stable as the source is frozen or its changes are taken in under control (Step 3). A new consumer, platform, or path that lands in the middle of the migration silently turns a cell that already has its recorded decision into one nobody audited, so “every excluded cell has a recorded decision” can be true at the trial and false by cutover without either step's owner noticing.
- “Live use is provably zero” (Step 3) is usually checked against recent traffic, and a periodic consumer, a monthly batch job or an annual report, can pass that check while it is simply between runs. Decommissioning on that reading retires a source that a consumer from Step 1's inventory is still going to call.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

