# Ring:generating Pr Descriptions

> Generating pull request descriptions from git branch changes with automatic title generation, change-type detection, and smart analysis. Uses branch-only scope to avoid full history analysis. Use when preparing a PR for review. Skip when the PR is a single trivial commit or description already exists.

- **Type:** Skill
- **Install:** `agentstack add skill-lerianstudio-ring-generating-pr-descriptions`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [LerianStudio](https://agentstack.voostack.com/s/lerianstudio)
- **Installs:** 0
- **Category:** [Cloud & Infrastructure](https://agentstack.voostack.com/c/cloud-infrastructure)
- **Latest version:** 0.1.0
- **License:** Apache-2.0
- **Upstream author:** [LerianStudio](https://github.com/LerianStudio)
- **Source:** https://github.com/LerianStudio/ring/tree/main/default/skills/generating-pr-descriptions
- **Website:** https://lerian.studio

## Install

```sh
agentstack add skill-lerianstudio-ring-generating-pr-descriptions
```

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

## About

# Generating PR Descriptions

## When to use
- Preparing a pull request for review and need a comprehensive description
- Generating a PR title automatically from commit message analysis
- Classifying the type of change (bug fix, feature, breaking change)
- Saving a reusable PR description to `docs/pr-descriptions/.md`

## Skip when
- The PR is a single trivial commit with an obvious description
- A PR description already exists and does not need regeneration
- The branch has no commits beyond the base branch

## Process

### 1. Git Branch Analysis - CRITICAL: Branch-Only Scope

- **MANDATORY**: Identify actual branch point to avoid analyzing entire development history
- Detect the base branch (develop, main, master) that the current branch was created from
- **CORRECT APPROACH**: Use `git merge-base HEAD ` to find the true divergence point
- **CORRECT APPROACH**: Use `git log --oneline $(git merge-base HEAD )..HEAD` for branch-specific commits
- **CORRECT APPROACH**: Use `git diff $(git merge-base HEAD )..HEAD` for branch-specific changes
- **NEVER** rely on manual `HEAD~n` counting — it breaks on merges, rebases, and long-lived branches
- Run `git status --porcelain` to identify uncommitted files (excluded from PR)
- **Enforce that PR analyzes ONLY commits made on the current feature branch, not development history**
- Determine if this is a bug fix, feature, or breaking change based on actual branch commits

### 2. Change Classification

- Analyze file patterns and change types
- Identify the type of change (bug fix, new feature, breaking change, etc.)
- Detect if documentation updates are needed
- Determine testing requirements

### 3. PR Description Generation

- Create comprehensive description following the template format
- Include summary of changes and motivation based on ONLY branch-specific commits
- Pre-fill appropriate checkboxes based on change analysis
- Suggest testing strategies
- Derive the output filename from the full branch name with slashes replaced by hyphens (e.g., `feature/FE-157` -> `feature-FE-157.md`)
- Save to `docs/pr-descriptions/` (create directory if needed)

## CRITICAL Implementation Steps

### Step 1: Branch Analysis (MANDATORY)

```bash
# 1. Get branch structure to identify commits
git log --oneline --decorate --graph -10

# 2. Count commits unique to current branch
# Look for where branch diverged from main/develop
# Example output shows 2 commits on feature/PLU-393:
# * 06603bf (HEAD -> feature/PLU-393) fix(i18n): add missing translations
# * d40c631 feat(ui): enhance templates system with calendar filter
# * 30664b1 (develop) Merge branch 'develop' into feature/libs
```

### Step 2: Extract Branch-Only Changes (MANDATORY)

```bash
# Use HEAD~n where n = number of branch commits
git log --oneline HEAD~2..HEAD           # Get branch commits
git diff HEAD~2..HEAD --name-status      # Get changed files
git diff HEAD~2..HEAD --stat            # Get change statistics
```

### Step 3: Validation (MANDATORY)

- Verify commit count matches actual branch commits
- Ensure no base branch commits are included in analysis
- Confirm file changes align with branch purpose

**WRONG APPROACH - DO NOT USE:**

```bash
git log main..HEAD      # Includes entire development history
git diff main...HEAD    # Includes all changes since branch creation
```

## Generated Template Structure

The skill generates pull requests following this exact structure:

```markdown
# [Auto-generated PR title: short, under 70 chars, using conventional commit prefix]

# Description

[Auto-generated summary of changes and motivation based on commits]

## Type of change

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] This change requires a documentation update
```

### PR Title Generation

- **Auto-generated** from commit message analysis
- Uses conventional commit prefix (`feat:`, `fix:`, `chore:`, `refactor:`, etc.) based on the dominant change type
- Kept under 70 characters, concise and descriptive
- Placed as the first `#` heading in the output file

### Change Type Detection

- **Bug fix**: Detects fixes, corrections, and patches in commit messages
- **New feature**: Identifies new functionality, components, or capabilities
- **Breaking change**: Flags API changes, removed functionality, or incompatible changes
- **Documentation update**: Detects changes to .md files, comments, or docs folders

## Implementation Requirements - CRITICAL

**MANDATORY Git Command Usage:**

1. **Branch Point Detection:**

   ```bash
   git log --oneline --decorate --graph -10
   # Identify where current branch diverged from base
   # Count commits unique to current branch
   ```

2. **Branch-Only Analysis Commands:**

   ```bash
   # For 2 commits on current branch:
   git log --oneline HEAD~2..HEAD
   git diff HEAD~2..HEAD --name-status
   git diff HEAD~2..HEAD --stat

   # NEVER use these (includes all development history):
   git log main..HEAD  # WRONG
   git diff main...HEAD  # WRONG
   ```

3. **Branch Point Validation:**
   - If branch has 3 commits: use `HEAD~3..HEAD`
   - If branch has 5 commits: use `HEAD~5..HEAD`
   - **Always verify** commit count matches actual branch commits

## Smart Analysis Features

- **File Pattern Recognition**: Detects frontend/backend changes, test files, config changes
- **Commit Message Analysis**: Uses conventional commits to determine change types
- **Dependency Detection**: Identifies if package.json or similar files changed
- **Test Coverage**: Suggests appropriate testing based on changed components

## Notes

- **Critical**: Uses `HEAD~n..HEAD` approach to analyze ONLY current branch commits
- **Branch Validation**: Verifies number of commits on branch before analysis
- **Feature Branch Scope**: Analyzes only commits made specifically on the current feature branch
- **Committed Changes Only**: Analyzes committed changes in the branch only, ignores uncommitted files
- **Precise Scope**: Prevents inclusion of entire development history in PR description
- Generated PRs reflect actual feature branch changes, not cumulative project history
- Breaking changes are flagged based on actual branch commits only
- Generated PR descriptions are saved to `docs/pr-descriptions/.md` for easy copying to GitHub/GitLab

## Source & license

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

- **Author:** [LerianStudio](https://github.com/LerianStudio)
- **Source:** [LerianStudio/ring](https://github.com/LerianStudio/ring)
- **License:** Apache-2.0
- **Homepage:** https://lerian.studio

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-lerianstudio-ring-generating-pr-descriptions
- Seller: https://agentstack.voostack.com/s/lerianstudio
- 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%.
