文档编写技能Skill documentation

这个技能专注于提高软件开发中的文档撰写能力,包括编写README文件、JSDoc注释和代码注释,强调解释代码的“为什么”而非“什么”,以增强代码可读性、可维护性和团队协作效率。关键词:文档编写、代码文档、README、JSDoc、代码注释、软件开发技能、技术文档撰写。

其他 0 次安装 2 次浏览 更新于 3/20/2026

name: 文档编写 description: 代码内文档、文件夹README和代码注释。用于编写README.md文件、JSDoc注释或解释代码组织。

文档编写

遵循writing-voice的语气。

文档解释为什么,而不是什么。用户可以阅读代码以了解其作用。他们需要你解释推理。

文件夹README

主要任务:解释为什么这个文件夹存在以及思维模型。

可以包括

  • 复杂关系的ASCII艺术图表
  • 关键导出或入口点的概述
  • 简要文件描述(如果它们为文件名添加上下文)
  • 与其他文件夹的关系

避免

  • 仅重复ls的详尽文件列表
  • 重复文件名的描述(“auth.ts - 身份验证”)
  • 在代码中更好地表达的实现细节

好例子

# 转换器

将字段模式转换为特定格式的表示。

```
┌─────────────┐     ┌──────────────┐
│ 字段模式   │────▶│  to-arktype  │────▶ 运行时验证
└─────────────┘     ├──────────────┤
                    │  to-drizzle  │────▶ SQLite列
                    └──────────────┘
```

字段模式是纯JSON Schema对象,带有`x-component`提示。每个转换器采用相同的输入并为特定消费者产生输出。

坏例子

# 转换器

- `to-arktype.ts` - 转换为ArkType
- `to-drizzle.ts` - 转换为Drizzle
- `index.ts` - 导出

坏例子只是列出文件,而没有解释模式或何时添加新转换器。

JSDoc注释

JSDoc解释何时和为什么使用某物,而不仅仅是它做什么。

好例子

/**
 * 将所有表格助手作为数组获取。
 *
 * 对于需要遍历所有表格的提供程序和索引非常有用。
 * 仅返回表格助手,排除实用方法如`clearAll`。
 *
 * @example
 * ```typescript
 * for (const table of tables.defined()) {
 *   console.log(table.name, table.count());
 * }
 * ```
 */
defined() { ... }

坏例子

/** 返回所有表格助手作为数组。 */
defined() { ... }

规则

  • 包含带有现实用法的@example
  • 解释何时使用它,而不仅仅是它做什么
  • 记录不明显的行文或边缘情况
  • 公共API获得详细文档;内部辅助函数可以是简短的

代码注释

注释解释为什么,而不是什么

好例子

// Y.Doc clientID是随机的32位整数,因此我们不能依赖顺序。
// 使用条目本身的时间戳进行确定性排序。
const sorted = entries.sort((a, b) => a.timestamp - b.timestamp);

坏例子

// 对条目进行排序
const sorted = entries.sort((a, b) => a.timestamp - b.timestamp);

规则

  • 如果代码清晰,不要评论它
  • 当不显而易见时,评论“为什么”
  • 评论变通方法并链接到问题/文档
  • 删除注释掉的代码;git就是为了这个的