qa-protocol
Run multi-stage quality assurance on marketing assets with channel-specific validation and approval-ready reports
What this skill does
# qa-protocol
Multi-stage quality assurance protocol for marketing assets with channel-specific validation.
## Triggers
Alternate expressions and non-obvious activations (primary phrases are matched automatically from the skill description):
- "launch checklist" / "pre-flight check" → pre-launch validation
- "content QA" → quality assurance shorthand
## Purpose
This skill implements comprehensive quality assurance across marketing deliverables by:
- Running channel-specific validation rules
- Checking technical specifications
- Validating content accuracy
- Ensuring brand compliance
- Generating approval-ready reports
## Behavior
When triggered, this skill:
1. **Identifies asset type and channel**:
- Parse asset metadata
- Determine target channel(s)
- Load channel-specific QA rules
2. **Runs technical validation**:
- File format and dimensions
- Resolution and color space
- File size limits
- Naming conventions
3. **Validates content**:
- Copy accuracy and spelling
- Link verification
- CTA presence and clarity
- Legal requirements
4. **Checks brand compliance**:
- Invoke brand-compliance skill
- Visual identity validation
- Tone consistency
5. **Applies channel rules**:
- Platform-specific requirements
- Character limits
- Aspect ratios
- File type requirements
6. **Generates QA report**:
- Pass/fail per criterion
- Blocking vs advisory issues
- Remediation guidance
- Approval recommendation
## Channel Specifications
### Social Media
```yaml
social_channels:
instagram:
feed_post:
aspect_ratios: [1:1, 4:5, 1.91:1]
max_video_duration: 60s
max_carousel: 10
caption_limit: 2200
hashtag_limit: 30
story:
aspect_ratio: 9:16
max_duration: 15s
dimensions: 1080x1920
reel:
aspect_ratio: 9:16
max_duration: 90s
dimensions: 1080x1920
linkedin:
post:
image_ratio: [1.91:1, 1:1, 4:5]
video_duration: [3s, 10min]
text_limit: 3000
hashtag_limit: 5
article:
header_image: 1200x627
min_words: 500
twitter:
tweet:
text_limit: 280
image_ratio: [16:9, 1:1]
max_images: 4
video_duration: [0.5s, 140s]
thread:
max_tweets: 25
facebook:
post:
text_limit: 63206
image_ratio: [1.91:1, 1:1, 4:5]
video_duration: [1s, 240min]
ad:
primary_text: 125
headline: 40
description: 30
image_ratio: 1.91:1
```
### Email
```yaml
email_specs:
general:
max_width: 600px
max_file_size: 100KB per image
total_size: 1MB recommended
subject_line: 50 chars optimal
preheader: 85-100 chars
images:
formats: [jpg, png, gif]
max_dimensions: 600x1200
alt_text: required
background_colors: required (image blocking)
links:
tracking: required
utm_params: required
unsubscribe: required
physical_address: required
testing:
clients: [gmail, outlook, apple_mail, yahoo]
dark_mode: required
mobile_responsive: required
```
### Digital Ads
```yaml
ad_specs:
google_display:
formats:
- {size: "300x250", name: "medium_rectangle"}
- {size: "336x280", name: "large_rectangle"}
- {size: "728x90", name: "leaderboard"}
- {size: "300x600", name: "half_page"}
- {size: "320x50", name: "mobile_leaderboard"}
max_file_size: 150KB
formats: [jpg, png, gif, html5]
animation_length: 30s max
meta_ads:
image:
ratio: 1.91:1
min_resolution: 1080x1080
text_overlay: <20% recommended
video:
ratio: [1:1, 4:5, 9:16]
duration: [1s, 241min]
max_file_size: 4GB
carousel:
cards: [2, 10]
ratio: 1:1
```
### Print
```yaml
print_specs:
general:
color_space: CMYK
resolution: 300dpi minimum
bleed: 0.125in (3mm)
safe_zone: 0.25in from trim
formats:
letter: 8.5x11in
a4: 210x297mm
business_card: 3.5x2in
brochure_trifold: 8.5x11in folded
preflight:
fonts_embedded: required
images_linked: check
overprint: verify
transparency: flatten for offset
```
## QA Checklist Categories
### Content Validation
```yaml
content_checks:
copy:
- spelling_grammar: Run spell check
- brand_terminology: Use approved terms
- cta_present: Clear call-to-action
- value_proposition: Key message present
- tone_voice: Matches brand voice
accuracy:
- dates_times: Verify all dates
- prices_offers: Confirm pricing
- contact_info: Validate phone/email
- links_urls: Test all links
- legal_claims: Substantiation check
localization:
- translations: Accuracy check
- cultural_sensitivity: Review imagery
- regional_compliance: Local regulations
```
### Technical Validation
```yaml
technical_checks:
files:
- naming_convention: Follows standard
- file_format: Correct for channel
- file_size: Within limits
- resolution: Meets minimum
layout:
- safe_zones: Content within bounds
- bleed_setup: Correct for print
- aspect_ratio: Matches spec
- responsive: Mobile optimized
accessibility:
- alt_text: Present and descriptive
- contrast_ratio: WCAG compliant
- font_size: Minimum 14px
- color_independence: Not color-only
```
### Brand Validation
```yaml
brand_checks:
visual:
- logo_usage: Correct version and placement
- color_palette: On-brand colors only
- typography: Approved fonts
- imagery_style: Matches guidelines
verbal:
- tone: Consistent with brand voice
- messaging: Key messages present
- tagline: Correct usage
- terminology: Approved glossary
```
## QA Report Format
```markdown
# Quality Assurance Report
**Asset**: Holiday Email Campaign - Hero Banner
**Channel**: Email
**Date**: 2025-12-08
**QA Specialist**: qa-protocol skill
## Summary
| Category | Checks | Passed | Failed | Warnings |
|----------|--------|--------|--------|----------|
| Content | 12 | 11 | 0 | 1 |
| Technical | 8 | 8 | 0 | 0 |
| Brand | 6 | 5 | 1 | 0 |
| Channel | 10 | 9 | 1 | 0 |
| **Total** | **36** | **33** | **2** | **1** |
## Status: CONDITIONAL PASS
Asset may proceed after addressing 2 blocking issues.
## Blocking Issues
### BLK-001: Missing Alt Text
- **Category**: Channel (Email)
- **Element**: Hero image
- **Requirement**: Alt text required for email images
- **Fix**: Add descriptive alt text: "Holiday sale - 30% off all products"
### BLK-002: Off-Brand Color
- **Category**: Brand
- **Element**: CTA button
- **Current**: #FF6B6B (coral)
- **Required**: #0066CC (brand blue) or #00AA55 (brand green)
- **Fix**: Update button color to brand palette
## Warnings
### WARN-001: Subject Line Length
- **Category**: Content
- **Current**: 62 characters
- **Recommended**: 50 characters optimal
- **Note**: May truncate on mobile devices
- **Suggestion**: "Holiday Sale: 30% Off Everything" (35 chars)
## Passed Checks
### Content
- [x] Spelling and grammar verified
- [x] CTA present and clear ("Shop Now")
- [x] Value proposition stated (30% off)
- [x] Dates accurate (Dec 15-25)
- [x] Links functional (3 tested)
- [x] Unsubscribe link present
- [x] Physical address included
- [x] Price claims verified
- [x] Terms link present
- [x] Preheader text present
- [x] Tone matches brand voice
### Technical
- [x] File size: 450KB (under 1MB limit)
- [x] Image resolution: 600x400 (correct)
- [x] Format: HTML with inline CSS
- [x] Width: 600px (correct)
- [x] Images have fallback colors
- [x] Mobile responsive
- [x] Dark mode compatible
- [x] Client tested (Gmail, Outlook, Apple Mail)
### Brand
- [x] Logo: Correct horizontal version
- [x] Typography: Inter font family
- [x] Imagery: On-brand photography style
- [x] Tone: Friendly professional
- [x] Tagline: Correct usage
### Channel (Email)
- [x] Subject line present
- [x] Preheader configured
- [x] UTM parameters present
- [x] Tracking pixels configured
- [x] List-unsubscribe header
- [xRelated in Code Review
gstack
IncludedFast headless browser for QA testing and site dogfooding. Navigate pages, interact with elements, verify state, diff before/after, take annotated screenshots, test responsive layouts, forms, uploads, dialogs, and capture bug evidence. Use when asked to open or test a site, verify a deployment, dogfood a user flow, or file a bug with screenshots. (gstack)
startup-due-diligence
IncludedLegal due diligence review for seed-stage and Series A startups (US, Delaware C-Corp focus). Supports both investor and founder perspectives. Capabilities include: (1) Interactive document review and issue spotting; (2) Document request list generation; (3) Cap table and SAFE/convertible note analysis; (4) Red flag identification with severity ratings; (5) Diligence report generation. TRIGGERS: due diligence, DD, startup investment, cap table review, Series A, seed round, investor diligence, legal review startup, SAFE analysis, convertible note, 409A, founder vesting.
interview-master
IncludedThis skill should be used when the user asks to "generate interview questions", "prepare for interview", "optimize resume", "conduct mock interview", "analyze git commits for resume", "generate resume from code", "review my resume", or mentions interview preparation, career assistance, or extracting project experience from git history. Provides comprehensive interview and career development guidance for both job seekers and interviewers.
fix-issue
IncludedFixes GitHub issues using parallel analysis agents for root cause investigation, code exploration, and regression detection. Reads issue context from gh CLI, searches codebase and memory for related patterns, generates a fix with tests, and links the resolution back to the issue via PR. Includes prevention analysis to avoid recurrence. Use when debugging errors, resolving regressions, fixing bugs, or triaging issues.
sf-apex
IncludedGenerates and reviews Salesforce Apex code with 150-point scoring. TRIGGER when: user writes, reviews, or fixes Apex classes, triggers, test classes, batch/queueable/schedulable jobs, or touches .cls/.trigger files. DO NOT TRIGGER when: LWC JavaScript (use sf-lwc), Flow XML (use sf-flow), SOQL-only queries (use sf-soql), or non-Salesforce code.
swift-development
IncludedComprehensive Swift development for building, testing, and deploying iOS/macOS applications. Use when Claude needs to: (1) Build Swift packages or Xcode projects from command line, (2) Run tests with XCTest or Swift Testing framework, (3) Manage iOS simulators with simctl, (4) Handle code signing, provisioning profiles, and app distribution, (5) Format or lint Swift code with SwiftFormat/SwiftLint, (6) Work with Swift Package Manager (SPM), (7) Implement Swift 6 concurrency patterns (async/await, actors, Sendable), (8) Create SwiftUI views with MVVM architecture, (9) Set up Core Data or SwiftData persistence, or any other Swift/iOS/macOS development tasks.