Files
opencode/skill/opencode/sync-to-cursor.md
voson 6153911e46 feat(opencode): 重新创建 OpenCode 技能管理模块并添加 Cursor 同步功能
- 恢复完整的技能创建指南文档

- 新增技能同步到 Cursor IDE 功能

- 更新 SKILL.md 支持技能同步触发短语
2026-01-23 10:41:32 +08:00

5.4 KiB
Raw Blame History

OpenCode 技能同步到 Cursor IDE 指南

将 OpenCode 技能同步到 Cursor IDE 的技能目录,实现配置一致和统一管理。

目的

  • 保持 OpenCode 和 Cursor 的技能配置一致
  • 简化技能维护工作流
  • 支持一键同步操作
  • 提供错误处理和回滚机制

目录结构

源目录OpenCode 技能)

~/.config/opencode/skill/
├── git/
├── android/
├── electron/
└── ...其他技能

目标目录Cursor 技能)

~/.cursor/skills/
├── git/
├── android/
├── electron/
└── ...其他技能

注意Cursor 目录中可能包含额外的技能(如 opencode/),同步时应保留这些额外技能不被删除。

同步策略

默认同步操作

  1. 覆盖更新:用 OpenCode 版本覆盖 Cursor 中的同名技能
  2. 新增技能:复制 OpenCode 中有但 Cursor 中没有的技能
  3. 保留额外:保留 Cursor 中独有的技能(如 opencode/
  4. 不删除:不同步删除操作,仅添加和更新

文件级同步

  • 递归复制整个技能目录
  • 保留文件权限和时间戳
  • 使用 cp -Rf 强制覆盖已存在的文件

操作步骤

1. 检查目录结构

# 检查源目录
ls -la ~/.config/opencode/skill/

# 检查目标目录
ls -la ~/.cursor/skills/ 2>/dev/null || echo "目标目录不存在"

2. 同步技能

# 确保目标目录存在
mkdir -p ~/.cursor/skills/

# 同步所有技能(覆盖更新)
cp -Rf ~/.config/opencode/skill/* ~/.cursor/skills/

3. 验证同步结果

# 比较目录结构
echo "源目录:"
ls ~/.config/opencode/skill/
echo "目标目录:"
ls ~/.cursor/skills/

# 检查特定技能文件
diff ~/.config/opencode/skill/git/SKILL.md ~/.cursor/skills/git/SKILL.md

4. 完整同步脚本

#!/bin/bash

# 配置路径
SOURCE_DIR="$HOME/.config/opencode/skill"
TARGET_DIR="$HOME/.cursor/skills"

echo "开始同步 OpenCode 技能到 Cursor..."
echo "源目录: $SOURCE_DIR"
echo "目标目录: $TARGET_DIR"

# 检查源目录
if [ ! -d "$SOURCE_DIR" ]; then
    echo "错误: 源目录不存在 $SOURCE_DIR"
    exit 1
fi

# 创建目标目录(如不存在)
mkdir -p "$TARGET_DIR"

# 同步技能
echo "正在同步技能..."
cp -Rf "$SOURCE_DIR"/* "$TARGET_DIR"/

# 验证结果
echo "同步完成。验证结果:"
echo "已同步技能:"
ls "$SOURCE_DIR"
echo ""
echo "目标目录内容:"
ls "$TARGET_DIR"

# 检查文件差异
echo ""
echo "检查关键文件差异:"
for skill in $(ls "$SOURCE_DIR"); do
    if [ -f "$SOURCE_DIR/$skill/SKILL.md" ] && [ -f "$TARGET_DIR/$skill/SKILL.md" ]; then
        if ! diff -q "$SOURCE_DIR/$skill/SKILL.md" "$TARGET_DIR/$skill/SKILL.md" >/dev/null; then
            echo "  ⚠️  $skill/SKILL.md 存在差异"
        else
            echo "  ✓ $skill/SKILL.md 一致"
        fi
    fi
done

echo "同步完成!"

错误处理

常见问题

1. 目标目录不存在

# 检查并创建目录
if [ ! -d ~/.cursor/skills ]; then
    mkdir -p ~/.cursor/skills
    echo "已创建目录: ~/.cursor/skills"
fi

2. 权限不足

# 检查权限
ls -ld ~/.cursor
# 如果需要,调整权限(谨慎操作)
# chmod 755 ~/.cursor

3. 磁盘空间不足

# 检查可用空间
df -h ~/.cursor

4. 文件冲突

# 备份现有文件后再同步
BACKUP_DIR=~/.cursor/skills-backup-$(date +%Y%m%d)
cp -R ~/.cursor/skills "$BACKUP_DIR"
echo "已备份到: $BACKUP_DIR"

回滚操作

# 从备份恢复
BACKUP_DIR=~/.cursor/skills-backup-20250123
if [ -d "$BACKUP_DIR" ]; then
    rm -rf ~/.cursor/skills
    cp -R "$BACKUP_DIR" ~/.cursor/skills
    echo "已从备份恢复: $BACKUP_DIR"
fi

最佳实践

定期同步

建议在以下时机同步技能:

  • 添加新技能后
  • 更新现有技能后
  • 定期维护时(如每周一次)

版本控制

# 将 OpenCode 配置目录加入版本控制
cd ~/.config/opencode
git status
git add skill/
git commit -m "feat: 更新技能配置"

自动化脚本

将同步脚本保存为 ~/.config/opencode/command/sync-skills.md 作为 OpenCode 命令:

---
description: 同步 OpenCode 技能到 Cursor IDE
---
#!/bin/bash
# 同步脚本内容...

集成到 OpenCode Workflow

作为技能使用

在 OpenCode 技能中引用此文档:

## 相关文档
- [技能同步指南](./skill-sync.md) - 同步 OpenCode 技能到 Cursor

作为命令调用

用户可直接请求:"同步技能到 Cursor" 或 "sync skills to cursor"

触发时机

  • 用户修改技能配置后
  • 安装新技能后
  • 系统配置变更时

注意事项

  1. 备份重要数据:同步前建议备份 Cursor 技能目录
  2. 网络环境:如果使用网络同步,确保连接稳定
  3. 兼容性:确保技能格式与 Cursor 兼容
  4. 测试验证:同步后测试关键技能是否正常工作

故障排除

问题 可能原因 解决方案
同步后技能不生效 Cursor 缓存 重启 Cursor IDE
文件权限错误 权限不足 检查目录权限
目标目录只读 系统限制 以管理员权限运行
部分技能缺失 同步中断 重新执行同步

更新记录

  • 2026-01-23:创建初始版本
  • 功能:基础同步、错误处理、最佳实践

该文档是 OpenCode 技能管理的一部分,用于维护技能配置的一致性。