plugins/maister/skills/migration/SKILL.md
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.
npx skillsauth add skillpanel/maister maister:migrationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Systematic migration workflow from current state analysis to verified migration with rollback capabilities.
BEFORE executing any phase, you MUST complete these steps:
Before doing anything else, settle this policy now and do not re-litigate it at any gate:
→ **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). / → 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.
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 resolutionTaskCreate for all phases (see Phase Configuration), then set dependencies with TaskUpdate addBlockedBy.maister/tasks/migrations/YYYY-MM-DD-task-name/orchestrator-state.yml with migration context.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 as project_context.project_doc_paths in state.Output:
🚀 Migration Orchestrator Started
Task: [migration description]
Directory: [task-path]
Starting Phase 1: Analyze current state...
Use for:
DO NOT use for: New features, bug fixes, pure refactoring without technology change.
| 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 | 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) |
Purpose: Comprehensive analysis of current system before migration, followed by scope/requirements clarification Execute:
maister:codebase-analyzeranalysis/clarifications.md
Output: analysis/current-state-analysis.md, analysis/clarifications.md
State: Update task_context with current system info, task_context.clarifications_resolved→ AUTO-CONTINUE — Do NOT end turn, do NOT prompt user. Proceed immediately to Phase 2.
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, risk_level, breaking_changes
Gap Analyzer Tasks:
→ 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 entry self-check: Before executing this phase, locate the
AskUserQuestiontool 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):
analysis/requirements.mdPart B — Specification Creation (subagent):
3. Task tool - maister:specification-creator subagent
Context to pass to subagent: task_path, task_type (migration), task_description, requirements_path (analysis/requirements.md), project_context_paths (INDEX.md + project_doc_paths from state — all discovered project docs), migration_type, current_system, target_system, risk_level, breaking_changes, phase_summaries (current_state_analysis, gap_analysis)
Output: analysis/requirements.md, implementation/spec.md, analysis/rollback-plan.md, optionally analysis/dual-run-plan.md
State: Update rollback_plan_created, dual_run_configured
→ 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. Read implementation/spec.md and extract: migration strategy chosen, scope boundaries, rollback approach, breaking changes identified, key constraints. Format as brief overview then "Continue to implementation planning?"
Phase entry self-check: Before executing this phase, locate the
AskUserQuestiontool call from Phase 3 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: Break migration into task groups with rollback steps
Execute: Task tool - maister:implementation-planner subagent
Output: implementation/implementation-plan.md with rollback procedures
State: Update task groups and dependencies
Context to pass to subagent: task_path, task_type (migration), migration_type, task_description, phase_summaries (current_state_analysis, gap_analysis, specification)
→ 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. Read implementation/implementation-plan.md and extract: number of task groups, total steps, rollback steps included, key dependencies, execution sequence. Format as brief overview then "Continue to execute migration?"
Phase entry self-check: Before executing this phase, locate the
AskUserQuestiontool call from Phase 4 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: Execute migration steps with incremental verification
ANTI-PATTERN — DO NOT DO THIS:
INVOKE NOW — Skill tool call:
Execute: Skill tool - maister:implementation-plan-executor
Output: Implemented migration changes, implementation/work-log.md
State: Update implementation progress, extract phase_summaries.implementation
📋 Standards Reminder: Review .maister/docs/INDEX.md before implementing.
SELF-CHECK: Did you just invoke the Skill tool with maister:implementation-plan-executor? Or did you start writing migration code yourself? If the latter, STOP immediately and invoke the Skill tool instead.
⚠️ POST-IMPLEMENTATION CONTINUATION — After the skill completes and returns control:
orchestrator-state.yml to confirm you are the orchestratorcompleted_phases→ 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 phase_summaries.implementation and implementation/work-log.md: migration steps completed, files changed, test results, rollback readiness status. Format as brief overview then "Continue to verification?"
Phase entry self-check: Before executing this phase, locate the
AskUserQuestiontool call from Phase 5 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: Verify migration success with compatibility and rollback testing
Execute: Skill tool - maister:implementation-verifier
Output: verification/implementation-verification.md, verification/compatibility-test-results.md
State: Update verification results
Migration-Specific Checks:
⚠️ POST-VERIFICATION CONTINUATION — After the skill completes and returns control:
orchestrator-state.yml to confirm you are the orchestratorcompleted_phases→ 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 verification results: overall verdict, issue counts by severity, compatibility test results, data integrity status, rollback test results. Format as detailed overview then "Continue to Phase [7 or 8]?"
Phase entry self-check: Before executing this phase, locate the
AskUserQuestiontool call from Phase 6 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: Fix verification issues through direct editing and re-verification
Execute: Direct - apply fixes, re-verify
Output: Updated code, verification_context.fixes_applied
State: Update reverify_count, decisions_made
Skip if: verdict = PASS
Process:
maister:implementation-verifier → return to Step 1Data Safety Critical: HALT on any data integrity issue - never auto-fix data problems. Always present data issues to user with rollback option.
Exit Conditions:
→ 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: total issues found, issues fixed, issues remaining by severity. Then "Continue to documentation?"
Phase entry self-check: Before executing this phase, locate the
AskUserQuestiontool call from the preceding phase 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: Create migration guide for end users
Execute: Task tool - maister:user-docs-generator subagent
Output: documentation/migration-guide.md
State: Set documentation complete
Skip if: options.docs_enabled = false
Documentation Covers:
→ End of workflow
Migration-specific fields in orchestrator-state.yml:
migration_context:
migration_type: "code" | "data" | "architecture" | "general"
current_system:
description: null
technologies: []
target_system:
description: null
technologies: []
migration_strategy:
approach: "incremental" | "big-bang" | "dual-run" | "phased"
phases: []
risk_level: null
breaking_changes: []
rollback_plan_created: false
dual_run_configured: false
external_research:
performed: false
category: null
breaking_changes: []
migration_guide_url: null
verification_context:
last_status: null
issues_found: null
fixes_applied: []
decisions_made: []
reverify_count: 0
options:
docs_enabled: false
.maister/tasks/migrations/YYYY-MM-DD-migration-name/
├── orchestrator-state.yml
├── analysis/
│ ├── current-state-analysis.md # Phase 1
│ ├── target-state-plan.md # Phase 2
│ ├── requirements.md # Phase 3
│ ├── rollback-plan.md # Phase 3
│ └── dual-run-plan.md # Phase 3 (if dual-run)
├── implementation/
│ ├── spec.md # Phase 3
│ ├── implementation-plan.md # Phase 4
│ └── work-log.md # Phase 5
├── verification/
│ ├── implementation-verification.md # Phase 6
│ └── compatibility-test-results.md # Phase 6
└── documentation/
└── migration-guide.md # Phase 8 (optional)
| Phase | Max Attempts | Strategy | |-------|--------------|----------| | 1 | 2 | Expand search patterns, prompt user for file paths | | 2 | 2 | Re-prompt for target details | | 3 | 2 | Re-gather requirements, re-invoke spec-creator subagent, regenerate rollback plan | | 4 | 2 | Regenerate with migration constraints | | 5 | 5 | Fix syntax errors, prompt user on repeated failure | | 6 | 3 | Fix-then-reverify. HALT on data integrity issues | | 8 | 1 | Generate text-only without screenshots |
Invoked via:
/maister:migration [description] [--type=TYPE] [--sequential] (new)/maister:migration [task-path] [--from=PHASE] [--sequential] (resume)Flags:
--type=TYPE: Migration category (e.g. database, api, framework)--from=PHASE: Resume from specific phase--sequential: Disable parallel wave dispatch in implementation-plan-executor; run one task group at a time. Persisted as orchestrator.options.sequential: true in orchestrator-state.yml. Defaults to off (parallel waves).Task directory: .maister/tasks/migrations/YYYY-MM-DD-task-name/
documentation
Orchestrates comprehensive research workflows from question definition through findings documentation. Handles technical, requirements, literature, and mixed research types with adaptive methodology, multi-source gathering, pattern synthesis, and evidence-based reporting. Supports standalone research tasks and embedded research phase in other workflows.
data-ai
Interactive product/feature design orchestrator. Transforms fuzzy ideas into structured product briefs through collaborative exploration, iterative refinement, and visual prototyping. Adaptive phases detect design complexity and adjust depth.
development
Orchestrates performance optimization workflows using static code analysis to identify bottlenecks (N+1 queries, missing indexes, O(n^2) algorithms, blocking I/O, memory leaks). Accepts optional user-provided profiling data. Reuses standard specification, planning, implementation, and verification phases.
development
Shared orchestration patterns for all workflow orchestrators. NOT an executable skill - provides reference documentation for phase execution, state management, interactive mode, and initialization. All orchestrators reference these patterns.