| name | create-pr-from-spec |
| description | Create GitHub Pull Request from specification using pull_request_template.md. Use when: spec needs to be converted to PR, spec is ready for review/merge, need to automate PR creation from specification file with template-based body and title. |
| allowed-tools | Read, Grep, Glob, Bash |
Create Pull Request from Specification
Create a GitHub Pull Request for a specification using the pull_request_template.md template located at ${workspaceFolder}/.github/pull_request_template.md.
Overview
This skill automates the creation of GitHub Pull Requests directly from specifications. It follows a structured process:
- Analyzes the specification template requirements
- Creates a draft PR with the target branch
- Verifies no duplicate PRs exist
- Updates PR body and title with template-compliant content
- Marks PR as ready for review
- Automatically assigns to the creator
- Returns PR URL to user
Key Benefits:
- ✅ Automated PR creation from specifications
- ✅ Template-compliant PR body and title
- ✅ Duplicate PR prevention
- ✅ Auto-assignment to creator
- ✅ Streamlined spec-to-PR workflow
When to Use
Use this skill when:
- Specification is ready to merge - Convert finalized spec to PR
- Need automated PR creation - Avoid manual PR drafting
- Template compliance required - Ensure PR follows pull_request_template.md
- Multiple PRs from specs - Batch process specifications into PRs
- Team collaboration - Share specs as PRs for review
Trigger phrases:
- "Create pull request from spec"
- "Convert spec to PR"
- "Open PR for specification"
- "Submit spec as pull request"
- "Automate PR creation"
Instructions
Prerequisites
Before using this skill, ensure:
- Specification file is finalized and ready for review
- Target branch is specified (e.g.,
main, develop)
.github/pull_request_template.md exists in the repository
- You have write access to create PRs
Step-by-Step Process
1. Analyze specification template
- Extract requirements from
${workspaceFolder}/.github/pull_request_template.md
- Use search tool to parse template sections and placeholders
2. Create pull request draft
- Use
create_pull_request tool to create draft PR to target branch
- First verify no existing PR exists using
get_pull_request to prevent duplicates
- If PR already exists, stop and report to user
3. Get pull request changes
- Use
get_pull_request_diff tool to analyze differences
- Verify code changes are correct before updating
4. Update pull request
- Use
update_pull_request tool to populate PR body and title
- Incorporate template sections from step 1
- Ensure all required fields are filled
5. Mark ready for review
- Use
update_pull_request tool to change state from draft to ready for review
- Verify PR is no longer in draft mode
6. Assign pull request
- Use
get_me to retrieve current user information
- Use
update_issue tool to assign PR to creator
7. Return pull request URL
- Provide user with clickable PR URL
- Include summary of PR contents
Examples
Example 1: Basic PR Creation
Input: Create PR from spec to main branch
Process:
1. Analyze pull_request_template.md
2. Create draft PR to main
3. Check for existing PRs
4. Update PR title: "feat: [Feature Name from Spec]"
5. Update PR body with template sections
6. Mark as ready for review
7. Assign to creator
Output: https://github.com/user/repo/pull/123
Example 2: Template-Compliant PR
PR Title: feat: Implement user authentication system
PR Body:
## Description
Implements JWT-based authentication with token refresh mechanism
## Related Issue
Closes #456
## Changes
- Added JWT middleware
- Implemented token validation
- Added refresh token endpoint
## Testing
- Unit tests for auth middleware
- Integration tests for token endpoints
## Checklist
- [x] Tests pass
- [x] Documentation updated
- [x] No breaking changes
Example 3: Duplicate Prevention
Input: Create PR from spec
Check: PR for current branch already exists?
→ Yes: Report error, don't create duplicate
→ No: Proceed with PR creation
Output: "PR already exists at https://github.com/user/repo/pull/789"
Requirements
- Single pull request for the complete specification
- Clear title and body identifying the specification/feature
- Pull request body follows pull_request_template.md structure
- Verification that no duplicate pull requests exist
- PR automatically assigned to creator
- No draft PRs left behind
Success Criteria
- ✅ PR created without errors
- ✅ PR body follows pull_request_template.md structure
- ✅ PR title clearly identifies the specification/feature
- ✅ No duplicate PRs exist for the branch
- ✅ PR assigned to creator
- ✅ PR URL returned to user
- ✅ PR is ready for review (not in draft)
Constraints and Warnings
⚠️ Important:
- PR creation requires write access to repository
- Target branch must exist before PR creation
- Template file must exist at
.github/pull_request_template.md
- Cannot create PR without valid branch target
- Duplicate PRs will be detected and rejected
- PR assignment requires valid GitHub user
🚫 Limitations:
- Does not perform code review automatically
- Does not trigger CI/CD pipelines
- Does not merge PRs automatically
- Cannot modify existing code, only PR metadata
Best Practices
- Verify before creating - Always review specification before converting to PR
- Use descriptive titles - PR titles should clearly indicate feature/fix purpose
- Complete template - Ensure all required template sections are filled
- Link related issues - Include issue references in PR body
- Test first - Ensure all tests pass before creating PR
- Team review - Get team approval before marking ready for review
- Clean git history - Ensure commits are clean and well-documented
Tools Used
search - Analyze specification template requirements
create_pull_request - Create new PR in draft mode
get_pull_request - Check for existing PRs before creation
get_pull_request_diff - Analyze PR changes
update_pull_request - Update PR title, body, and state
update_issue - Assign PR to creator
get_me - Retrieve current user information