| name | Release Approval |
| description | Approval workflow templates with GitHub Actions and Slack integration for multi-stakeholder release gating. Use when setting up approval workflows, configuring stakeholder gates, automating approval notifications, integrating Slack webhooks, requesting release approvals, tracking approval status, or when user mentions release approval, stakeholder sign-off, approval gates, multi-stage approvals, or release gating. |
Release Approval
CRITICAL: The description field above controls when Claude auto-loads this skill.
Overview
Provides comprehensive patterns, templates, and scripts for multi-stakeholder release approval workflows including GitHub Actions integration, Slack notifications, approval gate configuration, and status tracking automation.
Instructions
1. Approval Workflow Architecture
Understand Approval Gate Patterns:
- Sequential Approvals: Stakeholders approve in order (dev → QA → security → release)
- Parallel Approvals: All stakeholders review simultaneously, release when all approve
- Conditional Approvals: Requirements change based on change scope (breaking vs patch)
- Hybrid Approvals: Some gates parallel, others sequential
Design Workflow:
- Identify required stakeholder groups (technical lead, product owner, QA, security, compliance)
- Define approval thresholds (required vs optional approvals)
- Set timeout and escalation policies
- Document veto power and override conditions
2. GitHub Actions Workflow Setup
Configure Approval Workflows:
- Use
templates/github-actions-approval.yml for basic approval workflow
- Use
templates/github-actions-approval-slack.yml for Slack-integrated workflow
- Configure environment protection rules for production
- Set required reviewers in repository settings
Workflow Triggers:
- Manual workflow dispatch for on-demand approvals
- Tag push events for automatic approval requests
- Pull request reviews for pre-merge approvals
- Issue comments for approval tracking
3. Approval Gate Configuration
Setup Approval Gates:
- Use
templates/approval-gates.yml to define stakeholder groups and requirements
- Use
scripts/setup-approval-gates.sh to initialize gate configuration
- Configure approval thresholds per gate (required count, optional count)
- Define approval dependencies (QA requires dev approval first)
Configuration Structure:
approval_gates:
- stage: development
approvers: ["@dev-team-lead", "@tech-lead"]
required: 2
timeout_hours: 24
- stage: qa
approvers: ["@qa-lead"]
required: 1
depends_on: ["development"]
- stage: security
approvers: ["@security-team"]
required: 1
veto_power: true
- stage: release
approvers: ["@release-manager"]
required: 1
depends_on: ["development", "qa", "security"]
4. Slack Notification Integration
Setup Slack Webhooks:
- Use
scripts/setup-slack-webhook.sh to configure Slack integration
- Use
templates/slack-webhook-config.json for webhook configuration template
- Store webhook URLs in GitHub Secrets (never hardcode)
- Use
scripts/notify-slack.sh for sending approval notifications
Notification Types:
- Approval Requested: Notify stakeholders when approval needed
- Approval Granted: Confirm when stakeholder approves
- Approval Denied: Alert when stakeholder rejects with reason
- Approval Timeout: Escalate when approval times out
- Approval Complete: Celebrate when all approvals obtained
5. Requesting and Tracking Approvals
Request Approvals:
- Use
scripts/request-approval.sh to send approval requests
- Create GitHub issue for approval tracking
- Request PR reviews from stakeholders
- Send Slack notifications to stakeholder channels
Track Approval Status:
- Use
scripts/check-approval-status.sh to monitor approval progress
- Update approval tracking issue as approvals come in
- Generate approval audit trail
- Store approval records in
.github/releases/approvals/
6. Approval Automation Patterns
Automate Common Scenarios:
Auto-Approve for Non-Breaking Changes:
- Patch releases with docs-only changes
- Dependency updates with passing tests
- Automated security patches
Escalation on Timeout:
- Send reminder notifications after grace period
- Escalate to backup approvers
- Alert release manager for intervention
Conditional Approval Requirements:
- Breaking changes require additional security review
- Feature releases require product owner approval
- Hotfix releases have expedited approval process
7. Approval Audit Trail
Document Approvals:
- Use
scripts/generate-approval-audit.sh to create audit records
- Store approval records in
.github/releases/approvals/v{version}.json
- Include: approver name, timestamp, decision, comments, justification
- Commit approval records to git for permanent audit trail
Audit Record Structure:
{
"version": "1.2.3",
"requested_at": "2025-01-15T10:00:00Z",
"completed_at": "2025-01-15T14:30:00Z",
"approvals": [
{
"stage": "development",
"approver": "tech-lead",
"decision": "approved",
"timestamp": "2025-01-15T11:00:00Z",
"comments": "All tests passing, ready for QA"
},
{
"stage": "qa",
"approver": "qa-lead",
"decision": "approved_with_conditions",
"timestamp": "2025-01-15T13:00:00Z",
"comments": "Minor UI issue logged, non-blocking"
}
],
"final_decision": "approved",
"conditions": ["Monitor UI issue #1234 post-release"]
}
Available Scripts
- setup-approval-gates.sh: Initialize approval gate configuration with stakeholder groups
- request-approval.sh: Send approval requests to stakeholders via GitHub and Slack
- check-approval-status.sh: Monitor approval progress and generate status reports
- notify-slack.sh: Send Slack notifications for approval events
- setup-slack-webhook.sh: Configure Slack webhook integration with GitHub Actions
- generate-approval-audit.sh: Create comprehensive approval audit records
- escalate-approval.sh: Handle approval timeouts with escalation logic
Available Templates
- github-actions-approval.yml: GitHub Actions workflow for approval orchestration
- github-actions-approval-slack.yml: GitHub Actions workflow with Slack integration
- approval-gates.yml: Approval gate configuration with stakeholder groups
- slack-webhook-config.json: Slack webhook configuration template (placeholders only)
- approval-issue-template.md: GitHub issue template for approval tracking
- approval-audit-template.json: JSON template for approval audit records
- environment-protection-rules.md: GitHub environment protection rules guide
Available Examples
- basic-approval-workflow.md: Simple sequential approval workflow example
- parallel-approval-gates.md: Multi-stakeholder parallel approval pattern
- conditional-approval.md: Change-scope-based conditional approval requirements
- slack-integration-complete.md: Full Slack webhook integration example
- automated-gating.md: Auto-approval and escalation patterns
- approval-audit-trail.md: Complete audit trail generation example
Requirements
- GitHub CLI (
gh) installed and authenticated
- GitHub repository with write access
- GitHub Actions enabled
- Slack workspace with webhook permissions (optional)
- Repository secrets configured for sensitive data
- Stakeholder GitHub usernames documented
- Clear approval policies defined
Security Considerations
CRITICAL: Always use placeholders for sensitive data
- ❌ Never hardcode Slack webhook URLs in code or configs
- ✅ Store webhook URLs in GitHub Secrets:
SLACK_WEBHOOK_URL
- ✅ Use placeholders in templates:
https://hooks.slack.com/services/YOUR_WEBHOOK_HERE
- ❌ Never commit
.env files with real credentials
- ✅ Create
.env.example with placeholder values
- ✅ Document how to obtain webhooks in README
Environment Variable Pattern:
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/YOUR_WEBHOOK_HERE
GITHUB_TOKEN=ghp_your_github_token_here
APPROVAL_TIMEOUT_HOURS=24
Progressive Disclosure
For additional reference material:
- Read
examples/basic-approval-workflow.md for quick start
- Read
examples/parallel-approval-gates.md for multi-stakeholder patterns
- Read
examples/slack-integration-complete.md for webhook setup
- Read
examples/automated-gating.md for automation patterns
- Read
templates/github-actions-approval.yml for workflow implementation
Integration with Commands and Agents
Commands that use this skill:
/versioning:approve-release - Orchestrates approval workflow using these patterns
Agents that use this skill:
approval-workflow-manager - Uses templates and scripts for approval orchestration
Workflow:
- User runs
/versioning:approve-release <version>
- Command invokes
approval-workflow-manager agent
- Agent loads this skill for templates and scripts
- Agent uses
request-approval.sh to notify stakeholders
- Agent uses
check-approval-status.sh to monitor progress
- Agent uses
generate-approval-audit.sh to document approvals
Skill Location: plugins/versioning/skills/release-approval/SKILL.md
Version: 1.0.0