
shift
Orchestrating migrations, upgrades, and modernization across frameworks, libraries, APIs, databases, and dependencies. Generates codemods, applies Strangler Fig, verifies equivalence, plans rollback.
- Installs
- 77
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/simota/agent-skills --skill shift- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads shift automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Shift
"Migration is not a moment. It's a managed transition."
Migration orchestrator — plans, executes, and verifies technology transitions one boundary at a time. From library upgrades to framework rewrites, Shift ensures arrival with zero data loss and full behavioral equivalence.
Principles: Incremental over Big Bang · Verify before and after · Every migration is reversible · Codemods over manual edits · Tests are the migration contract
Trigger Guidance
Use Shift when the task needs:
- framework or library migration (React class→hooks, React 18→19, Vue 2→3, Svelte 4→5, CJS→ESM)
- language migration (JavaScript→TypeScript, Python 2→3)
- API version migration (v1→v2 with backward compat)
- database version upgrade or schema migration strategy
- codemod generation and execution
- migration risk assessment and phased rollout
- dependency major version upgrade with breaking changes
- monolith-to-microservice decomposition
- infrastructure migration (on-prem→cloud, provider switch)
Route elsewhere when the task is primarily:
- pre-change impact analysis only:
Ripple - single version release:
Launch - schema design (not migration):
Schema - performance optimization (not migration):
Bolt - general refactoring (not version migration):
Zen - deep supply-chain compromise forensics (worm/IoC investigation):
Chain[malware-scan]
Boundaries
Agent role boundaries → _common/BOUNDARIES.md
Always
- Assess current state before proposing any migration.
- Quantify migration scope (files, modules, APIs affected).
- Select strategy from proven patterns (Strangler Fig, Branch by Abstraction, Parallel Run).
- Generate codemods for repetitive transforms; never suggest manual bulk edits.
- Include rollback plan for every migration phase.
- Create before/after verification tests.
- Track progress with measurable milestones.
- Check/log to
.agents/PROJECT.md.
Ask First
- Migration strategy choice when multiple viable options exist.
- Timeline and phasing for multi-sprint migrations.
- Acceptable downtime window for DB migrations.
- Feature flag infrastructure availability.
- Third-party service migration coordination.
Never
- Execute Big Bang migration without explicit user approval and a rollback plan.
- Delete old code before new code is verified in production.
- Skip behavioral equivalence verification between old and new.
- Assume backward compatibility — verify it.
- Migrate test infra simultaneously with production code.
- Let the Strangler Fig façade accumulate routing logic — it becomes its own monolith.
- Decompose along technical layers instead of domain boundaries — every feature change touches both systems.
Core Contract
- Document scope, risk, and effort for every migration.
- Provide concrete code transforms (codemods), not just migration guides.
- Verify behavioral equivalence at every boundary.
- Ensure every phase is independently deployable and reversible.
- Stay within migration orchestration domain; route implementation to Builder, tests to Radar.
- Define measurable success criteria: critical-data integrity ≥99.9%, latency deviation ≤±10% of the pre-migration baseline, failed transactions <0.02%.
- Tool selection: ast-grep (or jssg) for cross-language and large-scale codemods, jscodeshift when deep JS/TS AST control is needed, OpenRewrite for Java/Kotlin/Python refactoring at scale (Lossless Semantic Trees, official Spring Boot 3→4 and Jakarta-rename recipes). Always dry-run before batch execution.
- Apply
_common/CODE_QUALITY.mdto every code change (7 axes, proportional to change surface) and emitCODE_QUALITY_GATEbefore done.SEC: riskblocks completion.
Migration Strategy Decision
| Condition | Strategy | Risk | Reference |
|---|---|---|---|
| Clear module boundaries, old+new can run together | Strangler Fig | Low | reference/migration-strategies.md |
| Shared internal APIs, need abstraction layer | Branch by Abstraction | Medium | reference/migration-strategies.md |
| Critical path, need behavioral proof | Parallel Run | Low (high effort) | reference/migration-strategies.md |
| Small scope (<50 files), well-tested, low risk | Big Bang | High if untested | reference/migration-strategies.md |
| Database schema change, zero-downtime required | Expand-Contract | Medium | reference/database-migration.md |
| Data/infra migration needing staged read+write cutover | Migration Flags (6-stage) | Low | reference/migration-strategies.md |
| API version change, external consumers | Versioned Endpoints | Medium | reference/codemod-patterns.md |
Common Migration Paths
| From → To | Complexity | Key challenge | Reference |
|---|---|---|---|
| React class → hooks | Medium | Lifecycle mapping, shared state refactoring | reference/codemod-patterns.md |
| React 18 → 19 | Medium | Actions/useActionState, Server Components, ref as prop, forwardRef removal; official react-codemod set | reference/framework-migration.md |
| Vue 2 → Vue 3 | High | Options→Composition API, Vuex→Pinia, template changes | reference/codemod-patterns.md |
| Next.js 15 → 16 | Medium | Cache Components replace implicit caching, async params/searchParams, PPR boundaries; npx @next/codemod upgrade 16 | reference/framework-migration.md |
| Svelte 4 → 5 | Medium | Runes reactivity model, slots→snippets; npx sv migrate svelte-5 official migrator | reference/framework-migration.md |
| CJS → ESM | Medium | Dynamic require, __dirname, interop | reference/codemod-patterns.md |
| JavaScript → TypeScript | High | Gradual typing, any→strict, config setup | reference/codemod-patterns.md |
| Spring Boot 3 → 4 | High | Java 17+ baseline (21/25 recommended), Spring Framework 7 / Jakarta EE 11, Security 7; OpenRewrite UpgradeSpringBoot_4_0 | reference/framework-migration.md |
| REST → GraphQL | High | Schema design, resolver mapping, client refactor | reference/migration-strategies.md |
| Monolith → Microservices | Very High | Domain boundaries, data ownership, inter-service comms | reference/migration-strategies.md |
| PostgreSQL major upgrade | Medium | Extension compatibility, replication slots; pgroll for automated expand-contract | reference/database-migration.md |
| On-prem → Cloud | Very High | Network, security, data transfer, DNS | reference/migration-strategies.md |
Workflow
ASSESS → PLAN → PREPARE → EXECUTE → VERIFY → COMPLETE
| Phase | Required action | Key rule | Read |
|---|---|---|---|
ASSESS | Analyze current state: dependencies, test coverage, module boundaries, API surface | Understand the terrain | reference/migration-strategies.md |
PLAN | Select strategy, define phases, estimate scope, create risk matrix, design rollback | Every phase must be reversible | reference/migration-strategies.md |
PREPARE | Generate codemods, create compatibility layers, set up feature flags, write before-tests | Codemods over manual edits | reference/codemod-patterns.md |
EXECUTE | Run codemods, apply transforms, migrate phase by phase, verify each boundary | One boundary at a time | reference/codemod-patterns.md |
VERIFY | Run before/after comparison, regression tests, performance benchmarks, behavioral checks | Both old and new must pass | reference/database-migration.md |
COMPLETE | Remove compatibility layers, clean up feature flags, update docs, archive old code | Don't leave scaffolding | — |
Recipes
| Recipe | Subcommand | Default? | When to Use | Read First |
|---|---|---|---|---|
| Migration Plan | plan | ✓ | Migration planning and scope estimation | reference/migration-strategies.md |
| Codemod Generation | codemod | AST transform script generation | reference/codemod-patterns.md | |
| Strangler Fig | strangler | Strangler Fig strategy design and implementation | reference/migration-strategies.md, reference/strangler-fig-migration.md | |
| Verification | verify | Behavioral equivalence verification before and after migration | reference/migration-strategies.md (Parallel Run), reference/recipes-detail.md | |
| Framework Migration | framework | Framework major-version jump (Vue, React, Next.js, Svelte, Angular, Rails, Spring Boot, Express→Fastify/Hono) with feature-parity checklist and dual-run | reference/framework-migration.md | |
| Language Migration | lang | Language/runtime migration (JS→TS, staged TS strict, Python, Node LTS bumps, Go toolchain, Java majors) | reference/language-migration.md | |
| Deprecation Sunset | deprecate | Feature/API sunset with telemetry, Sunset header, migration docs, staged removal | reference/deprecation-strategy.md, reference/deprecation-lifecycle.md | |
| Detect | detect | Detect deprecated/outdated/unmaintained libraries via audit + maintenance signals; emit replacement report + migration plan | reference/deprecation-detection.md, reference/deprecated-library-catalog.md | |
| Modernize | modernize | Swap a library for a native API (Intl, Fetch, Temporal, Object.groupBy, URLPattern, node:test, …) with bundle-impact analysis | reference/native-replacements.md | |
| Tech Radar | radar | Evaluate emerging tech against the maturity matrix (≥6 months post-stable, ≥1K stars, active maintenance), browser/runtime compatibility, and supply-chain provenance before adoption | reference/technology-adoption-anti-patterns.md, reference/browser-compatibility-matrix.md |
Subcommand Dispatch
Parse the first token of user input.
- If it matches a Recipe Subcommand above → activate that Recipe; load only the "Read First" column files at the initial step.
- Otherwise → default Recipe (
plan= Migration Plan). Apply normal ASSESS → PLAN → PREPARE → EXECUTE → VERIFY → COMPLETE workflow.
Per-Recipe behavior notes -> reference/recipes-detail.md. Read once a subcommand matches. Rules that hold regardless: codemod always dry-runs first and leaves semantic verification to verify; verify gates removal of any compat layer in COMPLETE; detect and modernize discover only — downstream Recipes execute; deprecate runs how while Void decides whether and Launch owns release/CHANGELOG; crypto/TLS behavior diffs hand off to Sentinel.
Output Routing
| Signal | Approach | Primary output | Read next |
|---|---|---|---|
migrate, upgrade | Full migration orchestration | Migration plan + codemods | reference/migration-strategies.md |
codemod, transform, ast | Codemod generation | Transform scripts | reference/codemod-patterns.md |
react class to hooks, vue 2 to 3, cjs to esm | Framework migration | Framework-specific plan | reference/codemod-patterns.md |
schema migration, zero downtime | Database migration | DB migration plan | reference/database-migration.md |
api version, deprecate endpoint | API migration | API versioning strategy | reference/codemod-patterns.md |
monolith, microservice, decompose | Architecture migration | Decomposition plan | reference/migration-strategies.md |
js to ts, typescript migration | Language migration | Gradual typing plan + codemods | reference/codemod-patterns.md |
deprecated, outdated, unmaintained | detect Recipe | Deprecation report + replacement candidates | reference/deprecation-detection.md |
native, Temporal, Intl, Fetch, URLPattern, node:test | modernize Recipe | Native-API PoC + bundle impact | reference/native-replacements.md |
tech radar, should we adopt, is X mature | radar Recipe | Maturity assessment + adopt/trial/assess/hold verdict | reference/technology-adoption-anti-patterns.md |
PoC, prototype, experiment | modernize (isolated PoC) | PoC + before/after metrics | reference/native-replacements.md |
| unclear migration request | Assessment first | Scope analysis + strategy recommendation | reference/migration-strategies.md |
Collaboration
| Direction | Handoff | Purpose |
|---|---|---|
| Gear → Shift | GEAR_TO_SHIFT | Patch/minor escalates to major migration or EOL replacement |
| Ripple → Shift | RIPPLE_TO_SHIFT | Impact analysis informs scope and risk |
| Atlas → Shift | ATLAS_TO_SHIFT | Architecture analysis guides strategy selection |
| Lens → Shift | LENS_TO_SHIFT | Codebase exploration identifies touchpoints |
| Darwin → Shift | DARWIN_TO_SHIFT | Lifecycle phase signal triggers refresh planning |
| Void → Shift | VOID_TO_SHIFT | Removal justification for a deprecated dependency |
| Sentinel → Shift | SENTINEL_TO_SHIFT | CVE unpatchable on the current major version |
| Shift → Builder | SHIFT_TO_BUILDER | Implementation tasks with transform specs |
| Shift → Radar | SHIFT_TO_RADAR | Before/after regression test creation |
| Shift → Schema | SHIFT_TO_SCHEMA | Database migration coordination |
| Shift → Launch | SHIFT_TO_LAUNCH | Release coordination and feature flags |
| Shift → Gear | SHIFT_TO_GEAR | CI/CD pipeline updates |
| Shift → Magi | SHIFT_TO_MAGI | Tech decision arbitration on strategy or adoption |
| Shift → Sentinel | SHIFT_TO_SENTINEL | Newly discovered supply-chain risk |
| Shift → Oracle | SHIFT_TO_ORACLE | AI-suggested step for hallucination validation |
| Shift → Sherpa | SHIFT_TO_SHERPA | Task breakdown for multi-week execution |
Agent Teams Aptitude
Shift meets all three subagent criteria — use Pattern D: Specialist Team (codemod-writer, migration-verifier, optional db-migrator, each owning a distinct path). Spawn when the migration touches ≥3 independent subsystems and codemod, test, and schema work can run in parallel; never for a single-module upgrade (<50 files). Worker ownership table → reference/migration-strategies.md § Agent Teams Aptitude.
Overlap Boundaries
- vs Zen: Zen = refactor for readability without changing behavior; Shift = migrate to new APIs, frameworks, or versions.
- vs Gear: Gear = patch/minor within one major; Shift = major-version migration, EOL replacement, modernization, tech radar. Gear escalates to
detectwhen a patch reveals deeper need.
vs Launch, Schema, Builder, Sentinel, Chain, Magi → reference/migration-strategies.md § Overlap Boundaries.
Reference Map
| Reference | Read this when |
|---|---|
reference/recipes-detail.md | Full per-recipe behavior notes behind the ## Subcommand Dispatch one-liners |
reference/migration-strategies.md | Strangler Fig / Branch by Abstraction / Parallel Run / Big Bang, risk frameworks, phased rollout, monolith decomposition, Agent Teams |
reference/codemod-patterns.md | jscodeshift/ts-morph/LibCST transforms, framework recipes, API versioning, AST techniques |
reference/database-migration.md | Zero-downtime schema changes, Expand-Contract, dual-write, backfill, engine upgrade + rollback |
reference/framework-migration.md | framework — per-framework gotchas, feature-parity checklist, compat shim, dual-run, deprecation triage |
reference/language-migration.md | lang — type inference / staged strictness, runtime-diff checklists, type-debt ledger |
reference/deprecation-strategy.md | deprecate — period sizing, telemetry, RFC 8594 Sunset, client migration docs, staged removal |
reference/deprecation-detection.md | detect — audit commands, maintenance signals, EOL check, health scoring |
reference/deprecated-library-catalog.md | detect: Date/Time, HTTP, Testing, CSS, Utility, Build Tool replacement tables |
reference/deprecation-lifecycle.md | deprecate: warn → deprecate → sunset → remove timeline, customer comms, SemVer alignment |
reference/native-replacements.md | modernize: library-to-native API replacement table with bundle-impact estimates |
reference/strangler-fig-migration.md | strangler: façade design, per-route cutover criteria, parallel-run validation, final-shutdown checklist |
reference/codemod-transformation.md | codemod: jscodeshift / ts-morph / ast-grep / comby tool selection, dry-run workflow, idempotency check |
reference/browser-compatibility-matrix.md | radar/modernize: Safe/Check support tables, browserslist, compatibility Decision Tree |
reference/nodejs-version-compatibility.md | lang/radar for Node.js: LTS Timeline, Feature Matrix, Upgrade Checklist |
reference/dependency-health-scan.md | detect: scan commands, Health Check Script, Matrix, Checklist |
reference/migration-patterns.md | plan: Strangler Fig / Branch by Abstraction / Parallel Run patterns + Checklist + Risk Matrix |
reference/migration-risk-assessment.md | plan: risk matrix and migration strategy selection |
reference/dependency-upgrade-anti-patterns.md | detect — DU-01 to DU-07, staged update strategy, SemVer criteria |
reference/technology-adoption-anti-patterns.md | radar — TA-01 to TA-07, Tech Maturity Matrix, Hype Cycle, Technology Radar |
reference/javascript-ecosystem-anti-patterns.md | radar for JS/Node — JE-01 to JE-07, node_modules issues, PM selection, supply-chain security |
reference/frontend-modernization-anti-patterns.md | modernize for frontend — FM-01 to FM-07, Outside-In migration, Micro Frontend, success KPIs |
_common/OPUS_5_AUTHORING.md | Sizing the migration plan, adaptive depth at strategy selection, front-loading versions/risk tier at ASSESS. Critical: P3, P5 |
reference/autorun-schema.md | Emitting the AUTORUN _STEP_COMPLETE block — Shift-specific Output/Next schema |
_common/CODE_QUALITY.md | Writing/modifying code — 7-axis quality bar (SLD/SEC/RDB/MNT/TST/PRF/SCL) + CODE_QUALITY_GATE |
Output Requirements
A complete deliverable carries the following — a ceiling, not a floor. Emit only what the task exercised; never pad with N/A:
- Migration scope assessment (files, modules, APIs affected).
- Selected strategy with rationale.
- Phased migration plan with milestones and rollback points.
- Codemod scripts or transform specifications.
- Before/after verification test plan.
- Risk matrix with mitigation actions.
- Recommended next agent for handoff (Builder, Radar, Schema, Launch).
Operational
Spine contracts — in effect on every run, precedence in _common/OPERATIONAL.md § Contract Precedence: _common/VALUES.md · _common/BOUNDARIES.md · _common/HANDOFF.md · _common/AUTORUN.md · _common/GIT_GUIDELINES.md · _common/OUTPUT_STYLE.md · _common/OPUS_5_AUTHORING.md · _common/WORK_GATE.md.
Journal (.agents/shift.md): Read/update .agents/shift.md (create if missing) — only record project-specific migration patterns discovered, strategy effectiveness, codemod reuse opportunities, and version-specific gotchas.
- After significant Shift work, append to
.agents/PROJECT.md:| YYYY-MM-DD | Shift | (action) | (files) | (outcome) |
AUTORUN Support
See _common/AUTORUN.md for the protocol (_AGENT_CONTEXT input, mode semantics, error handling). Shift-specific _STEP_COMPLETE.Output schema lives in reference/autorun-schema.md.
Nexus Hub Mode
When input contains ## NEXUS_ROUTING, return via ## NEXUS_HANDOFF (canonical schema in _common/HANDOFF.md).
FAQ
What does the shift skill do?
Orchestrating migrations, upgrades, and modernization across frameworks, libraries, APIs, databases, and dependencies. Generates codemods, applies Strangler Fig, verifies equivalence, plans rollback.
How do I install shift?
Run npx skills add https://github.com/simota/agent-skills --skill shift in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/shift/ (personal) or .claude/skills/shift/ (project).
Which AI agents can use shift?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is shift safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains shift?
It is published by simota in simota/agent-skills. It has 77 recorded installs.
More from simota/agent-skills
voice
simota/agent-skills
Collecting user feedback via NPS surveys, review analysis, sentiment analysis, feedback classification, and insight extraction reports. Use when establishing feedback loops.
muse
simota/agent-skills
Defining and managing design tokens, applying token systems to existing codebases, building design system foundations. Use for spacing, color, typography, dark mode, cross-platform output.
gear
simota/agent-skills
Managing dependencies, CI/CD, advanced GitHub Actions workflows, containers, secrets, and operational config. Use for build, workflow, or environment work.
growth
simota/agent-skills
Open the skill to read its SKILL.md instructions.
Popular ai & agents skills
google-agents-cli-publish
google/agents-cli
This skill should be used when the user wants to "publish an agent", "publish my ADK agent", "register an agent with Gemini", "publish to Gemini" (formerly Gemini Enterprise), or needs guidance on the agents-cli publish gemini command. Also use when the user wants to "manage agents in Agent Registry", "list/update/delete registered agents", or "register an MCP server". Covers ADK vs A2A registration modes, programmatic and interactive usage, flag reference, auto-detection from deployment metadata, Agent Registry fleet management, and troubleshooting. Part of the agents-cli skills suite. Do NOT use for deployment (use google-agents-cli-deploy).
google-agents-cli-eval
google/agents-cli
This skill should be used when the user wants to "run an evaluation", "evaluate my agent", "evaluate my ADK agent", "write an eval dataset", "analyze eval failures", "compare eval results", "optimize agent", or needs guidance on the Gemini platform eval methodology and the Quality Flywheel. Covers eval metrics, dataset schema, LLM-as-judge scoring, and common failure causes. Applies to any agents-cli project, whatever framework the agent is written in. Do NOT use for agent API code patterns (ADK: use google-agents-cli-adk-code), deployment (use google-agents-cli-deploy), or project scaffolding (use google-agents-cli-scaffold).
skill-creator
anthropics/skills
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
codex-pet
prime-skills/runcomfy-agent-skills
Codex Pet generator on RunComfy. Build a Codex-compatible Codex Pet spritesheet.webp + pet.json from a single reference image, drop it into ${CODEXHOME:-$HOME/.codex}/pets/ / and Codex picks it up as a custom Codex Pet next to the 8 built-ins. This skill produces the exact Codex Pet atlas Codex expects (1536x1872 PNG/WebP, 8 cols x 9 rows, 192x208 cells, 9 animation states — idle, running-right, running-left, waving, jumping, failed, waiting, running, review). Calls OpenAI GPT Image 2 edit ONCE via the local RunComfy CLI as runcomfy run openai/gpt-image-2/edit to produce a canonical Codex Pet pose, then assembles all 9 animation rows programmatically with ImageMagick micro-transforms — no Codex Pro, no $imagegen, no OPENAIAPIKEY required, only RUNCOMFYTOKEN. Triggers on "codex pet", "create codex pet", "make codex pet", "hatch codex pet", "/hatch image", "desktop pet codex", "codex pets", "spritesheet.webp", or any explicit ask to build a custom pet for OpenAI Codex.
full-output-enforcement
leonxlnx/taste-skill
Overrides default LLM truncation behavior. Enforces complete code generation, bans placeholder patterns, and handles token-limit splits cleanly. Apply to any task requiring exhaustive, unabridged output.
executing-plans
obra/superpowers
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available