Complete PRD Implementation
Complete the PRD implementation workflow including branch management, pull request creation, and issue closure.
Note: If any gh command fails with "command not found", inform the user that GitHub CLI is required and provide the installation link: https://cli.github.com/
Workflow Steps
0. Implementation Type Detection
FIRST: Determine the type of PRD completion to choose the appropriate workflow
Documentation-Only Completion (Skip PR workflow):
- •✅ Changes are only to PRD files or project management documents
- •✅ No source code changes
- •✅ No configuration changes
- •✅ Feature was already implemented in previous work
- •→ Use Simplified Workflow (Steps 1, 2-simplified, 5 only)
Code Implementation Completion (Full PR workflow):
- •✅ Contains source code changes
- •✅ Contains configuration changes
- •✅ Contains new functionality or modifications
- •✅ Requires testing and integration
- •→ Use Full Workflow (Steps 1-6)
1. Pre-Completion Validation
- • All PRD checkboxes completed: Verify every requirement is implemented and tested
- • Documentation updated: All user-facing docs reflect implemented functionality
- • No outstanding blockers: All dependencies resolved and technical debt addressed
- • Update PRD status: Mark PRD as "Complete" with completion date
- • Archive PRD file: Move completed PRD to
./prds/done/directory to maintain project organization - • Update ROADMAP.md (if it exists): Remove the completed feature from
docs/ROADMAP.mdroadmap if the file exists
Note: Tests will run automatically in the CI/CD pipeline when the PR is created. Do not run tests locally during the completion workflow.
2. Branch and Commit Management
For Documentation-Only Completions:
- • Commit directly to main:
git add [prd-files]and commit with skip CI flag - • Use skip CI commit message: Include CI skip pattern in commit message to avoid unnecessary CI runs
- •Common patterns:
[skip ci],[ci skip],***NO_CI***,[skip actions] - •Check project's CI configuration for the correct pattern
- •Common patterns:
- • Push to remote:
git pull --rebase origin main && git push origin mainto sync changes
For Code Implementation Completions:
- • Create feature branch:
git checkout -b feature/prd-[issue-id]-[feature-name] - • Commit all changes: Ensure all implementation work is committed
- • Clean commit history: Squash or organize commits for clear history
- • Push to remote:
git push -u origin feature/prd-[issue-id]-[feature-name]
3. Pull Request Creation
IMPORTANT: Always check for and use PR template if available
3.1. PR Template Detection and Parsing
- •
Check for PR template in common locations:
- •
.github/PULL_REQUEST_TEMPLATE.md - •
.github/pull_request_template.md - •
.github/PULL_REQUEST_TEMPLATE/(directory with multiple templates) - •
docs/pull_request_template.md
- •
- •
Read and parse template comprehensively: If found, analyze the template to extract:
- •Structural elements: Required sections, checklists, format requirements
- •Content requirements: What information needs to be provided in each section
- •Process instructions: Any workflow enhancements or prerequisites specified in the template
- •Validation requirements: Any checks, sign-offs, or verifications mentioned
- •
Extract actionable instructions from template:
- •Commit requirements: Look for DCO sign-off, commit message format, commit signing requirements
- •Pre-submission actions: Build commands, test commands, linting, format checks
- •Documentation requirements: Which docs must be updated, links that must be added
- •Review requirements: Required reviewers, approval processes, special considerations
Examples of template instructions to identify and execute:
- •"All commits must include a
Signed-off-byline" → Validate commits have DCO sign-off, amend if missing - •"Run
npm testbefore submitting" → Execute test command - •"PR title follows Conventional Commits format" → Validate title format
- •"Update CHANGELOG.md" → Check if changelog was updated
- •Any bash commands shown in code blocks → Consider if they should be executed
3.2. Analyze Changes for PR Content
- • Review git diff: Analyze
git diff main...HEADto understand scope of changes - • Review commit history: Use
git log main..HEADto understand implementation progression - • Identify change types: Determine if changes include:
- •New features, bug fixes, refactoring, documentation, tests, configuration, dependencies
- •Breaking changes or backward-compatible changes
- •Performance improvements or security fixes
- • Check modified files: Identify which areas of codebase were affected
- •Source code files
- •Test files
- •Documentation files
- •Configuration files
3.3. Auto-Fill PR Information
Automatically populate what can be deduced from analysis:
- •
PR Title:
- •Follow template title format if specified (e.g., Conventional Commits:
feat(scope): description) - •Extract from PRD title/description and commit messages
- •Include issue reference if required by template
- •Follow template title format if specified (e.g., Conventional Commits:
- •
Description sections:
- •What/Why: Extract from PRD objectives and implementation details
- •Related issues: Automatically link using
Closes #[issue-id]orFixes #[issue-id] - •Type of change: Check appropriate boxes based on file analysis
- •
Testing checklist:
- •Mark "Tests added/updated" if test files were modified
- •Note: Tests run in CI/CD automatically
- •
Documentation checklist:
- •Mark items based on which docs were updated (README, API docs, code comments)
- •Check if CONTRIBUTING.md guidelines followed
- •
Security checklist:
- •Scan commits for potential secrets or credentials
- •Flag if authentication/authorization code changed
- •Note any dependency updates
3.4. Prompt User for Information That Cannot Be Deduced
IMPORTANT: Don't just ask - analyze and propose answers, then let user confirm or correct
For each item, use available context to propose an answer, then present it to the user for confirmation:
- •
Manual testing results:
- •Analyze PRD testing strategy section to understand what testing was planned
- •Check git commits for testing-related messages
- •Propose testing approach based on change type (e.g., "Documentation reviewed for accuracy and clarity, cross-references validated")
- •Present proposal and ask: "Is this accurate, or would you like to modify?"
- •
Breaking changes:
- •Scan commits and PRD for breaking change indicators
- •If detected, propose migration guidance based on PRD content
- •If not detected, confirm: "No breaking changes detected. Correct?"
- •
Performance implications:
- •Analyze change type: Documentation/config changes typically have no performance impact
- •Propose answer based on analysis (e.g., "No performance impact - documentation only")
- •Ask: "Correct, or are there performance considerations?"
- •
Security considerations:
- •Check if security-sensitive files were modified (auth, credentials, API keys)
- •Scan commits for security-related keywords
- •Propose security status (e.g., "No security implications - documentation changes only")
- •Ask: "Accurate, or are there security considerations to document?"
- •
Reviewer focus areas:
- •Analyze PRD objectives and git changes to identify key areas
- •Propose specific focus areas (e.g., "Verify documentation accuracy, check cross-reference links, confirm workflow examples match implementation")
- •Present list and ask: "Are these the right focus areas, or should I adjust?"
- •
Follow-up work:
- •Check PRD for "Future Enhancements" or "Out of Scope" sections
- •Analyze other PRDs in
prds/directory for related work - •Propose follow-up items if any (e.g., "Future enhancements listed in PRD: template validation, AI-powered descriptions")
- •Ask: "Should I list these, or is there other follow-up work?"
- •
Additional context:
- •Review PRD for special considerations
- •Check if this is a dogfooding/testing PR
- •Propose any relevant context (e.g., "This PR itself tests the enhanced workflow it documents")
- •Ask: "Anything else reviewers should know?"
Presentation Format: Present all proposed answers together in a summary format:
📋 **Proposed PR Information** (based on analysis) **Manual Testing:** [proposed answer] **Breaking Changes:** [proposed answer] **Performance Impact:** [proposed answer] **Security Considerations:** [proposed answer] **Reviewer Focus:** [proposed list] **Follow-up Work:** [proposed items or "None"] **Additional Context:** [proposed context or "None"] Please review and respond: - Type "yes" or "confirm" to accept all - Specify corrections for any items that need changes
3.5. Execute Template Requirements
IMPORTANT: Before creating the PR, identify and execute any actionable requirements from the template
- •
Analyze template for actionable instructions:
- •Scan template content for imperative statements, requirements, or commands
- •Look for patterns like "must", "should", "run", "execute", "ensure", "verify"
- •Identify bash commands in code blocks that appear to be prerequisites
- •Extract any validation requirements mentioned in checklists
- •
Categorize identified requirements:
- •Commit-level actions: Sign-offs, formatting, validation
- •Pre-submission commands: Tests, builds, lints, format checks
- •Validation checks: File existence, format compliance, content requirements
- •Documentation actions: Required updates, links to add
- •
Propose and execute requirements:
- •Present identified requirements to user: "Template specifies these actions: [list]"
- •For each requirement, determine if it can be automated
- •Propose execution: "Should I execute these now?"
- •Execute confirmed actions and report results
- •Handle failures gracefully and ask user how to proceed
- •
Summary before PR creation:
markdown✅ Template Requirements Status: [List each requirement with status: executed/validated/skipped/failed] Ready to create PR? (yes/no)
3.6. Detect and Apply PR Label (if release.yml exists)
IMPORTANT: Only apply labels if .github/release.yml exists - fully dynamic based on that file
- •
Check for
.github/release.yml:- •If file exists → Proceed with label detection
- •If file doesn't exist → Skip label detection, proceed to create PR without labels
- •
If release.yml exists, parse it to understand available categories and labels:
- •Read the YAML file
- •Extract all category definitions with their associated labels
- •Build a mapping of: category → list of labels
- •Note the category order (categories listed first are typically more important)
- •
Analyze PR characteristics:
- •Primary change type: What is the MAIN purpose of this PR?
- •File changes: Types of files modified (extensions, paths, purposes)
- •Change scope: Which areas of codebase affected
- •Commit messages: Keywords, patterns, prefixes
- •PR title and description: Keywords indicating change type
- •PRD context: Original problem/solution description
- •
Select the SINGLE best-matching label:
- •For each category in release.yml, score how well it matches the PR's PRIMARY purpose
- •Consider the importance hierarchy from release.yml:
- •Breaking changes > New features > Bug fixes > Documentation > Dependencies > Other
- •Select ONE label from the category that BEST represents the main change
- •Why single label?: Prevents PRs from appearing in multiple release note categories
- •Selection priority:
- •If any breaking changes → use
breaking-changeorbreaking - •If primarily new functionality → use
feat,feature, orenhancement - •If primarily fixing bugs → use
fix,bug, orbugfix - •If primarily documentation → use
documentationordocs - •If primarily dependencies → use
dependencies,deps, ordependency - •Otherwise → no specific label needed (will appear in "Other Changes")
- •If any breaking changes → use
- •
Apply detected label: Add the single best-matching label to the PR creation command
- •Example:
gh pr create --title "..." --body "..." --label "fix"
- •Example:
3.7. Create Pull Request
- • Construct PR body: Combine auto-filled and user-provided information following template structure
- • Create PR:
- •If label detected:
gh pr create --title "[title]" --body "[body]" --label "[single-label]" - •If no release.yml or no matching label:
gh pr create --title "[title]" --body "[body]"
- •If label detected:
- • Verify PR created: Confirm PR was created successfully, template populated correctly, and label applied (if applicable)
- • Request reviews: Assign appropriate team members for code review if specified
3.8. Fallback for Projects Without Templates
If no PR template is found, create a sensible default structure:
## Description [What this PR does and why] ## Related Issues Closes #[issue-id] ## Changes Made - [List key changes] ## Testing - [Testing approach and results] ## Documentation - [Documentation updates made]
4. Review and Merge Process
- • Check ongoing processes: Use
gh pr checks [pr-number]to check for any ongoing CI/CD, security analysis, or automated reviews (CodeRabbit, CodeQL, etc.) - • Check PR details: Use
gh pr view [pr-number]to check for human review comments and PR metadata - • Review all automated feedback: Check PR comments section for automated code review feedback (bots, linters, analyzers)
- •Use multiple methods to capture all feedback:
- •MCP servers (preferred when available): Use any available MCP servers for comprehensive review data
- •Code review MCPs (e.g., CodeRabbit, custom review servers) for detailed AI code reviews
- •Check available MCP tools/functions related to code reviews, pull requests, or automated feedback
- •CLI commands:
gh pr view [pr-number],gh pr checks [pr-number],gh api repos/owner/repo/pulls/[pr-number]/comments - •Web interface inspection: Fetch the PR URL directly to capture all comments, including inline code suggestions that CLI tools may miss
- •Look for comments from automated tools (usernames ending in 'ai', 'bot', or known review tools)
- •MCP servers (preferred when available): Use any available MCP servers for comprehensive review data
- •Use multiple methods to capture all feedback:
- • Present ALL code review findings: ALWAYS present every review comment to the user, regardless of severity
- •Show ALL comments: Present every suggestion, nitpick, and recommendation - do not filter or omit any
- •Categorize findings: Critical, Important, Optional/Nitpick based on impact
- •Provide specific examples: Quote actual suggestions and their locations
- •Explain assessment: Why each category was assigned
- •User decision: Let user decide which improvements to implement before merge (critical items must be addressed, others are user's choice)
- • Assess feedback priority: Categorize review feedback
- •Critical: Security issues, breaking changes, test failures - MUST address before merge
- •Important: Code quality, maintainability, performance - SHOULD address for production readiness
- •Optional: Style preferences, minor optimizations - MAY address based on project standards
- • Wait for ALL reviews to complete: Do NOT merge if any reviews are pending or in progress, including:
- •Automated code reviews (CodeRabbit, CodeQL, etc.) - Must wait until complete even if CI passes
- •Security analysis - Must complete and pass
- •CI/CD processes - All builds and tests must pass
- •Human reviews - If requested reviewers haven't approved
- •CRITICAL: Never skip automated code reviews - they provide valuable feedback even when CI passes
- • Address review feedback: Make required changes from code review (both automated and human)
- •Create additional commits on the feature branch to address feedback
- •Update tests if needed to cover suggested improvements
- •Document any feedback that was intentionally not addressed and why
- • Verify all checks pass: Ensure all CI/CD, tests, security analysis, and automated processes are complete and passing
- • Final review: Confirm the PR addresses the original PRD requirements and maintains code quality
- • Merge to main: Complete the pull request merge only after all feedback addressed and processes complete
- • Verify deployment: Ensure feature works in production environment
- • Monitor for issues: Watch for any post-deployment problems
5. Issue Closure
- • Update issue PRD link: Update the GitHub issue description to reference the new PRD path in
./prds/done/directory - • Close GitHub issue: Add final completion comment and close
- • Archive artifacts: Save any temporary files or testing data if needed
- • Team notification: Announce feature completion to relevant stakeholders
6. Branch Cleanup
- • Switch to main branch:
git checkout main - • Pull latest changes:
git pull origin mainto ensure local main is up to date - • Delete local feature branch:
git branch -d feature/prd-[issue-id]-[feature-name] - • Delete remote feature branch:
git push origin --delete feature/prd-[issue-id]-[feature-name]
Success Criteria
✅ Feature is live and functional
✅ All tests passing in production
✅ Documentation is accurate and complete
✅ PRD issue is closed with completion summary
✅ Team is notified of feature availability
The PRD implementation is only considered done when users can successfully use the feature as documented.