brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
refactor-skill-structure通过将示例提取到 references/EXAMPLES.md、拆分复合步骤,并重组章节以实现 渐进式披露,对过长或结构不良的 SKILL.md 进行重构。适用于技能超过 500 行的 CI 限制、代码块主导技能正文、步骤包含多个不相关操作,或内容更新将技能推过 行数限制后。
Independent GitHub snapshot · Automated classification · Original documentation governs
对超过 500 行限制或出现结构性问题的 SKILL.md 进行重构。此技能将扩展代码示例提取到 references/EXAMPLES.md,将复合步骤拆分为聚焦的子步骤,添加渐进式披露的交叉引用,并在重构后验证技能是否仍然完整有效。
references/EXAMPLES.md(默认:是,若存在可提取内容)阅读技能并创建逐章节的行数预算,以识别臃肿所在。
# Total line count
wc -l < skills/<skill-name>/SKILL.md
# Line count per section (approximate)
grep -n "^## \|^### " skills/<skill-name>/SKILL.md
对臃肿来源分类:
预期结果: 行数预算显示哪些章节过大以及适用的臃肿类别。最大的章节是主要重构目标。
失败处理: 若技能在 500 行以下且无明显结构性问题,此技能可能不需要。在继续之前验证重构请求是否合理。
将超过 15 行的代码块移至 references/EXAMPLES.md 文件,在主 SKILL.md 中保留简短的内联片段(3-10 行)。
创建 references 目录:
mkdir -p skills/<skill-name>/references/
对每个可提取的代码块:
references/EXAMPLES.md 的描述性标题下See [EXAMPLES.md](references/EXAMPLES.md#heading) for the complete configuration.用清晰标题组织 references/EXAMPLES.md:
# Examples
## Example 1: Full Configuration
Complete configuration file for [context]:
\```yaml
# ... full config here ...
\```
## Example 2: Multi-Variant Setup
### Variant A: Development
\```yaml
# ... dev config ...
\```
### Variant B: Production
\```yaml
# ... prod config ...
\```
预期结果: 所有超过 15 行的代码块已提取。主 SKILL.md 保留简短内联片段以确保可读性。交叉引用链接到提取的内容。references/EXAMPLES.md 以描述性标题良好组织。
失败处理: 若提取代码块不足以减少行数(仍然超过 500),继续第 3 步进行步骤拆分。若技能几乎没有代码块(如纯自然语言技能),重点关注第 3 步和第 4 步。
识别执行多个不相关操作的步骤并拆分。
复合步骤的迹象:
对每个复合步骤:
### Step N:预期结果: 每个步骤只做一件事。没有步骤超过 30 行。步骤数量可能增加,但每个步骤可以独立验证。
失败处理: 若拆分步骤创建了太过细粒度的步骤(如 20+ 个总步骤),考虑将相关的微步骤归入一个带编号子步骤的单一步骤。理想范围是 5-12 个步骤。
确保主 SKILL.md 在提取后仍保持可读性和可发现性。
对每次提取:
[EXAMPLES.md](references/EXAMPLES.md#section-anchor)交叉引用模式:
See [EXAMPLES.md](references/EXAMPLES.md#full-configuration) for the complete configuration with all options.See [EXAMPLES.md](references/EXAMPLES.md#variants) for development, staging, and production variants.See [EXAMPLES.md](references/EXAMPLES.md#troubleshooting) for additional error scenarios.预期结果: 每次提取都有对应的交叉引用。读者可以按照主 SKILL.md 处理常见情况,并深入 references 了解细节。
失败处理: 若交叉引用使文字流动变得尴尬,将多个引用合并为步骤末尾的单个注释:For extended examples including [X], [Y], and [Z], see [EXAMPLES.md](references/EXAMPLES.md).
所有更改完成后重新测量 SKILL.md 行数。
# Check main SKILL.md
lines=$(wc -l < skills/<skill-name>/SKILL.md)
[ "$lines" -le 500 ] && echo "SKILL.md: OK ($lines lines)" || echo "SKILL.md: STILL OVER ($lines lines)"
# Check references file if created
if [ -f skills/<skill-name>/references/EXAMPLES.md ]; then
ref_lines=$(wc -l < skills/<skill-name>/references/EXAMPLES.md)
echo "EXAMPLES.md: $ref_lines lines"
fi
# Total content
echo "Total content: $((lines + ${ref_lines:-0})) lines"
预期结果: SKILL.md 在 500 行以下。理想情况下在 400 行以下,为未来增长留有空间。references/EXAMPLES.md 没有行数限制。
失败处理: 若提取和拆分后仍超过 500 行,考虑技能是否应该分解为两个独立的技能。涵盖范围过广的技能是范围蔓延的迹象。使用 create-skill 编写第二个技能,并更新两个技能中的相关技能交叉引用。
重构后,验证技能仍然具有所有必需章节且前置元数据完整。
运行 review-skill-format 清单:
# Quick section check
for section in "## When to Use" "## Inputs" "## Procedure" "## Common Pitfalls" "## Related Skills"; do
grep -q "$section" skills/<skill-name>/SKILL.md && echo "$section: OK" || echo "$section: MISSING"
done
grep -qE "## Validation( Checklist)?" skills/<skill-name>/SKILL.md && echo "Validation: OK" || echo "Validation: MISSING"
预期结果: 所有章节存在。提取过程中没有意外删除内容。SKILL.md 中的交叉引用解析到 EXAMPLES.md 中的实际标题。
失败处理: 若章节被意外删除,从 git 历史中恢复:git diff skills/<skill-name>/SKILL.md 查看更改的内容。若交叉引用损坏,验证 EXAMPLES.md 中的标题锚点与 SKILL.md 中的链接匹配(GitHub 风格 Markdown 锚点规则:小写,空格用连字符,去除标点)。
references/EXAMPLES.md 中,有描述性标题review-skill-format 验证在重构后的技能上通过grep -c "heading-text" references/EXAMPLES.md 测试。review-skill-format — 重构后运行格式验证以确认技能仍然合规update-skill-content — 内容更新通常是当内容将技能推过行数限制时进行结构重构的触发器create-skill — 在决定如何组织提取内容时参考规范结构evolve-skill — 当技能需要拆分为两个独立技能时,使用演进来创建衍生技能