pr-description

pr-description is a skill for Claude Code, Codex from pingfanfan/hello-dsh. It costs 47 tokens per session (914 once invoked), scanned A, original, MIT.

A writing guide for pull request descriptions. A pull request is a proposed set of code changes for review and merging.

In plain words
What is it for?
Use it to prepare concise descriptions covering the reason for a change, its main parts, verification, risks, and review focus.
Why use it?
It helps reviewers understand why the change was made, what could go wrong, and how the change was checked.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/pingfanfan/hello-dsh/pr-description
Any agent
npx skills add pingfanfan/hello-dsh --skill pr-description
Clone the repo
git clone --depth 1 https://github.com/pingfanfan/hello-dsh

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for pr-description

README.md
[![agentmods](https://agentmods.dev/badge/skills/pingfanfan/hello-dsh/pr-description.svg)](https://agentmods.dev/skills/pingfanfan/hello-dsh/pr-description)
Your own site
<a href="https://agentmods.dev/skills/pingfanfan/hello-dsh/pr-description"><img src="https://agentmods.dev/badge/skills/pingfanfan/hello-dsh/pr-description.svg" alt="Measured on agentmods" height="20"></a>
Per session 47 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 914 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00047 $0.00914
Opus 5 $0.00023 $0.00457
Sonnet 5 $0.00009 $0.00183
Haiku 4.5 $0.00005 $0.00091

Measured 5d ago against content hash b5267b80bc9a, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

pr-description scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

examples/skills/pr-description/SKILL.md · 106 lines

What it actually says

写 PR 描述

PR 描述的读者是评审者,目标是让他用最少的时间做出正确判断。

diff 已经说清楚改了什么。描述要回答 diff 回答不了的:为什么、有什么风险、怎么确认它是对的。

结构

## 为什么

<触发这个改动的问题。有 issue 就链上。>

## 改了什么

<按逻辑分组,不是按文件列举。三五条就够。>

## 怎么验证的

<你实际跑了什么。不是"应该没问题"。>

## 评审重点

<最该被仔细看的地方,以及你自己不确定的地方。>

不是每个 PR 都需要四节。小改动一句话就够。但**「怎么验证的」这节不能省**。

标题

跟提交信息一个标准:祈使句、说清影响、不超过一行。

✗ 修复了一些问题
✗ feat: 更新 session.ts
✓ fix(session): 会话恢复时跳过已失效的工具调用记录

「为什么」这节

这是整个描述里价值最高的部分。回答:

  • 什么问题触发了这个改动
  • 不改会怎样
  • 为什么选这个方案,有没有更直接的方案被否决了

被否决的方案尤其值得写。它挡住评审者「为什么不直接 xxx」的疑问,也挡住三个月后有人重新提出同一个方案。

「怎么验证的」这节

写你实际做了什么,不写你打算做什么。

✗ 应该不影响现有功能
✗ 已测试

✓ 跑了 packages/session 的全部单测(142 个通过)
✓ 手动验证:造了一个含已失效工具记录的会话,恢复前打不开,
  恢复后能正常打开且历史完整
✓ 没有覆盖到的:多用户并发恢复同一会话的情况

最后那条「没有覆盖到的」是加分项,不是减分项。它告诉评审者该往哪儿看。

不要写"实测"但实际没测。 这比不写更糟。

「评审重点」这节

主动指出该被仔细看的地方:

  • 你自己不确定的设计选择
  • 有安全或性能影响的部分
  • 跟评审者可能有不同看法的地方
  • 大段的机械改动(明确说"这部分是重命名,可以快速扫过")

主动暴露弱点会加快评审,不会让你显得不专业。 藏起来的问题会在评审中被发现,那时成本更高。

大 PR 的处理

如果 diff 超过几百行且不是机械改动,先问:能不能拆?

能拆就拆。评审质量随 PR 大小急剧下降,一个 800 行的 PR 大概率会被草草放过。

确实拆不了(比如一次必须完整的迁移),那就在描述里给一条阅读路径:

建议阅读顺序:
1. src/types.ts —— 新的类型定义,理解这个再看别的
2. src/migrate.ts —— 核心逻辑
3. 其余是调用方适配,模式一致,扫一遍即可

不要做的事

  • 不要逐文件复述 diff
  • 不要写「优化了一些代码」这类没信息量的描述
  • 不要把调试心路历程写进去,写结论
  • 不要说「应该没问题」,说你验证了什么
  • 不要在描述里跟未来的评审者提前争论
  • 不要把破坏性变更藏在正文中间,要显著标出并给迁移方法
Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 5d ago First seen · 106 lines · 47 tokens per session scan A b5267b80bc9a

Subscribe to this mod's changes

pr-description is a skill published in the GitHub repository pingfanfan/hello-dsh (88 stars, last pushed 21d ago), licensed MIT. It adds 47 tokens to every session and 914 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

dsh-plugin-guide

Use when developing, reviewing, packaging, debugging, or answering questions about DeepSeek Harness (DSH) plugins — the plugin-based agent harness on vendored Cordis. Applies the official plugin-development constraints (plugin contract, cordis.yml layers, services/events/effects, tool DSL, bundles/profiles) backed by…

PerryLink/dsh-plugin-guide · 76 tokens

dsh-web-release

Release and publish the dsh-web monorepo (DSH Web GUI plugin family + skin collection) — bump all packages to one unified version, commit and tag (tags are cut from main after dev integration; dev is the integration branch), push the vX.Y.Z tag that triggers the GitHub Actions publish pipeline, and verify the npm…

zhu1090093659/dsh-web · 151 tokens

dsh-web-community-plugin-developer

Develop a DSH community plugin and register it in the dsh-web Community Plugins index — author the plugin in the contributor's own repository following the official cordis bundle standard, add its entry to packages/dsh-community-plugins/community.json, regenerate the index with scripts/community-index, rebuild and…

zhu1090093659/dsh-web · 123 tokens

dsh-web-skin-developer

Build a new skin for the dsh-web skin collection (DSH Web GUI) and publish it into the Skin Center — the first-level settings section — scaffold with scripts/dsh-skin-new, author the v2 skin.json manifest plus skin.css token remap (pure asset directory, no package.json, no build step), validate with scripts/dsh-skin…

zhu1090093659/dsh-web · 120 tokens

dsh-web-pre-push-checks

Use before pushing, opening or updating a pull request, or claiming dsh-web checks pass. Selects the required repository gates and diff-specific generation, build, and GUI evidence.

zhu1090093659/dsh-web · 45 tokens

dsh-web-documentation

Use when adding or editing dsh-web README files, docs, AGENTS.md instructions, user-facing configuration text, or bilingual documentation pairs.

zhu1090093659/dsh-web · 34 tokens