Capture a proven thread or workflow as a reusable Agent-Native skill and save it as a personal or organization resource. Use when a user invokes `/turn-into-skill` or asks to save a workflow for reuse.
67
84%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
This is a packaging-and-save workflow, not a request for a proposal. A skill
is the lightweight path for a repeatable job that mostly needs guidance and
existing app actions. Use turn-into-app when the job needs a dedicated UI,
new persistent domain state, or a distinct app route.
shared as the scope./turn-into-skill invocation as authorization to save the
resulting skill, but never overwrite an existing skill at the target path
unless the user clearly asks to update it.Read the full source before writing. Reduce it to a concise working brief:
Preserve the useful judgment from the source, not its transcript. Do not turn one-off answers, private data, customer data, secrets, or unverified claims into the skill's contract. If no repeatable job can be identified, stop and report what is missing instead of inventing generic guidance.
Create a single SKILL.md with:
user-invocable: true so it can be selected from the app's / picker;scope: both so the saved skill can guide the app runtime and connected
coding agents;Write imperative, reusable instructions. Keep exact action names, field rules, and decision criteria when they matter. Use placeholders for credentials and provider data. Do not paste the source transcript, large dumps, or ephemeral thread details into the saved skill.
Choose a new slug when the target path already exists. Read an existing skill before changing it, and update it only when the user explicitly requested an update.
Skills are resources at skills/<slug>/SKILL.md.
| User intent | Save path |
|---|---|
| Just me or personal reuse | Use the resources tool with action: "write", scope: "personal", visibility: "workspace", and the generated skill content. |
| Shared organization or app reuse | Use the resources tool with action: "write", scope: "shared", visibility: "workspace", and the generated skill content. |
| Every workspace app | Use create-workspace-resource with kind: "skill", scope: "all", the generated path, name, description, and content. |
| Only selected apps | Use the workspace resource flow with scope: "selected" only when the user names the app set. |
For an all-app workspace skill, use the workspace resource action when it is available. If the current app does not expose it, discover or delegate to the configured Dispatch workspace agent. Do not silently save a personal skill and report it as shared. If organization approval is queued, report that the skill is pending approval rather than claiming it is active.
Set visibility: "workspace" for an explicitly requested saved skill. Use
agent_scratch only for temporary drafting, then promote or rewrite it before
reporting the skill as saved.
After saving, read the exact skills/<slug>/SKILL.md resource back at the
target scope. Confirm that the frontmatter name, trigger description, and full
workflow body are present. If the read-back fails or the save returned an
approval request, say so plainly and include the actual pending state.
Report:
/;turn-into-app — package the same source as a UI-bearing app with buttons,
agent handoffs, and a domain workflow.create-skill — general skill format and authoring rules.capture-learnings — lightweight memory for preferences and corrections,
rather than reusable workflows.self-modifying-code — safety boundaries when the agent edits app source.a941a2e
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.