本文へ移動
cccskills
無料GitHub で公開

skill-creator

当学生说"我想做一个自己的技能"、"每次都要重复交代同样的要求"、"能不能把这套流程固定下来"、"帮我改一下我那个技能"时使用。

先判断他手上已经有什么(一句想法 / 一段聊过的流程 / 一份写坏的草稿),从当前对话里能抠出来的答案就不要再问,查清运行时可声明的能力后直接写出一版完整可跑的 SKILL.md,只把剩下的关键分歧用一张选择题卡问完,改定后出确认卡存进技能库。

インストール方法を見る

含まれるファイル(1)

  • SKILL.md13.7 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

做一个自己的技能 / Skill Creator

把学生反复用到的一套做法,变成一份能真正跑起来的 SKILL.md。

技能不是"给 AI 的一段说明",是一份可执行的规格:它决定 agent 在什么时候被唤起、 能碰哪些数据、按什么步骤走、哪些事不许做。

先定位,别从头走流程

学生来的时候手上已经有东西了,位置不同,起点就不同:

他手上有从哪一步开始
一句想法("想做个错题整理的技能")第 1 步,走完整流程
刚才这段对话本身("把你刚才那套做法存下来")直接进第 2 步写草稿——流程就在上面,别再问一遍
一份自己写的草稿跳到第 3 步,指出问题并改,不要推倒重写
一个已存在的技能要改read_skill 读回来,只改他要改的部分,version 照「字段怎么定」升一级

最费时间的错误是不管他在哪一步,都从"你想做个什么技能"开始问。

尤其是第二种:学生说"把刚才那套存下来"时,触发场景、流程、边界基本都在上文里—— 他纠正过你哪几次、你读了什么、他嫌你多做了什么,这些就是这个技能要写的东西。 先把这些抠出来,只补真正空着的格子。

何时使用 / When to use

  • 学生发现自己反复在交代同一套要求("每次都要提醒你先看我的课表")
  • 刚聊完一段他满意的流程,想固定下来
  • 他有一套自己的方法想固定(错题整理的流程、面试准备的清单)
  • 他想改自己之前做的某个技能

不适用于 / Not for:

  • 只是想让 AI 这一次按某种方式回答 —— 直接说就行,不必做成技能
  • 想要的能力运行时根本没有(比如收发邮件)—— 技能只能调用已有能力, 做不出新能力。这种情况如实说,别写一个跑不起来的壳

流程 / Process

1. 查能力 + 抠现成答案

调 list_capabilities,记住有哪些读能力、哪些提案能力、哪些提问能力。 这一步在动笔之前,不能省——能力名是运行时定的,凭印象写会声明出一个不存在的名字, 那个技能装上去就是坏的。没有这个工具时也不要凭印象补,按下文「没有这些工具时(降级)」不声明能力。

同时把上文里已有的答案抠出来:他说过的原话、走过的步骤、纠正过你的地方。

学生说"我想要个类似 X 的"、或者已有技能与他要的重叠时,用 read_skill 读 X 当范本。 读参考技能不会把你切走——本 skill 声明了 read_skill,运行时据此把这类读取当查资料处理: 能力面不变,propose_skill / ask_user / list_capabilities 都还在,读完继续走下面的流程。 不要因为看到了别的 skill 的正文就改按它的流程走。 (学生如果是真想改用那个技能,让他点输入框上那张卡右侧的 ✕ 退出本技能,再重新说一次。)

2. 直接写出完整第一版

按下面的骨架写一份完整的 SKILL.md 贴给他看。拿不准的按最保守的选项定并标出来:

  • 拿不准要不要写库 → 不声明 capabilities(缺省即只读,最安全)
  • 拿不准触发场景 → 用他自己的措辞写 description,标注"这句最关键"
  • 拿不准边界 → 先写三条通用的(不代写、不编造、不替他做决定),标注待确认

不要贴填空模板让他填。贴一份能跑的完整草稿。

3. 同一轮把剩下的分歧一次问完

调 ask_user,最多 4 问,只问上文里没有、而且会改变技能形状的:

问什么为什么值得占一问选项举例
什么时候该自动派上用场description 是 agent 判断触发的唯一依据,写空了这技能永远不会被想起来我说要用才用 / 每周固定时候 / 遇到某类情况自动
要不要能改你的数据决定 capabilities 的形状,也决定用户看到多大的授权面只看不改 / 可以帮我加事项 / 可以帮我存文档
绝对不许做什么好技能与坏技能的差别多半在边界上,而作者一开始想不到写边界不替我做决定 / 不编造我没说过的 / 不代写文书 / 都要

上文里已经有答案的就别问。三问全有答案就直接跳到第 4 步。 不要问"这样可以吗""要不要我写出来"——草稿已经在他眼前了。

4. 改定并出卡

按答案调整,然后调 propose_skill。卡片会显示解析结果与授权范围, 解析不过会列出错误——照着错误改,再提一次。 不要在出卡前再问一句"确认要保存吗",卡片本身就是那次确认。

怎么写 description —— 这一段决定技能有没有用

description 是 agent 唯一的触发依据。写不好,技能存进去也永远不会被想起来。

已知的失败方向是"不触发",不是"乱触发"。 所以要写得主动一点: 不只写它做什么,还要写学生会说的哪些话应该唤起它,把原话直接塞进去。

弱:整理错题
强:当学生说"这次考试错了好几道"、"帮我看看错题"、"这题我又错了"时使用。
    把错题按知识点归类,标出重复错的那几个点,产出一份可存档的错题整理。
    只整理他给出的题,不编题也不代解。

写完自查一遍:说三句他真会说的话,对着 description 看会不会命中。 命不中就把那三句的措辞加进去。

正文怎么写

  • 用祈使句:"先读事项" 而不是 "应该先读一下事项"
  • 解释为什么,别堆全大写的 MUST。模型有判断力,告诉它这条规则在防什么, 它能处理你没写到的情况;只给一条硬命令,它在边界上就只会照字面办。 写着写着出现"绝对必须""严禁"时停一下,多半可以换成一句"因为……"
  • 边界要具体:"不代写文书" 比 "保持诚信" 有用一百倍
  • 先写完再回头看。写完通读一遍,删掉那些不出力的句子—— 正文越长模型越容易抓错重点

SKILL.md 骨架 / Skeleton

---
name: <kebab-case,和技能同名>
description: <当学生说"…"、"…"时使用。做什么、不做什么。写满信息,这是 agent 的判断依据>
category: <大类,如 study-planning>
version: 0.1.0
status: draft
priority: P0
compatible_agents:
  - claude-code
  - nestudy
  - generic-llm-agent
display_name: <中文名,界面上显示的>
capabilities:          # 不写 = 只读。要写库才列,且只列真正用到的
  - <来自 list_capabilities>
outputs:
  - <chat / document / canvas / event>
max_rounds: <1-100>
suggest_hint: <一句话,运行时主动建议时说的>
---

# <中文名 / English name>

<一两句话说清楚它做什么。>

## 何时使用
- <具体场景>

**不适用于**:
- <边界外的场景,指向别的技能>

## 流程
1. <步骤,写清楚每步读什么、产出什么。默认先做出东西再问>

## 输出格式
<给个模板>

## 边界
- **不…**:<理由>

字段怎么定 / Fields

  • 只读的流程别声明 capabilities——不写就是只读,这是最安全的默认值
  • 要写库才声明,且只声明真正用到的。多声明不会更强,只会让用户看到不必要的授权
  • outputs 要和 capabilities 对上:document 要有 propose_artifact, canvas 要 propose_canvas,event 要 propose_events
  • max_rounds 给够但别虚高:一次问完再产出的流程 20 上下够用, 一问一答的访谈类要到 50 以上。给 100 不会更强,只会让它有机会绕远路
  • 这个技能自己要不要问用户?要就声明 ask_user,并在正文里写清楚"先做出东西再问"
  • 改已有技能要升 version:不升的话,覆盖前后两版的版本号一样,出了问题分不清是哪一版。 新增步骤、能力或输出段升 minor(0.1.0 → 0.2.0,末位归零);只改措辞、例子或边界升 patch(0.1.0 → 0.1.1)。 原技能末尾有变更记录表的,在表格最上方加一行写明这次改了什么;没有就不必新建

输出格式 / Output

第一版草稿(与问题卡同一轮发出):

先按你说的写了一版,你看着改:

```markdown
<完整的 SKILL.md 原文>
```

**我拿不准、替你定了的:**
- <标注 1,下面问你>
- <标注 2>

没有这些工具时(降级) / Without these tools (degraded mode)

上面的流程按 nestudy 的工具写。在 Claude Code 或其他没有这些工具的环境里,流程和边界不变,只把工具换成下表的做法, 并在草稿上方写明「降级:没有 nestudy 工具,能力名没有核对,这份 SKILL.md 没有经过运行时校验」。

工具没有时怎么做
list_capabilities查不到能力清单,就不声明 capabilities 和 optional_capabilities(缺省只读),outputs 只写 chat;原本要写库的步骤改成"输出一张 Markdown 卡片请使用者自己保存"。学生贴出了他那个运行时的能力清单,才可以从清单里挑名字
read_skill请学生把要改的那份 SKILL.md 原文贴进来;拿不到原文就不动手,不凭记忆重写
ask_user在对话里直接问:同样最多 4 问、每问给选项,一次问完,然后停下等他回答
propose_skill把定稿的完整 SKILL.md 放进一个代码块交给学生,请他自己保存或导入他用的运行时,并写明这个技能能不能改他的数据;不说"已保存"

交出之前,把 propose_skill 平时替你查的几项自己核一遍:frontmatter 用 --- 包住,每行是「键: 值」或「- 列表项」; name 是小写 kebab-case;description 只占一行;version 是三段数字;category、status(新建写 draft)、 priority、compatible_agents 都在;正文不为空;outputs 与 capabilities 对得上(见「字段怎么定」)。

边界 / Boundaries

  • 不编造能力名:capabilities 里的每一个都必须来自 list_capabilities 的返回。 拿不准就再查一次。写错了那个技能装上去就是坏的。
  • 不替学生想需求:草稿是让他改的靶子,不是替他决定。 每一处你自己拿的主意都要标出来,别混在正文里假装是他的意思。
  • 不重问上文已经答过的:他刚说过的话再问一遍,比不问更让人烦。
  • 不省略边界那一问:没有边界的技能等于没有约束的 agent。
  • 不夸大:技能只能调用已有能力。学生要的做不到就直说,不要写一份看起来能跑、 实际调不到工具的规格。
  • 不代替确认:写完必须走 propose_skill 出卡(没有这个工具就交 Markdown 卡片,由他自己保存),由学生自己看过授权范围再存。
  • 写自己的边界也要老实:生成的技能会写库时,在草稿里明确告诉他"这个技能能改你的数据"。
  • 不写会伤人的技能:诱导学生造假申请材料、伪装成他本人对外发言、绕过学校规定的, 一律拒绝并说明理由。"扮演某个角色陪我练面试"这类没问题。

Token 控制 / Token discipline

  • list_capabilities 一次调完,不要每写一个字段查一次
  • 草稿只贴完整的这一次;改定后只贴改动的那几行 + 最后 propose_skill 那一份
  • 问题一次问完。运行时对连续追问有硬上限,一次一问会在写完之前就把额度用光

变更记录 / Changelog

版本日期变更类型
0.3.22026-09-26用例 Case 4 要求改技能时升版本、正文没教:「字段怎么定」补按 minor / patch 升 version 并在原有变更记录表最上方加行;声明兼容 claude-code 却没有降级路径,补「没有这些工具时(降级)」:无 list_capabilities 不声明能力,无 propose_skill 交 Markdown 卡片由学生自己保存patch
0.3.12026-08-05写明「读参考技能不会把你切走」:运行时已按声明把这类读取当查资料,能力面不变——实测模型读了一份范本之后以为自己改按那份流程走了patch
0.3.02026-08-05参考 Claude 官方 skill-creator 收敛轮数:新增「先定位学生在哪一步」(尤其"把刚才那套存下来"应直接从上文抠答案而不是重问一遍)、description 主动写法与三句自查、正文写作规范(祈使句 / 解释 why 而非全大写 MUST / 写完删冗句);max_rounds 60 → 20minor
0.2.02026-08-04转向先产出:查完能力直接写出完整草稿贴给学生改,关键分歧用 ask_user 一次问完;取消"一次只问一件事"的访谈式流程minor
0.1.02026-08-04初始草稿minor

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

当学生说"Common App 活动栏写不下"、"这段活动描述超字数了"、"帮我把这几条压到限制内"时使用。先按官方申请表核对当季字符限额,再逐条检查;一次把所有条目量完并直接给出压缩版,只在需要砍掉实质内容时才用选择题问该保哪部分。每改一版都用工具重新数一遍字符,绝不凭感觉说"这样应该够了"。只压缩,不代写空白。

日本語の概要は準備中です。原文の説明を表示しています。

ChromiteCr/Skills42026年10月16日 更新

当学生说"我参加过一些活动但没整理过"、"帮我把经历录进去"、"我的活动档案是空的"时使用。让学生一口气把记得的活动说出来,直接把这段话拆成结构化的长期事项(角色、组织、起止时间、做了什么、结果、级别),说不清的字段留空标"待补"而不是编,再用一张选择题卡把级别判定与是否重复这类关键项一次问完,然后提案入库。只记录学生真正说出口的内容,级别按事实判定,绝不往高了写。

日本語の概要は準備中です。原文の説明を表示しています。

ChromiteCr/Skills42026年10月16日 更新

当学生问"招生官会怎么看我的档案"、"我的背景还差什么"、"帮我评估一下现在的申请竞争力"时使用。以顶尖大学招生官的视角通读学生的档案、长期活动与已写下的反思,不问任何前置问题直接产出一份指名道姓的坦诚点评:这份材料的亮点、招生官真实的解读方式、明显的短板与空白、以及接下来最值得做的一到两件事。只读不写,不修改学生的任何数据,也不代写任何申请材料。

日本語の概要は準備中です。原文の説明を表示しています。

ChromiteCr/Skills42026年10月16日 更新

当使用者说"帮我填词"、"按这个字数模板写歌词"、"用多Agent对抗式写词"、"这首副歌帮我想几句"时使用,前提是字数骨架和这首歌写什么都已经有了;只有主题、还没定写什么时先用 lyric-concept-builder。拿一份字数骨架和意象系统,派三个 sonnet 子代理按不同路子并行独立起草(场景派 / 口语派 / 意象派),再派一个红队子代理逐句挑毛病,主 Agent 按句裁决拼稿,最后统一辙口与意象。收敛判据卡死:字数用 lyric-doctor 的脚本对模板数、每段同辙、hook 不含陈词、主歌二对主歌一有推进。不抄现有歌词,不替使用者决定这首歌要说什么。

日本語の概要は準備中です。原文の説明を表示しています。

ChromiteCr/Skills42026年10月16日 更新

当想知道一段 AI 回答"哪些能直接用、哪些必须先验证、哪些只能当建议"时使用。按声明类型分四级——低风险草稿材料、观点与策略建议、可查证的事实声明、会改变状态的可执行指令——每级配一句默认处置动作;再按影响半径排序,给出最小的下一步检查。可执行类一律标"不能直接执行;先做代码审阅/沙箱测试/回滚准备",其中破坏性或提权的命令排在最前。教的是一套可复用的复查习惯,不是替使用者把所有内容都核实一遍:本 skill 只分级、排序、定处置,要逐条核实走 ai-output-fact-checker,整段代码要做入库体检走 ai-code-onboarding-checklist。

日本語の概要は準備中です。原文の説明を表示しています。

ChromiteCr/Skills42026年10月16日 更新

当拿到一段 AI 生成的代码,还没决定要不要信、要不要跑、要不要往上继续加东西时使用。先做一遍客观体检:行数与嵌套深度、有没有测试、有没有硬编码密钥或遗留 TODO、依赖是不是真实存在、有没有危险调用(eval/exec、shell=True、递归删除、反序列化、提权、外发网络,按正文给的 grep 模式逐类查);再给风险评级和下一步动作。老实写明它查不了算法正确性——体检通过不等于代码是对的。回答里文字、事实和代码混在一起时先用 ai-answer-triage 分级;只审相对已有代码的一份改动用 ai-diff-review-protocol。

日本語の概要は準備中です。原文の説明を表示しています。

ChromiteCr/Skills42026年10月16日 更新

ChromiteCr のスキルをすべて見る

このスキルの問題を報告する