feat(specs): add create-pr-from-spec skill and update configuration

This commit is contained in:
Giuseppe Trisciuoglio
2026-05-01 15:59:45 +02:00
parent 2cfffec958
commit d6d8fd9362
3 changed files with 200 additions and 0 deletions
@@ -35,6 +35,7 @@
],
"skills": [
"./skills/constitution",
"./skills/create-pr-from-spec",
"./skills/knowledge-graph",
"./skills/ralph-loop",
"./skills/specs-code-cleanup",
@@ -0,0 +1,196 @@
---
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:
1. Analyzes the specification template requirements
2. Creates a draft PR with the target branch
3. Verifies no duplicate PRs exist
4. Updates PR body and title with template-compliant content
5. Marks PR as ready for review
6. Automatically assigns to the creator
7. 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:
1. **Specification is ready to merge** - Convert finalized spec to PR
2. **Need automated PR creation** - Avoid manual PR drafting
3. **Template compliance required** - Ensure PR follows pull_request_template.md
4. **Multiple PRs from specs** - Batch process specifications into PRs
5. **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
```bash
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
```markdown
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
```bash
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
1. **Verify before creating** - Always review specification before converting to PR
2. **Use descriptive titles** - PR titles should clearly indicate feature/fix purpose
3. **Complete template** - Ensure all required template sections are filled
4. **Link related issues** - Include issue references in PR body
5. **Test first** - Ensure all tests pass before creating PR
6. **Team review** - Get team approval before marking ready for review
7. **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
+3
View File
@@ -118,6 +118,9 @@
"codex": {
"path": "plugins/developer-kit-tools/skills/codex/SKILL.md"
},
"create-pr-from-spec": {
"path": "plugins/developer-kit-specs/skills/create-pr-from-spec/SKILL.md"
},
"copilot-cli": {
"path": "plugins/developer-kit-tools/skills/copilot-cli/SKILL.md"
},