migrate
Skill426 starsChanged 6 months agoMITView on GitHub
Migrate from npm-installed metaswarm to the marketplace plugin — removes redundant files with safety checks
- Deletes or force-pushes
63 other projects use a version of this.
Adopted by
Most recently taken up by
- tuist/agent-plugintheir own version, first seen Nov 8, 2026
- codewithmukesh/dotnet-claude-kittheir own version, first seen Nov 8, 2026
- jwm-axoni/claude-workbenchtheir own version, first seen Nov 8, 2026
- AsiaOstrich/EngramGraphtheir own version, first seen Nov 8, 2026
- DawnEver/claude-code-configtheir own version, first seen Nov 6, 2026
- cykedev/vereinsheimtheir own version, first seen Nov 3, 2026
Used with
Projects with it also use incident, sdd and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
JkudjoSkillincident
Production incident response — structured triage, hypothesis tree, safe remediation, incident record
Also in 4 projects that use this
liatrio-labsSkillsdd
Execute the Liatrio Spec-Driven Development (SDD) workflow when explicitly invoked by the user. NOTE: this skill is NOT intended to be dynamically loaded or automatically triggered; it should only ever be explicitly called by the user.
Also in 4 projects that use this
BerryKuipersSkillscaffold
Detect project stack, apply architecture patterns, wire quality gates, and scaffold features. Use when bootstrapping a project, adding a vertical slice, wiring CI/CD, adding Docker compose, or setting up quality gates.
Also in 4 projects that use this
MicrosoftSkillinit
Also in 8 projects that use this
agenticnotetakingSkillupgrade
Apply plugin knowledge base updates to an existing generated system. Consults the Ars Contexta research graph for methodology improvements, proposes skill upgrades with research justification. Never auto-implements. Triggers on "/upgrade", "upgrade skills", "check for improvements", "update methodology".
Also in 3 projects that use this
genomewalkerSkillcheckpoint
Save a checkpoint of task status, decisions, active files, and next steps
Also in 5 projects that use this
Other versions63 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 63
- garrytan/gbrain★ 32ksame name
- tuist/tuist★ 5.9ksame name
- parcadei/Continuous-Claude★ 3.9ksame name
- parcadei/Continuous-Claude-v2★ 3.9ksame name
- parcadei/Continuous-Claude-v3★ 3.9ksame name
- codewithmukesh/dotnet-claude-kit★ 808same name
- pipecat-ai/gradient-bang★ 420same name
- govctl-org/govctl★ 276same name
- AsiaOstrich/universal-dev-standards★ 84same name
- jackmusick/bifrost★ 75same name
53 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository19 other files it gives its agents.
- AGENTS.mdAGENTS.md
- skills/setup/templates/AGENTS.mdAGENTS.md
- templates/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- skills/setup/templates/CLAUDE.mdCLAUDE.md
- templates/CLAUDE.mdCLAUDE.md
- brainstorming-extensionSkill
- create-issueSkill
- design-review-gateSkill
- external-toolsSkill
- handling-pr-commentsSkill
- handoffSkill
- orchestrated-executionSkill
- plan-review-gateSkill
- pr-shepherdSkill
- setupSkill
- startSkill
- statusSkill
- visual-reviewSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
14 rules. 0 are common, 9 are distinctive, and 5 are very specific to this project.
0
Common
Most of the 50 edited versions we read keep these.
9
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 18
Before presenting any migration preview or file list, ALWAYS lead with this framing:
- Very specific: line 39
Read .metaswarm/project-profile.json -- if "distribution": "plugin" is already set, inform the user migration was already completed and exit
- Very specific: line 40
Verify .claude/plugins/metaswarm/.claude-plugin/plugin.json exists -- if not, there is nothing to migrate.
- Very specific: line 42
If the plugin is not loaded, the user needs to install it first: /plugin marketplace add dsifry/metaswarm-marketplace
- Distinctive: line 125
Ask: "Ready to clean up the redundant framework files?" (not "Ready to delete files?")
- Distinctive: line 127
If the user chooses "diff", display the difference between their version and the plugin's, then re-ask
- Distinctive: line 134
Run git status to check for uncommitted changes
- Distinctive: line 135
If uncommitted changes exist, warn: "Recommended to commit or stash before migrating so changes are in their own commit.
- Distinctive: line 136
If the user declines, exit
- Distinctive: line 142
Announce what you're doing: Before running any commands, say:
- Very specific: line 164
Write 6 shims to .claude/commands/ (same as setup skill):
- Distinctive: line 181
If a shim already exists with different content, ask before overwriting.
- Very specific: line 230
Run MA="$(command -v metaswarm-agents.sh || echo "${CLAUDE_PLUGIN_ROOT:-$PLUGIN_ROOT}/bin/metaswarm-agents.sh")".
- Distinctive: line 237
All removals use git rm, which only stages changes — files are NOT deleted from git history.
“Common” is measured: kept by at least 6 in 10 of the 50 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Migration Skill
Migrate a project from npm-installed metaswarm (npx metaswarm init) to the marketplace plugin. Removes redundant embedded files with a safety protocol that prevents data loss.
When to use: The SessionStart hook detects .claude/plugins/metaswarm/.claude-plugin/plugin.json (legacy embedded plugin) and recommends running this skill.
IMPORTANT: Safety & Messaging Guidelines
The user MUST understand this before any file list is shown:
Before presenting any migration preview or file list, ALWAYS lead with this framing:
What this migration does: The marketplace plugin now provides all the skills, commands, rubrics, and guides that were previously copied into your project directory. This migration simply removes those redundant copies — the originals now live in the plugin itself.
Nothing is lost: Your project-specific files (CLAUDE.md, .coverage-thresholds.json, .beads/, bin/, scripts/) are NEVER touched. Only duplicate metaswarm framework files are removed.
Fully reversible: All removals are staged with
git rm(not permanently deleted). Before you commit:
- Undo everything:
git restore --staged . && git checkout -- .- After committing:
git revert HEADNo commit is made automatically — you review and commit when you're satisfied.
Tone: Be reassuring, not alarming. Say "cleaning up XX redundant copies" not "deleting XX files". Say "these files now live in the plugin" not "these files will be removed". Frame the migration as housekeeping, not destruction.
When showing file counts: If there are many files (e.g., 40+), explain that the large count is because the old npm installer copied the entire plugin framework into .claude/plugins/metaswarm/ — that one directory accounts for most of the count, and it's all framework code that's now served directly by the plugin.
Step 1: Pre-flight Check
- Confirm this skill is running from the marketplace plugin (if this skill loaded, the plugin is active)
- Read
.metaswarm/project-profile.json-- if"distribution": "plugin"is already set, inform the user migration was already completed and exit - Verify
.claude/plugins/metaswarm/.claude-plugin/plugin.jsonexists -- if not, there is nothing to migrate; inform the user and exit
If the plugin is not loaded, the user needs to install it first: /plugin marketplace add dsifry/metaswarm-marketplace
Step 2: Inventory Legacy Files
Scan for files installed by npx metaswarm init that are now provided by the marketplace plugin.
Candidates for removal:
| Category | Path pattern |
| Embedded plugin | .claude/plugins/metaswarm/ (entire directory) |
| Rubrics | .claude/rubrics/*.md |
| Guides | .claude/guides/*.md |
| Old commands | .claude/commands/metaswarm-setup.md, .claude/commands/metaswarm-update-version.md |
NEVER removed (project-local files): CLAUDE.md, .coverage-thresholds.json, .metaswarm/project-profile.json, .beads/, bin/, scripts/, .github/workflows/, .claude/commands/ shims.
Step 3: Content Verification
For each removal candidate, verify it is an unmodified metaswarm file using SHA-256 hash comparison.
Hash protocol:
- Read file content
- Normalize line endings to LF (
\r\n->\n,\r->\n) - Strip trailing whitespace from each line
- Strip trailing newlines
- Compute SHA-256 of normalized content
- Compare against hash of the corresponding file from the marketplace plugin's own directories (rubrics/, guides/, etc.)
Computing hashes from the plugin's live files ensures the hash list stays current -- no hardcoded hashes that drift.
Classification:
| Result | Action |
| Hash matches | Unmodified -- add to deletion list |
| Hash differs | User-modified -- flag for user decision, never auto-delete |
| Not in hash list | Unknown file -- skip entirely |
Step 4: Dry Run Preview
Display the complete migration plan before any changes. Lead with the safety framing from the guidelines above, then show the preview:
## Migration Preview
These are redundant copies of framework files that are now provided by the plugin.
All removals are staged (not committed) — you can undo everything before committing.
### Redundant framework files to clean up (XX files)
These are unmodified copies that the plugin now provides directly:
- .claude/plugins/metaswarm/ (embedded plugin copy — XX files, now served by marketplace plugin)
- .claude/rubrics/<each matching file> (now in plugin's rubrics/)
- .claude/guides/<each matching file> (now in plugin's guides/)
- .claude/commands/metaswarm-setup.md (replaced by plugin command)
- .claude/commands/metaswarm-update-version.md (replaced by plugin command)
### Files you've customized (require your decision)
- .claude/rubrics/code-review-rubric.md (MODIFIED — your changes are preserved until you decide)
### Your project files (NEVER touched)
- CLAUDE.md, .coverage-thresholds.json, .metaswarm/, .beads/, bin/, scripts/
### What gets added
- 6 command shims in .claude/commands/ (thin wrappers that route to plugin commands)
- .metaswarm/project-profile.json updated with "distribution": "plugin"
### How to undo (before committing)
git restore --staged . && git checkout -- .Step 5: User Confirmation
Use AskUserQuestion:
- Remind the user: "This stages the cleanup — nothing is committed yet. You can undo with
git restore --staged . && git checkout -- ." - Ask: "Ready to clean up the redundant framework files?" (not "Ready to delete files?")
- For each user-modified file, ask individually: keep, remove, or show diff
- If the user chooses "diff", display the difference between their version and the plugin's, then re-ask
Step 6: Git Safety
Before executing removals:
- Run
git statusto check for uncommitted changes - If uncommitted changes exist, warn: "Recommended to commit or stash before migrating so changes are in their own commit. Continue anyway?"
- If the user declines, exit
Step 7: Cleanup
Announce what you're doing: Before running any commands, say:
"Staging the redundant files for removal. These are all framework copies — your project files are untouched. Nothing is committed yet."
Git-tracked files -- use git rm (staged, reversible via git checkout):
git rm -rf .claude/plugins/metaswarm/
git rm .claude/rubrics/<each confirmed file>
git rm .claude/guides/<each confirmed file>
git rm .claude/commands/metaswarm-setup.md
git rm .claude/commands/metaswarm-update-version.mdAfter running: Reassure: "Done — XX files staged for removal. These are only staged, not committed. Run git status to see the staged changes, or git restore --staged . && git checkout -- . to undo."
Untracked files -- use rm -f (unlikely but handle gracefully).
Empty directories -- remove .claude/rubrics/ and .claude/guides/ if empty after cleanup. Do NOT remove .claude/commands/ (shims remain).
Step 8: Command Shim Creation
Write 6 shims to .claude/commands/ (same as setup skill):
| Shim | Routes to |
start-task.md | /metaswarm:start-task |
prime.md | /metaswarm:prime |
review-design.md | /metaswarm:review-design |
self-reflect.md | /metaswarm:self-reflect |
pr-shepherd.md | /metaswarm:pr-shepherd |
brainstorm.md | /metaswarm:brainstorm |
Each shim:
<!-- Created by metaswarm setup. Routes to the metaswarm plugin. Safe to delete if you uninstall metaswarm. -->
Invoke the `/metaswarm:<command-name>` skill with any arguments the user provided.If a shim already exists with different content, ask before overwriting.
Step 9: Profile Update
Merge these fields into .metaswarm/project-profile.json (preserve existing fields):
{
"distribution": "plugin",
"migrated_at": "<ISO 8601 timestamp>",
"migrated_from": "npm"
}Step 10: Post-Migration Summary
Display what was done and next steps:
## Migration Complete
Cleaned up XX redundant framework files that are now provided by the marketplace plugin.
Your project files (CLAUDE.md, .coverage-thresholds.json, .beads/, etc.) were not touched.
### What changed
- Removed XX redundant framework copies (now served by plugin)
- Added 6 command shims to .claude/commands/
- Updated project profile to "distribution": "plugin"
### Next steps
1. Review staged changes: `git diff --cached --stat`
2. Commit when satisfied: `git commit -m "chore: migrate metaswarm from npm to marketplace plugin"`
3. Verify everything works: try `/start-task`
### If anything seems wrong
- Undo before committing: `git restore --staged . && git checkout -- .`
- Undo after committing: `git revert HEAD`
- Full re-install: `npx metaswarm install` (npm package still available)Generated agent files
/setup and /update generate .claude/agents/metaswarm-<role>.md from .metaswarm/models.yaml. These are separate from the legacy files above, and removing them is also how to uninstall metaswarm's phase agents.
- List them for the user as removable:
ls .claude/agents/metaswarm-*.md - Run
MA="$(command -v metaswarm-agents.sh || echo "${CLAUDE_PLUGIN_ROOT:-$PLUGIN_ROOT}/bin/metaswarm-agents.sh")"; "$MA" clean(usescommand -v metaswarm-agents.sh). It removes only files carrying thegenerated-by: metaswarmheader, so user-authored agents (including a same-named file without the header) are left alone. .metaswarm/models.yamlis yours to keep or delete. After cleaning, the plugin's own phase agents (metaswarm:<role>) still apply with their default models.
Rollback (Nothing Is Permanent)
All removals use git rm, which only stages changes — files are NOT deleted from git history. The migration never auto-commits, so the user always has a chance to review and undo:
- Before committing (full undo):
git restore --staged . && git checkout -- . - After committing (full undo):
git revert HEAD - Single file recovery:
git checkout HEAD~1 -- <path> - Full re-install of old approach:
npx metaswarm install(npm package still published)
Error Handling
| Error | Action |
.metaswarm/project-profile.json missing | Create with minimal fields, proceed |
git rm fails on a file | Log error, skip file, continue |
| Permission denied | Warn user, skip file, continue |
| Plugin not loaded | Exit with install instructions |
metaswarm_version < 0.8.0 | Warn manual intervention may be needed |
Anti-Patterns
| Anti-Pattern | Do Instead |
| Auto-deleting modified files | Flag and ask explicitly |
| Deleting before confirming plugin works | Pre-flight check first |
Using rm -rf on tracked files | Use git rm (reversible) |
| Skipping dry run preview | Always show full preview |
| Removing project-local files | Never touch CLAUDE.md, .beads/, bin/, scripts/ |
| Saying "deleting XX files" or "removing XX files" | Say "cleaning up XX redundant copies" |
| Showing file list without safety context | Always lead with the safety framing |
Jumping straight to git rm commands | Explain what you're doing and why it's safe first |
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

