/migrating-plugins
Sets up or migrates a Claude Code plugin, routing to creating-plugins or the validating + refactoring pipeline. Use when user says "setup plugin", "migrate plugin", "plugin from scratch", "check my plugin", "turn this into a plugin", "package this as plugin".
$ npx -y skills add wayne930242/Reflexive-Claude-Code --skill migrating-plugins --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/migrating-plugins
Context preview
The summary Claude sees to decide when to auto-load this skill.
Sets up or migrates a Claude Code plugin, routing to creating-plugins or the validating + refactoring pipeline. Use when user says "setup plugin", "migrate plugin", "plugin from scratch", "check my plugin", "turn this into a plugin", "package this as plugin".
SKILL.md
migrating-plugins.SKILL.mdname: migrating-plugins
description: Sets up or migrates a Claude Code plugin, routing to creating-plugins or the validating + refactoring pipeline. Use when user says "setup plugin", "migrate plugin", "plugin from scratch", "check my plugin", "turn this into a plugin", "package this as plugin".
Migrating Plugins
Overview
**Migrating plugins IS identifying what to work with, then routing to the correct workflow.**
A workspace may contain existing plugins, a script project that should become a plugin, or nothing. This skill discovers the state, asks the user what they want, resolves paths, then routes.
**Core principle:** Discover what exists. Ask the user. Then route.
Routing
**Pattern:** Tree **Handoff:** auto-invoke **Next:** `creating-plugins` | `validating-plugins` → `refactoring-plugins` **Chain:** plugin
Task Initialization (MANDATORY)
Follow [task initialization protocol](../../references/task-initialization.md).
**Tasks:** 1. Discover and select target 2. Assess state and classify 3. Propose conversion (if pre-plugin) 4. Route to appropriate skill chain
Announce: "Created 4 tasks. Starting execution..."
Plugin vs Project: Key Differences
| Component | Project | Plugin | |-----------|---------|--------| | CLAUDE.md | ✓ | ✗ | | .claude/rules/ | ✓ | ✗ | | .claude/settings.json | ✓ | ✗ (plugin has settings.json at root) | | .claude-plugin/plugin.json | ✗ | ✓ (manifest) | | marketplace.json | ✗ | ✓ (if marketplace) | | skills/ | .claude/skills/ | plugin-root/skills/ | | agents/ | .claude/agents/ | plugin-root/agents/ | | hooks/ | .claude/settings.json | plugin-root/hooks/hooks.json | | .mcp.json | ✓ | ✓ | | .lsp.json | ✗ | ✓ | | bin/ | ✗ | ✓ |
Task 1: Discover and Select Target
**Goal:** Find existing plugins or identify a script project to convert.
**Discovery strategy (try in order):**
1. **Check for marketplace.json** — scan for `**/.claude-plugin/marketplace.json`. Read `plugins` array for names and `source` paths.
2. **Check for standalone plugins** — scan for `**/.claude-plugin/plugin.json`. Each parent of `.claude-plugin/` is a plugin root.
3. **Check for script project** — if no plugins found, scan for signs of a convertible project:
- Script files (`*.sh`, `*.py`, `*.js`, `*.ts`) in root or `scripts/`, `src/`, `bin/`
- README.md describing a tool or utility
- Package manifest (`package.json`, `pyproject.toml`, `Cargo.toml`)
- Existing `.claude/` directory with skills, commands, or agents
4. **Check user-specified path** — if the user provided a path, use it directly.
**For each plugin found, record:**
- Name (from plugin.json `name` field)
- Root path
- Version
- Source path (from marketplace.json if applicable)
**If multiple plugins found:**
- Present numbered list, ask which to work on
**If exactly one plugin found:**
- Confirm: "Found plugin '[name]' at [path]. Proceed?"
**If no plugins but script project detected:**
- Announce: "No plugin found, but this looks like a script project that could become a plugin."
- List what was found (scripts, README, package manifest, .claude/ configs)
- Ask: "Do you want to package this as a Claude Code plugin?"
**If nothing found:**
- Ask: "Do you want to create a new plugin from scratch?"
**Set the target path** for all subsequent tasks.
**Verification:** Target is selected, path is resolved, user has confirmed.
Task 2: Assess State and Classify
**Goal:** Determine the maturity level of the target.
**Maturity classification:**
| Level | Criteria | Route | |-------|----------|-------| | **None** | No plugin, no scripts, user wants new | → `creating-plugins` | | **Pre-plugin** | Script project without `.claude-plugin/` — has scripts, tools, or `.claude/` configs that can become plugin components | → Task 3 (conversion proposal) → `creating-plugins` | | **Minimal** | Has `.claude-plugin/plugin.json` but missing skills/agents/hooks | → `validating-plugins` → `refactoring-plugins` | | **Complete** | Has manifest + skills + agents or hooks | → `validating-plugins` → `refactoring-plugins` |
**For Pre-plugin, scan and categorize existing assets:**
| Asset Type | Example | Becomes | |------------|---------|---------| | Scripts with reusable logic | `scripts/deploy.sh`, `tools/lint.py` | `bin/` executables or skill-bundled scripts | | Markdown instructions | `.claude/commands/*.md` | `skills/` or `commands/` | | Agent definitions | `.claude/agents/*.md` | `agents/` | | Hook scripts | `.claude/hooks/*` | `hooks/` | | Skill directories | `.claude/skills/*/SKILL.md` | `skills/` | | MCP server configs | `.mcp.json` | `.mcp.json` | | Validation/linting scripts | `scripts/validate.py` | `hooks/` |
**For each asset found, record:**
- Source path
- Type (script / instruction / agent / hook / skill / config)
- Suggested plugin component
- Line count
**Run `claude plugin validate`** if `.claude-plugin/` exists.
**Detect version bump documentation** (record for routing):
- Plugin root `CLAUDE.md` exists AND contains a version-bump section listing every version-bearing file (plugin.json, marketplace entries, README headers)
- Record as `version_bump_doc: present | absent | partial` (partial = CLAUDE.md exists but section missing or incomplete)
**Verification:** Clear maturity classification with asset inventory. Version bump doc state recorded.
Task 3: Propose Conversion (Pre-plugin Only)
**Skip if:** Maturity is None, Minimal, or Complete.
**Goal:** Present a conversion proposal for the script project.
**Conversion proposal format:**
## Plugin Conversion Proposal
Plugin name: [suggested-name]
Source: [project path]
| # | Source | Type | Plugin Component | Action |
|---|--------|------|-----------------|--------|
| 1 | scripts/deploy.sh | script | bin/deploy.sh | Copy to bin/, make executable |
| 2 | .claude/commands/review.md | instruction | skills/reviewing/SKILL.md | Convert to skill with frontmatter |
| 3 | .claude/agents/checker.md | agent | agents/checker.md | Co
Read more
name: migrating-plugins description: Sets up or migrates a Claude Code plugin, routing to creating-plugins or the validating + refactoring pipeline. Use when user says "setup plugin", "migrate plugin", "plugin from scratch", "check my plugin", "turn this into a plugin", "package this as plugin".
Migrating Plugins
Overview
**Migrating plugins IS identifying what to work with, then routing to the correct workflow.**
A workspace may contain existing plugins, a script project that should become a plugin, or nothing. This skill discovers the state, asks the user what they want, resolves paths, then routes.
**Core principle:** Discover what exists. Ask the user. Then route.
Routing
**Pattern:** Tree **Handoff:** auto-invoke **Next:** `creating-plugins` | `validating-plugins` → `refactoring-plugins` **Chain:** plugin
Task Initialization (MANDATORY)
Follow [task initialization protocol](../../references/task-initialization.md).
**Tasks:** 1. Discover and select target 2. Assess state and classify 3. Propose conversion (if pre-plugin) 4. Route to appropriate skill chain
Announce: "Created 4 tasks. Starting execution..."
Plugin vs Project: Key Differences
| Component | Project | Plugin | |-----------|---------|--------| | CLAUDE.md | ✓ | ✗ | | .claude/rules/ | ✓ | ✗ | | .claude/settings.json | ✓ | ✗ (plugin has settings.json at root) | | .claude-plugin/plugin.json | ✗ | ✓ (manifest) | | marketplace.json | ✗ | ✓ (if marketplace) | | skills/ | .claude/skills/ | plugin-root/skills/ | | agents/ | .claude/agents/ | plugin-root/agents/ | | hooks/ | .claude/settings.json | plugin-root/hooks/hooks.json | | .mcp.json | ✓ | ✓ | | .lsp.json | ✗ | ✓ | | bin/ | ✗ | ✓ |
Task 1: Discover and Select Target
**Goal:** Find existing plugins or identify a script project to convert.
**Discovery strategy (try in order):**
1. **Check for marketplace.json** — scan for `**/.claude-plugin/marketplace.json`. Read `plugins` array for names and `source` paths.
2. **Check for standalone plugins** — scan for `**/.claude-plugin/plugin.json`. Each parent of `.claude-plugin/` is a plugin root.
3. **Check for script project** — if no plugins found, scan for signs of a convertible project:
- Script files (`*.sh`, `*.py`, `*.js`, `*.ts`) in root or `scripts/`, `src/`, `bin/`
- README.md describing a tool or utility
- Package manifest (`package.json`, `pyproject.toml`, `Cargo.toml`)
- Existing `.claude/` directory with skills, commands, or agents
4. **Check user-specified path** — if the user provided a path, use it directly.
**For each plugin found, record:**
- Name (from plugin.json `name` field)
- Root path
- Version
- Source path (from marketplace.json if applicable)
**If multiple plugins found:**
- Present numbered list, ask which to work on
**If exactly one plugin found:**
- Confirm: "Found plugin '[name]' at [path]. Proceed?"
**If no plugins but script project detected:**
- Announce: "No plugin found, but this looks like a script project that could become a plugin."
- List what was found (scripts, README, package manifest, .claude/ configs)
- Ask: "Do you want to package this as a Claude Code plugin?"
**If nothing found:**
- Ask: "Do you want to create a new plugin from scratch?"
**Set the target path** for all subsequent tasks.
**Verification:** Target is selected, path is resolved, user has confirmed.
Task 2: Assess State and Classify
**Goal:** Determine the maturity level of the target.
**Maturity classification:**
| Level | Criteria | Route | |-------|----------|-------| | **None** | No plugin, no scripts, user wants new | → `creating-plugins` | | **Pre-plugin** | Script project without `.claude-plugin/` — has scripts, tools, or `.claude/` configs that can become plugin components | → Task 3 (conversion proposal) → `creating-plugins` | | **Minimal** | Has `.claude-plugin/plugin.json` but missing skills/agents/hooks | → `validating-plugins` → `refactoring-plugins` | | **Complete** | Has manifest + skills + agents or hooks | → `validating-plugins` → `refactoring-plugins` |
**For Pre-plugin, scan and categorize existing assets:**
| Asset Type | Example | Becomes | |------------|---------|---------| | Scripts with reusable logic | `scripts/deploy.sh`, `tools/lint.py` | `bin/` executables or skill-bundled scripts | | Markdown instructions | `.claude/commands/*.md` | `skills/` or `commands/` | | Agent definitions | `.claude/agents/*.md` | `agents/` | | Hook scripts | `.claude/hooks/*` | `hooks/` | | Skill directories | `.claude/skills/*/SKILL.md` | `skills/` | | MCP server configs | `.mcp.json` | `.mcp.json` | | Validation/linting scripts | `scripts/validate.py` | `hooks/` |
**For each asset found, record:**
- Source path
- Type (script / instruction / agent / hook / skill / config)
- Suggested plugin component
- Line count
**Run `claude plugin validate`** if `.claude-plugin/` exists.
**Detect version bump documentation** (record for routing):
- Plugin root `CLAUDE.md` exists AND contains a version-bump section listing every version-bearing file (plugin.json, marketplace entries, README headers)
- Record as `version_bump_doc: present | absent | partial` (partial = CLAUDE.md exists but section missing or incomplete)
**Verification:** Clear maturity classification with asset inventory. Version bump doc state recorded.
Task 3: Propose Conversion (Pre-plugin Only)
**Skip if:** Maturity is None, Minimal, or Complete.
**Goal:** Present a conversion proposal for the script project.
**Conversion proposal format:**
## Plugin Conversion Proposal Plugin name: [suggested-name] Source: [project path] | # | Source | Type | Plugin Component | Action | |---|--------|------|-----------------|--------| | 1 | scripts/deploy.sh | script | bin/deploy.sh | Copy to bin/, make executable | | 2 | .claude/commands/review.md | instruction | skills/reviewing/SKILL.md | Convert to skill with frontmatter | | 3 | .claude/agents/checker.md | agent | agents/checker.md | Co
Showing the first part of this file.
A Claude Code plugin marketplace for skills-driven Agentic Context Engineering (ACE) — build, analyze, and maintain agent systems with structured workflows.
Repo: wayne930242/Reflexive-Claude-Code
Other skills on reflexive-claude-code.
- /analyzing-codebases
Detects project languages and monorepo state, runs language-appropriate static analysis (dependency graph, complexity, duplication, semantic patterns), and produces a refactor map ranking hotspots. Use when user invokes /aref or explicitly asks to analyze a codebase for
Open skill - /applying-refactors
Executes a refactor plan phase-by-phase on a dedicated branch with per-phase commits and mandatory reviewer checkpoints. Use when characterization-tests scaffold is complete and plan has phases ready to execute.
Open skill - /finalizing-refactors
Writes AGENTS.md per subproject, archives run artifacts, and suggests rcc handoff conditionally. Use when verifying-refactors passes (PASS or PASS-WITH-WEAK-TESTS).
Open skill - /planning-refactors
Converts a refactor map into a phased plan using parallel-change, branch-by-abstraction, or strangler fig patterns. Use when user has approved the refactor map from analyzing-codebases.
Open skill - /scaffolding-characterization-tests
Adds golden/snapshot tests to untested hotspot modules before refactoring. Use when refactor plan marks any phase with characterization_test.status=must-scaffold.
Open skill - /verifying-refactors
Validates hard structural rules (no cycles, file/fn line caps, cognitive/cyclomatic complexity) and runs mutation testing on touched modules. Use when applying-refactors has completed all phases on the refactor branch.
Open skill

