mcpField
M
migrate-skill

migrate-skill

github.com/fellowship-devAgent 工作流3144 次安装2 周前更新
代码仓库

关于 migrate-skill

用于将 Agent 技能从本地 Claude 工具迁入 dogfooded-skills 共享库,再导入为独立本地技能。流程涵盖合并来源、更新仓库、提交推送及本地清理。

主要功能

  1. 01定位本地技能来源
  2. 02合并命令与技能内容
  3. 03写入共享库
  4. 04更新库的 README
  5. 05提交并推送更改
  6. 06清理并验证本地文件

适用场景

  1. 01整合工具包技能以便复用
  2. 02将本地技能迁入共享库
  3. 03用本地副本替换工具包符号链接

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/fellowship-dev/dogfooded-skills --skill migrate-skill

安装后在 Claude Code 中输入/migrate-skill确认已加载。

详细介绍

migrate-skill

将 Agent 技能从本地来源(toolkit 插件、.claude/skills/ 或 .claude/commands/)迁移到 dogfooded-skills,然后将其作为独立的本地技能导入回来。

适用场景

  • 将经过实战检验的技能从 claude-toolkit 整合到 dogfooded-skills
  • 将仅限本地使用的技能移入共享库,以便在多个项目中复用
  • 用 dogfooded-skills 副本替换 toolkit 符号链接

前置条件

ls ~/Projects/fellowship-dev/dogfooded-skills/skills/  # repo cloned
gh auth status                                          # can push

工作流

将 <skill-name> 作为参数:

  1. 查找技能的所有来源

    # Toolkit plugin skill
    ls .claude/plugins/claude-toolkit/skills/<skill-name>/SKILL.md 2>/dev/null
    # Toolkit command
    ls .claude/plugins/claude-toolkit/commands/<skill-name>.md 2>/dev/null
    # Local skill (may be symlink)
    ls -la .claude/skills/<skill-name>/ 2>/dev/null
    
  2. 读取所有来源——将命令(轻量封装)和技能(完整内容)合并到单个 SKILL.md 中。遵循 skill-builder 标准:frontmatter、单行用途说明、适用场景、前置条件、包含实际命令的工作流、决策表、错误处理、关键规则。

  3. 写入 dogfooded-skills

    mkdir -p ~/Projects/fellowship-dev/dogfooded-skills/skills/<namespace>/<skill-name>
    

    将合并后的 SKILL.md 写入 ~/Projects/fellowship-dev/dogfooded-skills/skills/<namespace>/<skill-name>/SKILL.md。

  4. 更新 dogfooded-skills README——在 README.md 中相应的分类表添加一行。

  5. 提交并推送

    cd ~/Projects/fellowship-dev/dogfooded-skills
    git add skills/<namespace>/<skill-name>/SKILL.md README.md
    git commit -m "feat: add <skill-name> skill — migrated from claude-toolkit"
    git push origin main
    
  6. 编写清理脚本至 /tmp/migrate-<skill-name>.sh 并执行。此操作可绕过针对 .claude/ 路径的沙箱限制。

    #!/usr/bin/env bash
    set -e
    BUDDY=<project-root>
    TOOLKIT="$BUDDY/.claude/plugins/claude-toolkit"
    DOGFOOD=~/Projects/fellowship-dev/dogfooded-skills
    
    # Remove from toolkit
    rm -rf "$TOOLKIT/skills/<skill-name>"
    rm -f "$TOOLKIT/commands/<skill-name>.md"
    
    # Remove stale symlink or old local copy
    rm -rf "$BUDDY/.claude/skills/<skill-name>"
    
    # Import from dogfooded-skills
    mkdir -p "$BUDDY/.claude/skills/<skill-name>"
    cp "$DOGFOOD/skills/<namespace>/<skill-name>/SKILL.md" "$BUDDY/.claude/skills/<skill-name>/SKILL.md"
    
    echo "Done: <skill-name> migrated"
    
    bash /tmp/migrate-<skill-name>.sh
    
  7. 验证——确认技能已加载:

    ls -la .claude/skills/<skill-name>/SKILL.md
    head -6 .claude/skills/<skill-name>/SKILL.md
    

关键规则

  • 始终先阅读 skill-builder 标准——合并后的技能必须达到 dogfooded-skills 的质量标准
  • 清理脚本放在 /tmp——这是绕过 .claude/ 路径沙箱限制的唯一方式
  • 绝不遗留孤立符号链接——创建新目录前先移除符号链接
  • 如果 toolkit 是具有独立远程仓库的子模块,请单独提交 toolkit 的更改

评论

支持 Markdown