PM AI Model Change to Migration
Use this skill when a model or provider change may alter a user-facing AI or
agent workflow. It turns a lifecycle notice, replacement recommendation,
provider change, or observed serving change into a reviewable migration packet.
The output is a decision contract, not a model leaderboard. It does not call a
provider, change a model setting, run a deployment, or prove that a candidate
is better.
When to use
Use it when:
- a provider announces a deprecation, retirement date, replacement, endpoint
change, or model-family migration;
- a team wants to change a model ID, dated snapshot, alias, provider, region,
endpoint, serving tier, safety configuration, or capability surface;
- a model ID is unchanged but routing, safety classifiers, sampling behavior,
rate limits, price, or latency appears to have changed;
- a product needs a baseline and candidate comparison before a canary or
controlled migration;
- a model change may affect prompts, tools, retrieval, schemas, citations,
safety behavior, data handling, cost, latency, or user comprehension;
- a production decision needs a hold, fallback, sunset, or rollback owner.
Do not use
Do not use this skill to:
- choose a model for a brand-new job without a migration event; use
pm-ai-model-to-route;
- version a prompt or prompt object; use
pm-ai-prompt-to-version;
- design a general evaluation rubric or dataset; use
pm-ai-evaluation-plan;
- explain a concrete failed run after a change; use
pm-ai-trace-to-regression;
- call a provider, run a benchmark, switch a flag, migrate data, or publish a
quality claim;
- replace an unknown model ID, retirement date, score, cost, latency, or
privacy boundary with a guess;
- paste raw prompts, customer content, credentials, tokens, cookies, private
URLs, or sensitive screen content into a public receipt.
Use Unknown, Not provided, Not run, Not measured, Not reproduced, or
Not covered when the evidence is missing.
Workflow
1. Frame the migration decision
Write one sentence:
Decide whether change ... can move workload ... from baseline ... to
candidate ... within the product's quality, safety, data, cost, latency,
and recovery boundaries.
Record the decision owner, affected surface, user job, reason for change,
deadline, current workaround, last-known-good state, and success oracle. A
replacement recommendation is a migration input, not a release decision.
2. Build the model identity ledger
Record each field for baseline and candidate. Keep values source-backed.
| Field |
Baseline |
Candidate |
Source or status |
| provider and platform |
|
|
|
| model ID and snapshot or alias |
|
|
|
| endpoint, region, and serving tier |
|
|
|
| lifecycle state and retirement date |
|
|
|
| request and response contract |
|
|
|
| prompt and configuration version |
|
|
|
| tools, retrieval, and schema versions |
|
|
|
| data retention and training boundary |
|
|
|
| owner, approver, and observation window |
|
|
|
Do not infer a snapshot from a friendly display name. Distinguish a pinned
model ID from an alias, and distinguish model weights from changes in routing,
safety classifiers, sampling, or other serving infrastructure.
3. Classify the change
Select every applicable class:
model-id-or-snapshot: a new model name, dated snapshot, alias target, or
model family;
provider-or-platform: a new vendor, cloud partner, region, or hosted
surface;
api-or-schema: request fields, response fields, tool schema, streaming,
structured output, error, or rate-limit behavior;
capability-or-quality: reasoning, context, modality, tool use, grounding,
refusal, or output behavior;
safety-or-policy: moderation, refusal, data boundary, permission, or
policy behavior;
cost-or-latency: price, tokenization, throughput, timeout, or p50/p95
behavior;
serving-infrastructure: an observable change with the same model ID.
If the change class cannot be verified, keep it as Unknown and choose Hold.
4. Map the blast radius
For each affected user job, map:
- input shape, locale, data class, and tenant or region boundary;
- prompt and context assumptions;
- retrieval sources, freshness, and citation contract;
- tool names, permissions, call order, stop conditions, and schemas;
- output schema, UI copy, escalation, and user comprehension;
- safety, privacy, retention, and abuse controls;
- token, cost, p50/p95 latency, timeout, retry, and rate-limit budget;
- flag, version pin, fallback, owner, and recovery path.
Separate confirmed impact from a hypothesis. A model change with no inventory
of actual usage cannot be called low risk.
5. Design the same-input comparison
Compare baseline and candidate on the same sanitized packet, configuration,
and corpus revision whenever the host permits it. Register cases by type:
- Golden: core user jobs that must keep working;
- Regression: previously fixed failures and known fragile formats;
- Negative: jobs that should abstain, escalate, or avoid a tool;
- Edge: empty input, long input, locale, timeout, partial result, and
schema variation;
- Red-team: prompt injection, secret-shaped output, PII, tenant crossing,
unsafe tool action, cost exhaustion, and permission mismatch.
Use deterministic checks for schemas, tool calls, citations, permissions, and
stop conditions. Use a rubric or human review for usefulness, factuality,
grounding, safety language, and comprehension. Record dataset, corpus,
prompt, model, judge, and configuration versions.
If no comparison ran, write Not run and do not convert a provider claim or
average score into a migration recommendation.
6. Apply decision gates
Choose exactly one state:
Migrate: comparison and operational gates pass, owner and rollback are
ready, and no critical blocker remains;
Canary: evidence is sufficient for a bounded exposure with stop thresholds
and a known fallback, but full migration is not yet justified;
Hold: a required identity, impact, comparison, privacy, safety, cost,
latency, or recovery input is missing or fails;
Rollback: the candidate is causing a confirmed critical regression or
violates a stop threshold; return to the last-known-good path;
Not run: the packet is incomplete and no decision was authorized.
State the decision owner, evidence that supports it, blockers, next safe action,
deadline, and what would change the decision. A hold is a valid product result.
7. Define rollout and recovery
Specify the smallest reversible rollout:
- immutable baseline and candidate identifiers;
- feature flag, version pin, or routing rule;
- exposure, tenant, region, and duration boundary;
- p50/p95 latency, cost, error, retry, tool, safety, and user-correction
signals;
- stop thresholds and who can stop the rollout;
- fallback model or manual path;
- data, prompt, schema, and observability rollback steps;
- retirement deadline and evidence needed before removing the baseline.
Do not call a migration complete while the fallback, stop signal, or owner is
missing.
Output contract
Privacy-safe receipt
Return a compact record with no raw customer content:
migration_id: stable_id
decision: hold | migrate | canary | rollback | not_run
user_job: one_sentence_job
change_class: []
baseline: provider_and_model_identity
candidate: provider_and_model_identity
sources: []
impact: confirmed | hypothesis | unknown
comparison:
dataset_id: value_or_not_provided
cases: {golden: 0, regression: 0, negative: 0, edge: 0, red_team: 0}
deterministic: pass | fail | not_run
human_or_judge: pass | fail | not_run
operations:
cost: measured | not_measured
latency: measured | not_measured
privacy_review: pass | fail | not_run
rollout: bounded_plan_or_not_provided
rollback: owner_and_action_or_not_provided
not_covered: []
next_action: one_safe_action
Common rationalizations to reject
- "The provider recommends it, so migrate." Record the recommendation as a
source and still compare the product job.
- "The average score went up, so the release is safe." Check critical,
negative, tool, safety, privacy, cost, latency, and comprehension cases.
- "The model ID did not change, so nothing changed." Inspect serving,
routing, safety, rate-limit, and latency signals.
- "It is only a small model swap." Map prompts, tools, retrieval, schemas, and
fallback behavior before accepting that claim.
- "We can test after switching." Use a bounded canary or hold until a safe
baseline, stop threshold, and recovery path exist.
- "The old model is being retired, so every result is acceptable." A deadline
changes urgency, not the evidence standard; if emergency action is needed,
label the recovery limitation.
- "The user will not notice." Measure comprehension, correction, retry,
abandonment, escalation, and task completion instead of guessing.
Edge cases
- If only a retirement date is known, create a source-backed
Hold packet with
a migration deadline and the missing comparison fields.
- If baseline usage is spread across providers or tenants, split the ledger by
surface and do not average away a high-risk route.
- If the candidate supports a new capability, test the old core job before
adding the new surface; capability gain does not erase regression risk.
- If only a provider's aggregate benchmark is available, label product impact
Unknown and require task-specific evidence.
- If a third-party platform sets a different retirement schedule, record the
platform-specific source and never copy a vendor date across surfaces.
- If the candidate is unavailable in the production region, stop at
Hold or
Canary plan; do not treat a local or preview run as production proof.
- If emergency cutover removes the fallback, choose
Migrate only with an
owner, observation window, forward recovery plan, and explicit limitation.
- If private model data or traces are required, keep the receipt to hashes,
counts, labels, and source identifiers that are safe for the audience.
Adjacent routing
pm-ai-model-to-route owns model selection for a new job, not a migration.
pm-ai-prompt-to-version owns prompt configuration changes.
pm-ai-evaluation-plan owns evaluation design when no lifecycle migration
is the primary decision.
pm-ai-trace-to-regression owns writeback after a concrete run fails.
pm-ai-cost-to-guardrail owns economics or latency when model identity is
stable and the budget is the primary decision.
pm-ai-output-to-interface owns output and UI contract changes.
pm-ai-skill-to-package owns the package discovery and distribution
contract, not model migration itself.
Final check
Before returning the packet, confirm:
- the user job and change event are explicit;
- baseline and candidate identities are source-backed or marked unknown;
- change class and blast radius are separate from assumptions;
- golden, regression, negative, edge, and red-team cases are present or
explicitly
Not provided;
- deterministic, judge, human, cost, latency, privacy, and tool gates are
separately recorded;
- the decision is one of
Migrate, Canary, Hold, Rollback, or Not run;
- rollout, stop thresholds, fallback, rollback owner, and sunset are present;
- the receipt contains no raw prompts, customer data, secrets, or private URLs;
- every unsupported claim is labeled
Unknown, Not run, or Not covered.
1---2name: pm-ai-model-change-to-migration3description: Use when an AI product faces a model, provider, endpoint, snapshot, lifecycle, capability, price, latency, or serving-behavior change. Produce a source-bounded migration decision with identity, impact, baseline and candidate comparison, safety and cost gates, rollout, fallback, rollback, and explicit evidence limits.4---56# PM AI Model Change to Migration78Use this skill when a model or provider change may alter a user-facing AI or9agent workflow. It turns a lifecycle notice, replacement recommendation,10provider change, or observed serving change into a reviewable migration packet.1112The output is a decision contract, not a model leaderboard. It does not call a13provider, change a model setting, run a deployment, or prove that a candidate14is better.1516## When to use1718Use it when:1920- a provider announces a deprecation, retirement date, replacement, endpoint21 change, or model-family migration;22- a team wants to change a model ID, dated snapshot, alias, provider, region,23 endpoint, serving tier, safety configuration, or capability surface;24- a model ID is unchanged but routing, safety classifiers, sampling behavior,25 rate limits, price, or latency appears to have changed;26- a product needs a baseline and candidate comparison before a canary or27 controlled migration;28- a model change may affect prompts, tools, retrieval, schemas, citations,29 safety behavior, data handling, cost, latency, or user comprehension;30- a production decision needs a hold, fallback, sunset, or rollback owner.3132## Do not use3334Do not use this skill to:3536- choose a model for a brand-new job without a migration event; use37 `pm-ai-model-to-route`;38- version a prompt or prompt object; use `pm-ai-prompt-to-version`;39- design a general evaluation rubric or dataset; use40 `pm-ai-evaluation-plan`;41- explain a concrete failed run after a change; use42 `pm-ai-trace-to-regression`;43- call a provider, run a benchmark, switch a flag, migrate data, or publish a44 quality claim;45- replace an unknown model ID, retirement date, score, cost, latency, or46 privacy boundary with a guess;47- paste raw prompts, customer content, credentials, tokens, cookies, private48 URLs, or sensitive screen content into a public receipt.4950Use `Unknown`, `Not provided`, `Not run`, `Not measured`, `Not reproduced`, or51`Not covered` when the evidence is missing.5253## Workflow5455### 1. Frame the migration decision5657Write one sentence:5859> Decide whether change `...` can move workload `...` from baseline `...` to60> candidate `...` within the product's quality, safety, data, cost, latency,61> and recovery boundaries.6263Record the decision owner, affected surface, user job, reason for change,64deadline, current workaround, last-known-good state, and success oracle. A65replacement recommendation is a migration input, not a release decision.6667### 2. Build the model identity ledger6869Record each field for baseline and candidate. Keep values source-backed.7071| Field | Baseline | Candidate | Source or status |72|---|---|---|---|73| provider and platform | | | |74| model ID and snapshot or alias | | | |75| endpoint, region, and serving tier | | | |76| lifecycle state and retirement date | | | |77| request and response contract | | | |78| prompt and configuration version | | | |79| tools, retrieval, and schema versions | | | |80| data retention and training boundary | | | |81| owner, approver, and observation window | | | |8283Do not infer a snapshot from a friendly display name. Distinguish a pinned84model ID from an alias, and distinguish model weights from changes in routing,85safety classifiers, sampling, or other serving infrastructure.8687### 3. Classify the change8889Select every applicable class:9091- `model-id-or-snapshot`: a new model name, dated snapshot, alias target, or92 model family;93- `provider-or-platform`: a new vendor, cloud partner, region, or hosted94 surface;95- `api-or-schema`: request fields, response fields, tool schema, streaming,96 structured output, error, or rate-limit behavior;97- `capability-or-quality`: reasoning, context, modality, tool use, grounding,98 refusal, or output behavior;99- `safety-or-policy`: moderation, refusal, data boundary, permission, or100 policy behavior;101- `cost-or-latency`: price, tokenization, throughput, timeout, or p50/p95102 behavior;103- `serving-infrastructure`: an observable change with the same model ID.104105If the change class cannot be verified, keep it as `Unknown` and choose `Hold`.106107### 4. Map the blast radius108109For each affected user job, map:1101111. input shape, locale, data class, and tenant or region boundary;1122. prompt and context assumptions;1133. retrieval sources, freshness, and citation contract;1144. tool names, permissions, call order, stop conditions, and schemas;1155. output schema, UI copy, escalation, and user comprehension;1166. safety, privacy, retention, and abuse controls;1177. token, cost, p50/p95 latency, timeout, retry, and rate-limit budget;1188. flag, version pin, fallback, owner, and recovery path.119120Separate confirmed impact from a hypothesis. A model change with no inventory121of actual usage cannot be called low risk.122123### 5. Design the same-input comparison124125Compare baseline and candidate on the same sanitized packet, configuration,126and corpus revision whenever the host permits it. Register cases by type:127128- **Golden:** core user jobs that must keep working;129- **Regression:** previously fixed failures and known fragile formats;130- **Negative:** jobs that should abstain, escalate, or avoid a tool;131- **Edge:** empty input, long input, locale, timeout, partial result, and132 schema variation;133- **Red-team:** prompt injection, secret-shaped output, PII, tenant crossing,134 unsafe tool action, cost exhaustion, and permission mismatch.135136Use deterministic checks for schemas, tool calls, citations, permissions, and137stop conditions. Use a rubric or human review for usefulness, factuality,138grounding, safety language, and comprehension. Record dataset, corpus,139prompt, model, judge, and configuration versions.140141If no comparison ran, write `Not run` and do not convert a provider claim or142average score into a migration recommendation.143144### 6. Apply decision gates145146Choose exactly one state:147148- `Migrate`: comparison and operational gates pass, owner and rollback are149 ready, and no critical blocker remains;150- `Canary`: evidence is sufficient for a bounded exposure with stop thresholds151 and a known fallback, but full migration is not yet justified;152- `Hold`: a required identity, impact, comparison, privacy, safety, cost,153 latency, or recovery input is missing or fails;154- `Rollback`: the candidate is causing a confirmed critical regression or155 violates a stop threshold; return to the last-known-good path;156- `Not run`: the packet is incomplete and no decision was authorized.157158State the decision owner, evidence that supports it, blockers, next safe action,159deadline, and what would change the decision. A hold is a valid product result.160161### 7. Define rollout and recovery162163Specify the smallest reversible rollout:164165- immutable baseline and candidate identifiers;166- feature flag, version pin, or routing rule;167- exposure, tenant, region, and duration boundary;168- p50/p95 latency, cost, error, retry, tool, safety, and user-correction169 signals;170- stop thresholds and who can stop the rollout;171- fallback model or manual path;172- data, prompt, schema, and observability rollback steps;173- retirement deadline and evidence needed before removing the baseline.174175Do not call a migration complete while the fallback, stop signal, or owner is176missing.177178## Output contract179180### Privacy-safe receipt181182Return a compact record with no raw customer content:183184```yaml185migration_id: stable_id186decision: hold | migrate | canary | rollback | not_run187user_job: one_sentence_job188change_class: []189baseline: provider_and_model_identity190candidate: provider_and_model_identity191sources: []192impact: confirmed | hypothesis | unknown193comparison:194 dataset_id: value_or_not_provided195 cases: {golden: 0, regression: 0, negative: 0, edge: 0, red_team: 0}196 deterministic: pass | fail | not_run197 human_or_judge: pass | fail | not_run198operations:199 cost: measured | not_measured200 latency: measured | not_measured201 privacy_review: pass | fail | not_run202rollout: bounded_plan_or_not_provided203rollback: owner_and_action_or_not_provided204not_covered: []205next_action: one_safe_action206```207208## Common rationalizations to reject209210- "The provider recommends it, so migrate." Record the recommendation as a211 source and still compare the product job.212- "The average score went up, so the release is safe." Check critical,213 negative, tool, safety, privacy, cost, latency, and comprehension cases.214- "The model ID did not change, so nothing changed." Inspect serving,215 routing, safety, rate-limit, and latency signals.216- "It is only a small model swap." Map prompts, tools, retrieval, schemas, and217 fallback behavior before accepting that claim.218- "We can test after switching." Use a bounded canary or hold until a safe219 baseline, stop threshold, and recovery path exist.220- "The old model is being retired, so every result is acceptable." A deadline221 changes urgency, not the evidence standard; if emergency action is needed,222 label the recovery limitation.223- "The user will not notice." Measure comprehension, correction, retry,224 abandonment, escalation, and task completion instead of guessing.225226## Edge cases227228- If only a retirement date is known, create a source-backed `Hold` packet with229 a migration deadline and the missing comparison fields.230- If baseline usage is spread across providers or tenants, split the ledger by231 surface and do not average away a high-risk route.232- If the candidate supports a new capability, test the old core job before233 adding the new surface; capability gain does not erase regression risk.234- If only a provider's aggregate benchmark is available, label product impact235 `Unknown` and require task-specific evidence.236- If a third-party platform sets a different retirement schedule, record the237 platform-specific source and never copy a vendor date across surfaces.238- If the candidate is unavailable in the production region, stop at `Hold` or239 `Canary plan`; do not treat a local or preview run as production proof.240- If emergency cutover removes the fallback, choose `Migrate` only with an241 owner, observation window, forward recovery plan, and explicit limitation.242- If private model data or traces are required, keep the receipt to hashes,243 counts, labels, and source identifiers that are safe for the audience.244245## Adjacent routing246247- `pm-ai-model-to-route` owns model selection for a new job, not a migration.248- `pm-ai-prompt-to-version` owns prompt configuration changes.249- `pm-ai-evaluation-plan` owns evaluation design when no lifecycle migration250 is the primary decision.251- `pm-ai-trace-to-regression` owns writeback after a concrete run fails.252- `pm-ai-cost-to-guardrail` owns economics or latency when model identity is253 stable and the budget is the primary decision.254- `pm-ai-output-to-interface` owns output and UI contract changes.255- `pm-ai-skill-to-package` owns the package discovery and distribution256 contract, not model migration itself.257258## Final check259260Before returning the packet, confirm:261262- the user job and change event are explicit;263- baseline and candidate identities are source-backed or marked unknown;264- change class and blast radius are separate from assumptions;265- golden, regression, negative, edge, and red-team cases are present or266 explicitly `Not provided`;267- deterministic, judge, human, cost, latency, privacy, and tool gates are268 separately recorded;269- the decision is one of `Migrate`, `Canary`, `Hold`, `Rollback`, or `Not run`;270- rollout, stop thresholds, fallback, rollback owner, and sunset are present;271- the receipt contains no raw prompts, customer data, secrets, or private URLs;272- every unsupported claim is labeled `Unknown`, `Not run`, or `Not covered`.