Aggiunge la skill o-ring per scelta O-ring e dimensionamento cava
Include tabella dimensioni, schema quotato mostrato insieme al risultato numerico, e uno script per esportare le singole skill in zip da caricare su Claude per i test. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
<#
|
||||
Esporta ogni skill (plugins/*/skills/<nome>/) in uno zip separato in dist/,
|
||||
pronto per essere caricato come skill singola su Claude (Settings -> Capabilities -> Skills)
|
||||
per test rapidi senza passare dall'installazione dell'intero plugin/marketplace.
|
||||
|
||||
Uso:
|
||||
powershell -File scripts/export-skills.ps1
|
||||
powershell -File scripts/export-skills.ps1 -Skill o-ring # esporta solo una skill
|
||||
|
||||
Ogni zip contiene i file della skill alla radice dell'archivio (SKILL.md in cima),
|
||||
non dentro una sottocartella, come richiesto dal caricamento manuale su Claude.
|
||||
#>
|
||||
param(
|
||||
[string]$Skill
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
$root = Split-Path -Parent $PSScriptRoot
|
||||
$distDir = Join-Path $root "dist"
|
||||
|
||||
if (-not (Test-Path $distDir)) {
|
||||
New-Item -ItemType Directory -Path $distDir | Out-Null
|
||||
}
|
||||
|
||||
$skillDirs = Get-ChildItem -Path (Join-Path $root "plugins") -Directory |
|
||||
ForEach-Object { Join-Path $_.FullName "skills" } |
|
||||
Where-Object { Test-Path $_ } |
|
||||
ForEach-Object { Get-ChildItem -Path $_ -Directory }
|
||||
|
||||
if ($Skill) {
|
||||
$skillDirs = $skillDirs | Where-Object { $_.Name -eq $Skill }
|
||||
if (-not $skillDirs) {
|
||||
throw "Skill '$Skill' non trovata sotto plugins/*/skills/"
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($dir in $skillDirs) {
|
||||
$skillMd = Join-Path $dir.FullName "SKILL.md"
|
||||
if (-not (Test-Path $skillMd)) {
|
||||
Write-Warning "Salto $($dir.Name): manca SKILL.md"
|
||||
continue
|
||||
}
|
||||
|
||||
$zipPath = Join-Path $distDir "$($dir.Name).zip"
|
||||
if (Test-Path $zipPath) {
|
||||
Remove-Item $zipPath -Force
|
||||
}
|
||||
|
||||
Add-Type -AssemblyName System.IO.Compression
|
||||
Add-Type -AssemblyName System.IO.Compression.FileSystem
|
||||
|
||||
$zip = [System.IO.Compression.ZipFile]::Open($zipPath, [System.IO.Compression.ZipArchiveMode]::Create)
|
||||
try {
|
||||
$files = Get-ChildItem -Path $dir.FullName -Recurse -File
|
||||
foreach ($file in $files) {
|
||||
$relativePath = $file.FullName.Substring($dir.FullName.Length + 1) -replace '\\', '/'
|
||||
[System.IO.Compression.ZipFileExtensions]::CreateEntryFromFile($zip, $file.FullName, $relativePath) | Out-Null
|
||||
}
|
||||
}
|
||||
finally {
|
||||
$zip.Dispose()
|
||||
}
|
||||
|
||||
Write-Host "Creato $zipPath"
|
||||
}
|
||||
Reference in New Issue
Block a user