# Get the current skill directory (the parent of the scripts folder) $ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path $SkillDir = Split-Path -Parent $ScriptDir $ProjectSkillsDir = Split-Path -Parent $SkillDir # 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" } ) Write-Host "Syncing skills from $ProjectSkillsDir..." -ForegroundColor Cyan # Get all skill directories in the project $Skills = Get-ChildItem -Path $ProjectSkillsDir -Directory foreach ($DirConfig in $GlobalSkillsDirs) { $PlatformName = $DirConfig.Name $TargetBaseDir = $DirConfig.Path Write-Host "`nSyncing to $PlatformName skills directory: $TargetBaseDir..." -ForegroundColor Magenta 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 "`nSync completed successfully to all platforms!" -ForegroundColor Green