Contributor-First PR Merge
HKUDS/OpenHarness
Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.
Generate and create pull request descriptions automatically using GitHub CLI.
$ npx skills add tailcallhq/forgecode --skill github-pr-description -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install tailcallhq/forgecode github-pr-description --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/tailcallhq/forgecode.git skills-src && mkdir -p .claude/skills && cp -r skills-src/crates/forge_repo/src/skills/github-pr-description .claude/skills/github-pr-description && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "github-pr-description" agent skill from https://github.com/tailcallhq/forgecode/tree/main/crates/forge_repo/src/skills/github-pr-description into .claude/skills/github-pr-description/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github-pr-description", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/tailcallhq/forgecode/tree/main/crates/forge_repo/src/skills/github-pr-descriptionType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add tailcallhq/forgecode --skill github-pr-description -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install tailcallhq/forgecode github-pr-description --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tailcallhq/forgecode.git skills-src && mkdir -p .agents/skills && cp -r skills-src/crates/forge_repo/src/skills/github-pr-description .agents/skills/github-pr-description && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "github-pr-description" agent skill from https://github.com/tailcallhq/forgecode/tree/main/crates/forge_repo/src/skills/github-pr-description into .agents/skills/github-pr-description/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github-pr-description", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add tailcallhq/forgecode --skill github-pr-description -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install tailcallhq/forgecode github-pr-description --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tailcallhq/forgecode.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/crates/forge_repo/src/skills/github-pr-description .cursor/skills/github-pr-description && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "github-pr-description" agent skill from https://github.com/tailcallhq/forgecode/tree/main/crates/forge_repo/src/skills/github-pr-description into .cursor/skills/github-pr-description/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github-pr-description", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/tailcallhq/forgecode.git --path crates/forge_repo/src/skills/github-pr-description--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add tailcallhq/forgecode --skill github-pr-description -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install tailcallhq/forgecode github-pr-description --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tailcallhq/forgecode.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/crates/forge_repo/src/skills/github-pr-description .gemini/skills/github-pr-description && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "github-pr-description" agent skill from https://github.com/tailcallhq/forgecode/tree/main/crates/forge_repo/src/skills/github-pr-description into .gemini/skills/github-pr-description/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github-pr-description", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install tailcallhq/forgecode github-pr-descriptionInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add tailcallhq/forgecode --skill github-pr-description -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/tailcallhq/forgecode.git skills-src && mkdir -p .github/skills && cp -r skills-src/crates/forge_repo/src/skills/github-pr-description .github/skills/github-pr-description && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "github-pr-description" agent skill from https://github.com/tailcallhq/forgecode/tree/main/crates/forge_repo/src/skills/github-pr-description into .github/skills/github-pr-description/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github-pr-description", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add tailcallhq/forgecode --skill github-pr-description -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install tailcallhq/forgecode github-pr-description --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tailcallhq/forgecode.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/crates/forge_repo/src/skills/github-pr-description .opencode/skills/github-pr-description && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "github-pr-description" agent skill from https://github.com/tailcallhq/forgecode/tree/main/crates/forge_repo/src/skills/github-pr-description into .opencode/skills/github-pr-description/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github-pr-description", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
github-pr-descriptionGenerate and create pull request descriptions automatically using GitHub CLI.
GitHub PR Description is an agent skill from tailcallhq/forgecode. Generate and create pull request descriptions automatically using GitHub CLI. Use when the user asks to create a PR, generate a PR description, make a pull request, or submit changes for review. Analyzes git diff and commit history to create comprehensive, meaningful PR descriptions that explain what changed, why it matters, and how to test it.
Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Pull requests. It works with GitHub and Git. The repository describes itself as: AI enabled pair programmer for Claude, GPT, O Series, Grok, Deepseek, Gemini and 300+ models. The licence is Apache-2.0.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 92a5699. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npmgitnodedocker-composecurlghFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm, git, curl and gh, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
GitHub PR Description loads about 2.8k tokens when it runs. Until then it costs about 92 tokens; SKILL.md has 530 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from tailcallhq/forgecode at commit 92a5699, republished under its Apache-2.0 licence (© tailcallhq). 530 words, ~2,823 tokens.
.claude/skills/github-pr-description/SKILL.md (or your agent's skills folder).Generate comprehensive pull request descriptions and create PRs using GitHub CLI.
Check that there are changes to create a PR for:
# Get current branch
git branch --show-current
# Verify branch is not main/master
# Verify there are commits ahead of main
git log origin/main..HEAD --onelineIf on main/master or no commits ahead, inform the user there's nothing to create a PR for.
Gather context about the changes:
# Get commit messages
git log origin/main..HEAD --pretty=format:"%s"
# Get diff summary (files changed)
git diff origin/main..HEAD --stat
# Get actual code changes (sample key files if diff is large)
git diff origin/main..HEADFor large diffs: Focus on the most meaningful changes. Sample key files rather than reading everything.
Classify the PR into one of these categories:
Base this on:
Create a comprehensive description with this structure:
## Summary
[One sentence explaining what this PR does and why it matters]
## Context
[Background information, related issues, previous work, or the problem being solved]
## Changes
[High-level description of what changed]
### Key Implementation Details
[Technical details that help reviewers understand the approach, especially for complex changes]
## Use Cases
[Concrete examples of how this will be used - helps reviewers understand practical value]
## Testing
[How to test the changes - step-by-step instructions]
## Links
- Related issues: #123, #456
- Documentation: URL (if applicable)
- Original implementation: URL (if applicable)Essential Elements:
Optional but Recommended:
What to Avoid:
Example 1: Feature Addition
## Summary
Add semantic code search to enable searching codebase by concepts and behavior rather than exact string matching.
## Context
Currently, users can only search using exact string matching, which makes it difficult to find code based on functionality or behavior. This has been a recurring request in issues #123 and #456.
## Changes
- Implemented semantic search using vector embeddings
- Integrated with existing search interface
- Added support for multiple concurrent queries with result aggregation
- Configurable search scope (entire codebase or specific directories)
### Key Implementation Details
Uses OpenAI embeddings for code representation and cosine similarity for matching. Index is built incrementally to support large codebases. Search results are reranked based on code context and usage patterns.
## Use Cases
- Find authentication flow without knowing exact function names
- Locate retry logic across the codebase
- Search for "database connection" patterns
## Testing
```bash
# Run the search service
npm run search:dev
# Test semantic queries
curl -X POST http://localhost:3000/search \
-H "Content-Type: application/json" \
-d '{"query": "user authentication"}'
**Example 2: Bug Fix**
```markdown
## Summary
Fix database connection timeout that caused service to hang indefinitely when database became unavailable.
## Context
Service would hang indefinitely when database became unavailable, requiring manual restart. This was reported in production incident #789 and affected multiple users.
## Changes
- Added configurable connection timeout (default: 30 seconds)
- Implemented exponential backoff retry logic (max 5 retries)
- Improved error messages with specific failure reasons
- Added circuit breaker pattern to prevent cascading failures
### Key Implementation Details
Timeout is applied at the connection pool level. Backoff strategy: 1s, 2s, 4s, 8s, 16s. Circuit breaker opens after 5 consecutive failures and resets after 60 seconds.
## Testing
```bash
# Simulate database failure
docker-compose stop db
# Verify timeout and retry behavior
npm test -- tests/integration/connection-timeout.test.ts
# Verify circuit breaker activation
curl http://localhost:3000/health # Should return 503 after circuit opens
**Example 3: Performance Improvement**
```markdown
## Summary
Optimize image processing pipeline to reduce memory usage by 60% and improve throughput by 2.5x.
## Context
Current image processing implementation loads entire images into memory, causing OOM errors with large files and limiting throughput. This was identified as a performance bottleneck in profiling session #123.
## Changes
- Implemented streaming image processing using chunked reading
- Added parallel processing for multiple images
- Optimized memory allocation with object pooling
- Added caching for frequently accessed image metadata
### Key Implementation Details
Uses Node.js streams for memory-efficient processing. Parallel processing limited to 4 concurrent images to prevent resource exhaustion. Object pool reduces GC pressure by reusing buffers.
## Use Cases
- Process large images (>100MB) without OOM errors
- Batch process thousands of images efficiently
- Reduced memory footprint allows higher concurrent user load
## Testing
```bash
# Run performance benchmarks
npm run benchmark
# Test with large files
node tests/performance/large-files.test.js
# Verify memory usage
node --inspect tests/memory-usage.js
**Example 4: Refactor**
```markdown
## Summary
Refactor authentication module to use clean architecture patterns, improving testability and reducing coupling.
## Context
Authentication module had tight coupling between business logic and infrastructure, making it difficult to test and modify. This was identified in technical debt review #234.
## Changes
- Separated business logic from infrastructure dependencies
- Introduced repository pattern for data access
- Added service layer for authentication operations
- Extracted interfaces for better mocking in tests
### Key Implementation Details
Business logic now depends on interfaces rather than concrete implementations. Infrastructure (database, cache) is injected as dependencies. All services are unit-testable without external dependencies.
## Use Cases
- Easier to add new authentication providers (OAuth, SAML)
- Simpler to mock for unit tests
- Clear separation of concerns improves maintainability
## Testing
```bash
# Unit tests (no database required)
npm test tests/unit/auth/
# Integration tests (with real database)
npm test tests/integration/auth/
# Verify all existing functionality still works
npm run e2e
**Example 5: Simple Fix (Minimal but Complete)**
```markdown
## Summary
Fix typo in user welcome email template that caused incorrect company name to display.
## Context
Users were seeing "Welcome to [Wrong Company]" instead of the correct company name. Reported in #567.
## Changes
- Corrected company name in email template
- Added test to catch similar typos in the future
## Testing
```bash
# Run email template tests
npm test tests/unit/email-templates.test.ts
# Verify email renders correctly
npm run test:email --template=welcome
### 5. Create Pull Request
Write the description to a temporary file and use GitHub CLI to create the PR:
**Step 1: Write description to temp file**
```bash
# Write the generated description to .forge/FORGE_PR_DESCRIPTION.mdUse the write tool to create .forge/FORGE_PR_DESCRIPTION.md with the generated description content.
Step 2: Create PR using the temp file
gh pr create --title "[Change Type]: [One-line summary]" --body-file .forge/FORGE_PR_DESCRIPTION.mdThe gh CLI is pre-installed and authenticated - use it directly without prompting for confirmation.
Note: The temp file .forge/FORGE_PR_DESCRIPTION.md can not be left in place and should be deleted after PR creation. It's in .forge/ directory which is typically gitignored.
After creating the PR, provide the user with:
Key Principles:
Anti-Patterns to Avoid:
When to Keep It Simple: For very small, obvious changes (typo fixes, trivial refactors), you can use a shorter structure:
But never skip the testing instructions.
When to Be Comprehensive:
© tailcallhq, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in crates/forge_repo/src/skills/github-pr-description of tailcallhq/forgecode.
Open the folder on GitHubat commit 92a5699
GitHub PR Description next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| GitHub PR Description this skilltailcallhq/forgecode | 7.6k | — | ~2.8k | Automated safety check: Pass | Apache-2.0 | |
| Contributor-First PR MergeHKUDS/OpenHarness | 16k | 1 repos | ~847 | Automated safety check: Pass | MIT | |
| Create Pull Requestcline/cline | 70k | 1 repos | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| Pull Request Title and Body Writeropeninterpreter/openinterpreter | 69k | 2 repos | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| PR Review State Fetchprisma/orm | 48k | — | ~767 | Automated safety check: Pass | Apache-2.0 | |
| Creating Description For Gh PRredis/jedis | 12k | — | ~838 | Automated safety check: Pass | MIT |
HKUDS/OpenHarness
Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.
cline/cline
Opens a GitHub pull request from your current branch with the gh CLI, after reviewing the commits and diff and gathering the details the PR needs.
openinterpreter/openinterpreter
Rewrites the title and body of one or more pull requests with gh, leading with why the change was made, then what changed, and describing only the net result.
prisma/orm
Fetches a pull request's canonical review state as JSON, validates it, and renders markdown, a text summary and triage target files from it using bundled scripts.
redis/jedis
Generate a clear, concise GitHub PR title and description from the diff between two local git branches, and save it to prDescription.md in the repo root.
makeplane/plane
Opens a pull request for the current branch using the repo's template, a work item ID in the title and a description filled in from the actual diff.
tailcallhq/forgecode
Resolves Git merge conflicts with a plan-first workflow that keeps both sides' intent, regenerates lock files and backs up deleted-but-modified files.
tailcallhq/forgecode
Gives a systematic process for debugging the forge CLI: build in debug mode, check the latest help output, test with the non-interactive -p flag, and clone conversations before reproducing bugs.
tailcallhq/forgecode
Finds every FIXME comment in a codebase, groups related ones across files into one task, implements the work they describe and removes the comments once it is done.
tailcallhq/forgecode
Checks that ReasoningConfig fields are serialized into the right provider-specific JSON for OpenRouter, Anthropic, GitHub Copilot and Codex requests.
tailcallhq/forgecode
Writes a structured Markdown implementation plan with checkbox tasks, verification criteria and risks, then checks it with a validation script; no code changes.
tailcallhq/forgecode
Pulls a GitHub release and every linked pull request, then writes polished, factual release notes from the combined set of changes.
Categories
Generate and create pull request descriptions automatically using GitHub CLI. GitHub PR Description is an agent skill from tailcallhq/forgecode. Generate and create pull request descriptions automatically using GitHub CLI.
GitHub PR Description fits situations like: the user asks to create a PR; generate a PR description; make a pull request; submit changes for review.
Run `npx skills add tailcallhq/forgecode --skill github-pr-description -a claude-code`. Or copy the skill folder (crates/forge_repo/src/skills/github-pr-description in tailcallhq/forgecode) into .claude/skills/github-pr-description in your project. Claude Code loads it when a task matches its description.
Run `npx skills add tailcallhq/forgecode --skill github-pr-description -a codex`. Or copy the skill folder (crates/forge_repo/src/skills/github-pr-description in tailcallhq/forgecode) into .agents/skills/github-pr-description in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add tailcallhq/forgecode --skill github-pr-description -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/github-pr-description, .gemini/skills/github-pr-description, .github/skills/github-pr-description and .opencode/skills/github-pr-description in your project.
Going by SKILL.md and its folder, GitHub PR Description needs the command-line tools its instructions call (npm, git, node, docker-compose, curl and gh). Our summary lists: Node.js; Docker.
SKILL.md contains no URLs. Its commands use npm, git, curl and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
GitHub PR Description is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with GitHub PR Description: Contributor-First PR Merge (HKUDS/OpenHarness, 16k stars), Create Pull Request (cline/cline, 70k stars), Pull Request Title and Body Writer (openinterpreter/openinterpreter, 69k stars) and PR Review State Fetch (prisma/orm, 48k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
tailcallhq (a GitHub organization) maintains it in tailcallhq/forgecode, which has 7,642 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 7, 2026.
Source: tailcallhq/forgecode on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.