[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DF680AEP50TJ52WH9JPNJZ":3,"skill-same:01M6DF680AEP50TJ52WH9JPNJZ":121},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":24,"linkOnly":25,"markdownContent":26,"markdownBody":27,"frontMatter":28,"refName":29,"commitSha":30,"skillDirectory":31,"forksCount":14,"repositoryHtmlUrl":32,"repositoryHomepageUrl":6,"ownerHtmlUrl":33,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":34,"install":35,"resources":48},"01M6DF680AEP50TJ52WH9JPNJZ","migrate",null,"Migrate from npm-installed metaswarm to the marketplace plugin — removes redundant files with safety checks","Prekzursil\u002Fagent-skills-toolchain","Prekzursil","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F54636077?v=4","01M6DACZ1PCQHD99SCR1YXG28B","Andrei Mihai Visalon","01M6DACZ670WZF535V3WYYSS4Z",0,"MIT","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fmigrate\u002FSKILL.md",[],[5,19,20,21,22,23],"plugin","npm","marketplace","Safety","files","2026-11-10 10:12:30",false,"---\nname: migrate\ndescription: Migrate from npm-installed metaswarm to the marketplace plugin — removes redundant files with safety checks\n---\n\n# Migration Skill\n\nMigrate 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.\n\n**When to use**: The SessionStart hook detects `.claude\u002Fplugins\u002Fmetaswarm\u002F.claude-plugin\u002Fplugin.json` (legacy embedded plugin) and recommends running this skill.\n\n---\n\n## IMPORTANT: Safety & Messaging Guidelines\n\n**The user MUST understand this before any file list is shown:**\n\nBefore presenting any migration preview or file list, ALWAYS lead with this framing:\n\n> **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.\n>\n> **Nothing is lost**: Your project-specific files (CLAUDE.md, .coverage-thresholds.json, .beads\u002F, bin\u002F, scripts\u002F) are NEVER touched. Only duplicate metaswarm framework files are removed.\n>\n> **Fully reversible**: All removals are staged with `git rm` (not permanently deleted). Before you commit:\n> - Undo everything: `git restore --staged . && git checkout -- .`\n> - After committing: `git revert HEAD`\n>\n> **No commit is made automatically** — you review and commit when you're satisfied.\n\n**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.\n\n**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\u002Fplugins\u002Fmetaswarm\u002F` — that one directory accounts for most of the count, and it's all framework code that's now served directly by the plugin.\n\n---\n\n## Step 1: Pre-flight Check\n\n1. Confirm this skill is running from the marketplace plugin (if this skill loaded, the plugin is active)\n2. Read `.metaswarm\u002Fproject-profile.json` -- if `\"distribution\": \"plugin\"` is already set, inform the user migration was already completed and exit\n3. Verify `.claude\u002Fplugins\u002Fmetaswarm\u002F.claude-plugin\u002Fplugin.json` exists -- if not, there is nothing to migrate; inform the user and exit\n\nIf the plugin is not loaded, the user needs to install it first: `\u002Fplugin marketplace add dsifry\u002Fmetaswarm-marketplace`\n\n---\n\n## Step 2: Inventory Legacy Files\n\nScan for files installed by `npx metaswarm init` that are now provided by the marketplace plugin.\n\n**Candidates for removal:**\n\n| Category | Path pattern |\n|---|---|\n| Embedded plugin | `.claude\u002Fplugins\u002Fmetaswarm\u002F` (entire directory) |\n| Rubrics | `.claude\u002Frubrics\u002F*.md` |\n| Guides | `.claude\u002Fguides\u002F*.md` |\n| Old commands | `.claude\u002Fcommands\u002Fmetaswarm-setup.md`, `.claude\u002Fcommands\u002Fmetaswarm-update-version.md` |\n\n**NEVER removed** (project-local files): `CLAUDE.md`, `.coverage-thresholds.json`, `.metaswarm\u002Fproject-profile.json`, `.beads\u002F`, `bin\u002F`, `scripts\u002F`, `.github\u002Fworkflows\u002F`, `.claude\u002Fcommands\u002F` shims.\n\n---\n\n## Step 3: Content Verification\n\nFor each removal candidate, verify it is an unmodified metaswarm file using SHA-256 hash comparison.\n\n**Hash protocol:**\n1. Read file content\n2. Normalize line endings to LF (`\\r\\n` -> `\\n`, `\\r` -> `\\n`)\n3. Strip trailing whitespace from each line\n4. Strip trailing newlines\n5. Compute SHA-256 of normalized content\n6. Compare against hash of the corresponding file from the marketplace plugin's own directories (rubrics\u002F, guides\u002F, etc.)\n\nComputing hashes from the plugin's live files ensures the hash list stays current -- no hardcoded hashes that drift.\n\n**Classification:**\n\n| Result | Action |\n|---|---|\n| Hash matches | **Unmodified** -- add to deletion list |\n| Hash differs | **User-modified** -- flag for user decision, never auto-delete |\n| Not in hash list | **Unknown file** -- skip entirely |\n\n---\n\n## Step 4: Dry Run Preview\n\nDisplay the complete migration plan before any changes. **Lead with the safety framing from the guidelines above**, then show the preview:\n\n```\n## Migration Preview\n\nThese are redundant copies of framework files that are now provided by the plugin.\nAll removals are staged (not committed) — you can undo everything before committing.\n\n### Redundant framework files to clean up (XX files)\nThese are unmodified copies that the plugin now provides directly:\n- .claude\u002Fplugins\u002Fmetaswarm\u002F (embedded plugin copy — XX files, now served by marketplace plugin)\n- .claude\u002Frubrics\u002F\u003Ceach matching file> (now in plugin's rubrics\u002F)\n- .claude\u002Fguides\u002F\u003Ceach matching file> (now in plugin's guides\u002F)\n- .claude\u002Fcommands\u002Fmetaswarm-setup.md (replaced by plugin command)\n- .claude\u002Fcommands\u002Fmetaswarm-update-version.md (replaced by plugin command)\n\n### Files you've customized (require your decision)\n- .claude\u002Frubrics\u002Fcode-review-rubric.md (MODIFIED — your changes are preserved until you decide)\n\n### Your project files (NEVER touched)\n- CLAUDE.md, .coverage-thresholds.json, .metaswarm\u002F, .beads\u002F, bin\u002F, scripts\u002F\n\n### What gets added\n- 6 command shims in .claude\u002Fcommands\u002F (thin wrappers that route to plugin commands)\n- .metaswarm\u002Fproject-profile.json updated with \"distribution\": \"plugin\"\n\n### How to undo (before committing)\ngit restore --staged . && git checkout -- .\n```\n\n---\n\n## Step 5: User Confirmation\n\nUse `AskUserQuestion`:\n- Remind the user: \"This stages the cleanup — nothing is committed yet. You can undo with `git restore --staged . && git checkout -- .`\"\n- Ask: \"Ready to clean up the redundant framework files?\" (not \"Ready to delete files?\")\n- For each user-modified file, ask individually: keep, remove, or show diff\n- If the user chooses \"diff\", display the difference between their version and the plugin's, then re-ask\n\n---\n\n## Step 6: Git Safety\n\nBefore executing removals:\n1. Run `git status` to check for uncommitted changes\n2. If uncommitted changes exist, warn: \"Recommended to commit or stash before migrating so changes are in their own commit. Continue anyway?\"\n3. If the user declines, exit\n\n---\n\n## Step 7: Cleanup\n\n**Announce what you're doing**: Before running any commands, say:\n> \"Staging the redundant files for removal. These are all framework copies — your project files are untouched. Nothing is committed yet.\"\n\n**Git-tracked files** -- use `git rm` (staged, reversible via `git checkout`):\n```bash\ngit rm -rf .claude\u002Fplugins\u002Fmetaswarm\u002F\ngit rm .claude\u002Frubrics\u002F\u003Ceach confirmed file>\ngit rm .claude\u002Fguides\u002F\u003Ceach confirmed file>\ngit rm .claude\u002Fcommands\u002Fmetaswarm-setup.md\ngit rm .claude\u002Fcommands\u002Fmetaswarm-update-version.md\n```\n\n**After 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.\"\n\n**Untracked files** -- use `rm -f` (unlikely but handle gracefully).\n\n**Empty directories** -- remove `.claude\u002Frubrics\u002F` and `.claude\u002Fguides\u002F` if empty after cleanup. Do NOT remove `.claude\u002Fcommands\u002F` (shims remain).\n\n---\n\n## Step 8: Command Shim Creation\n\nWrite 6 shims to `.claude\u002Fcommands\u002F` (same as setup skill):\n\n| Shim | Routes to |\n|---|---|\n| `start-task.md` | `\u002Fmetaswarm:start-task` |\n| `prime.md` | `\u002Fmetaswarm:prime` |\n| `review-design.md` | `\u002Fmetaswarm:review-design` |\n| `self-reflect.md` | `\u002Fmetaswarm:self-reflect` |\n| `pr-shepherd.md` | `\u002Fmetaswarm:pr-shepherd` |\n| `brainstorm.md` | `\u002Fmetaswarm:brainstorm` |\n\nEach shim:\n```markdown\n\u003C!-- Created by metaswarm setup. Routes to the metaswarm plugin. Safe to delete if you uninstall metaswarm. -->\nInvoke the `\u002Fmetaswarm:\u003Ccommand-name>` skill with any arguments the user provided.\n```\n\nIf a shim already exists with different content, ask before overwriting.\n\n---\n\n## Step 9: Profile Update\n\nMerge these fields into `.metaswarm\u002Fproject-profile.json` (preserve existing fields):\n```json\n{\n  \"distribution\": \"plugin\",\n  \"migrated_at\": \"\u003CISO 8601 timestamp>\",\n  \"migrated_from\": \"npm\"\n}\n```\n\n---\n\n## Step 10: Post-Migration Summary\n\nDisplay what was done and next steps:\n```\n## Migration Complete\n\nCleaned up XX redundant framework files that are now provided by the marketplace plugin.\nYour project files (CLAUDE.md, .coverage-thresholds.json, .beads\u002F, etc.) were not touched.\n\n### What changed\n- Removed XX redundant framework copies (now served by plugin)\n- Added 6 command shims to .claude\u002Fcommands\u002F\n- Updated project profile to \"distribution\": \"plugin\"\n\n### Next steps\n1. Review staged changes: `git diff --cached --stat`\n2. Commit when satisfied: `git commit -m \"chore: migrate metaswarm from npm to marketplace plugin\"`\n3. Verify everything works: try `\u002Fstart-task`\n\n### If anything seems wrong\n- Undo before committing: `git restore --staged . && git checkout -- .`\n- Undo after committing: `git revert HEAD`\n- Full re-install: `npx metaswarm install` (npm package still available)\n```\n\n---\n\n## Rollback (Nothing Is Permanent)\n\nAll 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:\n\n- **Before committing** (full undo): `git restore --staged . && git checkout -- .`\n- **After committing** (full undo): `git revert HEAD`\n- **Single file recovery**: `git checkout HEAD~1 -- \u003Cpath>`\n- **Full re-install of old approach**: `npx metaswarm install` (npm package still published)\n\n---\n\n## Error Handling\n\n| Error | Action |\n|---|---|\n| `.metaswarm\u002Fproject-profile.json` missing | Create with minimal fields, proceed |\n| `git rm` fails on a file | Log error, skip file, continue |\n| Permission denied | Warn user, skip file, continue |\n| Plugin not loaded | Exit with install instructions |\n| `metaswarm_version \u003C 0.8.0` | Warn manual intervention may be needed |\n\n---\n\n## Anti-Patterns\n\n| Anti-Pattern | Do Instead |\n|---|---|\n| Auto-deleting modified files | Flag and ask explicitly |\n| Deleting before confirming plugin works | Pre-flight check first |\n| Using `rm -rf` on tracked files | Use `git rm` (reversible) |\n| Skipping dry run preview | Always show full preview |\n| Removing project-local files | Never touch CLAUDE.md, .beads\u002F, bin\u002F, scripts\u002F |\n| Saying \"deleting XX files\" or \"removing XX files\" | Say \"cleaning up XX redundant copies\" |\n| Showing file list without safety context | Always lead with the safety framing |\n| Jumping straight to `git rm` commands | Explain what you're doing and why it's safe first |\n","# Migration Skill\n\nMigrate 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.\n\n**When to use**: The SessionStart hook detects `.claude\u002Fplugins\u002Fmetaswarm\u002F.claude-plugin\u002Fplugin.json` (legacy embedded plugin) and recommends running this skill.\n\n---\n\n## IMPORTANT: Safety & Messaging Guidelines\n\n**The user MUST understand this before any file list is shown:**\n\nBefore presenting any migration preview or file list, ALWAYS lead with this framing:\n\n> **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.\n>\n> **Nothing is lost**: Your project-specific files (CLAUDE.md, .coverage-thresholds.json, .beads\u002F, bin\u002F, scripts\u002F) are NEVER touched. Only duplicate metaswarm framework files are removed.\n>\n> **Fully reversible**: All removals are staged with `git rm` (not permanently deleted). Before you commit:\n> - Undo everything: `git restore --staged . && git checkout -- .`\n> - After committing: `git revert HEAD`\n>\n> **No commit is made automatically** — you review and commit when you're satisfied.\n\n**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.\n\n**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\u002Fplugins\u002Fmetaswarm\u002F` — that one directory accounts for most of the count, and it's all framework code that's now served directly by the plugin.\n\n---\n\n## Step 1: Pre-flight Check\n\n1. Confirm this skill is running from the marketplace plugin (if this skill loaded, the plugin is active)\n2. Read `.metaswarm\u002Fproject-profile.json` -- if `\"distribution\": \"plugin\"` is already set, inform the user migration was already completed and exit\n3. Verify `.claude\u002Fplugins\u002Fmetaswarm\u002F.claude-plugin\u002Fplugin.json` exists -- if not, there is nothing to migrate; inform the user and exit\n\nIf the plugin is not loaded, the user needs to install it first: `\u002Fplugin marketplace add dsifry\u002Fmetaswarm-marketplace`\n\n---\n\n## Step 2: Inventory Legacy Files\n\nScan for files installed by `npx metaswarm init` that are now provided by the marketplace plugin.\n\n**Candidates for removal:**\n\n| Category | Path pattern |\n|---|---|\n| Embedded plugin | `.claude\u002Fplugins\u002Fmetaswarm\u002F` (entire directory) |\n| Rubrics | `.claude\u002Frubrics\u002F*.md` |\n| Guides | `.claude\u002Fguides\u002F*.md` |\n| Old commands | `.claude\u002Fcommands\u002Fmetaswarm-setup.md`, `.claude\u002Fcommands\u002Fmetaswarm-update-version.md` |\n\n**NEVER removed** (project-local files): `CLAUDE.md`, `.coverage-thresholds.json`, `.metaswarm\u002Fproject-profile.json`, `.beads\u002F`, `bin\u002F`, `scripts\u002F`, `.github\u002Fworkflows\u002F`, `.claude\u002Fcommands\u002F` shims.\n\n---\n\n## Step 3: Content Verification\n\nFor each removal candidate, verify it is an unmodified metaswarm file using SHA-256 hash comparison.\n\n**Hash protocol:**\n1. Read file content\n2. Normalize line endings to LF (`\\r\\n` -> `\\n`, `\\r` -> `\\n`)\n3. Strip trailing whitespace from each line\n4. Strip trailing newlines\n5. Compute SHA-256 of normalized content\n6. Compare against hash of the corresponding file from the marketplace plugin's own directories (rubrics\u002F, guides\u002F, etc.)\n\nComputing hashes from the plugin's live files ensures the hash list stays current -- no hardcoded hashes that drift.\n\n**Classification:**\n\n| Result | Action |\n|---|---|\n| Hash matches | **Unmodified** -- add to deletion list |\n| Hash differs | **User-modified** -- flag for user decision, never auto-delete |\n| Not in hash list | **Unknown file** -- skip entirely |\n\n---\n\n## Step 4: Dry Run Preview\n\nDisplay the complete migration plan before any changes. **Lead with the safety framing from the guidelines above**, then show the preview:\n\n```\n## Migration Preview\n\nThese are redundant copies of framework files that are now provided by the plugin.\nAll removals are staged (not committed) — you can undo everything before committing.\n\n### Redundant framework files to clean up (XX files)\nThese are unmodified copies that the plugin now provides directly:\n- .claude\u002Fplugins\u002Fmetaswarm\u002F (embedded plugin copy — XX files, now served by marketplace plugin)\n- .claude\u002Frubrics\u002F\u003Ceach matching file> (now in plugin's rubrics\u002F)\n- .claude\u002Fguides\u002F\u003Ceach matching file> (now in plugin's guides\u002F)\n- .claude\u002Fcommands\u002Fmetaswarm-setup.md (replaced by plugin command)\n- .claude\u002Fcommands\u002Fmetaswarm-update-version.md (replaced by plugin command)\n\n### Files you've customized (require your decision)\n- .claude\u002Frubrics\u002Fcode-review-rubric.md (MODIFIED — your changes are preserved until you decide)\n\n### Your project files (NEVER touched)\n- CLAUDE.md, .coverage-thresholds.json, .metaswarm\u002F, .beads\u002F, bin\u002F, scripts\u002F\n\n### What gets added\n- 6 command shims in .claude\u002Fcommands\u002F (thin wrappers that route to plugin commands)\n- .metaswarm\u002Fproject-profile.json updated with \"distribution\": \"plugin\"\n\n### How to undo (before committing)\ngit restore --staged . && git checkout -- .\n```\n\n---\n\n## Step 5: User Confirmation\n\nUse `AskUserQuestion`:\n- Remind the user: \"This stages the cleanup — nothing is committed yet. You can undo with `git restore --staged . && git checkout -- .`\"\n- Ask: \"Ready to clean up the redundant framework files?\" (not \"Ready to delete files?\")\n- For each user-modified file, ask individually: keep, remove, or show diff\n- If the user chooses \"diff\", display the difference between their version and the plugin's, then re-ask\n\n---\n\n## Step 6: Git Safety\n\nBefore executing removals:\n1. Run `git status` to check for uncommitted changes\n2. If uncommitted changes exist, warn: \"Recommended to commit or stash before migrating so changes are in their own commit. Continue anyway?\"\n3. If the user declines, exit\n\n---\n\n## Step 7: Cleanup\n\n**Announce what you're doing**: Before running any commands, say:\n> \"Staging the redundant files for removal. These are all framework copies — your project files are untouched. Nothing is committed yet.\"\n\n**Git-tracked files** -- use `git rm` (staged, reversible via `git checkout`):\n```bash\ngit rm -rf .claude\u002Fplugins\u002Fmetaswarm\u002F\ngit rm .claude\u002Frubrics\u002F\u003Ceach confirmed file>\ngit rm .claude\u002Fguides\u002F\u003Ceach confirmed file>\ngit rm .claude\u002Fcommands\u002Fmetaswarm-setup.md\ngit rm .claude\u002Fcommands\u002Fmetaswarm-update-version.md\n```\n\n**After 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.\"\n\n**Untracked files** -- use `rm -f` (unlikely but handle gracefully).\n\n**Empty directories** -- remove `.claude\u002Frubrics\u002F` and `.claude\u002Fguides\u002F` if empty after cleanup. Do NOT remove `.claude\u002Fcommands\u002F` (shims remain).\n\n---\n\n## Step 8: Command Shim Creation\n\nWrite 6 shims to `.claude\u002Fcommands\u002F` (same as setup skill):\n\n| Shim | Routes to |\n|---|---|\n| `start-task.md` | `\u002Fmetaswarm:start-task` |\n| `prime.md` | `\u002Fmetaswarm:prime` |\n| `review-design.md` | `\u002Fmetaswarm:review-design` |\n| `self-reflect.md` | `\u002Fmetaswarm:self-reflect` |\n| `pr-shepherd.md` | `\u002Fmetaswarm:pr-shepherd` |\n| `brainstorm.md` | `\u002Fmetaswarm:brainstorm` |\n\nEach shim:\n```markdown\n\u003C!-- Created by metaswarm setup. Routes to the metaswarm plugin. Safe to delete if you uninstall metaswarm. -->\nInvoke the `\u002Fmetaswarm:\u003Ccommand-name>` skill with any arguments the user provided.\n```\n\nIf a shim already exists with different content, ask before overwriting.\n\n---\n\n## Step 9: Profile Update\n\nMerge these fields into `.metaswarm\u002Fproject-profile.json` (preserve existing fields):\n```json\n{\n  \"distribution\": \"plugin\",\n  \"migrated_at\": \"\u003CISO 8601 timestamp>\",\n  \"migrated_from\": \"npm\"\n}\n```\n\n---\n\n## Step 10: Post-Migration Summary\n\nDisplay what was done and next steps:\n```\n## Migration Complete\n\nCleaned up XX redundant framework files that are now provided by the marketplace plugin.\nYour project files (CLAUDE.md, .coverage-thresholds.json, .beads\u002F, etc.) were not touched.\n\n### What changed\n- Removed XX redundant framework copies (now served by plugin)\n- Added 6 command shims to .claude\u002Fcommands\u002F\n- Updated project profile to \"distribution\": \"plugin\"\n\n### Next steps\n1. Review staged changes: `git diff --cached --stat`\n2. Commit when satisfied: `git commit -m \"chore: migrate metaswarm from npm to marketplace plugin\"`\n3. Verify everything works: try `\u002Fstart-task`\n\n### If anything seems wrong\n- Undo before committing: `git restore --staged . && git checkout -- .`\n- Undo after committing: `git revert HEAD`\n- Full re-install: `npx metaswarm install` (npm package still available)\n```\n\n---\n\n## Rollback (Nothing Is Permanent)\n\nAll 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:\n\n- **Before committing** (full undo): `git restore --staged . && git checkout -- .`\n- **After committing** (full undo): `git revert HEAD`\n- **Single file recovery**: `git checkout HEAD~1 -- \u003Cpath>`\n- **Full re-install of old approach**: `npx metaswarm install` (npm package still published)\n\n---\n\n## Error Handling\n\n| Error | Action |\n|---|---|\n| `.metaswarm\u002Fproject-profile.json` missing | Create with minimal fields, proceed |\n| `git rm` fails on a file | Log error, skip file, continue |\n| Permission denied | Warn user, skip file, continue |\n| Plugin not loaded | Exit with install instructions |\n| `metaswarm_version \u003C 0.8.0` | Warn manual intervention may be needed |\n\n---\n\n## Anti-Patterns\n\n| Anti-Pattern | Do Instead |\n|---|---|\n| Auto-deleting modified files | Flag and ask explicitly |\n| Deleting before confirming plugin works | Pre-flight check first |\n| Using `rm -rf` on tracked files | Use `git rm` (reversible) |\n| Skipping dry run preview | Always show full preview |\n| Removing project-local files | Never touch CLAUDE.md, .beads\u002F, bin\u002F, scripts\u002F |\n| Saying \"deleting XX files\" or \"removing XX files\" | Say \"cleaning up XX redundant copies\" |\n| Showing file list without safety context | Always lead with the safety framing |\n| Jumping straight to `git rm` commands | Explain what you're doing and why it's safe first |\n",{"name":5,"description":7},"main","a298c929b6cbd662e1fce54302ce520d5ceea1a5","tools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fmigrate","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain","https:\u002F\u002Fgithub.com\u002FPrekzursil","2026-11-02 14:30:57",{"source":8,"skillName":5,"commands":36,"prompt":46,"zipAvailable":47},[37,40,43],{"tool":38,"command":39},"npx","npx skills add Prekzursil\u002Fagent-skills-toolchain --skill migrate",{"tool":41,"command":42},"bunx","bunx skills add Prekzursil\u002Fagent-skills-toolchain --skill migrate",{"tool":44,"command":45},"pnpm","pnpm dlx skills add Prekzursil\u002Fagent-skills-toolchain --skill migrate","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fmigrate\u002FSKILL.md",true,[49,55,61,65,69,73,77,81,85,89,93,97,101,105,109,113,117],{"path":50,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":53,"sourceHtmlUrl":54},"data\u002Fgdd-purpose.md","REFERENCE","参考文档",8922,"https:\u002F\u002Fgithub.com\u002Fdinesh-style\u002Fportfolio\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgds-validate-gdd\u002Fdata\u002Fgdd-purpose.md",{"path":56,"resourceType":57,"resourceTypeDesc":58,"sizeBytes":59,"sourceHtmlUrl":60},"data\u002Fgenre-complexity.csv","ASSET","资产文件",8025,"https:\u002F\u002Fgithub.com\u002Fdinesh-style\u002Fportfolio\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgds-validate-gdd\u002Fdata\u002Fgenre-complexity.csv",{"path":62,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":63,"sourceHtmlUrl":64},"steps-v\u002Fstep-v-01-discovery.md",7714,"https:\u002F\u002Fgithub.com\u002Fdinesh-style\u002Fportfolio\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgds-validate-gdd\u002Fsteps-v\u002Fstep-v-01-discovery.md",{"path":66,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":67,"sourceHtmlUrl":68},"steps-v\u002Fstep-v-02-format-detection.md",7015,"https:\u002F\u002Fgithub.com\u002Fdinesh-style\u002Fportfolio\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgds-validate-gdd\u002Fsteps-v\u002Fstep-v-02-format-detection.md",{"path":70,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":71,"sourceHtmlUrl":72},"steps-v\u002Fstep-v-02b-parity-check.md",7156,"https:\u002F\u002Fgithub.com\u002Fdinesh-style\u002Fportfolio\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgds-validate-gdd\u002Fsteps-v\u002Fstep-v-02b-parity-check.md",{"path":74,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":75,"sourceHtmlUrl":76},"steps-v\u002Fstep-v-03-density-validation.md",7348,"https:\u002F\u002Fgithub.com\u002Fdinesh-style\u002Fportfolio\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgds-validate-gdd\u002Fsteps-v\u002Fstep-v-03-density-validation.md",{"path":78,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":79,"sourceHtmlUrl":80},"steps-v\u002Fstep-v-04-brief-coverage-validation.md",8549,"https:\u002F\u002Fgithub.com\u002Fdinesh-style\u002Fportfolio\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgds-validate-gdd\u002Fsteps-v\u002Fstep-v-04-brief-coverage-validation.md",{"path":82,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":83,"sourceHtmlUrl":84},"steps-v\u002Fstep-v-05-measurability-validation.md",9028,"https:\u002F\u002Fgithub.com\u002Fdinesh-style\u002Fportfolio\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgds-validate-gdd\u002Fsteps-v\u002Fstep-v-05-measurability-validation.md",{"path":86,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":87,"sourceHtmlUrl":88},"steps-v\u002Fstep-v-06-traceability-validation.md",8529,"https:\u002F\u002Fgithub.com\u002Fdinesh-style\u002Fportfolio\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgds-validate-gdd\u002Fsteps-v\u002Fstep-v-06-traceability-validation.md",{"path":90,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":91,"sourceHtmlUrl":92},"steps-v\u002Fstep-v-07-implementation-leakage-validation.md",8960,"https:\u002F\u002Fgithub.com\u002Fdinesh-style\u002Fportfolio\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgds-validate-gdd\u002Fsteps-v\u002Fstep-v-07-implementation-leakage-validation.md",{"path":94,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":95,"sourceHtmlUrl":96},"steps-v\u002Fstep-v-08-genre-compliance-validation.md",9500,"https:\u002F\u002Fgithub.com\u002Fdinesh-style\u002Fportfolio\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgds-validate-gdd\u002Fsteps-v\u002Fstep-v-08-genre-compliance-validation.md",{"path":98,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":99,"sourceHtmlUrl":100},"steps-v\u002Fstep-v-09-game-type-validation.md",10861,"https:\u002F\u002Fgithub.com\u002Fdinesh-style\u002Fportfolio\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgds-validate-gdd\u002Fsteps-v\u002Fstep-v-09-game-type-validation.md",{"path":102,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":103,"sourceHtmlUrl":104},"steps-v\u002Fstep-v-10-smart-validation.md",7679,"https:\u002F\u002Fgithub.com\u002Fdinesh-style\u002Fportfolio\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgds-validate-gdd\u002Fsteps-v\u002Fstep-v-10-smart-validation.md",{"path":106,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":107,"sourceHtmlUrl":108},"steps-v\u002Fstep-v-11-holistic-quality-validation.md",9263,"https:\u002F\u002Fgithub.com\u002Fdinesh-style\u002Fportfolio\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgds-validate-gdd\u002Fsteps-v\u002Fstep-v-11-holistic-quality-validation.md",{"path":110,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":111,"sourceHtmlUrl":112},"steps-v\u002Fstep-v-12-completeness-validation.md",10445,"https:\u002F\u002Fgithub.com\u002Fdinesh-style\u002Fportfolio\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgds-validate-gdd\u002Fsteps-v\u002Fstep-v-12-completeness-validation.md",{"path":114,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":115,"sourceHtmlUrl":116},"steps-v\u002Fstep-v-13-report-complete.md",8758,"https:\u002F\u002Fgithub.com\u002Fdinesh-style\u002Fportfolio\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgds-validate-gdd\u002Fsteps-v\u002Fstep-v-13-report-complete.md",{"path":118,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":119,"sourceHtmlUrl":120},"workflow.md",2998,"https:\u002F\u002Fgithub.com\u002Fdinesh-style\u002Fportfolio\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgds-validate-gdd\u002Fworkflow.md",[122,144,175,202,216,232],{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":128,"publishedAt":24},"01M6DF7D7478R55P46REYH4QAC","clarify-requirements","Resolve genuine pre-execution ambiguity by scanning repo context, generating 1-6 grounded options, and asking 1-3 focused questions via AskUserQuestion. NOT for mid-task use (injection risk); NOT when the goal is already unambiguous; use to disambiguate vague prompts before any file edits.","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Fworkspace-hooks\u002Fskills\u002Fclarify-requirements\u002FSKILL.md",[],[129,130,131,132,133,134,135,136,137,138,139,140,141,142,143],"clarify requirements","clarify","requirements","risk","options","task","prompts","goal","scanning","use","context","repo","injection","execution","file",{"skillNo":145,"name":146,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":155,"publishedAt":24},"01M6DF79CA4BHJS66J8EZDBPWJ","openmm-md","Run FREE, open-source, Windows-native GPU molecular dynamics via the openmm-md MCP (OpenMM + CUDA on the local NVIDIA GPU). Use for protein \u002F protein-ligand MD when you want a free stack or are on Windows without a Schrodinger license. Covers the full workflow (prepare, solvate, minimize, equilibrate, production, analyze, mmgbsa) AND an honest decision guide vs Schrodinger Desmond, including how to run Desmond legitimately on Linux or a cloud GPU with a real license. This is a deliberately LESSER free alternative and does NOT replace the schrodinger MCP tools. Do NOT use it to pick a free tool when a validated FEP+, WaterMap, IFD-MD, or Prime MM-GBSA result is actually required.","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Fmcp\u002Fopenmm-md-mcp\u002Fskill\u002Fopenmm-md\u002FSKILL.md",[150],{"categoryNo":151,"categoryName":152,"taxonomyType":153,"taxonomyTypeDesc":154},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[156,157,158,159,160,161,162,163,164,165,166,167,168,169,138,170,171,172,173,174],"openmm md","how","decision","pick","linux","analyze","tool","stack","open","NVIDIA","gpu","license","workflow","windows","free","molecular dynamics","local","do","MCP",{"skillNo":176,"name":177,"nameZh":6,"description":178,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":179,"categories":180,"keywords":187,"publishedAt":24},"01M6DF76C1MG85VEWP8VZCBNMN","visual-review","Take screenshots of web pages and UI using Playwright for visual review and iteration","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fvisual-review\u002FSKILL.md",[181,184],{"categoryNo":182,"categoryName":183,"taxonomyType":153,"taxonomyTypeDesc":154},"01JBSEEDCAT000000000000003","演示文稿",{"categoryNo":185,"categoryName":186,"taxonomyType":153,"taxonomyTypeDesc":154},"01JBSEEDCAT000000000000008","测试与质量",[188,189,190,191,192,193,194,195,196,197,157,198,199,200,201],"review","visual","visual review","pages","web","false","iteration","take","check","slides","ui","screenshot","playwright","screenshots",{"skillNo":203,"name":204,"nameZh":6,"description":205,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":206,"categories":207,"keywords":208,"publishedAt":24},"01M6DF73AQVCBZKEN0YXEX9FXP","status","Diagnostic status report — shows metaswarm installation state, project setup, and potential issues","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fstatus\u002FSKILL.md",[],[204,209,210,211,212,213,214,215],"setup","report","project","installation","project setup","issues","state",{"skillNo":217,"name":218,"nameZh":6,"description":219,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":220,"categories":221,"keywords":223,"publishedAt":24},"01M6DF6X6C2XB0P6GX76P7TTYV","start","Use when starting work on any task, when the user mentions metaswarm, or when the user wants to begin tracked development work","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fstart\u002FSKILL.md",[222],{"categoryNo":151,"categoryName":152,"taxonomyType":153,"taxonomyTypeDesc":154},[218,224,134,225,226,227,138,228,229,230,231],"start issue","issue","ready","work on issue","user","work","work on","development",{"skillNo":233,"name":209,"nameZh":6,"description":234,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":235,"categories":236,"keywords":237,"publishedAt":24},"01M6DF6QMJ9AJKFKHHKRT005PQ","Interactive project setup — detects your project, configures metaswarm, writes project-local files","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fsetup\u002FSKILL.md",[],[209,211,172,23,213,238],"interactive"]