关于 pr
用于编写简洁 PR 正文的写作技能,提供摘要与前后对比证据等结构。它指导贡献者按改动选择伪代码、调用树、差异或 Mermaid 图等呈现方式。
主要功能
- 01摘要与证据结构
- 02针对改动和重构的格式指引
- 03前后对比证据提示
- 04合并风险与影响范围指引
适用场景
- 01用伪代码概述逻辑改动
- 02展示组件或运行时流程
- 03用目录树记录文件布局变化
- 04评估回滚风险与影响
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mattpocock/ skills --skill pr安装后在 Claude Code 中输入/pr确认已加载。
附带文件agents/openai.yamlCREDITS.md
详细介绍
使用此模板编写 PR 正文:
## Summary
<diagram, diff-sketch, or tree>
## Evidence
- **Before:** <screenshot/output/failing test run>
**After:** <screenshot/output/passing test run>
## Merge Danger
**Door:** <one-way or two-way>
<optional: description>
**Blast Radius:** <one-word description>
<optional: potential ramifications of merge>
章节
省略所有前言,保持文字简洁。使用 GLOSSARY.md 中的用户领域术语。
摘要
选择能够清晰表达关键点的最小视图。
- 以伪代码展示逻辑或算法:
on(save)
if content is unchanged
return cached result
write new content
return fresh result
- 以调用树展示运行时控制流:
submitForm
createSession
persistPrompt
launchAgent
navigateToSession
- 以组件树展示 UI 结构,包括关键的状态和模块边界:
<SessionPage> (apps/example/src/routes/session.tsx)
useSessionEvents()
<SessionToolbar>
<RunSkillButton> (packages/ui)
- 以浅层文件树展示文件职责或大范围重构:
src/
├── commands/ # parses user actions
├── sessions/ # owns session state
└── transport/ # sends API requests
- 使用 Mermaid 展示组件交互、控制流或数据流:
sequenceDiagram
participant User
participant UI
participant Daemon
User->>UI: choose command
UI->>Daemon: send expanded prompt
Daemon-->>UI: stream result
- 当重点在于“改了什么”,且原有结构已经存在时,使用
diff。让 diff 的形态与主题相匹配。
组件变更:
<SessionPage>
useSessionEvents()
<SessionToolbar>
+ <RunSkillButton />
<SessionTimeline>
+ <SkillResultCard />
文件布局变更:
src/
├── commands/
+│ └── show-me.ts # expands the slash command
├── sessions/
-└── transport.ts
+└── transport/
+ ├── client.ts
+ └── stream.ts
调用树或调用栈变更:
submitForm
createSession
persistPrompt
+ expandSkillMention
launchAgent
- navigateToSession
+ navigateToSession
+ subscribeToEvents
状态或控制流变更:
on(save)
- write content
+ if content is unchanged
+ return cached result
+ write new content
+ invalidate cache
- 当大部分内容都是新增的、省略上下文会掩盖归属或执行顺序,或用户需要可复制的目标结构时,展示完整代码块:
function expandSkill(command: string): string {
const skillName = command.slice(1);
return `use the ${skillName} skill`;
}
指引
将每个可视化内容放在其所支持的简短文字旁边。只保留回答用户当前问题或解决当前讨论要点所需的调用、文件、props、状态和边界。
可以使用其中一种,也可以组合使用多种,但通常不会全部用到。请根据判断取舍,避免给用户造成负担。
证据
能够证明变更有效的具体证据。展示变更前后的对比。
当环境支持且变更是视觉相关时,截图是 S 级证据。
基于执行的证据是 A 级证据,例如测试结果、控制台输出。使用伪代码展示从失败变为通过的具体测试。
合并风险
说明这是单向门还是双向门。双向门可以回退,单向门则不行。一个容易回滚的 PR 风险较低。涉及破坏性操作或难以撤销的决策的变更属于单向门。
影响范围是指本 PR 引入的变更可能产生的影响或波及面。请全面考虑各种可能性,例如布局偏移、对使用方的破坏性影响、移动端响应式表现等。
评论
支持 Markdown