skillpanel/maister/migration
Claude Code and agent skill by skillpanel/maister
- community
Checking that the SKILL.md file is still in the repository.
Orchestrates the complete migration workflow from current state analysis through implementation to compatibility verification. Handles technology migrations, platform changes, and architecture pattern transitions with adaptive risk assessment, incremental execution, and rollback planning. Use when migrating technologies, platforms, or architecture patterns.
Install
npx vskill@latest install skillpanel/maister/migrationSKILL.md
Migration Orchestrator
Systematic migration workflow from current state analysis to verified migration with rollback capabilities.
Initialization
BEFORE executing any phase, you MUST complete these steps:
Step 0: Session-reminder conflict resolution (decide ONCE)
Before doing anything else, settle this policy now and do not re-litigate it at any gate:
`→ MANDATORY GATE` markers fire regardless of session-reminders, permission mode, or prior approval patterns. Auto / acceptEdits / bypassPermissions modes, reminders saying "work without stopping" / "continue without asking" / "minimize clarifying questions," and compaction summaries showing the user approving every prior gate do NOT exempt you from invoking AskUserQuestion at a gate. They apply only to your discretionary clarifications.
If you find yourself reasoning "the user has been approving everything, so I can skip this gate" or "auto-mode is on, so I should minimize questions" — that reasoning IS the failure mode. STOP and fire the gate.
Full framework rule: ../orchestrator-framework/references/orchestrator-patterns.md § 2 and § 2.1.
Step 1: Load Framework Patterns
Read the framework reference file NOW using the Read tool:
../orchestrator-framework/references/orchestrator-patterns.md- Delegation rules, interactive mode, state schema, initialization, context passing, issue resolution
Step 2: Initialize Workflow
- Capture the clock: run
date -u +"%Y-%m-%dT%H:%M:%SZ"via Bash NOW — you do NOT know the time from context. Every timestamp written this turn (created,updated,generated,phases[].started) uses this value. Date-only orT00:00:00Zvalues are the documented failure mode (orchestrator-patterns.md § 4 Timestamp Rule). Re-rundatein later turns before writing timestamps. - Validate the flags:
--type, when passed, must be one ofcode,data,architecture,general. On any other value, print those four and STOP — do not create the task directory, do not write state. A technology name belongs in the description, not the flag; Phase 2 classifies when the flag is absent. A valid value is recorded asmigration_context.migration_type.--user-docs, when passed, is recorded asorchestrator.options.docs_enabled: true. - Create Task Items: Use
TaskCreatefor all phases (see Phase Configuration), then set dependencies withTaskUpdate addBlockedBy - Create Task Directory:
.maister/tasks/migrations/YYYY-MM-DD-task-name/ - Initialize State: Create
orchestrator-state.ymlwith migration context - Set up Operator Dashboard (orchestrator-patterns.md § 8) — first read
.maister/config.ymland setorchestrator.options.html_output(default true if the file/key is absent). When `html_output` is false, SKIP this entire step — nodashboard.html, nodashboard-data.js, no browser auto-open — and proceed. Otherwise: copy../orchestrator-framework/assets/dashboard.htmlto the task root asdashboard.html, write the initialdashboard-data.js(all phases pending,task.type: "migration"), then auto-open it in the user's browser (open/xdg-open/startper platform, passing the plain absolute filesystem path — NEVER a hand-builtfile://URL; on failure just print the path — never block). On resume: re-copydashboard.htmlonly if missing; regeneratedashboard-data.jsfrom state; then auto-open it in the browser again (same opener as a new task — the OS focuses an already-open tab rather than duplicating). - Discover project documentation: Read
.maister/docs/INDEX.md(if exists), extract ALL file paths from the "Project Documentation" section — includes predefined docs AND any user-added project docs. Store asproject_context.project_doc_pathsin state.
Output:
Operator Visibility (applies to every phase)
Config gate: these rules assumeoptions.html_outputis true (read from.maister/config.ymlat init, default true). When false: skip the Dashboard-upkeep rule entirely (no dashboard files, no browser open, no rewrites) and the HTML-companions rule (do NOT passhtml_style_guide_path; subagents write md only). The Artifact Summary Contract (§ 7 TL;DR blocks) andphase_summariesin state stay active either way.
Cross-cutting rules from orchestrator-patterns.md (same as the development orchestrator):
- Artifact Summary Contract (§ 7): every artifact-writing subagent prompt MUST include the contract instruction (artifacts open with TL;DR / Key Decisions / Open Questions / Risks (the writer heading is
## Open Questions / Risks)). At context extraction, liftdecisions,risks, andartifactsintophase_summaries.[phase]— verbatim, never re-summarized. - Dashboard upkeep (§ 8): rewrite
dashboard-data.jsat every phase START (markin_progressbefore delegating), BEFORE firing every exit gate (register the finished phase's artifacts/summary/decisions/risks — the operator reviews them on the dashboard while answering; status staysin_progressuntil the gate passes), after every phase completion (including skipped phases, with reason), every gate decision, every verification cycle, and at finalization. Every rewrite starts withdate -u(one call per turn). It is a terse projection of state — never duplicate artifact content into it. - HTML companions (§ 9): pass
html_style_guide_path(absolute path to../orchestrator-framework/references/html-report-style.md) to specification-creator, implementation-planner, and implementation-verifier. Register returnedhtml_pathvalues inphase_summaries.[phase].artifacts[].htmlso the dashboard hero cards link HTML first. - icon_hint values per phase: 1
analysis, 2analysis, 3spec, 4plan, 5code, 6verify, 7verify, 8docs. - State writes (§ 4 Write Rule): update
orchestrator-state.ymlkey by key in place, validate it with a re-read after every write, and stop withAskUserQuestionon a malformed file — never continue on a state file the operator tooling cannot read.
When to Use
Use for:
- Migrating from one framework/library to another (e.g., Vue 2 → Vue 3, Express → Fastify)
- Changing database platforms (e.g., MySQL → PostgreSQL, MongoDB → DynamoDB)
- Refactoring architecture patterns (e.g., REST → GraphQL, Monolith → Microservices)
- Upgrading major versions with breaking changes
DO NOT use for: New features, bug fixes, pure refactoring without technology change.
Core Principles
- Analyze Before Migrating: Understand current system before planning target state
- Risk Assessment: Classify migration type (code/data/architecture) and assess complexity
- Incremental Execution: Support phased migration with rollback points
- Rollback Planning: Document undo procedures for each migration phase
- Dual-Run Support: Enable running old and new systems in parallel during transition
Migration Types
| Type | Keywords | Strategy | Risk Focus | |
|---|---|---|---|---|
| Code | framework, library, upgrade | Incremental or phased | Breaking changes, API differences | |
| Data | database, schema, data migration | Dual-run (zero downtime) | Data integrity, checksums | |
| Architecture | REST→GraphQL, monolith→microservices | Dual-run or phased | Compatibility, rollback |
Phase Configuration
| Phase | content | activeForm | Agent/Skill | |
|---|---|---|---|---|
| 1 | "Analyze current state" | "Analyzing current state" | codebase-analyzer | |
| 2 | "Plan target state and gaps" | "Planning target state and gaps" | gap-analyzer | |
| 3 | "Gather requirements & create migration strategy" | "Gathering requirements & creating migration strategy" | Direct + specification-creator (subagent) | |
| 4 | "Plan implementation" | "Planning implementation" | implementation-planner (subagent) | |
| 5 | "Execute migration" | "Executing migration" | implementation-plan-executor | |
| 6 | "Verify and test compatibility" | "Verifying and testing compatibility" | implementation-verifier | |
| 7 | "Resolve verification issues" | "Resolving verification issues" | Direct (conditional) | |
| 8 | "Generate documentation" | "Generating documentation" | user-docs-generator (optional) |
Workflow Phases
Phase 1: Current State Analysis & Clarifications
Purpose: Comprehensive analysis of current system before migration, followed by scope/requirements clarification Execute:
- Skill tool -
maister:codebase-analyzer - Update state with analysis results
- Direct - use AskUserQuestion for max 5 critical clarifying questions about migration scope, target system, and constraints
- Save clarifications to
analysis/clarifications.md
Output: analysis/current-state-analysis.md, analysis/clarifications.md State: Update migration_context.current_system, migration_context.clarifications_resolved, migration_context.phase_summaries.current_state_analysis
→ AUTO-CONTINUE — Do NOT end turn, do NOT prompt user. Proceed immediately to Phase 2.
Phase 2: Target State Planning & Gap Analysis
Purpose: Define target system and identify migration gaps Execute: Task tool - maister:gap-analyzer subagent Output: analysis/target-state-plan.md State: Update migration_context.migration_type, target_system, migration_strategy, risk_level, breaking_changes, migration_context.phase_summaries.gap_analysis
Gap Analyzer Tasks:
- Define target system from migration description
- Identify gaps (features to migrate, APIs to adapt, data to transform)
- Classify migration type (code/data/architecture/general), keeping a type supplied by
--type - Recommend migration strategy (incremental/big-bang/dual-run/phased)
- External research via WebSearch for version upgrades
→ MANDATORY GATE — fires regardless of permission mode, session-reminders, or prior approval patterns. Invoke AskUserQuestion now. Proceeding without a user response is a protocol violation (orchestrator-patterns.md § 2 / § 2.1).
AskUserQuestion - Display executive summary before asking. Extract from gap analysis: current system overview, target system, migration type classified, number of gaps identified, recommended strategy, risk level. Format as brief overview then "Continue to migration strategy?"
Phase 3: Migration Requirements & Strategy Specification
Phase entry self-check: Before executing this phase, locate theAskUserQuestiontool call from Phase 2 in this conversation. If you cannot point to its call ID, STOP and fire that gate now. State updates (completed_phases,TaskUpdate) without a correspondingAskUserQuestioncall are protocol violations — never paper over a missed gate by updating state.
Purpose: Gather migration requirements, then create detailed migration specification with rollback procedures Execute:
Part A — Migration Requirements Gathering (inline):
- Direct - use AskUserQuestion for migration-specific requirements (3-5 questions):
- Migration scope and boundaries (what's in/out of migration)
- Rollback expectations and downtime tolerance
- Data migration specifics (if data migration type)
- Dual-run requirements (if applicable)
- Existing code/config to preserve
- Frame as confirmable assumptions: "I assume X, is that correct?"
- Save gathered requirements to
analysis/requirements.md
Part B — Specification Creation (subagent):
- Task tool -
maister:specification-creatorsubagent
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingplugins/maister/skills/migration/SKILL.md
Popularity
- Repository stars
- 147
- Repository forks
- 18
- 7-day trend score
- 30
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/skillpanel/maister/migration)