The canonical skill workflow belongs beside the application and language
dependencies it uses. yskill register creates only the small SKILL.md
adapters required for agent discovery.
# Detect installed verified agents
.yield/bin/yskill register skills/review --root .
# Or choose agents explicitly
.yield/bin/yskill register skills/review --root . --agent cursor,codex,claude-code
# Check the workflow itself
.yield/bin/yskill doctor skills/review --root . --test
# Check selected adapters too
.yield/bin/yskill doctor skills/review --root . --agent cursor,codex,claude-code --test
# Register a complete workflow directory in one pass
.yield/bin/yskill register-all skills --root . --agent cursor,codex,claude-code --dry-run
.yield/bin/yskill register-all skills --root . --agent cursor,codex,claude-code --pruneUse the launcher installed by the selected language package:
| Language | Launcher |
|---|---|
| TypeScript | npm exec -- yskill |
| Python | python -m yieldskill |
| Go | .yield/bin/yskill |
| Rust | .yield/bin/yskill |
Go and Rust keep one version-locked runtime in .yield/bin at the repository
root. Registration checks that runtime, the workflow SDK, and the generated
adapter all use the same Yield version. It refuses a missing or mismatched
runtime and prints the exact repair command. A global yskill is not used.
Windows adapters use .\.yield\bin\yskill.exe.
Run yskill agents to see every supported ID and project directory. Cursor,
Codex, and Claude Code are verified. Other entries use paths from a pinned
snapshot of the open vercel-labs/skills registry and are labelled
registry: path generation is tested, but the product itself has not been run
end to end by Yield.
Generated adapters are safe to commit. They are disposable discovery files, not copies of the workflow. Regenerate them after changing the canonical skill workflow. Yield refuses to overwrite a user-owned skill with the same name. Names must also be unique across languages because coding agents use one project-level skill namespace.
Start a new coding-agent session after registration. Where slash skills are supported, run the generated skill by name:
/review
Otherwise, ask the agent to use it:
Use the review skill to check the current branch.
The host owns how the request is presented. The generated adapter starts the
canonical workflow under skills/review; it does not contain a second copy.
Package installation does not create skills or adapters. After using the manual workflow, install the guided helper explicitly from the repository root:
# TypeScript
npm exec -- yskill helper install --language typescript
# Python
python -m yieldskill helper install --language python
# Rust
cargo install yieldskill --root .yield --locked
.yield/bin/yskill helper install --root . --language rust
# Go
go run github.com/operatorstack/yield/cmd/yskill@latest helper install --root . --language goThe installer shows every proposed change. Confirm the plan. Restart the coding agent after registration. To create a new skill workflow, ask:
Use Yield to create a tested skill workflow for releasing my package.
To convert an existing SKILL.md, ask:
Use Yield to convert my existing release SKILL.md into a tested skill workflow.
The helper can teach, create, convert, check, repair, upgrade, and register. Before a mutation it explains the primitive, previews exact files and commands, and asks for approval. It allows two repair attempts and verifies the workflow and adapters.
yskill bootstrap and npm create @operatorstack/yield@latest remain
compatibility aliases.
The skill workflow emits a typed operation. The coding agent may show that operation using
its native question UI. Yield does not render the UI. After collecting an
answer, the adapter uses yskill respond; it does not create response.json.
Use --value for a person’s answer and --result-json for structured agent
work. The file-based resume --response command remains available for CI.
Workflow-only doctor works without .git. TypeScript and Python commands
use the current directory as the project root when the workflow is contained
inside it. A Go or Rust runtime under .yield/bin identifies the project root
for init, doctor, and registration. Pass --root to override inference.