关于 skill-factory
skill-factory 用于创建、更新和标准化可移植的 Agent 技能,并在流程中加入验证与评估。它强调将技能目标与领域推理、任务结构和结果证明相连。
主要功能
- 01创建、更新和标准化技能
- 02导入并适配技能包
- 03运行验证与评估流程
- 04通过 Mise 编排任务
- 05记录决策、证据和执行凭据
- 06区分确定性检查与判断
适用场景
- 01为明确的用户目标构建技能
- 02标准化现有技能包
- 03验证技能结构和写作
- 04按行为要求评估变更
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ srinitude/ skills --skill skill-factory安装后在 Claude Code 中输入/skill-factory确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.github/workflows/ci.ymlassets/agentic-request-template.jsondecision-records-template.jsondecision-records.jsondecisions-template.mdeval-case-template.jsonevals-template.jsonexample-template.mdimprovement-contract.jsoninvocation-receipt-template.jsonmise-primitives-catalog.jsonmise-primitives-template.jsonmise-primitives.jsonmise-template.tomlprimitive-lifecycle-template.jsonprimitive-lifecycle.jsonregistry-standardization-profiles.jsonskill-template.mdsource-shape-corpus.jsonstarter-agentic-test.pystarter-ci-test.pystarter-script.pystarter-test.pytrigger-template.jsonuse-case-contract-template.jsonuse-case-contract.jsonvariant-review.schema.jsonassets/ci/ci.ymlevals/cases.jsoncontract.md详细介绍
skill-factory
skill-factory 用于创建、更新和标准化可用的 Agent 技能。它会保留用户要求的用途,同时生成可移植目录,其中的指令、参考资料、资源、脚本、测试、Mise 任务图、CI、示例和评估均通过全新检查。
结果与动机
最终结果应是一个能够产生预期用户可见结果并证明这一点的技能。打包形式是必要的证据,但本身并非结果。说明每项重要约束背后的原因,让执行者能够在允许的范围内灵活调整,而不损害最终结果。不要在 prose 中描述确定性的机械操作,以便模型将注意力放在语义、判断、创造性工作和例外情况上。
简洁性与语言
让这个工厂及其所有输出保持最精简、连贯的结构,同时保留最终结果、证明、边界、禁止结果、强制方法和已接受行为。简洁意味着易于推理:每条规则只有一个权威来源,每个概念只有一个稳定术语,每项工作只有一条默认路径,每个重要未知项都有一个明确的失败分支。删除重复规则、装饰性结构、不必要的间接层,以及不会改变行为的选择。绝不要为了减少行数而隐藏重要的领域复杂性或弱化规则。
在加载支持材料之前,为每项操作设定上下文预算。让始终加载的正文成为涵盖领域所需的最精简决策路径。在每个分支中,只加载当前决策所需的权威来源,记录或验证其内容摘要,复用当前已验证的凭据;仅在来源变更或存在不确定性时重新读取。如果删掉了领域动机、约束、接口、失败分支、证明责任、由模型负责的能力,或进行智能、审慎调整所需的上下文,那么就不能算作节省 token。
使用平实、直接的语言。通过 mise run lint-writing 加载写作规则,并将其用于本工厂以及它创建、更新、标准化或导入的每项技能。先给出结果,使用主动动词,每句话只表达一个想法,每个段落只讨论一个主题,并按照执行顺序编排指令。机械式 lint 用于发现范围明确的文本问题。由人类进行的同义审查则用于判断整个包是否更简洁且仍然完整。
证据与来源顺序
首先使用用户请求和实时权威来源。然后依次使用当前目标技能、通过 mise run validate 加载的生成契约、任务专用参考资料、完成示例和评估证据。在定义领域行为、术语、角色、约束或证明之前,通过 mise run domain-research-policy 加载用例具体性。每个方面和基本要素都必须说明其领域作用、所保护的结果、具体的进展价值、动机、所防止的失败,以及证明。选择数据结构、格式、缓存、基准测试或改进试验之前,通过 mise run improvement-policy 加载资源与实验设计。生成技能时必须遵循以下顺序:结果、动机、证据、Mise 任务图、步骤、资源,然后是评估。此顺序将意图与行动相连,再将行动与证明相连。
此技能接受哪些命令?
将用户的请求视为以下命令之一。
| 命令 | 功能 |
|---|---|
| help | 显示此表格,并为每个命令提供一行摘要。 |
| new | 构建一个满足提示词要求的技能。主要流程见下文。 |
| update | 修改现有技能,同时保留其领域用途和已接受的行为。 |
| standardize | 将现有技能转换为此工厂的标准格式,同时不替换其领域用途。 |
| standardize-target | 在基线冻结后,规划或应用受配置文件约束的原地注册表标准化。 |
| refresh-registry-lineage <skill...> | 在注册表技能变更获接受后,刷新其来源沿袭信息。 |
| import | 将特定于宿主的源转换为独立的可移植技能和仓库指南包。 |
| variant | 创建独立适配的技能;仅在明确请求时刷新现有技能。 |
| validate | 对技能运行结构、写作、代码和占位符检查。 |
| eval | 检查技能的评估文件,然后运行其中的用例。 |
| doctor | 运行 mise run doctor 并报告就绪状态。 |
如果请求与任何命令都不匹配,或者无法获取某项必要信息,请停止,说明缺少什么,然后等待。不要猜测。
有序工作流
- 明确结果和领域。 Model:对命令进行分类,确定用户可见的结果、边界、禁止结果和可接受行为,不得凭空编造事实。分支:根据请求选择新建、更新、标准化、导入、变体、验证、评估、诊断或帮助。编写前,使用
mise run resolve-scope遵循明确选择,在更新时保留有效范围;如果预期的可用范围尚未明确,则提出一个简洁的问题。 - 确认运行器已就绪。 Mise:运行
mise run doctor。Model:选择匹配的公共操作。如果:就绪状态为否,则停止受阻的工作,并报告确切的未满足前置条件。 - 以用例为依据。 Mise:运行
mise run domain-research-policy和mise run use-case-policy。Model:收集当前来源,检验反面证据,并确定目标技能的术语、角色、失败情形、证据和排除项。对于每项:接受、拒绝、限定范围,或说明理由并标记每个必需来源和领域维度不适用。 - 确定变更并路由。 Mise:如果操作有来源,则运行
mise run plan-standardize -- <source>。对于特定客户端的语料导入,运行mise run audit-source-corpus -- <source>;可移植的技能包则使用包检查。对于原地注册表更新,先运行mise run standardize-target -- <source> --profile <profile>,不加--apply,审查配置文件和变更集,然后再加--apply重新运行。Model:保留基线,找到最小责任归属,并拒绝冲突、所有权未知或仅适用于宿主的假设。 - 按 BOOTSTRAP、RED、GREEN、REFACTOR 阶段构建。 Mise:运行
mise run task-graph-policy,然后运行mise run test以捕获 RED 状态,并在每次变更后再次运行。Model:编写确定性代码无法判定的领域推理、创意行为和异常处理。重复以下步骤:观察一个行为契约在 RED 状态下失败,实施最小变更,重新运行至 GREEN 状态,并在同一契约下重构,直到所需行为通过或真实阻碍因素中止循环。 - 提供集成证明。 Mise:运行
mise run decision-policy、目标技能的mise run ci,然后依次运行mise run refresh-registry-lineage -- <skill>、mise run validate-target -- <path>和mise run eval-target -- <path>。Model:审查语义、来源与声明之间的链接、必要时的直接感知、反例,以及结果是否真正实现了已确定的目标。如果:检查或判断失败,则返回至责任归属最低的步骤,并使其下游依赖失效。 - 记录本次调用。 Mise:运行
mise run invocation-policy -- <receipt>。Model:说明所有剩余限制。对于每项:在回执中记录每个任务的运行证据,或说明其因领域特定原因而不适用。 - 保留或还原改进。 Mise:在进行可选试验前运行
mise run improvement-policy。Model:仅当候选方案在其指定维度上有所改善,且没有导致任何受保护维度退步时才予以保留;否则还原为已接受的摘要,并验证还原结果。 - 最后处理维护。 Mise:只有在已接受的结果工作完成后,才运行
mise run mise-primitives-update,然后重新运行mise run ci。Model:协调任何已变更的原语,并报告包管理器阻碍因素,不得强行处理。停止:在第一个完全获接受的状态结束;不要添加无关工作。
确定性与模型负责的边界
Mise 负责所有确定性命令。将模式、解析、验证、文件生成、状态转换、任务排序、回执、测量、比较和可复现回滚检查,放入经过测试且由单个 Mise 任务统一负责的脚本中。模型负责的边界仅包含语义解读、领域判断、创意生成、因果解释和直接的人类感官审查。通过模式检查无法证明含义或质量。
Mise 是编排边界,而非能力上限。为实现目标,使用所有可用且已获授权的能力,包括直接视觉感知、最新网络研究、浏览器或计算机交互、工具调用、多模态检查、语义推理、综合、创造力和人类感官判断。让 Mise 准备输入、安排依赖、保留回执并测试可复现的声明,但绝不要用代理方式取代直接判断。如果任务需要代码无法提供的能力,那么禁用或模仿该能力就是失败,即使所有确定性门槛都已通过。Mise 的作用是消除机械性延迟并暴露可复现的故障,使模型负责的注意力专注于含义、感知、创造力和例外情况。
通过 mise run agentic-request -- --request <file-or-dash> --runner <executable> --runner-args-json <array> 运行长提示词、技能和 Agent 式原语。将请求绑定到其用例契约、结果、领域术语和摘要。每个提示词、SKILL.md 依赖项和原语都要说明其领域角色、贡献、相关性和证明。调用方提供运行器权限。分发器通过标准输入传递一个 JSON 信封,不进行 shell 插值。它只能证明结构,不能证明相关性或结果质量。
将表面上不确定的工作分解处理。通过单个 Mise 任务处理稳定的清单、回执、模式、覆盖范围、顺序、摘要、预算、输出信封、决策和回滚。只在语义解读、因果推理、创造力、直接感知或人类感官判断处停止,并记录代码为何无法负责这些工作。
对 skill-factory 本身也应用相同的信封、原语映射、有依据的决策、图、证明、证伪标准、失败分支和回滚。
通过 mise run decision-policy,在 assets/decision-records.json 中记录每项重大决策的结果、动机、选择该路径的理由、负责人、输入、影响、证明、证伪标准和失败分支。语义审查负责判断记录是否属实。
根据测得的访问模式选择数据结构、算法、格式、缓存键、批处理和并发方案。测量冷启动和热启动路径,以及适用的时间、CPU、内存、存储、网络、缓存、上下文、进程、并发、加速器、成本和人工注意力。记录未使用的项目。仅缓存输入、版本、环境和输出均完整的确定性任务。绝不缓存实时判断、可变的远程状态、未捕获的随机性或副作用。
Mise 任务图
公开接口为 mise run doctor、mise run resolve-scope、mise run new、mise run variant、mise run plan-standardize、mise run standardize-target、mise run refresh-registry-lineage、mise run audit-source-corpus、mise run domain-research-policy、mise run use-case-policy、mise run mise-primitives-policy、mise run primitive-lifecycle-policy、mise run task-graph-policy、mise run decision-policy、mise run validate-target、mise run eval-target、mise run agentic-request、mise run invocation-policy、mise run mise-primitives-update 和 mise run ci。切勿绕过。缺少 Mise 即为 BLOCKED。声明每项依赖,并为每项操作指定一条路径。循环、菱形依赖、未知或断开的边、冗余边以及嵌套的 Mise 调用都会导致失败。在 assets/use-case-contract.json 中记录每项任务的结果、动机、进度、证明和适用性。
映射参与者、对象、操作、状态、不变量、变体、接口、权威来源、失败、恢复、证据、时间、资源、质量、术语和排除项。映射每个技能正文、参考资料、资产、脚本、测试、Mise 任务、示例、评估、策略、架构和记录。通过 mise run primitive-lifecycle-policy,在 assets/primitive-lifecycle.json 中覆盖从发现到退役的所有阶段;每个阶段都必须有真实的领域任务、进度、动机、证明以及预防的失败。
通过 mise run mise-primitives-policy,在 assets/mise-primitives.json 中对每个官方 Mise 原语进行分类。只使用能服务于结果的原语;对每项未使用的原语给出领域原因。遗漏、过时、虚构或名义上的使用均会导致失败。
核算每项调用任务。运行选定路径,并为其他每项任务提供针对本次请求的 inapplicable 证明。使用 mise run invocation-policy -- <receipt> 验证回执。保留每项运行声明的命令输出;无输出即会失败。
在结果工作期间固定 Mise 版本。仅在验收后运行 mise run mise-primitives-update,协调更新后的目录,然后重新运行 mise run ci 并记录版本和摘要。包管理器或更新失败即为 BLOCKED;切勿强制替换。
操作分支
- **新建:**运行
mise run doctor,通过mise run source-corpus复用一个所有者,然后运行mise run new -- --name <name> --description "<description>" --scope <user-or-project> --dest <destination>。按 RED、GREEN、REFACTOR 顺序编写任务、图测试、行为测试、脚本、SKILL.md、参考资料、资源、示例和评估。所有占位种子替换完毕前,新建的脚手架仍会被阻止。 - **更新或标准化:**运行
mise run plan-standardize -- <source>并保存其baseline_digest。对于整个注册表的策略采纳,先运行mise run standardize-target -- <source> --profile <profile>生成不写入的计划;仅在领域配置文件和基线获得认可后,才添加--apply。这些操作会保留领域用途、触发条件、已接受的行为、证据、结果、证明、边界、禁止的结果和强制方法。修改最小范围的所有者,然后与基线进行比较。 - **导入:**还要运行
mise run audit-source-corpus -- <source>。区分编码 Agent 客户端与软件包格式。拒绝冲突、符号链接、未知所有者和特定于平台的假设。将能力说明转换为 SKILL.md,将仓库规则转换为 AGENTS.md,并将宿主所有权转换为.agents/。除非用户要求原地迁移,否则源内容保持不变。 - **变体:**通过
mise run variant加载 references/scope-variants.md。规划、阅读完整的源和目标项目上下文、准备单独的候选项、验证调整后的行为,并通过该任务接受候选项。报告和沿袭记录会标明两个作用域、调整内容和源内容的保留情况。显式刷新会比较记录的基线并解决定制冲突。显式原地调整也使用相同的关卡。根据对应方向,通过mise run variant加载 examples/example-variant-project.md 或 examples/example-variant-user.md。 - **验证或评估:**运行
mise run validate-target -- <path>或mise run eval-target -- <path>。接受操作必须指定作用域。仅在检查未经修改的旧版技能时才添加--inspect-legacy。报告所有失败,并依据新保存的证据评定行为案例。
写入前确定作用域
每个新建或更新的输出都要保存且仅保存一个 metadata.scope 字符串:user 表示该输出适用于用户的所有项目;project 表示该输出适用于特定项目或仓库。根据此元数据扩展推导标签;保留其他元数据。通用说明和源注册表位置都不能决定作用域。遵循明确的选择;否则,在更新、标准化和导入时保留有效作用域。仅依据明确的预期用途和权威上下文推断缺失的作用域。证据缺失或相互矛盾时,必须在执行受影响的写入前提出一个简洁的问题。检查未修改的旧版内容时,允许缺少作用域;但无效值、无效类型和重复键始终会导致失败。生成的检查器会执行相同的验收规则。通过 mise run resolve-scope 加载 references/scope-variants.md,用于解析作用域、调整变体,以及验证由集成方管理的目标位置。元数据本身绝不会安装、迁移、复制内容,也不会更改运行时权限。
渐进式披露
对 references/generation-contract.md 和 examples/example-help.md 使用 mise run validate;对 references/resource-and-experiment-design.md 使用 mise run improvement-policy;对 references/use-case-specificity.md 使用 mise run domain-research-policy;对 references/writing-rules.md 使用 mise run lint-writing;对 references/code-rules.md 使用 mise run lint-code;对 references/eval-authoring.md 和 evals/ 使用 mise run evals;对 references/registry.md 和 assets/source-shape-corpus.json 使用 mise run source-corpus;对 assets/skill-template.md 和 examples/example-new-skill.md 使用 mise run new。doctor 失败后加载 examples/example-doctor.md;占位符证据通过 mise run lint-placeholders 获取;验证示例则通过与之对应的目标任务获取。实现细节由 Mise 私下管理。
证明输出
命令成功时退出码为 0。mise run validate、mise run lint-writing、mise run lint-code、mise run lint-placeholders、mise run evals 和 mise run improvement-policy 均报告零个问题。mise run doctor 报告 "ready": true 和 "mode": "mise"。结构性检查通过只证明其对应的契约;仍须进行行为评估和领域审查。
何时算完成?
完成意味着以下命令均有最新证据且通过:mise run domain-research-policy、mise run use-case-policy、mise run mise-primitives-policy、mise run primitive-lifecycle-policy、mise run task-graph-policy、mise run decision-policy、mise run ci、mise run validate-target、mise run eval-target 和 mise run invocation-policy -- <receipt>;特定任务的行为、从来源到主张的审查、领域替换攻击和领域术语移除攻击均通过;日志从动机、证据、任务、步骤、资产到评估,全程追踪结果;不存在通用方面、原语、生命周期阶段、Mise 处置方式、任务、占位符、来源冲突、仅适用于宿主的假设、跳过的适用任务或未经证明的完成声明。
可选的最终改进实验
仅在必需工作获认可后运行此实验。冻结最新基线、冻结的评估器、固定数据、环境、时间预算、重复次数和适用的资源指标。在其所属范围内,以最小幅度更改一个指定维度。运行 mise run improvement-policy,然后通过所属的 Mise 任务执行用例实验。保留一份外部的保留、舍弃或崩溃记录,其中包含内容摘要和受保护维度的结果。仅当指定维度有实质性改善且没有任何受保护维度退化时,才保留候选版本。否则,恢复最后一个已接受版本并验证其摘要。除非用户的完成条件要求,否则不要启动无止境的循环。