write-skill 是 gstack 技能集合中的一个元技能,用途是编写新的 agent skill,或在不引入臃肿的情况下改进已有技能。其核心内容包括编辑阶梯(edit ladder)、层级(levels)、漂移与体积检查,以及完整的瘦身(diet)流程。
用途与定位 该技能面向技能本身的编写与维护。它要求把每条事实放在“仍能在 agent 需要之前触达它”的最低层级上,并遵循编辑阶梯:优先在技能之下的工具层修复(更清晰的错误、标志、检查或测试),其次判断模型是否真的需要该行,再次是编辑而非追加,然后选择合适层级,最后写成规则而非故事。
主要能力
- 层级划分:description 承载每个场景一个触发条件,每次会话加载;SKILL.md 承载每个任务都需要的内容,每次使用加载;references/ 承载部分任务才需要的内容,需有一行说明何时读取;工具的 --help 承载标志、取值与示例;工具的回复、错误与测试承载正确名称、修复方式与下一步。
- 编辑阶梯:停在第一个能处理该变更的步骤,避免无谓的文档膨胀。
- 体积与漂移检查:运行 gstack-skill-bill 在改动前后测量技能体积,并在提交信息中记录 Skill-Size: <before>→<after> bytes (<file>)。DUE 表示自上次 Skill-Diet 提交以来增长超过 10%,此时应瘦身而非继续添加。
- 安全线:对写入、数据离开本机、付费支出等风险区域,保留两到三行内联安全说明。
- 一致性:当代码更改了技能所教的名称或标志时,应在同一次变更中更新技能。
使用方式 先运行 gstack-skill-bill <name|folder> 定位技能,它会解析精确名称并打印技能类型及各层级体积。新技能需先创建文件夹(在 gstack 检出中遵循 CONTRIBUTING.md 的“Adding a new skill”),再按层级与编辑阶梯编写。对于 user 类技能可原地编辑;gstack-install 类技能不可编辑,会被 gstack-upgrade 覆盖,应编辑 gstack 检出中的 <skill>/SKILL.md.tmpl,或把技能复制到用户自己的文件夹;gstack-checkout 类技能应编辑 SKILL.md.tmpl 而非 SKILL.md,然后运行 bun run gen:skill-docs。
检查与记录 改动前后运行 gstack-skill-bill,并在提交信息中记录体积变化。在 gstack 检出中运行 bun test test/skill-bin-drift.test.ts test/parity-suite.test.ts 以及 CONTRIBUTING.md 中的预算。若上下文预算棘轮变红,应瘦身而非提高上限。最后在新会话中重跑触发该变更的用例。
适用场景与限制 适用于维护 gstack 技能库、控制上下文预算、避免技能文档膨胀。完整瘦身大型、臃肿或漂移技能时,需读取该技能文件夹中的 references/diet.md。该技能依赖 gstack 的脚本与目录结构(如 ~/.claude/skills/gstack/),并包含共享前言、问题调优与遥测等流程;具体收费、价格与平台支持信息暂未提供。