mcpField
W
writing-skills

writing-skills

github.com/pixel-process-ugAgent 工作流379 次安装33 周前更新
代码仓库

关于 writing-skills

用于以测试驱动流程创建 Claude Code Skills 的严格 Skill。它要求先编写触发提示,再依次完成最小定义、强化和验证。

主要功能

  1. 01先定义触发测试提示
  2. 02创建最小 SKILL.md 结构
  3. 03减少误触发并强化规则
  4. 04验证必需章节与长度限制
  5. 05按 Skill 类型选择测试方式

适用场景

  1. 01编写新的 Claude Code Skill
  2. 02检查 Skill 触发条件是否过宽
  3. 03审查 Skill 是否缺少必需结构
  4. 04用示例提示测试 Skill 行为

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/pixel-process-ug/superkit-agents --skill writing-skills

安装后在 Claude Code 中输入/writing-skills确认已加载。

附带文件anthropic-best-practices.md

详细介绍

编写技能

概述

创建有效、经过充分测试的 Claude Code 技能,使其能够可靠触发、高效加载并产生一致的结果。本技能强制采用 TDD 方法创建技能——先定义测试提示词,再编写最精简的技能,然后针对误触发和合理化倾向进行强化。

这是一个 RIGID 技能。 必须严格遵循每个步骤,不得走捷径。

阶段 1:定义测试提示词(RED)

[HARD-GATE] 在编写任何技能内容之前,先定义应该触发该技能的提示词。

编写 3-5 个测试提示词:

#测试类型目的示例
1明显触发应明显匹配“创建一个带测试的新 React 组件”
2隐晦触发也应匹配“我需要一个可复用的按钮”
3易混淆但不匹配不应匹配“评审这段组件代码”
4边缘情况明确预期行为“创建一个组件并编写其文档”
5模糊情况明确应优先使用哪个技能“搭建前端”

记录每个提示词的预期行为:

Test prompt: "Create a new React component with tests"
Expected: Should trigger component-creation skill
Should NOT trigger: testing-strategy, code-review, writing-skills

停止——在记录完所有测试提示词之前,不得进入阶段 2。

阶段 2:编写最精简的 SKILL.md(GREEN)

创建满足阶段 1 所有测试提示词的最精简技能定义。

必需结构

每个 SKILL.md 都必须包含以下所有要素:

要素必需目的
Frontmatter(name、description)是标识和触发匹配
针对 CSO 优化的描述是以 “Use when...” 开头,列出触发条件
概述(2-3 句话)是说明目的和价值
多阶段流程及 STOP 标记是编号阶段,包含明确操作
决策表是用于选择不同方案的表格
反模式/常见错误表是“不要做什么”部分
反合理化防护是HARD-GATE 或 “Do NOT skip” 标记
集成点表是说明技能如何与其他技能连接
具体示例是对不明显之处提供代码/命令示例
技能类型声明是在末尾声明 RIGID 或 FLEXIBLE
Frontmatter 规则
---
name: skill-name          # lowercase with hyphens, unique identifier
description: "Use when [trigger conditions]"  # Max 1024 chars
---

[HARD-GATE] description 字段必须以 “Use when” 开头。

CSO(Claude 搜索优化)规则

description 字段决定何时选择某项技能。请将其优化得像搜索查询一样。

规则说明
以 “Use when...” 开头触发条件格式
列出具体条件,而非能力说明什么情况会激活该技能,而不是它教什么
最多 1024 个字符简洁明了
使用动作动词“creating”(创建)、“debugging”(调试)、“designing”(设计)、“reviewing”(评审)

好的示例:

description: "Use when creating database migrations, designing table schemas, adding indexes, or optimizing SQL queries"

不好的示例:

description: "A comprehensive guide to database design covering normalization, indexing, query optimization, and migration strategies"
触发条件模式
模式格式示例
基于操作“Use when creating...、updating...、deleting...”CRUD 操作
基于问题“Use when debugging...、fixing...、resolving...”修复错误
基于产物“Use when working with Docker 文件、CI 配置...”文件类型
基于阶段“Use when starting a project、finishing a feature...”工作流阶段

停止——在继续之前,确认 description 能匹配阶段 1 中的测试提示词。

阶段 3:强化技能(REFACTOR)

检查并堵住漏洞:

检查项问题未通过时的修正方法
过度触发它是否匹配了不应匹配的提示词?缩小 description 的范围
触发不足它是否漏掉了有效提示词?添加缺失的触发条件
合理化Agent 是否会找到跳过步骤的方法?添加 “Do NOT skip” 约束
歧义指令是否存在多种解读方式?通过示例使其具体明确
Token 臃肿是否超过 500 行?将参考资料移至单独文件
缺少关卡各阶段之间是否有检查点?添加 STOP 标记
Token 效率目标
技能类型目标行数策略
入门工作流< 100 行步骤精简
频繁加载的技能< 200 行多用表格,少用 prose
全面的参考类技能< 400 行拆分为多个阶段
允许的最大值500 行将额外内容移至单独文件
Token 缩减策略
  • 用表格代替 prose 来呈现结构化信息
  • 使用简洁的祈使句,不写解释性段落
  • 将参考资料移至单独文件(仅在需要时加载)
  • 消除冗余——同一件事只说一次
  • 仅在模式不明显时使用代码示例

停止——在脑海中重新运行测试提示词。该技能对全部 5 个提示词都能正确触发吗?对相似但不匹配的提示词会不会不触发?

阶段 4:验证并保存

  1. 确认阶段 2 中的 10 项必需元素均已包含
  2. 确认 Token 用量在目标范围内
  3. 确认各阶段之间均有 STOP 标记
  4. 保存 SKILL.md 文件
  5. 使用每个测试提示词调用该技能进行测试
验证清单
#检查项状态
1Frontmatter 中包含 name 和 description[ ]
2Description 以 "Use when" 开头[ ]
3概述为 2–3 句话[ ]
4阶段已编号,且带有 STOP 标记[ ]
5存在决策表(而非 prose)[ ]
6存在反模式表[ ]
7存在反合理化防护规则[ ]
8存在集成点表[ ]
9存在具体示例[ ]
10已声明技能类型(RIGID/FLEXIBLE)[ ]
11总行数少于 500 行[ ]

技能类型与测试

按技能类型测试
技能类型测试方法验证内容
Technique(TDD、调试)将其应用于问题 X 和不寻常的问题 Y能否给出正确步骤,并正确调整
Pattern(设计模式)展示匹配的代码 X 和相似但不匹配的代码 Y能否正确识别并正确拒绝
Reference(API 文档、清单)提问“X 的规则是什么?”以及“边缘情况 Z 呢?”能否找到正确答案并处理信息缺失的情况
Discipline(安全审查)审查正确的代码,再在时间压力下审查代码能否通过审查无误的代码,并在压力下仍执行所有规则

反模式 / 常见错误

错误错误原因应采取的做法
Description 描述内容,而非触发条件技能永远不会被选中以 "Use when..." 开头,并列出触发条件
范围太宽——什么情况都会触发派不上用场缩小范围,聚焦于具体操作和对象
太长——1000 行以上每次调用都会浪费上下文 Token控制在 500 行以内;拆分参考资料
缺少约束Agent 会找理由跳过步骤添加“Do NOT”规则和 HARD-GATE 标记
未使用真实提示词测试在生产环境中容易误触发或漏触发编写技能之前先编写测试提示词
依赖外部文件不可靠——文件可能不存在保持自包含,或先检查文件是否存在
能用表格的地方却使用 prose更难浏览,且更耗 Token用表格呈现结构化对比
阶段之间没有 STOP 标记Agent 会一口气执行到底,不设检查点在每个阶段后添加 STOP

反合理化防护规则

  • [HARD-GATE] 在先定义测试提示词(阶段 1)之前,绝对不要编写技能
  • [HARD-GATE] 绝对不要省略 description 字段,也不要使用非 "Use when" 格式
  • 绝对不要跳过强化阶段——每项技能都需要进行合理化审查
  • 绝对不要跳过验证清单——必须通过全部 11 项检查
  • 绝对不要创建超过 500 行的技能——将其拆分为技能文件和参考文件
  • 绝对不要在表格更清晰的地方使用 prose

集成点

技能关系
self-learning通过技能系统发现并加载技能
auto-improvement跟踪技能的有效性并提出改进建议
spec-writing可以使用 JTBD 方法论编写技能规范
code-review部署前应对技能进行质量审查
testing-strategy测试提示词遵循测试方法论

具体示例:完整的最小技能

---
name: docker-setup
description: "Use when creating Dockerfiles, docker-compose configurations, or containerizing an application for development or production"
---

# Docker Setup

## Overview

Guide the creation of Docker configurations for development and production environments. Produces Dockerfiles, docker-compose files, and .dockerignore with best practices.

## Phase 1: Discovery
[Ask about: runtime, ports, volumes, env vars, multi-stage needs]
STOP — confirm requirements.

## Phase 2: Generate Configuration
[Create Dockerfile, docker-compose.yml, .dockerignore]
STOP — present for review.

## Phase 3: Verify
[Build image, run container, verify health check]

## Anti-Patterns
| Mistake | Fix |
|---------|-----|
| Running as root | Use non-root USER |
| No .dockerignore | Always create one |

## Skill Type
**Flexible**

技能类型

严格 — 必须严格遵循 TDD 方法(先编写测试提示词)、必需的结构元素和验证清单。不得跳过任何元素。

评论

支持 Markdown