| name | approval-workflow |
| description | Multi-stakeholder approval routing with status tracking and escalation. Use when relevant to the task. |
approval-workflow
Multi-stakeholder approval routing with status tracking and escalation.
Triggers
- "submit for approval"
- "route for approval"
- "approval workflow"
- "get sign-off"
- "approval status"
- "who needs to approve"
Purpose
This skill manages the complete approval lifecycle for marketing assets by:
- Defining approval chains based on asset type and value
- Routing assets to appropriate approvers
- Tracking approval status in real-time
- Managing escalations and deadlines
- Recording approval history for audit
Behavior
When triggered, this skill:
Determines approval requirements:
- Identify asset type and category
- Calculate approval tier (budget, risk, visibility)
- Load approval chain configuration
Initializes approval request:
- Create approval record
- Attach asset and supporting materials
- Set deadlines based on priority
Routes to approvers:
- Notify approvers in sequence or parallel
- Provide context and review materials
- Track response status
Manages workflow:
- Process approvals/rejections
- Handle revision requests
- Escalate overdue items
- Route to next approver
Records decisions:
- Document approval/rejection rationale
- Maintain audit trail
- Archive final approved version
Approval Tiers
Tier 1: Standard Content
tier_1:
description: Routine content with low risk
criteria:
- budget: <$5,000
- audience_reach: <10,000
- brand_impact: low
- legal_risk: none
approvers:
- role: content-owner
required: true
timeout: 24h
- role: brand-guardian
required: true
timeout: 24h
routing: parallel
total_sla: 48h
Tier 2: Campaign Content
tier_2:
description: Campaign materials with moderate visibility
criteria:
- budget: $5,000-$50,000
- audience_reach: 10,000-100,000
- brand_impact: medium
- legal_risk: low
approvers:
- role: content-owner
required: true
timeout: 24h
- role: brand-guardian
required: true
timeout: 24h
- role: campaign-manager
required: true
timeout: 24h
- role: legal-reviewer
required: if_claims
timeout: 48h
routing: sequential_then_parallel
sequence:
- [content-owner]
- [brand-guardian, campaign-manager]
- [legal-reviewer]
total_sla: 72h
Tier 3: High-Value/High-Risk
tier_3:
description: Major campaigns, brand partnerships, sensitive content
criteria:
- budget: >$50,000
- audience_reach: >100,000
- brand_impact: high
- legal_risk: medium-high
approvers:
- role: content-owner
required: true
timeout: 24h
- role: brand-guardian
required: true
timeout: 24h
- role: creative-director
required: true
timeout: 48h
- role: legal-reviewer
required: true
timeout: 48h
- role: marketing-director
required: true
timeout: 48h
routing: staged
stages:
- name: content_review
approvers: [content-owner, brand-guardian]
routing: parallel
- name: creative_review
approvers: [creative-director]
routing: sequential
- name: compliance_review
approvers: [legal-reviewer]
routing: sequential
- name: executive_approval
approvers: [marketing-director]
routing: sequential
total_sla: 120h
Tier 4: Executive/Crisis
tier_4:
description: Brand-defining, crisis response, executive communications
criteria:
- brand_impact: critical
- legal_risk: high
- crisis_response: true
- executive_messaging: true
approvers:
- role: brand-guardian
required: true
timeout: 4h
- role: legal-reviewer
required: true
timeout: 4h
- role: creative-director
required: true
timeout: 4h
- role: marketing-director
required: true
timeout: 8h
- role: cmo
required: true
timeout: 8h
- role: legal-counsel
required: if_crisis
timeout: 4h
routing: expedited_parallel
escalation: immediate
total_sla: 24h
Approval Statuses
statuses:
draft:
description: Not yet submitted
actions: [edit, submit]
pending:
description: Awaiting review
actions: [view, remind, withdraw]
in_review:
description: Actively being reviewed
actions: [view]
revision_requested:
description: Changes needed
actions: [edit, resubmit]
approved:
description: Approved by current approver
actions: [view]
rejected:
description: Not approved
actions: [view, appeal]
escalated:
description: Overdue, escalated to manager
actions: [view, respond]
fully_approved:
description: All approvals complete
actions: [publish, archive]
expired:
description: Approval window closed
actions: [resubmit]
Approval Request Format
approval_request:
id: APR-2025-001234
asset:
name: Q1 Product Launch - Email Campaign
type: email_campaign
path: .aiwg/marketing/assets/q1-launch/email-hero.html
version: 2.1.0
submitter:
name: Jane Smith
role: marketing-manager
email: jane.smith@company.com
submitted_at: 2025-12-08T10:00:00Z
tier: 2
priority: high
deadline: 2025-12-11T10:00:00Z
context:
campaign: Q1 Product Launch
budget: $25,000
audience: 75,000 subscribers
launch_date: 2025-01-15
notes: "Launch email for new product line. Needs legal review for pricing claims."
attachments:
- email-hero.html
- email-preview.png
- brand-compliance-report.md
- qa-report.md
approval_chain:
- role: content-owner
assignee: Jane Smith
status: approved
approved_at: 2025-12-08T10:30:00Z
- role: brand-guardian
assignee: Sarah Chen
status: pending
due_at: 2025-12-09T10:00:00Z
- role: legal-reviewer
assignee: Elena Rodriguez
status: not_started
due_at: 2025-12-10T10:00:00Z
Approval Record Format
# Approval Record: APR-2025-001234
**Asset**: Q1 Product Launch - Email Campaign
**Version**: 2.1.0
**Submitted**: 2025-12-08 10:00 AM
**Final Status**: FULLY APPROVED
**Approved**: 2025-12-10 3:45 PM
## Summary
| Metric | Value |
|--------|-------|
| Tier | 2 (Campaign Content) |
| Total Approvers | 4 |
| Approvals | 4 |
| Rejections | 0 |
| Revisions | 1 |
| Elapsed Time | 53h 45m |
| SLA Target | 72h |
| SLA Status | Within SLA |
## Approval Chain
### Stage 1: Content Review
#### Content Owner - Jane Smith
- **Status**: APPROVED
- **Reviewed**: 2025-12-08 10:30 AM
- **Time to Review**: 30 minutes
- **Comments**: "Ready for brand review"
- **Conditions**: None
### Stage 2: Brand & Campaign Review
#### Brand Guardian - Sarah Chen
- **Status**: APPROVED with Conditions
- **Reviewed**: 2025-12-09 2:15 PM
- **Time to Review**: 28h 15m
- **Comments**: "Logo placement approved. Please update CTA button to brand green."
- **Conditions**:
- [ ] Update CTA color to #00AA55
- [x] Condition met in revision v2.1.0
#### Campaign Manager - David Kim
- **Status**: APPROVED
- **Reviewed**: 2025-12-09 11:00 AM
- **Time to Review**: 25h
- **Comments**: "Aligns with campaign strategy. Good to proceed."
- **Conditions**: None
### Stage 3: Compliance Review
#### Legal Reviewer - Elena Rodriguez
- **Status**: APPROVED
- **Reviewed**: 2025-12-10 3:45 PM
- **Time to Review**: 28h 30m
- **Comments**: "Pricing claims substantiated. Disclosure text approved."
- **Conditions**: None
## Revision History
### Revision 1 (v2.0.0 → v2.1.0)
- **Date**: 2025-12-09 4:00 PM
- **Requested By**: Sarah Chen (Brand Guardian)
- **Changes Made**:
- Updated CTA button color from #CCCCCC to #00AA55
- Adjusted button contrast ratio
- **Resubmitted**: 2025-12-09 4:30 PM
## Audit Trail
| Timestamp | Action | User | Details |
|-----------|--------|------|---------|
| 2025-12-08 10:00 | Submitted | Jane Smith | Initial submission v2.0.0 |
| 2025-12-08 10:05 | Routed | System | Sent to content-owner |
| 2025-12-08 10:30 | Approved | Jane Smith | Content owner approval |
| 2025-12-08 10:31 | Routed | System | Sent to brand-guardian, campaign-manager |
| 2025-12-09 11:00 | Approved | David Kim | Campaign manager approval |
| 2025-12-09 2:15 | Conditional | Sarah Chen | Requested CTA color change |
| 2025-12-09 4:30 | Resubmitted | Jane Smith | Updated to v2.1.0 |
| 2025-12-09 4:45 | Approved | Sarah Chen | Condition satisfied |
| 2025-12-09 4:46 | Routed | System | Sent to legal-reviewer |
| 2025-12-10 3:45 | Approved | Elena Rodriguez | Final approval |
| 2025-12-10 3:45 | Completed | System | All approvals received |
## Approved Asset
- **Final Version**: 2.1.0
- **Checksum**: sha256:abc123...
- **Archive Path**: .aiwg/marketing/approved/2025/12/q1-launch-email-v2.1.0/
- **Publish Authorized**: Yes
## Sign-offs
| Role | Name | Signature | Date |
|------|------|-----------|------|
| Content Owner | Jane Smith | ✓ | 2025-12-08 |
| Brand Guardian | Sarah Chen | ✓ | 2025-12-09 |
| Campaign Manager | David Kim | ✓ | 2025-12-09 |
| Legal Reviewer | Elena Rodriguez | ✓ | 2025-12-10 |
Usage Examples
Submit for Approval
User: "Submit this email for approval"
Skill executes:
1. Identify asset type: Email campaign
2. Calculate tier: Tier 2 (budget $25k, audience 75k)
3. Load approval chain
4. Create approval request
5. Notify first approvers
Output:
"Approval Request Created: APR-2025-001234
Asset: Q1 Product Launch Email
Tier: 2 (Campaign Content)
SLA: 72 hours
Approval Chain:
1. ⏳ Content Owner (Jane Smith) - 24h
2. ⏳ Brand Guardian (Sarah Chen) - 24h
3. ⏳ Campaign Manager (David Kim) - 24h
4. ⏳ Legal Reviewer (Elena Rodriguez) - 48h
Deadline: December 11, 10:00 AM
Notifications sent to initial approvers."
Check Status
User: "Approval status"
Skill returns:
"APR-2025-001234: Q1 Launch Email
Progress: 2/4 approvals (50%)
Current Stage: Brand & Campaign Review
✅ Content Owner: Approved (Dec 8)
⏳ Brand Guardian: In Review (due Dec 9)
⏳ Campaign Manager: In Review (due Dec 9)
⬜ Legal Reviewer: Waiting
Time Remaining: 48h of 72h SLA
On Track: Yes"
Handle Revision Request
User: "Brand guardian requested changes"
Skill processes:
1. Log revision request
2. Notify submitter
3. Pause approval chain
4. Track revision status
Output:
"Revision Requested by Sarah Chen (Brand Guardian)
Required Changes:
1. Update CTA button to brand green (#00AA55)
Status: REVISION_REQUESTED
Original Chain: Paused
To continue:
1. Make requested changes
2. Update asset version
3. Resubmit: 'resubmit approval APR-2025-001234'
Deadline extended: +24h for revision"
Escalation
User: "Escalate overdue approval"
Skill executes:
1. Identify overdue approver
2. Notify escalation path
3. Update status
Output:
"Escalation Initiated: APR-2025-001234
Overdue Approver: Sarah Chen (Brand Guardian)
Overdue By: 8 hours
Escalated To: James Wilson (Creative Director)
Notification: Sent
New Deadline: 24h from now
Status: ESCALATED"
Integration
This skill uses:
artifact-metadata: Track approval statusproject-awareness: Context for tier determinationreview-synthesis: Aggregate reviewer feedback before approval
Workflow Configuration
Approval Routing
routing_config:
parallel:
description: All approvers notified simultaneously
complete_when: all_approved
sequential:
description: Approvers review in order
complete_when: all_approved_in_sequence
staged:
description: Groups of parallel approvers in sequence
complete_when: all_stages_complete
expedited_parallel:
description: All approvers simultaneously with aggressive reminders
complete_when: all_approved
reminder_frequency: 2h
Notification Settings
notifications:
on_submit:
- approver: email, slack
- submitter: confirmation
on_approve:
- next_approver: email, slack
- submitter: status_update
on_reject:
- submitter: email, slack
- stakeholders: email
on_revision:
- submitter: email, slack
reminders:
- at: 50% of deadline
- at: 75% of deadline
- at: 90% of deadline
- overdue: hourly for 4h, then escalate
Escalation Rules
escalation:
auto_escalate:
trigger: overdue + 4h
to: approver_manager
manual_escalate:
allowed_by: [submitter, stakeholder]
to: [marketing-director, project-manager]
crisis_escalate:
trigger: tier_4 + overdue
to: [cmo, legal-counsel]
notification: immediate
Output Locations
- Approval requests:
.aiwg/marketing/approvals/pending/ - Approval records:
.aiwg/marketing/approvals/completed/ - Approved assets:
.aiwg/marketing/approved/{year}/{month}/ - Audit logs:
.aiwg/marketing/approvals/audit/
References
- Approval tier definitions: .aiwg/marketing/config/approval-tiers.yaml
- Escalation procedures: docs/escalation-process.md
- Approval templates: templates/governance/approval-request.md