feat(skill-sync): 扩展技能同步功能以支持多平台

更新技能同步功能,支持将项目中的技能同步到多个全局目录(Claude、Trae 和 Trae-CN)
修改同步脚本以处理多个目标目录,并添加相应的文档说明
This commit is contained in:
2026-02-02 15:38:16 +08:00
parent 4491793742
commit 3ea09a1cdd
3 changed files with 45 additions and 20 deletions
+10 -5
View File
@@ -1,21 +1,26 @@
---
name: skill-sync
description: Synchronize skills from the current project to the global Claude skills directory (~/.claude/skills). Use this when you have modified skills in the project and want to update the global installation. Supports Windows 11.
description: Synchronize skills from the current project to multiple global skills directories (~/.claude/skills, ~/.trae/skills, ~/.trae-cn/skills). Use this when you have modified skills in the project and want to update the global installations. Supports Windows 11.
---
# Skill Sync
Synchronize skills from the project's `skills/` directory to the global Claude environment.
Synchronize skills from the project's `skills/` directory to multiple global environments (Claude, Trae, and Trae-CN).
## Workflow
### 1. Synchronize All Skills
When changes are made to skills within this project, run the synchronization script to update the global installation.
When changes are made to skills within this project, run the synchronization script to update all global installations.
- **Operation**: Run `powershell -ExecutionPolicy Bypass -File skills/skill-sync/scripts/sync.ps1`
- **Effect**: All skill directories in `skills/` will be copied to `~\.claude\skills`. Existing skills in the target directory will be updated, while additional skills in the target that are not in the project remain untouched.
- **Effect**: All skill directories in `skills/` will be copied to the following locations:
- `~\.claude\skills` (Claude)
- `~\.trae\skills` (Trae)
- `~\.trae-cn\skills` (Trae-CN)
Existing skills in the target directories will be updated, while additional skills in the targets that are not in the project remain untouched.
## Resources
### scripts/
- `sync.ps1`: PowerShell script for synchronizing skill directories to the global Claude skills folder.
- `sync.ps1`: PowerShell script for synchronizing skill directories to multiple global skills folders (Claude, Trae, and Trae-CN).
+27 -14
View File
@@ -2,27 +2,40 @@
$ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
$SkillDir = Split-Path -Parent $ScriptDir
$ProjectSkillsDir = Split-Path -Parent $SkillDir
$GlobalSkillsDir = Join-Path $HOME ".claude\skills"
Write-Host "Syncing skills from $ProjectSkillsDir to $GlobalSkillsDir..." -ForegroundColor Cyan
# Define global skills directories for different platforms
$GlobalSkillsDirs = @(
@{ Name = "Claude"; Path = Join-Path $HOME ".claude\skills" }
@{ Name = "Trae"; Path = Join-Path $HOME ".trae\skills" }
@{ Name = "Trae-CN"; Path = Join-Path $HOME ".trae-cn\skills" }
)
if (-not (Test-Path $GlobalSkillsDir)) {
Write-Host "Global skills directory does not exist. Creating it..." -ForegroundColor Yellow
New-Item -ItemType Directory -Path $GlobalSkillsDir -Force
}
Write-Host "Syncing skills from $ProjectSkillsDir..." -ForegroundColor Cyan
# Get all skill directories in the project
$Skills = Get-ChildItem -Path $ProjectSkillsDir -Directory
foreach ($Skill in $Skills) {
$SkillName = $Skill.Name
$TargetDir = Join-Path $GlobalSkillsDir $SkillName
foreach ($DirConfig in $GlobalSkillsDirs) {
$PlatformName = $DirConfig.Name
$TargetBaseDir = $DirConfig.Path
Write-Host "Syncing skill: $SkillName..." -ForegroundColor Green
Write-Host "`nSyncing to $PlatformName skills directory: $TargetBaseDir..." -ForegroundColor Magenta
# Sync the skill directory
# Note: Copy-Item -Recurse -Force will overwrite existing files
Copy-Item -Path $Skill.FullName -Destination $GlobalSkillsDir -Recurse -Force
if (-not (Test-Path $TargetBaseDir)) {
Write-Host "$PlatformName skills directory does not exist. Creating it..." -ForegroundColor Yellow
New-Item -ItemType Directory -Path $TargetBaseDir -Force
}
foreach ($Skill in $Skills) {
$SkillName = $Skill.Name
$TargetDir = Join-Path $TargetBaseDir $SkillName
Write-Host "Syncing skill: $SkillName..." -ForegroundColor Green
# Sync the skill directory
# Note: Copy-Item -Recurse -Force will overwrite existing files
Copy-Item -Path $Skill.FullName -Destination $TargetBaseDir -Recurse -Force
}
}
Write-Host "Sync completed successfully." -ForegroundColor Green
Write-Host "`nSync completed successfully to all platforms!" -ForegroundColor Green