Claude-skill-registry sayt-ide
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/ide-bonisoft3-iris" ~/.claude/skills/majiayu000-claude-skill-registry-sayt-ide && rm -rf "$T"
manifest:
skills/data/ide-bonisoft3-iris/SKILL.mdsource content
build / test — VS Code Tasks via vscode-task-runner
sayt build and sayt test delegate to vscode-task-runner (vtr), which reads .vscode/tasks.json and runs the tasks labeled "build" and "test" respectively.
How It Works
runssayt build
which finds the task withvtr build
in"label": "build".vscode/tasks.json
runssayt test
which finds the task withvtr test"label": "test"- vtr resolves
chains and runs prerequisite tasks firstdependsOn - The commands execute as shell commands in the project directory
vtr is installed via uvx (Python) and is cached after
sayt setup for offline use.
.vscode/tasks.json
Schema
.vscode/tasks.jsonEvery tasks.json must have:
"version": "2.0.0"- A
array with at minimum atasks
and"build"
task"test"
Required Task Structure
{ "label": "build", // MUST be exactly "build" or "test" "type": "shell", // MUST be "shell" for sayt compatibility "command": "...", // The executable to run "args": ["..."], // Arguments (optional) "group": { "kind": "build", // "build" or "test" "isDefault": true // Mark as default for the group }, "problemMatcher": [], // VS Code error matching (can be empty) "dependsOn": ["..."] // Prerequisite tasks (optional) }
Windows Support
Add a
windows override for cross-platform commands:
{ "label": "build", "type": "shell", "command": "./gradlew", "windows": { "command": ".\\gradlew.bat" }, "args": ["assemble"] }
Task Dependencies
Use
dependsOn to run prerequisite tasks:
{ "label": "build", "type": "shell", "command": "go", "args": ["build", "-o", "app"], "dependsOn": ["sqlc-generate", "buf-generate"] }
Dependency tasks don't need
isDefault: true but should still be in the tasks array.
Per-Language Examples
Kotlin/Java (Gradle)
{ "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "./gradlew", "windows": { "command": ".\\gradlew.bat" }, "args": ["assemble"], "problemMatcher": [], "group": { "kind": "build", "isDefault": true } }, { "label": "test", "type": "shell", "command": "./gradlew", "windows": { "command": ".\\gradlew.bat" }, "args": ["test"], "group": { "kind": "test", "isDefault": true }, "problemMatcher": [] } ] }
Go
{ "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "go", "args": ["build", "-o", "app"], "group": { "kind": "build", "isDefault": true }, "dependsOn": ["sqlc-generate", "buf-generate"], "problemMatcher": [] }, { "label": "sqlc-generate", "type": "shell", "command": "sqlc", "args": ["generate"], "group": { "kind": "build" }, "problemMatcher": [] }, { "label": "buf-generate", "type": "shell", "command": "buf", "args": ["generate", "../../libraries/xproto", "--template", "../../libraries/xproto/buf.go.gen.yaml", "-o", "../../libraries/xproto"], "group": { "kind": "build" }, "problemMatcher": [] }, { "label": "test", "type": "shell", "command": "go", "args": ["run", "gotest.tools/gotestsum@v1.12.0", "-f", "github-actions", "--", "./...", "-tags=unit_test"], "group": { "kind": "test", "isDefault": true }, "problemMatcher": [] } ] }
Node.js / pnpm (monorepo with Turbo)
{ "version": "2.0.0", "tasks": [ { "label": "install", "type": "shell", "command": "pnpm install --frozen-lockfile" }, { "label": "build", "type": "shell", "command": "pnpm -C ../.. exec turbo --filter ./guis/web assemble", "problemMatcher": ["$tsc"], "group": { "kind": "build", "isDefault": true }, "dependsOn": ["install"] }, { "label": "test", "type": "shell", "command": "pnpm -C ../.. exec turbo --filter ./guis/web test", "group": { "kind": "test", "isDefault": true }, "problemMatcher": ["$tsc"], "dependsOn": ["install"] } ] }
Node.js / pnpm (standalone)
{ "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "pnpm", "args": ["build"], "group": { "kind": "build", "isDefault": true }, "problemMatcher": ["$tsc"] }, { "label": "test", "type": "shell", "command": "pnpm", "args": ["test"], "group": { "kind": "test", "isDefault": true }, "problemMatcher": [] } ] }
Python
{ "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "python", "args": ["-m", "build"], "group": { "kind": "build", "isDefault": true }, "problemMatcher": [] }, { "label": "test", "type": "shell", "command": "pytest", "group": { "kind": "test", "isDefault": true }, "problemMatcher": [] } ] }
Zig
{ "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "zig", "args": ["build"], "group": { "kind": "build", "isDefault": true }, "problemMatcher": [] }, { "label": "test", "type": "shell", "command": "zig", "args": ["build", "test"], "group": { "kind": "test", "isDefault": true }, "problemMatcher": [] } ] }
Writing Good Tasks
- Label exactly "build" and "test" — vtr looks for these exact labels
- Use
— Required for sayt/vtr compatibility"type": "shell" - Set
— Mark one build and one test task as defaultisDefault: true - Use
— For code generation or install steps that must run firstdependsOn - Add
— Helps VS Code parse errors (useproblemMatcher
for TypeScript,["$tsc"]
otherwise)[] - Add
overrides — If the command differs on Windows (e.g.,windows
vsgradlew
)gradlew.bat - Keep it simple — The task should run the same command you'd type in the terminal
Interpreting Results
- Build success: The underlying compiler/bundler exited 0
- Build failure: Read the compiler output — fix the source code
- Test success: All unit tests passed
- Test failure: Read test output for assertion failures and stack traces
- "command not found: vtr": Run
orpipx install vscode-task-runnersayt setup
Current flags
!
sayt help build 2>&1 || true
!sayt help test 2>&1 || true