with one click
make-skill
// 用于把当前会话沉淀为可复用的 workspace skill。当用户希望把当前对话、工作流或排错路径写成 SKILL.md 时触发。触发表达包括「把这个变成 skill」「记住我是怎么做 X 的」「保存这个工作流」「make a skill from this」以及任何 /make-skill <focus> 调用。
// 用于把当前会话沉淀为可复用的 workspace skill。当用户希望把当前对话、工作流或排错路径写成 SKILL.md 时触发。触发表达包括「把这个变成 skill」「记住我是怎么做 X 的」「保存这个工作流」「make a skill from this」以及任何 /make-skill <focus> 调用。
Use this skill when sedimenting a session into a reusable workspace skill. Triggers when the user wants to turn the current conversation, workflow, or troubleshooting path into a SKILL.md. Phrases like 'turn this into a skill', 'remember how I did X', 'save this workflow', 'make a skill from this', and any /make-skill <focus> invocation should fire this skill.
Use this skill only for scheduled or recurring tasks. Manage jobs with qwenpaw cron list/create/get/state/pause/resume/delete/run, and always pass --agent-id explicitly.
仅在需要未来定时执行或周期执行任务时,使用本 skill。使用 qwenpaw cron list/create/get/state/pause/resume/delete/run 管理任务,并始终显式传入 --agent-id。
Answer user questions about QwenPaw installation and configuration: first locate and read local documentation, then distill the answer; if local information is insufficient, fall back to the official website documentation.
回答用户关于 QwenPaw 安装与配置的问题:优先定位并阅读本地文档,再提炼答案;若本地信息不足,兜底访问官网文档。
Maps topics and keywords from user questions to QwenPaw official documentation paths and common source code entry points, reducing blind searching. Intended for the built-in QA Agent to quickly identify which files to read when answering questions about installation, configuration, skills, MCP, multi-agent, memory, CLI, etc.
| name | make-skill |
| description | 用于把当前会话沉淀为可复用的 workspace skill。当用户希望把当前对话、工作流或排错路径写成 SKILL.md 时触发。触发表达包括「把这个变成 skill」「记住我是怎么做 X 的」「保存这个工作流」「make a skill from this」以及任何 /make-skill <focus> 调用。 |
| metadata | {"builtin_skill_version":"1.0","qwenpaw":{"emoji":"✍️","requires":{}}} |
把当前会话沉淀为可复用的 workspace skill。
你自己编排两阶段流程:
materialize_skill 持久化。不要用 write_file 直接写 SKILL.md。必须走 materialize_skill,
它会跑安全扫描并原子写入 manifest。
两种触发入口:
/make-skill <focus>。focus 紧跟在命令后面。按这条规则从 focus 派生 skill 名:
skill_name = "-".join(focus.split())
内部空白(空格、tab、全角空格、连续空格)折叠成单个 -。其他字符
原样保留。
例子:
cooking → cookingview image debug → view-image-debug烹饪 食谱 → 烹饪-食谱Stock Price → Stock-Price(大小写保留)这个 skill_name 在以下场合保持一致使用:步骤 1 的 plan.name、
步骤 3 的 materialize_skill 的 name= 参数。
调用 create_plan,四个必填参数(name、description、
expected_outcome、subtasks)都要给:
name:步骤 0 中标准化的 skill_name。description:精简 preview(这是用户审核的内容),两部分:
## 子标题。
只给出形状,让用户能快速判断顺序和范围,决定要不要改。
格式示例(不要抄这个内容):
1. <verb phrase, ~5-10 words>
2. <verb phrase, ~5-10 words>
3. <…>
步骤名要从 THIS 会话里实际发生的事情里提取。不要编造;会话里没
依据的就省略。expected_outcome(plan 顶层,必填,与 subtask 的
expected_outcome 不是同一个):一句具体描述整个 skill 创建的成功
状态。直接用这个字面值(替换 <skill_name>)即可:
"A new workspace skill <skill_name> is created, enabled, and invocable via /<skill_name>."subtasks:一个长度为 1 的列表,包含唯一一个 subtask:
name:"Write and materialize skill"description:"Write the SKILL.md body and call materialize_skill."expected_outcome:"Skill created and visible via /skills."plan.name 和 plan.description 用与用户最近消息相同的语言。
expected_outcome 保留英文即可。
create_plan 返回后,让出 turn。用户会回复 approve、refine 或
cancel。/plan 模式的标准机制接管:
revise_current_plan,把反馈合到 name、description、或步
骤大纲里。finish_plan with state="abandoned"。向用户呈现计划时用标准 plan card 格式。不要在 chat 里另搞
Subtask: … / Focus: … 这种自定义字段,用标准化后的 plan.name,
不要用 raw focus。
如果 create_plan 不在你的 toolkit 里(workspace 未启用 plan mode),
退回到文本式计划:
finish_subtask / finish_plan,没 plan 就没这两个
动作。用户 approve 计划、唯一的 subtask 转为 in-progress 后,基于 THIS 会话 写完整的 SKILL.md 正文。内容能撑得起就不嫌长。
写作风格:
MUST。正文主章节与 plan.description Part 2 一一对应:同序、同范围。章节
标题用对应步骤的动词短语。如果用户在 approve 阶段对 Part 2 做了
refine,按 refined 版本写。
对每个步骤,从会话事实出发回答四个具体问题(不是凭常识猜):
delay=2 避开之前出现的重试循环。」如果会话里没有某个问题的真实答案,省略这一项,不要编造。编造参 数或错误提示是本 skill 最常见的失败模式。
只在能帮到 future agent 时才加,没有固定 schema:
不适用就跳过。空章节比省略更糟。
如果会话里输出形态固定下来(表格、JSON schema、markdown 模板),在产
出该输出的步骤顶部用 ALWAYS use this template: 块写一次即可:
ALWAYS use this exact template:
| Ticker | Last close | Currency | Source |
|--------|-----------|----------|--------|
| <symbol> | <price> | <iso-4217> | <api-name> |
如果输出本质是自由形态,跳过本步。
完整通读一遍正文,单 pass 检查全部三项:
plan.description Part 2 的每个步骤都已
落到正文,且有事实支撑。任何一项不通过就回去修。
materialize_skill 持久化调用 materialize_skill:
name:与 plan.name 相同的标准化 skill_name。description:从 plan.description Part 1 浓缩出的紧凑
Use this skill when … 串。≤ 200 字符。保留 preview 中的同义词
与邻近表达(LLM 倾向于少触发 skill,描述稍微「推一下」比窄定
义更可靠)。body:已 review 过的 SKILL.md 正文。不含 frontmatter,工
具会自己渲染。不要用 write_file 直接写 SKILL.md。
materialize_skill 的错误工具会返回冲突 skill 名 + 一个建议的改名。自动恢复,不要再问用户。
cooking 已占用时可以用:
cooking-v2、cooking-2、cooking-new。revise_current_plan 把 plan.name 改成新名(文本式计划
fallback 时直接在内存里换掉工作名)。materialize_skill。cooking-v2,因为 cooking 已被占用。如果想用回原名,
可以删掉旧的再跑 /make-skill。」修正 SKILL.md 内容(frontmatter 字段、正文章节等)再调一次。
materialize_skill 没成功前不要调 finish_subtask。
移除被 flag 的模式再重试。
调整输入再重试,或如果不可恢复就 abandon 计划。
materialize_skill 返回成功后:
finish_subtask。finish_plan with state="completed"。/<skill_name> 调用。