mcpField
P
pr

pr

github.com/windyd开发084 次安装2 天前更新
代码仓库

关于 pr

用于撰写简洁 PR 正文的 skill,涵盖摘要、可视化说明、证据和合并风险,适合准备 PR 的贡献者。

主要功能

  1. 01结构化摘要与证据部分
  2. 02图表和代码示例指导
  3. 03前后对比证据提示
  4. 04合并风险与影响范围指导

适用场景

  1. 01为代码变更起草 PR 正文
  2. 02选择图表说明重构
  3. 03记录测试或截图作为证据

安装

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

$npx skills add https://github.com/windyd/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