关于 write-issue
write-issue 是用于编写和维护 tldraw/tldraw GitHub issue 的技能,规定标题、类型、标签、正文和分流方式,也包含 Agent 起草 issue 时的意图复述流程。
主要功能
- 01具体且符合句式大小写的标题
- 02Issue 类型与标签指引
- 03错误报告与功能请求模板
- 04Agent 起草 issue 的意图复述
- 05新建与过期 issue 分流
适用场景
- 01编写可复现的错误报告
- 02整理包含备选方案的功能请求
- 03规范 issue 标题和元数据
- 04审查过期 issue
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ tldraw/ tldraw --skill write-issue安装后在 Claude Code 中输入/write-issue确认已加载。
详细介绍
编写和维护 GitHub issue
tldraw/tldraw 中 issue 的规范。
标题规范
- 句子式大小写 - 仅首词和专有名词大写
- 不要类型前缀 - 使用 GitHub issue 类型,而不是
Bug:、Feature:、[Bug]等 - 增强功能用祈使语气 - "Add padding option" 而不是 "Adding padding option"
- Bug 用描述性表述 - 描述症状:"Arrow bindings break with rotated shapes"
- 具体明确 - 不打开 issue 正文也能读懂
好的标题
Arrow bindings break with rotated shapesAdd padding option to zoomToFit methodPinch zoom resets selection on Safari
差的标题
Bug: arrow bug(有前缀,含糊)[Feature] Add new feature(有前缀,含糊)Not working(含糊)
标题清理转换
- 去掉前缀:
Bug: X→X - 修正大小写:
Add Padding Option→Add padding option - 使用祈使语气:
Adding feature X→Add feature X - 具体明确:
Problem→[Describe the actual problem] - 将非英文标题翻译为英文
Issue 类型
在创建 issue 后通过 GitHub GraphQL API 设置(--type 标志不被可靠支持):
| 类型 | 用于 |
|---|---|
Bug | 某些功能未按预期工作 |
Feature | 新能力或改进 |
Example | 请求新增 SDK 示例 |
Task | 内部任务或琐事 |
标签
谨慎使用(每个 issue 1-2 个)作为元数据,而非分类。
常用标签
| 标签 | 用于 |
|---|---|
good first issue | 适合新手的范围明确的问题 |
More Info Needed | 需要补充信息 |
sdk | 影响 tldraw SDK |
dotcom | 与 tldraw.com 相关 |
a11y | 无障碍 |
performance | 性能改进 |
api | API 变更 |
自动化标签(不要手动添加)
keep、stale、update-snapshots、publish-packages、major、minor、skip-release、deploy triggers
Issue 正文规范
Bug 报告
- 清晰描述哪里出了问题
- 复现步骤
- 预期行为与实际行为
- 相关时提供环境细节(浏览器、操作系统、版本)
- 适用时提供截图/录屏
功能请求
- 问题陈述 - 这解决了什么问题?
- 建议方案 - 它应该怎样工作?
- 考虑过的替代方案
- 使用场景
示例请求
- 要演示哪个 API/模式
- 为什么它有用
- 建议的做法
- 它属于哪个示例类别
Agent 起草的 issue(问题回读与待解决问题)
由 /issue 技能创建的 issue 会在简短的询问中捕捉用户的意图,因此它们在逐字描述下方带有一个无标题的回读段落,随后是待解决问题,并在底部有一行置信度状态:
- 问题回读 - 一段简短、无标题的段落,说明 Agent 对问题、预期行为和范围的理解。它应当便于用户纠正。保持面向产品:除非用户明确要求,否则不要有代码块、不要有冗长的实现分析、不要有文件路径、不要有函数名、不要有行号、不要有修复方案。
- 待解决问题 - 一个编号列表,列出意图或上下文中仍值得向用户询问的具体缺口。用户回复时,答案写在每个问题下方,并且每轮都会修订回读内容。以
Critical:为前缀的问题是真正的阻塞项 —— 在得到回答之前,无法处理该 issue。大多数 issue 都没有此类问题。用户选择不回答的非关键问题会标记为_Deferred by user; not blocking implementation._。 - 置信度行 - 底部一行纯文本,不是章节标题,例如
Confidence: 84%, ready to get started.或Confidence: 42%, still need more information.它反映的是该 issue 是否拥有足够的用户意图和上下文可供处理,而不是对最终修复的信心。
询问完成后,将回读、待解决问题和置信度行保留在 issue 中。已回答的问题是对产生该 issue 的讨论的记录,因此请保留它们,而不是删除它们 —— 就地标记已解决的问题,并将最终回读保留为该 issue 简洁的问题陈述。
分诊工作流
新 issue
- 核实是否有足够信息可采取行动
- 设置适当的 issue 类型
- 如有需要,清理标题
- 如缺少详细信息,添加
More Info Needed标签并评论 - 如合适,添加
good first issue
陈旧 issue
- 审查是否仍然相关
- 如不再适用,则关闭
- 如应保持打开,添加
keep标签 - 如正在等待信息,请求更新
重要
- 除非 issue 直接与 AI 工具相关,否则绝不要包含 AI 署名
- 描述中绝不要使用标题大小写 —— 使用句子大小写
评论
支持 Markdown