# Make Skill

Create a focused workspace Skill from reusable decisions, knowledge, templates, or...

- Repository: https://github.com/agentscope-ai/QwenPaw (37135 stars)
- Category: Engineering
- License: Apache-2.0
- Last updated: 2026-10-30
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add agentscope-ai/QwenPaw --skill make-skill -g -a claude-code -y`
Codex: `npx skills add agentscope-ai/QwenPaw --skill make-skill -g -a codex -y`
Cursor: `npx skills add agentscope-ai/QwenPaw --skill make-skill -g -a cursor -y`
Gemini CLI: `npx skills add agentscope-ai/QwenPaw --skill make-skill -g -a gemini-cli -y`

## Description

Create a focused workspace Skill from reusable decisions, knowledge, templates, or workflows in the current conversation. Use for /make-skill with a focus argument and requests such as save this workflow or turn this into a skill; do not use for one-off summaries or ordinary file creation.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Make Skill

Create one new workspace Skill from the current conversation through planning, user approval, draft authoring, validation, and publication.

Resolve `<workspace>` from the runtime directory context: use the current agent's absolute workspace path (also the working directory when no separate project is configured). Pass that same value throughout the lifecycle, independently of the task's project directory and the script `cwd`. Lifecycle artifacts belong under `<workspace>/.qwenpaw/make-skill/`; published Skills belong under `<workspace>/skills/`.

## Script interface

Run `<python> scripts/<script>` through `execute_shell_command`, setting `cwd` to this Skill's `<dir>` from the available-skills entry. Use the executable path in `QWENPAW_DESKTOP_PY_RUNTIME` as `<python>` when set; otherwise use `python`.

Each script reads one JSON object from stdin (or `--input <file>`) and returns one JSON object. Every input includes `workspace`; the table lists the other top-level fields.

| Operation | Script | Other input fields | Successful result |
|---|---|---|---|
| Create a plan | `create_plan.py` | `plan` | `plan_id`, normalized `plan` |
| Revise that plan | `create_plan.py` | `plan_id`, complete new `plan` | Same `plan_id`, normalized `plan` |
| Initialize after approval | `init_draft.py` | `plan_id` | `draft_id`, `skill_dir` |
| Validate a draft | `validate_skill.py` | `draft_id` | `digest` |
| Publish a validated draft | `publish_skill.py` | `draft_id`, `expected_digest` from validation | Publication result |

`plan_id` identifies one editable plan; keep it across revisions, including renames. `draft_id` identifies the initialized draft for validation, testing, and publication; `skill_dir` is where its package files belong. Use the returned values unchanged, not IDs inferred from names or paths.

## Plan

The rest: https://github.com/agentscope-ai/QwenPaw/blob/HEAD/src/qwenpaw/agents/skills/make-skill-en/SKILL.md
