# Vllm Pr Desc Generator

> Generate a vLLM-style PR description (Purpose / Test Plan / Test Result) from a GitHub PR's code changes. Use when the user provides a vLLM PR link or number and asks to generate, write, or draft a PR description. Triggered by requests like "帮我生成PR描述", "generate PR description for vllm PR 12345", "帮我写vllm PR的描述", "draft a PR desc for https://github.com/vllm-project/vllm/pull/12345".

- **Type:** Skill
- **Install:** `agentstack add skill-shen-shanshan-vllm-dev-skills-vllm-pr-desc-generator`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [shen-shanshan](https://agentstack.voostack.com/s/shen-shanshan)
- **Installs:** 0
- **Category:** [Developer Tools](https://agentstack.voostack.com/c/developer-tools)
- **Latest version:** 0.1.0
- **License:** Apache-2.0
- **Upstream author:** [shen-shanshan](https://github.com/shen-shanshan)
- **Source:** https://github.com/shen-shanshan/vllm-dev-skills/tree/master/skills/vllm-pr-desc-generator
- **Website:** https://zhuanlan.zhihu.com/p/2031696581678866733

## Install

```sh
agentstack add skill-shen-shanshan-vllm-dev-skills-vllm-pr-desc-generator
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# vllm-pr-desc-generator

Generate a vLLM-style PR description from code changes and save to `./outputs/`.

Take `./references/example-pr-desc.md` as a style reference for the output.

## Workflow

1. **Parse PR number** — extract from URL or direct number
2. **Fetch PR data** — run `scripts/fetch_pr_data.py`
3. **Read the JSON** — load into context
4. **Analyze code changes** — understand the diff, purpose, and impact
5. **Generate PR description** — write vLLM-format description
6. **Save** — write to `./outputs/pr--desc.md`
7. **Confirm** — tell the user the output path

## Step 1: Parse PR Number

Extract `` from user input. Accepted formats:
- `https://github.com/vllm-project/vllm/pull/12345` → `12345`
- `vllm PR 12345` or `PR #12345` → `12345`
- Plain number `12345` → `12345`

For PRs from other repos (e.g., `vllm-project/vllm-ascend`), adjust the `--repo` flag in the fetch script accordingly. Default repo is `vllm-project/vllm`.

## Step 2: Fetch PR Data

```bash
python3 /Users/shanshan-shen/.claude/skills/vllm-pr-desc-generator/scripts/fetch_pr_data.py  \
    --output /tmp/vllm_pr_.json
```

Optional flags:
- `--token ` — GitHub PAT (not needed if `gh` CLI is authenticated)
- `--max-diff-chars ` — limit diff size (default 80 000)

## Step 3: Analyze Code Changes

Read `/tmp/vllm_pr_.json`. Focus on:

- **`diff`** and **`files`**: Understand what code changed, which modules are affected
- **`pr.title`**: Infer the PR category prefix (e.g., `[Feature]`, `[BugFix]`, `[Misc]`, `[CI/Build]`, `[Doc]`)
- **`pr.body`**: Check if the author already provided context or linked issues
- **`issue_comments` / `review_comments`**: Extract reviewer feedback, design decisions, test suggestions

Categorize the change type:
- **Feature**: New functionality, new model support, new API
- **BugFix**: Correctness fix, crash fix, regression fix
- **Refactor**: Code reorganization without behavior change
- **Performance**: Optimization, memory reduction, throughput improvement
- **Docs**: Documentation only
- **CI/Build**: Build system, CI pipeline, dependency changes

## Step 4: Generate PR Description

Write the description following the vLLM PR template. The output MUST include these sections:

```markdown
## Purpose

### Key Changes

## Test Plan

## Test Result

## (Optional) Documentation Update

```

### Writing Guidelines

- **Purpose section**: Lead with the problem/motivation, then describe the solution approach. Be specific — "Fix OOM when loading large MoE models" is better than "Fix a bug".
- **Key Changes**: Group by module. Use bold for file/class names. Each bullet should be self-contained and informative.
- **Test Plan**: Provide concrete, copy-pasteable commands. Include model names, flags, and expected behavior.
- **Test Result**: Prefer tables for quantitative results. For bug fixes, describe the before/after behavior.
- **Language**: Match the PR title language. If title is in English, write in English. If Chinese, write in Chinese. Default to English.
- **Tone**: Technical, concise, factual. No filler words.

## Step 5: Save Output

Save to `/Users/shanshan-shen/.claude/skills/vllm-pr-desc-generator/outputs/pr--desc.md`.

Tell the user the file path and briefly summarize what the PR does.

## Authentication

- **gh CLI available** (recommended): script auto-detects, no token needed
- **No gh CLI**: pass `--token ` with `repo` scope
- **No auth**: unauthenticated REST API used; rate limit applies (60 req/hr)

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [shen-shanshan](https://github.com/shen-shanshan)
- **Source:** [shen-shanshan/vllm-dev-skills](https://github.com/shen-shanshan/vllm-dev-skills)
- **License:** Apache-2.0
- **Homepage:** https://zhuanlan.zhihu.com/p/2031696581678866733

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-shen-shanshan-vllm-dev-skills-vllm-pr-desc-generator
- Seller: https://agentstack.voostack.com/s/shen-shanshan
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
