Skill Creator Optimized
一句话定位:把需求、流程或已有材料,变成结构标准、触发清晰、流程可执行、异常可诊断、可校验可打包的技能包。
北极星目标:可触发 > 可执行 > 可验证 > 可维护 > 版式美观。出现分歧时按此顺序裁决。
主文件只保留红线、速查、流程骨架与指针;细则一律下沉 references/,按需读取。
① 不可突破的红线
以下 9 条为硬约束,命中即停止当前动作并进入整改,不允许「先做完再说」。
| 编号 | 红线 | 违反后果 |
|---|---|---|
| 🔴 R1 | 默认不覆盖用户原文件。一律输出到 output/<skill-name>/,覆盖须显式确认 |
原技能包被破坏,无法回滚 |
| 🔴 R2 | 零品牌词。正文禁止出现宿主产品名与作者署名,署名只在 frontmatter author 与脚本头注释出现 |
上架审核被卡 |
| 🔴 R3 | 零私有绝对路径与凭证。禁止用户主目录形态的绝对路径(<用户主目录>/<用户名>/…)、密钥文件、明文口令 |
交付包泄露安装者信息 |
| 🔴 R4 | 零危险命令。禁止删除根目录、子进程直连 shell、远程脚本直执行一类写法 | 执行侧不可控损毁 |
| 🔴 R5 | 不伪造校验结果。没跑的维度记 n/a 并说明原因,不得臆断为满分或零分 |
质量度量失真 |
| 🔴 R6 | 门禁不过不出包。评分硬门禁或安全扫描命中阻断项时,不产出 zip | 缺陷包流入交付 |
| 🔴 R7 | 最小必要重构。优化已有包时新增优先、保留原能力,不推倒重来 | 原能力丢失 |
| 🔴 R8 | 自纠错最多 2 轮。同一失败路径不无限重试,仍失败则换路径或降级交付 | 陷入死循环 |
| 🔴 R9 | 不确定内容必须标注。假设、推断、默认值都要在产物中显性标记 | 用户把假设当事实 |
红线 R1 / R3 / R4 / R7 的完整边界、确认话术与备份策略见 references/05-permissions-guide.md;R5 / R6 的判据见 references/03-data-quality-rules.md。
② 核心能力速查表
| 能力 | 典型触发语 | 产出 | 详见 |
|---|---|---|---|
| 从零创建技能包 | 从零创建技能包、写一份全新的 SKILL.md | 完整目录骨架 + frontmatter | references/01-workflow.md |
| 流程 / SOP 封装 | 把流程封装成技能 | SKILL.md + 六份 references + examples | references/01-workflow.md |
| 结构与引用修复 | 修复技能包结构与引用缺失 | 断链清单 + 修复后的文件 | references/03-data-quality-rules.md |
| frontmatter 补齐 | 补齐 frontmatter | 平台必填 8 项 + 建议项 | references/06-frontmatter-spec.md |
| 目录结构生成 | 生成技能目录结构 | 一次成型骨架(脚本化) | scripts/init-skill.py |
| 合格性体检 | 结构与内容合格性体检 | 十维评分报告 | scripts/validate-skill.sh |
| 安全扫描 | 交付前安全自查 | F001-F008 规则报告 | scripts/scan-security.py |
| 打包交付 | 输出可安装 zip | zip + 交付清单 | scripts/package-skill.py |
| 触发质量回归 | 这个技能会被误触发吗 | evals 用例集与路由断言 | evals/trigger_cases.json |
| 反模式识别 | 这类需求该不该建包 | 反模式判定与修法 | failures/ |
| 上架材料生成 | 这段上架说明怎么写 | 八段评审包 | references/07-listing-pack.md |
| 批量生成 | 一次要做六个技能 | 逐单元评分与汇总 | examples/batch-usage.md |
| 多平台适配 | 这个包能上别的平台吗 | 三套 target 断言 | evals/packaging_expectations.json |
| 质量演进复盘 | 这几轮分数怎么变的 | 趋势与维度雷达 | scripts/render-score-history.py |
三种工作模式(新手引导 / 专业快速 / 已有包优化)的进入条件与差异见 references/01-workflow.md。
③ 标准工作流程
七阶段,每阶段有输入、输出与判定阈值;任一段判定不通过则回到上一段整改,最多 2 轮。
| 阶段 | 动作 | 判定阈值 |
|---|---|---|
| 1 输入诊断 | 判定信息充足度并决定默认值或澄清 | L2 及以上可进入下一阶段 |
| 2 结构审计 | 扫描目录、frontmatter、引用、空文件 | 必填文件齐全且引用零断裂 |
| 3 生成或最小重构 | 按模板生成,或对已有包增量修补 | 不删除原有能力 |
| 4 量化评分 | 跑十维评分器 | 十维可解释,硬门禁全过 |
| 5 安全扫描 | 跑 F001-F008 规则扫描 | critical 数为 0 |
| 6 打包 | 排除运行时产物后出 zip | 顶层一层,无 JUNK |
| 7 交付汇报 | 输出六段汇报 | 未修项量化披露 |
输入诊断等级、结构审计 8 项、生成策略、优化优先级 O1-O4、进度落盘与降级交付的完整定义见 references/01-workflow.md。
④ 任务状态机
主链 8 态,外加 2 个异常态。每完成一次迁移,写一行进度摘要并落盘 output/<skill-name>/progress.md。
待诊断 → 诊断中 → 审计中 → 生成中 → 校验中 → 扫描中 → 打包中 → 已交付
↑ ↓
澄清中 整改中 ──> 校验中(最多 2 轮)
校验中 ──> 已阻塞(连续 2 轮未过,交用户决策)
任意态 ──> 中断恢复(读 progress.md 的 current_stage 续跑)
| 状态 | 进入条件 | 出口 |
|---|---|---|
| 待诊断 | 收到需求 | 诊断中 |
| 诊断中 | 开始判定信息充足度 | 澄清中 / 审计中 |
| 澄清中 | 输入不足或存在必问项 | 诊断中 |
| 审计中 | 输入可执行 | 生成中 |
| 生成中 | 审计完成 | 校验中 |
| 校验中 | 生成完成 | 整改中 / 扫描中 / 已阻塞 |
| 扫描中 | 门禁通过 | 打包中 / 整改中 |
| 打包中 | 扫描无 critical | 已交付 |
| 已交付 | 包内分与目录分一致 | 终态 |
| 已阻塞 | 连续 2 轮未过 | 用户决策后回到诊断中 |
| 中断恢复 | 工具失败或对话中断 | 按 current_stage 续跑 |
进度字段结构、落盘时机与恢复入口见 references/01-workflow.md;异常分级见 references/02-error-codes.md。
⑤ 数据合规与安全
| 主题 | 规则 |
|---|---|
| 读写边界 | 只读源材料;写入只发生在输出目录;覆盖需显式确认并先备份 |
| 外部系统 | 不写外部系统、不联网取数,除非用户明确要求并确认 |
| 凭证处理 | 不读取、不落盘、不回显密钥与令牌;命中即按 E3 暂停 |
| 隐私信息 | 私有绝对路径、主机名、用户名一律替换为占位词 |
| 交付前扫描 | 必跑 scripts/scan-security.py,critical 为 0 才允许出包 |
| 报告产物 | 运行时报告不进交付包,避免把扫描证据带入产物 |
扫描规则 F001 密钥、F002 引用断裂、F003 私有路径、F004 危险命令、F005 符号链接、F006 品牌禁用词、F007 缓存残留、F008 未声明依赖。完整读写边界、覆盖确认流程与备份策略见 references/05-permissions-guide.md。
⑥ 性能与容量
| 项 | 约定 |
|---|---|
| 主文件体积 | 只放红线、速查、骨架与指针;细则下沉,避免每次激活全量加载 |
| references 加载 | 按需读取,一次只读当前阶段需要的那一份 |
| 输入规模 | 单份材料超过约 3 万字时先做摘要再诊断;批量任务拆成独立单元分别评分 |
| 输出规模 | 单次生成技能数建议不超过 5 个,超出时先合并去重再统一评分 |
| 耗时控制 | 评分、扫描、打包均为本地脚本,无网络依赖;任一步超时按 E2 降级并说明 |
| 降级策略 | 材料缺失时降级生成并标注待确认项,不静默省略 |
容量相关的批量合并规则与降级阈值见 references/01-workflow.md。
⑦ 交付形态
output/<skill-name>/
├── <skill-name>/ # 目录版交付物
│ ├── SKILL.md / AGENTS.md / README.md / package.json
│ ├── references/01-07 # 七份编号规范(07 为上架评审包)
│ ├── scripts/ # init / validate / scan-security / package / render-score-history
│ ├── evals/ failures/ assets/ config/ examples/ knowledge/ tests/
│ └── progress.md # 断点恢复进度(由 <skill-name>/ 内产出)
├── <skill-name>-v<version>.zip # zip 版,顶层只有一层
├── delivery-manifest.yaml # 交付清单
└── progress.md # 本任务进度落盘(字段名见 references/01-workflow.md 第 7 节)
交付汇报固定六段:完成度 / 评分与基线对比 / 文件清单 / 校验证据 / 未修项量化披露 / 下一步。
命名规则、版本号 SemVer、报告文件名与输出路径见 references/04-naming-conventions.md;字段集见 references/06-frontmatter-spec.md;交付清单结构见 assets/schema/delivery-manifest.schema.yaml。
⑧ 交付前自检
交付前必须过质量门禁:十维加权评分,总分 100,任一硬门禁命中即阻断出包。
| 维度 | 权重 | 维度 | 权重 |
|---|---|---|---|
| D1 元数据合规 | 15 | D6 引用完整性 | 5 |
| D2 结构完整性 | 10 | D7 安全合规 | 10 |
| D3 触发质量 | 15 | D8 脚本可执行 | 5 |
| D4 工作流可执行 | 10 | D9 防退化 | 10 |
| D5 异常与恢复 | 10 | D10 交付自洽 | 10 |
硬门禁:HG1 元数据合规、HG2 安全 critical、HG3 总分不低于基线、HG4 交付包自洽。
bash scripts/validate-skill.sh <skill-dir> reports --mode score --phase <阶段>
bash scripts/validate-skill.sh <skill-dir> reports --selftest
python3 scripts/scan-security.py <skill-dir> --out reports/security-report.json
python3 scripts/package-skill.py <skill-dir> --out output --platform generic
python3 scripts/render-score-history.py <skill-dir> reports
--phase 决定评分历史文件名(<version>-<phase>-<时间戳>.json),每一层留一份;--platform 可选 generic / openai / claude,按目标平台的最小字段与文件集断言。
判据与权重外置在 config/score-weights.yaml;输入材料质量判定规则见 references/03-data-quality-rules.md;报告结构见 assets/schema/score-report.schema.json。
⑨ 何时不用本 Skill
以下情形不应调用本技能,应改走其他技能或直接响应:
- 只想要一次性结果:「给我写个一次性的提示词」——直接写提示词,不建包。见
failures/one-off-vs-reusable/。 - 只要讲解或答疑:「讲一下 frontmatter 是什么」——直接解释,不产出目录结构。见
failures/explain-not-package/。 - 只要一份文档:「把流程写成一份说明文档」——交付文档而非技能包。见
failures/document-only-vs-skill/。 - 已有技能的第 N 轮迭代裁定:任务书、收尾裁定、迭代轮次管理——改走迭代治理类技能。
- 质量评分卡与上架被拒归因:以评分与归因报告为主——改走质量评估类技能。
- 把已有目录打成可上传 zip:只要压缩与上传形态——改走打包上架类技能。
- 发布前安全审计:密钥、路径穿越、危险命令的专项审计——改走发布安全审计类技能。
- 纯内容创作:写文章、翻译、总结、改写——不需要技能包形态。
- 要求推倒重来式重写:与本技能的最小必要重构原则冲突,先确认边界。见
failures/over-refactor-vs-minimal/。
路由混淆的可回归断言见 evals/confusion__route_cases.json。
⑩ FAQ
Q1:输入很少,只有「帮我写个技能」怎么办?
进入新手引导模式,先做最小可行诊断,给出 3 个方向选项与可一键采用的默认草案,并把待确认项显性标出。
Q2:能不能直接改我原来的技能包?
默认不覆盖。原文件保持只读,产物落在输出目录;确需覆盖时必须显式确认并先备份。
Q3:评分里出现 n/a 是什么意思?
表示该维度当前没有数据源。按可用权重折算总分,不臆断为零分,并在报告的未修项披露里写明原因与责任人。
Q4:门禁没过还能出包吗?
不能。门禁不过不产出 zip;确需临时出包要用 --skip-gate 显式声明,且报告会记录该动作。
Q5:触发词会不会和其他技能冲突?
会。触发词主权表与路由断言维护在 evals/,description 与用例双向对齐后才允许改动。
Q6:优化已有包时改多少合适?
最小必要重构:优先新增文件、补引用、补字段,不删除原有能力;破坏性改动必须逐项确认。
Q7:安全扫描报了 REVIEW 还能交付吗?
可以。只有 critical 阻断;high 与 medium 需要说明处置方式或列入未修项披露。
Q8:任务中断后怎么继续?
读 output/<skill-name>/progress.md 的 current_stage,从该阶段续跑,不回溯已完成的阶段。
Q9:批量生成多个技能怎么处理?
5 个及以上切批量分支:拆单元 → 并行起草 → 合并去重 → 逐单元独立评分 → 逐单元打包 → 统一复盘。每个单元独立留档,不做合并总分。完整走法见 examples/batch-usage.md。
Q10:脚本需要联网或装依赖吗?
不需要。五个脚本只用标准库,无第三方依赖、无网络请求;曝光测量为可选项,未配置接口时如实记 n/a。
流程细节见 references/01-workflow.md,异常分级见 references/02-error-codes.md,字段规范见 references/06-frontmatter-spec.md。